@react-x11/components 0.8.0 → 0.9.0
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/README.md +95 -34
- package/dist/charts/node.d.ts +1 -1
- package/dist/charts/node.d.ts.map +1 -1
- package/dist/charts/node.js +6 -2
- package/dist/charts/node.js.map +1 -1
- package/dist/embed/client.d.ts +48 -3
- package/dist/embed/client.d.ts.map +1 -1
- package/dist/embed/client.js +79 -5
- package/dist/embed/client.js.map +1 -1
- package/dist/embed/index.d.ts +1 -1
- package/dist/embed/index.d.ts.map +1 -1
- package/dist/embed/index.js +1 -1
- package/dist/embed/index.js.map +1 -1
- package/dist/html/node.d.ts +3 -1
- package/dist/html/node.d.ts.map +1 -1
- package/dist/html/node.js +7 -5
- package/dist/html/node.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{markdown → internal/markdown}/ast.d.ts +12 -0
- package/dist/internal/markdown/ast.d.ts.map +1 -0
- package/dist/internal/markdown/ast.js +22 -0
- package/dist/internal/markdown/ast.js.map +1 -0
- package/dist/internal/markdown/parse.d.ts.map +1 -0
- package/dist/{markdown → internal/markdown}/parse.js +112 -22
- package/dist/internal/markdown/parse.js.map +1 -0
- package/dist/internal/markdown/stringify.d.ts +4 -0
- package/dist/internal/markdown/stringify.d.ts.map +1 -0
- package/dist/internal/markdown/stringify.js +684 -0
- package/dist/internal/markdown/stringify.js.map +1 -0
- package/dist/internal/markdown/tags.d.ts.map +1 -0
- package/dist/internal/markdown/tags.js.map +1 -0
- package/dist/internal/scroll.d.ts +3 -2
- package/dist/internal/scroll.d.ts.map +1 -1
- package/dist/internal/scroll.js +1 -0
- package/dist/internal/scroll.js.map +1 -1
- package/dist/maps/anchors.d.ts +98 -0
- package/dist/maps/anchors.d.ts.map +1 -0
- package/dist/maps/anchors.js +531 -0
- package/dist/maps/anchors.js.map +1 -0
- package/dist/maps/controller.d.ts +283 -0
- package/dist/maps/controller.d.ts.map +1 -0
- package/dist/maps/controller.js +743 -0
- package/dist/maps/controller.js.map +1 -0
- package/dist/maps/gl/buckets.d.ts +95 -0
- package/dist/maps/gl/buckets.d.ts.map +1 -0
- package/dist/maps/gl/buckets.js +362 -0
- package/dist/maps/gl/buckets.js.map +1 -0
- package/dist/maps/gl/build-worker.d.ts +13 -0
- package/dist/maps/gl/build-worker.d.ts.map +1 -0
- package/dist/maps/gl/build-worker.js +44 -0
- package/dist/maps/gl/build-worker.js.map +1 -0
- package/dist/maps/gl/color.d.ts +8 -0
- package/dist/maps/gl/color.d.ts.map +1 -0
- package/dist/maps/gl/color.js +57 -0
- package/dist/maps/gl/color.js.map +1 -0
- package/dist/maps/gl/cover.d.ts +51 -0
- package/dist/maps/gl/cover.d.ts.map +1 -0
- package/dist/maps/gl/cover.js +124 -0
- package/dist/maps/gl/cover.js.map +1 -0
- package/dist/maps/gl/index.d.ts +3 -0
- package/dist/maps/gl/index.d.ts.map +1 -0
- package/dist/maps/gl/index.js +20 -0
- package/dist/maps/gl/index.js.map +1 -0
- package/dist/maps/gl/markers.d.ts +28 -0
- package/dist/maps/gl/markers.d.ts.map +1 -0
- package/dist/maps/gl/markers.js +60 -0
- package/dist/maps/gl/markers.js.map +1 -0
- package/dist/maps/gl/overlays.d.ts +68 -0
- package/dist/maps/gl/overlays.d.ts.map +1 -0
- package/dist/maps/gl/overlays.js +300 -0
- package/dist/maps/gl/overlays.js.map +1 -0
- package/dist/maps/gl/pane.d.ts +12 -0
- package/dist/maps/gl/pane.d.ts.map +1 -0
- package/dist/maps/gl/pane.js +37 -0
- package/dist/maps/gl/pane.js.map +1 -0
- package/dist/maps/gl/placement.d.ts +111 -0
- package/dist/maps/gl/placement.d.ts.map +1 -0
- package/dist/maps/gl/placement.js +567 -0
- package/dist/maps/gl/placement.js.map +1 -0
- package/dist/maps/gl/renderer.d.ts +352 -0
- package/dist/maps/gl/renderer.d.ts.map +1 -0
- package/dist/maps/gl/renderer.js +1127 -0
- package/dist/maps/gl/renderer.js.map +1 -0
- package/dist/maps/gl/shaders.d.ts +120 -0
- package/dist/maps/gl/shaders.d.ts.map +1 -0
- package/dist/maps/gl/shaders.js +451 -0
- package/dist/maps/gl/shaders.js.map +1 -0
- package/dist/maps/gl/store.d.ts +115 -0
- package/dist/maps/gl/store.d.ts.map +1 -0
- package/dist/maps/gl/store.js +469 -0
- package/dist/maps/gl/store.js.map +1 -0
- package/dist/maps/gl/text.d.ts +154 -0
- package/dist/maps/gl/text.d.ts.map +1 -0
- package/dist/maps/gl/text.js +382 -0
- package/dist/maps/gl/text.js.map +1 -0
- package/dist/maps/gl/view.d.ts +54 -0
- package/dist/maps/gl/view.d.ts.map +1 -0
- package/dist/maps/gl/view.js +974 -0
- package/dist/maps/gl/view.js.map +1 -0
- package/dist/maps/index.d.ts +1 -1
- package/dist/maps/index.d.ts.map +1 -1
- package/dist/maps/index.js +216 -52
- package/dist/maps/index.js.map +1 -1
- package/dist/maps/labels.d.ts +37 -16
- package/dist/maps/labels.d.ts.map +1 -1
- package/dist/maps/labels.js +188 -119
- package/dist/maps/labels.js.map +1 -1
- package/dist/maps/node.d.ts +162 -56
- package/dist/maps/node.d.ts.map +1 -1
- package/dist/maps/node.js +607 -515
- package/dist/maps/node.js.map +1 -1
- package/dist/maps/overlay.d.ts +72 -9
- package/dist/maps/overlay.d.ts.map +1 -1
- package/dist/maps/overlay.js +108 -28
- package/dist/maps/overlay.js.map +1 -1
- package/dist/maps/paint.d.ts +3 -0
- package/dist/maps/paint.d.ts.map +1 -1
- package/dist/maps/paint.js.map +1 -1
- package/dist/maps/proj.d.ts +14 -0
- package/dist/maps/proj.d.ts.map +1 -1
- package/dist/maps/proj.js +28 -0
- package/dist/maps/proj.js.map +1 -1
- package/dist/maps/renderer.d.ts +69 -0
- package/dist/maps/renderer.d.ts.map +1 -0
- package/dist/maps/renderer.js +66 -0
- package/dist/maps/renderer.js.map +1 -0
- package/dist/maps/sources.d.ts +25 -3
- package/dist/maps/sources.d.ts.map +1 -1
- package/dist/maps/sources.js +17 -0
- package/dist/maps/sources.js.map +1 -1
- package/dist/maps/theme.d.ts +19 -0
- package/dist/maps/theme.d.ts.map +1 -0
- package/dist/maps/theme.js +44 -0
- package/dist/maps/theme.js.map +1 -0
- package/dist/maps/tiles.d.ts +117 -17
- package/dist/maps/tiles.d.ts.map +1 -1
- package/dist/maps/tiles.js +163 -30
- package/dist/maps/tiles.js.map +1 -1
- package/dist/maps/types.d.ts +188 -20
- package/dist/maps/types.d.ts.map +1 -1
- package/dist/markdown/expressions.d.ts +1 -1
- package/dist/markdown/expressions.d.ts.map +1 -1
- package/dist/markdown/expressions.js.map +1 -1
- package/dist/markdown/index.d.ts +7 -6
- package/dist/markdown/index.d.ts.map +1 -1
- package/dist/markdown/index.js +9 -7
- package/dist/markdown/index.js.map +1 -1
- package/dist/markdown/spans.d.ts +1 -1
- package/dist/markdown/spans.d.ts.map +1 -1
- package/dist/media-player/index.d.ts +11 -3
- package/dist/media-player/index.d.ts.map +1 -1
- package/dist/media-player/index.js +13 -2
- package/dist/media-player/index.js.map +1 -1
- package/dist/rich-text-editor/clipboard.d.ts +23 -0
- package/dist/rich-text-editor/clipboard.d.ts.map +1 -0
- package/dist/rich-text-editor/clipboard.js +307 -0
- package/dist/rich-text-editor/clipboard.js.map +1 -0
- package/dist/rich-text-editor/collab.d.ts +32 -0
- package/dist/rich-text-editor/collab.d.ts.map +1 -0
- package/dist/rich-text-editor/collab.js +55 -0
- package/dist/rich-text-editor/collab.js.map +1 -0
- package/dist/rich-text-editor/commands.d.ts +50 -0
- package/dist/rich-text-editor/commands.d.ts.map +1 -0
- package/dist/rich-text-editor/commands.js +376 -0
- package/dist/rich-text-editor/commands.js.map +1 -0
- package/dist/rich-text-editor/drag.d.ts +68 -0
- package/dist/rich-text-editor/drag.d.ts.map +1 -0
- package/dist/rich-text-editor/drag.js +148 -0
- package/dist/rich-text-editor/drag.js.map +1 -0
- package/dist/rich-text-editor/html.d.ts +145 -0
- package/dist/rich-text-editor/html.d.ts.map +1 -0
- package/dist/rich-text-editor/html.js +516 -0
- package/dist/rich-text-editor/html.js.map +1 -0
- package/dist/rich-text-editor/index.d.ts +263 -0
- package/dist/rich-text-editor/index.d.ts.map +1 -0
- package/dist/rich-text-editor/index.js +822 -0
- package/dist/rich-text-editor/index.js.map +1 -0
- package/dist/rich-text-editor/inline.d.ts +94 -0
- package/dist/rich-text-editor/inline.d.ts.map +1 -0
- package/dist/rich-text-editor/inline.js +252 -0
- package/dist/rich-text-editor/inline.js.map +1 -0
- package/dist/rich-text-editor/keymap.d.ts +71 -0
- package/dist/rich-text-editor/keymap.d.ts.map +1 -0
- package/dist/rich-text-editor/keymap.js +393 -0
- package/dist/rich-text-editor/keymap.js.map +1 -0
- package/dist/rich-text-editor/keys.d.ts +29 -0
- package/dist/rich-text-editor/keys.d.ts.map +1 -0
- package/dist/rich-text-editor/keys.js +93 -0
- package/dist/rich-text-editor/keys.js.map +1 -0
- package/dist/rich-text-editor/look.d.ts +71 -0
- package/dist/rich-text-editor/look.d.ts.map +1 -0
- package/dist/rich-text-editor/look.js +342 -0
- package/dist/rich-text-editor/look.js.map +1 -0
- package/dist/rich-text-editor/markdown.d.ts +18 -0
- package/dist/rich-text-editor/markdown.d.ts.map +1 -0
- package/dist/rich-text-editor/markdown.js +496 -0
- package/dist/rich-text-editor/markdown.js.map +1 -0
- package/dist/rich-text-editor/nodes.d.ts +135 -0
- package/dist/rich-text-editor/nodes.d.ts.map +1 -0
- package/dist/rich-text-editor/nodes.js +397 -0
- package/dist/rich-text-editor/nodes.js.map +1 -0
- package/dist/rich-text-editor/render.d.ts +68 -0
- package/dist/rich-text-editor/render.d.ts.map +1 -0
- package/dist/rich-text-editor/render.js +500 -0
- package/dist/rich-text-editor/render.js.map +1 -0
- package/dist/rich-text-editor/schema.d.ts +16 -0
- package/dist/rich-text-editor/schema.d.ts.map +1 -0
- package/dist/rich-text-editor/schema.js +386 -0
- package/dist/rich-text-editor/schema.js.map +1 -0
- package/dist/rich-text-editor/store.d.ts +11 -0
- package/dist/rich-text-editor/store.d.ts.map +1 -0
- package/dist/rich-text-editor/store.js +43 -0
- package/dist/rich-text-editor/store.js.map +1 -0
- package/dist/rich-text-editor/suggest.d.ts +127 -0
- package/dist/rich-text-editor/suggest.d.ts.map +1 -0
- package/dist/rich-text-editor/suggest.js +0 -0
- package/dist/rich-text-editor/suggest.js.map +1 -0
- package/dist/rich-text-editor/tables.d.ts +41 -0
- package/dist/rich-text-editor/tables.d.ts.map +1 -0
- package/dist/rich-text-editor/tables.js +204 -0
- package/dist/rich-text-editor/tables.js.map +1 -0
- package/dist/rich-text-editor/toolbar.d.ts +58 -0
- package/dist/rich-text-editor/toolbar.d.ts.map +1 -0
- package/dist/rich-text-editor/toolbar.js +548 -0
- package/dist/rich-text-editor/toolbar.js.map +1 -0
- package/dist/rich-text-editor/view.d.ts +368 -0
- package/dist/rich-text-editor/view.d.ts.map +1 -0
- package/dist/rich-text-editor/view.js +1968 -0
- package/dist/rich-text-editor/view.js.map +1 -0
- package/dist/rich-text-editor/virtual.d.ts +54 -0
- package/dist/rich-text-editor/virtual.d.ts.map +1 -0
- package/dist/rich-text-editor/virtual.js +262 -0
- package/dist/rich-text-editor/virtual.js.map +1 -0
- package/dist/richtext/node.d.ts +25 -2
- package/dist/richtext/node.d.ts.map +1 -1
- package/dist/richtext/node.js +46 -24
- package/dist/richtext/node.js.map +1 -1
- package/dist/terminal/backends.d.ts +4 -1
- package/dist/terminal/backends.d.ts.map +1 -1
- package/dist/terminal/backends.js.map +1 -1
- package/dist/terminal/index.d.ts +18 -7
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +28 -11
- package/dist/terminal/index.js.map +1 -1
- package/package.json +23 -4
- package/src/charts/node.ts +6 -2
- package/src/embed/client.ts +102 -8
- package/src/embed/index.ts +2 -0
- package/src/html/node.ts +7 -5
- package/src/index.ts +2 -0
- package/src/{markdown → internal/markdown}/ast.ts +24 -7
- package/src/{markdown → internal/markdown}/parse.ts +134 -24
- package/src/internal/markdown/stringify.ts +772 -0
- package/src/internal/scroll.ts +5 -3
- package/src/maps/anchors.ts +607 -0
- package/src/maps/controller.ts +999 -0
- package/src/maps/gl/buckets.ts +457 -0
- package/src/maps/gl/build-worker.ts +55 -0
- package/src/maps/gl/color.ts +62 -0
- package/src/maps/gl/cover.ts +170 -0
- package/src/maps/gl/index.ts +23 -0
- package/src/maps/gl/markers.ts +83 -0
- package/src/maps/gl/overlays.ts +379 -0
- package/src/maps/gl/pane.ts +42 -0
- package/src/maps/gl/placement.ts +816 -0
- package/src/maps/gl/renderer.ts +1576 -0
- package/src/maps/gl/shaders.ts +486 -0
- package/src/maps/gl/store.ts +566 -0
- package/src/maps/gl/text.ts +495 -0
- package/src/maps/gl/view.ts +1224 -0
- package/src/maps/index.ts +270 -81
- package/src/maps/labels.ts +214 -121
- package/src/maps/node.ts +763 -629
- package/src/maps/overlay.ts +148 -43
- package/src/maps/paint.ts +3 -0
- package/src/maps/proj.ts +31 -0
- package/src/maps/renderer.ts +155 -0
- package/src/maps/sources.ts +38 -3
- package/src/maps/theme.ts +51 -0
- package/src/maps/tiles.ts +191 -33
- package/src/maps/types.ts +188 -20
- package/src/markdown/expressions.ts +5 -1
- package/src/markdown/index.ts +14 -11
- package/src/markdown/spans.ts +1 -1
- package/src/media-player/index.ts +18 -4
- package/src/rich-text-editor/clipboard.ts +439 -0
- package/src/rich-text-editor/collab.ts +91 -0
- package/src/rich-text-editor/commands.ts +448 -0
- package/src/rich-text-editor/dom-globals.d.ts +23 -0
- package/src/rich-text-editor/drag.ts +211 -0
- package/src/rich-text-editor/html.ts +619 -0
- package/src/rich-text-editor/index.ts +1331 -0
- package/src/rich-text-editor/inline.ts +345 -0
- package/src/rich-text-editor/keymap.ts +510 -0
- package/src/rich-text-editor/keys.ts +119 -0
- package/src/rich-text-editor/look.ts +427 -0
- package/src/rich-text-editor/markdown.ts +653 -0
- package/src/rich-text-editor/nodes.ts +497 -0
- package/src/rich-text-editor/render.ts +800 -0
- package/src/rich-text-editor/schema.ts +431 -0
- package/src/rich-text-editor/store.ts +39 -0
- package/src/rich-text-editor/suggest.ts +597 -0
- package/src/rich-text-editor/tables.ts +272 -0
- package/src/rich-text-editor/toolbar.ts +724 -0
- package/src/rich-text-editor/view.ts +2287 -0
- package/src/rich-text-editor/virtual.ts +347 -0
- package/src/richtext/node.ts +59 -30
- package/src/terminal/backends.ts +4 -1
- package/src/terminal/index.ts +43 -15
- package/dist/markdown/ast.d.ts.map +0 -1
- package/dist/markdown/ast.js +0 -17
- package/dist/markdown/ast.js.map +0 -1
- package/dist/markdown/parse.d.ts.map +0 -1
- package/dist/markdown/parse.js.map +0 -1
- package/dist/markdown/tags.d.ts.map +0 -1
- package/dist/markdown/tags.js.map +0 -1
- /package/dist/{markdown → internal/markdown}/parse.d.ts +0 -0
- /package/dist/{markdown → internal/markdown}/tags.d.ts +0 -0
- /package/dist/{markdown → internal/markdown}/tags.js +0 -0
- /package/src/{markdown → internal/markdown}/tags.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media-player/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,oEAAoE;AACpE,0EAA0E;AAC1E,4BAA4B;AAC5B,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,wEAAwE;AACxE,0EAA0E;AAC1E,mDAAmD;AACnD,EAAE;AACF,2EAA2E;AAC3E,eAAe;AACf,EAAE;AACF,eAAe;AACf,EAAE;AACF,qEAAqE;AACrE,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,yEAAyE;AACzE,+DAA+D;AAC/D,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media-player/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Slice } from 'prosemirror-model';
|
|
2
|
+
import type { ResolvedPos } from 'prosemirror-model';
|
|
3
|
+
import type { EditorProps, EditorView } from 'prosemirror-view';
|
|
4
|
+
import type { EditorState } from 'prosemirror-state';
|
|
5
|
+
/** What the clipboard code needs of the view — `someProp` over the props a
|
|
6
|
+
* plugin can supply, and the state. */
|
|
7
|
+
export interface ClipboardView {
|
|
8
|
+
readonly state: EditorState;
|
|
9
|
+
someProp<K extends keyof EditorProps, R>(name: K, f: (value: NonNullable<EditorProps[K]>) => R): R | undefined;
|
|
10
|
+
/** The view as a plugin's callback is handed it. */
|
|
11
|
+
readonly asEditorView: EditorView;
|
|
12
|
+
}
|
|
13
|
+
/** What a copy puts on the clipboard. */
|
|
14
|
+
export interface ClipboardContent {
|
|
15
|
+
html: string;
|
|
16
|
+
text: string;
|
|
17
|
+
slice: Slice;
|
|
18
|
+
}
|
|
19
|
+
export declare function serializeForClipboard(view: ClipboardView, slice: Slice): ClipboardContent;
|
|
20
|
+
/** A paste — or a drop — read into a slice. `plainText` is a paste that
|
|
21
|
+
* asked for no formatting (Shift held). */
|
|
22
|
+
export declare function parseFromClipboard(view: ClipboardView, text: string | null, html: string | null, plainText: boolean, $context: ResolvedPos): Slice | null;
|
|
23
|
+
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/rich-text-editor/clipboard.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAsC,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EAIV,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;wCACwC;AACxC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,CAAC,EACrC,IAAI,EAAE,CAAC,EACP,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAC3C,CAAC,GAAG,SAAS,CAAC;IACjB,oDAAoD;IACpD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;CACnC;AAED,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CACd;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,KAAK,GACX,gBAAgB,CA+BlB;AAKD;4CAC4C;AAC5C,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,WAAW,GACpB,KAAK,GAAG,IAAI,CAwId"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
// Copy and paste, in the formats every other application speaks.
|
|
2
|
+
//
|
|
3
|
+
// A copy offers three things: `text/html` (the schema's `toDOM`, with
|
|
4
|
+
// ProseMirror's `data-pm-slice` marker so the open sides survive), plain text
|
|
5
|
+
// (the `clipboardTextSerializer` prop, or blocks a blank line apart — the
|
|
6
|
+
// markdown editor's default hands markdown here), and, in this process only,
|
|
7
|
+
// the slice itself. The last is not an optimisation: react-x11's Cocoa
|
|
8
|
+
// clipboard carries one flavour, text (react-x11 docs/clipboard.md,
|
|
9
|
+
// "Limits"), so without it a copy and paste inside one editor would flatten
|
|
10
|
+
// every heading and list on a Mac. A paste whose text is exactly what this
|
|
11
|
+
// process last put there takes the slice back instead of re-reading it.
|
|
12
|
+
//
|
|
13
|
+
// Reading is prosemirror-view's `parseFromClipboard`, ported: the same
|
|
14
|
+
// props, in the same order, over the DOM shim in `./html.ts` instead of a
|
|
15
|
+
// browser's — so a paste from a web page is read by the schema's own
|
|
16
|
+
// `parseDOM` rules, and a plugin's `transformPasted` sees what it would see
|
|
17
|
+
// in a browser. The helpers below `parseFromClipboard` are prosemirror-view's
|
|
18
|
+
// own (MIT), which does not export them; they are pure functions over the
|
|
19
|
+
// model and came across unchanged.
|
|
20
|
+
import { DOMParser, DOMSerializer, Fragment, Slice } from 'prosemirror-model';
|
|
21
|
+
import { clipboardHTML, readHTML, sliceFromElement } from './html.js';
|
|
22
|
+
export function serializeForClipboard(view, slice) {
|
|
23
|
+
view.someProp('transformCopied', (f) => {
|
|
24
|
+
slice = f(slice, view.asEditorView);
|
|
25
|
+
});
|
|
26
|
+
const context = [];
|
|
27
|
+
let { content, openStart, openEnd } = slice;
|
|
28
|
+
while (openStart > 1 &&
|
|
29
|
+
openEnd > 1 &&
|
|
30
|
+
content.childCount === 1 &&
|
|
31
|
+
content.firstChild.childCount === 1) {
|
|
32
|
+
openStart--;
|
|
33
|
+
openEnd--;
|
|
34
|
+
const node = content.firstChild;
|
|
35
|
+
// a node made with no attributes shares its type's default object —
|
|
36
|
+
// ProseMirror's own test, through a member its declarations leave out
|
|
37
|
+
const defaults = node.type
|
|
38
|
+
.defaultAttrs;
|
|
39
|
+
context.push(node.type.name, node.attrs !== defaults ? node.attrs : null);
|
|
40
|
+
content = node.content;
|
|
41
|
+
}
|
|
42
|
+
const serializer = view.someProp('clipboardSerializer', (s) => s) ??
|
|
43
|
+
DOMSerializer.fromSchema(view.state.schema);
|
|
44
|
+
const html = clipboardHTML(serializer, content, openStart, openEnd, context);
|
|
45
|
+
const text = view.someProp('clipboardTextSerializer', (f) => f(slice, view.asEditorView)) || slice.content.textBetween(0, slice.content.size, '\n\n');
|
|
46
|
+
return { html, text, slice };
|
|
47
|
+
}
|
|
48
|
+
const INLINE_PARENTS = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;
|
|
49
|
+
/** A paste — or a drop — read into a slice. `plainText` is a paste that
|
|
50
|
+
* asked for no formatting (Shift held). */
|
|
51
|
+
export function parseFromClipboard(view, text, html, plainText, $context) {
|
|
52
|
+
const { schema } = view.state;
|
|
53
|
+
const inCode = !!$context.parent.type.spec.code;
|
|
54
|
+
let dom = null;
|
|
55
|
+
let slice = null;
|
|
56
|
+
if (!html && !text)
|
|
57
|
+
return null;
|
|
58
|
+
const asText = !!text && (plainText || inCode || !html);
|
|
59
|
+
if (asText) {
|
|
60
|
+
let pasted = text;
|
|
61
|
+
view.someProp('transformPastedText', (f) => {
|
|
62
|
+
pasted = f(pasted, inCode || plainText, view.asEditorView);
|
|
63
|
+
});
|
|
64
|
+
if (inCode) {
|
|
65
|
+
let codeSlice = pasted
|
|
66
|
+
? new Slice(Fragment.from(schema.text(pasted.replace(/\r\n?/g, '\n'))), 0, 0)
|
|
67
|
+
: Slice.empty;
|
|
68
|
+
view.someProp('transformPasted', (f) => {
|
|
69
|
+
codeSlice = f(codeSlice, view.asEditorView, true);
|
|
70
|
+
});
|
|
71
|
+
return codeSlice;
|
|
72
|
+
}
|
|
73
|
+
const parsed = view.someProp('clipboardTextParser', (f) => f(pasted, $context, plainText, view.asEditorView));
|
|
74
|
+
if (parsed) {
|
|
75
|
+
slice = parsed;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// One paragraph per line, carrying the marks at the caret — what
|
|
79
|
+
// ProseMirror builds as `<p>`s and parses, built directly.
|
|
80
|
+
const marks = $context.marks();
|
|
81
|
+
const paragraph = defaultTextblock($context);
|
|
82
|
+
if (paragraph) {
|
|
83
|
+
const blocks = pasted
|
|
84
|
+
.split(/(?:\r\n?|\n)+/)
|
|
85
|
+
.map((line) => paragraph.create(null, line ? schema.text(line, marks) : null));
|
|
86
|
+
slice = Slice.maxOpen(Fragment.from(blocks));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
slice = new Slice(Fragment.from(schema.text(pasted, marks)), 0, 0);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
let source = html;
|
|
95
|
+
view.someProp('transformPastedHTML', (f) => {
|
|
96
|
+
source = f(source, view.asEditorView);
|
|
97
|
+
});
|
|
98
|
+
dom = readHTML(source);
|
|
99
|
+
}
|
|
100
|
+
const contextNode = dom
|
|
101
|
+
? dom.matches('[data-pm-slice]')
|
|
102
|
+
? dom
|
|
103
|
+
: dom.querySelector('[data-pm-slice]')
|
|
104
|
+
: null;
|
|
105
|
+
const sliceData = contextNode &&
|
|
106
|
+
/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(contextNode.getAttribute('data-pm-slice') || '');
|
|
107
|
+
if (dom && sliceData && sliceData[3]) {
|
|
108
|
+
for (let i = +sliceData[3]; i > 0; i--) {
|
|
109
|
+
let child = dom.firstChild;
|
|
110
|
+
while (child && child.nodeType !== 1)
|
|
111
|
+
child = child.nextSibling;
|
|
112
|
+
if (!child)
|
|
113
|
+
break;
|
|
114
|
+
dom = child;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (!slice && dom) {
|
|
118
|
+
const parser = view.someProp('clipboardParser', (p) => p) ??
|
|
119
|
+
view.someProp('domParser', (p) => p) ??
|
|
120
|
+
DOMParser.fromSchema(schema);
|
|
121
|
+
// `ruleFromNode` is a parse option prosemirror-view passes and
|
|
122
|
+
// prosemirror-model's declarations leave out: a trailing `<br>` in a
|
|
123
|
+
// block is the browser's placeholder, not a line break
|
|
124
|
+
const options = {
|
|
125
|
+
preserveWhitespace: !!(asText || sliceData),
|
|
126
|
+
context: $context,
|
|
127
|
+
ruleFromNode(node) {
|
|
128
|
+
const el = node;
|
|
129
|
+
if (el.nodeName === 'BR' &&
|
|
130
|
+
!el.nextSibling &&
|
|
131
|
+
el.parentNode &&
|
|
132
|
+
!INLINE_PARENTS.test(el.parentNode.nodeName)) {
|
|
133
|
+
return { ignore: true };
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
slice = sliceFromElement(parser, dom, options);
|
|
139
|
+
}
|
|
140
|
+
if (!slice)
|
|
141
|
+
return null;
|
|
142
|
+
if (sliceData) {
|
|
143
|
+
slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[4]);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// HTML that did not come from ProseMirror: make the top-level siblings
|
|
147
|
+
// coherent, so `replace` can place them at all
|
|
148
|
+
slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), true);
|
|
149
|
+
if (slice.openStart || slice.openEnd) {
|
|
150
|
+
let openStart = 0;
|
|
151
|
+
let openEnd = 0;
|
|
152
|
+
for (let node = slice.content.firstChild; openStart < slice.openStart && node && !node.type.spec.isolating; openStart++, node = node.firstChild) {
|
|
153
|
+
// counting
|
|
154
|
+
}
|
|
155
|
+
for (let node = slice.content.lastChild; openEnd < slice.openEnd && node && !node.type.spec.isolating; openEnd++, node = node.lastChild) {
|
|
156
|
+
// counting
|
|
157
|
+
}
|
|
158
|
+
slice = closeSlice(slice, openStart, openEnd);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
const result = slice;
|
|
162
|
+
let transformed = result;
|
|
163
|
+
view.someProp('transformPasted', (f) => {
|
|
164
|
+
transformed = f(transformed, view.asEditorView, asText);
|
|
165
|
+
});
|
|
166
|
+
return transformed;
|
|
167
|
+
}
|
|
168
|
+
/** The textblock a line of pasted text becomes: the first one the context
|
|
169
|
+
* can hold, which in every schema anyone writes is the paragraph. */
|
|
170
|
+
function defaultTextblock($context) {
|
|
171
|
+
for (let d = $context.depth; d >= 0; d--) {
|
|
172
|
+
const type = $context.node(d).contentMatchAt($context.index(d)).defaultType;
|
|
173
|
+
if (type?.isTextblock)
|
|
174
|
+
return type;
|
|
175
|
+
}
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
// --- prosemirror-view's helpers (MIT, Marijn Haverbeke) ----------------------
|
|
179
|
+
// Takes a slice parsed with parseSlice, which means there hasn't been any
|
|
180
|
+
// content-expression checking done on the top nodes, tries to find a parent
|
|
181
|
+
// node in the current context that might fit the nodes, and if successful,
|
|
182
|
+
// rebuilds the slice so that it fits into that parent.
|
|
183
|
+
function normalizeSiblings(fragment, $context) {
|
|
184
|
+
if (fragment.childCount < 2)
|
|
185
|
+
return fragment;
|
|
186
|
+
for (let d = $context.depth; d >= 0; d--) {
|
|
187
|
+
const parent = $context.node(d);
|
|
188
|
+
let match = parent.contentMatchAt($context.index(d));
|
|
189
|
+
let lastWrap = [];
|
|
190
|
+
let result = [];
|
|
191
|
+
fragment.forEach((node) => {
|
|
192
|
+
if (!result)
|
|
193
|
+
return;
|
|
194
|
+
const wrap = match.findWrapping(node.type);
|
|
195
|
+
if (!wrap) {
|
|
196
|
+
result = null;
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
const inLast = result.length &&
|
|
200
|
+
lastWrap.length &&
|
|
201
|
+
addToSibling(wrap, lastWrap, node, result[result.length - 1], 0);
|
|
202
|
+
if (inLast) {
|
|
203
|
+
result[result.length - 1] = inLast;
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
if (result.length) {
|
|
207
|
+
result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length);
|
|
208
|
+
}
|
|
209
|
+
const wrapped = withWrappers(node, wrap);
|
|
210
|
+
result.push(wrapped);
|
|
211
|
+
match = match.matchType(wrapped.type);
|
|
212
|
+
lastWrap = wrap;
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
if (result)
|
|
216
|
+
return Fragment.from(result);
|
|
217
|
+
}
|
|
218
|
+
return fragment;
|
|
219
|
+
}
|
|
220
|
+
function withWrappers(node, wrap, from = 0) {
|
|
221
|
+
for (let i = wrap.length - 1; i >= from; i--) {
|
|
222
|
+
node = wrap[i].create(null, Fragment.from(node));
|
|
223
|
+
}
|
|
224
|
+
return node;
|
|
225
|
+
}
|
|
226
|
+
function addToSibling(wrap, lastWrap, node, sibling, depth) {
|
|
227
|
+
if (depth < wrap.length &&
|
|
228
|
+
depth < lastWrap.length &&
|
|
229
|
+
wrap[depth] === lastWrap[depth]) {
|
|
230
|
+
const inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);
|
|
231
|
+
if (inner) {
|
|
232
|
+
return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));
|
|
233
|
+
}
|
|
234
|
+
const match = sibling.contentMatchAt(sibling.childCount);
|
|
235
|
+
if (match.matchType(depth === wrap.length - 1 ? node.type : wrap[depth + 1])) {
|
|
236
|
+
return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1))));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return undefined;
|
|
240
|
+
}
|
|
241
|
+
function closeRight(node, depth) {
|
|
242
|
+
if (depth === 0)
|
|
243
|
+
return node;
|
|
244
|
+
const fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));
|
|
245
|
+
const fill = node
|
|
246
|
+
.contentMatchAt(node.childCount)
|
|
247
|
+
.fillBefore(Fragment.empty, true);
|
|
248
|
+
return node.copy(fragment.append(fill));
|
|
249
|
+
}
|
|
250
|
+
function closeRange(fragment, side, from, to, depth, openEnd) {
|
|
251
|
+
const node = side < 0 ? fragment.firstChild : fragment.lastChild;
|
|
252
|
+
let inner = node.content;
|
|
253
|
+
if (fragment.childCount > 1)
|
|
254
|
+
openEnd = 0;
|
|
255
|
+
if (depth < to - 1)
|
|
256
|
+
inner = closeRange(inner, side, from, to, depth + 1, openEnd);
|
|
257
|
+
if (depth >= from) {
|
|
258
|
+
inner =
|
|
259
|
+
side < 0
|
|
260
|
+
? node
|
|
261
|
+
.contentMatchAt(0)
|
|
262
|
+
.fillBefore(inner, openEnd <= depth)
|
|
263
|
+
.append(inner)
|
|
264
|
+
: inner.append(node
|
|
265
|
+
.contentMatchAt(node.childCount)
|
|
266
|
+
.fillBefore(Fragment.empty, true));
|
|
267
|
+
}
|
|
268
|
+
return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));
|
|
269
|
+
}
|
|
270
|
+
function closeSlice(slice, openStart, openEnd) {
|
|
271
|
+
if (openStart < slice.openStart) {
|
|
272
|
+
slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd);
|
|
273
|
+
}
|
|
274
|
+
if (openEnd < slice.openEnd) {
|
|
275
|
+
slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd);
|
|
276
|
+
}
|
|
277
|
+
return slice;
|
|
278
|
+
}
|
|
279
|
+
function addContext(slice, context) {
|
|
280
|
+
if (!slice.size)
|
|
281
|
+
return slice;
|
|
282
|
+
const schema = slice.content.firstChild.type.schema;
|
|
283
|
+
let array;
|
|
284
|
+
try {
|
|
285
|
+
array = JSON.parse(context);
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
return slice;
|
|
289
|
+
}
|
|
290
|
+
let { content, openStart, openEnd } = slice;
|
|
291
|
+
for (let i = array.length - 2; i >= 0; i -= 2) {
|
|
292
|
+
const type = schema.nodes[array[i]];
|
|
293
|
+
if (!type || type.hasRequiredAttrs())
|
|
294
|
+
break;
|
|
295
|
+
try {
|
|
296
|
+
type.checkAttrs(array[i + 1]);
|
|
297
|
+
}
|
|
298
|
+
catch {
|
|
299
|
+
break;
|
|
300
|
+
}
|
|
301
|
+
content = Fragment.from(type.create(array[i + 1], content));
|
|
302
|
+
openStart++;
|
|
303
|
+
openEnd++;
|
|
304
|
+
}
|
|
305
|
+
return new Slice(content, openStart, openEnd);
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/rich-text-editor/clipboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Decoration, EditorView } from 'prosemirror-view';
|
|
2
|
+
/** A collaborator's caret, as `remoteCaret` describes it. */
|
|
3
|
+
export interface RemoteCaret {
|
|
4
|
+
/** The bar's and the flag's colour — the awareness state's `user.color`. */
|
|
5
|
+
readonly color: string;
|
|
6
|
+
/** Whose caret it is — carried along; the caret is drawn without it. */
|
|
7
|
+
readonly name: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* y-prosemirror's `cursorBuilder`, for this editor:
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* yCursorPlugin(awareness, { cursorBuilder: remoteCaret })
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* `user` is the awareness state's `user` field, `{ name, color }`, with the
|
|
17
|
+
* colour a `#rrggbb` (y-prosemirror's own requirement). Typed as the
|
|
18
|
+
* `HTMLElement` y-prosemirror asks a builder for; what it returns is a
|
|
19
|
+
* description only this editor's view reads.
|
|
20
|
+
*/
|
|
21
|
+
export declare function remoteCaret(user?: {
|
|
22
|
+
name?: unknown;
|
|
23
|
+
color?: unknown;
|
|
24
|
+
} | null): HTMLElement;
|
|
25
|
+
/**
|
|
26
|
+
* The caret a widget decoration stands for, when its `toDOM` is
|
|
27
|
+
* `remoteCaret`'s — or null for any other widget, which has nothing here to
|
|
28
|
+
* draw it with. A `toDOM` that reaches for `document` throws under this view:
|
|
29
|
+
* that is a widget written for a browser, skipped like the rest.
|
|
30
|
+
*/
|
|
31
|
+
export declare function caretOf(deco: Decoration, view: EditorView): RemoteCaret | null;
|
|
32
|
+
//# sourceMappingURL=collab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collab.d.ts","sourceRoot":"","sources":["../../src/rich-text-editor/collab.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK/D,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAChD,WAAW,CAOb;AAcD;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,GACf,WAAW,GAAG,IAAI,CAgBpB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// a registered symbol, so two copies of this package in one app agree
|
|
2
|
+
const CARET = Symbol.for('@react-x11/components/rich-text-editor:remote-caret');
|
|
3
|
+
/**
|
|
4
|
+
* y-prosemirror's `cursorBuilder`, for this editor:
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* yCursorPlugin(awareness, { cursorBuilder: remoteCaret })
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* `user` is the awareness state's `user` field, `{ name, color }`, with the
|
|
11
|
+
* colour a `#rrggbb` (y-prosemirror's own requirement). Typed as the
|
|
12
|
+
* `HTMLElement` y-prosemirror asks a builder for; what it returns is a
|
|
13
|
+
* description only this editor's view reads.
|
|
14
|
+
*/
|
|
15
|
+
export function remoteCaret(user) {
|
|
16
|
+
const caret = {
|
|
17
|
+
[CARET]: true,
|
|
18
|
+
color: typeof user?.color === 'string' ? user.color : '#ffa500',
|
|
19
|
+
name: typeof user?.name === 'string' ? user.name : '',
|
|
20
|
+
};
|
|
21
|
+
return caret;
|
|
22
|
+
}
|
|
23
|
+
function isRemoteCaret(value) {
|
|
24
|
+
return (typeof value === 'object' &&
|
|
25
|
+
value !== null &&
|
|
26
|
+
value[CARET] === true);
|
|
27
|
+
}
|
|
28
|
+
/** What a widget's `toDOM` made, by the widget's type — which a mapped
|
|
29
|
+
* decoration keeps, so a caret that only moved is not asked again. */
|
|
30
|
+
const made = new WeakMap();
|
|
31
|
+
/**
|
|
32
|
+
* The caret a widget decoration stands for, when its `toDOM` is
|
|
33
|
+
* `remoteCaret`'s — or null for any other widget, which has nothing here to
|
|
34
|
+
* draw it with. A `toDOM` that reaches for `document` throws under this view:
|
|
35
|
+
* that is a widget written for a browser, skipped like the rest.
|
|
36
|
+
*/
|
|
37
|
+
export function caretOf(deco, view) {
|
|
38
|
+
const type = deco.type;
|
|
39
|
+
if (!type || typeof type.toDOM !== 'function')
|
|
40
|
+
return null;
|
|
41
|
+
const known = made.get(type);
|
|
42
|
+
if (known !== undefined)
|
|
43
|
+
return known;
|
|
44
|
+
let caret = null;
|
|
45
|
+
try {
|
|
46
|
+
const out = type.toDOM(view, () => deco.from);
|
|
47
|
+
caret = isRemoteCaret(out) ? out : null;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
caret = null;
|
|
51
|
+
}
|
|
52
|
+
made.set(type, caret);
|
|
53
|
+
return caret;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=collab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collab.js","sourceRoot":"","sources":["../../src/rich-text-editor/collab.ts"],"names":[],"mappings":"AAmBA,sEAAsE;AACtE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;AAUhF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CACzB,IAAiD;IAEjD,MAAM,KAAK,GAAG;QACZ,CAAC,KAAK,CAAC,EAAE,IAAI;QACb,KAAK,EAAE,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC/D,IAAI,EAAE,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;KACtD,CAAC;IACF,OAAO,KAA+B,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAiC,CAAC,KAAK,CAAC,KAAK,IAAI,CACnD,CAAC;AACJ,CAAC;AAED;uEACuE;AACvE,MAAM,IAAI,GAAG,IAAI,OAAO,EAA8B,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CACrB,IAAgB,EAChB,IAAgB;IAEhB,MAAM,IAAI,GAAI,IAAkD,CAAC,IAAI,CAAC;IACtE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,KAAK,GAAuB,IAAI,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GACP,IAAI,CAAC,KACN,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Attrs, MarkType, NodeType, Schema } from 'prosemirror-model';
|
|
2
|
+
import type { Command, EditorState } from 'prosemirror-state';
|
|
3
|
+
/** Whether `type` is on the selection — or, with a bare caret, on what the
|
|
4
|
+
* next character typed would get. */
|
|
5
|
+
export declare function isMarkActive(state: EditorState, type: MarkType): boolean;
|
|
6
|
+
/** The attributes of the `type` mark on the selection, if it has one. */
|
|
7
|
+
export declare function markAttrs(state: EditorState, type: MarkType): Attrs | null;
|
|
8
|
+
/** Whether the selection sits in a `type` node (with `attrs`, when given) —
|
|
9
|
+
* the textblock it is in, or any block around it. */
|
|
10
|
+
export declare function isBlockActive(state: EditorState, type: NodeType, attrs?: Attrs | null): boolean;
|
|
11
|
+
/** `type` with `attrs` — or back to a paragraph when the selection already
|
|
12
|
+
* is one: how a "Heading 2" button toggles. */
|
|
13
|
+
export declare function toggleBlockType(type: NodeType, attrs?: Attrs | null, fallback?: NodeType): Command;
|
|
14
|
+
/** Into a blockquote (or any wrapper), or out of the one the selection is in. */
|
|
15
|
+
export declare function toggleWrap(type: NodeType, attrs?: Attrs | null): Command;
|
|
16
|
+
/**
|
|
17
|
+
* A list of `listType`: out of it when the selection is already in one,
|
|
18
|
+
* across to it when it is in a list of another kind (a bullet list becomes
|
|
19
|
+
* numbered and keeps its items), into it otherwise.
|
|
20
|
+
*/
|
|
21
|
+
export declare function toggleList(listType: NodeType, itemType: NodeType): Command;
|
|
22
|
+
/**
|
|
23
|
+
* Tasks: the selected list items become checkable, or plain again when all of
|
|
24
|
+
* them already are. Outside a list, a new list of unchecked tasks.
|
|
25
|
+
*/
|
|
26
|
+
export declare function toggleTaskList(schema: Schema): Command;
|
|
27
|
+
/** Check or uncheck the task item at `pos` — what clicking its box does. */
|
|
28
|
+
export declare function setTaskChecked(pos: number, checked: boolean): Command;
|
|
29
|
+
/** Enter in a list item: a new item — an unchecked one, if this is a task. */
|
|
30
|
+
export declare function splitItem(itemType: NodeType): Command;
|
|
31
|
+
/** A rule where the selection is — and a paragraph after it, when nothing
|
|
32
|
+
* that takes a caret would follow. */
|
|
33
|
+
export declare function insertHorizontalRule(type: NodeType): Command;
|
|
34
|
+
/** Tab inside a code block: two spaces, or every selected line indented. */
|
|
35
|
+
export declare const indentCode: Command;
|
|
36
|
+
/** Shift+Tab inside a code block: up to two spaces off each selected line.
|
|
37
|
+
* Consumed even when there is nothing to take off — Shift+Tab in code
|
|
38
|
+
* should not leave the editor while the user is indenting. */
|
|
39
|
+
export declare const dedentCode: Command;
|
|
40
|
+
/** Tab / Shift+Tab in a table: the next or the previous cell, its text
|
|
41
|
+
* selected. Tab in the last cell adds a row. */
|
|
42
|
+
export declare function goToCell(dir: 1 | -1): Command;
|
|
43
|
+
/**
|
|
44
|
+
* A link on the selection. On a bare caret inside a link, that whole link
|
|
45
|
+
* gets the new target; on a bare caret anywhere else, `text` (or the href
|
|
46
|
+
* itself) is inserted as a link. `href: null` takes the link off — off the
|
|
47
|
+
* selection, or off the whole link the caret is in.
|
|
48
|
+
*/
|
|
49
|
+
export declare function setLink(href: string | null, title?: string | null, text?: string): Command;
|
|
50
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/rich-text-editor/commands.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,KAAK,EACL,QAAQ,EAER,QAAQ,EACR,MAAM,EACP,MAAM,mBAAmB,CAAC;AAO3B,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAI9D;sCACsC;AACtC,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAIxE;AAED,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAW1E;AASD;sDACsD;AACtD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,QAAQ,EACd,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GACnB,OAAO,CAQT;AAoBD;gDACgD;AAChD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAQT;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAKxE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAY1E;AAgBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAwCtD;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CASrE;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAcrD;AAED;uCACuC;AACvC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAa5D;AA4BD,4EAA4E;AAC5E,eAAO,MAAM,UAAU,EAAE,OAYxB,CAAC;AAEF;;+DAE+D;AAC/D,eAAO,MAAM,UAAU,EAAE,OAiBxB,CAAC;AAIF;iDACiD;AACjD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAmD7C;AAyCD;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAwCT"}
|