@hintoric/email 0.2.0 → 0.4.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 (42) 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/HintoricLogo.d.ts.map +1 -1
  7. package/dist/index.d.ts +7 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +713 -147
  10. package/dist/index.js.map +1 -1
  11. package/dist/styles.d.ts +2 -0
  12. package/dist/styles.d.ts.map +1 -1
  13. package/dist/templates/AuthCode/AuthCodeEmail.d.ts +14 -0
  14. package/dist/templates/AuthCode/AuthCodeEmail.d.ts.map +1 -0
  15. package/dist/templates/AuthCode/index.d.ts +4 -0
  16. package/dist/templates/AuthCode/index.d.ts.map +1 -0
  17. package/dist/templates/AuthCode/messages.d.ts +4 -0
  18. package/dist/templates/AuthCode/messages.d.ts.map +1 -0
  19. package/dist/templates/AuthCode/types.d.ts +58 -0
  20. package/dist/templates/AuthCode/types.d.ts.map +1 -0
  21. package/dist/templates/AuthLink/AuthLinkEmail.d.ts +13 -0
  22. package/dist/templates/AuthLink/AuthLinkEmail.d.ts.map +1 -0
  23. package/dist/templates/AuthLink/index.d.ts +4 -0
  24. package/dist/templates/AuthLink/index.d.ts.map +1 -0
  25. package/dist/templates/AuthLink/messages.d.ts +4 -0
  26. package/dist/templates/AuthLink/messages.d.ts.map +1 -0
  27. package/dist/templates/AuthLink/types.d.ts +53 -0
  28. package/dist/templates/AuthLink/types.d.ts.map +1 -0
  29. package/dist/templates/AuthNoAccount/AuthNoAccountEmail.d.ts +13 -0
  30. package/dist/templates/AuthNoAccount/AuthNoAccountEmail.d.ts.map +1 -0
  31. package/dist/templates/AuthNoAccount/index.d.ts +4 -0
  32. package/dist/templates/AuthNoAccount/index.d.ts.map +1 -0
  33. package/dist/templates/AuthNoAccount/messages.d.ts +4 -0
  34. package/dist/templates/AuthNoAccount/messages.d.ts.map +1 -0
  35. package/dist/templates/AuthNoAccount/types.d.ts +55 -0
  36. package/dist/templates/AuthNoAccount/types.d.ts.map +1 -0
  37. package/dist/templates/SecurityActivityAlert/messages.d.ts.map +1 -1
  38. package/dist/templates/SecurityActivityAlert/types.d.ts +8 -3
  39. package/dist/templates/SecurityActivityAlert/types.d.ts.map +1 -1
  40. package/dist/tokens.d.ts +1 -0
  41. package/dist/tokens.d.ts.map +1 -1
  42. 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,31 +212,31 @@ 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
234
  //#region src/components/Link.tsx
