@daisychainapp/maily-to-core 0.2.12 → 0.3.5
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.cjs +21 -21
- package/dist/blocks/index.cjs.map +1 -1
- package/dist/blocks/index.mjs +21 -21
- package/dist/blocks/index.mjs.map +1 -1
- package/dist/extensions/index.cjs +3331 -372
- package/dist/extensions/index.cjs.map +1 -1
- package/dist/extensions/index.d.cts +18 -6
- package/dist/extensions/index.d.ts +18 -6
- package/dist/extensions/index.mjs +3336 -377
- package/dist/extensions/index.mjs.map +1 -1
- package/dist/index.cjs +3554 -552
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +2422 -2293
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +3544 -542
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -4
- package/readme.md +12 -5
package/dist/blocks/index.cjs
CHANGED
|
@@ -51,7 +51,7 @@ var button = {
|
|
|
51
51
|
title: "Button",
|
|
52
52
|
description: "Add a call to action button to email.",
|
|
53
53
|
searchTerms: ["link", "button", "cta"],
|
|
54
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.MousePointer, { className: "mly
|
|
54
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.MousePointer, { className: "mly:h-4 mly:w-4" }),
|
|
55
55
|
command: ({ editor, range }) => {
|
|
56
56
|
editor.chain().focus().deleteRange(range).setButton().run();
|
|
57
57
|
}
|
|
@@ -60,7 +60,7 @@ var linkCard = {
|
|
|
60
60
|
title: "Link Card",
|
|
61
61
|
description: "Add a link card to email.",
|
|
62
62
|
searchTerms: ["link", "button", "image"],
|
|
63
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowUpRightSquare, { className: "mly
|
|
63
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowUpRightSquare, { className: "mly:h-4 mly:w-4" }),
|
|
64
64
|
command: ({ editor, range }) => {
|
|
65
65
|
editor.chain().focus().deleteRange(range).setLinkCard().run();
|
|
66
66
|
},
|
|
@@ -78,7 +78,7 @@ var htmlCodeBlock = {
|
|
|
78
78
|
title: "Custom HTML",
|
|
79
79
|
description: "Insert a custom HTML block",
|
|
80
80
|
searchTerms: ["html", "code", "custom"],
|
|
81
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.CodeXmlIcon, { className: "mly
|
|
81
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.CodeXmlIcon, { className: "mly:h-4 mly:w-4" }),
|
|
82
82
|
command: ({ editor, range }) => {
|
|
83
83
|
editor.chain().focus().deleteRange(range).setHtmlCodeBlock({ language: "html" }).run();
|
|
84
84
|
}
|
|
@@ -92,7 +92,7 @@ var image = {
|
|
|
92
92
|
title: "Image",
|
|
93
93
|
description: "Full width image",
|
|
94
94
|
searchTerms: ["image"],
|
|
95
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly
|
|
95
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly:h-4 mly:w-4" }),
|
|
96
96
|
command: ({ editor, range }) => {
|
|
97
97
|
editor.chain().focus().deleteRange(range).setImage({ src: "" }).run();
|
|
98
98
|
}
|
|
@@ -101,7 +101,7 @@ var logo = {
|
|
|
101
101
|
title: "Logo",
|
|
102
102
|
description: "Add your brand logo",
|
|
103
103
|
searchTerms: ["image", "logo"],
|
|
104
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly
|
|
104
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly:h-4 mly:w-4" }),
|
|
105
105
|
command: ({ editor, range }) => {
|
|
106
106
|
editor.chain().focus().deleteRange(range).setLogoImage({ src: "" }).run();
|
|
107
107
|
}
|
|
@@ -110,7 +110,7 @@ var inlineImage = {
|
|
|
110
110
|
title: "Inline Image",
|
|
111
111
|
description: "Inline image",
|
|
112
112
|
searchTerms: ["image", "inline"],
|
|
113
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly
|
|
113
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react3.ImageIcon, { className: "mly:h-4 mly:w-4" }),
|
|
114
114
|
command: ({ editor, range }) => {
|
|
115
115
|
editor.chain().focus().deleteRange(range).setInlineImage({
|
|
116
116
|
src: "https://maily.to/brand/logo.png"
|
|
@@ -139,7 +139,7 @@ var columns = {
|
|
|
139
139
|
title: "Columns",
|
|
140
140
|
description: "Add columns to email.",
|
|
141
141
|
searchTerms: ["layout", "columns"],
|
|
142
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.ColumnsIcon, { className: "mly
|
|
142
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.ColumnsIcon, { className: "mly:h-4 mly:w-4" }),
|
|
143
143
|
command: ({ editor, range }) => {
|
|
144
144
|
editor.chain().focus().deleteRange(range).setColumns().focus(editor.state.selection.head - 2).run();
|
|
145
145
|
}
|
|
@@ -148,7 +148,7 @@ var section = {
|
|
|
148
148
|
title: "Section",
|
|
149
149
|
description: "Add a section to email.",
|
|
150
150
|
searchTerms: ["layout", "section"],
|
|
151
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.RectangleHorizontal, { className: "mly
|
|
151
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.RectangleHorizontal, { className: "mly:h-4 mly:w-4" }),
|
|
152
152
|
command: ({ editor, range }) => {
|
|
153
153
|
editor.chain().focus().deleteRange(range).setSection().run();
|
|
154
154
|
}
|
|
@@ -157,7 +157,7 @@ var repeat = {
|
|
|
157
157
|
title: "Repeat",
|
|
158
158
|
description: "Loop over an array of items.",
|
|
159
159
|
searchTerms: ["repeat", "for", "loop"],
|
|
160
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.Repeat2, { className: "mly
|
|
160
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.Repeat2, { className: "mly:h-4 mly:w-4" }),
|
|
161
161
|
command: ({ editor, range }) => {
|
|
162
162
|
editor.chain().focus().deleteRange(range).setRepeat().run();
|
|
163
163
|
}
|
|
@@ -166,7 +166,7 @@ var spacer = {
|
|
|
166
166
|
title: "Spacer",
|
|
167
167
|
description: "Add space between blocks.",
|
|
168
168
|
searchTerms: ["space", "gap", "divider"],
|
|
169
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.MoveVertical, { className: "mly
|
|
169
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.MoveVertical, { className: "mly:h-4 mly:w-4" }),
|
|
170
170
|
command: ({ editor, range }) => {
|
|
171
171
|
editor.chain().focus().deleteRange(range).setSpacer({ height: "sm" }).run();
|
|
172
172
|
}
|
|
@@ -175,7 +175,7 @@ var divider = {
|
|
|
175
175
|
title: "Divider",
|
|
176
176
|
description: "Add a horizontal divider.",
|
|
177
177
|
searchTerms: ["divider", "line"],
|
|
178
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.Minus, { className: "mly
|
|
178
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react4.Minus, { className: "mly:h-4 mly:w-4" }),
|
|
179
179
|
command: ({ editor, range }) => {
|
|
180
180
|
editor.chain().focus().deleteRange(range).setHorizontalRule().run();
|
|
181
181
|
}
|
|
@@ -188,7 +188,7 @@ var bulletList = {
|
|
|
188
188
|
title: "Bullet List",
|
|
189
189
|
description: "Create a simple bullet list.",
|
|
190
190
|
searchTerms: ["unordered", "point"],
|
|
191
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react5.List, { className: "mly
|
|
191
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react5.List, { className: "mly:h-4 mly:w-4" }),
|
|
192
192
|
command: ({ editor, range }) => {
|
|
193
193
|
editor.chain().focus().deleteRange(range).toggleBulletList().run();
|
|
194
194
|
}
|
|
@@ -197,7 +197,7 @@ var orderedList = {
|
|
|
197
197
|
title: "Numbered List",
|
|
198
198
|
description: "Create a list with numbering.",
|
|
199
199
|
searchTerms: ["ordered"],
|
|
200
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react5.ListOrdered, { className: "mly
|
|
200
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react5.ListOrdered, { className: "mly:h-4 mly:w-4" }),
|
|
201
201
|
command: ({ editor, range }) => {
|
|
202
202
|
editor.chain().focus().deleteRange(range).toggleOrderedList().run();
|
|
203
203
|
}
|
|
@@ -210,7 +210,7 @@ var text = {
|
|
|
210
210
|
title: "Text",
|
|
211
211
|
description: "Just start typing with plain text.",
|
|
212
212
|
searchTerms: ["p", "paragraph"],
|
|
213
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Text, { className: "mly
|
|
213
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Text, { className: "mly:h-4 mly:w-4" }),
|
|
214
214
|
command: ({ editor, range }) => {
|
|
215
215
|
editor.chain().focus().deleteRange(range).toggleNode("paragraph", "paragraph").run();
|
|
216
216
|
}
|
|
@@ -219,7 +219,7 @@ var heading1 = {
|
|
|
219
219
|
title: "Heading 1",
|
|
220
220
|
description: "Big heading.",
|
|
221
221
|
searchTerms: ["h1", "title", "big", "large"],
|
|
222
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading1, { className: "mly
|
|
222
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading1, { className: "mly:h-4 mly:w-4" }),
|
|
223
223
|
command: ({ editor, range }) => {
|
|
224
224
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 1 }).run();
|
|
225
225
|
}
|
|
@@ -228,7 +228,7 @@ var heading2 = {
|
|
|
228
228
|
title: "Heading 2",
|
|
229
229
|
description: "Medium heading.",
|
|
230
230
|
searchTerms: ["h2", "subtitle", "medium"],
|
|
231
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading2, { className: "mly
|
|
231
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading2, { className: "mly:h-4 mly:w-4" }),
|
|
232
232
|
command: ({ editor, range }) => {
|
|
233
233
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 2 }).run();
|
|
234
234
|
}
|
|
@@ -237,7 +237,7 @@ var heading3 = {
|
|
|
237
237
|
title: "Heading 3",
|
|
238
238
|
description: "Small heading.",
|
|
239
239
|
searchTerms: ["h3", "subtitle", "small"],
|
|
240
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading3, { className: "mly
|
|
240
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.Heading3, { className: "mly:h-4 mly:w-4" }),
|
|
241
241
|
command: ({ editor, range }) => {
|
|
242
242
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 3 }).run();
|
|
243
243
|
}
|
|
@@ -246,7 +246,7 @@ var hardBreak = {
|
|
|
246
246
|
title: "Hard Break",
|
|
247
247
|
description: "Add a break between lines.",
|
|
248
248
|
searchTerms: ["break", "line"],
|
|
249
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.DivideIcon, { className: "mly
|
|
249
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.DivideIcon, { className: "mly:h-4 mly:w-4" }),
|
|
250
250
|
command: ({ editor, range }) => {
|
|
251
251
|
editor.chain().focus().deleteRange(range).setHardBreak().run();
|
|
252
252
|
}
|
|
@@ -255,7 +255,7 @@ var blockquote = {
|
|
|
255
255
|
title: "Blockquote",
|
|
256
256
|
description: "Add blockquote.",
|
|
257
257
|
searchTerms: ["quote", "blockquote"],
|
|
258
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.TextQuote, { className: "mly
|
|
258
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.TextQuote, { className: "mly:h-4 mly:w-4" }),
|
|
259
259
|
command: ({ editor, range }) => {
|
|
260
260
|
editor.chain().focus().deleteRange(range).toggleBlockquote().run();
|
|
261
261
|
}
|
|
@@ -264,7 +264,7 @@ var footer = {
|
|
|
264
264
|
title: "Footer",
|
|
265
265
|
description: "Add a footer text to email.",
|
|
266
266
|
searchTerms: ["footer", "text"],
|
|
267
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.FootprintsIcon, { className: "mly
|
|
267
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.FootprintsIcon, { className: "mly:h-4 mly:w-4" }),
|
|
268
268
|
command: ({ editor, range }) => {
|
|
269
269
|
editor.chain().focus().deleteRange(range).setFooter().run();
|
|
270
270
|
}
|
|
@@ -273,7 +273,7 @@ var clearLine = {
|
|
|
273
273
|
title: "Clear Line",
|
|
274
274
|
description: "Clear the current line.",
|
|
275
275
|
searchTerms: ["clear", "line"],
|
|
276
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.EraserIcon, { className: "mly
|
|
276
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react6.EraserIcon, { className: "mly:h-4 mly:w-4" }),
|
|
277
277
|
command: ({ editor, range }) => {
|
|
278
278
|
editor.chain().focus().selectParentNode().deleteSelection().run();
|
|
279
279
|
}
|
|
@@ -1 +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"]}
|
|
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"]}
|
package/dist/blocks/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ var button = {
|
|
|
5
5
|
title: "Button",
|
|
6
6
|
description: "Add a call to action button to email.",
|
|
7
7
|
searchTerms: ["link", "button", "cta"],
|
|
8
|
-
icon: /* @__PURE__ */ jsx(MousePointer, { className: "mly
|
|
8
|
+
icon: /* @__PURE__ */ jsx(MousePointer, { className: "mly:h-4 mly:w-4" }),
|
|
9
9
|
command: ({ editor, range }) => {
|
|
10
10
|
editor.chain().focus().deleteRange(range).setButton().run();
|
|
11
11
|
}
|
|
@@ -14,7 +14,7 @@ var linkCard = {
|
|
|
14
14
|
title: "Link Card",
|
|
15
15
|
description: "Add a link card to email.",
|
|
16
16
|
searchTerms: ["link", "button", "image"],
|
|
17
|
-
icon: /* @__PURE__ */ jsx(ArrowUpRightSquare, { className: "mly
|
|
17
|
+
icon: /* @__PURE__ */ jsx(ArrowUpRightSquare, { className: "mly:h-4 mly:w-4" }),
|
|
18
18
|
command: ({ editor, range }) => {
|
|
19
19
|
editor.chain().focus().deleteRange(range).setLinkCard().run();
|
|
20
20
|
},
|
|
@@ -32,7 +32,7 @@ var htmlCodeBlock = {
|
|
|
32
32
|
title: "Custom HTML",
|
|
33
33
|
description: "Insert a custom HTML block",
|
|
34
34
|
searchTerms: ["html", "code", "custom"],
|
|
35
|
-
icon: /* @__PURE__ */ jsx2(CodeXmlIcon, { className: "mly
|
|
35
|
+
icon: /* @__PURE__ */ jsx2(CodeXmlIcon, { className: "mly:h-4 mly:w-4" }),
|
|
36
36
|
command: ({ editor, range }) => {
|
|
37
37
|
editor.chain().focus().deleteRange(range).setHtmlCodeBlock({ language: "html" }).run();
|
|
38
38
|
}
|
|
@@ -46,7 +46,7 @@ var image = {
|
|
|
46
46
|
title: "Image",
|
|
47
47
|
description: "Full width image",
|
|
48
48
|
searchTerms: ["image"],
|
|
49
|
-
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly
|
|
49
|
+
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly:h-4 mly:w-4" }),
|
|
50
50
|
command: ({ editor, range }) => {
|
|
51
51
|
editor.chain().focus().deleteRange(range).setImage({ src: "" }).run();
|
|
52
52
|
}
|
|
@@ -55,7 +55,7 @@ var logo = {
|
|
|
55
55
|
title: "Logo",
|
|
56
56
|
description: "Add your brand logo",
|
|
57
57
|
searchTerms: ["image", "logo"],
|
|
58
|
-
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly
|
|
58
|
+
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly:h-4 mly:w-4" }),
|
|
59
59
|
command: ({ editor, range }) => {
|
|
60
60
|
editor.chain().focus().deleteRange(range).setLogoImage({ src: "" }).run();
|
|
61
61
|
}
|
|
@@ -64,7 +64,7 @@ var inlineImage = {
|
|
|
64
64
|
title: "Inline Image",
|
|
65
65
|
description: "Inline image",
|
|
66
66
|
searchTerms: ["image", "inline"],
|
|
67
|
-
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly
|
|
67
|
+
icon: /* @__PURE__ */ jsx3(ImageIcon, { className: "mly:h-4 mly:w-4" }),
|
|
68
68
|
command: ({ editor, range }) => {
|
|
69
69
|
editor.chain().focus().deleteRange(range).setInlineImage({
|
|
70
70
|
src: "https://maily.to/brand/logo.png"
|
|
@@ -99,7 +99,7 @@ var columns = {
|
|
|
99
99
|
title: "Columns",
|
|
100
100
|
description: "Add columns to email.",
|
|
101
101
|
searchTerms: ["layout", "columns"],
|
|
102
|
-
icon: /* @__PURE__ */ jsx4(ColumnsIcon, { className: "mly
|
|
102
|
+
icon: /* @__PURE__ */ jsx4(ColumnsIcon, { className: "mly:h-4 mly:w-4" }),
|
|
103
103
|
command: ({ editor, range }) => {
|
|
104
104
|
editor.chain().focus().deleteRange(range).setColumns().focus(editor.state.selection.head - 2).run();
|
|
105
105
|
}
|
|
@@ -108,7 +108,7 @@ var section = {
|
|
|
108
108
|
title: "Section",
|
|
109
109
|
description: "Add a section to email.",
|
|
110
110
|
searchTerms: ["layout", "section"],
|
|
111
|
-
icon: /* @__PURE__ */ jsx4(RectangleHorizontal, { className: "mly
|
|
111
|
+
icon: /* @__PURE__ */ jsx4(RectangleHorizontal, { className: "mly:h-4 mly:w-4" }),
|
|
112
112
|
command: ({ editor, range }) => {
|
|
113
113
|
editor.chain().focus().deleteRange(range).setSection().run();
|
|
114
114
|
}
|
|
@@ -117,7 +117,7 @@ var repeat = {
|
|
|
117
117
|
title: "Repeat",
|
|
118
118
|
description: "Loop over an array of items.",
|
|
119
119
|
searchTerms: ["repeat", "for", "loop"],
|
|
120
|
-
icon: /* @__PURE__ */ jsx4(Repeat2, { className: "mly
|
|
120
|
+
icon: /* @__PURE__ */ jsx4(Repeat2, { className: "mly:h-4 mly:w-4" }),
|
|
121
121
|
command: ({ editor, range }) => {
|
|
122
122
|
editor.chain().focus().deleteRange(range).setRepeat().run();
|
|
123
123
|
}
|
|
@@ -126,7 +126,7 @@ var spacer = {
|
|
|
126
126
|
title: "Spacer",
|
|
127
127
|
description: "Add space between blocks.",
|
|
128
128
|
searchTerms: ["space", "gap", "divider"],
|
|
129
|
-
icon: /* @__PURE__ */ jsx4(MoveVertical, { className: "mly
|
|
129
|
+
icon: /* @__PURE__ */ jsx4(MoveVertical, { className: "mly:h-4 mly:w-4" }),
|
|
130
130
|
command: ({ editor, range }) => {
|
|
131
131
|
editor.chain().focus().deleteRange(range).setSpacer({ height: "sm" }).run();
|
|
132
132
|
}
|
|
@@ -135,7 +135,7 @@ var divider = {
|
|
|
135
135
|
title: "Divider",
|
|
136
136
|
description: "Add a horizontal divider.",
|
|
137
137
|
searchTerms: ["divider", "line"],
|
|
138
|
-
icon: /* @__PURE__ */ jsx4(Minus, { className: "mly
|
|
138
|
+
icon: /* @__PURE__ */ jsx4(Minus, { className: "mly:h-4 mly:w-4" }),
|
|
139
139
|
command: ({ editor, range }) => {
|
|
140
140
|
editor.chain().focus().deleteRange(range).setHorizontalRule().run();
|
|
141
141
|
}
|
|
@@ -148,7 +148,7 @@ var bulletList = {
|
|
|
148
148
|
title: "Bullet List",
|
|
149
149
|
description: "Create a simple bullet list.",
|
|
150
150
|
searchTerms: ["unordered", "point"],
|
|
151
|
-
icon: /* @__PURE__ */ jsx5(List, { className: "mly
|
|
151
|
+
icon: /* @__PURE__ */ jsx5(List, { className: "mly:h-4 mly:w-4" }),
|
|
152
152
|
command: ({ editor, range }) => {
|
|
153
153
|
editor.chain().focus().deleteRange(range).toggleBulletList().run();
|
|
154
154
|
}
|
|
@@ -157,7 +157,7 @@ var orderedList = {
|
|
|
157
157
|
title: "Numbered List",
|
|
158
158
|
description: "Create a list with numbering.",
|
|
159
159
|
searchTerms: ["ordered"],
|
|
160
|
-
icon: /* @__PURE__ */ jsx5(ListOrdered, { className: "mly
|
|
160
|
+
icon: /* @__PURE__ */ jsx5(ListOrdered, { className: "mly:h-4 mly:w-4" }),
|
|
161
161
|
command: ({ editor, range }) => {
|
|
162
162
|
editor.chain().focus().deleteRange(range).toggleOrderedList().run();
|
|
163
163
|
}
|
|
@@ -179,7 +179,7 @@ var text = {
|
|
|
179
179
|
title: "Text",
|
|
180
180
|
description: "Just start typing with plain text.",
|
|
181
181
|
searchTerms: ["p", "paragraph"],
|
|
182
|
-
icon: /* @__PURE__ */ jsx6(Text, { className: "mly
|
|
182
|
+
icon: /* @__PURE__ */ jsx6(Text, { className: "mly:h-4 mly:w-4" }),
|
|
183
183
|
command: ({ editor, range }) => {
|
|
184
184
|
editor.chain().focus().deleteRange(range).toggleNode("paragraph", "paragraph").run();
|
|
185
185
|
}
|
|
@@ -188,7 +188,7 @@ var heading1 = {
|
|
|
188
188
|
title: "Heading 1",
|
|
189
189
|
description: "Big heading.",
|
|
190
190
|
searchTerms: ["h1", "title", "big", "large"],
|
|
191
|
-
icon: /* @__PURE__ */ jsx6(Heading1, { className: "mly
|
|
191
|
+
icon: /* @__PURE__ */ jsx6(Heading1, { className: "mly:h-4 mly:w-4" }),
|
|
192
192
|
command: ({ editor, range }) => {
|
|
193
193
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 1 }).run();
|
|
194
194
|
}
|
|
@@ -197,7 +197,7 @@ var heading2 = {
|
|
|
197
197
|
title: "Heading 2",
|
|
198
198
|
description: "Medium heading.",
|
|
199
199
|
searchTerms: ["h2", "subtitle", "medium"],
|
|
200
|
-
icon: /* @__PURE__ */ jsx6(Heading2, { className: "mly
|
|
200
|
+
icon: /* @__PURE__ */ jsx6(Heading2, { className: "mly:h-4 mly:w-4" }),
|
|
201
201
|
command: ({ editor, range }) => {
|
|
202
202
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 2 }).run();
|
|
203
203
|
}
|
|
@@ -206,7 +206,7 @@ var heading3 = {
|
|
|
206
206
|
title: "Heading 3",
|
|
207
207
|
description: "Small heading.",
|
|
208
208
|
searchTerms: ["h3", "subtitle", "small"],
|
|
209
|
-
icon: /* @__PURE__ */ jsx6(Heading3, { className: "mly
|
|
209
|
+
icon: /* @__PURE__ */ jsx6(Heading3, { className: "mly:h-4 mly:w-4" }),
|
|
210
210
|
command: ({ editor, range }) => {
|
|
211
211
|
editor.chain().focus().deleteRange(range).setNode("heading", { level: 3 }).run();
|
|
212
212
|
}
|
|
@@ -215,7 +215,7 @@ var hardBreak = {
|
|
|
215
215
|
title: "Hard Break",
|
|
216
216
|
description: "Add a break between lines.",
|
|
217
217
|
searchTerms: ["break", "line"],
|
|
218
|
-
icon: /* @__PURE__ */ jsx6(DivideIcon, { className: "mly
|
|
218
|
+
icon: /* @__PURE__ */ jsx6(DivideIcon, { className: "mly:h-4 mly:w-4" }),
|
|
219
219
|
command: ({ editor, range }) => {
|
|
220
220
|
editor.chain().focus().deleteRange(range).setHardBreak().run();
|
|
221
221
|
}
|
|
@@ -224,7 +224,7 @@ var blockquote = {
|
|
|
224
224
|
title: "Blockquote",
|
|
225
225
|
description: "Add blockquote.",
|
|
226
226
|
searchTerms: ["quote", "blockquote"],
|
|
227
|
-
icon: /* @__PURE__ */ jsx6(TextQuote, { className: "mly
|
|
227
|
+
icon: /* @__PURE__ */ jsx6(TextQuote, { className: "mly:h-4 mly:w-4" }),
|
|
228
228
|
command: ({ editor, range }) => {
|
|
229
229
|
editor.chain().focus().deleteRange(range).toggleBlockquote().run();
|
|
230
230
|
}
|
|
@@ -233,7 +233,7 @@ var footer = {
|
|
|
233
233
|
title: "Footer",
|
|
234
234
|
description: "Add a footer text to email.",
|
|
235
235
|
searchTerms: ["footer", "text"],
|
|
236
|
-
icon: /* @__PURE__ */ jsx6(FootprintsIcon, { className: "mly
|
|
236
|
+
icon: /* @__PURE__ */ jsx6(FootprintsIcon, { className: "mly:h-4 mly:w-4" }),
|
|
237
237
|
command: ({ editor, range }) => {
|
|
238
238
|
editor.chain().focus().deleteRange(range).setFooter().run();
|
|
239
239
|
}
|
|
@@ -242,7 +242,7 @@ var clearLine = {
|
|
|
242
242
|
title: "Clear Line",
|
|
243
243
|
description: "Clear the current line.",
|
|
244
244
|
searchTerms: ["clear", "line"],
|
|
245
|
-
icon: /* @__PURE__ */ jsx6(EraserIcon, { className: "mly
|
|
245
|
+
icon: /* @__PURE__ */ jsx6(EraserIcon, { className: "mly:h-4 mly:w-4" }),
|
|
246
246
|
command: ({ editor, range }) => {
|
|
247
247
|
editor.chain().focus().selectParentNode().deleteSelection().run();
|
|
248
248
|
}
|
|
@@ -1 +1 @@
|
|
|
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"]}
|
|
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"]}
|