@hintoric/email 0.1.2 → 0.3.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 (37) hide show
  1. package/README.md +3 -2
  2. package/dist/alertIcons.d.ts +29 -0
  3. package/dist/alertIcons.d.ts.map +1 -0
  4. package/dist/components/Alert.d.ts +66 -0
  5. package/dist/components/Alert.d.ts.map +1 -0
  6. package/dist/components/Layout.d.ts +10 -1
  7. package/dist/components/Layout.d.ts.map +1 -1
  8. package/dist/index.d.ts +6 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +645 -195
  11. package/dist/index.js.map +1 -1
  12. package/dist/styles.d.ts +2 -0
  13. package/dist/styles.d.ts.map +1 -1
  14. package/dist/templates/AuthCode/AuthCodeEmail.d.ts +14 -0
  15. package/dist/templates/AuthCode/AuthCodeEmail.d.ts.map +1 -0
  16. package/dist/templates/AuthCode/index.d.ts +4 -0
  17. package/dist/templates/AuthCode/index.d.ts.map +1 -0
  18. package/dist/templates/AuthCode/messages.d.ts +4 -0
  19. package/dist/templates/AuthCode/messages.d.ts.map +1 -0
  20. package/dist/templates/AuthCode/types.d.ts +58 -0
  21. package/dist/templates/AuthCode/types.d.ts.map +1 -0
  22. package/dist/templates/AuthNoAccount/AuthNoAccountEmail.d.ts +13 -0
  23. package/dist/templates/AuthNoAccount/AuthNoAccountEmail.d.ts.map +1 -0
  24. package/dist/templates/AuthNoAccount/index.d.ts +4 -0
  25. package/dist/templates/AuthNoAccount/index.d.ts.map +1 -0
  26. package/dist/templates/AuthNoAccount/messages.d.ts +4 -0
  27. package/dist/templates/AuthNoAccount/messages.d.ts.map +1 -0
  28. package/dist/templates/AuthNoAccount/types.d.ts +47 -0
  29. package/dist/templates/AuthNoAccount/types.d.ts.map +1 -0
  30. package/dist/templates/SecurityActivityAlert/messages.d.ts.map +1 -1
  31. package/dist/templates/WaitlistWelcome/WaitlistWelcomeEmail.d.ts.map +1 -1
  32. package/dist/templates/WaitlistWelcome/messages.d.ts.map +1 -1
  33. package/dist/templates/WaitlistWelcome/types.d.ts +4 -0
  34. package/dist/templates/WaitlistWelcome/types.d.ts.map +1 -1
  35. package/dist/tokens.d.ts +1 -0
  36. package/dist/tokens.d.ts.map +1 -1
  37. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -135,27 +135,28 @@ var v = {
135
135
  }