230
- function O({ href: e, color: t = "primary", underline: n = "always", style: r, children: i }) {
231
- let a = S(e);
235
+ function T({ href: e, color: t = "primary", underline: n = "always", style: r, children: i }) {
236
+ let a = x(e);
232
237
  return a ? /* @__PURE__ */ u(s, {
233
238
  href: a,
234
- className: w.main(t),
239
+ className: C.main(t),
235
240
  style: {
236
241
  fontFamily: y.body,
237
242
  color: _("light", t),
@@ -244,7 +249,7 @@ function O({ href: e, color: t = "primary", underline: n = "always", style: r, c
244
249
  }
245
250
  //#endregion
246
251
  //#region src/components/Typography.tsx
247
- var k = {
252
+ var re = {
248
253
  h1: {
249
254
  fontSize: "36px",
250
255
  fontWeight: 700,
@@ -315,7 +320,7 @@ var k = {
315
320
  lineHeight: 1.5,
316
321
  ink: "inkTertiary"
317
322
  }
318
- }, A = {
323
+ }, ie = {
319
324
  h1: "h1",
320
325
  h2: "h2",
321
326
  h3: "h3",
@@ -327,16 +332,16 @@ var k = {
327
332
  "body-md": "p",
328
333
  "body-sm": "p",
329
334
  "body-xs": "span"
330
- }, j = {
335
+ }, ae = {
331
336
  primary: "inkPrimary",
332
337
  secondary: "inkSecondary",
333
338
  tertiary: "inkTertiary",
334
339
  icon: "inkIcon"
335
340
  };
336
- function M({ level: e = "body-md", component: t, textAlign: n, textColor: r, style: i, children: a }) {
337
- let o = k[e], s = r ? j[r] : o.ink, c = t ?? A[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];
338
343
  return /* @__PURE__ */ u(c, {
339
- className: w[s],
344
+ className: C[s],
340
345
  style: {
341
346
  margin: 0,
342
347
  fontFamily: y.body,
@@ -353,7 +358,7 @@ function M({ level: e = "body-md", component: t, textAlign: n, textColor: r, sty
353
358
  }
354
359
  //#endregion
355
360
  //#region src/components/Layout.tsx
356
- function N({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, children: f }) {
361
+ function D({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, children: f }) {
357
362
  let p = v.light;
358
363
  return /* @__PURE__ */ d(a, {
359
364
  lang: e,
@@ -368,11 +373,11 @@ function N({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, chi
368
373
  name: "supported-color-schemes",
369
374
  content: "light dark"
370
375
  }),
371
- /* @__PURE__ */ u(P, {})
376
+ /* @__PURE__ */ u(oe, {})
372
377
  ] }),
373
378
  /* @__PURE__ */ u(c, { children: n }),
374
379
  /* @__PURE__ */ d(t, {
375
- className: w.layoutCanvas,
380
+ className: C.layoutCanvas,
376
381
  style: {
377
382
  margin: 0,
378
383
  padding: "40px 0",
@@ -380,7 +385,7 @@ function N({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, chi
380
385
  fontFamily: y.body
381
386
  },
382
387
  children: [/* @__PURE__ */ u(r, {
383
- className: w.layoutCard,
388
+ className: C.layoutCard,
384
389
  style: {
385
390
  width: "100%",
386
391
  maxWidth: "440px",
@@ -390,7 +395,7 @@ function N({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, chi
390
395
  borderRadius: "20px"
391
396
  },
392
397
  children: /* @__PURE__ */ u("div", {
393
- className: w.layoutCardBody,
398
+ className: C.layoutCardBody,
394
399
  style: { padding: "48px" },
395
400
  children: f
396
401
  })
@@ -400,7 +405,7 @@ function N({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, chi
400
405
  padding: "24px 24px 0",
401
406
  textAlign: "center"
402
407
  },
403
- children: [o, s && S(s.href) && /* @__PURE__ */ u(M, {
408
+ children: [o, s && x(s.href) && /* @__PURE__ */ u(E, {
404
409
  level: "body-xs",
405
410
  component: "p",
406
411
  textAlign: "center",
@@ -409,7 +414,7 @@ function N({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, chi
409
414
  margin: o ? "12px 0 0" : 0,
410
415
  fontWeight: 400
411
416
  },
412
- children: /* @__PURE__ */ u(O, {
417
+ children: /* @__PURE__ */ u(T, {
413
418
  href: s.href,
414
419
  color: "neutral",
415
420
  children: s.label
@@ -420,12 +425,12 @@ function N({ lang: e, preview: n, footer: o, unsubscribe: s, colorScheme: l, chi
420
425
  ]
421
426
  });
422
427
  }
423
- function P() {
424
- return /* @__PURE__ */ u("style", { dangerouslySetInnerHTML: { __html: D } });
428
+ function oe() {
429
+ return /* @__PURE__ */ u("style", { dangerouslySetInnerHTML: { __html: ne } });
425
430
  }
426
431
  //#endregion
427
432
  //#region src/components/Button.tsx
428
- var F = {
433
+ var se = {
429
434
  sm: {
430
435
  minHeight: 32,
431
436
  paddingInline: 12,
@@ -445,13 +450,13 @@ var F = {
445
450
  lineHeight: 24
446
451
  }
447
452
  };
448
- function I({ href: e, variant: t = "solid", color: r = "primary", size: i = "md", pill: a = !1, fullWidth: o = !1, style: s, children: c }) {
449
- let l = S(e);
453
+ function O({ 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);
450
455
  if (!l || l.startsWith("mailto:")) return null;
451
- let d = F[i], f = g("light", t, r), p = +(t === "outlined"), m = (d.minHeight - d.lineHeight) / 2 - p;
456
+ let d = se[i], f = g("light", t, r), p = +(t === "outlined"), m = (d.minHeight - d.lineHeight) / 2 - p;
452
457
  return /* @__PURE__ */ u(n, {
453
458
  href: l,
454
- className: w.variant(t, r),
459
+ className: C.variant(t, r),
455
460
  style: {
456
461
  display: o ? "block" : "inline-block",
457
462
  boxSizing: "border-box",
@@ -483,11 +488,11 @@ function I({ href: e, variant: t = "solid", color: r = "primary", size: i = "md"
483
488
  }
484
489
  //#endregion
485
490
  //#region src/components/Divider.tsx
486
- function L({ style: e }) {
491
+ function k({ style: e }) {
487
492
  let t = v.light;
488
493
  return /* @__PURE__ */ u("div", {
489
494
  role: "separator",
490
- className: w.divider,
495
+ className: C.divider,
491
496
  style: {
492
497
  height: "1px",
493
498
  lineHeight: "1px",
@@ -503,7 +508,7 @@ function L({ style: e }) {
503
508
  }
504
509
  //#endregion
505
510
  //#region src/components/Card.tsx
506
- function R({ variant: e = "outlined", color: t = "neutral", style: n, children: r }) {
511
+ function A({ variant: e = "outlined", color: t = "neutral", style: n, children: r }) {
507
512
  let i = g("light", e, t), a = i.backgroundColor !== void 0;
508
513
  return /* @__PURE__ */ u("table", {
509
514
  role: "presentation",
@@ -511,7 +516,7 @@ function R({ variant: e = "outlined", color: t = "neutral", style: n, children:
511
516
  cellPadding: 0,
512
517
  cellSpacing: 0,
513
518
  border: 0,
514
- className: [w.variant(e, t), a ? "" : w.surface].filter(Boolean).join(" "),
519
+ className: [C.variant(e, t), a ? "" : C.surface].filter(Boolean).join(" "),
515
520
  style: {
516
521
  borderCollapse: "separate",
517
522
  borderRadius: b.md,
@@ -529,7 +534,7 @@ function R({ variant: e = "outlined", color: t = "neutral", style: n, children:
529
534
  }
530
535
  //#endregion
531
536
  //#region src/components/Avatar.tsx
532
- var z = {
537
+ var ce = {
533
538
  sm: {
534
539
  box: 32,
535
540
  fontSize: "14px",
@@ -546,8 +551,8 @@ var z = {
546
551
  fontWeight: 600
547
552
  }
548
553
  };
549
- function B({ variant: e = "soft", color: t = "neutral", size: n = "md", src: r, alt: i = "", children: a }) {
550
- let s = z[n], c = C(r);
554
+ function j({ variant: e = "soft", color: t = "neutral", size: n = "md", src: r, alt: i = "", children: a }) {
555
+ let s = ce[n], c = S(r);
551
556
  if (c) return /* @__PURE__ */ u(o, {
552
557
  src: c,
553
558
  width: s.box,
@@ -565,7 +570,7 @@ function B({ variant: e = "soft", color: t = "neutral", size: n = "md", src: r,
565
570
  cellPadding: 0,
566
571
  cellSpacing: 0,
567
572
  border: 0,
568
- className: w.variant(e, t),
573
+ className: C.variant(e, t),
569
574
  style: {
570
575
  display: "inline-table",
571
576
  boxSizing: "border-box",
@@ -594,8 +599,170 @@ function B({ variant: e = "soft", color: t = "neutral", size: n = "md", src: r,
594
599
  });
595
600
  }
596
601
  //#endregion
602
+ //#region src/alertIcons.ts
603
+ var M = {
604
+ primary: "info",
605
+ neutral: "info",
606
+ danger: "report",
607
+ success: "check-circle",
608
+ warning: "warning"
609
+ }, N = "https://cdn.hintoric.com/assets/email/alert";
610
+ function P(e, t) {
611
+ return `${N}/${e}-${t.replace("#", "").toLowerCase()}.png`;
612
+ }
613
+ function F(e, t, n) {
614
+ let r = M[n], i = g(e, t, n).color;
615
+ return {
616
+ name: r,
617
+ ink: i,
618
+ url: P(r, i)
619
+ };
620
+ }
621
+ function le() {
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 } = F(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 ue = {
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 I({ variant: e = "soft", color: t = "neutral", size: n = "md", startDecorator: r, endDecorator: i, style: a, children: o }) {
657
+ let s = ue[n], c = r === void 0 ? /* @__PURE__ */ u(de, {
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 de({ variant: e, color: t, size: n }) {
734
+ let r = F("light", e, t), i = F("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 fe({ 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
597
764
  //#region src/components/Chip.tsx
598
- var V = {
765
+ var pe = {
599
766
  sm: {
600
767
  minHeight: 20,
601
768
  paddingInline: 6,
@@ -612,10 +779,10 @@ var V = {
612
779
  fontSize: 16
613
780
  }
614
781
  };
615
- function H({ variant: e = "soft", color: t = "neutral", size: n = "md", style: r, children: i }) {
616
- let a = V[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 me({ variant: e = "soft", color: t = "neutral", size: n = "md", style: r, children: i }) {
783
+ let a = pe[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;
617
784
  return /* @__PURE__ */ u("span", {
618
- className: [w.variant(e, t), s ? "" : w.surface].filter(Boolean).join(" "),
785
+ className: [C.variant(e, t), s ? "" : C.surface].filter(Boolean).join(" "),
619
786
  style: {
620
787
  display: "inline-block",
621
788
  boxSizing: "border-box",
@@ -637,58 +804,457 @@ function H({ variant: e = "soft", color: t = "neutral", size: n = "md", style: r
637
804
  }
638
805
  //#endregion
639
806
  //#region src/components/HintoricLogo.tsx
640
- var U = {
807
+ var L = {
641
808
  light: "https://cdn.hintoric.com/assets/logo/black.png",
642
809
  dark: "https://cdn.hintoric.com/assets/logo/white.png",
643
- width: 104,
644
- height: 32
810
+ width: 118,
811
+ height: 26
645
812
  };
646
- function W() {
813
+ function R() {
647
814
  return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(o, {
648
- src: U.light,
649
- width: U.width,
650
- height: U.height,
815
+ src: L.light,
816
+ width: L.width,
817
+ height: L.height,
651
818
  alt: "hintoric",
652
- className: w.logoLight,
819
+ className: C.logoLight,
653
820
  style: {
654
821
  display: "inline-block",
822
+ width: `${L.width}px`,
823
+ height: `${L.height}px`,
655
824
  margin: "0 auto"
656
825
  }
657
826
  }), /* @__PURE__ */ u(o, {
658
- src: U.dark,
659
- width: U.width,
660
- height: U.height,
827
+ src: L.dark,
828
+ width: L.width,
829
+ height: L.height,
661
830
  alt: "hintoric",
662
- className: w.logoDark,
831
+ className: C.logoDark,
663
832
  style: {
664
833
  display: "none",
834
+ width: `${L.width}px`,
835
+ height: `${L.height}px`,
665
836
  margin: "0 auto"
666
837
  }
667
838
  })] });
668
839
  }
669
840
  //#endregion
841
+ //#region src/templates/AuthCode/AuthCodeEmail.tsx
842
+ function z({ purpose: e, code: t, email: n }) {
843
+ return {
844
+ purpose: e,
845
+ code: t,
846
+ email: n
847
+ };
848
+ }
849
+ function B(e) {
850
+ let { messages: t } = e, n = z(e);
851
+ return /* @__PURE__ */ u(D, {
852
+ lang: t.lang,
853
+ preview: t.preview(n),
854
+ colorScheme: e.colorScheme,
855
+ footer: /* @__PURE__ */ d(E, {
856
+ level: "body-xs",
857
+ component: "p",
858
+ textAlign: "center",
859
+ textColor: "icon",
860
+ style: { fontWeight: 400 },
861
+ children: [t.footer(n), e.legalNotice && /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("br", {}), e.legalNotice] })]
862
+ }),
863
+ children: /* @__PURE__ */ u(V, { ...e })
864
+ });
865
+ }
866
+ function V(e) {
867
+ let { messages: t, code: n, url: r, expiresInMinutes: i } = e, a = z(e);
868
+ return /* @__PURE__ */ d(l, { children: [
869
+ /* @__PURE__ */ d("div", {
870
+ style: { textAlign: "center" },
871
+ children: [
872
+ /* @__PURE__ */ u(R, {}),
873
+ /* @__PURE__ */ u(E, {
874
+ level: "h3",
875
+ component: "h1",
876
+ style: {
877
+ margin: "16px 0 12px",
878
+ fontFamily: y.heading
879
+ },
880
+ children: t.heading(a)
881
+ }),
882
+ /* @__PURE__ */ u(E, {
883
+ level: "body-sm",
884
+ style: { marginBottom: "24px" },
885
+ children: t.intro(a)
886
+ })
887
+ ]
888
+ }),
889
+ /* @__PURE__ */ u(A, { children: /* @__PURE__ */ u(E, {
890
+ level: "h2",
891
+ component: "p",
892
+ textAlign: "center",
893
+ style: {
894
+ margin: 0,
895
+ fontFamily: y.code,
896
+ letterSpacing: "0.25em",
897
+ textIndent: "0.25em",
898
+ fontWeight: 700
899
+ },
900
+ children: /* @__PURE__ */ u("span", {
901
+ "data-auth-code": "",
902
+ children: n
903
+ })
904
+ }) }),
905
+ i !== void 0 && /* @__PURE__ */ u(E, {
906
+ level: "body-xs",
907
+ component: "p",
908
+ textAlign: "center",
909
+ textColor: "icon",
910
+ style: {
911
+ margin: "12px 0 0",
912
+ fontWeight: 400
913
+ },
914
+ children: t.expiry(i)
915
+ }),
916
+ r && /* @__PURE__ */ u("div", {
917
+ style: { marginTop: "24px" },
918
+ children: /* @__PURE__ */ u(O, {
919
+ href: r,
920
+ size: "lg",
921
+ fullWidth: !0,
922
+ children: t.button(a)
923
+ })
924
+ }),
925
+ /* @__PURE__ */ u(k, { style: { margin: "32px 0 24px" } }),
926
+ /* @__PURE__ */ u(E, {
927
+ level: "body-xs",
928
+ component: "p",
929
+ textAlign: "center",
930
+ style: {
931
+ margin: 0,
932
+ fontWeight: 400
933
+ },
934
+ children: t.ignore(a)
935
+ })
936
+ ] });
937
+ }
938
+ async function he(e) {
939
+ let { html: t, text: n } = await f(/* @__PURE__ */ u(B, { ...e }));
940
+ return {
941
+ subject: e.messages.subject(z(e)),
942
+ html: t,
943
+ text: n
944
+ };
945
+ }
946
+ //#endregion
947
+ //#region src/templates/AuthCode/messages.ts
948
+ var ge = {
949
+ verification: "Bestätigungscode",
950
+ registration: "Registrierungscode",
951
+ login: "Anmeldecode",
952
+ recovery: "Wiederherstellungscode"
953
+ }, H = {
954
+ verification: "Adresse bestätigen",
955
+ registration: "Konto anlegen",
956
+ login: "Anmelden",
957
+ recovery: "Konto wiederherstellen"
958
+ }, U = (e) => e === "login" || e === "recovery", _e = {
959
+ lang: "de",
960
+ subject: ({ purpose: e }) => `Dein ${ge[e]} für hintoric`,
961
+ preview: ({ code: e }) => `Dein Code: ${e}`,
962
+ heading: ({ purpose: e }) => H[e],
963
+ intro: ({ purpose: e, email: t }) => {
964
+ switch (e) {
965
+ case "verification": return `Gib diesen Code ein, um ${t ?? "deine E-Mail-Adresse"} zu bestätigen.`;
966
+ case "registration": return `Gib diesen Code ein, um dein Konto bei hintoric${t ? ` für ${t}` : ""} anzulegen.`;
967
+ case "login": return `Gib diesen Code ein, um dich${t ? ` als ${t}` : ""} bei hintoric anzumelden.`;
968
+ case "recovery": return `Gib diesen Code ein, um wieder auf dein Konto bei hintoric${t ? ` (${t})` : ""} zuzugreifen.`;
969
+ }
970
+ },
971
+ button: ({ purpose: e }) => H[e],
972
+ expiry: (e) => `Der Code ist ${e} Minuten gültig.`,
973
+ 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.",
974
+ footer: () => "Du erhältst diese E-Mail, weil mit deiner Adresse ein Code bei hintoric angefordert wurde."
975
+ }, ve = {
976
+ verification: "verification code",
977
+ registration: "registration code",
978
+ login: "sign-in code",
979
+ recovery: "recovery code"
980
+ }, W = {
981
+ verification: "Confirm your address",
982
+ registration: "Create your account",
983
+ login: "Sign in",
984
+ recovery: "Recover your account"
985
+ }, ye = {
986
+ lang: "en",
987
+ subject: ({ purpose: e }) => `Your hintoric ${ve[e]}`,
988
+ preview: ({ code: e }) => `Your code: ${e}`,
989
+ heading: ({ purpose: e }) => W[e],
990
+ intro: ({ purpose: e, email: t }) => {
991
+ switch (e) {
992
+ case "verification": return `Enter this code to confirm ${t ?? "your email address"} for your hintoric account.`;
993
+ case "registration": return `Enter this code to create your hintoric account${t ? ` for ${t}` : ""}.`;
994
+ case "login": return `Enter this code to sign in to hintoric${t ? ` as ${t}` : ""}.`;
995
+ case "recovery": return `Enter this code to get back into your hintoric account${t ? ` (${t})` : ""}.`;
996
+ }
997
+ },
998
+ button: ({ purpose: e }) => W[e],
999
+ expiry: (e) => `The code is valid for ${e} minutes.`,
1000
+ 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.",
1001
+ footer: () => "We sent you this email because someone requested a code for your address at hintoric."
1002
+ };
1003
+ //#endregion
1004
+ //#region src/templates/AuthLink/AuthLinkEmail.tsx
1005
+ function G({ purpose: e, url: t, email: n }) {
1006
+ return {
1007
+ purpose: e,
1008
+ url: t,
1009
+ email: n
1010
+ };
1011
+ }
1012
+ function K(e) {
1013
+ let { messages: t } = e, n = G(e);
1014
+ return /* @__PURE__ */ u(D, {
1015
+ lang: t.lang,
1016
+ preview: t.preview(n),
1017
+ colorScheme: e.colorScheme,
1018
+ footer: /* @__PURE__ */ d(E, {
1019
+ level: "body-xs",
1020
+ component: "p",
1021
+ textAlign: "center",
1022
+ textColor: "icon",
1023
+ style: { fontWeight: 400 },
1024
+ children: [t.footer(n), e.legalNotice && /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("br", {}), e.legalNotice] })]
1025
+ }),
1026
+ children: /* @__PURE__ */ u(q, { ...e })
1027
+ });
1028
+ }
1029
+ function q(e) {
1030
+ let { messages: t, url: n, expiresInMinutes: r } = e, i = G(e);
1031
+ return /* @__PURE__ */ d(l, { children: [
1032
+ /* @__PURE__ */ d("div", {
1033
+ style: { textAlign: "center" },
1034
+ children: [
1035
+ /* @__PURE__ */ u(R, {}),
1036
+ /* @__PURE__ */ u(E, {
1037
+ level: "h3",
1038
+ component: "h1",
1039
+ style: {
1040
+ margin: "16px 0 12px",
1041
+ fontFamily: y.heading
1042
+ },
1043
+ children: t.heading(i)
1044
+ }),
1045
+ /* @__PURE__ */ u(E, {
1046
+ level: "body-sm",
1047
+ style: { marginBottom: "24px" },
1048
+ children: t.intro(i)
1049
+ })
1050
+ ]
1051
+ }),
1052
+ /* @__PURE__ */ u(O, {
1053
+ href: n,
1054
+ size: "lg",
1055
+ fullWidth: !0,
1056
+ children: t.button(i)
1057
+ }),
1058
+ r !== void 0 && /* @__PURE__ */ u(E, {
1059
+ level: "body-xs",
1060
+ component: "p",
1061
+ textAlign: "center",
1062
+ textColor: "icon",
1063
+ style: {
1064
+ margin: "12px 0 0",
1065
+ fontWeight: 400
1066
+ },
1067
+ children: t.expiry(r)
1068
+ }),
1069
+ /* @__PURE__ */ u(k, { style: { margin: "32px 0 24px" } }),
1070
+ /* @__PURE__ */ u(E, {
1071
+ level: "body-xs",
1072
+ component: "p",
1073
+ textAlign: "center",
1074
+ style: {
1075
+ margin: 0,
1076
+ fontWeight: 400
1077
+ },
1078
+ children: t.ignore(i)
1079
+ })
1080
+ ] });
1081
+ }
1082
+ async function be(e) {
1083
+ let { html: t, text: n } = await f(/* @__PURE__ */ u(K, { ...e }));
1084
+ return {
1085
+ subject: e.messages.subject(G(e)),
1086
+ html: t,
1087
+ text: n
1088
+ };
1089
+ }
1090
+ //#endregion
1091
+ //#region src/templates/AuthLink/messages.ts
1092
+ var xe = {
1093
+ verification: "Bestätigungslink",
1094
+ recovery: "Wiederherstellungslink"
1095
+ }, J = {
1096
+ verification: "Adresse bestätigen",
1097
+ recovery: "Konto wiederherstellen"
1098
+ }, Se = {
1099
+ lang: "de",
1100
+ subject: ({ purpose: e }) => `Dein ${xe[e]} für hintoric`,
1101
+ preview: ({ purpose: e }) => e === "verification" ? "Bestätige deine E-Mail-Adresse mit einem Klick." : "Greife mit einem Klick wieder auf dein Konto zu.",
1102
+ heading: ({ purpose: e }) => J[e],
1103
+ intro: ({ purpose: e, email: t }) => e === "verification" ? `Klicke auf den Button, um ${t ?? "deine E-Mail-Adresse"} zu bestätigen.` : `Klicke auf den Button, um wieder auf dein Konto bei hintoric${t ? ` (${t})` : ""} zuzugreifen.`,
1104
+ button: ({ purpose: e }) => J[e],
1105
+ expiry: (e) => `Der Link ist ${e} Minuten gültig.`,
1106
+ ignore: ({ purpose: e }) => e === "recovery" ? "Wenn du das nicht angefordert hast, kannst du diese E-Mail ignorieren. Gib den Link an niemanden weiter – hintoric fragt dich nie danach." : "Wenn du das nicht angefordert hast, kannst du diese E-Mail ignorieren.",
1107
+ footer: () => "Du erhältst diese E-Mail, weil mit deiner Adresse ein Link bei hintoric angefordert wurde."
1108
+ }, Ce = {
1109
+ verification: "verification link",
1110
+ recovery: "recovery link"
1111
+ }, Y = {
1112
+ verification: "Confirm your address",
1113
+ recovery: "Recover your account"
1114
+ }, we = {
1115
+ lang: "en",
1116
+ subject: ({ purpose: e }) => `Your hintoric ${Ce[e]}`,
1117
+ preview: ({ purpose: e }) => e === "verification" ? "Confirm your email address with one click." : "Get back into your account with one click.",
1118
+ heading: ({ purpose: e }) => Y[e],
1119
+ intro: ({ purpose: e, email: t }) => e === "verification" ? `Click the button to confirm ${t ?? "your email address"} for your hintoric account.` : `Click the button to get back into your hintoric account${t ? ` (${t})` : ""}.`,
1120
+ button: ({ purpose: e }) => Y[e],
1121
+ expiry: (e) => `The link is valid for ${e} minutes.`,
1122
+ ignore: ({ purpose: e }) => e === "recovery" ? "If you didn't request this, you can ignore this email. Don't share the link with anyone – hintoric will never ask you for it." : "If you didn't request this, you can ignore this email.",
1123
+ footer: () => "We sent you this email because someone requested a link for your address at hintoric."
1124
+ };
1125
+ //#endregion
1126
+ //#region src/templates/AuthNoAccount/AuthNoAccountEmail.tsx
1127
+ function X({ purpose: e, channel: t = "code", email: n }) {
1128
+ return {
1129
+ purpose: e,
1130
+ channel: t,
1131
+ email: n
1132
+ };
1133
+ }
1134
+ function Te(e) {
1135
+ let { messages: t } = e, n = X(e);
1136
+ return /* @__PURE__ */ u(D, {
1137
+ lang: t.lang,
1138
+ preview: t.preview(n),
1139
+ colorScheme: e.colorScheme,
1140
+ footer: /* @__PURE__ */ d(E, {
1141
+ level: "body-xs",
1142
+ component: "p",
1143
+ textAlign: "center",
1144
+ textColor: "icon",
1145
+ style: { fontWeight: 400 },
1146
+ children: [t.footer(n), e.legalNotice && /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("br", {}), e.legalNotice] })]
1147
+ }),
1148
+ children: /* @__PURE__ */ u(Ee, { ...e })
1149
+ });
1150
+ }
1151
+ function Ee(e) {
1152
+ let { messages: t, registrationUrl: n } = e, r = X(e);
1153
+ return /* @__PURE__ */ d(l, { children: [
1154
+ /* @__PURE__ */ d("div", {
1155
+ style: { textAlign: "center" },
1156
+ children: [
1157
+ /* @__PURE__ */ u(R, {}),
1158
+ /* @__PURE__ */ u(E, {
1159
+ level: "h3",
1160
+ component: "h1",
1161
+ style: {
1162
+ margin: "16px 0 12px",
1163
+ fontFamily: y.heading
1164
+ },
1165
+ children: t.heading(r)
1166
+ }),
1167
+ /* @__PURE__ */ u(E, {
1168
+ level: "body-sm",
1169
+ style: { marginBottom: "24px" },
1170
+ children: t.body(r)
1171
+ })
1172
+ ]
1173
+ }),
1174
+ /* @__PURE__ */ u(I, {
1175
+ color: "warning",
1176
+ children: t.alert(r)
1177
+ }),
1178
+ /* @__PURE__ */ d("div", {
1179
+ style: { textAlign: "center" },
1180
+ children: [/* @__PURE__ */ u(E, {
1181
+ level: "body-sm",
1182
+ style: { margin: n ? "24px 0" : "24px 0 0" },
1183
+ children: t.hint(r)
1184
+ }), n && /* @__PURE__ */ u(O, {
1185
+ href: n,
1186
+ variant: "outlined",
1187
+ color: "neutral",
1188
+ size: "lg",
1189
+ fullWidth: !0,
1190
+ children: t.registerButton
1191
+ })]
1192
+ })
1193
+ ] });
1194
+ }
1195
+ async function De(e) {
1196
+ let { html: t, text: n } = await f(/* @__PURE__ */ u(Te, { ...e }));
1197
+ return {
1198
+ subject: e.messages.subject(X(e)),
1199
+ html: t,
1200
+ text: n
1201
+ };
1202
+ }
1203
+ //#endregion
1204
+ //#region src/templates/AuthNoAccount/messages.ts
1205
+ var Oe = {
1206
+ recovery: {
1207
+ code: "Wiederherstellungscode",
1208
+ link: "Wiederherstellungslink"
1209
+ },
1210
+ verification: {
1211
+ code: "Bestätigungscode",
1212
+ link: "Bestätigungslink"
1213
+ }
1214
+ }, ke = {
1215
+ lang: "de",
1216
+ subject: () => "Zu dieser Adresse gibt es kein Konto bei hintoric",
1217
+ preview: () => "Vielleicht hast du dich mit einer anderen Adresse registriert.",
1218
+ heading: () => "Kein Konto gefunden",
1219
+ body: ({ purpose: e, channel: t, email: n }) => `Für ${n} wurde ein ${Oe[e][t]} angefordert.`,
1220
+ alert: () => "Zu dieser Adresse gibt es kein Konto bei hintoric.",
1221
+ hint: ({ channel: e }) => `Vielleicht hast du dich mit einer anderen Adresse registriert. Wenn du den ${e === "link" ? "Link" : "Code"} nicht angefordert hast, kannst du diese E-Mail ignorieren.`,
1222
+ registerButton: "Konto anlegen",
1223
+ footer: () => "Du erhältst diese E-Mail, weil deine Adresse bei hintoric angegeben wurde."
1224
+ }, Ae = {
1225
+ lang: "en",
1226
+ subject: () => "No hintoric account with this address",
1227
+ preview: () => "Maybe you signed up with a different address.",
1228
+ heading: () => "No account found",
1229
+ body: ({ purpose: e, channel: t, email: n }) => `A ${e === "recovery" ? "recovery" : "verification"} ${t === "link" ? "link" : "code"} was requested for ${n}.`,
1230
+ alert: () => "There is no hintoric account with this address.",
1231
+ hint: ({ channel: e }) => `Maybe you signed up with a different address. If you didn't request the ${e === "link" ? "link" : "code"}, you can ignore this email.`,
1232
+ registerButton: "Create an account",
1233
+ footer: () => "We sent you this email because someone entered your address at hintoric."
1234
+ };
1235
+ //#endregion
670
1236
  //#region src/templates/SecurityActivityAlert/SecurityActivityAlertEmail.tsx
671
- function G(e) {
1237
+ function Z(e) {
672
1238
  return {
673
1239
  activity: e.activity,
674
1240
  target: e.target,
675
- targetName: K(e),
1241
+ targetName: je(e),
676
1242
  occurredAt: e.messages.formatDateTime(e.activity.occurredAt, e.timeZone)
677
1243
  };
678
1244
  }
679
- function K({ target: e }) {
1245
+ function je({ target: e }) {
680
1246
  return e.type === "workspace" ? e.workspaceName : e.email;
681
1247
  }
682
- function q(e) {
1248
+ function Me(e) {
683
1249
  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("");
684
1250
  }
685
- function J(e) {
686
- let { messages: t } = e, n = G(e);
687
- return /* @__PURE__ */ u(N, {
1251
+ function Ne(e) {
1252
+ let { messages: t } = e, n = Z(e);
1253
+ return /* @__PURE__ */ u(D, {
688
1254
  lang: t.lang,
689
1255
  preview: t.preview(n),
690
1256
  colorScheme: e.colorScheme,
691
- footer: /* @__PURE__ */ d(M, {
1257
+ footer: /* @__PURE__ */ d(E, {
692
1258
  level: "body-xs",
693
1259
  component: "p",
694
1260
  textAlign: "center",
@@ -696,17 +1262,17 @@ function J(e) {
696
1262
  style: { fontWeight: 400 },
697
1263
  children: [t.footer(n), e.legalNotice && /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("br", {}), e.legalNotice] })]
698
1264
  }),
699
- children: /* @__PURE__ */ u(Y, { ...e })
1265
+ children: /* @__PURE__ */ u(Pe, { ...e })
700
1266
  });
701
1267
  }
702
- function Y(e) {
703
- let { messages: t, activityLogUrl: n } = e, r = G(e);
1268
+ function Pe(e) {
1269
+ let { messages: t, activityLogUrl: n } = e, r = Z(e);
704
1270
  return /* @__PURE__ */ d(l, { children: [
705
1271
  /* @__PURE__ */ d("div", {
706
1272
  style: { textAlign: "center" },
707
1273
  children: [
708
- /* @__PURE__ */ u(W, {}),
709
- /* @__PURE__ */ u(M, {
1274
+ /* @__PURE__ */ u(R, {}),
1275
+ /* @__PURE__ */ u(E, {
710
1276
  level: "h3",
711
1277
  component: "h1",
712
1278
  style: {
@@ -715,12 +1281,12 @@ function Y(e) {
715
1281
  },
716
1282
  children: e.activity.title
717
1283
  }),
718
- /* @__PURE__ */ u(B, {
1284
+ /* @__PURE__ */ u(j, {
719
1285
  size: "sm",
720
1286
  color: "primary",
721
- children: q(r.targetName)
1287
+ children: Me(r.targetName)
722
1288
  }),
723
- /* @__PURE__ */ u(M, {
1289
+ /* @__PURE__ */ u(E, {
724
1290
  level: "title-sm",
725
1291
  component: "span",
726
1292
  style: {
@@ -731,8 +1297,8 @@ function Y(e) {
731
1297
  })
732
1298
  ]
733
1299
  }),
734
- /* @__PURE__ */ u(L, { style: { margin: "32px 0" } }),
735
- /* @__PURE__ */ d(M, {
1300
+ /* @__PURE__ */ u(k, { style: { margin: "32px 0" } }),
1301
+ /* @__PURE__ */ d(E, {
736
1302
  level: "body-sm",
737
1303
  style: { marginBottom: "24px" },
738
1304
  children: [
@@ -741,13 +1307,13 @@ function Y(e) {
741
1307
  t.guidance(r)
742
1308
  ]
743
1309
  }),
744
- /* @__PURE__ */ u(I, {
1310
+ /* @__PURE__ */ u(O, {
745
1311
  href: e.reviewUrl,
746
1312
  size: "lg",
747
1313
  fullWidth: !0,
748
- children: t.reviewButton
1314
+ children: typeof t.reviewButton == "function" ? t.reviewButton(r) : t.reviewButton
749
1315
  }),
750
- n && /* @__PURE__ */ u(M, {
1316
+ n && /* @__PURE__ */ u(E, {
751
1317
  level: "body-xs",
752
1318
  component: "p",
753
1319
  textAlign: "center",
@@ -755,7 +1321,7 @@ function Y(e) {
755
1321
  marginTop: "24px",
756
1322
  fontWeight: 400
757
1323
  },
758
- children: t.activityLogHint((e) => /* @__PURE__ */ u(O, {
1324
+ children: t.activityLogHint((e) => /* @__PURE__ */ u(T, {
759
1325
  href: n,
760
1326
  underline: "none",
761
1327
  children: e
@@ -763,57 +1329,57 @@ function Y(e) {
763
1329
  })
764
1330
  ] });
765
1331
  }
766
- async function X(e) {
767
- let { html: t, text: n } = await f(/* @__PURE__ */ u(J, { ...e }));
1332
+ async function Fe(e) {
1333
+ let { html: t, text: n } = await f(/* @__PURE__ */ u(Ne, { ...e }));
768
1334
  return {
769
- subject: e.messages.subject(G(e)),
1335
+ subject: e.messages.subject(Z(e)),
770
1336
  html: t,
771
1337
  text: n
772
1338
  };
773
1339
  }
774
1340
  //#endregion
775
1341
  //#region src/templates/SecurityActivityAlert/messages.tsx
776
- function Z(e) {
777
- return (t, n) => new Intl.DateTimeFormat(e, {
1342
+ function Q(e, t = "") {
1343
+ return (n, r) => new Intl.DateTimeFormat(e, {
778
1344
  dateStyle: "long",
779
1345
  timeStyle: "short",
780
- timeZone: n
781
- }).format(t);
1346
+ timeZone: r
1347
+ }).format(n) + t;
782
1348
  }
783
- var ee = {
1349
+ var Ie = {
784
1350
  lang: "de",
785
1351
  subject: ({ activity: e, targetName: t }) => `${e.title} – ${t}`,
786
- preview: ({ activity: e, occurredAt: t }) => `${e.actorName} · ${t}`,
787
- summary: ({ activity: e, occurredAt: t }) => `${e.actorName} hat am ${t} eine sicherheitsrelevante Änderung vorgenommen.`,
788
- guidance: () => "Wenn du diese Änderung nicht erwartet hast, prüfe die Aktivität jetzt.",
789
- reviewButton: "Aktivität prüfen",
1352
+ preview: ({ activity: e, occurredAt: t }) => e.actorName ? `${e.actorName} · ${t}` : t,
1353
+ summary: ({ activity: e, target: t, occurredAt: n }) => e.actorName ? `${e.actorName} hat am ${n} etwas geändert, das die Sicherheit betrifft.` : `Am ${n} wurde etwas ${t.type === "account" ? "an deinem Konto " : ""}geändert, das die Sicherheit betrifft.`,
1354
+ guidance: ({ target: e }) => e.type === "account" ? "Wenn du das nicht warst, sichere dein Konto jetzt." : "Wenn du diese Änderung nicht erwartet hast, prüfe die Aktivität jetzt.",
1355
+ reviewButton: ({ target: e }) => e.type === "account" ? "Konto prüfen" : "Aktivität prüfen",
790
1356
  activityLogHint: (e) => /* @__PURE__ */ d(l, { children: [
791
1357
  "Alle sicherheitsrelevanten Aktivitäten findest du im ",
792
1358
  e("Aktivitätsprotokoll"),
793
1359
  "."
794
1360
  ] }),
795
- 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.",
796
- formatDateTime: Z("de-DE")
797
- }, te = {
1361
+ 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.",
1362
+ formatDateTime: Q("de-DE", " Uhr")
1363
+ }, Le = {
798
1364
  lang: "en",
799
1365
  subject: ({ activity: e, targetName: t }) => `${e.title} – ${t}`,
800
- preview: ({ activity: e, occurredAt: t }) => `${e.actorName} · ${t}`,
801
- summary: ({ activity: e, occurredAt: t }) => `${e.actorName} made a security-relevant change on ${t}.`,
802
- guidance: () => "If you didn't expect this change, review the activity now.",
803
- reviewButton: "Review activity",
1366
+ preview: ({ activity: e, occurredAt: t }) => e.actorName ? `${e.actorName} · ${t}` : t,
1367
+ summary: ({ activity: e, target: t, occurredAt: n }) => e.actorName ? `${e.actorName} made a security-relevant change on ${n}.` : `Something security-relevant changed ${t.type === "account" ? "on your account " : ""}on ${n}.`,
1368
+ guidance: ({ target: e }) => e.type === "account" ? "If this wasn't you, secure your account now." : "If you didn't expect this change, review the activity now.",
1369
+ reviewButton: ({ target: e }) => e.type === "account" ? "Review account" : "Review activity",
804
1370
  activityLogHint: (e) => /* @__PURE__ */ d(l, { children: [
805
1371
  "You can see all security-relevant activity in the ",
806
1372
  e("activity log"),
807
1373
  "."
808
1374
  ] }),
809
1375
  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.",
810
- formatDateTime: Z("en-GB")
1376
+ formatDateTime: Q("en-GB")
811
1377
  };
812
1378
  //#endregion
813
1379
  //#region src/templates/WaitlistWelcome/WaitlistWelcomeEmail.tsx
814
- function Q(e) {
1380
+ function Re(e) {
815
1381
  let { messages: t } = e;
816
- return /* @__PURE__ */ u(N, {
1382
+ return /* @__PURE__ */ u(D, {
817
1383
  lang: t.lang,
818
1384
  preview: t.preview,
819
1385
  colorScheme: e.colorScheme,
@@ -821,7 +1387,7 @@ function Q(e) {
821
1387
  href: e.unsubscribeUrl,
822
1388
  label: t.unsubscribe
823
1389
  } : void 0,
824
- footer: /* @__PURE__ */ d(M, {
1390
+ footer: /* @__PURE__ */ d(E, {
825
1391
  level: "body-xs",
826
1392
  component: "p",
827
1393
  textAlign: "center",
@@ -836,8 +1402,8 @@ function $({ messages: e, websiteUrl: t }) {
836
1402
  return /* @__PURE__ */ d("div", {
837
1403
  style: { textAlign: "center" },
838
1404
  children: [
839
- /* @__PURE__ */ u(W, {}),
840
- /* @__PURE__ */ u(M, {
1405
+ /* @__PURE__ */ u(R, {}),
1406
+ /* @__PURE__ */ u(E, {
841
1407
  level: "body-xs",
842
1408
  component: "p",
843
1409
  textAlign: "center",
@@ -848,7 +1414,7 @@ function $({ messages: e, websiteUrl: t }) {
848
1414
  },
849
1415
  children: e.eyebrow
850
1416
  }),
851
- /* @__PURE__ */ u(M, {
1417
+ /* @__PURE__ */ u(E, {
852
1418
  level: "h3",
853
1419
  component: "h1",
854
1420
  style: {
@@ -857,23 +1423,23 @@ function $({ messages: e, websiteUrl: t }) {
857
1423
  },
858
1424
  children: e.heading
859
1425
  }),
860
- /* @__PURE__ */ u(M, {
1426
+ /* @__PURE__ */ u(E, {
861
1427
  level: "body-sm",
862
1428
  style: { marginBottom: "12px" },
863
1429
  children: e.body1
864
1430
  }),
865
- /* @__PURE__ */ u(M, {
1431
+ /* @__PURE__ */ u(E, {
866
1432
  level: "body-sm",
867
1433
  style: { marginBottom: "24px" },
868
1434
  children: e.body2
869
1435
  }),
870
- /* @__PURE__ */ u(I, {
1436
+ /* @__PURE__ */ u(O, {
871
1437
  href: t,
872
1438
  size: "lg",
873
1439
  fullWidth: !0,
874
1440
  children: e.cta
875
1441
  }),
876
- /* @__PURE__ */ u(M, {
1442
+ /* @__PURE__ */ u(E, {
877
1443
  level: "body-xs",
878
1444
  component: "p",
879
1445
  textAlign: "center",
@@ -887,8 +1453,8 @@ function $({ messages: e, websiteUrl: t }) {
887
1453
  ]
888
1454
  });
889
1455
  }
890
- async function ne(e) {
891
- let { html: t, text: n } = await f(/* @__PURE__ */ u(Q, { ...e }));
1456
+ async function ze(e) {
1457
+ let { html: t, text: n } = await f(/* @__PURE__ */ u(Re, { ...e }));
892
1458
  return {
893
1459
  subject: e.messages.subject,
894
1460
  html: t,
@@ -897,32 +1463,32 @@ async function ne(e) {
897
1463
  }
898
1464
  //#endregion
899
1465
  //#region src/templates/WaitlistWelcome/messages.ts
900
- var re = {
1466
+ var Be = {
901
1467
  lang: "de",
902
- subject: "Du bist auf der Hintoric-Warteliste",
903
- preview: "Willkommen an Bord — Hintoric",
1468
+ subject: "Du stehst auf der Warteliste von hintoric",
1469
+ preview: "Sobald dein Platz frei wird, bekommst du eine E-Mail.",
904
1470
  eyebrow: "Danke, dass du dabei bist",
905
- heading: "Willkommen bei Hintoric",
906
- body1: "Alles erledigt. Sobald dein Platz frei wird, melden wir uns sofort — du bist einer der Ersten, die Hintoric ausprobieren dürfen.",
907
- body2: "Bis dahin halten wir dich auf dem Laufenden. Wenn jemand aus deinem Umfeld auch dazugehören sollte, leite diese Mail gerne weiter.",
1471
+ heading: "Willkommen bei hintoric",
1472
+ 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.",
1473
+ body2: "Passt hintoric auch zu jemandem aus deinem Umfeld? Dann leite diese E-Mail gern weiter.",
908
1474
  cta: "Zu hintoric.com",
909
- signoff: "— Dein Hintoric-Team",
910
- footer: "Wir haben dir diese E-Mail gesendet, weil du dich für die Hintoric-Warteliste eingetragen hast.",
911
- unsubscribe: "Abmelden"
912
- }, ie = {
1475
+ signoff: "— Dein hintoric-Team",
1476
+ footer: "Du erhältst diese E-Mail, weil du dich auf der Warteliste von hintoric eingetragen hast.",
1477
+ unsubscribe: "E-Mails abbestellen"
1478
+ }, Ve = {
913
1479
  lang: "en",
914
- subject: "You're on the Hintoric waitlist",
915
- preview: "Welcome aboard — Hintoric",
1480
+ subject: "You're on the hintoric waitlist",
1481
+ preview: "Welcome aboard — hintoric",
916
1482
  eyebrow: "Thanks for joining",
917
- heading: "Welcome to Hintoric",
918
- 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.",
1483
+ heading: "Welcome to hintoric",
1484
+ 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.",
919
1485
  body2: "Until then we'll keep you posted. If someone you know should be on the list too, feel free to forward this email.",
920
1486
  cta: "Go to hintoric.com",
921
- signoff: "— Your Hintoric team",
922
- footer: "We sent you this email because you signed up for the Hintoric waitlist.",
1487
+ signoff: "— Your hintoric team",
1488
+ footer: "We sent you this email because you signed up for the hintoric waitlist.",
923
1489
  unsubscribe: "Unsubscribe"
924
1490
  };
925
1491
  //#endregion
926
- export { B as Avatar, I as Button, R as Card, H as Chip, P as ColorSchemeStyles, L as Divider, m as EMAIL_COLORS, h as EMAIL_VARIANTS, W as HintoricLogo, N as Layout, O as Link, Y as SecurityActivityAlertContent, J 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, X as renderSecurityActivityAlert, ne as renderWaitlistWelcome, S as safeHref, C as safeImageSrc, ee as securityActivityAlertMessagesDe, te as securityActivityAlertMessagesEn, g as variantTokens, re as waitlistWelcomeMessagesDe, ie as waitlistWelcomeMessagesEn };
1492
+ export { I as Alert, fe as AlertTitle, V as AuthCodeContent, B as AuthCodeEmail, q as AuthLinkContent, K as AuthLinkEmail, Ee as AuthNoAccountContent, Te as AuthNoAccountEmail, j as Avatar, O as Button, A as Card, me as Chip, oe as ColorSchemeStyles, k as Divider, N as EMAIL_ALERT_ICON_BASE, M as EMAIL_ALERT_ICON_FOR_COLOR, m as EMAIL_COLORS, h as EMAIL_VARIANTS, R as HintoricLogo, D as Layout, T as Link, Pe as SecurityActivityAlertContent, Ne as SecurityActivityAlertEmail, E as Typography, $ as WaitlistWelcomeContent, Re as WaitlistWelcomeEmail, _e as authCodeMessagesDe, ye as authCodeMessagesEn, Se as authLinkMessagesDe, we as authLinkMessagesEn, ke as authNoAccountMessagesDe, Ae as authNoAccountMessagesEn, F as emailAlertIcon, le as emailAlertIconFiles, P as emailAlertIconUrl, y as emailFonts, p as emailPalette, b as emailRadius, v as emailSchemes, _ as mainColor, he as renderAuthCode, be as renderAuthLink, De as renderAuthNoAccount, f as renderEmail, Fe as renderSecurityActivityAlert, ze as renderWaitlistWelcome, x as safeHref, S as safeImageSrc, Ie as securityActivityAlertMessagesDe, Le as securityActivityAlertMessagesEn, g as variantTokens, Be as waitlistWelcomeMessagesDe, Ve as waitlistWelcomeMessagesEn };
927
1493
 
928
1494
  //# sourceMappingURL=index.js.map