diff --git a/apps/web/tailwind.config.ts b/apps/web/tailwind.config.ts
index 1428d5e..776ddd7 100644
--- a/apps/web/tailwind.config.ts
+++ b/apps/web/tailwind.config.ts
@@ -7,5 +7,6 @@ export default {
content: [
"./src/**/*.tsx",
`${path.join(require.resolve("@unsend/ui"), "..")}/**/*.{ts,tsx}`,
+ `${path.join(require.resolve("@unsend/email-editor"), "..")}/**/*.{ts,tsx}`,
],
} satisfies Config;
diff --git a/packages/email-editor/.eslintrc.cjs b/packages/email-editor/.eslintrc.cjs
new file mode 100644
index 0000000..374c84c
--- /dev/null
+++ b/packages/email-editor/.eslintrc.cjs
@@ -0,0 +1,10 @@
+/** @type {import("eslint").Linter.Config} */
+module.exports = {
+ root: true,
+ extends: ["@unsend/eslint-config/react-internal.js"],
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: "./tsconfig.lint.json",
+ tsconfigRootDir: __dirname,
+ },
+};
diff --git a/packages/email-editor/package.json b/packages/email-editor/package.json
index 61620d3..ebbd1e0 100644
--- a/packages/email-editor/package.json
+++ b/packages/email-editor/package.json
@@ -2,21 +2,21 @@
"name": "@unsend/email-editor",
"version": "0.0.1",
"description": "Email editor used by unsend",
- "main": "./dist/index.js",
- "module": "./dist/index.mjs",
- "types": "./dist/index.d.ts",
+ "main": "./src/index.ts",
+ "types": "./src/index.ts",
"files": [
- "dist/**"
+ "src"
],
"scripts": {
- "dev": "tsup --watch",
"clean": "rm -rf dist",
- "build": "tsup"
+ "lint": "eslint . --max-warnings 0",
+ "lint:fix": "eslint . --fix"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
+ "@types/eslint": "^9.6.0",
"@types/react": "^18.3.3",
"@unsend/eslint-config": "workspace:*",
"@unsend/tailwind-config": "workspace:*",
@@ -50,6 +50,7 @@
"@tiptap/react": "^2.4.0",
"@tiptap/starter-kit": "^2.4.0",
"@tiptap/suggestion": "^2.4.0",
+ "eslint": "^9.9.1",
"jsx-email": "^1.12.1",
"lucide-react": "^0.359.0",
"react-colorful": "^5.6.1",
diff --git a/packages/email-editor/src/extensions/ImageExtension.tsx b/packages/email-editor/src/extensions/ImageExtension.tsx
index 65d21a5..a959fe7 100644
--- a/packages/email-editor/src/extensions/ImageExtension.tsx
+++ b/packages/email-editor/src/extensions/ImageExtension.tsx
@@ -2,8 +2,6 @@ import { ReactNodeViewRenderer } from "@tiptap/react";
import TipTapImage from "@tiptap/extension-image";
import { ResizableImageTemplate } from "../nodes/image-resize";
-const BORDER_COLOR = "#0096fd";
-
export const ResizableImageExtension = TipTapImage.extend({
addAttributes() {
return {
diff --git a/packages/email-editor/src/nodes/button.tsx b/packages/email-editor/src/nodes/button.tsx
index 3391046..2d3e17e 100644
--- a/packages/email-editor/src/nodes/button.tsx
+++ b/packages/email-editor/src/nodes/button.tsx
@@ -18,7 +18,7 @@ import { Button } from "@unsend/ui/src/button";
import { AllowedAlignments, ButtonOptions } from "../types";
import { Separator } from "@unsend/ui/src/separator";
import { BorderWidth } from "../components/ui/icons/BorderWidth";
-import { ColorPicker, ColorPickerPopup } from "../components/ui/ColorPicker";
+import { ColorPickerPopup } from "../components/ui/ColorPicker";
import { LinkEditorPanel } from "../components/panels/LinkEditorPanel";
import { useState } from "react";
import {
@@ -96,7 +96,21 @@ export function ButtonComponent(props: NodeViewProps) {
{props.selected ? (
-