136
136
  }, y = {
137
137
  body: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
138
- heading: "Montserrat, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif"
138
+ heading: "Montserrat, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
139
+ code: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"
139
140
  }, b = {
140
141
  xs: "2px",
141
142
  sm: "6px",
142
143
  md: "8px",
143
144
  lg: "12px",
144
145
  xl: "16px"
145
- }, x = /* @__PURE__ */ new Set([
146
+ }, ee = /* @__PURE__ */ new Set([
146
147
  "https:",
147
148
  "http:",
148
149
  "mailto:"
149
150
  ]);
150
- function S(e) {
151
+ function x(e) {
151
152
  if (e) try {
152
153
  let t = new URL(e);
153
- return x.has(t.protocol) ? t.href : void 0;
154
+ return ee.has(t.protocol) ? t.href : void 0;
154
155
  } catch {
155
156
  return;
156
157
  }
157
158
  }
158
- function C(e) {
159
+ function S(e) {
159
160
  if (e) try {
160
161
  let t = new URL(e);
161
162
  return t.protocol === "https:" ? t.href : void 0;
@@ -165,7 +166,7 @@ function C(e) {
165
166
  }
166
167
  //#endregion
167
168
  //#region src/styles.ts
168
- var w = {
169
+ var C = {
169
170
  variant: (e, t) => `hx-${e}-${t}`,
170
171
  main: (e) => `hx-main-${e}`,
171
172
  inkPrimary: "hx-ink-1",
@@ -178,27 +179,31 @@ var w = {
178
179
  layoutCard: "hx-layout-card",
179
180
  layoutCardBody: "hx-layout-card-body",
180
181
  logoLight: "hx-logo-light",
181
- logoDark: "hx-logo-dark"
182
+ logoDark: "hx-logo-dark",
183
+ lightOnly: "hx-light-only",
184
+ darkOnly: "hx-dark-only"
182
185
  };
183
- function T(e) {
186
+ function w(e) {
184
187
  let t = v.dark, n = (t, n) => `${e} .${t}{${n}}`, r = [
185
- n(w.inkPrimary, `color:${t.inkPrimary}!important;`),
186
- n(w.inkSecondary, `color:${t.inkSecondary}!important;`),
187
- n(w.inkTertiary, `color:${t.inkTertiary}!important;`),
188
- n(w.inkIcon, `color:${t.inkIcon}!important;`),
189
- n(w.surface, `background-color:${t.surface}!important;`),
190
- n(w.divider, `background-color:${t.divider}!important;`),
191
- n(w.layoutCanvas, `background-color:${t.surface}!important;`),
192
- n(`${w.layoutCanvas}>table>tbody>tr>td`, `background-color:${t.surface}!important;`),
193
- n(w.logoLight, "display:none!important;"),
194
- n(w.logoDark, "display:inline-block!important;"),
195
- n(w.layoutCard, `background-color:${t.surface1}!important;border-color:${g("dark", "outlined", "neutral").borderColor}!important;`)
188
+ n(C.inkPrimary, `color:${t.inkPrimary}!important;`),
189
+ n(C.inkSecondary, `color:${t.inkSecondary}!important;`),
190
+ n(C.inkTertiary, `color:${t.inkTertiary}!important;`),
191
+ n(C.inkIcon, `color:${t.inkIcon}!important;`),
192
+ n(C.surface, `background-color:${t.surface}!important;`),
193
+ n(C.divider, `background-color:${t.divider}!important;`),
194
+ n(C.layoutCanvas, `background-color:${t.surface}!important;`),
195
+ n(`${C.layoutCanvas}>table>tbody>tr>td`, `background-color:${t.surface}!important;`),
196
+ n(C.logoLight, "display:none!important;"),
197
+ n(C.logoDark, "display:inline-block!important;"),
198
+ n(C.lightOnly, "display:none!important;"),
199
+ n(C.darkOnly, "display:block!important;"),
200
+ n(C.layoutCard, `background-color:${t.surface1}!important;border-color:${g("dark", "outlined", "neutral").borderColor}!important;`)
196
201
  ];
197
202
  for (let e of m) {
198
- r.push(n(w.main(e), `color:${_("dark", e)}!important;`));
203
+ r.push(n(C.main(e), `color:${_("dark", e)}!important;`));
199
204
  for (let t of h) {
200
205
  let i = g("dark", t, e);
201
- r.push(n(w.variant(t, e), [
206
+ r.push(n(C.variant(t, e), [
202
207
  `color:${i.color}!important;`,
203
208
  i.backgroundColor && `background-color:${i.backgroundColor}!important;`,
204
209
  i.borderColor && `border-color:${i.borderColor}!important;`
@@ -207,85 +212,44 @@ function T(e) {
207
212
  }
208
213
  return r.join("");
209
214
  }
210
- function E() {
211
- let e = (e) => `${e}.${w.layoutCanvas},${e}.${w.layoutCanvas}>table>tbody>tr>td`, t = (t) => `${e(t)}{background-color:${v.dark.surface1}!important;}`;
215
+ function te() {
216
+ let e = (e) => `${e}.${C.layoutCanvas},${e}.${C.layoutCanvas}>table>tbody>tr>td`, t = (t) => `${e(t)}{background-color:${v.dark.surface1}!important;}`;
212
217
  return [
213
218
  "@media only screen and (max-width:600px){",
214
- `.${w.layoutCard}{max-width:100%!important;border:0!important;border-radius:0!important;}`,
215
- `.${w.layoutCardBody}{padding:32px 24px!important;}`,
219
+ `.${C.layoutCard}{max-width:100%!important;border:0!important;border-radius:0!important;}`,
220
+ `.${C.layoutCardBody}{padding:32px 24px!important;}`,
216
221
  `${e("")}{padding:0!important;background-color:${v.light.surface}!important;}`,
217
222
  t("[data-color-scheme=\"dark\"] "),
218
223
  "}",
219
224
  `@media only screen and (max-width:600px) and (prefers-color-scheme:dark){${t(":root:not([data-color-scheme=\"light\"]) ")}}`
220
225
  ].join("");
221
226
  }
222
- var D = [
227
+ var ne = [
223
228
  "a[x-apple-data-detectors]{color:inherit!important;text-decoration:none!important;}",
224
- `@media (prefers-color-scheme:dark){${T(":root:not([data-color-scheme=\"light\"])")}}`,
225
- T("[data-color-scheme=\"dark\"]"),
226
- E()
229
+ `@media (prefers-color-scheme:dark){${w(":root:not([data-color-scheme=\"light\"])")}}`,
230
+ w("[data-color-scheme=\"dark\"]"),
231
+ te()
227
232
  ].join("\n");
228
233
  //#endregion
229
- //#region src/components/Layout.tsx
230
- function O({ lang: e, preview: n, footer: o, colorScheme: s, children: l }) {
231
- let f = v.light;
232
- return /* @__PURE__ */ d(a, {
233
- lang: e,
234
- "data-color-scheme": s,
235
- children: [
236
- /* @__PURE__ */ d(i, { children: [
237
- /* @__PURE__ */ u("meta", {
238
- name: "color-scheme",
239
- content: "light dark"
240
- }),
241
- /* @__PURE__ */ u("meta", {
242
- name: "supported-color-schemes",
243
- content: "light dark"
244
- }),
245
- /* @__PURE__ */ u(k, {})
246
- ] }),
247
- /* @__PURE__ */ u(c, { children: n }),
248
- /* @__PURE__ */ d(t, {
249
- className: w.layoutCanvas,
250
- style: {
251
- margin: 0,
252
- padding: "40px 0",
253
- backgroundColor: f.surface1,
254
- fontFamily: y.body
255
- },
256
- children: [/* @__PURE__ */ u(r, {
257
- className: w.layoutCard,
258
- style: {
259
- width: "100%",
260
- maxWidth: "440px",
261
- boxSizing: "border-box",
262
- backgroundColor: f.surface,
263
- border: `1px solid ${g("light", "outlined", "neutral").borderColor}`,
264
- borderRadius: "20px"
265
- },
266
- children: /* @__PURE__ */ u("div", {
267
- className: w.layoutCardBody,
268
- style: { padding: "48px" },
269
- children: l
270
- })
271
- }), o && /* @__PURE__ */ u(r, {
272
- style: {
273
- maxWidth: "440px",
274
- padding: "24px 24px 0",
275
- textAlign: "center"
276
- },
277
- children: o
278
- })]
279
- })
280
- ]
281
- });
282
- }
283
- function k() {
284
- return /* @__PURE__ */ u("style", { dangerouslySetInnerHTML: { __html: D } });
234
+ //#region src/components/Link.tsx
235
+ function T({ href: e, color: t = "primary", underline: n = "always", style: r, children: i }) {
236
+ let a = x(e);
237
+ return a ? /* @__PURE__ */ u(s, {
238
+ href: a,
239
+ className: C.main(t),
240
+ style: {
241
+ fontFamily: y.body,
242
+ color: _("light", t),
243
+ textDecoration: n === "always" ? "underline" : "none",
244
+ wordBreak: "break-word",
245
+ ...r
246
+ },
247
+ children: i
248
+ }) : /* @__PURE__ */ u(l, { children: i });
285
249
  }
286
250
  //#endregion
287
251
  //#region src/components/Typography.tsx
288
- var A = {
252
+ var re = {
289
253
  h1: {
290
254
  fontSize: "36px",
291
255
  fontWeight: 700,
@@ -356,7 +320,7 @@ var A = {
356
320
  lineHeight: 1.5,
357
321
  ink: "inkTertiary"
358
322
  }
359
- }, j = {
323
+ }, ie = {
360
324
  h1: "h1",
361
325
  h2: "h2",
362
326
  h3: "h3",
@@ -368,16 +332,16 @@ var A = {
368
332
  "body-md": "p",
369
333
  "body-sm": "p",
370
334
  "body-xs": "span"
371
- }, ee = {
335
+ }, ae = {
372
336
  primary: "inkPrimary",
373
337
  secondary: "inkSecondary",
374
338
  tertiary: "inkTertiary",
375
339
  icon: "inkIcon"
376
340
  };
377
- function M({ level: e = "body-md", component: t, textAlign: n, textColor: r, style: i, children: a }) {
378
- let o = A[e], s = r ? ee[r] : o.ink, c = t ?? j[e];
341
+ function E({ level: e = "body-md", component: t, textAlign: n, textColor: r, style: i, children: a }) {
342
+ let o = re[e], s = r ? ae[r] : o.ink, c = t ?? ie[e];
379
343
  return /* @__PURE__ */ u(c, {
380
- className: w[s],
344
+ className: C[s],
381
345
  style: {
382
346
  margin: 0,
383
347
  fontFamily: y.body,
@@ -393,8 +357,80 @@ function M({ level: e = "body-md", component: t, textAlign: n, textColor: r, sty
393
357
  });
394
358
  }
395
359
  //#endregion
360
+ //#region src/components/Layout.tsx
361
+ function D({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, children: f }) {
362
+ let p = v.light;
363
+ return /* @__PURE__ */ d(a, {
364
+ lang: e,
365
+ "data-color-scheme": l,
366
+ children: [
367
+ /* @__PURE__ */ d(i, { children: [
368
+ /* @__PURE__ */ u("meta", {
369
+ name: "color-scheme",
370
+ content: "light dark"
371
+ }),
372
+ /* @__PURE__ */ u("meta", {
373
+ name: "supported-color-schemes",
374
+ content: "light dark"
375
+ }),
376
+ /* @__PURE__ */ u(O, {})
377
+ ] }),
378
+ /* @__PURE__ */ u(c, { children: n }),
379
+ /* @__PURE__ */ d(t, {
380
+ className: C.layoutCanvas,
381
+ style: {
382
+ margin: 0,
383
+ padding: "40px 0",
384
+ backgroundColor: p.surface1,
385
+ fontFamily: y.body
386
+ },
387
+ children: [/* @__PURE__ */ u(r, {
388
+ className: C.layoutCard,
389
+ style: {
390
+ width: "100%",
391
+ maxWidth: "440px",
392
+ boxSizing: "border-box",
393
+ backgroundColor: p.surface,
394
+ border: `1px solid ${g("light", "outlined", "neutral").borderColor}`,
395
+ borderRadius: "20px"
396
+ },
397
+ children: /* @__PURE__ */ u("div", {
398
+ className: C.layoutCardBody,
399
+ style: { padding: "48px" },
400
+ children: f
401
+ })
402
+ }), (o || s) && /* @__PURE__ */ d(r, {
403
+ style: {
404
+ maxWidth: "440px",
405
+ padding: "24px 24px 0",
406
+ textAlign: "center"
407
+ },
408
+ children: [o, s && x(s.href) && /* @__PURE__ */ u(E, {
409
+ level: "body-xs",
410
+ component: "p",
411
+ textAlign: "center",
412
+ textColor: "icon",
413
+ style: {
414
+ margin: o ? "12px 0 0" : 0,
415
+ fontWeight: 400
416
+ },
417
+ children: /* @__PURE__ */ u(T, {
418
+ href: s.href,
419
+ color: "neutral",
420
+ children: s.label
421
+ })
422
+ })]
423
+ })]
424
+ })
425
+ ]
426
+ });
427
+ }
428
+ function O() {
429
+ return /* @__PURE__ */ u("style", { dangerouslySetInnerHTML: { __html: ne } });
430
+ }
431
+ //#endregion
396
432
  //#region src/components/Button.tsx
397
- var N = {
433
+ var oe = {
398
434
  sm: {
399
435
  minHeight: 32,
400
436
  paddingInline: 12,
@@ -414,13 +450,13 @@ var N = {
414
450
  lineHeight: 24
415
451
  }
416
452
  };
417
- function P({ href: e, variant: t = "solid", color: r = "primary", size: i = "md", pill: a = !1, fullWidth: o = !1, style: s, children: c }) {
418
- let l = S(e);
453
+ function k({ href: e, variant: t = "solid", color: r = "primary", size: i = "md", pill: a = !1, fullWidth: o = !1, style: s, children: c }) {
454
+ let l = x(e);
419
455
  if (!l || l.startsWith("mailto:")) return null;
420
- let d = N[i], f = g("light", t, r), p = +(t === "outlined"), m = (d.minHeight - d.lineHeight) / 2 - p;
456
+ let d = oe[i], f = g("light", t, r), p = +(t === "outlined"), m = (d.minHeight - d.lineHeight) / 2 - p;
421
457
  return /* @__PURE__ */ u(n, {
422
458
  href: l,
423
- className: w.variant(t, r),
459
+ className: C.variant(t, r),
424
460
  style: {
425
461
  display: o ? "block" : "inline-block",
426
462
  boxSizing: "border-box",
@@ -451,29 +487,12 @@ function P({ href: e, variant: t = "solid", color: r = "primary", size: i = "md"
451
487
  });
452
488
  }
453
489
  //#endregion
454
- //#region src/components/Link.tsx
455
- function F({ href: e, color: t = "primary", underline: n = "always", style: r, children: i }) {
456
- let a = S(e);
457
- return a ? /* @__PURE__ */ u(s, {
458
- href: a,
459
- className: w.main(t),
460
- style: {
461
- fontFamily: y.body,
462
- color: _("light", t),
463
- textDecoration: n === "always" ? "underline" : "none",
464
- wordBreak: "break-word",
465
- ...r
466
- },
467
- children: i
468
- }) : /* @__PURE__ */ u(l, { children: i });
469
- }
470
- //#endregion
471
490
  //#region src/components/Divider.tsx
472
- function I({ style: e }) {
491
+ function A({ style: e }) {
473
492
  let t = v.light;
474
493
  return /* @__PURE__ */ u("div", {
475
494
  role: "separator",
476
- className: w.divider,
495
+ className: C.divider,
477
496
  style: {
478
497
  height: "1px",
479
498
  lineHeight: "1px",
@@ -489,7 +508,7 @@ function I({ style: e }) {
489
508
  }
490
509
  //#endregion
491
510
  //#region src/components/Card.tsx
492
- function L({ variant: e = "outlined", color: t = "neutral", style: n, children: r }) {
511
+ function j({ variant: e = "outlined", color: t = "neutral", style: n, children: r }) {
493
512
  let i = g("light", e, t), a = i.backgroundColor !== void 0;
494
513
  return /* @__PURE__ */ u("table", {
495
514
  role: "presentation",
@@ -497,7 +516,7 @@ function L({ variant: e = "outlined", color: t = "neutral", style: n, children:
497
516
  cellPadding: 0,
498
517
  cellSpacing: 0,
499
518
  border: 0,
500
- className: [w.variant(e, t), a ? "" : w.surface].filter(Boolean).join(" "),
519
+ className: [C.variant(e, t), a ? "" : C.surface].filter(Boolean).join(" "),
501
520
  style: {
502
521
  borderCollapse: "separate",
503
522
  borderRadius: b.md,
@@ -515,7 +534,7 @@ function L({ variant: e = "outlined", color: t = "neutral", style: n, children:
515
534
  }
516
535
  //#endregion
517
536
  //#region src/components/Avatar.tsx
518
- var te = {
537
+ var se = {
519
538
  sm: {
520
539
  box: 32,
521
540
  fontSize: "14px",
@@ -532,8 +551,8 @@ var te = {
532
551
  fontWeight: 600
533
552
  }
534
553
  };
535
- function R({ variant: e = "soft", color: t = "neutral", size: n = "md", src: r, alt: i = "", children: a }) {
536
- let s = te[n], c = C(r);
554
+ function M({ variant: e = "soft", color: t = "neutral", size: n = "md", src: r, alt: i = "", children: a }) {
555
+ let s = se[n], c = S(r);
537
556
  if (c) return /* @__PURE__ */ u(o, {
538
557
  src: c,
539
558
  width: s.box,
@@ -551,7 +570,7 @@ function R({ variant: e = "soft", color: t = "neutral", size: n = "md", src: r,
551
570
  cellPadding: 0,
552
571
  cellSpacing: 0,
553
572
  border: 0,
554
- className: w.variant(e, t),
573
+ className: C.variant(e, t),
555
574
  style: {
556
575
  display: "inline-table",
557
576
  boxSizing: "border-box",
@@ -580,8 +599,170 @@ function R({ variant: e = "soft", color: t = "neutral", size: n = "md", src: r,
580
599
  });
581
600
  }
582
601
  //#endregion
602
+ //#region src/alertIcons.ts
603
+ var N = {
604
+ primary: "info",
605
+ neutral: "info",
606
+ danger: "report",
607
+ success: "check-circle",
608
+ warning: "warning"
609
+ }, P = "https://cdn.hintoric.com/assets/email/alert";
610
+ function F(e, t) {
611
+ return `${P}/${e}-${t.replace("#", "").toLowerCase()}.png`;
612
+ }
613
+ function I(e, t, n) {
614
+ let r = N[n], i = g(e, t, n).color;
615
+ return {
616
+ name: r,
617
+ ink: i,
618
+ url: F(r, i)
619
+ };
620
+ }
621
+ function ce() {
622
+ let e = /* @__PURE__ */ new Map();
623
+ for (let t of ["light", "dark"]) for (let n of h) for (let r of m) {
624
+ let { name: i, ink: a, url: o } = I(t, n, r);
625
+ e.set(o, {
626
+ name: i,
627
+ ink: a,
628
+ url: o,
629
+ file: o.slice(44)
630
+ });
631
+ }
632
+ return [...e.values()];
633
+ }
634
+ //#endregion
635
+ //#region src/components/Alert.tsx
636
+ var le = {
637
+ sm: {
638
+ gap: 8,
639
+ padding: 8,
640
+ fontSize: 12,
641
+ icon: 20
642
+ },
643
+ md: {
644
+ gap: 10,
645
+ padding: 12,
646
+ fontSize: 14,
647
+ icon: 20
648
+ },
649
+ lg: {
650
+ gap: 14,
651
+ padding: 16,
652
+ fontSize: 16,
653
+ icon: 24
654
+ }
655
+ };
656
+ function L({ variant: e = "soft", color: t = "neutral", size: n = "md", startDecorator: r, endDecorator: i, style: a, children: o }) {
657
+ let s = le[n], c = r === void 0 ? /* @__PURE__ */ u(ue, {
658
+ variant: e,
659
+ color: t,
660
+ size: s.icon
661
+ }) : r, l = g("light", e, t), f = l.backgroundColor !== void 0, p = s.fontSize * 1.5, m = {
662
+ fontFamily: y.body,
663
+ fontSize: `${s.fontSize}px`,
664
+ fontWeight: 500,
665
+ lineHeight: 1.5
666
+ }, h = (e, t) => /* @__PURE__ */ u("td", {
667
+ width: "1",
668
+ style: {
669
+ verticalAlign: "top",
670
+ [t === "start" ? "paddingRight" : "paddingLeft"]: `${s.gap}px`
671
+ },
672
+ children: /* @__PURE__ */ u("table", {
673
+ role: "presentation",
674
+ cellPadding: 0,
675
+ cellSpacing: 0,
676
+ border: 0,
677
+ children: /* @__PURE__ */ u("tbody", { children: /* @__PURE__ */ u("tr", { children: /* @__PURE__ */ u("td", {
678
+ "data-alert-decorator": "",
679
+ height: p,
680
+ style: {
681
+ height: `${p}px`,
682
+ verticalAlign: "middle",
683
+ fontSize: 0,
684
+ lineHeight: 0
685
+ },
686
+ children: e
687
+ }) }) })
688
+ })
689
+ });
690
+ return /* @__PURE__ */ u("table", {
691
+ role: "presentation",
692
+ width: "100%",
693
+ cellPadding: 0,
694
+ cellSpacing: 0,
695
+ border: 0,
696
+ className: [C.variant(e, t), f ? "" : C.surface].filter(Boolean).join(" "),
697
+ style: {
698
+ borderCollapse: "separate",
699
+ borderRadius: b.sm,
700
+ backgroundColor: l.backgroundColor ?? v.light.surface,
701
+ color: l.color,
702
+ border: l.borderColor ? `1px solid ${l.borderColor}` : void 0,
703
+ ...m,
704
+ ...a
705
+ },
706
+ children: /* @__PURE__ */ u("tbody", { children: /* @__PURE__ */ u("tr", { children: /* @__PURE__ */ u("td", {
707
+ style: {
708
+ padding: `${s.padding}px`,
709
+ ...m
710
+ },
711
+ children: c || i ? /* @__PURE__ */ u("table", {
712
+ role: "presentation",
713
+ width: "100%",
714
+ cellPadding: 0,
715
+ cellSpacing: 0,
716
+ border: 0,
717
+ children: /* @__PURE__ */ u("tbody", { children: /* @__PURE__ */ d("tr", { children: [
718
+ c && h(c, "start"),
719
+ /* @__PURE__ */ u("td", {
720
+ "data-alert-content": "",
721
+ style: {
722
+ verticalAlign: "top",
723
+ ...m
724
+ },
725
+ children: o
726
+ }),
727
+ i && h(i, "end")
728
+ ] }) })
729
+ }) : o
730
+ }) }) })
731
+ });
732
+ }
733
+ function ue({ variant: e, color: t, size: n }) {
734
+ let r = I("light", e, t), i = I("dark", e, t), a = (e, t, r) => /* @__PURE__ */ u(o, {
735
+ src: e,
736
+ width: n,
737
+ height: n,
738
+ alt: "",
739
+ className: t,
740
+ style: {
741
+ display: r,
742
+ width: `${n}px`,
743
+ height: `${n}px`,
744
+ minWidth: `${n}px`,
745
+ maxWidth: "none",
746
+ border: 0
747
+ }
748
+ });
749
+ return /* @__PURE__ */ d(l, { children: [a(r.url, C.lightOnly, "block"), a(i.url, C.darkOnly, "none")] });
750
+ }
751
+ function de({ style: e, children: t }) {
752
+ return /* @__PURE__ */ u("div", {
753
+ style: {
754
+ fontFamily: y.body,
755
+ fontSize: "16px",
756
+ lineHeight: "24px",
757
+ fontWeight: 600,
758
+ ...e
759
+ },
760
+ children: t
761
+ });
762
+ }
763
+ //#endregion
583
764
  //#region src/components/Chip.tsx
584
- var z = {
765
+ var fe = {
585
766
  sm: {
586
767
  minHeight: 20,
587
768
  paddingInline: 6,
@@ -598,10 +779,10 @@ var z = {
598
779
  fontSize: 16
599
780
  }
600
781
  };
601
- function B({ variant: e = "soft", color: t = "neutral", size: n = "md", style: r, children: i }) {
602
- let a = z[n], o = g("light", e, t), s = o.backgroundColor !== void 0, c = +!!o.borderColor, l = a.fontSize * 1.5, d = (a.minHeight - l) / 2 - c;
782
+ function pe({ variant: e = "soft", color: t = "neutral", size: n = "md", style: r, children: i }) {
783
+ let a = fe[n], o = g("light", e, t), s = o.backgroundColor !== void 0, c = +!!o.borderColor, l = a.fontSize * 1.5, d = (a.minHeight - l) / 2 - c;
603
784
  return /* @__PURE__ */ u("span", {
604
- className: [w.variant(e, t), s ? "" : w.surface].filter(Boolean).join(" "),
785
+ className: [C.variant(e, t), s ? "" : C.surface].filter(Boolean).join(" "),
605
786
  style: {
606
787
  display: "inline-block",
607
788
  boxSizing: "border-box",
@@ -623,29 +804,29 @@ function B({ variant: e = "soft", color: t = "neutral", size: n = "md", style: r
623
804
  }
624
805
  //#endregion
625
806
  //#region src/components/HintoricLogo.tsx
626
- var V = {
807
+ var R = {
627
808
  light: "https://cdn.hintoric.com/assets/logo/black.png",
628
809
  dark: "https://cdn.hintoric.com/assets/logo/white.png",
629
810
  width: 104,
630
811
  height: 32
631
812
  };
632
- function H() {
813
+ function z() {
633
814
  return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(o, {
634
- src: V.light,
635
- width: V.width,
636
- height: V.height,
815
+ src: R.light,
816
+ width: R.width,
817
+ height: R.height,
637
818
  alt: "hintoric",
638
- className: w.logoLight,
819
+ className: C.logoLight,
639
820
  style: {
640
821
  display: "inline-block",
641
822
  margin: "0 auto"
642
823
  }
643
824
  }), /* @__PURE__ */ u(o, {
644
- src: V.dark,
645
- width: V.width,
646
- height: V.height,
825
+ src: R.dark,
826
+ width: R.width,
827
+ height: R.height,
647
828
  alt: "hintoric",
648
- className: w.logoDark,
829
+ className: C.logoDark,
649
830
  style: {
650
831
  display: "none",
651
832
  margin: "0 auto"
@@ -653,28 +834,291 @@ function H() {
653
834
  })] });
654
835
  }
655
836
  //#endregion
837
+ //#region src/templates/AuthCode/AuthCodeEmail.tsx
838
+ function B({ purpose: e, code: t, email: n }) {
839
+ return {
840
+ purpose: e,
841
+ code: t,
842
+ email: n
843
+ };
844
+ }
845
+ function V(e) {
846
+ let { messages: t } = e, n = B(e);
847
+ return /* @__PURE__ */ u(D, {
848
+ lang: t.lang,
849
+ preview: t.preview(n),
850
+ colorScheme: e.colorScheme,
851
+ footer: /* @__PURE__ */ d(E, {
852
+ level: "body-xs",
853
+ component: "p",
854
+ textAlign: "center",
855
+ textColor: "icon",
856
+ style: { fontWeight: 400 },
857
+ children: [t.footer(n), e.legalNotice && /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("br", {}), e.legalNotice] })]
858
+ }),
859
+ children: /* @__PURE__ */ u(H, { ...e })
860
+ });
861
+ }
862
+ function H(e) {
863
+ let { messages: t, code: n, url: r, expiresInMinutes: i } = e, a = B(e);
864
+ return /* @__PURE__ */ d(l, { children: [
865
+ /* @__PURE__ */ d("div", {
866
+ style: { textAlign: "center" },
867
+ children: [
868
+ /* @__PURE__ */ u(z, {}),
869
+ /* @__PURE__ */ u(E, {
870
+ level: "h3",
871
+ component: "h1",
872
+ style: {
873
+ margin: "16px 0 12px",
874
+ fontFamily: y.heading
875
+ },
876
+ children: t.heading(a)
877
+ }),
878
+ /* @__PURE__ */ u(E, {
879
+ level: "body-sm",
880
+ style: { marginBottom: "24px" },
881
+ children: t.intro(a)
882
+ })
883
+ ]
884
+ }),
885
+ /* @__PURE__ */ u(j, { children: /* @__PURE__ */ u(E, {
886
+ level: "h2",
887
+ component: "p",
888
+ textAlign: "center",
889
+ style: {
890
+ margin: 0,
891
+ fontFamily: y.code,
892
+ letterSpacing: "0.25em",
893
+ textIndent: "0.25em",
894
+ fontWeight: 700
895
+ },
896
+ children: /* @__PURE__ */ u("span", {
897
+ "data-auth-code": "",
898
+ children: n
899
+ })
900
+ }) }),
901
+ i !== void 0 && /* @__PURE__ */ u(E, {
902
+ level: "body-xs",
903
+ component: "p",
904
+ textAlign: "center",
905
+ textColor: "icon",
906
+ style: {
907
+ margin: "12px 0 0",
908
+ fontWeight: 400
909
+ },
910
+ children: t.expiry(i)
911
+ }),
912
+ r && /* @__PURE__ */ u("div", {
913
+ style: { marginTop: "24px" },
914
+ children: /* @__PURE__ */ u(k, {
915
+ href: r,
916
+ size: "lg",
917
+ fullWidth: !0,
918
+ children: t.button(a)
919
+ })
920
+ }),
921
+ /* @__PURE__ */ u(A, { style: { margin: "32px 0 24px" } }),
922
+ /* @__PURE__ */ u(E, {
923
+ level: "body-xs",
924
+ component: "p",
925
+ textAlign: "center",
926
+ style: {
927
+ margin: 0,
928
+ fontWeight: 400
929
+ },
930
+ children: t.ignore(a)
931
+ })
932
+ ] });
933
+ }
934
+ async function me(e) {
935
+ let { html: t, text: n } = await f(/* @__PURE__ */ u(V, { ...e }));
936
+ return {
937
+ subject: e.messages.subject(B(e)),
938
+ html: t,
939
+ text: n
940
+ };
941
+ }
942
+ //#endregion
943
+ //#region src/templates/AuthCode/messages.ts
944
+ var he = {
945
+ verification: "Bestätigungscode",
946
+ registration: "Registrierungscode",
947
+ login: "Anmeldecode",
948
+ recovery: "Wiederherstellungscode"
949
+ }, ge = {
950
+ verification: "Adresse bestätigen",
951
+ registration: "Konto anlegen",
952
+ login: "Anmelden",
953
+ recovery: "Konto wiederherstellen"
954
+ }, U = (e) => e === "login" || e === "recovery", _e = {
955
+ lang: "de",
956
+ subject: ({ purpose: e }) => `Dein ${he[e]} für hintoric`,
957
+ preview: ({ code: e }) => `Dein Code: ${e}`,
958
+ heading: ({ purpose: e }) => ge[e],
959
+ intro: ({ purpose: e, email: t }) => {
960
+ switch (e) {
961
+ case "verification": return `Gib diesen Code ein, um ${t ?? "deine E-Mail-Adresse"} zu bestätigen.`;
962
+ case "registration": return `Gib diesen Code ein, um dein Konto bei hintoric${t ? ` für ${t}` : ""} anzulegen.`;
963
+ case "login": return `Gib diesen Code ein, um dich${t ? ` als ${t}` : ""} bei hintoric anzumelden.`;
964
+ case "recovery": return `Gib diesen Code ein, um wieder auf dein Konto bei hintoric${t ? ` (${t})` : ""} zuzugreifen.`;
965
+ }
966
+ },
967
+ button: ({ purpose: e }) => ge[e],
968
+ expiry: (e) => `Der Code ist ${e} Minuten gültig.`,
969
+ ignore: ({ purpose: e }) => U(e) ? "Wenn du das nicht angefordert hast, kannst du diese E-Mail ignorieren. Gib den Code an niemanden weiter – hintoric fragt dich nie danach." : "Wenn du das nicht angefordert hast, kannst du diese E-Mail ignorieren.",
970
+ footer: () => "Du erhältst diese E-Mail, weil mit deiner Adresse ein Code bei hintoric angefordert wurde."
971
+ }, ve = {
972
+ verification: "verification code",
973
+ registration: "registration code",
974
+ login: "sign-in code",
975
+ recovery: "recovery code"
976
+ }, W = {
977
+ verification: "Confirm your address",
978
+ registration: "Create your account",
979
+ login: "Sign in",
980
+ recovery: "Recover your account"
981
+ }, ye = {
982
+ lang: "en",
983
+ subject: ({ purpose: e }) => `Your hintoric ${ve[e]}`,
984
+ preview: ({ code: e }) => `Your code: ${e}`,
985
+ heading: ({ purpose: e }) => W[e],
986
+ intro: ({ purpose: e, email: t }) => {
987
+ switch (e) {
988
+ case "verification": return `Enter this code to confirm ${t ?? "your email address"} for your hintoric account.`;
989
+ case "registration": return `Enter this code to create your hintoric account${t ? ` for ${t}` : ""}.`;
990
+ case "login": return `Enter this code to sign in to hintoric${t ? ` as ${t}` : ""}.`;
991
+ case "recovery": return `Enter this code to get back into your hintoric account${t ? ` (${t})` : ""}.`;
992
+ }
993
+ },
994
+ button: ({ purpose: e }) => W[e],
995
+ expiry: (e) => `The code is valid for ${e} minutes.`,
996
+ ignore: ({ purpose: e }) => U(e) ? "If you didn't request this, you can ignore this email. Don't share the code with anyone – hintoric will never ask you for it." : "If you didn't request this, you can ignore this email.",
997
+ footer: () => "We sent you this email because someone requested a code for your address at hintoric."
998
+ };
999
+ //#endregion
1000
+ //#region src/templates/AuthNoAccount/AuthNoAccountEmail.tsx
1001
+ function G({ purpose: e, email: t }) {
1002
+ return {
1003
+ purpose: e,
1004
+ email: t
1005
+ };
1006
+ }
1007
+ function K(e) {
1008
+ let { messages: t } = e, n = G(e);
1009
+ return /* @__PURE__ */ u(D, {
1010
+ lang: t.lang,
1011
+ preview: t.preview(n),
1012
+ colorScheme: e.colorScheme,
1013
+ footer: /* @__PURE__ */ d(E, {
1014
+ level: "body-xs",
1015
+ component: "p",
1016
+ textAlign: "center",
1017
+ textColor: "icon",
1018
+ style: { fontWeight: 400 },
1019
+ children: [t.footer(n), e.legalNotice && /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("br", {}), e.legalNotice] })]
1020
+ }),
1021
+ children: /* @__PURE__ */ u(q, { ...e })
1022
+ });
1023
+ }
1024
+ function q(e) {
1025
+ let { messages: t, registrationUrl: n } = e, r = G(e);
1026
+ return /* @__PURE__ */ d(l, { children: [
1027
+ /* @__PURE__ */ d("div", {
1028
+ style: { textAlign: "center" },
1029
+ children: [
1030
+ /* @__PURE__ */ u(z, {}),
1031
+ /* @__PURE__ */ u(E, {
1032
+ level: "h3",
1033
+ component: "h1",
1034
+ style: {
1035
+ margin: "16px 0 12px",
1036
+ fontFamily: y.heading
1037
+ },
1038
+ children: t.heading(r)
1039
+ }),
1040
+ /* @__PURE__ */ u(E, {
1041
+ level: "body-sm",
1042
+ style: { marginBottom: "24px" },
1043
+ children: t.body(r)
1044
+ })
1045
+ ]
1046
+ }),
1047
+ /* @__PURE__ */ u(L, {
1048
+ color: "warning",
1049
+ children: t.alert(r)
1050
+ }),
1051
+ /* @__PURE__ */ d("div", {
1052
+ style: { textAlign: "center" },
1053
+ children: [/* @__PURE__ */ u(E, {
1054
+ level: "body-sm",
1055
+ style: { margin: n ? "24px 0" : "24px 0 0" },
1056
+ children: t.hint(r)
1057
+ }), n && /* @__PURE__ */ u(k, {
1058
+ href: n,
1059
+ variant: "outlined",
1060
+ color: "neutral",
1061
+ size: "lg",
1062
+ fullWidth: !0,
1063
+ children: t.registerButton
1064
+ })]
1065
+ })
1066
+ ] });
1067
+ }
1068
+ async function be(e) {
1069
+ let { html: t, text: n } = await f(/* @__PURE__ */ u(K, { ...e }));
1070
+ return {
1071
+ subject: e.messages.subject(G(e)),
1072
+ html: t,
1073
+ text: n
1074
+ };
1075
+ }
1076
+ //#endregion
1077
+ //#region src/templates/AuthNoAccount/messages.ts
1078
+ var xe = {
1079
+ lang: "de",
1080
+ subject: () => "Zu dieser Adresse gibt es kein Konto bei hintoric",
1081
+ preview: () => "Vielleicht hast du dich mit einer anderen Adresse registriert.",
1082
+ heading: () => "Kein Konto gefunden",
1083
+ body: ({ purpose: e, email: t }) => `Für ${t} wurde ein ${e === "recovery" ? "Wiederherstellungscode" : "Bestätigungscode"} angefordert.`,
1084
+ alert: () => "Zu dieser Adresse gibt es kein Konto bei hintoric.",
1085
+ hint: () => "Vielleicht hast du dich mit einer anderen Adresse registriert. Wenn du den Code nicht angefordert hast, kannst du diese E-Mail ignorieren.",
1086
+ registerButton: "Konto anlegen",
1087
+ footer: () => "Du erhältst diese E-Mail, weil deine Adresse bei hintoric angegeben wurde."
1088
+ }, Se = {
1089
+ lang: "en",
1090
+ subject: () => "No hintoric account with this address",
1091
+ preview: () => "Maybe you signed up with a different address.",
1092
+ heading: () => "No account found",
1093
+ body: ({ purpose: e, email: t }) => `A ${e === "recovery" ? "recovery" : "verification"} code was requested for ${t}.`,
1094
+ alert: () => "There is no hintoric account with this address.",
1095
+ hint: () => "Maybe you signed up with a different address. If you didn't request the code, you can ignore this email.",
1096
+ registerButton: "Create an account",
1097
+ footer: () => "We sent you this email because someone entered your address at hintoric."
1098
+ };
1099
+ //#endregion
656
1100
  //#region src/templates/SecurityActivityAlert/SecurityActivityAlertEmail.tsx
657
- function U(e) {
1101
+ function J(e) {
658
1102
  return {
659
1103
  activity: e.activity,
660
1104
  target: e.target,
661
- targetName: W(e),
1105
+ targetName: Ce(e),
662
1106
  occurredAt: e.messages.formatDateTime(e.activity.occurredAt, e.timeZone)
663
1107
  };
664
1108
  }
665
- function W({ target: e }) {
1109
+ function Ce({ target: e }) {
666
1110
  return e.type === "workspace" ? e.workspaceName : e.email;
667
1111
  }
668
- function G(e) {
1112
+ function we(e) {
669
1113
  return e.split(/\s+/).map((e) => e.match(/\p{L}/u)?.[0]).filter((e) => e !== void 0).slice(0, 2).map((e) => e.toUpperCase()).join("");
670
1114
  }
671
- function K(e) {
672
- let { messages: t } = e, n = U(e);
673
- return /* @__PURE__ */ u(O, {
1115
+ function Y(e) {
1116
+ let { messages: t } = e, n = J(e);
1117
+ return /* @__PURE__ */ u(D, {
674
1118
  lang: t.lang,
675
1119
  preview: t.preview(n),
676
1120
  colorScheme: e.colorScheme,
677
- footer: /* @__PURE__ */ d(M, {
1121
+ footer: /* @__PURE__ */ d(E, {
678
1122
  level: "body-xs",
679
1123
  component: "p",
680
1124
  textAlign: "center",
@@ -682,17 +1126,17 @@ function K(e) {
682
1126
  style: { fontWeight: 400 },
683
1127
  children: [t.footer(n), e.legalNotice && /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("br", {}), e.legalNotice] })]
684
1128
  }),
685
- children: /* @__PURE__ */ u(q, { ...e })
1129
+ children: /* @__PURE__ */ u(X, { ...e })
686
1130
  });
687
1131
  }
688
- function q(e) {
689
- let { messages: t, activityLogUrl: n } = e, r = U(e);
1132
+ function X(e) {
1133
+ let { messages: t, activityLogUrl: n } = e, r = J(e);
690
1134
  return /* @__PURE__ */ d(l, { children: [
691
1135
  /* @__PURE__ */ d("div", {
692
1136
  style: { textAlign: "center" },
693
1137
  children: [
694
- /* @__PURE__ */ u(H, {}),
695
- /* @__PURE__ */ u(M, {
1138
+ /* @__PURE__ */ u(z, {}),
1139
+ /* @__PURE__ */ u(E, {
696
1140
  level: "h3",
697
1141
  component: "h1",
698
1142
  style: {
@@ -701,12 +1145,12 @@ function q(e) {
701
1145
  },
702
1146
  children: e.activity.title
703
1147
  }),
704
- /* @__PURE__ */ u(R, {
1148
+ /* @__PURE__ */ u(M, {
705
1149
  size: "sm",
706
1150
  color: "primary",
707
- children: G(r.targetName)
1151
+ children: we(r.targetName)
708
1152
  }),
709
- /* @__PURE__ */ u(M, {
1153
+ /* @__PURE__ */ u(E, {
710
1154
  level: "title-sm",
711
1155
  component: "span",
712
1156
  style: {
@@ -717,8 +1161,8 @@ function q(e) {
717
1161
  })
718
1162
  ]
719
1163
  }),
720
- /* @__PURE__ */ u(I, { style: { margin: "32px 0" } }),
721
- /* @__PURE__ */ d(M, {
1164
+ /* @__PURE__ */ u(A, { style: { margin: "32px 0" } }),
1165
+ /* @__PURE__ */ d(E, {
722
1166
  level: "body-sm",
723
1167
  style: { marginBottom: "24px" },
724
1168
  children: [
@@ -727,13 +1171,13 @@ function q(e) {
727
1171
  t.guidance(r)
728
1172
  ]
729
1173
  }),
730
- /* @__PURE__ */ u(P, {
1174
+ /* @__PURE__ */ u(k, {
731
1175
  href: e.reviewUrl,
732
1176
  size: "lg",
733
1177
  fullWidth: !0,
734
1178
  children: t.reviewButton
735
1179
  }),
736
- n && /* @__PURE__ */ u(M, {
1180
+ n && /* @__PURE__ */ u(E, {
737
1181
  level: "body-xs",
738
1182
  component: "p",
739
1183
  textAlign: "center",
@@ -741,7 +1185,7 @@ function q(e) {
741
1185
  marginTop: "24px",
742
1186
  fontWeight: 400
743
1187
  },
744
- children: t.activityLogHint((e) => /* @__PURE__ */ u(F, {
1188
+ children: t.activityLogHint((e) => /* @__PURE__ */ u(T, {
745
1189
  href: n,
746
1190
  underline: "none",
747
1191
  children: e
@@ -749,28 +1193,28 @@ function q(e) {
749
1193
  })
750
1194
  ] });
751
1195
  }
752
- async function J(e) {
753
- let { html: t, text: n } = await f(/* @__PURE__ */ u(K, { ...e }));
1196
+ async function Te(e) {
1197
+ let { html: t, text: n } = await f(/* @__PURE__ */ u(Y, { ...e }));
754
1198
  return {
755
- subject: e.messages.subject(U(e)),
1199
+ subject: e.messages.subject(J(e)),
756
1200
  html: t,
757
1201
  text: n
758
1202
  };
759
1203
  }
760
1204
  //#endregion
761
1205
  //#region src/templates/SecurityActivityAlert/messages.tsx
762
- function Y(e) {
763
- return (t, n) => new Intl.DateTimeFormat(e, {
1206
+ function Z(e, t = "") {
1207
+ return (n, r) => new Intl.DateTimeFormat(e, {
764
1208
  dateStyle: "long",
765
1209
  timeStyle: "short",
766
- timeZone: n
767
- }).format(t);
1210
+ timeZone: r
1211
+ }).format(n) + t;
768
1212
  }
769
- var X = {
1213
+ var Ee = {
770
1214
  lang: "de",
771
1215
  subject: ({ activity: e, targetName: t }) => `${e.title} – ${t}`,
772
1216
  preview: ({ activity: e, occurredAt: t }) => `${e.actorName} · ${t}`,
773
- summary: ({ activity: e, occurredAt: t }) => `${e.actorName} hat am ${t} eine sicherheitsrelevante Änderung vorgenommen.`,
1217
+ summary: ({ activity: e, occurredAt: t }) => `${e.actorName} hat am ${t} etwas geändert, das die Sicherheit betrifft.`,
774
1218
  guidance: () => "Wenn du diese Änderung nicht erwartet hast, prüfe die Aktivität jetzt.",
775
1219
  reviewButton: "Aktivität prüfen",
776
1220
  activityLogHint: (e) => /* @__PURE__ */ d(l, { children: [
@@ -778,9 +1222,9 @@ var X = {
778
1222
  e("Aktivitätsprotokoll"),
779
1223
  "."
780
1224
  ] }),
781
- footer: ({ target: e }) => e.type === "workspace" ? "Wir haben dir diese E-Mail gesendet, um dich als Administrator über wichtige Änderungen in deinem Workspace zu informieren." : "Wir haben dir diese E-Mail gesendet, um dich über wichtige Änderungen an deinem hintoric-Konto zu informieren.",
782
- formatDateTime: Y("de-DE")
783
- }, Z = {
1225
+ footer: ({ target: e }) => e.type === "workspace" ? "Du erhältst diese E-Mail, weil du diesen Workspace verwaltest." : "Du erhältst diese E-Mail, weil sie dein Konto bei hintoric betrifft.",
1226
+ formatDateTime: Z("de-DE", " Uhr")
1227
+ }, De = {
784
1228
  lang: "en",
785
1229
  subject: ({ activity: e, targetName: t }) => `${e.title} – ${t}`,
786
1230
  preview: ({ activity: e, occurredAt: t }) => `${e.actorName} · ${t}`,
@@ -793,17 +1237,21 @@ var X = {
793
1237
  "."
794
1238
  ] }),
795
1239
  footer: ({ target: e }) => e.type === "workspace" ? "We sent you this email to let you know, as an admin, about important changes in your workspace." : "We sent you this email to let you know about important changes to your hintoric account.",
796
- formatDateTime: Y("en-GB")
1240
+ formatDateTime: Z("en-GB")
797
1241
  };
798
1242
  //#endregion
799
1243
  //#region src/templates/WaitlistWelcome/WaitlistWelcomeEmail.tsx
800
1244
  function Q(e) {
801
1245
  let { messages: t } = e;
802
- return /* @__PURE__ */ u(O, {
1246
+ return /* @__PURE__ */ u(D, {
803
1247
  lang: t.lang,
804
1248
  preview: t.preview,
805
1249
  colorScheme: e.colorScheme,
806
- footer: /* @__PURE__ */ d(M, {
1250
+ unsubscribe: e.unsubscribeUrl && t.unsubscribe ? {
1251
+ href: e.unsubscribeUrl,
1252
+ label: t.unsubscribe
1253
+ } : void 0,
1254
+ footer: /* @__PURE__ */ d(E, {
807
1255
  level: "body-xs",
808
1256
  component: "p",
809
1257
  textAlign: "center",
@@ -818,8 +1266,8 @@ function $({ messages: e, websiteUrl: t }) {
818
1266
  return /* @__PURE__ */ d("div", {
819
1267
  style: { textAlign: "center" },
820
1268
  children: [
821
- /* @__PURE__ */ u(H, {}),
822
- /* @__PURE__ */ u(M, {
1269
+ /* @__PURE__ */ u(z, {}),
1270
+ /* @__PURE__ */ u(E, {
823
1271
  level: "body-xs",
824
1272
  component: "p",
825
1273
  textAlign: "center",
@@ -830,7 +1278,7 @@ function $({ messages: e, websiteUrl: t }) {
830
1278
  },
831
1279
  children: e.eyebrow
832
1280
  }),
833
- /* @__PURE__ */ u(M, {
1281
+ /* @__PURE__ */ u(E, {
834
1282
  level: "h3",
835
1283
  component: "h1",
836
1284
  style: {
@@ -839,23 +1287,23 @@ function $({ messages: e, websiteUrl: t }) {
839
1287
  },
840
1288
  children: e.heading
841
1289
  }),
842
- /* @__PURE__ */ u(M, {
1290
+ /* @__PURE__ */ u(E, {
843
1291
  level: "body-sm",
844
1292
  style: { marginBottom: "12px" },
845
1293
  children: e.body1
846
1294
  }),
847
- /* @__PURE__ */ u(M, {
1295
+ /* @__PURE__ */ u(E, {
848
1296
  level: "body-sm",
849
1297
  style: { marginBottom: "24px" },
850
1298
  children: e.body2
851
1299
  }),
852
- /* @__PURE__ */ u(P, {
1300
+ /* @__PURE__ */ u(k, {
853
1301
  href: t,
854
1302
  size: "lg",
855
1303
  fullWidth: !0,
856
1304
  children: e.cta
857
1305
  }),
858
- /* @__PURE__ */ u(M, {
1306
+ /* @__PURE__ */ u(E, {
859
1307
  level: "body-xs",
860
1308
  component: "p",
861
1309
  textAlign: "center",
@@ -869,7 +1317,7 @@ function $({ messages: e, websiteUrl: t }) {
869
1317
  ]
870
1318
  });
871
1319
  }
872
- async function ne(e) {
1320
+ async function Oe(e) {
873
1321
  let { html: t, text: n } = await f(/* @__PURE__ */ u(Q, { ...e }));
874
1322
  return {
875
1323
  subject: e.messages.subject,
@@ -879,30 +1327,32 @@ async function ne(e) {
879
1327
  }
880
1328
  //#endregion
881
1329
  //#region src/templates/WaitlistWelcome/messages.ts
882
- var re = {
1330
+ var ke = {
883
1331
  lang: "de",
884
- subject: "Du bist auf der Hintoric-Warteliste",
885
- preview: "Willkommen an Bord — Hintoric",
1332
+ subject: "Du stehst auf der Warteliste von hintoric",
1333
+ preview: "Sobald dein Platz frei wird, bekommst du eine E-Mail.",
886
1334
  eyebrow: "Danke, dass du dabei bist",
887
- heading: "Willkommen bei Hintoric",
888
- body1: "Alles erledigt. Sobald dein Platz frei wird, melden wir uns sofort — du bist einer der Ersten, die Hintoric ausprobieren dürfen.",
889
- body2: "Bis dahin halten wir dich auf dem Laufenden. Wenn jemand aus deinem Umfeld auch dazugehören sollte, leite diese Mail gerne weiter.",
1335
+ heading: "Willkommen bei hintoric",
1336
+ body1: "Du stehst auf der Warteliste. Sobald dein Platz frei wird, bekommst du eine E-Mail – und gehörst zu den Ersten, die hintoric ausprobieren.",
1337
+ body2: "Passt hintoric auch zu jemandem aus deinem Umfeld? Dann leite diese E-Mail gern weiter.",
890
1338
  cta: "Zu hintoric.com",
891
- signoff: "— Dein Hintoric-Team",
892
- footer: "Wir haben dir diese E-Mail gesendet, weil du dich für die Hintoric-Warteliste eingetragen hast."
893
- }, ie = {
1339
+ signoff: "— Dein hintoric-Team",
1340
+ footer: "Du erhältst diese E-Mail, weil du dich auf der Warteliste von hintoric eingetragen hast.",
1341
+ unsubscribe: "E-Mails abbestellen"
1342
+ }, Ae = {
894
1343
  lang: "en",
895
- subject: "You're on the Hintoric waitlist",
896
- preview: "Welcome aboard — Hintoric",
1344
+ subject: "You're on the hintoric waitlist",
1345
+ preview: "Welcome aboard — hintoric",
897
1346
  eyebrow: "Thanks for joining",
898
- heading: "Welcome to Hintoric",
899
- body1: "You're all set. As soon as your spot opens up we'll let you know — you'll be one of the first to try Hintoric.",
1347
+ heading: "Welcome to hintoric",
1348
+ body1: "You're all set. As soon as your spot opens up we'll let you know — you'll be one of the first to try hintoric.",
900
1349
  body2: "Until then we'll keep you posted. If someone you know should be on the list too, feel free to forward this email.",
901
1350
  cta: "Go to hintoric.com",
902
- signoff: "— Your Hintoric team",
903
- footer: "We sent you this email because you signed up for the Hintoric waitlist."
1351
+ signoff: "— Your hintoric team",
1352
+ footer: "We sent you this email because you signed up for the hintoric waitlist.",
1353
+ unsubscribe: "Unsubscribe"
904
1354
  };
905
1355
  //#endregion
906
- export { R as Avatar, P as Button, L as Card, B as Chip, k as ColorSchemeStyles, I as Divider, m as EMAIL_COLORS, h as EMAIL_VARIANTS, H as HintoricLogo, O as Layout, F as Link, q as SecurityActivityAlertContent, K as SecurityActivityAlertEmail, M as Typography, $ as WaitlistWelcomeContent, Q as WaitlistWelcomeEmail, y as emailFonts, p as emailPalette, b as emailRadius, v as emailSchemes, _ as mainColor, f as renderEmail, J as renderSecurityActivityAlert, ne as renderWaitlistWelcome, S as safeHref, C as safeImageSrc, X as securityActivityAlertMessagesDe, Z as securityActivityAlertMessagesEn, g as variantTokens, re as waitlistWelcomeMessagesDe, ie as waitlistWelcomeMessagesEn };
1356
+ export { L as Alert, de as AlertTitle, H as AuthCodeContent, V as AuthCodeEmail, q as AuthNoAccountContent, K as AuthNoAccountEmail, M as Avatar, k as Button, j as Card, pe as Chip, O as ColorSchemeStyles, A as Divider, P as EMAIL_ALERT_ICON_BASE, N as EMAIL_ALERT_ICON_FOR_COLOR, m as EMAIL_COLORS, h as EMAIL_VARIANTS, z as HintoricLogo, D as Layout, T as Link, X as SecurityActivityAlertContent, Y as SecurityActivityAlertEmail, E as Typography, $ as WaitlistWelcomeContent, Q as WaitlistWelcomeEmail, _e as authCodeMessagesDe, ye as authCodeMessagesEn, xe as authNoAccountMessagesDe, Se as authNoAccountMessagesEn, I as emailAlertIcon, ce as emailAlertIconFiles, F as emailAlertIconUrl, y as emailFonts, p as emailPalette, b as emailRadius, v as emailSchemes, _ as mainColor, me as renderAuthCode, be as renderAuthNoAccount, f as renderEmail, Te as renderSecurityActivityAlert, Oe as renderWaitlistWelcome, x as safeHref, S as safeImageSrc, Ee as securityActivityAlertMessagesDe, De as securityActivityAlertMessagesEn, g as variantTokens, ke as waitlistWelcomeMessagesDe, Ae as waitlistWelcomeMessagesEn };
907
1357
 
908
1358
  //# sourceMappingURL=index.js.map