@daisychainapp/maily-to-core 0.1.3 → 0.2.9
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/dist/blocks/{index.js → index.cjs} +46 -31
- package/dist/blocks/index.cjs.map +1 -0
- package/dist/blocks/{index.d.mts → index.d.cts} +3 -1
- package/dist/blocks/index.d.ts +3 -1
- package/dist/blocks/index.mjs +40 -26
- package/dist/blocks/index.mjs.map +1 -1
- package/dist/extensions/{index.js → index.cjs} +3926 -3115
- package/dist/extensions/index.cjs.map +1 -0
- package/dist/extensions/{index.d.mts → index.d.cts} +237 -144
- package/dist/extensions/index.d.ts +237 -144
- package/dist/extensions/index.mjs +3912 -3105
- package/dist/extensions/index.mjs.map +1 -1
- package/dist/{index.js → index.cjs} +5425 -4716
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +2358 -0
- package/dist/index.css.map +1 -0
- package/dist/{index.d.mts → index.d.cts} +1 -22
- package/dist/index.d.ts +1 -22
- package/dist/index.mjs +5575 -4864
- package/dist/index.mjs.map +1 -1
- package/package.json +128 -50
- package/readme.md +91 -33
- package/dist/blocks/index.js.map +0 -1
- package/dist/extensions/index.js.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -31,6 +31,7 @@ __export(blocks_exports, {
|
|
|
31
31
|
heading1: () => heading1,
|
|
32
32
|
heading2: () => heading2,
|
|
33
33
|
heading3: () => heading3,
|
|
34
|
+
htmlCodeBlock: () => htmlCodeBlock,
|
|
34
35
|
image: () => image,
|
|
35
36
|
inlineImage: () => inlineImage,
|
|
36
37
|
linkCard: () => linkCard,
|
|
@@ -70,15 +71,28 @@ var linkCard = {
|
|
|
70
71
|
}
|
|
71
72
|
};
|
|
72
73
|
|
|
73
|
-
// src/blocks/
|
|
74
|
-
var import_state = require("@tiptap/pm/state");
|
|
74
|
+
// src/blocks/code.tsx
|
|
75
75
|
var import_lucide_react2 = require("lucide-react");
|
|
76
76
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
77
|
+
var htmlCodeBlock = {
|
|
78
|
+
title: "Custom HTML",
|
|
79
|
+
description: "Insert a custom HTML block",
|
|
80
|
+
searchTerms: ["html", "code", "custom"],
|
|
81
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.CodeXmlIcon, { className: "mly-h-4 mly-w-4" }),
|
|
82
|
+
command: ({ editor, range }) => {
|
|
83
|
+
editor.chain().focus().deleteRange(range).setHtmlCodeBlock({ language: "html" }).run();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// src/blocks/image.tsx
|
|
88
|
+
var import_state = require("@tiptap/pm/state");
|
|
89
|
+
var import_lucide_react3 = require("lucide-react");
|
|
90
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
77
91
|
var image = {
|
|
78
92
|
title: "Image",
|
|
79
93
|
description: "Full width image",
|
|
80
94
|
searchTerms: ["image"],
|
|
81
|
-
icon: /* @__PURE__ */ (0,
|
|
95
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly-h-4 mly-w-4" }),
|
|
82
96
|
command: ({ editor, range }) => {
|
|
83
97
|
editor.chain().focus().deleteRange(range).setImage({ src: "" }).run();
|
|
84
98
|
}
|
|
@@ -87,7 +101,7 @@ var logo = {
|
|
|
87
101
|
title: "Logo",
|
|
88
102
|
description: "Add your brand logo",
|
|
89
103
|
searchTerms: ["image", "logo"],
|
|
90
|
-
icon: /* @__PURE__ */ (0,
|
|
104
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly-h-4 mly-w-4" }),
|
|
91
105
|
command: ({ editor, range }) => {
|
|
92
106
|
editor.chain().focus().deleteRange(range).setLogoImage({ src: "" }).run();
|
|
93
107
|
}
|
|
@@ -96,10 +110,10 @@ var inlineImage = {
|
|
|
96
110
|
title: "Inline Image",
|
|
97
111
|
description: "Inline image",
|
|
98
112
|
searchTerms: ["image", "inline"],
|
|
99
|
-
icon: /* @__PURE__ */ (0,
|
|
113
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly-h-4 mly-w-4" }),
|
|
100
114
|
command: ({ editor, range }) => {
|
|
101
115
|
editor.chain().focus().deleteRange(range).setInlineImage({
|
|
102
|
-
src: ""
|
|
116
|
+
src: "https://maily.to/brand/logo.png"
|
|
103
117
|
}).command((props) => {
|
|
104
118
|
const { tr, state, view, editor: editor2 } = props;
|
|
105
119
|
const { from } = range;
|
|
@@ -119,13 +133,13 @@ var inlineImage = {
|
|
|
119
133
|
};
|
|
120
134
|
|
|
121
135
|
// src/blocks/layout.tsx
|
|
122
|
-
var
|
|
123
|
-
var
|
|
136
|
+
var import_lucide_react4 = require("lucide-react");
|
|
137
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
124
138
|
var columns = {
|
|
125
139
|
title: "Columns",
|
|
126
140
|
description: "Add columns to email.",
|
|
127
141
|
searchTerms: ["layout", "columns"],
|
|
128
|
-
icon: /* @__PURE__ */ (0,
|
|
142
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.ColumnsIcon, { className: "mly-h-4 mly-w-4" }),
|
|
129
143
|
command: ({ editor, range }) => {
|
|
130
144
|
editor.chain().focus().deleteRange(range).setColumns().focus(editor.state.selection.head - 2).run();
|
|
131
145
|
}
|
|
@@ -134,7 +148,7 @@ var section = {
|
|
|
134
148
|
title: "Section",
|
|
135
149
|
description: "Add a section to email.",
|
|
136
150
|
searchTerms: ["layout", "section"],
|
|
137
|
-
icon: /* @__PURE__ */ (0,
|
|
151
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.RectangleHorizontal, { className: "mly-h-4 mly-w-4" }),
|
|
138
152
|
command: ({ editor, range }) => {
|
|
139
153
|
editor.chain().focus().deleteRange(range).setSection().run();
|
|
140
154
|
}
|
|
@@ -143,7 +157,7 @@ var repeat = {
|
|
|
143
157
|
title: "Repeat",
|
|
144
158
|
description: "Loop over an array of items.",
|
|
145
159
|
searchTerms: ["repeat", "for", "loop"],
|
|
146
|
-
icon: /* @__PURE__ */ (0,
|
|
160
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.Repeat2, { className: "mly-h-4 mly-w-4" }),
|
|
147
161
|
command: ({ editor, range }) => {
|
|
148
162
|
editor.chain().focus().deleteRange(range).setRepeat().run();
|
|
149
163
|
}
|
|
@@ -152,7 +166,7 @@ var spacer = {
|
|
|
152
166
|
title: "Spacer",
|
|
153
167
|
description: "Add space between blocks.",
|
|
154
168
|
searchTerms: ["space", "gap", "divider"],
|
|
155
|
-
icon: /* @__PURE__ */ (0,
|
|
169
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.MoveVertical, { className: "mly-h-4 mly-w-4" }),
|
|
156
170
|
command: ({ editor, range }) => {
|
|
157
171
|
editor.chain().focus().deleteRange(range).setSpacer({ height: "sm" }).run();
|
|
158
172
|
}
|
|
@@ -161,20 +175,20 @@ var divider = {
|
|
|
161
175
|
title: "Divider",
|
|
162
176
|
description: "Add a horizontal divider.",
|
|
163
177
|
searchTerms: ["divider", "line"],
|
|
164
|
-
icon: /* @__PURE__ */ (0,
|
|
178
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.Minus, { className: "mly-h-4 mly-w-4" }),
|
|
165
179
|
command: ({ editor, range }) => {
|
|
166
180
|
editor.chain().focus().deleteRange(range).setHorizontalRule().run();
|
|
167
181
|
}
|
|
168
182
|
};
|
|
169
183
|
|
|
170
184
|
// src/blocks/list.tsx
|
|
171
|
-
var
|
|
172
|
-
var
|
|
185
|
+
var import_lucide_react5 = require("lucide-react");
|
|
186
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
173
187
|
var bulletList = {
|
|
174
188
|
title: "Bullet List",
|
|
175
189
|
description: "Create a simple bullet list.",
|
|
176
190
|
searchTerms: ["unordered", "point"],
|
|
177
|
-
icon: /* @__PURE__ */ (0,
|
|
191
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react5.List, { className: "mly-h-4 mly-w-4" }),
|
|
178
192
|
command: ({ editor, range }) => {
|
|
179
193
|
editor.chain().focus().deleteRange(range).toggleBulletList().run();
|
|
180
194
|
}
|
|
@@ -183,20 +197,20 @@ var orderedList = {
|
|
|
183
197
|
title: "Numbered List",
|
|
184
198
|
description: "Create a list with numbering.",
|
|
185
199
|
searchTerms: ["ordered"],
|
|
186
|
-
icon: /* @__PURE__ */ (0,
|
|
200
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react5.ListOrdered, { className: "mly-h-4 mly-w-4" }),
|
|
187
201
|
command: ({ editor, range }) => {
|
|
188
202
|
editor.chain().focus().deleteRange(range).toggleOrderedList().run();
|
|
189
203
|
}
|
|
190
204
|
};
|
|
191
205
|
|
|
192
206
|
// src/blocks/typography.tsx
|
|
193
|
-
var
|
|
194
|
-
var
|
|
207
|
+
var import_lucide_react6 = require("lucide-react");
|
|
208
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
195
209
|
var text = {
|
|
196
210
|
title: "Text",
|
|
197
211
|
description: "Just start typing with plain text.",
|
|
198
212
|
searchTerms: ["p", "paragraph"],
|
|
199
|
-
icon: /* @__PURE__ */ (0,
|
|
213
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Text, { className: "mly-h-4 mly-w-4" }),
|
|
200
214
|
command: ({ editor, range }) => {
|
|
201
215
|
editor.chain().focus().deleteRange(range).toggleNode("paragraph", "paragraph").run();
|
|
202
216
|
}
|
|
@@ -204,8 +218,8 @@ var text = {
|
|
|
204
218
|
var heading1 = {
|
|
205
219
|
title: "Heading 1",
|
|
206
220
|
description: "Big heading.",
|
|
207
|
-
searchTerms: ["title", "big", "large"],
|
|
208
|
-
icon: /* @__PURE__ */ (0,
|
|
221
|
+
searchTerms: ["h1", "title", "big", "large"],
|
|
222
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading1, { className: "mly-h-4 mly-w-4" }),
|
|
209
223
|
command: ({ editor, range }) => {
|
|
210
224
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 1 }).run();
|
|
211
225
|
}
|
|
@@ -213,8 +227,8 @@ var heading1 = {
|
|
|
213
227
|
var heading2 = {
|
|
214
228
|
title: "Heading 2",
|
|
215
229
|
description: "Medium heading.",
|
|
216
|
-
searchTerms: ["subtitle", "medium"],
|
|
217
|
-
icon: /* @__PURE__ */ (0,
|
|
230
|
+
searchTerms: ["h2", "subtitle", "medium"],
|
|
231
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading2, { className: "mly-h-4 mly-w-4" }),
|
|
218
232
|
command: ({ editor, range }) => {
|
|
219
233
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 2 }).run();
|
|
220
234
|
}
|
|
@@ -222,8 +236,8 @@ var heading2 = {
|
|
|
222
236
|
var heading3 = {
|
|
223
237
|
title: "Heading 3",
|
|
224
238
|
description: "Small heading.",
|
|
225
|
-
searchTerms: ["subtitle", "small"],
|
|
226
|
-
icon: /* @__PURE__ */ (0,
|
|
239
|
+
searchTerms: ["h3", "subtitle", "small"],
|
|
240
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading3, { className: "mly-h-4 mly-w-4" }),
|
|
227
241
|
command: ({ editor, range }) => {
|
|
228
242
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 3 }).run();
|
|
229
243
|
}
|
|
@@ -232,7 +246,7 @@ var hardBreak = {
|
|
|
232
246
|
title: "Hard Break",
|
|
233
247
|
description: "Add a break between lines.",
|
|
234
248
|
searchTerms: ["break", "line"],
|
|
235
|
-
icon: /* @__PURE__ */ (0,
|
|
249
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.DivideIcon, { className: "mly-h-4 mly-w-4" }),
|
|
236
250
|
command: ({ editor, range }) => {
|
|
237
251
|
editor.chain().focus().deleteRange(range).setHardBreak().run();
|
|
238
252
|
}
|
|
@@ -241,7 +255,7 @@ var blockquote = {
|
|
|
241
255
|
title: "Blockquote",
|
|
242
256
|
description: "Add blockquote.",
|
|
243
257
|
searchTerms: ["quote", "blockquote"],
|
|
244
|
-
icon: /* @__PURE__ */ (0,
|
|
258
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.TextQuote, { className: "mly-h-4 mly-w-4" }),
|
|
245
259
|
command: ({ editor, range }) => {
|
|
246
260
|
editor.chain().focus().deleteRange(range).toggleBlockquote().run();
|
|
247
261
|
}
|
|
@@ -250,7 +264,7 @@ var footer = {
|
|
|
250
264
|
title: "Footer",
|
|
251
265
|
description: "Add a footer text to email.",
|
|
252
266
|
searchTerms: ["footer", "text"],
|
|
253
|
-
icon: /* @__PURE__ */ (0,
|
|
267
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.FootprintsIcon, { className: "mly-h-4 mly-w-4" }),
|
|
254
268
|
command: ({ editor, range }) => {
|
|
255
269
|
editor.chain().focus().deleteRange(range).setFooter().run();
|
|
256
270
|
}
|
|
@@ -259,7 +273,7 @@ var clearLine = {
|
|
|
259
273
|
title: "Clear Line",
|
|
260
274
|
description: "Clear the current line.",
|
|
261
275
|
searchTerms: ["clear", "line"],
|
|
262
|
-
icon: /* @__PURE__ */ (0,
|
|
276
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.EraserIcon, { className: "mly-h-4 mly-w-4" }),
|
|
263
277
|
command: ({ editor, range }) => {
|
|
264
278
|
editor.chain().focus().selectParentNode().deleteSelection().run();
|
|
265
279
|
}
|
|
@@ -277,6 +291,7 @@ var clearLine = {
|
|
|
277
291
|
heading1,
|
|
278
292
|
heading2,
|
|
279
293
|
heading3,
|
|
294
|
+
htmlCodeBlock,
|
|
280
295
|
image,
|
|
281
296
|
inlineImage,
|
|
282
297
|
linkCard,
|
|
@@ -287,4 +302,4 @@ var clearLine = {
|
|
|
287
302
|
spacer,
|
|
288
303
|
text
|
|
289
304
|
});
|
|
290
|
-
//# sourceMappingURL=index.
|
|
305
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/blocks.ts","../../src/blocks/button.tsx","../../src/blocks/code.tsx","../../src/blocks/image.tsx","../../src/blocks/layout.tsx","../../src/blocks/list.tsx","../../src/blocks/typography.tsx"],"sourcesContent":["export * from './blocks/button';\nexport * from './blocks/code';\nexport * from './blocks/image';\nexport * from './blocks/layout';\nexport * from './blocks/list';\nexport * from './blocks/types';\nexport * from './blocks/typography';\n","import type { BlockItem } from './types';\nimport { MousePointer, ArrowUpRightSquare } from 'lucide-react';\n\nexport const button: BlockItem = {\n title: 'Button',\n description: 'Add a call to action button to email.',\n searchTerms: ['link', 'button', 'cta'],\n icon: <MousePointer className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setButton().run();\n },\n};\n\nexport const linkCard: BlockItem = {\n title: 'Link Card',\n description: 'Add a link card to email.',\n searchTerms: ['link', 'button', 'image'],\n icon: <ArrowUpRightSquare className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setLinkCard().run();\n },\n render: (editor) => {\n return editor.extensionManager.extensions.findIndex(\n (ext) => ext.name === 'linkCard'\n ) === -1\n ? null\n : true;\n },\n};\n","import { CodeXmlIcon } from 'lucide-react';\nimport { BlockItem } from './types';\n\nexport const htmlCodeBlock: BlockItem = {\n title: 'Custom HTML',\n description: 'Insert a custom HTML block',\n searchTerms: ['html', 'code', 'custom'],\n icon: <CodeXmlIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor\n .chain()\n .focus()\n .deleteRange(range)\n // @ts-ignore\n .setHtmlCodeBlock({ language: 'html' })\n .run();\n },\n};\n","import { NodeSelection, Selection, TextSelection } from '@tiptap/pm/state';\nimport type { BlockItem } from './types';\nimport { ImageIcon } from 'lucide-react';\n\nexport const image: BlockItem = {\n title: 'Image',\n description: 'Full width image',\n searchTerms: ['image'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setImage({ src: '' }).run();\n },\n};\n\nexport const logo: BlockItem = {\n title: 'Logo',\n description: 'Add your brand logo',\n searchTerms: ['image', 'logo'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setLogoImage({ src: '' }).run();\n },\n};\n\nexport const inlineImage: BlockItem = {\n title: 'Inline Image',\n description: 'Inline image',\n searchTerms: ['image', 'inline'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor\n .chain()\n .focus()\n .deleteRange(range)\n // @ts-ignore\n .setInlineImage({\n src: 'https://maily.to/brand/logo.png',\n })\n // @ts-ignore\n .command((props) => {\n const { tr, state, view, editor } = props;\n const { from } = range;\n\n const node = state.doc.nodeAt(from);\n if (!node) {\n return false;\n }\n\n const selection = TextSelection.create(\n tr.doc,\n from,\n from + node.nodeSize\n );\n tr.setSelection(selection);\n return true;\n })\n .run();\n },\n};\n","import type { BlockItem } from './types';\nimport {\n ColumnsIcon,\n Repeat2,\n MoveVertical,\n RectangleHorizontal,\n Minus,\n} from 'lucide-react';\n\nexport const columns: BlockItem = {\n title: 'Columns',\n description: 'Add columns to email.',\n searchTerms: ['layout', 'columns'],\n icon: <ColumnsIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor\n .chain()\n .focus()\n .deleteRange(range)\n // @ts-ignore\n .setColumns()\n .focus(editor.state.selection.head - 2)\n .run();\n },\n};\n\nexport const section: BlockItem = {\n title: 'Section',\n description: 'Add a section to email.',\n searchTerms: ['layout', 'section'],\n icon: <RectangleHorizontal className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setSection().run();\n },\n};\n\nexport const repeat: BlockItem = {\n title: 'Repeat',\n description: 'Loop over an array of items.',\n searchTerms: ['repeat', 'for', 'loop'],\n icon: <Repeat2 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setRepeat().run();\n },\n};\n\nexport const spacer: BlockItem = {\n title: 'Spacer',\n description: 'Add space between blocks.',\n searchTerms: ['space', 'gap', 'divider'],\n icon: <MoveVertical className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setSpacer({ height: 'sm' }).run();\n },\n};\n\nexport const divider: BlockItem = {\n title: 'Divider',\n description: 'Add a horizontal divider.',\n searchTerms: ['divider', 'line'],\n icon: <Minus className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setHorizontalRule().run();\n },\n};\n","import type { BlockItem } from './types';\nimport { List, ListOrdered } from 'lucide-react';\n\nexport const bulletList: BlockItem = {\n title: 'Bullet List',\n description: 'Create a simple bullet list.',\n searchTerms: ['unordered', 'point'],\n icon: <List className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleBulletList().run();\n },\n};\n\nexport const orderedList: BlockItem = {\n title: 'Numbered List',\n description: 'Create a list with numbering.',\n searchTerms: ['ordered'],\n icon: <ListOrdered className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleOrderedList().run();\n },\n};\n","import type { BlockItem } from './types';\nimport {\n Text,\n Heading1,\n Heading2,\n Heading3,\n DivideIcon,\n TextQuote,\n FootprintsIcon,\n EraserIcon,\n} from 'lucide-react';\n\nexport const text: BlockItem = {\n title: 'Text',\n description: 'Just start typing with plain text.',\n searchTerms: ['p', 'paragraph'],\n icon: <Text className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .toggleNode('paragraph', 'paragraph')\n .run();\n },\n};\n\nexport const heading1: BlockItem = {\n title: 'Heading 1',\n description: 'Big heading.',\n searchTerms: ['h1', 'title', 'big', 'large'],\n icon: <Heading1 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 1 })\n .run();\n },\n};\n\nexport const heading2: BlockItem = {\n title: 'Heading 2',\n description: 'Medium heading.',\n searchTerms: ['h2', 'subtitle', 'medium'],\n icon: <Heading2 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 2 })\n .run();\n },\n};\n\nexport const heading3: BlockItem = {\n title: 'Heading 3',\n description: 'Small heading.',\n searchTerms: ['h3', 'subtitle', 'small'],\n icon: <Heading3 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 3 })\n .run();\n },\n};\n\nexport const hardBreak: BlockItem = {\n title: 'Hard Break',\n description: 'Add a break between lines.',\n searchTerms: ['break', 'line'],\n icon: <DivideIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setHardBreak().run();\n },\n};\n\nexport const blockquote: BlockItem = {\n title: 'Blockquote',\n description: 'Add blockquote.',\n searchTerms: ['quote', 'blockquote'],\n icon: <TextQuote className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleBlockquote().run();\n },\n};\n\nexport const footer: BlockItem = {\n title: 'Footer',\n description: 'Add a footer text to email.',\n searchTerms: ['footer', 'text'],\n icon: <FootprintsIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setFooter().run();\n },\n};\n\nexport const clearLine: BlockItem = {\n title: 'Clear Line',\n description: 'Clear the current line.',\n searchTerms: ['clear', 'line'],\n icon: <EraserIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().selectParentNode().deleteSelection().run();\n },\n};\n"],"mappings":"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","names":["import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","editor","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime"]}
|
|
@@ -32,6 +32,8 @@ type BlockGroupItem = {
|
|
|
32
32
|
declare const button: BlockItem;
|
|
33
33
|
declare const linkCard: BlockItem;
|
|
34
34
|
|
|
35
|
+
declare const htmlCodeBlock: BlockItem;
|
|
36
|
+
|
|
35
37
|
declare const image: BlockItem;
|
|
36
38
|
declare const logo: BlockItem;
|
|
37
39
|
declare const inlineImage: BlockItem;
|
|
@@ -54,4 +56,4 @@ declare const blockquote: BlockItem;
|
|
|
54
56
|
declare const footer: BlockItem;
|
|
55
57
|
declare const clearLine: BlockItem;
|
|
56
58
|
|
|
57
|
-
export { type BlockGroupItem, type BlockItem, blockquote, bulletList, button, clearLine, columns, divider, footer, hardBreak, heading1, heading2, heading3, image, inlineImage, linkCard, logo, orderedList, repeat, section, spacer, text };
|
|
59
|
+
export { type BlockGroupItem, type BlockItem, type CommandProps, blockquote, bulletList, button, clearLine, columns, divider, footer, hardBreak, heading1, heading2, heading3, htmlCodeBlock, image, inlineImage, linkCard, logo, orderedList, repeat, section, spacer, text };
|
package/dist/blocks/index.d.ts
CHANGED
|
@@ -32,6 +32,8 @@ type BlockGroupItem = {
|
|
|
32
32
|
declare const button: BlockItem;
|
|
33
33
|
declare const linkCard: BlockItem;
|
|
34
34
|
|
|
35
|
+
declare const htmlCodeBlock: BlockItem;
|
|
36
|
+
|
|
35
37
|
declare const image: BlockItem;
|
|
36
38
|
declare const logo: BlockItem;
|
|
37
39
|
declare const inlineImage: BlockItem;
|
|
@@ -54,4 +56,4 @@ declare const blockquote: BlockItem;
|
|
|
54
56
|
declare const footer: BlockItem;
|
|
55
57
|
declare const clearLine: BlockItem;
|
|
56
58
|
|
|
57
|
-
export { type BlockGroupItem, type BlockItem, blockquote, bulletList, button, clearLine, columns, divider, footer, hardBreak, heading1, heading2, heading3, image, inlineImage, linkCard, logo, orderedList, repeat, section, spacer, text };
|
|
59
|
+
export { type BlockGroupItem, type BlockItem, type CommandProps, blockquote, bulletList, button, clearLine, columns, divider, footer, hardBreak, heading1, heading2, heading3, htmlCodeBlock, image, inlineImage, linkCard, logo, orderedList, repeat, section, spacer, text };
|
package/dist/blocks/index.mjs
CHANGED
|
@@ -25,15 +25,28 @@ var linkCard = {
|
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
+
// src/blocks/code.tsx
|
|
29
|
+
import { CodeXmlIcon } from "lucide-react";
|
|
30
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
31
|
+
var htmlCodeBlock = {
|
|
32
|
+
title: "Custom HTML",
|
|
33
|
+
description: "Insert a custom HTML block",
|
|
34
|
+
searchTerms: ["html", "code", "custom"],
|
|
35
|
+
icon: /* @__PURE__ */ jsx2(CodeXmlIcon, { className: "mly-h-4 mly-w-4" }),
|
|
36
|
+
command: ({ editor, range }) => {
|
|
37
|
+
editor.chain().focus().deleteRange(range).setHtmlCodeBlock({ language: "html" }).run();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
28
41
|
// src/blocks/image.tsx
|
|
29
42
|
import { TextSelection } from "@tiptap/pm/state";
|
|
30
43
|
import { ImageIcon } from "lucide-react";
|
|
31
|
-
import { jsx as
|
|
44
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
32
45
|
var image = {
|
|
33
46
|
title: "Image",
|
|
34
47
|
description: "Full width image",
|
|
35
48
|
searchTerms: ["image"],
|
|
36
|
-
icon: /* @__PURE__ */
|
|
49
|
+
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly-h-4 mly-w-4" }),
|
|
37
50
|
command: ({ editor, range }) => {
|
|
38
51
|
editor.chain().focus().deleteRange(range).setImage({ src: "" }).run();
|
|
39
52
|
}
|
|
@@ -42,7 +55,7 @@ var logo = {
|
|
|
42
55
|
title: "Logo",
|
|
43
56
|
description: "Add your brand logo",
|
|
44
57
|
searchTerms: ["image", "logo"],
|
|
45
|
-
icon: /* @__PURE__ */
|
|
58
|
+
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly-h-4 mly-w-4" }),
|
|
46
59
|
command: ({ editor, range }) => {
|
|
47
60
|
editor.chain().focus().deleteRange(range).setLogoImage({ src: "" }).run();
|
|
48
61
|
}
|
|
@@ -51,10 +64,10 @@ var inlineImage = {
|
|
|
51
64
|
title: "Inline Image",
|
|
52
65
|
description: "Inline image",
|
|
53
66
|
searchTerms: ["image", "inline"],
|
|
54
|
-
icon: /* @__PURE__ */
|
|
67
|
+
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly-h-4 mly-w-4" }),
|
|
55
68
|
command: ({ editor, range }) => {
|
|
56
69
|
editor.chain().focus().deleteRange(range).setInlineImage({
|
|
57
|
-
src: ""
|
|
70
|
+
src: "https://maily.to/brand/logo.png"
|
|
58
71
|
}).command((props) => {
|
|
59
72
|
const { tr, state, view, editor: editor2 } = props;
|
|
60
73
|
const { from } = range;
|
|
@@ -81,12 +94,12 @@ import {
|
|
|
81
94
|
RectangleHorizontal,
|
|
82
95
|
Minus
|
|
83
96
|
} from "lucide-react";
|
|
84
|
-
import { jsx as
|
|
97
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
85
98
|
var columns = {
|
|
86
99
|
title: "Columns",
|
|
87
100
|
description: "Add columns to email.",
|
|
88
101
|
searchTerms: ["layout", "columns"],
|
|
89
|
-
icon: /* @__PURE__ */
|
|
102
|
+
icon: /* @__PURE__ */ jsx4(ColumnsIcon, { className: "mly-h-4 mly-w-4" }),
|
|
90
103
|
command: ({ editor, range }) => {
|
|
91
104
|
editor.chain().focus().deleteRange(range).setColumns().focus(editor.state.selection.head - 2).run();
|
|
92
105
|
}
|
|
@@ -95,7 +108,7 @@ var section = {
|
|
|
95
108
|
title: "Section",
|
|
96
109
|
description: "Add a section to email.",
|
|
97
110
|
searchTerms: ["layout", "section"],
|
|
98
|
-
icon: /* @__PURE__ */
|
|
111
|
+
icon: /* @__PURE__ */ jsx4(RectangleHorizontal, { className: "mly-h-4 mly-w-4" }),
|
|
99
112
|
command: ({ editor, range }) => {
|
|
100
113
|
editor.chain().focus().deleteRange(range).setSection().run();
|
|
101
114
|
}
|
|
@@ -104,7 +117,7 @@ var repeat = {
|
|
|
104
117
|
title: "Repeat",
|
|
105
118
|
description: "Loop over an array of items.",
|
|
106
119
|
searchTerms: ["repeat", "for", "loop"],
|
|
107
|
-
icon: /* @__PURE__ */
|
|
120
|
+
icon: /* @__PURE__ */ jsx4(Repeat2, { className: "mly-h-4 mly-w-4" }),
|
|
108
121
|
command: ({ editor, range }) => {
|
|
109
122
|
editor.chain().focus().deleteRange(range).setRepeat().run();
|
|
110
123
|
}
|
|
@@ -113,7 +126,7 @@ var spacer = {
|
|
|
113
126
|
title: "Spacer",
|
|
114
127
|
description: "Add space between blocks.",
|
|
115
128
|
searchTerms: ["space", "gap", "divider"],
|
|
116
|
-
icon: /* @__PURE__ */
|
|
129
|
+
icon: /* @__PURE__ */ jsx4(MoveVertical, { className: "mly-h-4 mly-w-4" }),
|
|
117
130
|
command: ({ editor, range }) => {
|
|
118
131
|
editor.chain().focus().deleteRange(range).setSpacer({ height: "sm" }).run();
|
|
119
132
|
}
|
|
@@ -122,7 +135,7 @@ var divider = {
|
|
|
122
135
|
title: "Divider",
|
|
123
136
|
description: "Add a horizontal divider.",
|
|
124
137
|
searchTerms: ["divider", "line"],
|
|
125
|
-
icon: /* @__PURE__ */
|
|
138
|
+
icon: /* @__PURE__ */ jsx4(Minus, { className: "mly-h-4 mly-w-4" }),
|
|
126
139
|
command: ({ editor, range }) => {
|
|
127
140
|
editor.chain().focus().deleteRange(range).setHorizontalRule().run();
|
|
128
141
|
}
|
|
@@ -130,12 +143,12 @@ var divider = {
|
|
|
130
143
|
|
|
131
144
|
// src/blocks/list.tsx
|
|
132
145
|
import { List, ListOrdered } from "lucide-react";
|
|
133
|
-
import { jsx as
|
|
146
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
134
147
|
var bulletList = {
|
|
135
148
|
title: "Bullet List",
|
|
136
149
|
description: "Create a simple bullet list.",
|
|
137
150
|
searchTerms: ["unordered", "point"],
|
|
138
|
-
icon: /* @__PURE__ */
|
|
151
|
+
icon: /* @__PURE__ */ jsx5(List, { className: "mly-h-4 mly-w-4" }),
|
|
139
152
|
command: ({ editor, range }) => {
|
|
140
153
|
editor.chain().focus().deleteRange(range).toggleBulletList().run();
|
|
141
154
|
}
|
|
@@ -144,7 +157,7 @@ var orderedList = {
|
|
|
144
157
|
title: "Numbered List",
|
|
145
158
|
description: "Create a list with numbering.",
|
|
146
159
|
searchTerms: ["ordered"],
|
|
147
|
-
icon: /* @__PURE__ */
|
|
160
|
+
icon: /* @__PURE__ */ jsx5(ListOrdered, { className: "mly-h-4 mly-w-4" }),
|
|
148
161
|
command: ({ editor, range }) => {
|
|
149
162
|
editor.chain().focus().deleteRange(range).toggleOrderedList().run();
|
|
150
163
|
}
|
|
@@ -161,12 +174,12 @@ import {
|
|
|
161
174
|
FootprintsIcon,
|
|
162
175
|
EraserIcon
|
|
163
176
|
} from "lucide-react";
|
|
164
|
-
import { jsx as
|
|
177
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
165
178
|
var text = {
|
|
166
179
|
title: "Text",
|
|
167
180
|
description: "Just start typing with plain text.",
|
|
168
181
|
searchTerms: ["p", "paragraph"],
|
|
169
|
-
icon: /* @__PURE__ */
|
|
182
|
+
icon: /* @__PURE__ */ jsx6(Text, { className: "mly-h-4 mly-w-4" }),
|
|
170
183
|
command: ({ editor, range }) => {
|
|
171
184
|
editor.chain().focus().deleteRange(range).toggleNode("paragraph", "paragraph").run();
|
|
172
185
|
}
|
|
@@ -174,8 +187,8 @@ var text = {
|
|
|
174
187
|
var heading1 = {
|
|
175
188
|
title: "Heading 1",
|
|
176
189
|
description: "Big heading.",
|
|
177
|
-
searchTerms: ["title", "big", "large"],
|
|
178
|
-
icon: /* @__PURE__ */
|
|
190
|
+
searchTerms: ["h1", "title", "big", "large"],
|
|
191
|
+
icon: /* @__PURE__ */ jsx6(Heading1, { className: "mly-h-4 mly-w-4" }),
|
|
179
192
|
command: ({ editor, range }) => {
|
|
180
193
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 1 }).run();
|
|
181
194
|
}
|
|
@@ -183,8 +196,8 @@ var heading1 = {
|
|
|
183
196
|
var heading2 = {
|
|
184
197
|
title: "Heading 2",
|
|
185
198
|
description: "Medium heading.",
|
|
186
|
-
searchTerms: ["subtitle", "medium"],
|
|
187
|
-
icon: /* @__PURE__ */
|
|
199
|
+
searchTerms: ["h2", "subtitle", "medium"],
|
|
200
|
+
icon: /* @__PURE__ */ jsx6(Heading2, { className: "mly-h-4 mly-w-4" }),
|
|
188
201
|
command: ({ editor, range }) => {
|
|
189
202
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 2 }).run();
|
|
190
203
|
}
|
|
@@ -192,8 +205,8 @@ var heading2 = {
|
|
|
192
205
|
var heading3 = {
|
|
193
206
|
title: "Heading 3",
|
|
194
207
|
description: "Small heading.",
|
|
195
|
-
searchTerms: ["subtitle", "small"],
|
|
196
|
-
icon: /* @__PURE__ */
|
|
208
|
+
searchTerms: ["h3", "subtitle", "small"],
|
|
209
|
+
icon: /* @__PURE__ */ jsx6(Heading3, { className: "mly-h-4 mly-w-4" }),
|
|
197
210
|
command: ({ editor, range }) => {
|
|
198
211
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 3 }).run();
|
|
199
212
|
}
|
|
@@ -202,7 +215,7 @@ var hardBreak = {
|
|
|
202
215
|
title: "Hard Break",
|
|
203
216
|
description: "Add a break between lines.",
|
|
204
217
|
searchTerms: ["break", "line"],
|
|
205
|
-
icon: /* @__PURE__ */
|
|
218
|
+
icon: /* @__PURE__ */ jsx6(DivideIcon, { className: "mly-h-4 mly-w-4" }),
|
|
206
219
|
command: ({ editor, range }) => {
|
|
207
220
|
editor.chain().focus().deleteRange(range).setHardBreak().run();
|
|
208
221
|
}
|
|
@@ -211,7 +224,7 @@ var blockquote = {
|
|
|
211
224
|
title: "Blockquote",
|
|
212
225
|
description: "Add blockquote.",
|
|
213
226
|
searchTerms: ["quote", "blockquote"],
|
|
214
|
-
icon: /* @__PURE__ */
|
|
227
|
+
icon: /* @__PURE__ */ jsx6(TextQuote, { className: "mly-h-4 mly-w-4" }),
|
|
215
228
|
command: ({ editor, range }) => {
|
|
216
229
|
editor.chain().focus().deleteRange(range).toggleBlockquote().run();
|
|
217
230
|
}
|
|
@@ -220,7 +233,7 @@ var footer = {
|
|
|
220
233
|
title: "Footer",
|
|
221
234
|
description: "Add a footer text to email.",
|
|
222
235
|
searchTerms: ["footer", "text"],
|
|
223
|
-
icon: /* @__PURE__ */
|
|
236
|
+
icon: /* @__PURE__ */ jsx6(FootprintsIcon, { className: "mly-h-4 mly-w-4" }),
|
|
224
237
|
command: ({ editor, range }) => {
|
|
225
238
|
editor.chain().focus().deleteRange(range).setFooter().run();
|
|
226
239
|
}
|
|
@@ -229,7 +242,7 @@ var clearLine = {
|
|
|
229
242
|
title: "Clear Line",
|
|
230
243
|
description: "Clear the current line.",
|
|
231
244
|
searchTerms: ["clear", "line"],
|
|
232
|
-
icon: /* @__PURE__ */
|
|
245
|
+
icon: /* @__PURE__ */ jsx6(EraserIcon, { className: "mly-h-4 mly-w-4" }),
|
|
233
246
|
command: ({ editor, range }) => {
|
|
234
247
|
editor.chain().focus().selectParentNode().deleteSelection().run();
|
|
235
248
|
}
|
|
@@ -246,6 +259,7 @@ export {
|
|
|
246
259
|
heading1,
|
|
247
260
|
heading2,
|
|
248
261
|
heading3,
|
|
262
|
+
htmlCodeBlock,
|
|
249
263
|
image,
|
|
250
264
|
inlineImage,
|
|
251
265
|
linkCard,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/blocks/button.tsx","../../src/blocks/image.tsx","../../src/blocks/layout.tsx","../../src/blocks/list.tsx","../../src/blocks/typography.tsx"],"sourcesContent":["import type { BlockItem } from './types';\nimport { MousePointer, ArrowUpRightSquare } from 'lucide-react';\n\nexport const button: BlockItem = {\n title: 'Button',\n description: 'Add a call to action button to email.',\n searchTerms: ['link', 'button', 'cta'],\n icon: <MousePointer className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setButton().run();\n },\n};\n\nexport const linkCard: BlockItem = {\n title: 'Link Card',\n description: 'Add a link card to email.',\n searchTerms: ['link', 'button', 'image'],\n icon: <ArrowUpRightSquare className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setLinkCard().run();\n },\n render: (editor) => {\n return editor.extensionManager.extensions.findIndex(\n (ext) => ext.name === 'linkCard'\n ) === -1\n ? null\n : true;\n },\n};\n","import { NodeSelection, Selection, TextSelection } from '@tiptap/pm/state';\nimport type { BlockItem } from './types';\nimport { ImageIcon } from 'lucide-react';\n\nexport const image: BlockItem = {\n title: 'Image',\n description: 'Full width image',\n searchTerms: ['image'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setImage({ src: '' }).run();\n },\n};\n\nexport const logo: BlockItem = {\n title: 'Logo',\n description: 'Add your brand logo',\n searchTerms: ['image', 'logo'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setLogoImage({ src: '' }).run();\n },\n};\n\nexport const inlineImage: BlockItem = {\n title: 'Inline Image',\n description: 'Inline image',\n searchTerms: ['image', 'inline'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor\n .chain()\n .focus()\n .deleteRange(range)\n // @ts-ignore\n .setInlineImage({\n src: '',\n })\n // @ts-ignore\n .command((props) => {\n const { tr, state, view, editor } = props;\n const { from } = range;\n\n const node = state.doc.nodeAt(from);\n if (!node) {\n return false;\n }\n\n const selection = TextSelection.create(\n tr.doc,\n from,\n from + node.nodeSize\n );\n tr.setSelection(selection);\n return true;\n })\n .run();\n },\n};\n","import type { BlockItem } from './types';\nimport {\n ColumnsIcon,\n Repeat2,\n MoveVertical,\n RectangleHorizontal,\n Minus,\n} from 'lucide-react';\n\nexport const columns: BlockItem = {\n title: 'Columns',\n description: 'Add columns to email.',\n searchTerms: ['layout', 'columns'],\n icon: <ColumnsIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor\n .chain()\n .focus()\n .deleteRange(range)\n // @ts-ignore\n .setColumns()\n .focus(editor.state.selection.head - 2)\n .run();\n },\n};\n\nexport const section: BlockItem = {\n title: 'Section',\n description: 'Add a section to email.',\n searchTerms: ['layout', 'section'],\n icon: <RectangleHorizontal className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setSection().run();\n },\n};\n\nexport const repeat: BlockItem = {\n title: 'Repeat',\n description: 'Loop over an array of items.',\n searchTerms: ['repeat', 'for', 'loop'],\n icon: <Repeat2 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setRepeat().run();\n },\n};\n\nexport const spacer: BlockItem = {\n title: 'Spacer',\n description: 'Add space between blocks.',\n searchTerms: ['space', 'gap', 'divider'],\n icon: <MoveVertical className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setSpacer({ height: 'sm' }).run();\n },\n};\n\nexport const divider: BlockItem = {\n title: 'Divider',\n description: 'Add a horizontal divider.',\n searchTerms: ['divider', 'line'],\n icon: <Minus className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setHorizontalRule().run();\n },\n};\n","import type { BlockItem } from './types';\nimport { List, ListOrdered } from 'lucide-react';\n\nexport const bulletList: BlockItem = {\n title: 'Bullet List',\n description: 'Create a simple bullet list.',\n searchTerms: ['unordered', 'point'],\n icon: <List className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleBulletList().run();\n },\n};\n\nexport const orderedList: BlockItem = {\n title: 'Numbered List',\n description: 'Create a list with numbering.',\n searchTerms: ['ordered'],\n icon: <ListOrdered className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleOrderedList().run();\n },\n};\n","import type { BlockItem } from './types';\nimport {\n Text,\n Heading1,\n Heading2,\n Heading3,\n DivideIcon,\n TextQuote,\n FootprintsIcon,\n EraserIcon,\n} from 'lucide-react';\n\nexport const text: BlockItem = {\n title: 'Text',\n description: 'Just start typing with plain text.',\n searchTerms: ['p', 'paragraph'],\n icon: <Text className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .toggleNode('paragraph', 'paragraph')\n .run();\n },\n};\n\nexport const heading1: BlockItem = {\n title: 'Heading 1',\n description: 'Big heading.',\n searchTerms: ['title', 'big', 'large'],\n icon: <Heading1 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 1 })\n .run();\n },\n};\n\nexport const heading2: BlockItem = {\n title: 'Heading 2',\n description: 'Medium heading.',\n searchTerms: ['subtitle', 'medium'],\n icon: <Heading2 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 2 })\n .run();\n },\n};\n\nexport const heading3: BlockItem = {\n title: 'Heading 3',\n description: 'Small heading.',\n searchTerms: ['subtitle', 'small'],\n icon: <Heading3 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 3 })\n .run();\n },\n};\n\nexport const hardBreak: BlockItem = {\n title: 'Hard Break',\n description: 'Add a break between lines.',\n searchTerms: ['break', 'line'],\n icon: <DivideIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setHardBreak().run();\n },\n};\n\nexport const blockquote: BlockItem = {\n title: 'Blockquote',\n description: 'Add blockquote.',\n searchTerms: ['quote', 'blockquote'],\n icon: <TextQuote className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleBlockquote().run();\n },\n};\n\nexport const footer: BlockItem = {\n title: 'Footer',\n description: 'Add a footer text to email.',\n searchTerms: ['footer', 'text'],\n icon: <FootprintsIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setFooter().run();\n },\n};\n\nexport const clearLine: BlockItem = {\n title: 'Clear Line',\n description: 'Clear the current line.',\n searchTerms: ['clear', 'line'],\n icon: <EraserIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().selectParentNode().deleteSelection().run();\n },\n};\n"],"mappings":"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","names":["jsx","editor","jsx","jsx","jsx"]}
|
|
1
|
+
{"version":3,"sources":["../../src/blocks/button.tsx","../../src/blocks/code.tsx","../../src/blocks/image.tsx","../../src/blocks/layout.tsx","../../src/blocks/list.tsx","../../src/blocks/typography.tsx"],"sourcesContent":["import type { BlockItem } from './types';\nimport { MousePointer, ArrowUpRightSquare } from 'lucide-react';\n\nexport const button: BlockItem = {\n title: 'Button',\n description: 'Add a call to action button to email.',\n searchTerms: ['link', 'button', 'cta'],\n icon: <MousePointer className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setButton().run();\n },\n};\n\nexport const linkCard: BlockItem = {\n title: 'Link Card',\n description: 'Add a link card to email.',\n searchTerms: ['link', 'button', 'image'],\n icon: <ArrowUpRightSquare className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setLinkCard().run();\n },\n render: (editor) => {\n return editor.extensionManager.extensions.findIndex(\n (ext) => ext.name === 'linkCard'\n ) === -1\n ? null\n : true;\n },\n};\n","import { CodeXmlIcon } from 'lucide-react';\nimport { BlockItem } from './types';\n\nexport const htmlCodeBlock: BlockItem = {\n title: 'Custom HTML',\n description: 'Insert a custom HTML block',\n searchTerms: ['html', 'code', 'custom'],\n icon: <CodeXmlIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor\n .chain()\n .focus()\n .deleteRange(range)\n // @ts-ignore\n .setHtmlCodeBlock({ language: 'html' })\n .run();\n },\n};\n","import { NodeSelection, Selection, TextSelection } from '@tiptap/pm/state';\nimport type { BlockItem } from './types';\nimport { ImageIcon } from 'lucide-react';\n\nexport const image: BlockItem = {\n title: 'Image',\n description: 'Full width image',\n searchTerms: ['image'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setImage({ src: '' }).run();\n },\n};\n\nexport const logo: BlockItem = {\n title: 'Logo',\n description: 'Add your brand logo',\n searchTerms: ['image', 'logo'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setLogoImage({ src: '' }).run();\n },\n};\n\nexport const inlineImage: BlockItem = {\n title: 'Inline Image',\n description: 'Inline image',\n searchTerms: ['image', 'inline'],\n icon: <ImageIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor\n .chain()\n .focus()\n .deleteRange(range)\n // @ts-ignore\n .setInlineImage({\n src: 'https://maily.to/brand/logo.png',\n })\n // @ts-ignore\n .command((props) => {\n const { tr, state, view, editor } = props;\n const { from } = range;\n\n const node = state.doc.nodeAt(from);\n if (!node) {\n return false;\n }\n\n const selection = TextSelection.create(\n tr.doc,\n from,\n from + node.nodeSize\n );\n tr.setSelection(selection);\n return true;\n })\n .run();\n },\n};\n","import type { BlockItem } from './types';\nimport {\n ColumnsIcon,\n Repeat2,\n MoveVertical,\n RectangleHorizontal,\n Minus,\n} from 'lucide-react';\n\nexport const columns: BlockItem = {\n title: 'Columns',\n description: 'Add columns to email.',\n searchTerms: ['layout', 'columns'],\n icon: <ColumnsIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor\n .chain()\n .focus()\n .deleteRange(range)\n // @ts-ignore\n .setColumns()\n .focus(editor.state.selection.head - 2)\n .run();\n },\n};\n\nexport const section: BlockItem = {\n title: 'Section',\n description: 'Add a section to email.',\n searchTerms: ['layout', 'section'],\n icon: <RectangleHorizontal className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setSection().run();\n },\n};\n\nexport const repeat: BlockItem = {\n title: 'Repeat',\n description: 'Loop over an array of items.',\n searchTerms: ['repeat', 'for', 'loop'],\n icon: <Repeat2 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setRepeat().run();\n },\n};\n\nexport const spacer: BlockItem = {\n title: 'Spacer',\n description: 'Add space between blocks.',\n searchTerms: ['space', 'gap', 'divider'],\n icon: <MoveVertical className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setSpacer({ height: 'sm' }).run();\n },\n};\n\nexport const divider: BlockItem = {\n title: 'Divider',\n description: 'Add a horizontal divider.',\n searchTerms: ['divider', 'line'],\n icon: <Minus className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setHorizontalRule().run();\n },\n};\n","import type { BlockItem } from './types';\nimport { List, ListOrdered } from 'lucide-react';\n\nexport const bulletList: BlockItem = {\n title: 'Bullet List',\n description: 'Create a simple bullet list.',\n searchTerms: ['unordered', 'point'],\n icon: <List className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleBulletList().run();\n },\n};\n\nexport const orderedList: BlockItem = {\n title: 'Numbered List',\n description: 'Create a list with numbering.',\n searchTerms: ['ordered'],\n icon: <ListOrdered className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleOrderedList().run();\n },\n};\n","import type { BlockItem } from './types';\nimport {\n Text,\n Heading1,\n Heading2,\n Heading3,\n DivideIcon,\n TextQuote,\n FootprintsIcon,\n EraserIcon,\n} from 'lucide-react';\n\nexport const text: BlockItem = {\n title: 'Text',\n description: 'Just start typing with plain text.',\n searchTerms: ['p', 'paragraph'],\n icon: <Text className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .toggleNode('paragraph', 'paragraph')\n .run();\n },\n};\n\nexport const heading1: BlockItem = {\n title: 'Heading 1',\n description: 'Big heading.',\n searchTerms: ['h1', 'title', 'big', 'large'],\n icon: <Heading1 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 1 })\n .run();\n },\n};\n\nexport const heading2: BlockItem = {\n title: 'Heading 2',\n description: 'Medium heading.',\n searchTerms: ['h2', 'subtitle', 'medium'],\n icon: <Heading2 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 2 })\n .run();\n },\n};\n\nexport const heading3: BlockItem = {\n title: 'Heading 3',\n description: 'Small heading.',\n searchTerms: ['h3', 'subtitle', 'small'],\n icon: <Heading3 className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode('heading', { level: 3 })\n .run();\n },\n};\n\nexport const hardBreak: BlockItem = {\n title: 'Hard Break',\n description: 'Add a break between lines.',\n searchTerms: ['break', 'line'],\n icon: <DivideIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setHardBreak().run();\n },\n};\n\nexport const blockquote: BlockItem = {\n title: 'Blockquote',\n description: 'Add blockquote.',\n searchTerms: ['quote', 'blockquote'],\n icon: <TextQuote className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).toggleBlockquote().run();\n },\n};\n\nexport const footer: BlockItem = {\n title: 'Footer',\n description: 'Add a footer text to email.',\n searchTerms: ['footer', 'text'],\n icon: <FootprintsIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().deleteRange(range).setFooter().run();\n },\n};\n\nexport const clearLine: BlockItem = {\n title: 'Clear Line',\n description: 'Clear the current line.',\n searchTerms: ['clear', 'line'],\n icon: <EraserIcon className=\"mly-h-4 mly-w-4\" />,\n command: ({ editor, range }) => {\n // @ts-ignore\n editor.chain().focus().selectParentNode().deleteSelection().run();\n },\n};\n"],"mappings":"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","names":["jsx","jsx","editor","jsx","jsx","jsx"]}
|