@hyper-elements/react 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GUIDE.md +47 -28
- package/README.md +24 -5
- package/REFERENCE.md +487 -485
- package/dist/builder.cjs +795 -206
- package/dist/builder.cjs.map +1 -1
- package/dist/builder.js +795 -206
- package/dist/builder.js.map +1 -1
- package/dist/image.cjs +1 -1
- package/dist/image.cjs.map +1 -1
- package/dist/image.js +1 -1
- package/dist/image.js.map +1 -1
- package/dist/inspect.cjs +3601 -0
- package/dist/inspect.cjs.map +1 -0
- package/dist/inspect.d.cts +472 -0
- package/dist/inspect.d.ts +472 -0
- package/dist/inspect.js +3572 -0
- package/dist/inspect.js.map +1 -0
- package/dist/pdf.cjs +54 -9
- package/dist/pdf.cjs.map +1 -1
- package/dist/pdf.js +54 -9
- package/dist/pdf.js.map +1 -1
- package/dist/primitives.cjs +738 -142
- package/dist/primitives.cjs.map +1 -1
- package/dist/primitives.d.cts +558 -158
- package/dist/primitives.d.ts +558 -158
- package/dist/primitives.js +736 -143
- package/dist/primitives.js.map +1 -1
- package/package.json +10 -1
package/dist/primitives.d.cts
CHANGED
|
@@ -30,10 +30,52 @@ interface Node {
|
|
|
30
30
|
/** A string is text, where the parent takes text. */
|
|
31
31
|
type Child = Node | string;
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* The email clients Elements checks an Email for. Four were captured showing Elements 0.3.0 emails they weren't tuned
|
|
35
|
+
* on (unlayer/email-renderer), which says how closely each is measured; what's known of the rest is from caniemail's
|
|
36
|
+
* tables (caniemail.com, MIT), which test the CSS and HTML each client keeps. Either way a problem is said at its own
|
|
37
|
+
* severity; only one Elements assumes, unchecked, is a note.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
type EmailClient = "outlook" | "outlook-com" | "outlook-mac" | "outlook-app" | "gmail" | "gmail-app" | "gmail-app-other" | "apple-mail" | "yahoo" | "aol" | "samsung-email" | "thunderbird" | "protonmail" | "fastmail" | "hey" | "gmx" | "web-de" | "orange" | "sfr" | "laposte" | "free-fr" | "t-online-de" | "mail-ru" | "ionos" | "wp-pl" | "rainloop";
|
|
41
|
+
interface EmailClientMeasurement {
|
|
42
|
+
/** The Elements version whose emails were captured. */
|
|
43
|
+
elements: string;
|
|
44
|
+
/** The client captured. */
|
|
45
|
+
against: string;
|
|
46
|
+
/** When (an ISO date). */
|
|
47
|
+
captured: string;
|
|
48
|
+
/** Of the words in emails it wasn't tuned on, the share a model of the client draws within 4px of the client. */
|
|
49
|
+
wordsWithin4px: number;
|
|
50
|
+
/** Of neighbouring word pairs, the share on the same line, or on different lines, in both. */
|
|
51
|
+
lineBreaks: number;
|
|
52
|
+
}
|
|
53
|
+
interface EmailClientInfo {
|
|
54
|
+
name: string;
|
|
55
|
+
/** The widths it shows an email at, where it's been measured. */
|
|
56
|
+
widths: {
|
|
57
|
+
desktop?: number;
|
|
58
|
+
phone?: number;
|
|
59
|
+
};
|
|
60
|
+
/** Whether its dark mode was measured. */
|
|
61
|
+
dark: boolean;
|
|
62
|
+
/** Whether its model is an approximation (words placed within 4px well short of all of them). */
|
|
63
|
+
approximate: boolean;
|
|
64
|
+
/** Its captures; null where what's known of it is caniemail's. */
|
|
65
|
+
measured: EmailClientMeasurement | null;
|
|
66
|
+
}
|
|
67
|
+
declare const EMAIL_CLIENTS: Readonly<Record<EmailClient, EmailClientInfo>>;
|
|
68
|
+
/**
|
|
69
|
+
* What's checked when no clients are named: the ones most email is read in (the four captured, the Gmail and Outlook
|
|
70
|
+
* apps, Outlook for Mac, Yahoo, AOL and Samsung Email). The others only when named.
|
|
71
|
+
*/
|
|
72
|
+
declare const DEFAULT_EMAIL_CLIENTS: readonly EmailClient[];
|
|
73
|
+
|
|
33
74
|
/**
|
|
34
75
|
* What validation, resolution and conversion found: one list, each entry
|
|
35
76
|
* naming the node (by id where it has one) and the path to the value.
|
|
36
77
|
*/
|
|
78
|
+
|
|
37
79
|
type Severity = "error" | "warning" | "info";
|
|
38
80
|
interface Diagnostic {
|
|
39
81
|
/** Stable, for tools to match on: "prop/unknown", "layout/overflow", … */
|
|
@@ -44,8 +86,14 @@ interface Diagnostic {
|
|
|
44
86
|
path: string;
|
|
45
87
|
/** The node's id, once it has one. */
|
|
46
88
|
nodeId?: string;
|
|
89
|
+
/** The email clients it's about; absent: every email, never left out by `emailClients`. */
|
|
90
|
+
clients?: EmailClient[];
|
|
91
|
+
/** What to change. */
|
|
92
|
+
fix?: string;
|
|
93
|
+
/** Where to see it: for a problem known from caniemail's tables, its page there. */
|
|
94
|
+
see?: string;
|
|
47
95
|
}
|
|
48
|
-
/** One line per diagnostic, for error messages and logs. */
|
|
96
|
+
/** One line per diagnostic, for error messages and logs: with the email clients it's about, what to change and how to see it, where it says. */
|
|
49
97
|
declare function formatDiagnostics(diagnostics: readonly Diagnostic[]): string;
|
|
50
98
|
/** Thrown where a template with errors can't be rendered (`validate()` lists the problems without throwing). */
|
|
51
99
|
declare class ElementsError extends Error {
|
|
@@ -78,6 +126,8 @@ interface Kind<In = unknown, Out extends Json = Json> {
|
|
|
78
126
|
/** What it accepts, in words (for messages and descriptions). */
|
|
79
127
|
readonly accepts: string;
|
|
80
128
|
parse(input: unknown): Parsed<Out>;
|
|
129
|
+
/** Whether a value it parsed sets nothing (`breakpoints={{}}`): the prop is then left out, as if not given. */
|
|
130
|
+
empty?(value: Out): boolean;
|
|
81
131
|
jsonSchema(): JsonSchema;
|
|
82
132
|
/** Type only: what it accepts as input. */
|
|
83
133
|
readonly __in?: In;
|
|
@@ -196,11 +246,20 @@ type LinkValue = string | {
|
|
|
196
246
|
type Category = "root" | "section" | "layout" | "block" | "inline" | "shape";
|
|
197
247
|
/** The outputs Elements renders. */
|
|
198
248
|
type Target = "email" | "web" | "print" | "pdf" | "image";
|
|
249
|
+
/** The roots a template can have: each decides the output (`render()` writes an Email's HTML, a Page's, …). */
|
|
250
|
+
type RootName = "Email" | "Page" | "Document" | "Canvas";
|
|
251
|
+
/** What a style is about, for the guide and `describeComponents()`: the group it's listed in. */
|
|
252
|
+
type StyleGroup = "Layout" | "Size" | "Position" | "Spacing" | "Typography" | "Background" | "Border" | "Effects";
|
|
199
253
|
interface PropSpec<K extends Kind<any, any> = Kind<any, any>, R extends boolean = boolean> {
|
|
200
254
|
kind: K;
|
|
201
255
|
required?: R;
|
|
202
256
|
label: string;
|
|
203
257
|
description?: string;
|
|
258
|
+
/**
|
|
259
|
+
* The roots it may be given under (default: every root its component goes in). Under another root it's a
|
|
260
|
+
* `prop/not-supported` error naming these.
|
|
261
|
+
*/
|
|
262
|
+
roots?: readonly RootName[];
|
|
204
263
|
/** Used where the prop isn't given (not written into the document). */
|
|
205
264
|
default?: OutputOf<K>;
|
|
206
265
|
/** Editors may change it (default true). */
|
|
@@ -215,17 +274,20 @@ type SupportByTarget = Partial<Record<Target, Support | readonly Support[]>>;
|
|
|
215
274
|
* real classic Outlook for Windows; caniemail's client tables
|
|
216
275
|
* (caniemail.com); the output's writer itself, which turns it into markup the
|
|
217
276
|
* output shows (checked in Chromium, for email with and without <style>, and
|
|
218
|
-
* against a model of Outlook's layout built from those captures);
|
|
219
|
-
* as is, which browsers show as
|
|
277
|
+
* against a model of Outlook's layout built from those captures); captures of
|
|
278
|
+
* Gmail, Outlook.com or Apple Mail; CSS written as is, which browsers show as
|
|
279
|
+
* asked; or assumed, not yet checked.
|
|
220
280
|
*/
|
|
221
|
-
type SupportSource = "outlook-captures" | "caniemail" | "writer" | "css" | "assumed";
|
|
281
|
+
type SupportSource = "outlook-captures" | "gmail-captures" | "outlook-com-captures" | "apple-mail-captures" | "caniemail" | "writer" | "css" | "assumed";
|
|
222
282
|
/**
|
|
223
283
|
* How an output shows a style or prop, or some of its values (`values`, or
|
|
224
284
|
* `when` the value, on a node with such props, is such): as asked (`full`); as asked but in classic
|
|
225
285
|
* Outlook, which shows something else (`outlook`, email only: what it shows);
|
|
226
286
|
* not quite as asked anywhere it's shown (`partial`: what it shows); or not at
|
|
227
287
|
* all (`none`: what it does instead). Read by the support pass every output
|
|
228
|
-
* runs: `outlook` and `partial` are notes, `none` a warning
|
|
288
|
+
* runs: `outlook` and `partial` are notes, `none` a warning, whether the email
|
|
289
|
+
* clients it names were captured or are from caniemail's tables; one `assumed`
|
|
290
|
+
* is only ever a note.
|
|
229
291
|
*/
|
|
230
292
|
type Support = {
|
|
231
293
|
level: "full";
|
|
@@ -238,6 +300,12 @@ type Support = {
|
|
|
238
300
|
props: Record<string, Json>;
|
|
239
301
|
}) => boolean;
|
|
240
302
|
source: SupportSource;
|
|
303
|
+
/** For email, the clients it's about (`outlook`: classic Outlook); absent, every email client. */
|
|
304
|
+
clients?: readonly EmailClient[];
|
|
305
|
+
/** caniemail's feature the clients are from (its slug), checked against its tables (test/caniemail.test.ts). */
|
|
306
|
+
feature?: string;
|
|
307
|
+
/** What to change. */
|
|
308
|
+
fix?: string;
|
|
241
309
|
};
|
|
242
310
|
interface StyleSpec<K extends Kind<any, any> = Kind<any, any>> {
|
|
243
311
|
kind: K;
|
|
@@ -247,6 +315,13 @@ interface StyleSpec<K extends Kind<any, any> = Kind<any, any>> {
|
|
|
247
315
|
inherited?: boolean;
|
|
248
316
|
/** May be overridden on phones (`mobile`). */
|
|
249
317
|
mobile?: boolean;
|
|
318
|
+
/**
|
|
319
|
+
* The roots it may be set under (default: every root its component goes in). Under another root it's a
|
|
320
|
+
* `style/not-supported` error naming these, in `style` and in its condition blocks alike.
|
|
321
|
+
*/
|
|
322
|
+
roots?: readonly RootName[];
|
|
323
|
+
/** The group it's listed in; default: the group of its name (`STYLE_GROUP_OF`), as a style's name is CSS's. */
|
|
324
|
+
group?: StyleGroup;
|
|
250
325
|
editable?: boolean;
|
|
251
326
|
/** How each output shows it: required for every output its component renders to (a test checks). */
|
|
252
327
|
support?: SupportByTarget;
|
|
@@ -287,7 +362,11 @@ type EditorGroup = {
|
|
|
287
362
|
title: string;
|
|
288
363
|
composite: CompositeEditor;
|
|
289
364
|
};
|
|
290
|
-
|
|
365
|
+
/**
|
|
366
|
+
* A component's definition. `H` is its hover styles' keys: a definition made with `defineComponent()` keeps the list it
|
|
367
|
+
* gives (none: `readonly []`), so the types of its `style.hover` can be exactly those; the default is any of its styles.
|
|
368
|
+
*/
|
|
369
|
+
interface ComponentDefinition<P extends PropSpecs = PropSpecs, S extends StyleSpecs = StyleSpecs, H extends readonly (keyof S & string)[] = readonly (keyof S & string)[]> {
|
|
291
370
|
type: string;
|
|
292
371
|
label: string;
|
|
293
372
|
description: string;
|
|
@@ -306,7 +385,12 @@ interface ComponentDefinition<P extends PropSpecs = PropSpecs, S extends StyleSp
|
|
|
306
385
|
}>;
|
|
307
386
|
};
|
|
308
387
|
/** Style keys that may be set for `hover`. */
|
|
309
|
-
hover?:
|
|
388
|
+
hover?: H;
|
|
389
|
+
/**
|
|
390
|
+
* Styles a condition takes on this component that an output doesn't show under it, by condition, style and
|
|
391
|
+
* output (a Page root's phone font size): reported when the template is expanded, before a Grid is arranged.
|
|
392
|
+
*/
|
|
393
|
+
conditionSupport?: Partial<Record<"mobile" | "hover", Partial<Record<keyof S & string, SupportByTarget>>>>;
|
|
310
394
|
children: ChildrenRule;
|
|
311
395
|
/**
|
|
312
396
|
* How wide it is where nothing sets its width: `stretch` fills its parent's
|
|
@@ -323,6 +407,16 @@ interface ComponentDefinition<P extends PropSpecs = PropSpecs, S extends StyleSp
|
|
|
323
407
|
arrange?: (node: Node) => Node;
|
|
324
408
|
/** Where it renders; a target left out is a diagnostic. */
|
|
325
409
|
targets: Partial<Record<Target, TargetSupport>>;
|
|
410
|
+
/**
|
|
411
|
+
* The roots it may go in, of those whose output it renders to (default: every one whose children reach it). Under
|
|
412
|
+
* another such root it's the `notAllowed` error, by default `component/not-supported` naming these; under a root
|
|
413
|
+
* whose output it doesn't render to, it's `target/unsupported`, as for any component.
|
|
414
|
+
*/
|
|
415
|
+
roots?: readonly RootName[];
|
|
416
|
+
notAllowed?: {
|
|
417
|
+
code: string;
|
|
418
|
+
message: (root: string) => string;
|
|
419
|
+
};
|
|
326
420
|
/** Why a target it doesn't render can't, and what to do instead (in the diagnostic). */
|
|
327
421
|
unsupported?: Partial<Record<Target, string>>;
|
|
328
422
|
editor?: {
|
|
@@ -480,8 +574,11 @@ declare const Email$1: ComponentDefinition<{
|
|
|
480
574
|
inherited: true;
|
|
481
575
|
support: {
|
|
482
576
|
email: {
|
|
483
|
-
level: "
|
|
577
|
+
level: "outlook";
|
|
578
|
+
values: number[];
|
|
579
|
+
shows: string;
|
|
484
580
|
source: "caniemail";
|
|
581
|
+
feature: string;
|
|
485
582
|
};
|
|
486
583
|
web: {
|
|
487
584
|
level: "full";
|
|
@@ -559,8 +656,11 @@ declare const Email$1: ComponentDefinition<{
|
|
|
559
656
|
inherited: true;
|
|
560
657
|
support: {
|
|
561
658
|
email: {
|
|
562
|
-
level: "
|
|
563
|
-
|
|
659
|
+
level: "outlook";
|
|
660
|
+
values: string[];
|
|
661
|
+
shows: string;
|
|
662
|
+
source: "caniemail";
|
|
663
|
+
feature: string;
|
|
564
664
|
};
|
|
565
665
|
web: {
|
|
566
666
|
level: "full";
|
|
@@ -568,7 +668,7 @@ declare const Email$1: ComponentDefinition<{
|
|
|
568
668
|
};
|
|
569
669
|
};
|
|
570
670
|
};
|
|
571
|
-
}>;
|
|
671
|
+
}, readonly []>;
|
|
572
672
|
declare const Page$1: ComponentDefinition<{
|
|
573
673
|
readonly title: PropSpec<Kind<string, string>, false> & {
|
|
574
674
|
default: undefined;
|
|
@@ -588,6 +688,15 @@ declare const Page$1: ComponentDefinition<{
|
|
|
588
688
|
readonly description: PropSpec<Kind<string, string>, boolean> & {
|
|
589
689
|
default: any;
|
|
590
690
|
};
|
|
691
|
+
readonly breakpoints: PropSpec<Kind<{
|
|
692
|
+
mobile?: number;
|
|
693
|
+
}, {
|
|
694
|
+
mobile?: number;
|
|
695
|
+
} & {
|
|
696
|
+
[key: string]: Json;
|
|
697
|
+
}>, boolean> & {
|
|
698
|
+
default: any;
|
|
699
|
+
};
|
|
591
700
|
}, {
|
|
592
701
|
gap: {
|
|
593
702
|
kind: Kind<LengthInput<"px">, number>;
|
|
@@ -687,8 +796,11 @@ declare const Page$1: ComponentDefinition<{
|
|
|
687
796
|
inherited: true;
|
|
688
797
|
support: {
|
|
689
798
|
email: {
|
|
690
|
-
level: "
|
|
799
|
+
level: "outlook";
|
|
800
|
+
values: number[];
|
|
801
|
+
shows: string;
|
|
691
802
|
source: "caniemail";
|
|
803
|
+
feature: string;
|
|
692
804
|
};
|
|
693
805
|
web: {
|
|
694
806
|
level: "full";
|
|
@@ -766,8 +878,11 @@ declare const Page$1: ComponentDefinition<{
|
|
|
766
878
|
inherited: true;
|
|
767
879
|
support: {
|
|
768
880
|
email: {
|
|
769
|
-
level: "
|
|
770
|
-
|
|
881
|
+
level: "outlook";
|
|
882
|
+
values: string[];
|
|
883
|
+
shows: string;
|
|
884
|
+
source: "caniemail";
|
|
885
|
+
feature: string;
|
|
771
886
|
};
|
|
772
887
|
web: {
|
|
773
888
|
level: "full";
|
|
@@ -775,7 +890,7 @@ declare const Page$1: ComponentDefinition<{
|
|
|
775
890
|
};
|
|
776
891
|
};
|
|
777
892
|
};
|
|
778
|
-
}>;
|
|
893
|
+
}, readonly []>;
|
|
779
894
|
declare const Section$1: ComponentDefinition<{}, {
|
|
780
895
|
readonly gap: {
|
|
781
896
|
kind: Kind<LengthInput<"px">, number>;
|
|
@@ -904,8 +1019,11 @@ declare const Section$1: ComponentDefinition<{}, {
|
|
|
904
1019
|
inherited: true;
|
|
905
1020
|
support: {
|
|
906
1021
|
email: {
|
|
907
|
-
level: "
|
|
1022
|
+
level: "outlook";
|
|
1023
|
+
values: number[];
|
|
1024
|
+
shows: string;
|
|
908
1025
|
source: "caniemail";
|
|
1026
|
+
feature: string;
|
|
909
1027
|
};
|
|
910
1028
|
web: {
|
|
911
1029
|
level: "full";
|
|
@@ -983,8 +1101,11 @@ declare const Section$1: ComponentDefinition<{}, {
|
|
|
983
1101
|
inherited: true;
|
|
984
1102
|
support: {
|
|
985
1103
|
email: {
|
|
986
|
-
level: "
|
|
987
|
-
|
|
1104
|
+
level: "outlook";
|
|
1105
|
+
values: string[];
|
|
1106
|
+
shows: string;
|
|
1107
|
+
source: "caniemail";
|
|
1108
|
+
feature: string;
|
|
988
1109
|
};
|
|
989
1110
|
web: {
|
|
990
1111
|
level: "full";
|
|
@@ -992,7 +1113,7 @@ declare const Section$1: ComponentDefinition<{}, {
|
|
|
992
1113
|
};
|
|
993
1114
|
};
|
|
994
1115
|
};
|
|
995
|
-
}>;
|
|
1116
|
+
}, readonly []>;
|
|
996
1117
|
declare const Row$1: ComponentDefinition<{
|
|
997
1118
|
readonly dir: PropSpec<Kind<"ltr" | "rtl" | "auto", "ltr" | "rtl" | "auto">, false> & {
|
|
998
1119
|
default: undefined;
|
|
@@ -1183,11 +1304,19 @@ declare const Row$1: ComponentDefinition<{
|
|
|
1183
1304
|
kind: Kind<RadiusInput, Radius>;
|
|
1184
1305
|
label: string;
|
|
1185
1306
|
support: {
|
|
1186
|
-
email: {
|
|
1307
|
+
email: ({
|
|
1187
1308
|
level: "outlook";
|
|
1188
1309
|
shows: string;
|
|
1189
1310
|
source: "caniemail";
|
|
1190
|
-
|
|
1311
|
+
feature: string;
|
|
1312
|
+
clients?: undefined;
|
|
1313
|
+
} | {
|
|
1314
|
+
level: "partial";
|
|
1315
|
+
shows: string;
|
|
1316
|
+
source: "caniemail";
|
|
1317
|
+
feature: string;
|
|
1318
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
1319
|
+
})[];
|
|
1191
1320
|
web: {
|
|
1192
1321
|
level: "full";
|
|
1193
1322
|
source: SupportSource;
|
|
@@ -1263,8 +1392,11 @@ declare const Row$1: ComponentDefinition<{
|
|
|
1263
1392
|
inherited: true;
|
|
1264
1393
|
support: {
|
|
1265
1394
|
email: {
|
|
1266
|
-
level: "
|
|
1395
|
+
level: "outlook";
|
|
1396
|
+
values: number[];
|
|
1397
|
+
shows: string;
|
|
1267
1398
|
source: "caniemail";
|
|
1399
|
+
feature: string;
|
|
1268
1400
|
};
|
|
1269
1401
|
web: {
|
|
1270
1402
|
level: "full";
|
|
@@ -1342,8 +1474,11 @@ declare const Row$1: ComponentDefinition<{
|
|
|
1342
1474
|
inherited: true;
|
|
1343
1475
|
support: {
|
|
1344
1476
|
email: {
|
|
1345
|
-
level: "
|
|
1346
|
-
|
|
1477
|
+
level: "outlook";
|
|
1478
|
+
values: string[];
|
|
1479
|
+
shows: string;
|
|
1480
|
+
source: "caniemail";
|
|
1481
|
+
feature: string;
|
|
1347
1482
|
};
|
|
1348
1483
|
web: {
|
|
1349
1484
|
level: "full";
|
|
@@ -1351,7 +1486,7 @@ declare const Row$1: ComponentDefinition<{
|
|
|
1351
1486
|
};
|
|
1352
1487
|
};
|
|
1353
1488
|
};
|
|
1354
|
-
}>;
|
|
1489
|
+
}, readonly []>;
|
|
1355
1490
|
declare const Column$1: ComponentDefinition<{}, {
|
|
1356
1491
|
readonly flex: {
|
|
1357
1492
|
kind: Kind<number | "none", number | "none">;
|
|
@@ -1519,11 +1654,19 @@ declare const Column$1: ComponentDefinition<{}, {
|
|
|
1519
1654
|
kind: Kind<RadiusInput, Radius>;
|
|
1520
1655
|
label: string;
|
|
1521
1656
|
support: {
|
|
1522
|
-
email: {
|
|
1657
|
+
email: ({
|
|
1523
1658
|
level: "outlook";
|
|
1524
1659
|
shows: string;
|
|
1525
1660
|
source: "caniemail";
|
|
1526
|
-
|
|
1661
|
+
feature: string;
|
|
1662
|
+
clients?: undefined;
|
|
1663
|
+
} | {
|
|
1664
|
+
level: "partial";
|
|
1665
|
+
shows: string;
|
|
1666
|
+
source: "caniemail";
|
|
1667
|
+
feature: string;
|
|
1668
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
1669
|
+
})[];
|
|
1527
1670
|
web: {
|
|
1528
1671
|
level: "full";
|
|
1529
1672
|
source: SupportSource;
|
|
@@ -1599,8 +1742,11 @@ declare const Column$1: ComponentDefinition<{}, {
|
|
|
1599
1742
|
inherited: true;
|
|
1600
1743
|
support: {
|
|
1601
1744
|
email: {
|
|
1602
|
-
level: "
|
|
1745
|
+
level: "outlook";
|
|
1746
|
+
values: number[];
|
|
1747
|
+
shows: string;
|
|
1603
1748
|
source: "caniemail";
|
|
1749
|
+
feature: string;
|
|
1604
1750
|
};
|
|
1605
1751
|
web: {
|
|
1606
1752
|
level: "full";
|
|
@@ -1678,8 +1824,11 @@ declare const Column$1: ComponentDefinition<{}, {
|
|
|
1678
1824
|
inherited: true;
|
|
1679
1825
|
support: {
|
|
1680
1826
|
email: {
|
|
1681
|
-
level: "
|
|
1682
|
-
|
|
1827
|
+
level: "outlook";
|
|
1828
|
+
values: string[];
|
|
1829
|
+
shows: string;
|
|
1830
|
+
source: "caniemail";
|
|
1831
|
+
feature: string;
|
|
1683
1832
|
};
|
|
1684
1833
|
web: {
|
|
1685
1834
|
level: "full";
|
|
@@ -1687,7 +1836,7 @@ declare const Column$1: ComponentDefinition<{}, {
|
|
|
1687
1836
|
};
|
|
1688
1837
|
};
|
|
1689
1838
|
};
|
|
1690
|
-
}>;
|
|
1839
|
+
}, readonly []>;
|
|
1691
1840
|
declare const Text$1: ComponentDefinition<{
|
|
1692
1841
|
dir: PropSpec<Kind<"ltr" | "rtl" | "auto", "ltr" | "rtl" | "auto">, false> & {
|
|
1693
1842
|
default: undefined;
|
|
@@ -1786,11 +1935,19 @@ declare const Text$1: ComponentDefinition<{
|
|
|
1786
1935
|
kind: Kind<RadiusInput, Radius>;
|
|
1787
1936
|
label: string;
|
|
1788
1937
|
support: {
|
|
1789
|
-
email: {
|
|
1938
|
+
email: ({
|
|
1790
1939
|
level: "outlook";
|
|
1791
1940
|
shows: string;
|
|
1792
1941
|
source: "caniemail";
|
|
1793
|
-
|
|
1942
|
+
feature: string;
|
|
1943
|
+
clients?: undefined;
|
|
1944
|
+
} | {
|
|
1945
|
+
level: "partial";
|
|
1946
|
+
shows: string;
|
|
1947
|
+
source: "caniemail";
|
|
1948
|
+
feature: string;
|
|
1949
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
1950
|
+
})[];
|
|
1794
1951
|
web: {
|
|
1795
1952
|
level: "full";
|
|
1796
1953
|
source: SupportSource;
|
|
@@ -1849,8 +2006,11 @@ declare const Text$1: ComponentDefinition<{
|
|
|
1849
2006
|
inherited: true;
|
|
1850
2007
|
support: {
|
|
1851
2008
|
email: {
|
|
1852
|
-
level: "
|
|
2009
|
+
level: "outlook";
|
|
2010
|
+
values: number[];
|
|
2011
|
+
shows: string;
|
|
1853
2012
|
source: "caniemail";
|
|
2013
|
+
feature: string;
|
|
1854
2014
|
};
|
|
1855
2015
|
web: {
|
|
1856
2016
|
level: "full";
|
|
@@ -1928,8 +2088,11 @@ declare const Text$1: ComponentDefinition<{
|
|
|
1928
2088
|
inherited: true;
|
|
1929
2089
|
support: {
|
|
1930
2090
|
email: {
|
|
1931
|
-
level: "
|
|
1932
|
-
|
|
2091
|
+
level: "outlook";
|
|
2092
|
+
values: string[];
|
|
2093
|
+
shows: string;
|
|
2094
|
+
source: "caniemail";
|
|
2095
|
+
feature: string;
|
|
1933
2096
|
};
|
|
1934
2097
|
web: {
|
|
1935
2098
|
level: "full";
|
|
@@ -1942,8 +2105,12 @@ declare const Text$1: ComponentDefinition<{
|
|
|
1942
2105
|
label: string;
|
|
1943
2106
|
support: {
|
|
1944
2107
|
email: {
|
|
1945
|
-
level: "
|
|
2108
|
+
level: "partial";
|
|
2109
|
+
values: string[];
|
|
2110
|
+
shows: string;
|
|
1946
2111
|
source: "caniemail";
|
|
2112
|
+
feature: string;
|
|
2113
|
+
clients: ("gmail-app-other" | "protonmail" | "orange" | "sfr")[];
|
|
1947
2114
|
};
|
|
1948
2115
|
web: {
|
|
1949
2116
|
level: "full";
|
|
@@ -1951,7 +2118,7 @@ declare const Text$1: ComponentDefinition<{
|
|
|
1951
2118
|
};
|
|
1952
2119
|
};
|
|
1953
2120
|
};
|
|
1954
|
-
}>;
|
|
2121
|
+
}, readonly []>;
|
|
1955
2122
|
declare const Heading$1: ComponentDefinition<{
|
|
1956
2123
|
readonly dir: PropSpec<Kind<"ltr" | "rtl" | "auto", "ltr" | "rtl" | "auto">, false> & {
|
|
1957
2124
|
default: undefined;
|
|
@@ -2053,11 +2220,19 @@ declare const Heading$1: ComponentDefinition<{
|
|
|
2053
2220
|
kind: Kind<RadiusInput, Radius>;
|
|
2054
2221
|
label: string;
|
|
2055
2222
|
support: {
|
|
2056
|
-
email: {
|
|
2223
|
+
email: ({
|
|
2057
2224
|
level: "outlook";
|
|
2058
2225
|
shows: string;
|
|
2059
2226
|
source: "caniemail";
|
|
2060
|
-
|
|
2227
|
+
feature: string;
|
|
2228
|
+
clients?: undefined;
|
|
2229
|
+
} | {
|
|
2230
|
+
level: "partial";
|
|
2231
|
+
shows: string;
|
|
2232
|
+
source: "caniemail";
|
|
2233
|
+
feature: string;
|
|
2234
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
2235
|
+
})[];
|
|
2061
2236
|
web: {
|
|
2062
2237
|
level: "full";
|
|
2063
2238
|
source: SupportSource;
|
|
@@ -2116,8 +2291,11 @@ declare const Heading$1: ComponentDefinition<{
|
|
|
2116
2291
|
inherited: true;
|
|
2117
2292
|
support: {
|
|
2118
2293
|
email: {
|
|
2119
|
-
level: "
|
|
2294
|
+
level: "outlook";
|
|
2295
|
+
values: number[];
|
|
2296
|
+
shows: string;
|
|
2120
2297
|
source: "caniemail";
|
|
2298
|
+
feature: string;
|
|
2121
2299
|
};
|
|
2122
2300
|
web: {
|
|
2123
2301
|
level: "full";
|
|
@@ -2195,8 +2373,11 @@ declare const Heading$1: ComponentDefinition<{
|
|
|
2195
2373
|
inherited: true;
|
|
2196
2374
|
support: {
|
|
2197
2375
|
email: {
|
|
2198
|
-
level: "
|
|
2199
|
-
|
|
2376
|
+
level: "outlook";
|
|
2377
|
+
values: string[];
|
|
2378
|
+
shows: string;
|
|
2379
|
+
source: "caniemail";
|
|
2380
|
+
feature: string;
|
|
2200
2381
|
};
|
|
2201
2382
|
web: {
|
|
2202
2383
|
level: "full";
|
|
@@ -2209,8 +2390,12 @@ declare const Heading$1: ComponentDefinition<{
|
|
|
2209
2390
|
label: string;
|
|
2210
2391
|
support: {
|
|
2211
2392
|
email: {
|
|
2212
|
-
level: "
|
|
2393
|
+
level: "partial";
|
|
2394
|
+
values: string[];
|
|
2395
|
+
shows: string;
|
|
2213
2396
|
source: "caniemail";
|
|
2397
|
+
feature: string;
|
|
2398
|
+
clients: ("gmail-app-other" | "protonmail" | "orange" | "sfr")[];
|
|
2214
2399
|
};
|
|
2215
2400
|
web: {
|
|
2216
2401
|
level: "full";
|
|
@@ -2218,7 +2403,7 @@ declare const Heading$1: ComponentDefinition<{
|
|
|
2218
2403
|
};
|
|
2219
2404
|
};
|
|
2220
2405
|
};
|
|
2221
|
-
}>;
|
|
2406
|
+
}, readonly []>;
|
|
2222
2407
|
declare const Span$1: ComponentDefinition<{}, {
|
|
2223
2408
|
readonly verticalAlign: {
|
|
2224
2409
|
readonly kind: Kind<"sub" | "baseline" | "super", "sub" | "baseline" | "super">;
|
|
@@ -2282,8 +2467,11 @@ declare const Span$1: ComponentDefinition<{}, {
|
|
|
2282
2467
|
inherited: true;
|
|
2283
2468
|
support: {
|
|
2284
2469
|
email: {
|
|
2285
|
-
level: "
|
|
2470
|
+
level: "outlook";
|
|
2471
|
+
values: number[];
|
|
2472
|
+
shows: string;
|
|
2286
2473
|
source: "caniemail";
|
|
2474
|
+
feature: string;
|
|
2287
2475
|
};
|
|
2288
2476
|
web: {
|
|
2289
2477
|
level: "full";
|
|
@@ -2345,8 +2533,11 @@ declare const Span$1: ComponentDefinition<{}, {
|
|
|
2345
2533
|
inherited: true;
|
|
2346
2534
|
support: {
|
|
2347
2535
|
email: {
|
|
2348
|
-
level: "
|
|
2349
|
-
|
|
2536
|
+
level: "outlook";
|
|
2537
|
+
values: string[];
|
|
2538
|
+
shows: string;
|
|
2539
|
+
source: "caniemail";
|
|
2540
|
+
feature: string;
|
|
2350
2541
|
};
|
|
2351
2542
|
web: {
|
|
2352
2543
|
level: "full";
|
|
@@ -2359,8 +2550,12 @@ declare const Span$1: ComponentDefinition<{}, {
|
|
|
2359
2550
|
label: string;
|
|
2360
2551
|
support: {
|
|
2361
2552
|
email: {
|
|
2362
|
-
level: "
|
|
2553
|
+
level: "partial";
|
|
2554
|
+
values: string[];
|
|
2555
|
+
shows: string;
|
|
2363
2556
|
source: "caniemail";
|
|
2557
|
+
feature: string;
|
|
2558
|
+
clients: ("gmail-app-other" | "protonmail" | "orange" | "sfr")[];
|
|
2364
2559
|
};
|
|
2365
2560
|
web: {
|
|
2366
2561
|
level: "full";
|
|
@@ -2368,7 +2563,7 @@ declare const Span$1: ComponentDefinition<{}, {
|
|
|
2368
2563
|
};
|
|
2369
2564
|
};
|
|
2370
2565
|
};
|
|
2371
|
-
}>;
|
|
2566
|
+
}, readonly []>;
|
|
2372
2567
|
declare const Link$1: ComponentDefinition<{
|
|
2373
2568
|
readonly href: PropSpec<Kind<LinkInput, LinkValue>, true> & {
|
|
2374
2569
|
default: any;
|
|
@@ -2448,8 +2643,11 @@ declare const Link$1: ComponentDefinition<{
|
|
|
2448
2643
|
inherited: true;
|
|
2449
2644
|
support: {
|
|
2450
2645
|
email: {
|
|
2451
|
-
level: "
|
|
2646
|
+
level: "outlook";
|
|
2647
|
+
values: number[];
|
|
2648
|
+
shows: string;
|
|
2452
2649
|
source: "caniemail";
|
|
2650
|
+
feature: string;
|
|
2453
2651
|
};
|
|
2454
2652
|
web: {
|
|
2455
2653
|
level: "full";
|
|
@@ -2511,8 +2709,11 @@ declare const Link$1: ComponentDefinition<{
|
|
|
2511
2709
|
inherited: true;
|
|
2512
2710
|
support: {
|
|
2513
2711
|
email: {
|
|
2514
|
-
level: "
|
|
2515
|
-
|
|
2712
|
+
level: "outlook";
|
|
2713
|
+
values: string[];
|
|
2714
|
+
shows: string;
|
|
2715
|
+
source: "caniemail";
|
|
2716
|
+
feature: string;
|
|
2516
2717
|
};
|
|
2517
2718
|
web: {
|
|
2518
2719
|
level: "full";
|
|
@@ -2525,8 +2726,12 @@ declare const Link$1: ComponentDefinition<{
|
|
|
2525
2726
|
label: string;
|
|
2526
2727
|
support: {
|
|
2527
2728
|
email: {
|
|
2528
|
-
level: "
|
|
2729
|
+
level: "partial";
|
|
2730
|
+
values: string[];
|
|
2731
|
+
shows: string;
|
|
2529
2732
|
source: "caniemail";
|
|
2733
|
+
feature: string;
|
|
2734
|
+
clients: ("gmail-app-other" | "protonmail" | "orange" | "sfr")[];
|
|
2530
2735
|
};
|
|
2531
2736
|
web: {
|
|
2532
2737
|
level: "full";
|
|
@@ -2534,7 +2739,7 @@ declare const Link$1: ComponentDefinition<{
|
|
|
2534
2739
|
};
|
|
2535
2740
|
};
|
|
2536
2741
|
};
|
|
2537
|
-
}>;
|
|
2742
|
+
}, readonly ["color", "textDecoration", "backgroundColor"]>;
|
|
2538
2743
|
declare const Button$1: ComponentDefinition<{
|
|
2539
2744
|
readonly href: PropSpec<Kind<LinkInput, LinkValue>, true> & {
|
|
2540
2745
|
default: any;
|
|
@@ -2668,11 +2873,19 @@ declare const Button$1: ComponentDefinition<{
|
|
|
2668
2873
|
kind: Kind<RadiusInput, Radius>;
|
|
2669
2874
|
label: string;
|
|
2670
2875
|
support: {
|
|
2671
|
-
email: {
|
|
2876
|
+
email: ({
|
|
2672
2877
|
level: "outlook";
|
|
2673
2878
|
shows: string;
|
|
2674
2879
|
source: "caniemail";
|
|
2675
|
-
|
|
2880
|
+
feature: string;
|
|
2881
|
+
clients?: undefined;
|
|
2882
|
+
} | {
|
|
2883
|
+
level: "partial";
|
|
2884
|
+
shows: string;
|
|
2885
|
+
source: "caniemail";
|
|
2886
|
+
feature: string;
|
|
2887
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
2888
|
+
})[];
|
|
2676
2889
|
web: {
|
|
2677
2890
|
level: "full";
|
|
2678
2891
|
source: SupportSource;
|
|
@@ -2731,8 +2944,11 @@ declare const Button$1: ComponentDefinition<{
|
|
|
2731
2944
|
inherited: true;
|
|
2732
2945
|
support: {
|
|
2733
2946
|
email: {
|
|
2734
|
-
level: "
|
|
2947
|
+
level: "outlook";
|
|
2948
|
+
values: number[];
|
|
2949
|
+
shows: string;
|
|
2735
2950
|
source: "caniemail";
|
|
2951
|
+
feature: string;
|
|
2736
2952
|
};
|
|
2737
2953
|
web: {
|
|
2738
2954
|
level: "full";
|
|
@@ -2810,8 +3026,11 @@ declare const Button$1: ComponentDefinition<{
|
|
|
2810
3026
|
inherited: true;
|
|
2811
3027
|
support: {
|
|
2812
3028
|
email: {
|
|
2813
|
-
level: "
|
|
2814
|
-
|
|
3029
|
+
level: "outlook";
|
|
3030
|
+
values: string[];
|
|
3031
|
+
shows: string;
|
|
3032
|
+
source: "caniemail";
|
|
3033
|
+
feature: string;
|
|
2815
3034
|
};
|
|
2816
3035
|
web: {
|
|
2817
3036
|
level: "full";
|
|
@@ -2824,8 +3043,12 @@ declare const Button$1: ComponentDefinition<{
|
|
|
2824
3043
|
label: string;
|
|
2825
3044
|
support: {
|
|
2826
3045
|
email: {
|
|
2827
|
-
level: "
|
|
3046
|
+
level: "partial";
|
|
3047
|
+
values: string[];
|
|
3048
|
+
shows: string;
|
|
2828
3049
|
source: "caniemail";
|
|
3050
|
+
feature: string;
|
|
3051
|
+
clients: ("gmail-app-other" | "protonmail" | "orange" | "sfr")[];
|
|
2829
3052
|
};
|
|
2830
3053
|
web: {
|
|
2831
3054
|
level: "full";
|
|
@@ -2833,7 +3056,7 @@ declare const Button$1: ComponentDefinition<{
|
|
|
2833
3056
|
};
|
|
2834
3057
|
};
|
|
2835
3058
|
};
|
|
2836
|
-
}>;
|
|
3059
|
+
}, readonly ["color", "backgroundColor"]>;
|
|
2837
3060
|
declare const Image$1: ComponentDefinition<{
|
|
2838
3061
|
readonly src: PropSpec<Kind<AssetInput, Asset>, true> & {
|
|
2839
3062
|
default: any;
|
|
@@ -2948,18 +3171,26 @@ declare const Image$1: ComponentDefinition<{
|
|
|
2948
3171
|
kind: Kind<RadiusInput, Radius>;
|
|
2949
3172
|
label: string;
|
|
2950
3173
|
support: {
|
|
2951
|
-
email: {
|
|
3174
|
+
email: ({
|
|
2952
3175
|
level: "outlook";
|
|
2953
3176
|
shows: string;
|
|
2954
3177
|
source: "caniemail";
|
|
2955
|
-
|
|
3178
|
+
feature: string;
|
|
3179
|
+
clients?: undefined;
|
|
3180
|
+
} | {
|
|
3181
|
+
level: "partial";
|
|
3182
|
+
shows: string;
|
|
3183
|
+
source: "caniemail";
|
|
3184
|
+
feature: string;
|
|
3185
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
3186
|
+
})[];
|
|
2956
3187
|
web: {
|
|
2957
3188
|
level: "full";
|
|
2958
3189
|
source: SupportSource;
|
|
2959
3190
|
};
|
|
2960
3191
|
};
|
|
2961
3192
|
};
|
|
2962
|
-
}>;
|
|
3193
|
+
}, readonly []>;
|
|
2963
3194
|
declare const Divider$1: ComponentDefinition<{}, {
|
|
2964
3195
|
readonly borderTop: {
|
|
2965
3196
|
readonly kind: Kind<string | BorderSideInput, BorderSide>;
|
|
@@ -2997,13 +3228,13 @@ declare const Divider$1: ComponentDefinition<{}, {
|
|
|
2997
3228
|
readonly web: Support;
|
|
2998
3229
|
};
|
|
2999
3230
|
};
|
|
3000
|
-
}>;
|
|
3001
|
-
declare const LineBreak$1: ComponentDefinition<{}, {}>;
|
|
3231
|
+
}, readonly []>;
|
|
3232
|
+
declare const LineBreak$1: ComponentDefinition<{}, {}, readonly []>;
|
|
3002
3233
|
declare const MergeTag$1: ComponentDefinition<{
|
|
3003
3234
|
readonly name: PropSpec<Kind<string, string>, true> & {
|
|
3004
3235
|
default: any;
|
|
3005
3236
|
};
|
|
3006
|
-
}, {}>;
|
|
3237
|
+
}, {}, readonly []>;
|
|
3007
3238
|
declare const List$1: ComponentDefinition<{
|
|
3008
3239
|
readonly type: PropSpec<Kind<"number" | "bullet", "number" | "bullet">, boolean> & {
|
|
3009
3240
|
default: "bullet";
|
|
@@ -3178,8 +3409,11 @@ declare const List$1: ComponentDefinition<{
|
|
|
3178
3409
|
inherited: true;
|
|
3179
3410
|
support: {
|
|
3180
3411
|
email: {
|
|
3181
|
-
level: "
|
|
3412
|
+
level: "outlook";
|
|
3413
|
+
values: number[];
|
|
3414
|
+
shows: string;
|
|
3182
3415
|
source: "caniemail";
|
|
3416
|
+
feature: string;
|
|
3183
3417
|
};
|
|
3184
3418
|
web: {
|
|
3185
3419
|
level: "full";
|
|
@@ -3257,8 +3491,11 @@ declare const List$1: ComponentDefinition<{
|
|
|
3257
3491
|
inherited: true;
|
|
3258
3492
|
support: {
|
|
3259
3493
|
email: {
|
|
3260
|
-
level: "
|
|
3261
|
-
|
|
3494
|
+
level: "outlook";
|
|
3495
|
+
values: string[];
|
|
3496
|
+
shows: string;
|
|
3497
|
+
source: "caniemail";
|
|
3498
|
+
feature: string;
|
|
3262
3499
|
};
|
|
3263
3500
|
web: {
|
|
3264
3501
|
level: "full";
|
|
@@ -3266,7 +3503,7 @@ declare const List$1: ComponentDefinition<{
|
|
|
3266
3503
|
};
|
|
3267
3504
|
};
|
|
3268
3505
|
};
|
|
3269
|
-
}>;
|
|
3506
|
+
}, readonly []>;
|
|
3270
3507
|
declare const ListItem$1: ComponentDefinition<{
|
|
3271
3508
|
dir: PropSpec<Kind<"ltr" | "rtl" | "auto", "ltr" | "rtl" | "auto">, false> & {
|
|
3272
3509
|
default: undefined;
|
|
@@ -3324,8 +3561,11 @@ declare const ListItem$1: ComponentDefinition<{
|
|
|
3324
3561
|
inherited: true;
|
|
3325
3562
|
support: {
|
|
3326
3563
|
email: {
|
|
3327
|
-
level: "
|
|
3564
|
+
level: "outlook";
|
|
3565
|
+
values: number[];
|
|
3566
|
+
shows: string;
|
|
3328
3567
|
source: "caniemail";
|
|
3568
|
+
feature: string;
|
|
3329
3569
|
};
|
|
3330
3570
|
web: {
|
|
3331
3571
|
level: "full";
|
|
@@ -3403,8 +3643,11 @@ declare const ListItem$1: ComponentDefinition<{
|
|
|
3403
3643
|
inherited: true;
|
|
3404
3644
|
support: {
|
|
3405
3645
|
email: {
|
|
3406
|
-
level: "
|
|
3407
|
-
|
|
3646
|
+
level: "outlook";
|
|
3647
|
+
values: string[];
|
|
3648
|
+
shows: string;
|
|
3649
|
+
source: "caniemail";
|
|
3650
|
+
feature: string;
|
|
3408
3651
|
};
|
|
3409
3652
|
web: {
|
|
3410
3653
|
level: "full";
|
|
@@ -3417,8 +3660,12 @@ declare const ListItem$1: ComponentDefinition<{
|
|
|
3417
3660
|
label: string;
|
|
3418
3661
|
support: {
|
|
3419
3662
|
email: {
|
|
3420
|
-
level: "
|
|
3663
|
+
level: "partial";
|
|
3664
|
+
values: string[];
|
|
3665
|
+
shows: string;
|
|
3421
3666
|
source: "caniemail";
|
|
3667
|
+
feature: string;
|
|
3668
|
+
clients: ("gmail-app-other" | "protonmail" | "orange" | "sfr")[];
|
|
3422
3669
|
};
|
|
3423
3670
|
web: {
|
|
3424
3671
|
level: "full";
|
|
@@ -3426,7 +3673,7 @@ declare const ListItem$1: ComponentDefinition<{
|
|
|
3426
3673
|
};
|
|
3427
3674
|
};
|
|
3428
3675
|
};
|
|
3429
|
-
}, "color" | "fontFamily" | "fontWeight" | "lineHeight" | "fontSize" | "fontStyle" | "letterSpacing" | "textAlign" | "textTransform" | "textDecoration"
|
|
3676
|
+
}, "color" | "fontFamily" | "fontWeight" | "lineHeight" | "fontSize" | "fontStyle" | "letterSpacing" | "textAlign" | "textTransform" | "textDecoration">, readonly []>;
|
|
3430
3677
|
declare const Table$1: ComponentDefinition<{}, {
|
|
3431
3678
|
readonly flex: {
|
|
3432
3679
|
kind: Kind<number | "none", number | "none">;
|
|
@@ -3589,8 +3836,11 @@ declare const Table$1: ComponentDefinition<{}, {
|
|
|
3589
3836
|
inherited: true;
|
|
3590
3837
|
support: {
|
|
3591
3838
|
email: {
|
|
3592
|
-
level: "
|
|
3839
|
+
level: "outlook";
|
|
3840
|
+
values: number[];
|
|
3841
|
+
shows: string;
|
|
3593
3842
|
source: "caniemail";
|
|
3843
|
+
feature: string;
|
|
3594
3844
|
};
|
|
3595
3845
|
web: {
|
|
3596
3846
|
level: "full";
|
|
@@ -3668,8 +3918,11 @@ declare const Table$1: ComponentDefinition<{}, {
|
|
|
3668
3918
|
inherited: true;
|
|
3669
3919
|
support: {
|
|
3670
3920
|
email: {
|
|
3671
|
-
level: "
|
|
3672
|
-
|
|
3921
|
+
level: "outlook";
|
|
3922
|
+
values: string[];
|
|
3923
|
+
shows: string;
|
|
3924
|
+
source: "caniemail";
|
|
3925
|
+
feature: string;
|
|
3673
3926
|
};
|
|
3674
3927
|
web: {
|
|
3675
3928
|
level: "full";
|
|
@@ -3677,7 +3930,7 @@ declare const Table$1: ComponentDefinition<{}, {
|
|
|
3677
3930
|
};
|
|
3678
3931
|
};
|
|
3679
3932
|
};
|
|
3680
|
-
}>;
|
|
3933
|
+
}, readonly []>;
|
|
3681
3934
|
declare const TableRow$1: ComponentDefinition<{
|
|
3682
3935
|
readonly header: PropSpec<Kind<boolean, boolean>, boolean> & {
|
|
3683
3936
|
default: false;
|
|
@@ -3750,8 +4003,11 @@ declare const TableRow$1: ComponentDefinition<{
|
|
|
3750
4003
|
inherited: true;
|
|
3751
4004
|
support: {
|
|
3752
4005
|
email: {
|
|
3753
|
-
level: "
|
|
4006
|
+
level: "outlook";
|
|
4007
|
+
values: number[];
|
|
4008
|
+
shows: string;
|
|
3754
4009
|
source: "caniemail";
|
|
4010
|
+
feature: string;
|
|
3755
4011
|
};
|
|
3756
4012
|
web: {
|
|
3757
4013
|
level: "full";
|
|
@@ -3845,8 +4101,11 @@ declare const TableRow$1: ComponentDefinition<{
|
|
|
3845
4101
|
inherited: true;
|
|
3846
4102
|
support: {
|
|
3847
4103
|
email: {
|
|
3848
|
-
level: "
|
|
3849
|
-
|
|
4104
|
+
level: "outlook";
|
|
4105
|
+
values: string[];
|
|
4106
|
+
shows: string;
|
|
4107
|
+
source: "caniemail";
|
|
4108
|
+
feature: string;
|
|
3850
4109
|
};
|
|
3851
4110
|
web: {
|
|
3852
4111
|
level: "full";
|
|
@@ -3854,7 +4113,7 @@ declare const TableRow$1: ComponentDefinition<{
|
|
|
3854
4113
|
};
|
|
3855
4114
|
};
|
|
3856
4115
|
};
|
|
3857
|
-
}>;
|
|
4116
|
+
}, readonly []>;
|
|
3858
4117
|
declare const TableCell$1: ComponentDefinition<{
|
|
3859
4118
|
readonly dir: PropSpec<Kind<"ltr" | "rtl" | "auto", "ltr" | "rtl" | "auto">, false> & {
|
|
3860
4119
|
default: undefined;
|
|
@@ -3982,8 +4241,11 @@ declare const TableCell$1: ComponentDefinition<{
|
|
|
3982
4241
|
inherited: true;
|
|
3983
4242
|
support: {
|
|
3984
4243
|
email: {
|
|
3985
|
-
level: "
|
|
4244
|
+
level: "outlook";
|
|
4245
|
+
values: number[];
|
|
4246
|
+
shows: string;
|
|
3986
4247
|
source: "caniemail";
|
|
4248
|
+
feature: string;
|
|
3987
4249
|
};
|
|
3988
4250
|
web: {
|
|
3989
4251
|
level: "full";
|
|
@@ -4061,8 +4323,11 @@ declare const TableCell$1: ComponentDefinition<{
|
|
|
4061
4323
|
inherited: true;
|
|
4062
4324
|
support: {
|
|
4063
4325
|
email: {
|
|
4064
|
-
level: "
|
|
4065
|
-
|
|
4326
|
+
level: "outlook";
|
|
4327
|
+
values: string[];
|
|
4328
|
+
shows: string;
|
|
4329
|
+
source: "caniemail";
|
|
4330
|
+
feature: string;
|
|
4066
4331
|
};
|
|
4067
4332
|
web: {
|
|
4068
4333
|
level: "full";
|
|
@@ -4075,8 +4340,12 @@ declare const TableCell$1: ComponentDefinition<{
|
|
|
4075
4340
|
label: string;
|
|
4076
4341
|
support: {
|
|
4077
4342
|
email: {
|
|
4078
|
-
level: "
|
|
4343
|
+
level: "partial";
|
|
4344
|
+
values: string[];
|
|
4345
|
+
shows: string;
|
|
4079
4346
|
source: "caniemail";
|
|
4347
|
+
feature: string;
|
|
4348
|
+
clients: ("gmail-app-other" | "protonmail" | "orange" | "sfr")[];
|
|
4080
4349
|
};
|
|
4081
4350
|
web: {
|
|
4082
4351
|
level: "full";
|
|
@@ -4084,7 +4353,7 @@ declare const TableCell$1: ComponentDefinition<{
|
|
|
4084
4353
|
};
|
|
4085
4354
|
};
|
|
4086
4355
|
};
|
|
4087
|
-
}>;
|
|
4356
|
+
}, readonly []>;
|
|
4088
4357
|
declare const Video$1: ComponentDefinition<{
|
|
4089
4358
|
readonly src: PropSpec<Kind<string, string>, true> & {
|
|
4090
4359
|
default: any;
|
|
@@ -4141,7 +4410,7 @@ declare const Video$1: ComponentDefinition<{
|
|
|
4141
4410
|
};
|
|
4142
4411
|
};
|
|
4143
4412
|
};
|
|
4144
|
-
}>;
|
|
4413
|
+
}, readonly []>;
|
|
4145
4414
|
/**
|
|
4146
4415
|
* Markup no component says (the builder's HTML block), written as it is. A PDF and an image can't draw markup: they
|
|
4147
4416
|
* draw its plain text, and say so.
|
|
@@ -4153,7 +4422,7 @@ declare const Html$1: ComponentDefinition<{
|
|
|
4153
4422
|
readonly text: PropSpec<Kind<string, string>, boolean> & {
|
|
4154
4423
|
default: any;
|
|
4155
4424
|
};
|
|
4156
|
-
}, {}>;
|
|
4425
|
+
}, {}, readonly []>;
|
|
4157
4426
|
|
|
4158
4427
|
declare const Social$1: ComponentDefinition<{
|
|
4159
4428
|
readonly icons: PropSpec<Kind<{
|
|
@@ -4200,7 +4469,7 @@ declare const Social$1: ComponentDefinition<{
|
|
|
4200
4469
|
readonly description: "Where the icons sit across the line.";
|
|
4201
4470
|
readonly support: Partial<Record<Target, Support | readonly Support[]>>;
|
|
4202
4471
|
};
|
|
4203
|
-
}>;
|
|
4472
|
+
}, readonly []>;
|
|
4204
4473
|
declare const Menu$1: ComponentDefinition<{
|
|
4205
4474
|
readonly items: PropSpec<Kind<{
|
|
4206
4475
|
readonly text: string;
|
|
@@ -4286,8 +4555,11 @@ declare const Menu$1: ComponentDefinition<{
|
|
|
4286
4555
|
inherited: true;
|
|
4287
4556
|
support: {
|
|
4288
4557
|
email: {
|
|
4289
|
-
level: "
|
|
4558
|
+
level: "outlook";
|
|
4559
|
+
values: number[];
|
|
4560
|
+
shows: string;
|
|
4290
4561
|
source: "caniemail";
|
|
4562
|
+
feature: string;
|
|
4291
4563
|
};
|
|
4292
4564
|
web: {
|
|
4293
4565
|
level: "full";
|
|
@@ -4350,8 +4622,11 @@ declare const Menu$1: ComponentDefinition<{
|
|
|
4350
4622
|
inherited: true;
|
|
4351
4623
|
support: {
|
|
4352
4624
|
email: {
|
|
4353
|
-
level: "
|
|
4354
|
-
|
|
4625
|
+
level: "outlook";
|
|
4626
|
+
values: string[];
|
|
4627
|
+
shows: string;
|
|
4628
|
+
source: "caniemail";
|
|
4629
|
+
feature: string;
|
|
4355
4630
|
};
|
|
4356
4631
|
web: {
|
|
4357
4632
|
level: "full";
|
|
@@ -4359,7 +4634,7 @@ declare const Menu$1: ComponentDefinition<{
|
|
|
4359
4634
|
};
|
|
4360
4635
|
};
|
|
4361
4636
|
};
|
|
4362
|
-
}>;
|
|
4637
|
+
}, readonly []>;
|
|
4363
4638
|
|
|
4364
4639
|
declare const Grid$1: ComponentDefinition<{
|
|
4365
4640
|
readonly columns: PropSpec<Kind<number, number>, boolean> & {
|
|
@@ -4537,11 +4812,19 @@ declare const Grid$1: ComponentDefinition<{
|
|
|
4537
4812
|
kind: Kind<RadiusInput, Radius>;
|
|
4538
4813
|
label: string;
|
|
4539
4814
|
support: {
|
|
4540
|
-
email: {
|
|
4815
|
+
email: ({
|
|
4541
4816
|
level: "outlook";
|
|
4542
4817
|
shows: string;
|
|
4543
4818
|
source: "caniemail";
|
|
4544
|
-
|
|
4819
|
+
feature: string;
|
|
4820
|
+
clients?: undefined;
|
|
4821
|
+
} | {
|
|
4822
|
+
level: "partial";
|
|
4823
|
+
shows: string;
|
|
4824
|
+
source: "caniemail";
|
|
4825
|
+
feature: string;
|
|
4826
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
4827
|
+
})[];
|
|
4545
4828
|
web: {
|
|
4546
4829
|
level: "full";
|
|
4547
4830
|
source: SupportSource;
|
|
@@ -4617,8 +4900,11 @@ declare const Grid$1: ComponentDefinition<{
|
|
|
4617
4900
|
inherited: true;
|
|
4618
4901
|
support: {
|
|
4619
4902
|
email: {
|
|
4620
|
-
level: "
|
|
4903
|
+
level: "outlook";
|
|
4904
|
+
values: number[];
|
|
4905
|
+
shows: string;
|
|
4621
4906
|
source: "caniemail";
|
|
4907
|
+
feature: string;
|
|
4622
4908
|
};
|
|
4623
4909
|
web: {
|
|
4624
4910
|
level: "full";
|
|
@@ -4696,8 +4982,11 @@ declare const Grid$1: ComponentDefinition<{
|
|
|
4696
4982
|
inherited: true;
|
|
4697
4983
|
support: {
|
|
4698
4984
|
email: {
|
|
4699
|
-
level: "
|
|
4700
|
-
|
|
4985
|
+
level: "outlook";
|
|
4986
|
+
values: string[];
|
|
4987
|
+
shows: string;
|
|
4988
|
+
source: "caniemail";
|
|
4989
|
+
feature: string;
|
|
4701
4990
|
};
|
|
4702
4991
|
web: {
|
|
4703
4992
|
level: "full";
|
|
@@ -4705,7 +4994,7 @@ declare const Grid$1: ComponentDefinition<{
|
|
|
4705
4994
|
};
|
|
4706
4995
|
};
|
|
4707
4996
|
};
|
|
4708
|
-
}>;
|
|
4997
|
+
}, readonly []>;
|
|
4709
4998
|
/**
|
|
4710
4999
|
* A Layer's children over each other, each in its whole box (as CSS grid places children in one cell): an image with
|
|
4711
5000
|
* words on it. On a page any children go; an email draws one shape of it, an Image as wide as the Layer with one child
|
|
@@ -4845,11 +5134,19 @@ declare const Layer$1: ComponentDefinition<{}, {
|
|
|
4845
5134
|
kind: Kind<RadiusInput, Radius>;
|
|
4846
5135
|
label: string;
|
|
4847
5136
|
support: {
|
|
4848
|
-
email: {
|
|
5137
|
+
email: ({
|
|
4849
5138
|
level: "outlook";
|
|
4850
5139
|
shows: string;
|
|
4851
5140
|
source: "caniemail";
|
|
4852
|
-
|
|
5141
|
+
feature: string;
|
|
5142
|
+
clients?: undefined;
|
|
5143
|
+
} | {
|
|
5144
|
+
level: "partial";
|
|
5145
|
+
shows: string;
|
|
5146
|
+
source: "caniemail";
|
|
5147
|
+
feature: string;
|
|
5148
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
5149
|
+
})[];
|
|
4853
5150
|
web: {
|
|
4854
5151
|
level: "full";
|
|
4855
5152
|
source: SupportSource;
|
|
@@ -4908,8 +5205,11 @@ declare const Layer$1: ComponentDefinition<{}, {
|
|
|
4908
5205
|
inherited: true;
|
|
4909
5206
|
support: {
|
|
4910
5207
|
email: {
|
|
4911
|
-
level: "
|
|
5208
|
+
level: "outlook";
|
|
5209
|
+
values: number[];
|
|
5210
|
+
shows: string;
|
|
4912
5211
|
source: "caniemail";
|
|
5212
|
+
feature: string;
|
|
4913
5213
|
};
|
|
4914
5214
|
web: {
|
|
4915
5215
|
level: "full";
|
|
@@ -4987,8 +5287,11 @@ declare const Layer$1: ComponentDefinition<{}, {
|
|
|
4987
5287
|
inherited: true;
|
|
4988
5288
|
support: {
|
|
4989
5289
|
email: {
|
|
4990
|
-
level: "
|
|
4991
|
-
|
|
5290
|
+
level: "outlook";
|
|
5291
|
+
values: string[];
|
|
5292
|
+
shows: string;
|
|
5293
|
+
source: "caniemail";
|
|
5294
|
+
feature: string;
|
|
4992
5295
|
};
|
|
4993
5296
|
web: {
|
|
4994
5297
|
level: "full";
|
|
@@ -4996,7 +5299,7 @@ declare const Layer$1: ComponentDefinition<{}, {
|
|
|
4996
5299
|
};
|
|
4997
5300
|
};
|
|
4998
5301
|
};
|
|
4999
|
-
}>;
|
|
5302
|
+
}, readonly []>;
|
|
5000
5303
|
declare const Document$1: ComponentDefinition<{
|
|
5001
5304
|
readonly title: PropSpec<Kind<string, string>, false> & {
|
|
5002
5305
|
default: undefined;
|
|
@@ -5123,8 +5426,11 @@ declare const Document$1: ComponentDefinition<{
|
|
|
5123
5426
|
inherited: true;
|
|
5124
5427
|
support: {
|
|
5125
5428
|
email: {
|
|
5126
|
-
level: "
|
|
5429
|
+
level: "outlook";
|
|
5430
|
+
values: number[];
|
|
5431
|
+
shows: string;
|
|
5127
5432
|
source: "caniemail";
|
|
5433
|
+
feature: string;
|
|
5128
5434
|
};
|
|
5129
5435
|
web: {
|
|
5130
5436
|
level: "full";
|
|
@@ -5202,8 +5508,11 @@ declare const Document$1: ComponentDefinition<{
|
|
|
5202
5508
|
inherited: true;
|
|
5203
5509
|
support: {
|
|
5204
5510
|
email: {
|
|
5205
|
-
level: "
|
|
5206
|
-
|
|
5511
|
+
level: "outlook";
|
|
5512
|
+
values: string[];
|
|
5513
|
+
shows: string;
|
|
5514
|
+
source: "caniemail";
|
|
5515
|
+
feature: string;
|
|
5207
5516
|
};
|
|
5208
5517
|
web: {
|
|
5209
5518
|
level: "full";
|
|
@@ -5211,7 +5520,7 @@ declare const Document$1: ComponentDefinition<{
|
|
|
5211
5520
|
};
|
|
5212
5521
|
};
|
|
5213
5522
|
};
|
|
5214
|
-
}>;
|
|
5523
|
+
}, readonly []>;
|
|
5215
5524
|
declare const DocumentPage: ComponentDefinition<{}, {
|
|
5216
5525
|
gap: {
|
|
5217
5526
|
kind: Kind<LengthInput<"px">, number>;
|
|
@@ -5311,8 +5620,11 @@ declare const DocumentPage: ComponentDefinition<{}, {
|
|
|
5311
5620
|
inherited: true;
|
|
5312
5621
|
support: {
|
|
5313
5622
|
email: {
|
|
5314
|
-
level: "
|
|
5623
|
+
level: "outlook";
|
|
5624
|
+
values: number[];
|
|
5625
|
+
shows: string;
|
|
5315
5626
|
source: "caniemail";
|
|
5627
|
+
feature: string;
|
|
5316
5628
|
};
|
|
5317
5629
|
web: {
|
|
5318
5630
|
level: "full";
|
|
@@ -5390,8 +5702,11 @@ declare const DocumentPage: ComponentDefinition<{}, {
|
|
|
5390
5702
|
inherited: true;
|
|
5391
5703
|
support: {
|
|
5392
5704
|
email: {
|
|
5393
|
-
level: "
|
|
5394
|
-
|
|
5705
|
+
level: "outlook";
|
|
5706
|
+
values: string[];
|
|
5707
|
+
shows: string;
|
|
5708
|
+
source: "caniemail";
|
|
5709
|
+
feature: string;
|
|
5395
5710
|
};
|
|
5396
5711
|
web: {
|
|
5397
5712
|
level: "full";
|
|
@@ -5399,8 +5714,8 @@ declare const DocumentPage: ComponentDefinition<{}, {
|
|
|
5399
5714
|
};
|
|
5400
5715
|
};
|
|
5401
5716
|
};
|
|
5402
|
-
}>;
|
|
5403
|
-
declare const PageBreak$1: ComponentDefinition<{}, {}>;
|
|
5717
|
+
}, readonly []>;
|
|
5718
|
+
declare const PageBreak$1: ComponentDefinition<{}, {}, readonly []>;
|
|
5404
5719
|
declare const PageHeader$1: ComponentDefinition<{}, {
|
|
5405
5720
|
gap: {
|
|
5406
5721
|
kind: Kind<LengthInput<"px">, number>;
|
|
@@ -5529,8 +5844,11 @@ declare const PageHeader$1: ComponentDefinition<{}, {
|
|
|
5529
5844
|
inherited: true;
|
|
5530
5845
|
support: {
|
|
5531
5846
|
email: {
|
|
5532
|
-
level: "
|
|
5847
|
+
level: "outlook";
|
|
5848
|
+
values: number[];
|
|
5849
|
+
shows: string;
|
|
5533
5850
|
source: "caniemail";
|
|
5851
|
+
feature: string;
|
|
5534
5852
|
};
|
|
5535
5853
|
web: {
|
|
5536
5854
|
level: "full";
|
|
@@ -5608,8 +5926,11 @@ declare const PageHeader$1: ComponentDefinition<{}, {
|
|
|
5608
5926
|
inherited: true;
|
|
5609
5927
|
support: {
|
|
5610
5928
|
email: {
|
|
5611
|
-
level: "
|
|
5612
|
-
|
|
5929
|
+
level: "outlook";
|
|
5930
|
+
values: string[];
|
|
5931
|
+
shows: string;
|
|
5932
|
+
source: "caniemail";
|
|
5933
|
+
feature: string;
|
|
5613
5934
|
};
|
|
5614
5935
|
web: {
|
|
5615
5936
|
level: "full";
|
|
@@ -5617,7 +5938,7 @@ declare const PageHeader$1: ComponentDefinition<{}, {
|
|
|
5617
5938
|
};
|
|
5618
5939
|
};
|
|
5619
5940
|
};
|
|
5620
|
-
}>;
|
|
5941
|
+
}, readonly []>;
|
|
5621
5942
|
declare const PageFooter$1: ComponentDefinition<{}, {
|
|
5622
5943
|
gap: {
|
|
5623
5944
|
kind: Kind<LengthInput<"px">, number>;
|
|
@@ -5746,8 +6067,11 @@ declare const PageFooter$1: ComponentDefinition<{}, {
|
|
|
5746
6067
|
inherited: true;
|
|
5747
6068
|
support: {
|
|
5748
6069
|
email: {
|
|
5749
|
-
level: "
|
|
6070
|
+
level: "outlook";
|
|
6071
|
+
values: number[];
|
|
6072
|
+
shows: string;
|
|
5750
6073
|
source: "caniemail";
|
|
6074
|
+
feature: string;
|
|
5751
6075
|
};
|
|
5752
6076
|
web: {
|
|
5753
6077
|
level: "full";
|
|
@@ -5825,8 +6149,11 @@ declare const PageFooter$1: ComponentDefinition<{}, {
|
|
|
5825
6149
|
inherited: true;
|
|
5826
6150
|
support: {
|
|
5827
6151
|
email: {
|
|
5828
|
-
level: "
|
|
5829
|
-
|
|
6152
|
+
level: "outlook";
|
|
6153
|
+
values: string[];
|
|
6154
|
+
shows: string;
|
|
6155
|
+
source: "caniemail";
|
|
6156
|
+
feature: string;
|
|
5830
6157
|
};
|
|
5831
6158
|
web: {
|
|
5832
6159
|
level: "full";
|
|
@@ -5834,12 +6161,12 @@ declare const PageFooter$1: ComponentDefinition<{}, {
|
|
|
5834
6161
|
};
|
|
5835
6162
|
};
|
|
5836
6163
|
};
|
|
5837
|
-
}>;
|
|
6164
|
+
}, readonly []>;
|
|
5838
6165
|
declare const PageNumber$1: ComponentDefinition<{
|
|
5839
6166
|
readonly total: PropSpec<Kind<boolean, boolean>, boolean> & {
|
|
5840
6167
|
default: false;
|
|
5841
6168
|
};
|
|
5842
|
-
}, {}>;
|
|
6169
|
+
}, {}, readonly []>;
|
|
5843
6170
|
|
|
5844
6171
|
declare const Canvas$1: ComponentDefinition<{
|
|
5845
6172
|
readonly title: PropSpec<Kind<string, string>, false> & {
|
|
@@ -5989,8 +6316,11 @@ declare const Canvas$1: ComponentDefinition<{
|
|
|
5989
6316
|
inherited: true;
|
|
5990
6317
|
support: {
|
|
5991
6318
|
email: {
|
|
5992
|
-
level: "
|
|
6319
|
+
level: "outlook";
|
|
6320
|
+
values: number[];
|
|
6321
|
+
shows: string;
|
|
5993
6322
|
source: "caniemail";
|
|
6323
|
+
feature: string;
|
|
5994
6324
|
};
|
|
5995
6325
|
web: {
|
|
5996
6326
|
level: "full";
|
|
@@ -6068,8 +6398,11 @@ declare const Canvas$1: ComponentDefinition<{
|
|
|
6068
6398
|
inherited: true;
|
|
6069
6399
|
support: {
|
|
6070
6400
|
email: {
|
|
6071
|
-
level: "
|
|
6072
|
-
|
|
6401
|
+
level: "outlook";
|
|
6402
|
+
values: string[];
|
|
6403
|
+
shows: string;
|
|
6404
|
+
source: "caniemail";
|
|
6405
|
+
feature: string;
|
|
6073
6406
|
};
|
|
6074
6407
|
web: {
|
|
6075
6408
|
level: "full";
|
|
@@ -6077,7 +6410,7 @@ declare const Canvas$1: ComponentDefinition<{
|
|
|
6077
6410
|
};
|
|
6078
6411
|
};
|
|
6079
6412
|
};
|
|
6080
|
-
}>;
|
|
6413
|
+
}, readonly []>;
|
|
6081
6414
|
declare const Svg$1: ComponentDefinition<{
|
|
6082
6415
|
readonly width: PropSpec<Kind<number, number>, true> & {
|
|
6083
6416
|
default: undefined;
|
|
@@ -6155,18 +6488,26 @@ declare const Svg$1: ComponentDefinition<{
|
|
|
6155
6488
|
kind: Kind<RadiusInput, Radius>;
|
|
6156
6489
|
label: string;
|
|
6157
6490
|
support: {
|
|
6158
|
-
email: {
|
|
6491
|
+
email: ({
|
|
6159
6492
|
level: "outlook";
|
|
6160
6493
|
shows: string;
|
|
6161
6494
|
source: "caniemail";
|
|
6162
|
-
|
|
6495
|
+
feature: string;
|
|
6496
|
+
clients?: undefined;
|
|
6497
|
+
} | {
|
|
6498
|
+
level: "partial";
|
|
6499
|
+
shows: string;
|
|
6500
|
+
source: "caniemail";
|
|
6501
|
+
feature: string;
|
|
6502
|
+
clients: ("gmx" | "web-de" | "orange")[];
|
|
6503
|
+
})[];
|
|
6163
6504
|
web: {
|
|
6164
6505
|
level: "full";
|
|
6165
6506
|
source: SupportSource;
|
|
6166
6507
|
};
|
|
6167
6508
|
};
|
|
6168
6509
|
};
|
|
6169
|
-
}>;
|
|
6510
|
+
}, readonly []>;
|
|
6170
6511
|
declare const Rect$1: ComponentDefinition<{
|
|
6171
6512
|
readonly x: PropSpec<Kind<number, number>, false> & {
|
|
6172
6513
|
default: 0;
|
|
@@ -6214,7 +6555,7 @@ declare const Rect$1: ComponentDefinition<{
|
|
|
6214
6555
|
web: Support;
|
|
6215
6556
|
};
|
|
6216
6557
|
};
|
|
6217
|
-
}>;
|
|
6558
|
+
}, readonly []>;
|
|
6218
6559
|
declare const Circle$1: ComponentDefinition<{
|
|
6219
6560
|
readonly cx: PropSpec<Kind<number, number>, false> & {
|
|
6220
6561
|
default: 0;
|
|
@@ -6256,7 +6597,7 @@ declare const Circle$1: ComponentDefinition<{
|
|
|
6256
6597
|
web: Support;
|
|
6257
6598
|
};
|
|
6258
6599
|
};
|
|
6259
|
-
}>;
|
|
6600
|
+
}, readonly []>;
|
|
6260
6601
|
declare const Ellipse$1: ComponentDefinition<{
|
|
6261
6602
|
readonly cx: PropSpec<Kind<number, number>, false> & {
|
|
6262
6603
|
default: 0;
|
|
@@ -6301,7 +6642,7 @@ declare const Ellipse$1: ComponentDefinition<{
|
|
|
6301
6642
|
web: Support;
|
|
6302
6643
|
};
|
|
6303
6644
|
};
|
|
6304
|
-
}>;
|
|
6645
|
+
}, readonly []>;
|
|
6305
6646
|
declare const Line$1: ComponentDefinition<{
|
|
6306
6647
|
readonly x1: PropSpec<Kind<number, number>, false> & {
|
|
6307
6648
|
default: 0;
|
|
@@ -6346,7 +6687,7 @@ declare const Line$1: ComponentDefinition<{
|
|
|
6346
6687
|
web: Support;
|
|
6347
6688
|
};
|
|
6348
6689
|
};
|
|
6349
|
-
}>;
|
|
6690
|
+
}, readonly []>;
|
|
6350
6691
|
declare const Polygon$1: ComponentDefinition<{
|
|
6351
6692
|
readonly points: PropSpec<Kind<string, string>, true> & {
|
|
6352
6693
|
default: any;
|
|
@@ -6382,7 +6723,7 @@ declare const Polygon$1: ComponentDefinition<{
|
|
|
6382
6723
|
web: Support;
|
|
6383
6724
|
};
|
|
6384
6725
|
};
|
|
6385
|
-
}>;
|
|
6726
|
+
}, readonly []>;
|
|
6386
6727
|
declare const Path$1: ComponentDefinition<{
|
|
6387
6728
|
readonly d: PropSpec<Kind<string, string>, true> & {
|
|
6388
6729
|
default: any;
|
|
@@ -6418,7 +6759,7 @@ declare const Path$1: ComponentDefinition<{
|
|
|
6418
6759
|
web: Support;
|
|
6419
6760
|
};
|
|
6420
6761
|
};
|
|
6421
|
-
}>;
|
|
6762
|
+
}, readonly []>;
|
|
6422
6763
|
/** Props that always have a value: required ones, and ones with a default (see `prop`). */
|
|
6423
6764
|
type RequiredOrDefaulted<P extends PropSpecs> = {
|
|
6424
6765
|
[K in keyof P]: Exclude<P[K]["required"], undefined> extends true ? K : [P[K]["default"]] extends [undefined] ? never : K;
|
|
@@ -6437,6 +6778,8 @@ interface ExpandContext {
|
|
|
6437
6778
|
style: Record<string, Json>;
|
|
6438
6779
|
/** Whether the template has phones (an Email or a Page): what's hidden on phones is only hidden there. */
|
|
6439
6780
|
responsive: boolean;
|
|
6781
|
+
/** A problem found while expanding that doesn't stop it (a warning or a note), said once at the expansion's place. */
|
|
6782
|
+
report(diagnostic: Diagnostic): void;
|
|
6440
6783
|
}
|
|
6441
6784
|
interface CustomDefinition<P extends PropSpecs = PropSpecs> extends ComponentDefinition<P, typeof placementStyle> {
|
|
6442
6785
|
custom: true;
|
|
@@ -6507,12 +6850,35 @@ interface ResolvedNode {
|
|
|
6507
6850
|
}
|
|
6508
6851
|
|
|
6509
6852
|
/**
|
|
6510
|
-
*
|
|
6511
|
-
*
|
|
6512
|
-
*
|
|
6513
|
-
*
|
|
6853
|
+
* Where each block of an Email is in its HTML, for render()'s `blockMap`: a tool that previews the email (marking each
|
|
6854
|
+
* block, then reading where each one is drawn) finds the template path of what it draws.
|
|
6855
|
+
*
|
|
6856
|
+
* While the email is written, each node's markup gets a mark just after the tag name of its outermost element (the
|
|
6857
|
+
* first one every client but classic Outlook reads, else the first in Outlook's own markup): two Unicode
|
|
6858
|
+
* noncharacters around the node's number. Once it's written the marks are taken out, so the HTML is the same bytes as
|
|
6859
|
+
* without them, and where each one was is its block's offset. A template whose own text holds those noncharacters
|
|
6860
|
+
* would be misread: it's written again with another pair.
|
|
6514
6861
|
*/
|
|
6515
6862
|
|
|
6863
|
+
/** The format of render()'s `blocks`, kept by hand: raised only when the format changes (not the package's version). */
|
|
6864
|
+
declare const BLOCK_MAP_VERSION = 1;
|
|
6865
|
+
interface BlockMapEntry {
|
|
6866
|
+
/** The block's place in the template (`root.children[2]`), as diagnostics give it. */
|
|
6867
|
+
path: string;
|
|
6868
|
+
/** Its `id`, where it has one. */
|
|
6869
|
+
nodeId?: string;
|
|
6870
|
+
/** The UTF-8 byte offset in `html` just after its outermost element's tag name (`<table`, `<div`). */
|
|
6871
|
+
offset: number;
|
|
6872
|
+
}
|
|
6873
|
+
interface BlockMap {
|
|
6874
|
+
/** `BLOCK_MAP_VERSION`. */
|
|
6875
|
+
version: number;
|
|
6876
|
+
/** What `offset` counts: bytes of the HTML in UTF-8. */
|
|
6877
|
+
unit: "utf8";
|
|
6878
|
+
/** Each block written as an element, in the order of their offsets (blocks at one offset: the outer first). */
|
|
6879
|
+
entries: BlockMapEntry[];
|
|
6880
|
+
}
|
|
6881
|
+
|
|
6516
6882
|
interface EmailOptions {
|
|
6517
6883
|
/** How a merge tag is written (default `{{name}}`): into the HTML as it is, the name in it escaped. */
|
|
6518
6884
|
mergeTag?: (name: string) => string;
|
|
@@ -6535,9 +6901,23 @@ interface PageOptions {
|
|
|
6535
6901
|
classPrefix?: string;
|
|
6536
6902
|
}
|
|
6537
6903
|
|
|
6538
|
-
interface
|
|
6904
|
+
interface EmailClientsOption {
|
|
6905
|
+
/**
|
|
6906
|
+
* For an Email, the email clients to report problems for (default: `DEFAULT_EMAIL_CLIENTS`, the ones most email is
|
|
6907
|
+
* read in: classic Outlook, Outlook.com, Outlook for Mac, the Outlook and Gmail apps, Gmail, Apple Mail, Yahoo, AOL
|
|
6908
|
+
* and Samsung Email). A problem about other clients is left out; `[]` leaves out every email client problem, not the
|
|
6909
|
+
* problems of the email itself.
|
|
6910
|
+
*/
|
|
6911
|
+
emailClients?: readonly EmailClient[];
|
|
6912
|
+
}
|
|
6913
|
+
interface RenderOptions extends PageOptions, EmailOptions, EmailClientsOption {
|
|
6539
6914
|
/** The HTML indented, for reading it; for sending, the compact HTML (white space may change how some email clients show it). */
|
|
6540
6915
|
pretty?: boolean;
|
|
6916
|
+
/**
|
|
6917
|
+
* For tools that preview an Email: also return `blocks`, where each block is in `html` (its template path and the
|
|
6918
|
+
* UTF-8 byte offset just after its outermost element's tag name). The HTML is the same either way. Not with `pretty`.
|
|
6919
|
+
*/
|
|
6920
|
+
blockMap?: boolean;
|
|
6541
6921
|
}
|
|
6542
6922
|
interface RenderResult {
|
|
6543
6923
|
/** The whole document, from `<!DOCTYPE html>`. */
|
|
@@ -6550,6 +6930,8 @@ interface RenderResult {
|
|
|
6550
6930
|
bodyStyle: string;
|
|
6551
6931
|
/** Warnings and notes (errors are thrown). */
|
|
6552
6932
|
diagnostics: Diagnostic[];
|
|
6933
|
+
/** With `blockMap`, for an Email: where each block is in `html`. */
|
|
6934
|
+
blocks?: BlockMap;
|
|
6553
6935
|
}
|
|
6554
6936
|
|
|
6555
6937
|
/**
|
|
@@ -6558,26 +6940,41 @@ interface RenderResult {
|
|
|
6558
6940
|
*/
|
|
6559
6941
|
|
|
6560
6942
|
/** The props of a primitive: its semantic props, plus its style, phone and hover styles, and children. */
|
|
6561
|
-
type PrimitiveProps<D> = D extends ComponentDefinition<infer P, infer S> ? PropsInput<P> & Extras<StyleInput<S>> : never;
|
|
6943
|
+
type PrimitiveProps<D> = D extends ComponentDefinition<infer P, infer S, any> ? PropsInput<P> & Extras<StyleInput<S>, ConditionStyles<D>> : never;
|
|
6944
|
+
/** The styles that may be set on phones: those whose definition says `mobile: true`. */
|
|
6945
|
+
type MobileKeys<S extends StyleSpecs> = {
|
|
6946
|
+
[K in keyof S]-?: S[K] extends {
|
|
6947
|
+
mobile: true;
|
|
6948
|
+
} ? K : never;
|
|
6949
|
+
}[keyof S];
|
|
6950
|
+
/** A condition's block of the styles `K`; where it takes none, nothing can be set in it. */
|
|
6951
|
+
type Block<S extends StyleSpecs, K> = [K] extends [never] ? never : {
|
|
6952
|
+
[Q in K & keyof S]?: InputOf<S[Q]["kind"]>;
|
|
6953
|
+
};
|
|
6954
|
+
/**
|
|
6955
|
+
* A component's condition blocks in `style`: `mobile` with the styles it takes on phones, `hover` with its hover
|
|
6956
|
+
* styles (from its definition's list). Where a component takes none, the block is `never`: no value but `undefined`.
|
|
6957
|
+
*/
|
|
6958
|
+
type ConditionStyles<D> = D extends ComponentDefinition<any, infer S, infer H> ? {
|
|
6959
|
+
mobile?: Block<S, MobileKeys<S>>;
|
|
6960
|
+
hover?: Block<S, H[number]>;
|
|
6961
|
+
} : never;
|
|
6562
6962
|
/** What every primitive takes beside its own props. */
|
|
6563
|
-
interface Extras<Style> {
|
|
6963
|
+
interface Extras<Style, Conditions> {
|
|
6564
6964
|
/** Stable id; one is assigned in document order when it's left out. */
|
|
6565
6965
|
id?: string;
|
|
6566
|
-
style
|
|
6567
|
-
|
|
6568
|
-
mobile?: Style;
|
|
6569
|
-
/** Style while the pointer is over it, where the component has one. */
|
|
6570
|
-
hover?: Style;
|
|
6966
|
+
/** Its style, and inside it its styles on phones (`mobile`) and on hover (`hover`), where it takes them. */
|
|
6967
|
+
style?: Style & Conditions;
|
|
6571
6968
|
hidden?: {
|
|
6572
6969
|
mobile?: boolean;
|
|
6573
6970
|
desktop?: boolean;
|
|
6574
6971
|
};
|
|
6575
6972
|
children?: React.ReactNode;
|
|
6576
6973
|
}
|
|
6577
|
-
type StyleOf<D> = D extends ComponentDefinition<any, infer S> ? {
|
|
6974
|
+
type StyleOf<D> = D extends ComponentDefinition<any, infer S, any> ? {
|
|
6578
6975
|
[K in keyof S]?: InputOf<S[K]["kind"]>;
|
|
6579
6976
|
} : never;
|
|
6580
|
-
type PropsOf<D, Style> = D extends ComponentDefinition<infer P, any> ? PropsInput<P> & Extras<Style
|
|
6977
|
+
type PropsOf<D, Style> = D extends ComponentDefinition<infer P, any, any> ? PropsInput<P> & Extras<Style, ConditionStyles<D>> : never;
|
|
6581
6978
|
declare const Email: React.FC<EmailProps>;
|
|
6582
6979
|
declare const Page: React.FC<PageProps>;
|
|
6583
6980
|
declare const Section: React.FC<SectionProps>;
|
|
@@ -6865,6 +7262,8 @@ declare function component<const P extends PropSpecs>(spec: ComponentSpec<P>): C
|
|
|
6865
7262
|
* template has errors (see `validate()`).
|
|
6866
7263
|
*/
|
|
6867
7264
|
declare function render(element: React.ReactElement, options?: RenderOptions): Promise<RenderResult>;
|
|
7265
|
+
/** `validate()`'s and `prepare()`'s options: `emailClients`, the email clients to report an Email's problems for. */
|
|
7266
|
+
type ValidateOptions = EmailClientsOption;
|
|
6868
7267
|
interface ValidationResult {
|
|
6869
7268
|
/** No errors (there may be warnings and notes). */
|
|
6870
7269
|
valid: boolean;
|
|
@@ -6878,9 +7277,10 @@ interface ValidationResult {
|
|
|
6878
7277
|
* own checks, layout, and what the output can't do as asked (`email/…`).
|
|
6879
7278
|
* Warnings and notes leave it valid. Only what needs the written output is
|
|
6880
7279
|
* left to `render()`: an email's size against Gmail's limits (`email/size`,
|
|
6881
|
-
* `email/style-size`).
|
|
7280
|
+
* `email/style-size`). An Email's problems with email clients name them
|
|
7281
|
+
* (`clients`), with what to change (`fix`); `emailClients` picks the clients.
|
|
6882
7282
|
*/
|
|
6883
|
-
declare function validate(element: React.ReactElement): ValidationResult;
|
|
7283
|
+
declare function validate(element: React.ReactElement, options?: ValidateOptions): ValidationResult;
|
|
6884
7284
|
/**
|
|
6885
7285
|
* A template laid out, as text: each block on a line under what holds it, with its width on desktop and what it
|
|
6886
7286
|
* shows (a heading's words, a link's URL, an image's alt text), and whether a Row stacks on phones. To check a
|
|
@@ -6893,10 +7293,10 @@ declare function outline(element: React.ReactElement): string;
|
|
|
6893
7293
|
* errors. The tree is the writers' input, not a format to store: it changes with Elements, and `layout` says which
|
|
6894
7294
|
* format it's in (a writer refuses one it doesn't read).
|
|
6895
7295
|
*/
|
|
6896
|
-
declare function prepare(element: React.ReactElement): {
|
|
7296
|
+
declare function prepare(element: React.ReactElement, options?: ValidateOptions): {
|
|
6897
7297
|
root: ResolvedNode | null;
|
|
6898
7298
|
diagnostics: Diagnostic[];
|
|
6899
7299
|
layout: number;
|
|
6900
7300
|
};
|
|
6901
7301
|
|
|
6902
|
-
export { Button, type ButtonProps, Canvas, type CanvasProps, Circle, type CircleProps, Column, type ColumnProps, type ComponentSpec, type CustomComponent, type CustomProps, type Diagnostic, Divider, type DividerProps, Document, type DocumentPageProps, type DocumentProps, ElementsError, Ellipse, type EllipseProps, Email, type EmailProps, Grid, type GridProps, Heading, type HeadingProps, Html, type HtmlProps, Image, type ImageProps, Layer, type LayerProps, Line, LineBreak, type LineBreakProps, type LineProps, Link, type LinkProps, List, ListItem, type ListItemProps, type ListProps, Menu, type MenuProps, MergeTag, type MergeTagProps, Page, PageBreak, type PageBreakProps, PageFooter, type PageFooterProps, PageHeader, type PageHeaderProps, PageNumber, type PageNumberProps, type PageProps, type ParagraphProps, Path, type PathProps, Polygon, type PolygonProps, type PrimitiveProps, Rect, type RectProps, type RenderOptions, type RenderResult, type ResolvedNode, Row, type RowProps, Section, type SectionProps, type Severity, Social, type SocialProps, Span, type SpanProps, Svg, type SvgProps, Table, TableCell, type TableCellProps, type TableProps, TableRow, type TableRowProps, Text, type TextProps, type ValidationResult, Video, type VideoProps, component, formatDiagnostics, outline, prepare, prop, render, validate };
|
|
7302
|
+
export { BLOCK_MAP_VERSION, type BlockMap, type BlockMapEntry, Button, type ButtonProps, Canvas, type CanvasProps, Circle, type CircleProps, Column, type ColumnProps, type ComponentSpec, type CustomComponent, type CustomProps, DEFAULT_EMAIL_CLIENTS, type Diagnostic, Divider, type DividerProps, Document, type DocumentPageProps, type DocumentProps, EMAIL_CLIENTS, ElementsError, Ellipse, type EllipseProps, Email, type EmailClient, type EmailClientInfo, type EmailClientMeasurement, type EmailProps, Grid, type GridProps, Heading, type HeadingProps, Html, type HtmlProps, Image, type ImageProps, Layer, type LayerProps, Line, LineBreak, type LineBreakProps, type LineProps, Link, type LinkProps, List, ListItem, type ListItemProps, type ListProps, Menu, type MenuProps, MergeTag, type MergeTagProps, Page, PageBreak, type PageBreakProps, PageFooter, type PageFooterProps, PageHeader, type PageHeaderProps, PageNumber, type PageNumberProps, type PageProps, type ParagraphProps, Path, type PathProps, Polygon, type PolygonProps, type PrimitiveProps, Rect, type RectProps, type RenderOptions, type RenderResult, type ResolvedNode, Row, type RowProps, Section, type SectionProps, type Severity, Social, type SocialProps, Span, type SpanProps, Svg, type SvgProps, Table, TableCell, type TableCellProps, type TableProps, TableRow, type TableRowProps, Text, type TextProps, type ValidateOptions, type ValidationResult, Video, type VideoProps, component, formatDiagnostics, outline, prepare, prop, render, validate };
|