@openleaf-editor/core 0.1.0-beta.0 → 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.
Files changed (58) hide show
  1. package/dist/autolink.d.ts +12 -0
  2. package/dist/autolink.d.ts.map +1 -0
  3. package/dist/autolink.js +98 -0
  4. package/dist/autolink.js.map +1 -0
  5. package/dist/commands.d.ts +109 -1
  6. package/dist/commands.d.ts.map +1 -1
  7. package/dist/commands.js +639 -10
  8. package/dist/commands.js.map +1 -1
  9. package/dist/css.d.ts +176 -0
  10. package/dist/css.d.ts.map +1 -0
  11. package/dist/css.js +517 -0
  12. package/dist/css.js.map +1 -0
  13. package/dist/embed.d.ts +52 -0
  14. package/dist/embed.d.ts.map +1 -0
  15. package/dist/embed.js +116 -0
  16. package/dist/embed.js.map +1 -0
  17. package/dist/extensions.d.ts.map +1 -1
  18. package/dist/extensions.js +104 -4
  19. package/dist/extensions.js.map +1 -1
  20. package/dist/formats.d.ts +44 -0
  21. package/dist/formats.d.ts.map +1 -0
  22. package/dist/formats.js +111 -0
  23. package/dist/formats.js.map +1 -0
  24. package/dist/index.d.ts +9 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +16 -5
  27. package/dist/index.js.map +1 -1
  28. package/dist/keymap.d.ts.map +1 -1
  29. package/dist/keymap.js +15 -3
  30. package/dist/keymap.js.map +1 -1
  31. package/dist/noneditable.d.ts +14 -0
  32. package/dist/noneditable.d.ts.map +1 -0
  33. package/dist/noneditable.js +93 -0
  34. package/dist/noneditable.js.map +1 -0
  35. package/dist/preserve.d.ts +53 -0
  36. package/dist/preserve.d.ts.map +1 -1
  37. package/dist/preserve.js +133 -4
  38. package/dist/preserve.js.map +1 -1
  39. package/dist/schema.d.ts.map +1 -1
  40. package/dist/schema.js +331 -61
  41. package/dist/schema.js.map +1 -1
  42. package/dist/structure.d.ts +44 -0
  43. package/dist/structure.d.ts.map +1 -0
  44. package/dist/structure.js +379 -0
  45. package/dist/structure.js.map +1 -0
  46. package/dist/tables.d.ts +13 -0
  47. package/dist/tables.d.ts.map +1 -1
  48. package/dist/tables.js +224 -19
  49. package/dist/tables.js.map +1 -1
  50. package/dist/tokens.d.ts +28 -0
  51. package/dist/tokens.d.ts.map +1 -0
  52. package/dist/tokens.js +68 -0
  53. package/dist/tokens.js.map +1 -0
  54. package/dist/visual-aids.d.ts +10 -0
  55. package/dist/visual-aids.d.ts.map +1 -0
  56. package/dist/visual-aids.js +61 -0
  57. package/dist/visual-aids.js.map +1 -0
  58. 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":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AASpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAA6B;IACnD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE;IAC3C,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,YAAY,EAAE;IACpD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY,EAAE;IAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE;IAC/C,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAC5B,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE;IAClD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY,EAAE;IAChD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE;CAC/C,CAAA;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,eAAe;IACf,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,oBAAoB;IACpB,WAAW;CACZ,CAAC,CAAA;AAEF,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1B,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,iBAAiB,CAAC,KAAgC;IAChE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAChC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IACtB,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,YAAY,CAAC,KAAgC;IAC3D,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAgB,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgC;IAC5D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACtD,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAQ;QACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC"}
@@ -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;AAI1B,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;AAgKD,wBAAgB,YAAY,CAAC,IAAI,GAAE,SAAS,eAAe,EAAO,GAAG,MAAM,CAyB1E;AAID;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAGnC"}
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"}
@@ -40,6 +40,7 @@
40
40
  */
41
41
  import OrderedMap from 'orderedmap';
