@prosekit/extensions 0.0.0-next-20230709094459 → 0.0.0-next-20240421132240
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/_tsup-dts-rollup.d.ts +889 -0
- package/dist/chunk-ASTUC4KT.js +111 -0
- package/dist/chunk-DYFRBXUX.js +56 -0
- package/dist/list/style.css +18 -13
- package/dist/prosekit-extensions-autocomplete.d.ts +3 -0
- package/dist/prosekit-extensions-autocomplete.js +194 -0
- package/dist/prosekit-extensions-blockquote.d.ts +3 -11
- package/dist/prosekit-extensions-blockquote.js +24 -15
- package/dist/prosekit-extensions-bold.d.ts +4 -20
- package/dist/prosekit-extensions-bold.js +35 -37
- package/dist/prosekit-extensions-code-block.d.ts +15 -0
- package/dist/prosekit-extensions-code-block.js +214 -0
- package/dist/prosekit-extensions-code.d.ts +4 -16
- package/dist/prosekit-extensions-code.js +28 -12
- package/dist/prosekit-extensions-drop-cursor.d.ts +2 -0
- package/dist/prosekit-extensions-drop-cursor.js +9 -0
- package/dist/prosekit-extensions-enter-rule.d.ts +5 -0
- package/dist/prosekit-extensions-enter-rule.js +8 -0
- package/dist/prosekit-extensions-heading.d.ts +6 -15
- package/dist/prosekit-extensions-heading.js +75 -41
- package/dist/prosekit-extensions-image.d.ts +4 -0
- package/dist/prosekit-extensions-image.js +49 -0
- package/dist/prosekit-extensions-input-rule.d.ts +3 -0
- package/dist/prosekit-extensions-input-rule.js +10 -0
- package/dist/prosekit-extensions-italic.d.ts +4 -20
- package/dist/prosekit-extensions-italic.js +29 -31
- package/dist/prosekit-extensions-link.d.ts +6 -0
- package/dist/prosekit-extensions-link.js +102 -0
- package/dist/prosekit-extensions-list.d.ts +7 -14
- package/dist/prosekit-extensions-list.js +59 -24
- package/dist/prosekit-extensions-mention.d.ts +4 -0
- package/dist/prosekit-extensions-mention.js +56 -0
- package/dist/prosekit-extensions-placeholder.d.ts +2 -23
- package/dist/prosekit-extensions-placeholder.js +11 -7
- package/dist/prosekit-extensions-readonly.d.ts +1 -0
- package/dist/prosekit-extensions-readonly.js +16 -0
- package/dist/prosekit-extensions-strike.d.ts +4 -0
- package/dist/prosekit-extensions-strike.js +47 -0
- package/dist/prosekit-extensions-table.d.ts +7 -0
- package/dist/prosekit-extensions-table.js +197 -0
- package/dist/prosekit-extensions-underline.d.ts +4 -0
- package/dist/prosekit-extensions-underline.js +45 -0
- package/dist/prosekit-extensions-virtual-selection.d.ts +1 -0
- package/dist/prosekit-extensions-virtual-selection.js +58 -0
- package/dist/prosekit-extensions.d.ts +1 -2
- package/dist/shiki-import-25BJYIO2.js +5 -0
- package/dist/table/style.css +34 -0
- package/dist/virtual-selection/style.css +6 -0
- package/package.json +119 -13
- package/dist/prosekit-extensions-suggestion.d.ts +0 -37
- package/dist/prosekit-extensions-suggestion.js +0 -159
- package/src/index.ts +0 -1
@@ -0,0 +1,214 @@
|
|
1
|
+
import {
|
2
|
+
defineTextBlockInputRule
|
3
|
+
} from "./chunk-DYFRBXUX.js";
|
4
|
+
import {
|
5
|
+
defineTextBlockEnterRule
|
6
|
+
} from "./chunk-ASTUC4KT.js";
|
7
|
+
|
8
|
+
// src/code-block/code-block.ts
|
9
|
+
import { union } from "@prosekit/core";
|
10
|
+
|
11
|
+
// src/code-block/code-block-commands.ts
|
12
|
+
import {
|
13
|
+
defineCommands,
|
14
|
+
insertNode,
|
15
|
+
setBlockType,
|
16
|
+
setNodeAttrs,
|
17
|
+
toggleNode
|
18
|
+
} from "@prosekit/core";
|
19
|
+
function defineCodeBlockCommands() {
|
20
|
+
return defineCommands({
|
21
|
+
setCodeBlock: (attrs) => {
|
22
|
+
return setBlockType({ type: "codeBlock", attrs });
|
23
|
+
},
|
24
|
+
insertCodeBlock: (attrs) => {
|
25
|
+
return insertNode({ type: "codeBlock", attrs });
|
26
|
+
},
|
27
|
+
toggleCodeBlock: (attrs) => {
|
28
|
+
return toggleNode({ type: "codeBlock", attrs });
|
29
|
+
},
|
30
|
+
setCodeBlockAttrs: (attrs) => {
|
31
|
+
return setNodeAttrs({ type: "codeBlock", attrs });
|
32
|
+
}
|
33
|
+
});
|
34
|
+
}
|
35
|
+
|
36
|
+
// src/code-block/code-block-input-rule.ts
|
37
|
+
function defineCodeBlockInputRule() {
|
38
|
+
return defineTextBlockInputRule({
|
39
|
+
regex: /^```(\S*)\s$/,
|
40
|
+
type: "codeBlock",
|
41
|
+
attrs: getAttrs
|
42
|
+
});
|
43
|
+
}
|
44
|
+
function defineCodeBlockEnterRule() {
|
45
|
+
return defineTextBlockEnterRule({
|
46
|
+
regex: /^```(\S*)$/,
|
47
|
+
type: "codeBlock",
|
48
|
+
attrs: getAttrs
|
49
|
+
});
|
50
|
+
}
|
51
|
+
function getAttrs(match) {
|
52
|
+
return { language: match[1] || "" };
|
53
|
+
}
|
54
|
+
|
55
|
+
// src/code-block/code-block-keymap.ts
|
56
|
+
import { defaultBlockAt, defineKeymap } from "@prosekit/core";
|
57
|
+
import { TextSelection } from "@prosekit/pm/state";
|
58
|
+
function defineCodeBlockKeymap() {
|
59
|
+
return defineKeymap({
|
60
|
+
Enter: existCodeBlock
|
61
|
+
});
|
62
|
+
}
|
63
|
+
var existCodeBlock = (state, dispatch) => {
|
64
|
+
if (!state.selection.empty) {
|
65
|
+
return false;
|
66
|
+
}
|
67
|
+
const { $head } = state.selection;
|
68
|
+
const parent = $head.parent;
|
69
|
+
if (parent.isTextblock && parent.type.spec.code && $head.parentOffset === parent.content.size && parent.textContent.endsWith("\n\n")) {
|
70
|
+
const grandParent = $head.node(-1);
|
71
|
+
const insertIndex = $head.indexAfter(-1);
|
72
|
+
const type = defaultBlockAt(grandParent.contentMatchAt(insertIndex));
|
73
|
+
if (!type || !grandParent.canReplaceWith(insertIndex, insertIndex, type)) {
|
74
|
+
return false;
|
75
|
+
}
|
76
|
+
if (dispatch) {
|
77
|
+
const { tr } = state;
|
78
|
+
tr.delete($head.pos - 2, $head.pos);
|
79
|
+
const pos = tr.selection.$head.after();
|
80
|
+
const node = type.createAndFill();
|
81
|
+
if (node) {
|
82
|
+
tr.replaceWith(pos, pos, node);
|
83
|
+
tr.setSelection(TextSelection.near(tr.doc.resolve(pos), 1));
|
84
|
+
dispatch(tr.scrollIntoView());
|
85
|
+
}
|
86
|
+
}
|
87
|
+
return true;
|
88
|
+
}
|
89
|
+
return false;
|
90
|
+
};
|
91
|
+
|
92
|
+
// src/code-block/code-block-spec.ts
|
93
|
+
import { defineNodeSpec } from "@prosekit/core";
|
94
|
+
function defineCodeBlockSpec() {
|
95
|
+
return defineNodeSpec({
|
96
|
+
name: "codeBlock",
|
97
|
+
content: "text*",
|
98
|
+
group: "block",
|
99
|
+
code: true,
|
100
|
+
defining: true,
|
101
|
+
marks: "",
|
102
|
+
attrs: { language: { default: "" } },
|
103
|
+
parseDOM: [
|
104
|
+
{
|
105
|
+
tag: "pre",
|
106
|
+
preserveWhitespace: "full",
|
107
|
+
getAttrs: (node) => ({
|
108
|
+
language: node.getAttribute("data-language") || ""
|
109
|
+
})
|
110
|
+
}
|
111
|
+
],
|
112
|
+
toDOM(node) {
|
113
|
+
const attrs = node.attrs;
|
114
|
+
return ["pre", { "data-language": attrs.language }, ["code", 0]];
|
115
|
+
}
|
116
|
+
});
|
117
|
+
}
|
118
|
+
|
119
|
+
// src/code-block/code-block.ts
|
120
|
+
function defineCodeBlock() {
|
121
|
+
return union([
|
122
|
+
defineCodeBlockSpec(),
|
123
|
+
defineCodeBlockInputRule(),
|
124
|
+
defineCodeBlockEnterRule(),
|
125
|
+
defineCodeBlockKeymap(),
|
126
|
+
defineCodeBlockCommands()
|
127
|
+
]);
|
128
|
+
}
|
129
|
+
|
130
|
+
// src/code-block/code-block-highlight.ts
|
131
|
+
import { definePlugin } from "@prosekit/core";
|
132
|
+
import { createHighlightPlugin } from "prosemirror-highlight";
|
133
|
+
function defineCodeBlockHighlight({
|
134
|
+
parser
|
135
|
+
}) {
|
136
|
+
return definePlugin(
|
137
|
+
createHighlightPlugin({ parser, nodeTypes: ["codeBlock"] })
|
138
|
+
);
|
139
|
+
}
|
140
|
+
|
141
|
+
// src/code-block/shiki-parser.ts
|
142
|
+
import { createParser } from "prosemirror-highlight/shiki";
|
143
|
+
function createHighlighterLoader() {
|
144
|
+
let highlighterPromise;
|
145
|
+
let highlighter;
|
146
|
+
const loadLangs = /* @__PURE__ */ new Set();
|
147
|
+
return function highlighterLoader(lang, options) {
|
148
|
+
if (!highlighterPromise) {
|
149
|
+
highlighterPromise = import("./shiki-import-25BJYIO2.js").then(({ getHighlighter }) => {
|
150
|
+
return getHighlighter(options);
|
151
|
+
}).then((h) => {
|
152
|
+
highlighter = h;
|
153
|
+
});
|
154
|
+
return { promise: highlighterPromise };
|
155
|
+
}
|
156
|
+
if (!highlighter) {
|
157
|
+
return { promise: highlighterPromise };
|
158
|
+
}
|
159
|
+
if (!loadLangs.has(lang)) {
|
160
|
+
const promise = highlighter.loadLanguage(lang).then(() => {
|
161
|
+
loadLangs.add(lang);
|
162
|
+
}).catch((error) => {
|
163
|
+
console.warn(`Failed to load language '${lang}'`, error);
|
164
|
+
});
|
165
|
+
return { promise };
|
166
|
+
}
|
167
|
+
return { highlighter };
|
168
|
+
};
|
169
|
+
}
|
170
|
+
function createLazyParser(highlighterOptions) {
|
171
|
+
let parser;
|
172
|
+
const highlighterLoader = createHighlighterLoader();
|
173
|
+
return function lazyParser(options) {
|
174
|
+
const language = options.language || "";
|
175
|
+
const { highlighter, promise } = highlighterLoader(
|
176
|
+
language,
|
177
|
+
highlighterOptions
|
178
|
+
);
|
179
|
+
if (!highlighter) {
|
180
|
+
return promise || [];
|
181
|
+
}
|
182
|
+
if (!parser) {
|
183
|
+
parser = createParser(highlighter);
|
184
|
+
}
|
185
|
+
return parser(options);
|
186
|
+
};
|
187
|
+
}
|
188
|
+
|
189
|
+
// src/code-block/code-block-shiki.ts
|
190
|
+
function defineCodeBlockShiki({
|
191
|
+
themes = ["one-dark-pro"],
|
192
|
+
langs = ["text"],
|
193
|
+
langAlias = {}
|
194
|
+
} = {}) {
|
195
|
+
const parser = createLazyParser({ themes, langs, langAlias });
|
196
|
+
return defineCodeBlockHighlight({ parser });
|
197
|
+
}
|
198
|
+
|
199
|
+
// src/code-block/shiki-bundle.ts
|
200
|
+
import {
|
201
|
+
bundledLanguagesInfo,
|
202
|
+
bundledThemesInfo
|
203
|
+
} from "shiki";
|
204
|
+
export {
|
205
|
+
defineCodeBlock,
|
206
|
+
defineCodeBlockCommands,
|
207
|
+
defineCodeBlockEnterRule,
|
208
|
+
defineCodeBlockHighlight,
|
209
|
+
defineCodeBlockInputRule,
|
210
|
+
defineCodeBlockShiki,
|
211
|
+
defineCodeBlockSpec,
|
212
|
+
bundledLanguagesInfo as shikiBundledLanguagesInfo,
|
213
|
+
bundledThemesInfo as shikiBundledThemesInfo
|
214
|
+
};
|
@@ -1,16 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
*/
|
6
|
-
declare function addCodeSpec(): _prosekit_core.Extension<{
|
7
|
-
MARKS: "code";
|
8
|
-
}>;
|
9
|
-
/**
|
10
|
-
* @public
|
11
|
-
*/
|
12
|
-
declare function addCode(): _prosekit_core.Extension<{
|
13
|
-
MARKS: "code";
|
14
|
-
}>;
|
15
|
-
|
16
|
-
export { addCode, addCodeSpec };
|
1
|
+
export { defineCodeSpec } from './_tsup-dts-rollup';
|
2
|
+
export { defineCodeCommands } from './_tsup-dts-rollup';
|
3
|
+
export { defineItalicKeymap } from './_tsup-dts-rollup';
|
4
|
+
export { defineCode } from './_tsup-dts-rollup';
|
@@ -1,20 +1,36 @@
|
|
1
1
|
// src/code/index.ts
|
2
|
-
import {
|
3
|
-
|
4
|
-
|
2
|
+
import {
|
3
|
+
defineCommands,
|
4
|
+
defineKeymap,
|
5
|
+
defineMarkSpec,
|
6
|
+
toggleMark,
|
7
|
+
union
|
8
|
+
} from "@prosekit/core";
|
9
|
+
function defineCodeSpec() {
|
10
|
+
return defineMarkSpec({
|
5
11
|
name: "code",
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
return ["code", 0];
|
10
|
-
}
|
12
|
+
parseDOM: [{ tag: "code" }],
|
13
|
+
toDOM() {
|
14
|
+
return ["code", 0];
|
11
15
|
}
|
12
16
|
});
|
13
17
|
}
|
14
|
-
function
|
15
|
-
return
|
18
|
+
function defineCodeCommands() {
|
19
|
+
return defineCommands({
|
20
|
+
toggleCode: () => toggleMark({ type: "code" })
|
21
|
+
});
|
22
|
+
}
|
23
|
+
function defineItalicKeymap() {
|
24
|
+
return defineKeymap({
|
25
|
+
"Mod-e": toggleMark({ type: "code" })
|
26
|
+
});
|
27
|
+
}
|
28
|
+
function defineCode() {
|
29
|
+
return union([defineCodeSpec(), defineCodeCommands(), defineItalicKeymap()]);
|
16
30
|
}
|
17
31
|
export {
|
18
|
-
|
19
|
-
|
32
|
+
defineCode,
|
33
|
+
defineCodeCommands,
|
34
|
+
defineCodeSpec,
|
35
|
+
defineItalicKeymap
|
20
36
|
};
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export { defineEnterRule } from './_tsup-dts-rollup';
|
2
|
+
export { defineTextBlockEnterRule } from './_tsup-dts-rollup';
|
3
|
+
export { EnterRuleHandler } from './_tsup-dts-rollup';
|
4
|
+
export { EnterRuleOptions } from './_tsup-dts-rollup';
|
5
|
+
export { TextBlockEnterRuleOptions } from './_tsup-dts-rollup';
|
@@ -1,15 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
}
|
6
|
-
|
7
|
-
NODES: "heading";
|
8
|
-
}>;
|
9
|
-
declare function addHeadingInputRule(): _prosekit_core.Extension<_prosekit_core.ExtensionTyping<string, string, _prosekit_core.CommandArgs>>;
|
10
|
-
/** @public */
|
11
|
-
declare function addHeading(): _prosekit_core.Extension<{
|
12
|
-
NODES: "heading";
|
13
|
-
}>;
|
14
|
-
|
15
|
-
export { HeadingAttrs, addHeading, addHeadingInputRule, addHeadingSpec };
|
1
|
+
export { defineHeadingSpec } from './_tsup-dts-rollup';
|
2
|
+
export { defineHeadingKeymap } from './_tsup-dts-rollup';
|
3
|
+
export { defineHeadingInputRule } from './_tsup-dts-rollup';
|
4
|
+
export { defineHeadingCommands } from './_tsup-dts-rollup';
|
5
|
+
export { defineHeading } from './_tsup-dts-rollup';
|
6
|
+
export { HeadingAttrs } from './_tsup-dts-rollup';
|
@@ -1,53 +1,87 @@
|
|
1
|
+
import {
|
2
|
+
defineTextBlockInputRule
|
3
|
+
} from "./chunk-DYFRBXUX.js";
|
4
|
+
|
1
5
|
// src/heading/index.ts
|
2
6
|
import {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
+
defineCommands,
|
8
|
+
defineKeymap,
|
9
|
+
defineNodeSpec,
|
10
|
+
insertNode,
|
11
|
+
setBlockType,
|
12
|
+
toggleNode,
|
13
|
+
union,
|
14
|
+
withSkipCodeBlock
|
7
15
|
} from "@prosekit/core";
|
8
|
-
|
9
|
-
|
10
|
-
return addNodeSpec({
|
16
|
+
function defineHeadingSpec() {
|
17
|
+
return defineNodeSpec({
|
11
18
|
name: "heading",
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
19
|
+
attrs: { level: { default: 1 } },
|
20
|
+
content: "inline*",
|
21
|
+
group: "block",
|
22
|
+
defining: true,
|
23
|
+
parseDOM: [
|
24
|
+
{ tag: "h1", attrs: { level: 1 } },
|
25
|
+
{ tag: "h2", attrs: { level: 2 } },
|
26
|
+
{ tag: "h3", attrs: { level: 3 } },
|
27
|
+
{ tag: "h4", attrs: { level: 4 } },
|
28
|
+
{ tag: "h5", attrs: { level: 5 } },
|
29
|
+
{ tag: "h6", attrs: { level: 6 } }
|
30
|
+
],
|
31
|
+
toDOM(node) {
|
32
|
+
return [`h${node.attrs.level}`, 0];
|
33
|
+
}
|
34
|
+
});
|
35
|
+
}
|
36
|
+
function defineHeadingKeymap() {
|
37
|
+
return defineKeymap({
|
38
|
+
"mod-1": toggleHeadingKeybinding(1),
|
39
|
+
"mod-2": toggleHeadingKeybinding(2),
|
40
|
+
"mod-3": toggleHeadingKeybinding(3),
|
41
|
+
"mod-4": toggleHeadingKeybinding(4),
|
42
|
+
"mod-5": toggleHeadingKeybinding(5),
|
43
|
+
"mod-6": toggleHeadingKeybinding(6)
|
44
|
+
});
|
45
|
+
}
|
46
|
+
function toggleHeadingKeybinding(level) {
|
47
|
+
return withSkipCodeBlock(toggleNode({ type: "heading", attrs: { level } }));
|
48
|
+
}
|
49
|
+
function defineHeadingInputRule() {
|
50
|
+
return defineTextBlockInputRule({
|
51
|
+
regex: /^(#{1,6})\s$/,
|
52
|
+
type: "heading",
|
53
|
+
attrs: (match) => {
|
54
|
+
var _a, _b;
|
55
|
+
const level = (_b = (_a = match[1]) == null ? void 0 : _a.length) != null ? _b : 1;
|
56
|
+
return { level };
|
28
57
|
}
|
29
58
|
});
|
30
59
|
}
|
31
|
-
function
|
32
|
-
return
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
(
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
);
|
43
|
-
return [inputRule];
|
60
|
+
function defineHeadingCommands() {
|
61
|
+
return defineCommands({
|
62
|
+
setHeading: (attrs) => {
|
63
|
+
return setBlockType({ type: "heading", attrs });
|
64
|
+
},
|
65
|
+
insertHeading: (attrs) => {
|
66
|
+
return insertNode({ type: "heading", attrs });
|
67
|
+
},
|
68
|
+
toggleHeading: (attrs) => {
|
69
|
+
return toggleNode({ type: "heading", attrs });
|
70
|
+
}
|
44
71
|
});
|
45
72
|
}
|
46
|
-
function
|
47
|
-
return
|
73
|
+
function defineHeading() {
|
74
|
+
return union([
|
75
|
+
defineHeadingSpec(),
|
76
|
+
defineHeadingInputRule(),
|
77
|
+
defineHeadingKeymap(),
|
78
|
+
defineHeadingCommands()
|
79
|
+
]);
|
48
80
|
}
|
49
81
|
export {
|
50
|
-
|
51
|
-
|
52
|
-
|
82
|
+
defineHeading,
|
83
|
+
defineHeadingCommands,
|
84
|
+
defineHeadingInputRule,
|
85
|
+
defineHeadingKeymap,
|
86
|
+
defineHeadingSpec
|
53
87
|
};
|
@@ -0,0 +1,49 @@
|
|
1
|
+
// src/image/index.ts
|
2
|
+
import {
|
3
|
+
defineCommands,
|
4
|
+
defineNodeSpec,
|
5
|
+
insertNode,
|
6
|
+
union
|
7
|
+
} from "@prosekit/core";
|
8
|
+
function defineImageSpec() {
|
9
|
+
return defineNodeSpec({
|
10
|
+
name: "image",
|
11
|
+
attrs: {
|
12
|
+
src: { default: null }
|
13
|
+
},
|
14
|
+
group: "block",
|
15
|
+
defining: true,
|
16
|
+
draggable: true,
|
17
|
+
parseDOM: [
|
18
|
+
{
|
19
|
+
tag: "img[src]",
|
20
|
+
getAttrs: (element) => {
|
21
|
+
if (typeof element === "string") {
|
22
|
+
return { src: null };
|
23
|
+
}
|
24
|
+
const src = element.getAttribute("src") || null;
|
25
|
+
return { src };
|
26
|
+
}
|
27
|
+
}
|
28
|
+
],
|
29
|
+
toDOM(node) {
|
30
|
+
const attrs = node.attrs;
|
31
|
+
return ["img", attrs];
|
32
|
+
}
|
33
|
+
});
|
34
|
+
}
|
35
|
+
function defineImageCommands() {
|
36
|
+
return defineCommands({
|
37
|
+
insertImage: (attrs) => {
|
38
|
+
return insertNode({ type: "image", attrs });
|
39
|
+
}
|
40
|
+
});
|
41
|
+
}
|
42
|
+
function defineImage() {
|
43
|
+
return union([defineImageSpec(), defineImageCommands()]);
|
44
|
+
}
|
45
|
+
export {
|
46
|
+
defineImage,
|
47
|
+
defineImageCommands,
|
48
|
+
defineImageSpec
|
49
|
+
};
|
@@ -1,20 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
}>;
|
6
|
-
declare function addItalicCommands(): _prosekit_core.Extension<{
|
7
|
-
COMMAND_ARGS: {
|
8
|
-
toggleItalic: [];
|
9
|
-
};
|
10
|
-
}>;
|
11
|
-
declare function addItalicKeymap(): _prosekit_core.Extension<_prosekit_core.ExtensionTyping<string, string, _prosekit_core.CommandArgs>>;
|
12
|
-
/** @public */
|
13
|
-
declare function addItalic(): _prosekit_core.Extension<{
|
14
|
-
MARKS: "italic";
|
15
|
-
COMMAND_ARGS: {
|
16
|
-
toggleItalic: [];
|
17
|
-
};
|
18
|
-
}>;
|
19
|
-
|
20
|
-
export { addItalic, addItalicCommands, addItalicKeymap, addItalicSpec };
|
1
|
+
export { defineItalicSpec } from './_tsup-dts-rollup';
|
2
|
+
export { defineItalicCommands } from './_tsup-dts-rollup';
|
3
|
+
export { defineItalicKeymap_alias_1 as defineItalicKeymap } from './_tsup-dts-rollup';
|
4
|
+
export { defineItalic } from './_tsup-dts-rollup';
|
@@ -1,50 +1,48 @@
|
|
1
1
|
// src/italic/index.ts
|
2
2
|
import {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
defineCommands,
|
4
|
+
defineKeymap,
|
5
|
+
defineMarkSpec,
|
6
|
+
union,
|
7
7
|
toggleMark
|
8
8
|
} from "@prosekit/core";
|
9
|
-
function
|
10
|
-
return
|
9
|
+
function defineItalicSpec() {
|
10
|
+
return defineMarkSpec({
|
11
11
|
name: "italic",
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
clearMark: (m) => m.type.name === "italic"
|
20
|
-
}
|
21
|
-
],
|
22
|
-
toDOM() {
|
23
|
-
return ["em", 0];
|
12
|
+
parseDOM: [
|
13
|
+
{ tag: "i" },
|
14
|
+
{ tag: "em" },
|
15
|
+
{ style: "font-style=italic" },
|
16
|
+
{
|
17
|
+
style: "font-style=normal",
|
18
|
+
clearMark: (m) => m.type.name === "italic"
|
24
19
|
}
|
20
|
+
],
|
21
|
+
toDOM() {
|
22
|
+
return ["em", 0];
|
25
23
|
}
|
26
24
|
});
|
27
25
|
}
|
28
|
-
function
|
29
|
-
return
|
26
|
+
function defineItalicCommands() {
|
27
|
+
return defineCommands({
|
30
28
|
toggleItalic: () => toggleMark({ type: "italic" })
|
31
29
|
});
|
32
30
|
}
|
33
|
-
function
|
34
|
-
return
|
31
|
+
function defineItalicKeymap() {
|
32
|
+
return defineKeymap({
|
35
33
|
"Mod-i": toggleMark({ type: "italic" })
|
36
34
|
});
|
37
35
|
}
|
38
|
-
function
|
39
|
-
return
|
40
|
-
|
41
|
-
|
42
|
-
|
36
|
+
function defineItalic() {
|
37
|
+
return union([
|
38
|
+
defineItalicSpec(),
|
39
|
+
defineItalicCommands(),
|
40
|
+
defineItalicKeymap()
|
43
41
|
]);
|
44
42
|
}
|
45
43
|
export {
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
44
|
+
defineItalic,
|
45
|
+
defineItalicCommands,
|
46
|
+
defineItalicKeymap,
|
47
|
+
defineItalicSpec
|
50
48
|
};
|
@@ -0,0 +1,6 @@
|
|
1
|
+
export { defineLinkSpec } from './_tsup-dts-rollup';
|
2
|
+
export { defineLinkCommands } from './_tsup-dts-rollup';
|
3
|
+
export { defineLinkInputRule } from './_tsup-dts-rollup';
|
4
|
+
export { defineLinkEnterRule } from './_tsup-dts-rollup';
|
5
|
+
export { defineLink } from './_tsup-dts-rollup';
|
6
|
+
export { LinkAttrs } from './_tsup-dts-rollup';
|