email-builder-online 1.0.0 → 1.0.2
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/README.md +36 -6
- package/dist/index.cjs +7 -11
- package/dist/index.d.cts +1 -4
- package/dist/index.d.ts +1 -4
- package/dist/index.js +7 -7
- package/package.json +13 -9
package/README.md
CHANGED
|
@@ -1,10 +1,40 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Email Builder - Editor Sample
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This project provides a sample implementation of an email builder, demonstrating how to integrate and use the various building blocks and features. It allows users to design and customize email templates with a drag-and-drop interface.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Usage
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- `npx vite`
|
|
7
|
+
To use the email builder, simply include the web component in your HTML. The component exposes several properties that can be used to customize its behavior and appearance.
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
```html
|
|
10
|
+
<div id="email-builder-container"></div>
|
|
11
|
+
<script type="module">
|
|
12
|
+
import EmailBuilder from './dist/email-builder.js';
|
|
13
|
+
|
|
14
|
+
const container = document.getElementById('email-builder-container');
|
|
15
|
+
|
|
16
|
+
EmailBuilder({
|
|
17
|
+
primaryColor: '#FF5733',
|
|
18
|
+
secondaryColor: '#33FF57',
|
|
19
|
+
galleryImages: true,
|
|
20
|
+
freeMode: false,
|
|
21
|
+
darkMode: true,
|
|
22
|
+
heightContent: '800px',
|
|
23
|
+
stickyHeader: true,
|
|
24
|
+
disableSticky: false,
|
|
25
|
+
});
|
|
26
|
+
</script>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Available Props
|
|
30
|
+
|
|
31
|
+
The `EmailBuilder` component accepts the following props:
|
|
32
|
+
|
|
33
|
+
- `primaryColor`: (string, default: `#058705`) Sets the primary color theme of the builder.
|
|
34
|
+
- `secondaryColor`: (string, default: `#079707`) Sets the secondary color theme of the builder.
|
|
35
|
+
- `galleryImages`: (boolean, default: `false`) Enables or disables the image gallery feature.
|
|
36
|
+
- `freeMode`: (boolean, default: `true`) If `true`, allows free-form editing; if `false`, imposes stricter design constraints.
|
|
37
|
+
- `darkMode`: (boolean, default: `false`) Enables or disables dark mode.
|
|
38
|
+
- `heightContent`: (string, default: `calc(80dvh - 80px)`) Sets the height of the content area.
|
|
39
|
+
- `stickyHeader`: (boolean, default: `true`) Enables or disables the sticky header.
|
|
40
|
+
- `disableSticky`: (boolean, default: `false`) Disables all sticky elements within the builder.
|
package/dist/index.cjs
CHANGED
|
@@ -4,10 +4,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
7
|
var __copyProps = (to, from, except, desc) => {
|
|
12
8
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
9
|
for (let key of __getOwnPropNames(from))
|
|
@@ -28,11 +24,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
28
24
|
|
|
29
25
|
// src/index.tsx
|
|
30
26
|
var index_exports = {};
|
|
31
|
-
__export(index_exports, {
|
|
32
|
-
default: () => index_default
|
|
33
|
-
});
|
|
34
27
|
module.exports = __toCommonJS(index_exports);
|
|
35
|
-
var import_react58 = require("react");
|
|
28
|
+
var import_react58 = __toESM(require("react"), 1);
|
|
29
|
+
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
36
30
|
var import_react_dnd4 = require("react-dnd");
|
|
37
31
|
var import_react_dnd_html5_backend = require("react-dnd-html5-backend");
|
|
38
32
|
var import_material46 = require("@mui/material");
|
|
@@ -19099,6 +19093,7 @@ var getTheme = (mainColor = BRAND_BLUE, secondaryColor = BRAND_BLUE, darkMode =
|
|
|
19099
19093
|
var theme_default = getTheme;
|
|
19100
19094
|
|
|
19101
19095
|
// src/index.tsx
|
|
19096
|
+
var import_react_to_webcomponent = __toESM(require("react-to-webcomponent"), 1);
|
|
19102
19097
|
var import_jsx_runtime96 = require("react/jsx-runtime");
|
|
19103
19098
|
var EmailBuilder = ({
|
|
19104
19099
|
primaryColor,
|
|
@@ -19124,7 +19119,7 @@ var EmailBuilder = ({
|
|
|
19124
19119
|
setDarkMode(finalDarkMode);
|
|
19125
19120
|
}, [finalDarkMode]);
|
|
19126
19121
|
const theme = theme_default(finalPrimaryColor, finalSecondaryColor, isDark);
|
|
19127
|
-
return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_react_dnd4.DndProvider, { backend: import_react_dnd_html5_backend.HTML5Backend, children: /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(import_material46.ThemeProvider, { theme, children: [
|
|
19122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { style: { position: "relative", border: "1px solid gray" }, children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_react_dnd4.DndProvider, { backend: import_react_dnd_html5_backend.HTML5Backend, children: /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(import_material46.ThemeProvider, { theme, children: [
|
|
19128
19123
|
/* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_material46.CssBaseline, {}),
|
|
19129
19124
|
/* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
19130
19125
|
App,
|
|
@@ -19138,6 +19133,7 @@ var EmailBuilder = ({
|
|
|
19138
19133
|
stickyHeader: finalStickyHeader
|
|
19139
19134
|
}
|
|
19140
19135
|
)
|
|
19141
|
-
] }) });
|
|
19136
|
+
] }) }) });
|
|
19142
19137
|
};
|
|
19143
|
-
var
|
|
19138
|
+
var EmailBuilderElement = (0, import_react_to_webcomponent.default)(EmailBuilder, import_react58.default, import_react_dom.default);
|
|
19139
|
+
customElements.define("email-builder", EmailBuilderElement);
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
1
|
interface EmailBuilderProps {
|
|
4
2
|
primaryColor?: string;
|
|
5
3
|
secondaryColor?: string;
|
|
@@ -10,6 +8,5 @@ interface EmailBuilderProps {
|
|
|
10
8
|
stickyHeader?: boolean;
|
|
11
9
|
disableSticky?: boolean;
|
|
12
10
|
}
|
|
13
|
-
declare const EmailBuilder: React.FC<EmailBuilderProps>;
|
|
14
11
|
|
|
15
|
-
export {
|
|
12
|
+
export type { EmailBuilderProps };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
1
|
interface EmailBuilderProps {
|
|
4
2
|
primaryColor?: string;
|
|
5
3
|
secondaryColor?: string;
|
|
@@ -10,6 +8,5 @@ interface EmailBuilderProps {
|
|
|
10
8
|
stickyHeader?: boolean;
|
|
11
9
|
disableSticky?: boolean;
|
|
12
10
|
}
|
|
13
|
-
declare const EmailBuilder: React.FC<EmailBuilderProps>;
|
|
14
11
|
|
|
15
|
-
export {
|
|
12
|
+
export type { EmailBuilderProps };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/index.tsx
|
|
2
|
-
import { useEffect as useEffect34, useState as useState43 } from "react";
|
|
2
|
+
import React56, { useEffect as useEffect34, useState as useState43 } from "react";
|
|
3
|
+
import ReactDOM from "react-dom";
|
|
3
4
|
import { DndProvider } from "react-dnd";
|
|
4
5
|
import { HTML5Backend } from "react-dnd-html5-backend";
|
|
5
6
|
import { CssBaseline, ThemeProvider } from "@mui/material";
|
|
@@ -19164,6 +19165,7 @@ var getTheme = (mainColor = BRAND_BLUE, secondaryColor = BRAND_BLUE, darkMode =
|
|
|
19164
19165
|
var theme_default = getTheme;
|
|
19165
19166
|
|
|
19166
19167
|
// src/index.tsx
|
|
19168
|
+
import reactToWebComponent from "react-to-webcomponent";
|
|
19167
19169
|
import { jsx as jsx96, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
19168
19170
|
var EmailBuilder = ({
|
|
19169
19171
|
primaryColor,
|
|
@@ -19189,7 +19191,7 @@ var EmailBuilder = ({
|
|
|
19189
19191
|
setDarkMode(finalDarkMode);
|
|
19190
19192
|
}, [finalDarkMode]);
|
|
19191
19193
|
const theme = theme_default(finalPrimaryColor, finalSecondaryColor, isDark);
|
|
19192
|
-
return /* @__PURE__ */ jsx96(DndProvider, { backend: HTML5Backend, children: /* @__PURE__ */ jsxs59(ThemeProvider, { theme, children: [
|
|
19194
|
+
return /* @__PURE__ */ jsx96("div", { style: { position: "relative", border: "1px solid gray" }, children: /* @__PURE__ */ jsx96(DndProvider, { backend: HTML5Backend, children: /* @__PURE__ */ jsxs59(ThemeProvider, { theme, children: [
|
|
19193
19195
|
/* @__PURE__ */ jsx96(CssBaseline, {}),
|
|
19194
19196
|
/* @__PURE__ */ jsx96(
|
|
19195
19197
|
App,
|
|
@@ -19203,9 +19205,7 @@ var EmailBuilder = ({
|
|
|
19203
19205
|
stickyHeader: finalStickyHeader
|
|
19204
19206
|
}
|
|
19205
19207
|
)
|
|
19206
|
-
] }) });
|
|
19207
|
-
};
|
|
19208
|
-
var index_default = EmailBuilder;
|
|
19209
|
-
export {
|
|
19210
|
-
index_default as default
|
|
19208
|
+
] }) }) });
|
|
19211
19209
|
};
|
|
19210
|
+
var EmailBuilderElement = reactToWebComponent(EmailBuilder, React56, ReactDOM);
|
|
19211
|
+
customElements.define("email-builder", EmailBuilderElement);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "email-builder-online",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -12,11 +12,14 @@
|
|
|
12
12
|
"email": "jose.vazcortez@gmail.com",
|
|
13
13
|
"url": "https://www.laravel42.com"
|
|
14
14
|
},
|
|
15
|
-
"files": [
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
16
18
|
"scripts": {
|
|
17
|
-
|
|
19
|
+
"build-library": "vite build --lib --entry=src/index.ts --name=EmailBuilder --fileName=index",
|
|
18
20
|
"dev": "vite",
|
|
19
|
-
"build": "
|
|
21
|
+
"build": "tsup src/index.tsx --format cjs,esm --dts",
|
|
22
|
+
"build-vite": "vite build",
|
|
20
23
|
"preview": "vite preview",
|
|
21
24
|
"staticBuild": "esbuild build.js --bundle --outfile=build/email-builder.js --loader:.js=tsx --loader:.svg=dataurl --loader:.ttf=dataurl --format=esm",
|
|
22
25
|
"copy-to-maildrill": "cp -f ./build/email-builder.js ../../../maildrill/resources/js/components/email-builder.js && cp -f ./build/email-builder.css ../../../maildrill/resources/css/email-builder.css",
|
|
@@ -62,20 +65,19 @@
|
|
|
62
65
|
"react-quill": "^2.0.0",
|
|
63
66
|
"react-quill-new": "^3.3.3",
|
|
64
67
|
"react-sticky-el": "^2.1.1",
|
|
68
|
+
"react-to-webcomponent": "^2.0.1",
|
|
65
69
|
"vite-plugin-dts": "^4.5.4",
|
|
66
70
|
"zod": "^3.22.4",
|
|
67
71
|
"zustand": "^4.5.1"
|
|
68
72
|
},
|
|
69
73
|
"peerDependencies": {
|
|
70
|
-
"react": "^18.2.0",
|
|
71
|
-
"react-dom": "^18.2.0",
|
|
72
74
|
"@mui/material": "^5.15.10",
|
|
75
|
+
"react": "^18.2.0",
|
|
73
76
|
"react-dnd": "^16.0.1",
|
|
74
|
-
"react-dnd-html5-backend": "^16.0.1"
|
|
77
|
+
"react-dnd-html5-backend": "^16.0.1",
|
|
78
|
+
"react-dom": "^18.2.0"
|
|
75
79
|
},
|
|
76
80
|
"devDependencies": {
|
|
77
|
-
"react": "^18.2.0",
|
|
78
|
-
"react-dom": "^18.2.0",
|
|
79
81
|
"@types/react": "^18.2.55",
|
|
80
82
|
"@types/react-dom": "^18.2.19",
|
|
81
83
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
@@ -87,6 +89,8 @@
|
|
|
87
89
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
88
90
|
"eslint-plugin-react-refresh": "^0.4.5",
|
|
89
91
|
"eslint-plugin-simple-import-sort": "^12.0.0",
|
|
92
|
+
"react": "^18.2.0",
|
|
93
|
+
"react-dom": "^18.2.0",
|
|
90
94
|
"typescript": "^5.2.2",
|
|
91
95
|
"vite": "^5.1.0"
|
|
92
96
|
},
|