@dxos/react-ui-editor 0.6.12-main.78ddbdf → 0.6.12-main.7907542
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/lib/browser/chunk-AZWYO7TE.mjs +148 -0
- package/dist/lib/browser/chunk-AZWYO7TE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +152 -269
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/state/index.mjs +17 -0
- package/dist/lib/browser/state/index.mjs.map +7 -0
- package/dist/lib/node/chunk-5RSKGJRI.cjs +169 -0
- package/dist/lib/node/chunk-5RSKGJRI.cjs.map +7 -0
- package/dist/lib/node/index.cjs +5480 -0
- package/dist/lib/node/index.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -0
- package/dist/lib/node/state/index.cjs +39 -0
- package/dist/lib/node/state/index.cjs.map +7 -0
- package/dist/lib/node-esm/chunk-RCIWLRIY.mjs +150 -0
- package/dist/lib/node-esm/chunk-RCIWLRIY.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +5472 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/state/index.mjs +18 -0
- package/dist/lib/node-esm/state/index.mjs.map +7 -0
- package/dist/types/src/TextEditor.stories.d.ts +3 -0
- package/dist/types/src/TextEditor.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/autocomplete.d.ts +2 -1
- package/dist/types/src/extensions/autocomplete.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/cursor.d.ts +1 -1
- package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -1
- package/dist/types/src/extensions/awareness/awareness.d.ts +2 -2
- package/dist/types/src/extensions/awareness/awareness.d.ts.map +1 -1
- package/dist/types/src/extensions/command/state.d.ts +2 -2
- package/dist/types/src/extensions/command/state.d.ts.map +1 -1
- package/dist/types/src/extensions/comments.d.ts +1 -1
- package/dist/types/src/extensions/comments.d.ts.map +1 -1
- package/dist/types/src/extensions/debug.d.ts +2 -2
- package/dist/types/src/extensions/debug.d.ts.map +1 -1
- package/dist/types/src/extensions/folding.d.ts.map +1 -1
- package/dist/types/src/extensions/index.d.ts +0 -4
- package/dist/types/src/extensions/index.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/decorate.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/link.d.ts +1 -1
- package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/styles.d.ts.map +1 -1
- package/dist/types/src/extensions/modes.d.ts +3 -3
- package/dist/types/src/extensions/modes.d.ts.map +1 -1
- package/dist/types/src/extensions/util/overlap.d.ts +1 -1
- package/dist/types/src/extensions/util/overlap.d.ts.map +1 -1
- package/dist/types/src/extensions/util/react.d.ts +1 -1
- package/dist/types/src/extensions/util/react.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/{extensions → state}/cursor.d.ts +2 -2
- package/dist/types/src/state/cursor.d.ts.map +1 -0
- package/dist/types/src/state/doc.d.ts +5 -0
- package/dist/types/src/state/doc.d.ts.map +1 -0
- package/dist/types/src/state/index.d.ts +6 -0
- package/dist/types/src/state/index.d.ts.map +1 -0
- package/dist/types/src/state/state.d.ts.map +1 -0
- package/dist/types/src/state/types.d.ts.map +1 -0
- package/dist/types/src/state/util.d.ts +3 -0
- package/dist/types/src/state/util.d.ts.map +1 -0
- package/dist/types/src/styles/markdown.d.ts +1 -2
- package/dist/types/src/styles/markdown.d.ts.map +1 -1
- package/dist/types/src/styles/theme.d.ts.map +1 -1
- package/package.json +45 -33
- package/src/TextEditor.stories.tsx +9 -5
- package/src/extensions/annotations.ts +1 -1
- package/src/extensions/autocomplete.ts +9 -8
- package/src/extensions/automerge/automerge.stories.tsx +1 -1
- package/src/extensions/automerge/automerge.ts +1 -1
- package/src/extensions/automerge/cursor.ts +1 -1
- package/src/extensions/awareness/awareness.ts +3 -5
- package/src/extensions/command/state.ts +3 -4
- package/src/extensions/comments.ts +37 -43
- package/src/extensions/debug.ts +2 -2
- package/src/extensions/folding.tsx +4 -2
- package/src/extensions/index.ts +0 -4
- package/src/extensions/markdown/decorate.ts +49 -6
- package/src/extensions/markdown/highlight.ts +0 -5
- package/src/extensions/markdown/link.ts +3 -2
- package/src/extensions/markdown/styles.ts +10 -0
- package/src/extensions/markdown/table.ts +3 -3
- package/src/extensions/modes.ts +6 -5
- package/src/extensions/util/overlap.ts +1 -1
- package/src/extensions/util/react.tsx +5 -1
- package/src/hooks/useTextEditor.ts +3 -2
- package/src/index.ts +1 -0
- package/src/{extensions → state}/cursor.ts +3 -6
- package/src/state/doc.ts +10 -0
- package/src/state/index.ts +11 -0
- package/src/{extensions → state}/state.ts +1 -0
- package/src/state/util.ts +13 -0
- package/src/styles/markdown.ts +1 -3
- package/src/styles/theme.ts +2 -0
- package/dist/types/src/extensions/cursor.d.ts.map +0 -1
- package/dist/types/src/extensions/doc.d.ts +0 -6
- package/dist/types/src/extensions/doc.d.ts.map +0 -1
- package/dist/types/src/extensions/state.d.ts.map +0 -1
- package/dist/types/src/extensions/types.d.ts.map +0 -1
- package/src/extensions/doc.ts +0 -17
- /package/dist/types/src/{extensions → state}/state.d.ts +0 -0
- /package/dist/types/src/{extensions → state}/types.d.ts +0 -0
- /package/src/{extensions → state}/types.ts +0 -0
@@ -1,3 +1,12 @@
|
|
1
|
+
import {
|
2
|
+
Cursor,
|
3
|
+
createEditorStateTransaction,
|
4
|
+
documentId,
|
5
|
+
localStorageStateStoreAdapter,
|
6
|
+
singleValueFacet,
|
7
|
+
state
|
8
|
+
} from "./chunk-AZWYO7TE.mjs";
|
9
|
+
|
1
10
|
// packages/ui/react-ui-editor/src/translations.ts
|
2
11
|
var translationKey = "react-ui-editor";
|
3
12
|
var translations_default = [
|
@@ -34,7 +43,7 @@ var translations_default = [
|
|
34
43
|
];
|
35
44
|
|
36
45
|
// packages/ui/react-ui-editor/src/index.ts
|
37
|
-
import { keymap as
|
46
|
+
import { keymap as keymap10 } from "@codemirror/view";
|
38
47
|
import { tags as tags2 } from "@lezer/highlight";
|
39
48
|
import { TextKind } from "@dxos/protocols/proto/dxos/echo/model/text";
|
40
49
|
|
@@ -50,47 +59,6 @@ import { getSize as getSize2 } from "@dxos/react-ui-theme";
|
|
50
59
|
import { StateField } from "@codemirror/state";
|
51
60
|
import { Decoration, EditorView } from "@codemirror/view";
|
52
61
|
import { isNotFalsy } from "@dxos/util";
|
53
|
-
|
54
|
-
// packages/ui/react-ui-editor/src/extensions/cursor.ts
|
55
|
-
import { Facet } from "@codemirror/state";
|
56
|
-
var defaultCursorConverter = {
|
57
|
-
toCursor: (position) => position.toString(),
|
58
|
-
fromCursor: (cursor) => parseInt(cursor)
|
59
|
-
};
|
60
|
-
var Cursor = class _Cursor {
|
61
|
-
static {
|
62
|
-
this.converter = Facet.define({
|
63
|
-
combine: (providers) => {
|
64
|
-
return providers[0] ?? defaultCursorConverter;
|
65
|
-
}
|
66
|
-
});
|
67
|
-
}
|
68
|
-
static {
|
69
|
-
this.getCursorFromRange = (state2, range) => {
|
70
|
-
const cursorConverter2 = state2.facet(_Cursor.converter);
|
71
|
-
const from = cursorConverter2.toCursor(range.from);
|
72
|
-
const to = cursorConverter2.toCursor(range.to, -1);
|
73
|
-
return [
|
74
|
-
from,
|
75
|
-
to
|
76
|
-
].join(":");
|
77
|
-
};
|
78
|
-
}
|
79
|
-
static {
|
80
|
-
this.getRangeFromCursor = (state2, cursor) => {
|
81
|
-
const cursorConverter2 = state2.facet(_Cursor.converter);
|
82
|
-
const parts = cursor.split(":");
|
83
|
-
const from = cursorConverter2.fromCursor(parts[0]);
|
84
|
-
const to = cursorConverter2.fromCursor(parts[1]);
|
85
|
-
return from !== void 0 && to !== void 0 ? {
|
86
|
-
from,
|
87
|
-
to
|
88
|
-
} : void 0;
|
89
|
-
};
|
90
|
-
}
|
91
|
-
};
|
92
|
-
|
93
|
-
// packages/ui/react-ui-editor/src/extensions/annotations.ts
|
94
62
|
var annotationMark = Decoration.mark({
|
95
63
|
class: "cm-annotation"
|
96
64
|
});
|
@@ -153,7 +121,7 @@ import { autocompletion, completionKeymap } from "@codemirror/autocomplete";
|
|
153
121
|
import { markdownLanguage } from "@codemirror/lang-markdown";
|
154
122
|
import { keymap } from "@codemirror/view";
|
155
123
|
var autocomplete = ({ activateOnTyping, override, onSearch } = {}) => {
|
156
|
-
const
|
124
|
+
const extensions = [
|
157
125
|
// https://codemirror.net/docs/ref/#view.keymap
|
158
126
|
// https://discuss.codemirror.net/t/how-can-i-replace-the-default-autocompletion-keymap-v6/3322
|
159
127
|
// TODO(burdon): Set custom keymap.
|
@@ -170,7 +138,7 @@ var autocomplete = ({ activateOnTyping, override, onSearch } = {}) => {
|
|
170
138
|
})
|
171
139
|
];
|
172
140
|
if (onSearch) {
|
173
|
-
|
141
|
+
extensions.push(
|
174
142
|
// TODO(burdon): Optional decoration via addToOptions
|
175
143
|
markdownLanguage.data.of({
|
176
144
|
autocomplete: (context) => {
|
@@ -186,7 +154,7 @@ var autocomplete = ({ activateOnTyping, override, onSearch } = {}) => {
|
|
186
154
|
})
|
187
155
|
);
|
188
156
|
}
|
189
|
-
return
|
157
|
+
return extensions;
|
190
158
|
};
|
191
159
|
|
192
160
|
// packages/ui/react-ui-editor/src/extensions/automerge/automerge.ts
|
@@ -484,7 +452,7 @@ var automerge = (accessor) => {
|
|
484
452
|
};
|
485
453
|
|
486
454
|
// packages/ui/react-ui-editor/src/extensions/awareness/awareness.ts
|
487
|
-
import { Annotation as Annotation2,
|
455
|
+
import { Annotation as Annotation2, RangeSet } from "@codemirror/state";
|
488
456
|
import { Decoration as Decoration2, EditorView as EditorView3, ViewPlugin as ViewPlugin2, WidgetType } from "@codemirror/view";
|
489
457
|
import { Event } from "@dxos/async";
|
490
458
|
import { Context } from "@dxos/context";
|
@@ -499,9 +467,7 @@ var dummyProvider = {
|
|
499
467
|
update: () => {
|
500
468
|
}
|
501
469
|
};
|
502
|
-
var awarenessProvider =
|
503
|
-
combine: (providers) => providers[0] ?? dummyProvider
|
504
|
-
});
|
470
|
+
var awarenessProvider = singleValueFacet(dummyProvider);
|
505
471
|
var RemoteSelectionChangedAnnotation = Annotation2.define();
|
506
472
|
var awareness = (provider = dummyProvider) => {
|
507
473
|
return [
|
@@ -516,7 +482,7 @@ var RemoteSelectionsDecorator = class {
|
|
516
482
|
constructor(view) {
|
517
483
|
this._ctx = new Context(void 0, {
|
518
484
|
F: __dxlog_file2,
|
519
|
-
L:
|
485
|
+
L: 80
|
520
486
|
});
|
521
487
|
this.decorations = RangeSet.of([]);
|
522
488
|
this._cursorConverter = view.state.facet(Cursor.converter);
|
@@ -1144,11 +1110,9 @@ import { RangeSetBuilder } from "@codemirror/state";
|
|
1144
1110
|
import { Decoration as Decoration3, EditorView as EditorView5, ViewPlugin as ViewPlugin3, WidgetType as WidgetType2 } from "@codemirror/view";
|
1145
1111
|
|
1146
1112
|
// packages/ui/react-ui-editor/src/extensions/command/state.ts
|
1147
|
-
import {
|
1113
|
+
import { StateEffect as StateEffect2, StateField as StateField3 } from "@codemirror/state";
|
1148
1114
|
import { showTooltip } from "@codemirror/view";
|
1149
|
-
var commandConfig =
|
1150
|
-
combine: (providers) => providers[0]
|
1151
|
-
});
|
1115
|
+
var commandConfig = singleValueFacet();
|
1152
1116
|
var commandState = StateField3.define({
|
1153
1117
|
create: () => ({}),
|
1154
1118
|
update: (state2, tr) => {
|
@@ -1355,7 +1319,7 @@ var command = (options) => {
|
|
1355
1319
|
|
1356
1320
|
// packages/ui/react-ui-editor/src/extensions/comments.ts
|
1357
1321
|
import { invertedEffects } from "@codemirror/commands";
|
1358
|
-
import {
|
1322
|
+
import { StateEffect as StateEffect3, StateField as StateField4 } from "@codemirror/state";
|
1359
1323
|
import { hoverTooltip, keymap as keymap4, Decoration as Decoration4, EditorView as EditorView7, ViewPlugin as ViewPlugin4 } from "@codemirror/view";
|
1360
1324
|
import sortBy from "lodash.sortby";
|
1361
1325
|
import { useEffect, useMemo, useState } from "react";
|
@@ -1452,9 +1416,6 @@ var logChanges = (trs) => {
|
|
1452
1416
|
|
1453
1417
|
// packages/ui/react-ui-editor/src/extensions/comments.ts
|
1454
1418
|
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/comments.ts";
|
1455
|
-
var documentId = Facet4.define({
|
1456
|
-
combine: (values) => values[0]
|
1457
|
-
});
|
1458
1419
|
var setComments = StateEffect3.define();
|
1459
1420
|
var setSelection = StateEffect3.define();
|
1460
1421
|
var setCommentState = StateEffect3.define();
|
@@ -1525,7 +1486,7 @@ var commentsDecorations = EditorView7.decorations.compute([
|
|
1525
1486
|
if (!range) {
|
1526
1487
|
log5.warn("Invalid range:", range, {
|
1527
1488
|
F: __dxlog_file7,
|
1528
|
-
L:
|
1489
|
+
L: 143,
|
1529
1490
|
S: void 0,
|
1530
1491
|
C: (f, a) => f(...a)
|
1531
1492
|
});
|
@@ -1687,15 +1648,13 @@ var createComment = (view) => {
|
|
1687
1648
|
}
|
1688
1649
|
return false;
|
1689
1650
|
};
|
1690
|
-
var optionsFacet =
|
1691
|
-
combine: (providers) => providers[0]
|
1692
|
-
});
|
1651
|
+
var optionsFacet = singleValueFacet();
|
1693
1652
|
var comments = (options = {}) => {
|
1694
1653
|
const { key: shortcut = "meta-'" } = options;
|
1695
1654
|
const handleSelect = debounce((state2) => options.onSelect?.(state2), 200);
|
1696
1655
|
return [
|
1697
1656
|
optionsFacet.of(options),
|
1698
|
-
documentId.of(options.id),
|
1657
|
+
options.id ? documentId.of(options.id) : void 0,
|
1699
1658
|
commentsState,
|
1700
1659
|
commentsDecorations,
|
1701
1660
|
handleCommentClick,
|
@@ -1703,17 +1662,17 @@ var comments = (options = {}) => {
|
|
1703
1662
|
//
|
1704
1663
|
// Keymap.
|
1705
1664
|
//
|
1706
|
-
options.onCreate
|
1665
|
+
options.onCreate && keymap4.of([
|
1707
1666
|
{
|
1708
1667
|
key: shortcut,
|
1709
1668
|
run: callbackWrapper(createComment)
|
1710
1669
|
}
|
1711
|
-
])
|
1670
|
+
]),
|
1712
1671
|
//
|
1713
1672
|
// Hover tooltip (for key shortcut hints, etc.)
|
1714
1673
|
// TODO(burdon): Factor out to generic hints extension for current selection/line.
|
1715
1674
|
//
|
1716
|
-
options.onHover
|
1675
|
+
options.onHover && hoverTooltip((view, pos) => {
|
1717
1676
|
const selection = view.state.selection.main;
|
1718
1677
|
if (selection && pos >= selection.from && pos <= selection.to) {
|
1719
1678
|
return {
|
@@ -1738,7 +1697,7 @@ var comments = (options = {}) => {
|
|
1738
1697
|
// TODO(burdon): Hide on change triggered immediately?
|
1739
1698
|
// hideOnChange: true,
|
1740
1699
|
hoverTime: 1e3
|
1741
|
-
})
|
1700
|
+
}),
|
1742
1701
|
//
|
1743
1702
|
// Track deleted ranges and update ranges for decorations.
|
1744
1703
|
//
|
@@ -1807,8 +1766,8 @@ var comments = (options = {}) => {
|
|
1807
1766
|
});
|
1808
1767
|
}
|
1809
1768
|
}),
|
1810
|
-
options.onUpdate
|
1811
|
-
];
|
1769
|
+
options.onUpdate && trackPastedComments(options.onUpdate)
|
1770
|
+
].filter(nonNullable);
|
1812
1771
|
};
|
1813
1772
|
var scrollThreadIntoView = (view, id, center = true) => {
|
1814
1773
|
const comment = view.state.field(commentsState).comments.find((range2) => range2.comment.id === id);
|
@@ -1935,25 +1894,6 @@ var debugNodeLogger = (log9 = console.log) => {
|
|
1935
1894
|
});
|
1936
1895
|
};
|
1937
1896
|
|
1938
|
-
// packages/ui/react-ui-editor/src/extensions/doc.ts
|
1939
|
-
import { Facet as Facet5 } from "@codemirror/state";
|
1940
|
-
import { invariant as invariant3 } from "@dxos/invariant";
|
1941
|
-
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/doc.ts";
|
1942
|
-
var documentId2 = Facet5.define({
|
1943
|
-
combine: (providers) => {
|
1944
|
-
invariant3(providers.length <= 1, void 0, {
|
1945
|
-
F: __dxlog_file8,
|
1946
|
-
L: 14,
|
1947
|
-
S: void 0,
|
1948
|
-
A: [
|
1949
|
-
"providers.length <= 1",
|
1950
|
-
""
|
1951
|
-
]
|
1952
|
-
});
|
1953
|
-
return providers[0];
|
1954
|
-
}
|
1955
|
-
});
|
1956
|
-
|
1957
1897
|
// packages/ui/react-ui-editor/src/extensions/dnd.ts
|
1958
1898
|
import { dropCursor, EditorView as EditorView8 } from "@codemirror/view";
|
1959
1899
|
var styles4 = EditorView8.theme({
|
@@ -2016,11 +1956,9 @@ var headings = {
|
|
2016
1956
|
6: "text-md"
|
2017
1957
|
};
|
2018
1958
|
var theme = {
|
2019
|
-
mark: "opacity-50",
|
2020
1959
|
code: "font-mono !no-underline text-neutral-700 dark:text-neutral-300",
|
2021
1960
|
codeMark: "font-mono text-primary-500",
|
2022
|
-
|
2023
|
-
blockquote: "pl-1 mr-1 border-is-4 border-orange-500 dark:border-orange-500 dark:text-neutral-500",
|
1961
|
+
mark: "opacity-50",
|
2024
1962
|
heading: (level) => {
|
2025
1963
|
return mx(headings[level], "dark:text-primary-400");
|
2026
1964
|
}
|
@@ -2063,9 +2001,11 @@ var defaultTheme = {
|
|
2063
2001
|
/**
|
2064
2002
|
* Gutters
|
2065
2003
|
* NOTE: Gutters should have the same top margin as the content.
|
2004
|
+
* NOTE: They can't be transparent since the content needs to scroll below.
|
2066
2005
|
*/
|
2067
2006
|
".cm-gutters": {
|
2068
|
-
background: "var(--surface-bg)"
|
2007
|
+
background: "var(--surface-bg)",
|
2008
|
+
borderRight: "none"
|
2069
2009
|
},
|
2070
2010
|
".cm-gutter": {},
|
2071
2011
|
".cm-gutter.cm-lineNumbers .cm-gutterElement": {
|
@@ -2234,7 +2174,7 @@ var defaultTheme = {
|
|
2234
2174
|
};
|
2235
2175
|
|
2236
2176
|
// packages/ui/react-ui-editor/src/extensions/factories.ts
|
2237
|
-
var
|
2177
|
+
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/factories.ts";
|
2238
2178
|
var preventNewline = EditorState.transactionFilter.of((tr) => tr.newDoc.lines > 1 ? [] : tr);
|
2239
2179
|
var defaultBasicOptions = {
|
2240
2180
|
allowMultipleSelections: true,
|
@@ -2259,7 +2199,7 @@ var createBasicExtensions = (_props) => {
|
|
2259
2199
|
// NOTE: Doesn't catch errors in keymap functions.
|
2260
2200
|
EditorView9.exceptionSink.of((err) => {
|
2261
2201
|
log6.catch(err, void 0, {
|
2262
|
-
F:
|
2202
|
+
F: __dxlog_file8,
|
2263
2203
|
L: 93,
|
2264
2204
|
S: void 0,
|
2265
2205
|
C: (f, a) => f(...a)
|
@@ -2356,9 +2296,10 @@ var folding = (_props = {}) => [
|
|
2356
2296
|
}),
|
2357
2297
|
foldGutter({
|
2358
2298
|
markerDOM: (open) => {
|
2359
|
-
|
2299
|
+
const el = createElement("div", {
|
2360
2300
|
className: "flex h-full items-center"
|
2361
|
-
})
|
2301
|
+
});
|
2302
|
+
return renderRoot(el, /* @__PURE__ */ React2.createElement(Icon, {
|
2362
2303
|
icon: "ph--caret-right--regular",
|
2363
2304
|
classNames: [
|
2364
2305
|
getSize(3),
|
@@ -3345,7 +3286,7 @@ var getFormatting = (state2) => {
|
|
3345
3286
|
null
|
3346
3287
|
];
|
3347
3288
|
let link = false;
|
3348
|
-
let
|
3289
|
+
let blockQuote2 = null;
|
3349
3290
|
let listStyle = null;
|
3350
3291
|
const stack = [];
|
3351
3292
|
let currentBlock = null;
|
@@ -3454,10 +3395,10 @@ var getFormatting = (state2) => {
|
|
3454
3395
|
hasList = stack[i] === "TaskList" ? "task" : stack[i] === "BulletList" ? "bullet" : "ordered";
|
3455
3396
|
}
|
3456
3397
|
}
|
3457
|
-
if (
|
3458
|
-
|
3459
|
-
} else if (!hasQuote &&
|
3460
|
-
|
3398
|
+
if (blockQuote2 === null) {
|
3399
|
+
blockQuote2 = hasQuote;
|
3400
|
+
} else if (!hasQuote && blockQuote2) {
|
3401
|
+
blockQuote2 = false;
|
3461
3402
|
}
|
3462
3403
|
if (listStyle === null) {
|
3463
3404
|
listStyle = hasList;
|
@@ -3476,7 +3417,7 @@ var getFormatting = (state2) => {
|
|
3476
3417
|
return {
|
3477
3418
|
blankLine,
|
3478
3419
|
blockType: blockType || null,
|
3479
|
-
blockQuote:
|
3420
|
+
blockQuote: blockQuote2 ?? false,
|
3480
3421
|
code: inline[3] ?? false,
|
3481
3422
|
emphasis: inline[1] ?? false,
|
3482
3423
|
strong: inline[0] ?? false,
|
@@ -3727,12 +3668,6 @@ var markdownHighlightStyle = (_options = {}) => {
|
|
3727
3668
|
],
|
3728
3669
|
class: theme.code
|
3729
3670
|
},
|
3730
|
-
{
|
3731
|
-
tag: [
|
3732
|
-
markdownTags.QuoteMark
|
3733
|
-
],
|
3734
|
-
class: theme.blockquote
|
3735
|
-
},
|
3736
3671
|
{
|
3737
3672
|
tag: [
|
3738
3673
|
markdownTags.TableCell
|
@@ -3814,7 +3749,7 @@ var convertTreeToJson = (state2) => {
|
|
3814
3749
|
import { syntaxTree as syntaxTree7 } from "@codemirror/language";
|
3815
3750
|
import { RangeSetBuilder as RangeSetBuilder3, StateEffect as StateEffect4 } from "@codemirror/state";
|
3816
3751
|
import { EditorView as EditorView16, Decoration as Decoration7, WidgetType as WidgetType5, ViewPlugin as ViewPlugin6 } from "@codemirror/view";
|
3817
|
-
import { invariant as
|
3752
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
3818
3753
|
import { mx as mx2 } from "@dxos/react-ui-theme";
|
3819
3754
|
|
3820
3755
|
// packages/ui/react-ui-editor/src/extensions/markdown/changes.ts
|
@@ -4077,6 +4012,15 @@ var formattingStyles = EditorView14.theme({
|
|
4077
4012
|
width: `${orderedListIndentationWidth}px`
|
4078
4013
|
},
|
4079
4014
|
/**
|
4015
|
+
* Blockquote.
|
4016
|
+
*/
|
4017
|
+
"& .cm-blockquote": {
|
4018
|
+
background: "var(--dx-cmCodeblock)",
|
4019
|
+
borderLeft: "2px solid var(--dx-cmSeparator)",
|
4020
|
+
paddingLeft: "1rem",
|
4021
|
+
margin: "0"
|
4022
|
+
},
|
4023
|
+
/**
|
4080
4024
|
* Code and codeblocks.
|
4081
4025
|
*/
|
4082
4026
|
"& .cm-code": {
|
@@ -4236,7 +4180,7 @@ var TableWidget = class extends WidgetType4 {
|
|
4236
4180
|
};
|
4237
4181
|
|
4238
4182
|
// packages/ui/react-ui-editor/src/extensions/markdown/decorate.ts
|
4239
|
-
var
|
4183
|
+
var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/markdown/decorate.ts";
|
4240
4184
|
var Unicode = {
|
4241
4185
|
emDash: "\u2014",
|
4242
4186
|
bullet: "\u2022",
|
@@ -4259,6 +4203,7 @@ var LinkButton = class extends WidgetType5 {
|
|
4259
4203
|
eq(other) {
|
4260
4204
|
return this.url === other.url;
|
4261
4205
|
}
|
4206
|
+
// TODO(burdon): Create icon and link directly without react?
|
4262
4207
|
toDOM(view) {
|
4263
4208
|
const el = document.createElement("span");
|
4264
4209
|
this.render(el, this.url);
|
@@ -4326,6 +4271,9 @@ var TextWidget = class extends WidgetType5 {
|
|
4326
4271
|
}
|
4327
4272
|
};
|
4328
4273
|
var hide = Decoration7.replace({});
|
4274
|
+
var blockQuote = Decoration7.line({
|
4275
|
+
class: mx2("cm-blockquote")
|
4276
|
+
});
|
4329
4277
|
var fencedCodeLine = Decoration7.line({
|
4330
4278
|
class: mx2("cm-code cm-codeblock-line")
|
4331
4279
|
});
|
@@ -4365,9 +4313,9 @@ var buildDecorations2 = (view, options, focus) => {
|
|
4365
4313
|
const { state: state2 } = view;
|
4366
4314
|
const headerLevels = [];
|
4367
4315
|
const getHeaderLevels = (node, level) => {
|
4368
|
-
|
4369
|
-
F:
|
4370
|
-
L:
|
4316
|
+
invariant3(level > 0, void 0, {
|
4317
|
+
F: __dxlog_file9,
|
4318
|
+
L: 178,
|
4371
4319
|
S: void 0,
|
4372
4320
|
A: [
|
4373
4321
|
"level > 0",
|
@@ -4404,9 +4352,9 @@ var buildDecorations2 = (view, options, focus) => {
|
|
4404
4352
|
listLevels.pop();
|
4405
4353
|
};
|
4406
4354
|
const getCurrentListLevel = () => {
|
4407
|
-
|
4408
|
-
F:
|
4409
|
-
L:
|
4355
|
+
invariant3(listLevels.length, void 0, {
|
4356
|
+
F: __dxlog_file9,
|
4357
|
+
L: 200,
|
4410
4358
|
S: void 0,
|
4411
4359
|
A: [
|
4412
4360
|
"listLevels.length",
|
@@ -4499,7 +4447,30 @@ var buildDecorations2 = (view, options, focus) => {
|
|
4499
4447
|
atomicDeco.add(line.from, to, checked ? checkedTask : uncheckedTask);
|
4500
4448
|
break;
|
4501
4449
|
}
|
4450
|
+
//
|
4451
|
+
// Blockquote > QuoteMark > Paragraph
|
4452
|
+
//
|
4453
|
+
case "Blockquote": {
|
4454
|
+
const editing = editingRange(state2, node, focus);
|
4455
|
+
const quoteMark = node.node.getChild("QuoteMark");
|
4456
|
+
const paragraph = node.node.getChild("Paragraph");
|
4457
|
+
if (!editing && quoteMark && paragraph) {
|
4458
|
+
atomicDeco.add(quoteMark.from, paragraph.from, hide);
|
4459
|
+
}
|
4460
|
+
for (const block of view.viewportLineBlocks) {
|
4461
|
+
if (block.to < node.from) {
|
4462
|
+
continue;
|
4463
|
+
}
|
4464
|
+
if (block.from > node.to) {
|
4465
|
+
break;
|
4466
|
+
}
|
4467
|
+
deco.add(block.from, block.from, blockQuote);
|
4468
|
+
}
|
4469
|
+
break;
|
4470
|
+
}
|
4471
|
+
//
|
4502
4472
|
// CommentBlock
|
4473
|
+
//
|
4503
4474
|
case "CommentBlock": {
|
4504
4475
|
const editing = editingRange(state2, node, focus);
|
4505
4476
|
for (const block of view.viewportLineBlocks) {
|
@@ -4509,16 +4480,18 @@ var buildDecorations2 = (view, options, focus) => {
|
|
4509
4480
|
if (block.from > node.to) {
|
4510
4481
|
break;
|
4511
4482
|
}
|
4512
|
-
const
|
4513
|
-
const
|
4514
|
-
deco.add(block.from, block.from,
|
4515
|
-
if (!editing && (
|
4483
|
+
const isFirst = block.from <= node.from;
|
4484
|
+
const isLast = block.to >= node.to && /^(\s>)*-->$/.test(state2.doc.sliceString(block.from, block.to));
|
4485
|
+
deco.add(block.from, block.from, isFirst ? commentBlockLineFirst : isLast ? commentBlockLineLast : commentBlockLine);
|
4486
|
+
if (!editing && (isFirst || isLast)) {
|
4516
4487
|
atomicDeco.add(block.from, block.to, hide);
|
4517
4488
|
}
|
4518
4489
|
}
|
4519
4490
|
break;
|
4520
4491
|
}
|
4492
|
+
//
|
4521
4493
|
// FencedCode > CodeMark > [CodeInfo] > CodeText > CodeMark
|
4494
|
+
//
|
4522
4495
|
case "FencedCode": {
|
4523
4496
|
for (const block of view.viewportLineBlocks) {
|
4524
4497
|
if (block.to < node.from) {
|
@@ -4537,7 +4510,9 @@ var buildDecorations2 = (view, options, focus) => {
|
|
4537
4510
|
}
|
4538
4511
|
return false;
|
4539
4512
|
}
|
4513
|
+
//
|
4540
4514
|
// Link > [LinkMark, URL]
|
4515
|
+
//
|
4541
4516
|
case "Link": {
|
4542
4517
|
const marks = node.node.getChildren("LinkMark");
|
4543
4518
|
const urlNode = node.node.getChild("URL");
|
@@ -4564,7 +4539,9 @@ var buildDecorations2 = (view, options, focus) => {
|
|
4564
4539
|
}
|
4565
4540
|
break;
|
4566
4541
|
}
|
4542
|
+
//
|
4567
4543
|
// HR
|
4544
|
+
//
|
4568
4545
|
case "HorizontalRule": {
|
4569
4546
|
if (!editingRange(state2, node, focus)) {
|
4570
4547
|
deco.add(node.from, node.to, horizontalRule);
|
@@ -4661,40 +4638,42 @@ var decorateMarkdown = (options = {}) => {
|
|
4661
4638
|
import { syntaxTree as syntaxTree8 } from "@codemirror/language";
|
4662
4639
|
import { hoverTooltip as hoverTooltip2 } from "@codemirror/view";
|
4663
4640
|
import { tooltipContent } from "@dxos/react-ui-theme";
|
4664
|
-
var linkTooltip = (render) =>
|
4665
|
-
|
4666
|
-
|
4667
|
-
|
4668
|
-
|
4669
|
-
|
4670
|
-
const url = link && link.getChild("URL");
|
4671
|
-
if (!url || !link) {
|
4672
|
-
return null;
|
4673
|
-
}
|
4674
|
-
const urlText = view.state.sliceDoc(url.from, url.to);
|
4675
|
-
return {
|
4676
|
-
pos: link.from,
|
4677
|
-
end: link.to,
|
4678
|
-
above: true,
|
4679
|
-
create: () => {
|
4680
|
-
const el = document.createElement("div");
|
4681
|
-
el.className = tooltipContent({}, "pli-2 plb-1");
|
4682
|
-
render(el, urlText);
|
4683
|
-
return {
|
4684
|
-
dom: el,
|
4685
|
-
offset: {
|
4686
|
-
x: 0,
|
4687
|
-
y: 4
|
4688
|
-
}
|
4689
|
-
};
|
4641
|
+
var linkTooltip = (render) => {
|
4642
|
+
return hoverTooltip2((view, pos, side) => {
|
4643
|
+
const syntax = syntaxTree8(view.state).resolveInner(pos, side);
|
4644
|
+
let link = null;
|
4645
|
+
for (let i = 0, node = syntax; !link && node && i < 5; node = node.parent, i++) {
|
4646
|
+
link = node.name === "Link" ? node : null;
|
4690
4647
|
}
|
4691
|
-
|
4692
|
-
|
4648
|
+
const url = link && link.getChild("URL");
|
4649
|
+
if (!url || !link) {
|
4650
|
+
return null;
|
4651
|
+
}
|
4652
|
+
const urlText = view.state.sliceDoc(url.from, url.to);
|
4653
|
+
return {
|
4654
|
+
pos: link.from,
|
4655
|
+
end: link.to,
|
4656
|
+
above: true,
|
4657
|
+
create: () => {
|
4658
|
+
const el = document.createElement("div");
|
4659
|
+
el.className = tooltipContent({}, "pli-2 plb-1");
|
4660
|
+
render(el, urlText);
|
4661
|
+
return {
|
4662
|
+
dom: el,
|
4663
|
+
offset: {
|
4664
|
+
x: 0,
|
4665
|
+
y: 4
|
4666
|
+
}
|
4667
|
+
};
|
4668
|
+
}
|
4669
|
+
};
|
4670
|
+
});
|
4671
|
+
};
|
4693
4672
|
|
4694
4673
|
// packages/ui/react-ui-editor/src/extensions/mention.ts
|
4695
4674
|
import { autocompletion as autocompletion2 } from "@codemirror/autocomplete";
|
4696
4675
|
import { log as log7 } from "@dxos/log";
|
4697
|
-
var
|
4676
|
+
var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/mention.ts";
|
4698
4677
|
var mention = ({ onSearch }) => {
|
4699
4678
|
return autocompletion2({
|
4700
4679
|
// TODO(burdon): Not working.
|
@@ -4709,7 +4688,7 @@ var mention = ({ onSearch }) => {
|
|
4709
4688
|
log7.info("completion context", {
|
4710
4689
|
context
|
4711
4690
|
}, {
|
4712
|
-
F:
|
4691
|
+
F: __dxlog_file10,
|
4713
4692
|
L: 26,
|
4714
4693
|
S: void 0,
|
4715
4694
|
C: (f, a) => f(...a)
|
@@ -4730,7 +4709,6 @@ var mention = ({ onSearch }) => {
|
|
4730
4709
|
};
|
4731
4710
|
|
4732
4711
|
// packages/ui/react-ui-editor/src/extensions/modes.ts
|
4733
|
-
import { Facet as Facet6 } from "@codemirror/state";
|
4734
4712
|
import { keymap as keymap8 } from "@codemirror/view";
|
4735
4713
|
import { vim } from "@replit/codemirror-vim";
|
4736
4714
|
import { vscodeKeymap } from "@replit/codemirror-vscode-keymap";
|
@@ -4745,9 +4723,7 @@ var EditorInputModes = [
|
|
4745
4723
|
"vim",
|
4746
4724
|
"vscode"
|
4747
4725
|
];
|
4748
|
-
var editorInputMode =
|
4749
|
-
combine: (modes) => modes[0] ?? {}
|
4750
|
-
});
|
4726
|
+
var editorInputMode = singleValueFacet({});
|
4751
4727
|
var InputModeExtensions = {
|
4752
4728
|
default: [],
|
4753
4729
|
vscode: [
|
@@ -4778,101 +4754,8 @@ var InputModeExtensions = {
|
|
4778
4754
|
]
|
4779
4755
|
};
|
4780
4756
|
|
4781
|
-
// packages/ui/react-ui-editor/src/extensions/state.ts
|
4782
|
-
import { Transaction as Transaction2 } from "@codemirror/state";
|
4783
|
-
import { EditorView as EditorView17, keymap as keymap9 } from "@codemirror/view";
|
4784
|
-
import { debounce as debounce2 } from "@dxos/async";
|
4785
|
-
import { invariant as invariant5 } from "@dxos/invariant";
|
4786
|
-
import { isNotFalsy as isNotFalsy3 } from "@dxos/util";
|
4787
|
-
var __dxlog_file12 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/state.ts";
|
4788
|
-
var stateRestoreAnnotation = "dxos.org/cm/state-restore";
|
4789
|
-
var keyPrefix = "dxos.org/react-ui-editor/state";
|
4790
|
-
var localStorageStateStoreAdapter = {
|
4791
|
-
getState: (id) => {
|
4792
|
-
invariant5(id, void 0, {
|
4793
|
-
F: __dxlog_file12,
|
4794
|
-
L: 34,
|
4795
|
-
S: void 0,
|
4796
|
-
A: [
|
4797
|
-
"id",
|
4798
|
-
""
|
4799
|
-
]
|
4800
|
-
});
|
4801
|
-
const state2 = localStorage.getItem(`${keyPrefix}/${id}`);
|
4802
|
-
return state2 ? JSON.parse(state2) : void 0;
|
4803
|
-
},
|
4804
|
-
setState: (id, state2) => {
|
4805
|
-
invariant5(id, void 0, {
|
4806
|
-
F: __dxlog_file12,
|
4807
|
-
L: 40,
|
4808
|
-
S: void 0,
|
4809
|
-
A: [
|
4810
|
-
"id",
|
4811
|
-
""
|
4812
|
-
]
|
4813
|
-
});
|
4814
|
-
localStorage.setItem(`${keyPrefix}/${id}`, JSON.stringify(state2));
|
4815
|
-
}
|
4816
|
-
};
|
4817
|
-
var createEditorStateTransaction = ({ scrollTo, selection }) => {
|
4818
|
-
return {
|
4819
|
-
selection,
|
4820
|
-
scrollIntoView: !scrollTo,
|
4821
|
-
effects: scrollTo ? EditorView17.scrollIntoView(scrollTo, {
|
4822
|
-
yMargin: 96
|
4823
|
-
}) : void 0,
|
4824
|
-
annotations: Transaction2.userEvent.of(stateRestoreAnnotation)
|
4825
|
-
};
|
4826
|
-
};
|
4827
|
-
var state = ({ getState, setState } = {}) => {
|
4828
|
-
const setStateDebounced = debounce2(setState, 1e3);
|
4829
|
-
return [
|
4830
|
-
// TODO(burdon): Track scrolling (currently only updates when cursor moves).
|
4831
|
-
// EditorView.domEventHandlers({
|
4832
|
-
// scroll: (event) => {
|
4833
|
-
// setStateDebounced(id, {});
|
4834
|
-
// },
|
4835
|
-
// }),
|
4836
|
-
EditorView17.updateListener.of(({ view, transactions }) => {
|
4837
|
-
const id = view.state.facet(documentId2);
|
4838
|
-
if (!id || transactions.some((tr) => tr.isUserEvent(stateRestoreAnnotation))) {
|
4839
|
-
return;
|
4840
|
-
}
|
4841
|
-
if (setState) {
|
4842
|
-
const { scrollTop } = view.scrollDOM;
|
4843
|
-
const pos = view.posAtCoords({
|
4844
|
-
x: 0,
|
4845
|
-
y: scrollTop
|
4846
|
-
});
|
4847
|
-
if (pos !== null) {
|
4848
|
-
const { anchor, head } = view.state.selection.main;
|
4849
|
-
setStateDebounced(id, {
|
4850
|
-
scrollTo: pos,
|
4851
|
-
selection: {
|
4852
|
-
anchor,
|
4853
|
-
head
|
4854
|
-
}
|
4855
|
-
});
|
4856
|
-
}
|
4857
|
-
}
|
4858
|
-
}),
|
4859
|
-
getState && keymap9.of([
|
4860
|
-
{
|
4861
|
-
key: "ctrl-r",
|
4862
|
-
run: (view) => {
|
4863
|
-
const state2 = getState(view.state.facet(documentId2));
|
4864
|
-
if (state2) {
|
4865
|
-
view.dispatch(createEditorStateTransaction(state2));
|
4866
|
-
}
|
4867
|
-
return true;
|
4868
|
-
}
|
4869
|
-
}
|
4870
|
-
])
|
4871
|
-
].filter(isNotFalsy3);
|
4872
|
-
};
|
4873
|
-
|
4874
4757
|
// packages/ui/react-ui-editor/src/extensions/typewriter.ts
|
4875
|
-
import { keymap as
|
4758
|
+
import { keymap as keymap9 } from "@codemirror/view";
|
4876
4759
|
var defaultItems = [
|
4877
4760
|
"hello world!",
|
4878
4761
|
"this is a test.",
|
@@ -4882,7 +4765,7 @@ var typewriter = ({ delay = 75, items = defaultItems } = {}) => {
|
|
4882
4765
|
let t;
|
4883
4766
|
let idx = 0;
|
4884
4767
|
return [
|
4885
|
-
|
4768
|
+
keymap9.of([
|
4886
4769
|
{
|
4887
4770
|
// Reset.
|
4888
4771
|
key: "alt-meta-'",
|
@@ -5313,20 +5196,20 @@ var Toolbar = {
|
|
5313
5196
|
};
|
5314
5197
|
|
5315
5198
|
// packages/ui/react-ui-editor/src/defaults.ts
|
5316
|
-
import { EditorView as
|
5199
|
+
import { EditorView as EditorView17 } from "@codemirror/view";
|
5317
5200
|
import { mx as mx3 } from "@dxos/react-ui-theme";
|
5318
5201
|
var margin = "!mt-[1rem]";
|
5319
5202
|
var editorContent = mx3(margin, "!mli-auto w-full max-w-[min(50rem,100%-2rem)]");
|
5320
5203
|
var editorFullWidth = mx3(margin);
|
5321
5204
|
var editorWithToolbarLayout = "grid grid-cols-1 grid-rows-[min-content_1fr] data-[toolbar=disabled]:grid-rows-[1fr] justify-center content-start overflow-hidden";
|
5322
|
-
var editorGutter =
|
5205
|
+
var editorGutter = EditorView17.theme({
|
5323
5206
|
// Match margin from content.
|
5324
5207
|
".cm-gutters": {
|
5325
5208
|
marginTop: "16px",
|
5326
5209
|
paddingRight: "1rem"
|
5327
5210
|
}
|
5328
5211
|
});
|
5329
|
-
var editorMonospace =
|
5212
|
+
var editorMonospace = EditorView17.theme({
|
5330
5213
|
".cm-content": {
|
5331
5214
|
fontFamily: fontMono
|
5332
5215
|
}
|
@@ -5339,12 +5222,12 @@ var useActionHandler = (view) => {
|
|
5339
5222
|
|
5340
5223
|
// packages/ui/react-ui-editor/src/hooks/useTextEditor.ts
|
5341
5224
|
import { EditorState as EditorState2 } from "@codemirror/state";
|
5342
|
-
import { EditorView as
|
5225
|
+
import { EditorView as EditorView18 } from "@codemirror/view";
|
5343
5226
|
import { useFocusableGroup } from "@fluentui/react-tabster";
|
5344
5227
|
import { useCallback, useEffect as useEffect3, useMemo as useMemo3, useRef as useRef2, useState as useState4 } from "react";
|
5345
5228
|
import { log as log8 } from "@dxos/log";
|
5346
|
-
import { getProviderValue, isNotFalsy as
|
5347
|
-
var
|
5229
|
+
import { getProviderValue, isNotFalsy as isNotFalsy3 } from "@dxos/util";
|
5230
|
+
var __dxlog_file11 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextEditor.ts";
|
5348
5231
|
var instanceCount = 0;
|
5349
5232
|
var useTextEditor = (props = {}, deps = []) => {
|
5350
5233
|
const { id, initialValue, extensions, autoFocus, scrollTo, selection, moveToEndOfLine, debug } = useMemo3(() => getProviderValue(props), deps ?? []);
|
@@ -5360,8 +5243,8 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5360
5243
|
instanceId,
|
5361
5244
|
doc: initialValue?.length ?? 0
|
5362
5245
|
}, {
|
5363
|
-
F:
|
5364
|
-
L:
|
5246
|
+
F: __dxlog_file11,
|
5247
|
+
L: 78,
|
5365
5248
|
S: void 0,
|
5366
5249
|
C: (f, a) => f(...a)
|
5367
5250
|
});
|
@@ -5381,27 +5264,26 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5381
5264
|
doc: initialValue,
|
5382
5265
|
selection: initialSelection,
|
5383
5266
|
extensions: [
|
5384
|
-
id &&
|
5267
|
+
id && documentId.of(id),
|
5385
5268
|
// NOTE: Doesn't catch errors in keymap functions.
|
5386
|
-
|
5269
|
+
EditorView18.exceptionSink.of((err) => {
|
5387
5270
|
log8.catch(err, void 0, {
|
5388
|
-
F:
|
5389
|
-
L:
|
5271
|
+
F: __dxlog_file11,
|
5272
|
+
L: 100,
|
5390
5273
|
S: void 0,
|
5391
5274
|
C: (f, a) => f(...a)
|
5392
5275
|
});
|
5393
5276
|
}),
|
5394
5277
|
extensions,
|
5395
|
-
|
5278
|
+
EditorView18.updateListener.of(() => {
|
5396
5279
|
setTimeout(() => {
|
5397
5280
|
onUpdate.current?.();
|
5398
5281
|
});
|
5399
5282
|
})
|
5400
|
-
].filter(
|
5283
|
+
].filter(isNotFalsy3)
|
5401
5284
|
});
|
5402
|
-
view2 = new
|
5285
|
+
view2 = new EditorView18({
|
5403
5286
|
parent: parentRef.current,
|
5404
|
-
selection: initialSelection,
|
5405
5287
|
state: state2,
|
5406
5288
|
// NOTE: Uncomment to debug/monitor all transactions.
|
5407
5289
|
// https://codemirror.net/docs/ref/#view.EditorView.dispatch
|
@@ -5426,8 +5308,8 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5426
5308
|
log8("destroy", {
|
5427
5309
|
id
|
5428
5310
|
}, {
|
5429
|
-
F:
|
5430
|
-
L:
|
5311
|
+
F: __dxlog_file11,
|
5312
|
+
L: 135,
|
5431
5313
|
S: void 0,
|
5432
5314
|
C: (f, a) => f(...a)
|
5433
5315
|
});
|
@@ -5525,7 +5407,7 @@ export {
|
|
5525
5407
|
debugTree,
|
5526
5408
|
decorateMarkdown,
|
5527
5409
|
defaultOptions,
|
5528
|
-
|
5410
|
+
documentId,
|
5529
5411
|
dropFile,
|
5530
5412
|
editorContent,
|
5531
5413
|
editorFullWidth,
|
@@ -5541,7 +5423,7 @@ export {
|
|
5541
5423
|
image,
|
5542
5424
|
imageUpload,
|
5543
5425
|
insertTable,
|
5544
|
-
|
5426
|
+
keymap10 as keymap,
|
5545
5427
|
linkTooltip,
|
5546
5428
|
listener,
|
5547
5429
|
localStorageStateStoreAdapter,
|
@@ -5564,6 +5446,7 @@ export {
|
|
5564
5446
|
setHeading,
|
5565
5447
|
setSelection,
|
5566
5448
|
setStyle,
|
5449
|
+
singleValueFacet,
|
5567
5450
|
state,
|
5568
5451
|
table,
|
5569
5452
|
tags2 as tags,
|