@emabuild/types 0.0.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.
@@ -0,0 +1,146 @@
1
+ import type { UnlayerDesign, FontFamily, DisplayCondition } from './design.js';
2
+ import type { DisplayMode } from './tool.js';
3
+ export interface MailEditorConfig {
4
+ displayMode?: DisplayMode;
5
+ projectId?: number;
6
+ locale?: string;
7
+ appearance?: AppearanceConfig;
8
+ tools?: Record<string, ToolConfig>;
9
+ blocks?: SavedBlock[];
10
+ fonts?: FontConfig;
11
+ mergeTags?: MergeTagGroup[] | MergeTagDefinition[];
12
+ designTags?: Record<string, string>;
13
+ designTagsConfig?: Record<string, DesignTagConfig>;
14
+ customCSS?: string | string[];
15
+ customJS?: string | string[];
16
+ tabs?: TabConfig;
17
+ editor?: EditorBehaviorConfig;
18
+ features?: FeaturesConfig;
19
+ design?: UnlayerDesign;
20
+ }
21
+ export interface AppearanceConfig {
22
+ theme?: string;
23
+ panels?: {
24
+ tools?: {
25
+ dock?: 'left' | 'right';
26
+ collapsible?: boolean;
27
+ };
28
+ };
29
+ }
30
+ export interface ToolConfig {
31
+ enabled?: boolean;
32
+ usageLimit?: number;
33
+ position?: number;
34
+ properties?: Record<string, ToolPropertyOverride>;
35
+ }
36
+ export interface ToolPropertyOverride {
37
+ value?: unknown;
38
+ editor?: {
39
+ data?: Record<string, unknown>;
40
+ };
41
+ }
42
+ export interface SavedBlock {
43
+ id: string;
44
+ name: string;
45
+ category?: string;
46
+ tags?: string[];
47
+ data: unknown;
48
+ displayMode?: DisplayMode;
49
+ }
50
+ export interface FontConfig {
51
+ showDefaultFonts?: boolean;
52
+ customFonts?: FontFamily[];
53
+ }
54
+ export interface MergeTagGroup {
55
+ name: string;
56
+ mergeTags: Record<string, MergeTagDefinition>;
57
+ }
58
+ export interface MergeTagDefinition {
59
+ name: string;
60
+ value: string;
61
+ sample?: string;
62
+ mergeTags?: Record<string, MergeTagDefinition>;
63
+ }
64
+ export interface DesignTagConfig {
65
+ delimiter: [string, string];
66
+ }
67
+ export interface TabConfig {
68
+ content?: TabItemConfig;
69
+ blocks?: TabItemConfig;
70
+ body?: TabItemConfig;
71
+ images?: TabItemConfig;
72
+ uploads?: TabItemConfig;
73
+ [key: string]: TabItemConfig | undefined;
74
+ }
75
+ export interface TabItemConfig {
76
+ enabled?: boolean;
77
+ position?: number;
78
+ icon?: string;
79
+ }
80
+ export interface EditorBehaviorConfig {
81
+ minRows?: number;
82
+ maxRows?: number;
83
+ autoSelectOnDrop?: boolean;
84
+ }
85
+ export interface FeaturesConfig {
86
+ textEditor?: {
87
+ spellChecker?: boolean;
88
+ tables?: boolean;
89
+ cleanPaste?: boolean;
90
+ emojis?: boolean;
91
+ };
92
+ undoRedo?: boolean;
93
+ stockImages?: {
94
+ enabled: boolean;
95
+ safeSearch?: boolean;
96
+ };
97
+ userUploads?: boolean;
98
+ imageEditor?: boolean;
99
+ }
100
+ export interface CustomTabDefinition {
101
+ name: string;
102
+ label: string;
103
+ icon: string;
104
+ render: () => unknown;
105
+ }
106
+ export interface ExportOptions {
107
+ minify?: boolean;
108
+ inlineStyles?: boolean;
109
+ cleanup?: boolean;
110
+ mergeTags?: Record<string, string>;
111
+ }
112
+ export interface ExportResult {
113
+ design: UnlayerDesign;
114
+ html: string;
115
+ chunks: ExportChunks;
116
+ }
117
+ export interface ExportChunks {
118
+ body: string;
119
+ css: string;
120
+ fonts: string[];
121
+ js: string;
122
+ }
123
+ export interface DesignUpdatedEvent {
124
+ type: 'content_updated' | 'row_added' | 'row_removed' | 'row_reordered' | 'content_added' | 'content_removed' | 'content_reordered' | 'body_updated';
125
+ item?: unknown;
126
+ changes?: unknown;
127
+ }
128
+ export interface ImageUploadedEvent {
129
+ url: string;
130
+ width?: number;
131
+ height?: number;
132
+ }
133
+ export interface DesignLoadedEvent {
134
+ design: UnlayerDesign;
135
+ }
136
+ export type CallbackType = 'image' | 'displayCondition' | 'selectImage';
137
+ export interface ImageUploadDone {
138
+ progress: number;
139
+ url?: string;
140
+ }
141
+ export type ImageUploadCallback = (file: File, done: (result: ImageUploadDone) => void) => void;
142
+ export type DisplayConditionCallback = (data: {
143
+ label: string;
144
+ description: string;
145
+ }, done: (condition: DisplayCondition) => void) => void;
146
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,139 @@
1
+ /** Top-level design document */
2
+ export interface UnlayerDesign {
3
+ counters: Record<string, number>;
4
+ body: DesignBody;
5
+ schemaVersion: number;
6
+ }
7
+ /** Design body containing rows, headers, footers and global values */
8
+ export interface DesignBody {
9
+ id: string;
10
+ rows: DesignRow[];
11
+ headers: DesignRow[];
12
+ footers: DesignRow[];
13
+ values: BodyValues;
14
+ }
15
+ /** A row in the design — contains columns */
16
+ export interface DesignRow {
17
+ id: string;
18
+ cells: number[];
19
+ columns: DesignColumn[];
20
+ values: RowValues;
21
+ }
22
+ /** A column within a row — contains content blocks */
23
+ export interface DesignColumn {
24
+ id: string;
25
+ contents: DesignContent[];
26
+ values: ColumnValues;
27
+ }
28
+ /** A content block (tool instance) within a column */
29
+ export interface DesignContent {
30
+ id: string;
31
+ type: string;
32
+ values: ContentValues;
33
+ }
34
+ export interface MetaInfo {
35
+ htmlID: string;
36
+ htmlClassNames: string;
37
+ }
38
+ export interface BackgroundImage {
39
+ url: string;
40
+ fullWidth: boolean;
41
+ repeat: boolean | string;
42
+ center: boolean;
43
+ cover: boolean;
44
+ }
45
+ export interface LinkStyle {
46
+ body: boolean;
47
+ linkColor: string;
48
+ linkHoverColor: string;
49
+ linkUnderline: boolean;
50
+ linkHoverUnderline: boolean;
51
+ }
52
+ export interface PopupCloseButtonAction {
53
+ name: string;
54
+ attrs: Record<string, string>;
55
+ }
56
+ export interface FontFamily {
57
+ label: string;
58
+ value: string;
59
+ url?: string;
60
+ weights?: number[];
61
+ }
62
+ export interface Border {
63
+ borderTopWidth?: string;
64
+ borderTopStyle?: string;
65
+ borderTopColor?: string;
66
+ borderRightWidth?: string;
67
+ borderRightStyle?: string;
68
+ borderRightColor?: string;
69
+ borderBottomWidth?: string;
70
+ borderBottomStyle?: string;
71
+ borderBottomColor?: string;
72
+ borderLeftWidth?: string;
73
+ borderLeftStyle?: string;
74
+ borderLeftColor?: string;
75
+ }
76
+ export interface BodyValues {
77
+ backgroundColor: string;
78
+ contentAlign: string;
79
+ contentVerticalAlign: string;
80
+ contentWidth: string;
81
+ fontFamily: FontFamily;
82
+ textColor: string;
83
+ linkStyle: LinkStyle;
84
+ preheaderText: string;
85
+ popupPosition: string;
86
+ popupWidth: string;
87
+ popupHeight: string;
88
+ borderRadius: string;
89
+ popupBackgroundColor: string;
90
+ popupBackgroundImage: BackgroundImage;
91
+ popupOverlay_backgroundColor: string;
92
+ popupCloseButton_position: string;
93
+ popupCloseButton_backgroundColor: string;
94
+ popupCloseButton_iconColor: string;
95
+ popupCloseButton_borderRadius: string;
96
+ popupCloseButton_margin: string;
97
+ popupCloseButton_action: PopupCloseButtonAction;
98
+ _meta: MetaInfo;
99
+ [key: string]: unknown;
100
+ }
101
+ export interface RowValues {
102
+ displayCondition: DisplayCondition | null;
103
+ columns: boolean;
104
+ backgroundColor: string;
105
+ columnsBackgroundColor: string;
106
+ backgroundImage: BackgroundImage;
107
+ padding: string;
108
+ anchor: string;
109
+ hideDesktop: boolean;
110
+ hideMobile: boolean;
111
+ _meta: MetaInfo;
112
+ [key: string]: unknown;
113
+ }
114
+ export interface ColumnValues {
115
+ backgroundColor: string;
116
+ padding: string;
117
+ border: Border;
118
+ borderRadius: string;
119
+ _meta: MetaInfo;
120
+ [key: string]: unknown;
121
+ }
122
+ export interface ContentValues {
123
+ _meta: MetaInfo;
124
+ containerPadding: string;
125
+ anchor: string;
126
+ hideDesktop: boolean;
127
+ hideMobile: boolean;
128
+ displayCondition: DisplayCondition | null;
129
+ [key: string]: unknown;
130
+ }
131
+ export interface DisplayCondition {
132
+ type: string;
133
+ label: string;
134
+ description: string;
135
+ before?: string;
136
+ after?: string;
137
+ [key: string]: unknown;
138
+ }
139
+ //# sourceMappingURL=design.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"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"}
package/dist/design.js ADDED
@@ -0,0 +1,8 @@
1
+ // ============================================================
2
+ // Unlayer-compatible design JSON types
3
+ // These interfaces match the Unlayer JSON schema exactly
4
+ // so that designs exported from Unlayer can be loaded here
5
+ // and vice-versa.
6
+ // ============================================================
7
+ export {};
8
+ //# sourceMappingURL=design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.js","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uCAAuC;AACvC,yDAAyD;AACzD,2DAA2D;AAC3D,kBAAkB;AAClB,+DAA+D"}
@@ -0,0 +1,4 @@
1
+ export type { UnlayerDesign, DesignBody, DesignRow, DesignColumn, DesignContent, MetaInfo, BackgroundImage, LinkStyle, PopupCloseButtonAction, FontFamily, Border, BodyValues, RowValues, ColumnValues, ContentValues, DisplayCondition, } from './design.js';
2
+ export type { DisplayMode, ToolDefinition, ToolRenderer, EditorRenderContext, ExportRenderContext, ToolPropertyGroup, ToolProperty, PropertyEditorDefinition, } from './tool.js';
3
+ export type { MailEditorConfig, AppearanceConfig, ToolConfig, ToolPropertyOverride, SavedBlock, FontConfig, MergeTagGroup, MergeTagDefinition, DesignTagConfig, TabConfig, TabItemConfig, EditorBehaviorConfig, FeaturesConfig, CustomTabDefinition, ExportOptions, ExportResult, ExportChunks, DesignUpdatedEvent, ImageUploadedEvent, DesignLoadedEvent, CallbackType, ImageUploadDone, ImageUploadCallback, DisplayConditionCallback, } from './config.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,eAAe,EACf,SAAS,EACT,sBAAsB,EACtB,UAAU,EACV,MAAM,EACN,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/tool.d.ts ADDED
@@ -0,0 +1,49 @@
1
+ import type { ContentValues } from './design.js';
2
+ export type DisplayMode = 'email' | 'web' | 'popup';
3
+ /** Definition for a built-in or custom tool */
4
+ export interface ToolDefinition<TEditorResult = unknown> {
5
+ name: string;
6
+ label: string;
7
+ icon: string;
8
+ supportedDisplayModes: DisplayMode[];
9
+ category?: string;
10
+ usageLimit?: number;
11
+ position?: number;
12
+ options: Record<string, ToolPropertyGroup>;
13
+ defaultValues: Record<string, unknown>;
14
+ renderer: ToolRenderer<TEditorResult>;
15
+ }
16
+ export interface ToolRenderer<TEditorResult = unknown> {
17
+ /** Render the tool in the editor canvas (interactive) */
18
+ renderEditor(values: ContentValues, context: EditorRenderContext): TEditorResult;
19
+ /** Render the tool as email-safe HTML string */
20
+ renderHtml(values: ContentValues, context: ExportRenderContext): string;
21
+ }
22
+ export interface EditorRenderContext {
23
+ isSelected: boolean;
24
+ isHovered: boolean;
25
+ columnWidth: number;
26
+ displayMode: DisplayMode;
27
+ }
28
+ export interface ExportRenderContext {
29
+ columnWidth: number;
30
+ displayMode: DisplayMode;
31
+ contentWidth: number;
32
+ bodyValues: Record<string, unknown>;
33
+ }
34
+ /** A group of properties shown in the property panel */
35
+ export interface ToolPropertyGroup {
36
+ title: string;
37
+ options: Record<string, ToolProperty>;
38
+ }
39
+ /** A single property within a group */
40
+ export interface ToolProperty {
41
+ label: string;
42
+ defaultValue: unknown;
43
+ widget: string;
44
+ widgetParams?: Record<string, unknown>;
45
+ }
46
+ export interface PropertyEditorDefinition<TResult = unknown> {
47
+ render(value: unknown, onChange: (value: unknown) => void, params?: Record<string, unknown>): TResult;
48
+ }
49
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpD,+CAA+C;AAC/C,MAAM,WAAW,cAAc,CAAC,aAAa,GAAG,OAAO;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,EAAE,WAAW,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY,CAAC,aAAa,GAAG,OAAO;IACnD,yDAAyD;IACzD,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,aAAa,CAAC;IACjF,gDAAgD;IAChD,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC;CACzE;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACvC;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAMD,MAAM,WAAW,wBAAwB,CAAC,OAAO,GAAG,OAAO;IACzD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;CACvG"}
package/dist/tool.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@emabuild/types",
3
+ "version": "0.0.1",
4
+ "description": "Unlayer-compatible TypeScript type definitions for maileditor",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "development": "./src/index.ts",
13
+ "import": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md"
19
+ ],
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "license": "MIT",
24
+ "sideEffects": false,
25
+ "scripts": {
26
+ "build": "tsc",
27
+ "clean": "rm -rf dist"
28
+ }
29
+ }