@openleaf-editor/core 0.1.0-beta.1 → 0.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/autolink.d.ts +12 -0
- package/dist/autolink.d.ts.map +1 -0
- package/dist/autolink.js +98 -0
- package/dist/autolink.js.map +1 -0
- package/dist/commands.d.ts +69 -2
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +464 -18
- package/dist/commands.js.map +1 -1
- package/dist/css.d.ts +61 -9
- package/dist/css.d.ts.map +1 -1
- package/dist/css.js +315 -13
- package/dist/css.js.map +1 -1
- package/dist/embed.d.ts +52 -0
- package/dist/embed.d.ts.map +1 -0
- package/dist/embed.js +116 -0
- package/dist/embed.js.map +1 -0
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +22 -15
- package/dist/extensions.js.map +1 -1
- package/dist/formats.d.ts +44 -0
- package/dist/formats.d.ts.map +1 -0
- package/dist/formats.js +111 -0
- package/dist/formats.js.map +1 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/keymap.d.ts.map +1 -1
- package/dist/keymap.js +6 -3
- package/dist/keymap.js.map +1 -1
- package/dist/noneditable.d.ts +14 -0
- package/dist/noneditable.d.ts.map +1 -0
- package/dist/noneditable.js +93 -0
- package/dist/noneditable.js.map +1 -0
- package/dist/preserve.d.ts +45 -0
- package/dist/preserve.d.ts.map +1 -1
- package/dist/preserve.js +113 -34
- package/dist/preserve.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +211 -60
- package/dist/schema.js.map +1 -1
- package/dist/structure.d.ts +44 -0
- package/dist/structure.d.ts.map +1 -0
- package/dist/structure.js +379 -0
- package/dist/structure.js.map +1 -0
- package/dist/tables.d.ts +13 -0
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +224 -19
- package/dist/tables.js.map +1 -1
- package/dist/tokens.d.ts +28 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +68 -0
- package/dist/tokens.js.map +1 -0
- package/dist/visual-aids.d.ts +10 -0
- package/dist/visual-aids.d.ts.map +1 -0
- package/dist/visual-aids.js +61 -0
- package/dist/visual-aids.js.map +1 -0
- package/package.json +3 -2
package/dist/embed.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which `<iframe>` sources the schema will store.
|
|
3
|
+
*
|
|
4
|
+
* An iframe is a nested browsing context. Allowing an arbitrary `src` is
|
|
5
|
+
* allowing a third-party page to run in yours, which is why the preservation
|
|
6
|
+
* layer used to drop every iframe it saw. Modelling embeds at all means
|
|
7
|
+
* answering "which hosts, on which paths, over which scheme" in one place --
|
|
8
|
+
* here -- so the schema, the insert command and `@openleaf-editor/sanitize`
|
|
9
|
+
* cannot drift.
|
|
10
|
+
*
|
|
11
|
+
* Relative iframe URLs are refused: a CMS that later hosts an uploaded HTML
|
|
12
|
+
* file at a relative path would otherwise turn a stored embed into a stored
|
|
13
|
+
* XSS. `http:` is refused for the same reason every other URL check prefers
|
|
14
|
+
* an allowlist of schemes: mixed content is not an embed, it is a warning.
|
|
15
|
+
*/
|
|
16
|
+
import { isSafeUrl } from './url.js';
|
|
17
|
+
/**
|
|
18
|
+
* Hosts an author may embed.
|
|
19
|
+
*
|
|
20
|
+
* Each rule is a known player page, not a whole site. `youtube.com/` would
|
|
21
|
+
* let an author embed `youtube.com/watch` as a nested YouTube UI; `/embed/`
|
|
22
|
+
* is the documented iframe URL.
|
|
23
|
+
*/
|
|
24
|
+
export const EMBED_HOSTS = [
|
|
25
|
+
{ host: 'youtube.com', path: /^\/embed\// },
|
|
26
|
+
{ host: 'youtube-nocookie.com', path: /^\/embed\// },
|
|
27
|
+
{ host: 'player.vimeo.com', path: /^\/video\// },
|
|
28
|
+
{ host: 'dailymotion.com', path: /^\/embed\// },
|
|
29
|
+
{ host: 'player.twitch.tv' },
|
|
30
|
+
{ host: 'w.soundcloud.com', path: /^\/player\/?/ },
|
|
31
|
+
{ host: 'open.spotify.com', path: /^\/embed\// },
|
|
32
|
+
{ host: 'google.com', path: /^\/maps\/embed/ },
|
|
33
|
+
];
|
|
34
|
+
const ALLOW_TOKENS = new Set([
|
|
35
|
+
'accelerometer',
|
|
36
|
+
'autoplay',
|
|
37
|
+
'clipboard-write',
|
|
38
|
+
'encrypted-media',
|
|
39
|
+
'fullscreen',
|
|
40
|
+
'gyroscope',
|
|
41
|
+
'picture-in-picture',
|
|
42
|
+
'web-share',
|
|
43
|
+
]);
|
|
44
|
+
function hostnameOf(value) {
|
|
45
|
+
try {
|
|
46
|
+
const url = new URL(value);
|
|
47
|
+
return url.hostname.replace(/^www\./i, '').toLowerCase();
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return '';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function parsed(value) {
|
|
54
|
+
try {
|
|
55
|
+
return new URL(value);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** True when this URL is an https embed the schema will store. */
|
|
62
|
+
export function isAllowedEmbedSrc(value) {
|
|
63
|
+
if (value === null || value === undefined)
|
|
64
|
+
return false;
|
|
65
|
+
if (!isSafeUrl(value))
|
|
66
|
+
return false;
|
|
67
|
+
const url = parsed(value.trim());
|
|
68
|
+
if (!url)
|
|
69
|
+
return false;
|
|
70
|
+
if (url.protocol !== 'https:')
|
|
71
|
+
return false;
|
|
72
|
+
const host = hostnameOf(value);
|
|
73
|
+
return EMBED_HOSTS.some((rule) => {
|
|
74
|
+
if (rule.host !== host)
|
|
75
|
+
return false;
|
|
76
|
+
if (!rule.path)
|
|
77
|
+
return true;
|
|
78
|
+
return rule.path.test(url.pathname);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/** The URL, or null when it must not be stored as an iframe `src`. */
|
|
82
|
+
export function safeEmbedSrc(value) {
|
|
83
|
+
return isAllowedEmbedSrc(value) ? value : null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Permissions policy tokens an iframe may advertise.
|
|
87
|
+
*
|
|
88
|
+
* Anything not in the closed set is dropped rather than stored: `allow` is how
|
|
89
|
+
* an embed asks to skip the sandbox the rest of the page lives in.
|
|
90
|
+
*
|
|
91
|
+
* The attribute is a **semicolon**-delimited list of directives, each one a
|
|
92
|
+
* feature name followed by an optional origin allowlist -- `camera 'self';
|
|
93
|
+
* fullscreen *`. Splitting on whitespace instead read the standard YouTube
|
|
94
|
+
* string `allow="autoplay; fullscreen; picture-in-picture"` as the tokens
|
|
95
|
+
* "autoplay;" and "fullscreen;", so only the last survived, and a trailing
|
|
96
|
+
* semicolon lost every permission the author had.
|
|
97
|
+
*
|
|
98
|
+
* Only the feature name is kept. Dropping the origin allowlist leaves the
|
|
99
|
+
* attribute's default, which is the frame's own origin -- so `camera *` narrows
|
|
100
|
+
* to the embed itself rather than being stored as written.
|
|
101
|
+
*/
|
|
102
|
+
export function safeAllowList(value) {
|
|
103
|
+
if (value === null || value === undefined)
|
|
104
|
+
return null;
|
|
105
|
+
const kept = [];
|
|
106
|
+
const seen = new Set();
|
|
107
|
+
for (const directive of value.split(';')) {
|
|
108
|
+
const name = (directive.trim().split(/\s+/)[0] ?? '').toLowerCase();
|
|
109
|
+
if (!ALLOW_TOKENS.has(name) || seen.has(name))
|
|
110
|
+
continue;
|
|
111
|
+
seen.add(name);
|
|
112
|
+
kept.push(name);
|
|
113
|
+
}
|
|
114
|
+
return kept.length > 0 ? kept.join('; ') : null;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=embed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"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"}
|
package/dist/extensions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EACL,MAAM,EAEN,KAAK,QAAQ,EACb,KAAK,QAAQ,EAGd,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EACL,MAAM,EAEN,KAAK,QAAQ,EACb,KAAK,QAAQ,EAGd,MAAM,mBAAmB,CAAA;AAW1B,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IACnD,iCAAiC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IACnD,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAC1C;AAED,gFAAgF;AAChF,eAAO,MAAM,YAAY,sBAAsB,CAAA;AAmB/C;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,IAAI,CAe9E;AAED,wBAAgB,0BAA0B,IAAI,SAAS,eAAe,EAAE,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKzE;AAED,gDAAgD;AAChD,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AA8PD,wBAAgB,YAAY,CAAC,IAAI,GAAE,SAAS,eAAe,EAAO,GAAG,MAAM,CAyB1E;AAID;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAGnC"}
|
package/dist/extensions.js
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
*/
|
|
41
41
|
import OrderedMap from 'orderedmap';
|
|
42
42
|
import { Schema, } from 'prosemirror-model';
|
|
43
|
-
import { MODELLED_PROPERTIES, applyStyleAttribute, parseDeclarations, serializeDeclarations, } from './css.js';
|
|
43
|
+
import { MODELLED_PROPERTIES, applyStyleAttribute, indentLevels, parseDeclarations, serializeDeclarations, } from './css.js';
|
|
44
44
|
import { coreMarks, coreNodes } from './schema.js';
|
|
45
45
|
import { URL_ATTRIBUTES, isEventHandlerAttribute, isSafeUrl } from './url.js';
|
|
46
46
|
/** Where carried attributes live. Underscored: it is not for plugin authors. */
|
|
@@ -126,29 +126,36 @@ const CARRY_SCRUB = {
|
|
|
126
126
|
},
|
|
127
127
|
paragraph: scrubModelledStyle,
|
|
128
128
|
heading: scrubModelledStyle,
|
|
129
|
+
bullet_list: scrubModelledStyle,
|
|
130
|
+
ordered_list: scrubModelledStyle,
|
|
129
131
|
};
|
|
130
132
|
/**
|
|
131
133
|
* Drop the declarations a text block now models from its carried residue.
|
|
132
134
|
*
|
|
133
|
-
* `text-align` is the node's own `align` attribute
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* the same reason: it is where the value may have been read from, and it is not
|
|
138
|
-
* where it is written back.
|
|
135
|
+
* `text-align` is the node's own `align` attribute, line height and indent are
|
|
136
|
+
* modelled the same way, and colour and font are marks, so carrying any of them
|
|
137
|
+
* a second time emits both spellings of the same intent. The legacy `align`
|
|
138
|
+
* attribute goes for the same reason.
|
|
139
139
|
*
|
|
140
140
|
* Anything else in the attribute stays. A paragraph stored as
|
|
141
|
-
* `style="
|
|
142
|
-
* whole point of the carry mechanism.
|
|
141
|
+
* `style="letter-spacing:0.05em;text-align:left"` keeps its letter-spacing.
|
|
143
142
|
*/
|
|
144
143
|
function scrubModelledStyle(carried) {
|
|
145
144
|
delete carried['align'];
|
|
145
|
+
delete carried['type'];
|
|
146
146
|
const style = carried['style'];
|
|
147
147
|
if (style === undefined)
|
|
148
148
|
return;
|
|
149
149
|
const declarations = parseDeclarations(style);
|
|
150
150
|
for (const name of MODELLED_PROPERTIES)
|
|
151
151
|
declarations.delete(name);
|
|
152
|
+
// Indent aliases consumed into the `indent` attribute. Only dropped when they
|
|
153
|
+
// actually parsed as an indent; `padding-left:3px` is not one and must stay.
|
|
154
|
+
for (const name of ['padding-left', 'margin-left', 'margin-inline-start']) {
|
|
155
|
+
const value = declarations.get(name);
|
|
156
|
+
if (value !== undefined && indentLevels(value) !== null)
|
|
157
|
+
declarations.delete(name);
|
|
158
|
+
}
|
|
152
159
|
const rest = serializeDeclarations(declarations);
|
|
153
160
|
if (rest !== null)
|
|
154
161
|
carried['style'] = rest;
|
|
@@ -160,11 +167,11 @@ function scrubModelledStyle(carried) {
|
|
|
160
167
|
*
|
|
161
168
|
* Modelled attributes win, because the spec is the authority on the names it
|
|
162
169
|
* declared -- except for `style`, where winning wholesale is a content-loss bug.
|
|
163
|
-
* A paragraph whose stored style was `
|
|
164
|
-
*
|
|
165
|
-
* object spread replaces the residue's `style` with the
|
|
166
|
-
*
|
|
167
|
-
* so the modelled value overrides a stale copy of itself.
|
|
170
|
+
* A paragraph whose stored style was `letter-spacing:0.05em;text-align:left`
|
|
171
|
+
* has the letter-spacing in its residue and the alignment in its `align`
|
|
172
|
+
* attribute; a plain object spread replaces the residue's `style` with the
|
|
173
|
+
* spec's and the letter-spacing is gone. So `style` is merged one declaration
|
|
174
|
+
* at a time, residue first so the modelled value overrides a stale copy of itself.
|
|
168
175
|
*/
|
|
169
176
|
/**
|
|
170
177
|
* Merge carried residue onto an element a spec built for itself.
|
|
@@ -172,7 +179,7 @@ function scrubModelledStyle(carried) {
|
|
|
172
179
|
* The array path below cannot cover this case, and it is not hypothetical: a
|
|
173
180
|
* paragraph carrying CSS returns a real element from `toDOM` so that its `style`
|
|
174
181
|
* attribute is not rewritten by the CSSOM. That element has to be given the
|
|
175
|
-
* residue too, or modelling `text-align` would silently drop the `
|
|
182
|
+
* residue too, or modelling `text-align` would silently drop the `letter-spacing`
|
|
176
183
|
* next to it -- the exact loss the carry mechanism exists to prevent,
|
|
177
184
|
* reintroduced from a new direction.
|
|
178
185
|
*/
|
package/dist/extensions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EACL,MAAM,GAMP,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AA2B7E,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAA;AAE/C;;wEAEwE;AAExE,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAA;AACrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAA;AAEvC,SAAS,MAAM;IACb,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,QAAQ,EAAE,CAAA;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,KAAK,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAA0B;IAChE,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CACV,4CAA4C,SAAS,CAAC,EAAE,2BAA2B;YACjF,sCAAsC,CACzC,CAAA;QACD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;IACxB,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IACvC,MAAM,EAAE,CAAA;IACR,OAAO,GAAG,EAAE;QACV,2EAA2E;QAC3E,2EAA2E;QAC3E,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAAE,MAAM,EAAE,CAAA;IAC/C,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAoB;IAC3D,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACvB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,qBAAqB;IACnC,UAAU,CAAC,KAAK,EAAE,CAAA;IAClB,MAAM,EAAE,CAAA;AACV,CAAC;AAED;;wEAEwE;AAExE,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,GAA8D;IAC7E,UAAU,CAAC,OAAO;QAChB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAM;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACjF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;YACjD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IACD,SAAS,EAAE,kBAAkB;IAC7B,OAAO,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block formats: a class on the current text block, stored as carried residue.
|
|
3
|
+
*
|
|
4
|
+
* OpenLeaf does not invent a format vocabulary. The host page's content CSS
|
|
5
|
+
* already names the classes that survive publish (`lead`, `callout`, a CMS
|
|
6
|
+
* style pack). Applying one of those classes here is the same attribute the
|
|
7
|
+
* preservation layer already round-trips; the command exists so a dropdown can
|
|
8
|
+
* set it without the author editing HTML.
|
|
9
|
+
*/
|
|
10
|
+
import type { Node as PMNode } from 'prosemirror-model';
|
|
11
|
+
import type { Command, EditorState } from 'prosemirror-state';
|
|
12
|
+
export interface FormatSpec {
|
|
13
|
+
/** Selector-ish token: `p.lead`, `h2`, or `.note`. */
|
|
14
|
+
token: string;
|
|
15
|
+
/** Label shown in the formats control. */
|
|
16
|
+
label: string;
|
|
17
|
+
}
|
|
18
|
+
/** The element and the class a format token names. Either half may be absent. */
|
|
19
|
+
export interface FormatParts {
|
|
20
|
+
/** `p`, `h1`..`h6`, or null when the token names only a class. */
|
|
21
|
+
element: string | null;
|
|
22
|
+
/** Space-separated class names, or null when the token names only an element. */
|
|
23
|
+
className: string | null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Split a format token into the element it names and the class it names.
|
|
27
|
+
*
|
|
28
|
+
* `p.lead` is both, `h2` is an element alone, `.note` is a class alone. The
|
|
29
|
+
* element half was previously parsed and then thrown away, so `h2=Section` set
|
|
30
|
+
* `class="h2"` on whichever block held the caret instead of making it a heading,
|
|
31
|
+
* and `p.lead` applied its class to an h2 without turning it into a paragraph.
|
|
32
|
+
*
|
|
33
|
+
* A selector naming several classes -- `p.lead.wide` -- yields both, because
|
|
34
|
+
* that is what the selector means.
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatParts(token: string): FormatParts;
|
|
37
|
+
/** Parse `p.lead=Lead paragraph|h2=Section|.note=Note`. */
|
|
38
|
+
export declare function parseFormatList(value: string | null | undefined): FormatSpec[];
|
|
39
|
+
export declare function carriedClass(node: PMNode): string | null;
|
|
40
|
+
/** The class shared by every selected text block, or null if mixed or absent. */
|
|
41
|
+
export declare function activeBlockClass(state: EditorState): string | null;
|
|
42
|
+
/** Set or clear `class` on every text block in the selection. */
|
|
43
|
+
export declare function setBlockClass(className: string | null): Command;
|
|
44
|
+
//# sourceMappingURL=formats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG7D,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAA;CACd;AAED,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,iFAAiF;IACjF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CActD;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,EAAE,CAgB9E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIxD;AAaD,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAMlE;AAYD,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAa/D"}
|
package/dist/formats.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block formats: a class on the current text block, stored as carried residue.
|
|
3
|
+
*
|
|
4
|
+
* OpenLeaf does not invent a format vocabulary. The host page's content CSS
|
|
5
|
+
* already names the classes that survive publish (`lead`, `callout`, a CMS
|
|
6
|
+
* style pack). Applying one of those classes here is the same attribute the
|
|
7
|
+
* preservation layer already round-trips; the command exists so a dropdown can
|
|
8
|
+
* set it without the author editing HTML.
|
|
9
|
+
*/
|
|
10
|
+
import { CARRIED_ATTR } from './extensions.js';
|
|
11
|
+
/**
|
|
12
|
+
* Split a format token into the element it names and the class it names.
|
|
13
|
+
*
|
|
14
|
+
* `p.lead` is both, `h2` is an element alone, `.note` is a class alone. The
|
|
15
|
+
* element half was previously parsed and then thrown away, so `h2=Section` set
|
|
16
|
+
* `class="h2"` on whichever block held the caret instead of making it a heading,
|
|
17
|
+
* and `p.lead` applied its class to an h2 without turning it into a paragraph.
|
|
18
|
+
*
|
|
19
|
+
* A selector naming several classes -- `p.lead.wide` -- yields both, because
|
|
20
|
+
* that is what the selector means.
|
|
21
|
+
*/
|
|
22
|
+
export function formatParts(token) {
|
|
23
|
+
const trimmed = token.trim();
|
|
24
|
+
const dot = trimmed.indexOf('.');
|
|
25
|
+
if (dot === -1)
|
|
26
|
+
return { element: trimmed === '' ? null : trimmed, className: null };
|
|
27
|
+
const element = trimmed.slice(0, dot).trim();
|
|
28
|
+
const classes = trimmed
|
|
29
|
+
.slice(dot + 1)
|
|
30
|
+
.split('.')
|
|
31
|
+
.map((part) => part.trim())
|
|
32
|
+
.filter((part) => part !== '');
|
|
33
|
+
return {
|
|
34
|
+
element: element === '' ? null : element,
|
|
35
|
+
className: classes.length > 0 ? classes.join(' ') : null,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** Parse `p.lead=Lead paragraph|h2=Section|.note=Note`. */
|
|
39
|
+
export function parseFormatList(value) {
|
|
40
|
+
if (!value)
|
|
41
|
+
return [];
|
|
42
|
+
const out = [];
|
|
43
|
+
for (const part of value.split('|')) {
|
|
44
|
+
const trimmed = part.trim();
|
|
45
|
+
if (!trimmed)
|
|
46
|
+
continue;
|
|
47
|
+
const eq = trimmed.indexOf('=');
|
|
48
|
+
if (eq === -1) {
|
|
49
|
+
out.push({ token: trimmed, label: trimmed });
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const token = trimmed.slice(0, eq).trim();
|
|
53
|
+
const label = trimmed.slice(eq + 1).trim();
|
|
54
|
+
if (token)
|
|
55
|
+
out.push({ token, label: label || token });
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
export function carriedClass(node) {
|
|
60
|
+
const carried = node.attrs[CARRIED_ATTR];
|
|
61
|
+
const value = carried?.['class'];
|
|
62
|
+
return value && value.trim() !== '' ? value : null;
|
|
63
|
+
}
|
|
64
|
+
function textBlocks(state) {
|
|
65
|
+
const found = [];
|
|
66
|
+
const { from, to } = state.selection;
|
|
67
|
+
state.doc.nodesBetween(from, to, (node, pos) => {
|
|
68
|
+
if (!node.isTextblock)
|
|
69
|
+
return true;
|
|
70
|
+
found.push({ pos, node });
|
|
71
|
+
return false;
|
|
72
|
+
});
|
|
73
|
+
return found;
|
|
74
|
+
}
|
|
75
|
+
/** The class shared by every selected text block, or null if mixed or absent. */
|
|
76
|
+
export function activeBlockClass(state) {
|
|
77
|
+
const blocks = textBlocks(state);
|
|
78
|
+
const first = blocks[0];
|
|
79
|
+
if (!first)
|
|
80
|
+
return null;
|
|
81
|
+
const value = carriedClass(first.node);
|
|
82
|
+
return blocks.every((b) => carriedClass(b.node) === value) ? value : null;
|
|
83
|
+
}
|
|
84
|
+
function withClass(node, className) {
|
|
85
|
+
const carried = { ...(node.attrs[CARRIED_ATTR] ?? {}) };
|
|
86
|
+
if (className)
|
|
87
|
+
carried['class'] = className;
|
|
88
|
+
else
|
|
89
|
+
delete carried['class'];
|
|
90
|
+
return {
|
|
91
|
+
...node.attrs,
|
|
92
|
+
[CARRIED_ATTR]: Object.keys(carried).length > 0 ? carried : null,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/** Set or clear `class` on every text block in the selection. */
|
|
96
|
+
export function setBlockClass(className) {
|
|
97
|
+
return (state, dispatch) => {
|
|
98
|
+
const blocks = textBlocks(state);
|
|
99
|
+
if (blocks.length === 0)
|
|
100
|
+
return false;
|
|
101
|
+
if (dispatch) {
|
|
102
|
+
const tr = state.tr;
|
|
103
|
+
for (const { pos, node } of blocks) {
|
|
104
|
+
tr.setNodeMarkup(pos, undefined, withClass(node, className));
|
|
105
|
+
}
|
|
106
|
+
dispatch(tr.scrollIntoView());
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=formats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
export { baseSchema, coreMarks, coreNodes } from './schema.js';
|
|
2
|
-
export { ALIGNMENTS, COLOUR_PROPERTIES, MODELLED_PROPERTIES, isFullyModelledStyle, parseDeclarations, safeAlign, safeColor, serializeDeclarations, type Align, } from './css.js';
|
|
2
|
+
export { ALIGNMENTS, COLOUR_PROPERTIES, FONT_FAMILIES, FONT_SIZE_PRESETS, INDENT_EM, INLINE_STYLE_PROPERTIES, LINE_HEIGHT_PRESETS, LIST_STYLES, MAX_INDENT, MODELLED_PROPERTIES, indentCss, indentLevels, isFullyModelledStyle, modelledValue, parseDeclarations, safeAlign, safeColor, safeDir, safeFontFamily, safeFontSize, safeLang, safeLineHeight, safeListStyle, serializeDeclarations, type Align, type Dir, type ListStyle, } from './css.js';
|
|
3
3
|
export { parseHtml, serializeHtml, roundTrip, type HtmlIOOptions } from './html.js';
|
|
4
4
|
export { isLosslesslyUnwrappable, unknownBlock, unknownInline } from './preserve.js';
|
|
5
5
|
export { URL_ATTRIBUTES, isEventHandlerAttribute, isSafeUrl, safeUrlOrNull, } from './url.js';
|
|
6
|
-
export {
|
|
6
|
+
export { EMBED_HOSTS, isAllowedEmbedSrc, safeAllowList, safeEmbedSrc, type EmbedHostRule, } from './embed.js';
|
|
7
|
+
export { IMAGE_ALIGNMENTS, IMAGE_ALIGN_CLASS, IMAGE_ALIGN_CLASSES, imageAlignFromClass, safeClassList, safeId, type ImageAlign, } from './tokens.js';
|
|
8
|
+
export { activeBackgroundColor, activeDir, activeFontFamily, activeFontSize, activeHeadingLevel, activeIndent, activeLanguage, activeLineHeight, activeLink, activeListStyle, activeTextAlign, activeTextColor, canInsert, canRedo, canUndo, isMarkActive, isNodeActive, toggleBold, toggleInlineCode, toggleItalic, toggleStrike, toggleSubscript, toggleSuperscript, toggleUnderline, clearBackgroundColor, clearTextColor, setBackgroundColor, setTextColor, setFontFamily, setFontSize, setLanguage, clearFormatting, insertHorizontalRule, setDir, setHeading, setLineHeight, setParagraph, setTextAlign, toggleBlockquote, toggleCodeBlock, toggleDir, toggleHeading, toggleTextAlign, wrapInBlockquote, insertAudio, insertDetails, insertHtml, insertIframe, insertNamedAnchor, insertNonBreakingSpace, insertPageBreak, insertText, insertVideo, setHeadingId, indent, indentListItem, outdent, outdentListItem, setListStyle, splitListItemCommand, toggleBulletList, toggleOrderedList, insertImage, setLink, unsetLink, type ImageAttrs, type LinkAttrs, type MediaAttrs, redo, undo, } from './commands.js';
|
|
7
9
|
export { buildKeymap, shortcutFor, shortcuts, type Shortcut, } from './keymap.js';
|
|
10
|
+
export { autolinkPlugin, hrefFromTypedUrl } from './autolink.js';
|
|
11
|
+
export { visualAidsPlugin } from './visual-aids.js';
|
|
12
|
+
export { isNonEditableNode, nonEditablePlugin } from './noneditable.js';
|
|
13
|
+
export { activeBlockClass, carriedClass, formatParts, parseFormatList, setBlockClass, type FormatParts, type FormatSpec, } from './formats.js';
|
|
8
14
|
export { createRegisteredPlugins, onEditorPluginsChange, registerEditorPlugin, type EditorPluginFactory, } from './plugins.js';
|
|
9
|
-
export { table, table_cell, table_header, table_row } from './tables.js';
|
|
15
|
+
export { safeTableStyleValue, table, table_cell, table_header, table_row } from './tables.js';
|
|
10
16
|
export { CARRIED_ATTR, clearSchemaExtensions, coreSchema, createSchema, onSchemaExtensionsChange, registerSchemaExtension, registeredSchemaExtensions, type SchemaExtension, } from './extensions.js';
|
|
11
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
export { baseSchema, coreMarks, coreNodes } from './schema.js';
|
|
2
|
-
export { ALIGNMENTS, COLOUR_PROPERTIES, MODELLED_PROPERTIES, isFullyModelledStyle, parseDeclarations, safeAlign, safeColor, serializeDeclarations, } from './css.js';
|
|
2
|
+
export { ALIGNMENTS, COLOUR_PROPERTIES, FONT_FAMILIES, FONT_SIZE_PRESETS, INDENT_EM, INLINE_STYLE_PROPERTIES, LINE_HEIGHT_PRESETS, LIST_STYLES, MAX_INDENT, MODELLED_PROPERTIES, indentCss, indentLevels, isFullyModelledStyle, modelledValue, parseDeclarations, safeAlign, safeColor, safeDir, safeFontFamily, safeFontSize, safeLang, safeLineHeight, safeListStyle, serializeDeclarations, } from './css.js';
|
|
3
3
|
export { parseHtml, serializeHtml, roundTrip } from './html.js';
|
|
4
4
|
export { isLosslesslyUnwrappable, unknownBlock, unknownInline } from './preserve.js';
|
|
5
5
|
export { URL_ATTRIBUTES, isEventHandlerAttribute, isSafeUrl, safeUrlOrNull, } from './url.js';
|
|
6
|
+
export { EMBED_HOSTS, isAllowedEmbedSrc, safeAllowList, safeEmbedSrc, } from './embed.js';
|
|
7
|
+
export { IMAGE_ALIGNMENTS, IMAGE_ALIGN_CLASS, IMAGE_ALIGN_CLASSES, imageAlignFromClass, safeClassList, safeId, } from './tokens.js';
|
|
6
8
|
export {
|
|
7
9
|
// predicates
|
|
8
|
-
activeBackgroundColor, activeHeadingLevel, activeLink, activeTextAlign, activeTextColor, canInsert, canRedo, canUndo, isMarkActive, isNodeActive,
|
|
10
|
+
activeBackgroundColor, activeDir, activeFontFamily, activeFontSize, activeHeadingLevel, activeIndent, activeLanguage, activeLineHeight, activeLink, activeListStyle, activeTextAlign, activeTextColor, canInsert, canRedo, canUndo, isMarkActive, isNodeActive,
|
|
9
11
|
// marks
|
|
10
|
-
toggleBold, toggleInlineCode, toggleItalic, toggleStrike, toggleUnderline,
|
|
12
|
+
toggleBold, toggleInlineCode, toggleItalic, toggleStrike, toggleSubscript, toggleSuperscript, toggleUnderline,
|
|
11
13
|
// colour
|
|
12
14
|
clearBackgroundColor, clearTextColor, setBackgroundColor, setTextColor,
|
|
15
|
+
// typography
|
|
16
|
+
setFontFamily, setFontSize, setLanguage, clearFormatting,
|
|
13
17
|
// blocks
|
|
14
|
-
insertHorizontalRule, setHeading, setParagraph, setTextAlign, toggleBlockquote, toggleCodeBlock, toggleHeading, toggleTextAlign, wrapInBlockquote,
|
|
18
|
+
insertHorizontalRule, setDir, setHeading, setLineHeight, setParagraph, setTextAlign, toggleBlockquote, toggleCodeBlock, toggleDir, toggleHeading, toggleTextAlign, wrapInBlockquote, insertAudio, insertDetails, insertHtml, insertIframe, insertNamedAnchor, insertNonBreakingSpace, insertPageBreak, insertText, insertVideo, setHeadingId,
|
|
15
19
|
// lists
|
|
16
|
-
indentListItem, outdentListItem, splitListItemCommand, toggleBulletList, toggleOrderedList,
|
|
20
|
+
indent, indentListItem, outdent, outdentListItem, setListStyle, splitListItemCommand, toggleBulletList, toggleOrderedList,
|
|
17
21
|
// links and images
|
|
18
22
|
insertImage, setLink, unsetLink,
|
|
19
23
|
// history
|
|
20
24
|
redo, undo, } from './commands.js';
|
|
21
25
|
export { buildKeymap, shortcutFor, shortcuts, } from './keymap.js';
|
|
26
|
+
export { autolinkPlugin, hrefFromTypedUrl } from './autolink.js';
|
|
27
|
+
export { visualAidsPlugin } from './visual-aids.js';
|
|
28
|
+
export { isNonEditableNode, nonEditablePlugin } from './noneditable.js';
|
|
29
|
+
export { activeBlockClass, carriedClass, formatParts, parseFormatList, setBlockClass, } from './formats.js';
|
|
22
30
|
export { createRegisteredPlugins, onEditorPluginsChange, registerEditorPlugin, } from './plugins.js';
|
|
23
|
-
export { table, table_cell, table_header, table_row } from './tables.js';
|
|
31
|
+
export { safeTableStyleValue, table, table_cell, table_header, table_row } from './tables.js';
|
|
24
32
|
export { CARRIED_ATTR, clearSchemaExtensions, coreSchema, createSchema, onSchemaExtensionsChange, registerSchemaExtension, registeredSchemaExtensions, } from './extensions.js';
|
|
25
33
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/keymap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../src/keymap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../src/keymap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAuBhD,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,EA4C/B,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBzB;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAc,GAAG,MAAM,GAAG,IAAI,CAQ7E"}
|
package/dist/keymap.js
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import { baseKeymap, chainCommands, exitCode } from 'prosemirror-commands';
|
|
24
24
|
import { redo, undo } from 'prosemirror-history';
|
|
25
|
-
import {
|
|
25
|
+
import { indent, insertHorizontalRule, outdent, setParagraph, toggleTextAlign, splitListItemCommand, toggleBlockquote, toggleBold, toggleBulletList, toggleCodeBlock, toggleHeading, toggleInlineCode, toggleItalic, toggleOrderedList, toggleStrike, toggleSubscript, toggleSuperscript, toggleUnderline, clearFormatting, } from './commands.js';
|
|
26
26
|
/**
|
|
27
27
|
* The default shortcut table.
|
|
28
28
|
*
|
|
@@ -40,6 +40,9 @@ export const shortcuts = [
|
|
|
40
40
|
{ keys: 'Mod-u', command: toggleUnderline, label: 'Underline' },
|
|
41
41
|
{ keys: 'Mod-Shift-x', command: toggleStrike, label: 'Strikethrough' },
|
|
42
42
|
{ keys: 'Mod-e', command: toggleInlineCode, label: 'Inline code' },
|
|
43
|
+
{ keys: 'Mod-=', command: toggleSubscript, label: 'Subscript' },
|
|
44
|
+
{ keys: 'Mod-Shift-=', command: toggleSuperscript, label: 'Superscript' },
|
|
45
|
+
{ keys: 'Mod-\\', command: clearFormatting, label: 'Clear formatting' },
|
|
43
46
|
// Blocks. Mod-Alt-N for headings matches Google Docs.
|
|
44
47
|
{ keys: 'Mod-Alt-0', command: setParagraph, label: 'Paragraph' },
|
|
45
48
|
...[1, 2, 3, 4, 5, 6].map((level) => ({
|
|
@@ -62,8 +65,8 @@ export const shortcuts = [
|
|
|
62
65
|
// Lists. Mod-Shift-7/8 matches Word and Google Docs.
|
|
63
66
|
{ keys: 'Mod-Shift-7', command: toggleOrderedList, label: 'Numbered list' },
|
|
64
67
|
{ keys: 'Mod-Shift-8', command: toggleBulletList, label: 'Bulleted list' },
|
|
65
|
-
{ keys: 'Mod-]', command:
|
|
66
|
-
{ keys: 'Mod-[', command:
|
|
68
|
+
{ keys: 'Mod-]', command: indent, label: 'Indent' },
|
|
69
|
+
{ keys: 'Mod-[', command: outdent, label: 'Outdent' },
|
|
67
70
|
// History.
|
|
68
71
|
{ keys: 'Mod-z', command: undo, label: 'Undo' },
|
|
69
72
|
{ keys: 'Mod-Shift-z', command: redo, label: 'Redo' },
|
package/dist/keymap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../src/keymap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../src/keymap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Honour `contenteditable="false"` on stored markup.
|
|
3
|
+
*
|
|
4
|
+
* The attribute already round-trips as carried residue. Without this plugin the
|
|
5
|
+
* browser will often still let a caret in, and ProseMirror will then "correct"
|
|
6
|
+
* the typing on the next transaction -- which looks like the editor eating
|
|
7
|
+
* keystrokes. Filtering those transactions, and marking the node in the view,
|
|
8
|
+
* is what makes a locked region actually locked.
|
|
9
|
+
*/
|
|
10
|
+
import type { Node as PMNode } from 'prosemirror-model';
|
|
11
|
+
import { Plugin } from 'prosemirror-state';
|
|
12
|
+
export declare function isNonEditableNode(node: PMNode): boolean;
|
|
13
|
+
export declare function nonEditablePlugin(): Plugin;
|
|
14
|
+
//# sourceMappingURL=noneditable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noneditable.d.ts","sourceRoot":"","sources":["../src/noneditable.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAa,MAAM,mBAAmB,CAAA;AAMrD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIvD;AAoBD,wBAAgB,iBAAiB,IAAI,MAAM,CAmD1C"}
|