42
42
  import { Schema, } from 'prosemirror-model';
43
+ import { MODELLED_PROPERTIES, applyStyleAttribute, indentLevels, parseDeclarations, serializeDeclarations, } from './css.js';
43
44
  import { coreMarks, coreNodes } from './schema.js';
44
45
  import { URL_ATTRIBUTES, isEventHandlerAttribute, isSafeUrl } from './url.js';
45
46
  /** Where carried attributes live. Underscored: it is not for plugin authors. */
@@ -123,7 +124,100 @@ const CARRY_SCRUB = {
123
124
  else
124
125
  delete carried['class'];
125
126
  },
127
+ paragraph: scrubModelledStyle,
128
+ heading: scrubModelledStyle,
129
+ bullet_list: scrubModelledStyle,
130
+ ordered_list: scrubModelledStyle,
126
131
  };
132
+ /**
133
+ * Drop the declarations a text block now models from its carried residue.
134
+ *
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
+ *
140
+ * Anything else in the attribute stays. A paragraph stored as
141
+ * `style="letter-spacing:0.05em;text-align:left"` keeps its letter-spacing.
142
+ */
143
+ function scrubModelledStyle(carried) {
144
+ delete carried['align'];
145
+ delete carried['type'];
146
+ const style = carried['style'];
147
+ if (style === undefined)
148
+ return;
149
+ const declarations = parseDeclarations(style);
150
+ for (const name of MODELLED_PROPERTIES)
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
+ }
159
+ const rest = serializeDeclarations(declarations);
160
+ if (rest !== null)
161
+ carried['style'] = rest;
162
+ else
163
+ delete carried['style'];
164
+ }
165
+ /**
166
+ * Merge carried residue with the attributes a spec produced.
167
+ *
168
+ * Modelled attributes win, because the spec is the authority on the names it
169
+ * declared -- except for `style`, where winning wholesale is a content-loss bug.
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.
175
+ */
176
+ /**
177
+ * Merge carried residue onto an element a spec built for itself.
178
+ *
179
+ * The array path below cannot cover this case, and it is not hypothetical: a
180
+ * paragraph carrying CSS returns a real element from `toDOM` so that its `style`
181
+ * attribute is not rewritten by the CSSOM. That element has to be given the
182
+ * residue too, or modelling `text-align` would silently drop the `letter-spacing`
183
+ * next to it -- the exact loss the carry mechanism exists to prevent,
184
+ * reintroduced from a new direction.
185
+ */
186
+ function applyCarriedToElement(el, carried) {
187
+ for (const [name, value] of Object.entries(carried)) {
188
+ if (name === 'style') {
189
+ const declarations = parseDeclarations(value);
190
+ // Residue first, then what the spec wrote, so a modelled declaration wins
191
+ // over a stale copy of itself while everything else survives.
192
+ for (const [property, css] of parseDeclarations(el.getAttribute('style'))) {
193
+ declarations.set(property, css);
194
+ }
195
+ const style = serializeDeclarations(declarations);
196
+ if (style !== null)
197
+ applyStyleAttribute(el, style);
198
+ continue;
199
+ }
200
+ // A spec's own attributes win: it is the authority on the names it declared.
201
+ if (!el.hasAttribute(name))
202
+ el.setAttribute(name, value);
203
+ }
204
+ }
205
+ function mergeCarried(carried, modelled) {
206
+ const merged = { ...carried, ...modelled };
207
+ const before = carried['style'];
208
+ const after = modelled['style'];
209
+ if (typeof before === 'string' && typeof after === 'string') {
210
+ const declarations = parseDeclarations(before);
211
+ for (const [name, value] of parseDeclarations(after))
212
+ declarations.set(name, value);
213
+ const style = serializeDeclarations(declarations);
214
+ if (style !== null)
215
+ merged['style'] = style;
216
+ else
217
+ delete merged['style'];
218
+ }
219
+ return merged;
220
+ }
127
221
  /**
128
222
  * Wrap a node spec so attributes it does not model survive the round trip.
129
223
  *
@@ -170,13 +264,19 @@ function withCarriedAttributes(name, spec) {
170
264
  ? (node) => {
171
265
  const out = originalToDOM(node);
172
266
  const carried = node.attrs[CARRIED_ATTR];
173
- if (!carried || !Array.isArray(out))
267
+ if (!carried)
174
268
  return out;
269
+ if (!Array.isArray(out)) {
270
+ // `{ dom, contentDOM }`, or a bare node. Both are legal output specs and
271
+ // both mean the spec built its own element.
272
+ const dom = isPlainObject(out) ? out.dom : out;
273
+ if (dom instanceof Element)
274
+ applyCarriedToElement(dom, carried);
275
+ return out;
276
+ }
175
277
  const result = [...out];
176
278
  if (isPlainObject(result[1])) {
177
- // Modelled attributes win: an author's spec is the authority on the
178
- // names it declared.
179
- result[1] = { ...carried, ...result[1] };
279
+ result[1] = mergeCarried(carried, result[1]);
180
280
  }
181
281
  else {
182
282
  result.splice(1, 0, carried);
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
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"}
@@ -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,10 +1,17 @@
1
1
  export { baseSchema, coreMarks, coreNodes } from './schema.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';
2
3
  export { parseHtml, serializeHtml, roundTrip, type HtmlIOOptions } from './html.js';
3
4
  export { isLosslesslyUnwrappable, unknownBlock, unknownInline } from './preserve.js';
4
5
  export { URL_ATTRIBUTES, isEventHandlerAttribute, isSafeUrl, safeUrlOrNull, } from './url.js';
5
- export { activeHeadingLevel, activeLink, canInsert, canRedo, canUndo, isMarkActive, isNodeActive, toggleBold, toggleInlineCode, toggleItalic, toggleStrike, toggleUnderline, insertHorizontalRule, setHeading, setParagraph, toggleBlockquote, toggleCodeBlock, toggleHeading, wrapInBlockquote, indentListItem, outdentListItem, splitListItemCommand, toggleBulletList, toggleOrderedList, insertImage, setLink, unsetLink, type ImageAttrs, type LinkAttrs, redo, undo, } from './commands.js';
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';
6
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';
7
14
  export { createRegisteredPlugins, onEditorPluginsChange, registerEditorPlugin, type EditorPluginFactory, } from './plugins.js';
8
- export { table, table_cell, table_header, table_row } from './tables.js';
15
+ export { safeTableStyleValue, table, table_cell, table_header, table_row } from './tables.js';
9
16
  export { CARRIED_ATTR, clearSchemaExtensions, coreSchema, createSchema, onSchemaExtensionsChange, registerSchemaExtension, registeredSchemaExtensions, type SchemaExtension, } from './extensions.js';
10
17
  //# sourceMappingURL=index.d.ts.map
@@ -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,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACpF,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,SAAS,EACT,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAEL,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY,EAEZ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,eAAe,EAEf,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAEhB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACX,OAAO,EACP,SAAS,EACT,KAAK,UAAU,EACf,KAAK,SAAS,EAEd,IAAI,EACJ,IAAI,GACL,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,KAAK,QAAQ,GACd,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,22 +1,33 @@
1
1
  export { baseSchema, coreMarks, coreNodes } from './schema.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';
2
3
  export { parseHtml, serializeHtml, roundTrip } from './html.js';
3
4
  export { isLosslesslyUnwrappable, unknownBlock, unknownInline } from './preserve.js';
4
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';
5
8
  export {
6
9
  // predicates
7
- activeHeadingLevel, activeLink, canInsert, canRedo, canUndo, isMarkActive, isNodeActive,
10
+ activeBackgroundColor, activeDir, activeFontFamily, activeFontSize, activeHeadingLevel, activeIndent, activeLanguage, activeLineHeight, activeLink, activeListStyle, activeTextAlign, activeTextColor, canInsert, canRedo, canUndo, isMarkActive, isNodeActive,
8
11
  // marks
9
- toggleBold, toggleInlineCode, toggleItalic, toggleStrike, toggleUnderline,
12
+ toggleBold, toggleInlineCode, toggleItalic, toggleStrike, toggleSubscript, toggleSuperscript, toggleUnderline,
13
+ // colour
14
+ clearBackgroundColor, clearTextColor, setBackgroundColor, setTextColor,
15
+ // typography
16
+ setFontFamily, setFontSize, setLanguage, clearFormatting,
10
17
  // blocks
11
- insertHorizontalRule, setHeading, setParagraph, toggleBlockquote, toggleCodeBlock, toggleHeading, wrapInBlockquote,
18
+ insertHorizontalRule, setDir, setHeading, setLineHeight, setParagraph, setTextAlign, toggleBlockquote, toggleCodeBlock, toggleDir, toggleHeading, toggleTextAlign, wrapInBlockquote, insertAudio, insertDetails, insertHtml, insertIframe, insertNamedAnchor, insertNonBreakingSpace, insertPageBreak, insertText, insertVideo, setHeadingId,
12
19
  // lists
13
- indentListItem, outdentListItem, splitListItemCommand, toggleBulletList, toggleOrderedList,
20
+ indent, indentListItem, outdent, outdentListItem, setListStyle, splitListItemCommand, toggleBulletList, toggleOrderedList,
14
21
  // links and images
15
22
  insertImage, setLink, unsetLink,
16
23
  // history
17
24
  redo, undo, } from './commands.js';
18
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';
19
30
  export { createRegisteredPlugins, onEditorPluginsChange, registerEditorPlugin, } from './plugins.js';
20
- export { table, table_cell, table_header, table_row } from './tables.js';
31
+ export { safeTableStyleValue, table, table_cell, table_header, table_row } from './tables.js';
21
32
  export { CARRIED_ATTR, clearSchemaExtensions, coreSchema, createSchema, onSchemaExtensionsChange, registerSchemaExtension, registeredSchemaExtensions, } from './extensions.js';
22
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,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAsB,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACpF,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,SAAS,EACT,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,OAAO;AACL,aAAa;AACb,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY;AACZ,QAAQ;AACR,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,eAAe;AACf,SAAS;AACT,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB;AAChB,QAAQ;AACR,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB;AACjB,mBAAmB;AACnB,WAAW,EACX,OAAO,EACP,SAAS;AAGT,UAAU;AACV,IAAI,EACJ,IAAI,GACL,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,GAEV,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GAErB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,GAE3B,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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;AAmBhD,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,EA+B/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"}
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 { indentListItem, insertHorizontalRule, outdentListItem, setParagraph, splitListItemCommand, toggleBlockquote, toggleBold, toggleBulletList, toggleCodeBlock, toggleHeading, toggleInlineCode, toggleItalic, toggleOrderedList, toggleStrike, toggleUnderline, } from './commands.js';
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) => ({
@@ -50,11 +53,20 @@ export const shortcuts = [
50
53
  { keys: 'Mod-Shift-.', command: toggleBlockquote, label: 'Blockquote' },
51
54
  { keys: 'Mod-Alt-c', command: toggleCodeBlock, label: 'Code block' },
52
55
  { keys: 'Mod-Shift-Enter', command: insertHorizontalRule, label: 'Horizontal rule' },
56
+ // Alignment. Mod-Shift-L/E/R/J is Word and Google Docs, unchanged since the
57
+ // nineties, and it is one of the few shortcut families authors actually have
58
+ // in their fingers. There is deliberately no binding for "clear alignment":
59
+ // pressing the one already in force does that, which is what the same keys do
60
+ // in both of those editors.
61
+ { keys: 'Mod-Shift-l', command: toggleTextAlign('left'), label: 'Align left' },
62
+ { keys: 'Mod-Shift-e', command: toggleTextAlign('center'), label: 'Align centre' },
63
+ { keys: 'Mod-Shift-r', command: toggleTextAlign('right'), label: 'Align right' },
64
+ { keys: 'Mod-Shift-j', command: toggleTextAlign('justify'), label: 'Justify' },
53
65
  // Lists. Mod-Shift-7/8 matches Word and Google Docs.
54
66
  { keys: 'Mod-Shift-7', command: toggleOrderedList, label: 'Numbered list' },
55
67
  { keys: 'Mod-Shift-8', command: toggleBulletList, label: 'Bulleted list' },
56
- { keys: 'Mod-]', command: indentListItem, label: 'Indent list item' },
57
- { keys: 'Mod-[', command: outdentListItem, label: 'Outdent list item' },
68
+ { keys: 'Mod-]', command: indent, label: 'Indent' },
69
+ { keys: 'Mod-[', command: outdent, label: 'Outdent' },
58
70
  // History.
59
71
  { keys: 'Mod-z', command: undo, label: 'Undo' },
60
72
  { keys: 'Mod-Shift-z', command: redo, label: 'Redo' },
@@ -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,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,eAAe,CAAA;AAStB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,uEAAuE;IACvE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACrD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,6EAA6E;IAC7E,2EAA2E;IAC3E,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE;IAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE;IACtE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE;IAElE,sDAAsD;IACtD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;IAChE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,WAAW,KAAK,EAAE;QACxB,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC;QAC7B,KAAK,EAAE,WAAW,KAAK,EAAE;KAC1B,CAAC,CAAC;IACH,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE;IACvE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE;IACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAEpF,qDAAqD;IACrD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,EAAE;IAC3E,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;IAC1E,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACrE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,EAAE;IAEvE,WAAW;IACX,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/C,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IACrD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;CAChD,CAAA;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,SAAkC,EAAE;IAEpC,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAE5C,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;QAC1C,2EAA2E;QAC3E,wEAAwE;QACxE,gDAAgD;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACxE,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAY,CAAC,CAAA;IACvF,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CACrC,QAAQ,EACR,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAClB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC3C,IAAI,CAAC,EAAE;YAAE,OAAO,KAAK,CAAA;QACrB,IAAI,QAAQ;YAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAA;QACnF,OAAO,IAAI,CAAA;IACb,CAAC,CACF,CAAA;IAED,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAA;AACnC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS,EAAE;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,KAAK,CAAC,IAAI;SACd,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;SACrC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;SACpC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;SACxC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,KAAK,CAAA;IAClD,OAAO,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,CAAA;AAC/E,CAAC"}
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,MAAM,EACN,oBAAoB,EACpB,OAAO,EACP,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AAStB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,uEAAuE;IACvE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACrD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,6EAA6E;IAC7E,2EAA2E;IAC3E,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE;IAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE;IACtE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE;IAClE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE;IAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE;IACzE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE;IAEvE,sDAAsD;IACtD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;IAChE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,WAAW,KAAK,EAAE;QACxB,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC;QAC7B,KAAK,EAAE,WAAW,KAAK,EAAE;KAC1B,CAAC,CAAC;IACH,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE;IACvE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE;IACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAEpF,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,8EAA8E;IAC9E,4BAA4B;IAC5B,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;IAC9E,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE;IAClF,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE;IAChF,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;IAE9E,qDAAqD;IACrD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,EAAE;IAC3E,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;IAC1E,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;IACnD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;IAErD,WAAW;IACX,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/C,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IACrD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;CAChD,CAAA;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,SAAkC,EAAE;IAEpC,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAE5C,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;QAC1C,2EAA2E;QAC3E,wEAAwE;QACxE,gDAAgD;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACxE,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAY,CAAC,CAAA;IACvF,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CACrC,QAAQ,EACR,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAClB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC3C,IAAI,CAAC,EAAE;YAAE,OAAO,KAAK,CAAA;QACrB,IAAI,QAAQ;YAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAA;QACnF,OAAO,IAAI,CAAA;IACb,CAAC,CACF,CAAA;IAED,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAA;AACnC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS,EAAE;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,KAAK,CAAC,IAAI;SACd,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;SACrC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;SACpC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;SACxC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,KAAK,CAAA;IAClD,OAAO,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,CAAA;AAC/E,CAAC"}