@dxos/react-ui-editor 0.4.7-next.7a94090 → 0.4.7
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/index.mjs +63 -24
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +1 -0
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts +1 -0
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/comments.d.ts.map +1 -1
- package/dist/types/src/extensions/cursor-line-margin.d.ts.map +1 -1
- package/dist/types/src/extensions/dnd.d.ts.map +1 -1
- package/dist/types/src/extensions/mention.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.stories.d.ts +1 -0
- package/dist/types/src/hooks/useTextEditor.stories.d.ts.map +1 -1
- package/package.json +24 -24
- package/src/extensions/comments.ts +2 -1
- package/src/extensions/cursor-line-margin.ts +3 -1
- package/src/extensions/dnd.ts +3 -1
- package/src/extensions/mention.ts +3 -1
- package/src/util.ts +1 -1
|
@@ -35,7 +35,7 @@ import { useFocusableGroup } from "@fluentui/react-tabster";
|
|
|
35
35
|
import defaultsDeep3 from "lodash.defaultsdeep";
|
|
36
36
|
import React, { forwardRef, useCallback, useEffect as useEffect3, useImperativeHandle, useRef as useRef3, useState as useState5, useMemo as useMemo3 } from "react";
|
|
37
37
|
import { DocAccessor } from "@dxos/echo-schema";
|
|
38
|
-
import { log as
|
|
38
|
+
import { log as log9 } from "@dxos/log";
|
|
39
39
|
import { useThemeContext } from "@dxos/react-ui";
|
|
40
40
|
import { focusRing } from "@dxos/react-ui-theme";
|
|
41
41
|
import { isNotFalsy as isNotFalsy4 } from "@dxos/util";
|
|
@@ -1266,6 +1266,7 @@ import { hoverTooltip, keymap as keymap4, Decoration as Decoration4, EditorView
|
|
|
1266
1266
|
import sortBy from "lodash.sortby";
|
|
1267
1267
|
import { useEffect } from "react";
|
|
1268
1268
|
import { debounce } from "@dxos/async";
|
|
1269
|
+
import { log as log3 } from "@dxos/log";
|
|
1269
1270
|
import { nonNullable } from "@dxos/util";
|
|
1270
1271
|
|
|
1271
1272
|
// packages/ui/react-ui-editor/src/styles/markdown.ts
|
|
@@ -1333,11 +1334,19 @@ var logChanges = (trs) => {
|
|
|
1333
1334
|
return changes2;
|
|
1334
1335
|
}).filter(Boolean);
|
|
1335
1336
|
if (changes.length) {
|
|
1336
|
-
|
|
1337
|
+
log2.info("changes", {
|
|
1338
|
+
changes
|
|
1339
|
+
}, {
|
|
1340
|
+
F: __dxlog_file3,
|
|
1341
|
+
L: 39,
|
|
1342
|
+
S: void 0,
|
|
1343
|
+
C: (f, a) => f(...a)
|
|
1344
|
+
});
|
|
1337
1345
|
}
|
|
1338
1346
|
};
|
|
1339
1347
|
|
|
1340
1348
|
// packages/ui/react-ui-editor/src/extensions/comments.ts
|
|
1349
|
+
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/comments.ts";
|
|
1341
1350
|
var documentId = Facet4.define({
|
|
1342
1351
|
combine: (values) => values[0]
|
|
1343
1352
|
});
|
|
@@ -1423,7 +1432,12 @@ var commentsDecorations = EditorView7.decorations.compute([
|
|
|
1423
1432
|
const decorations = sortBy(comments2 ?? [], (range) => range.range.from)?.flatMap((comment) => {
|
|
1424
1433
|
const range = comment.range;
|
|
1425
1434
|
if (!range || range.from === range.to) {
|
|
1426
|
-
|
|
1435
|
+
log3.warn("Invalid range:", range, {
|
|
1436
|
+
F: __dxlog_file4,
|
|
1437
|
+
L: 132,
|
|
1438
|
+
S: void 0,
|
|
1439
|
+
C: (f, a) => f(...a)
|
|
1440
|
+
});
|
|
1427
1441
|
return void 0;
|
|
1428
1442
|
}
|
|
1429
1443
|
if (comment.comment.id === current) {
|
|
@@ -1738,6 +1752,8 @@ var useComments = (view, id, comments2 = []) => {
|
|
|
1738
1752
|
// packages/ui/react-ui-editor/src/extensions/cursor-line-margin.ts
|
|
1739
1753
|
import { Facet as Facet5, Transaction } from "@codemirror/state";
|
|
1740
1754
|
import { EditorView as EditorView8 } from "@codemirror/view";
|
|
1755
|
+
import { log as log4 } from "@dxos/log";
|
|
1756
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/cursor-line-margin.ts";
|
|
1741
1757
|
var cursorLineMarginFacet = Facet5.define({
|
|
1742
1758
|
combine: (input) => input[0] ?? 3
|
|
1743
1759
|
});
|
|
@@ -1761,7 +1777,12 @@ var cursorLineMargin = EditorView8.updateListener.of(({ transactions, state, sel
|
|
|
1761
1777
|
const needsScrollTop = false;
|
|
1762
1778
|
const needsScrollBot = mainLine >= visBotLine - cursorLineMargin2;
|
|
1763
1779
|
if (needsScrollTop && needsScrollBot) {
|
|
1764
|
-
|
|
1780
|
+
log4.warn("is cursorScrollMargin too large for the editor size?", void 0, {
|
|
1781
|
+
F: __dxlog_file5,
|
|
1782
|
+
L: 66,
|
|
1783
|
+
S: void 0,
|
|
1784
|
+
C: (f, a) => f(...a)
|
|
1785
|
+
});
|
|
1765
1786
|
return;
|
|
1766
1787
|
}
|
|
1767
1788
|
if (!needsScrollTop && !needsScrollBot) {
|
|
@@ -1788,10 +1809,19 @@ var cursorLineMargin = EditorView8.updateListener.of(({ transactions, state, sel
|
|
|
1788
1809
|
|
|
1789
1810
|
// packages/ui/react-ui-editor/src/extensions/dnd.ts
|
|
1790
1811
|
import { EditorView as EditorView9 } from "@codemirror/view";
|
|
1812
|
+
import { log as log5 } from "@dxos/log";
|
|
1813
|
+
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/dnd.ts";
|
|
1791
1814
|
var dnd = () => {
|
|
1792
1815
|
return EditorView9.domEventHandlers({
|
|
1793
1816
|
drop: (event, view) => {
|
|
1794
|
-
|
|
1817
|
+
log5.info("domEventHandlersDrop", {
|
|
1818
|
+
event
|
|
1819
|
+
}, {
|
|
1820
|
+
F: __dxlog_file6,
|
|
1821
|
+
L: 14,
|
|
1822
|
+
S: void 0,
|
|
1823
|
+
C: (f, a) => f(...a)
|
|
1824
|
+
});
|
|
1795
1825
|
}
|
|
1796
1826
|
});
|
|
1797
1827
|
};
|
|
@@ -3632,6 +3662,8 @@ var TableWidget = class extends WidgetType5 {
|
|
|
3632
3662
|
|
|
3633
3663
|
// packages/ui/react-ui-editor/src/extensions/mention.ts
|
|
3634
3664
|
import { autocompletion as autocompletion2 } from "@codemirror/autocomplete";
|
|
3665
|
+
import { log as log6 } from "@dxos/log";
|
|
3666
|
+
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/mention.ts";
|
|
3635
3667
|
var mention = ({ onSearch }) => {
|
|
3636
3668
|
return autocompletion2({
|
|
3637
3669
|
// TODO(burdon): Not working.
|
|
@@ -3643,7 +3675,14 @@ var mention = ({ onSearch }) => {
|
|
|
3643
3675
|
icons: false,
|
|
3644
3676
|
override: [
|
|
3645
3677
|
(context) => {
|
|
3646
|
-
|
|
3678
|
+
log6.info("completion context", {
|
|
3679
|
+
context
|
|
3680
|
+
}, {
|
|
3681
|
+
F: __dxlog_file7,
|
|
3682
|
+
L: 26,
|
|
3683
|
+
S: void 0,
|
|
3684
|
+
C: (f, a) => f(...a)
|
|
3685
|
+
});
|
|
3647
3686
|
const match = context.matchBefore(/@(\w+)?/);
|
|
3648
3687
|
if (!match || match.from === match.to && !context.explicit) {
|
|
3649
3688
|
return null;
|
|
@@ -3754,8 +3793,8 @@ var typewriter = ({ delay = 75, items = defaultItems } = {}) => {
|
|
|
3754
3793
|
import { DeferredTask, Event as Event2, sleep } from "@dxos/async";
|
|
3755
3794
|
import { Context as Context2 } from "@dxos/context";
|
|
3756
3795
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
3757
|
-
import { log as
|
|
3758
|
-
var
|
|
3796
|
+
import { log as log7 } from "@dxos/log";
|
|
3797
|
+
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/awareness-provider.ts";
|
|
3759
3798
|
var DEBOUNCE_INTERVAL = 100;
|
|
3760
3799
|
var SpaceAwarenessProvider = class {
|
|
3761
3800
|
constructor(params) {
|
|
@@ -3792,10 +3831,10 @@ var SpaceAwarenessProvider = class {
|
|
|
3792
3831
|
void this._space.postMessage(this._channel, {
|
|
3793
3832
|
kind: "query"
|
|
3794
3833
|
}).catch((err) => {
|
|
3795
|
-
|
|
3834
|
+
log7.debug("failed to query awareness", {
|
|
3796
3835
|
err
|
|
3797
3836
|
}, {
|
|
3798
|
-
F:
|
|
3837
|
+
F: __dxlog_file8,
|
|
3799
3838
|
L: 89,
|
|
3800
3839
|
S: this,
|
|
3801
3840
|
C: (f, a) => f(...a)
|
|
@@ -3812,7 +3851,7 @@ var SpaceAwarenessProvider = class {
|
|
|
3812
3851
|
}
|
|
3813
3852
|
update(position) {
|
|
3814
3853
|
invariant2(this._postTask, void 0, {
|
|
3815
|
-
F:
|
|
3854
|
+
F: __dxlog_file8,
|
|
3816
3855
|
L: 104,
|
|
3817
3856
|
S: this,
|
|
3818
3857
|
A: [
|
|
@@ -3829,7 +3868,7 @@ var SpaceAwarenessProvider = class {
|
|
|
3829
3868
|
}
|
|
3830
3869
|
_handleQueryMessage() {
|
|
3831
3870
|
invariant2(this._postTask, void 0, {
|
|
3832
|
-
F:
|
|
3871
|
+
F: __dxlog_file8,
|
|
3833
3872
|
L: 115,
|
|
3834
3873
|
S: this,
|
|
3835
3874
|
A: [
|
|
@@ -3841,7 +3880,7 @@ var SpaceAwarenessProvider = class {
|
|
|
3841
3880
|
}
|
|
3842
3881
|
_handlePostMessage(message) {
|
|
3843
3882
|
invariant2(message.kind === "post", void 0, {
|
|
3844
|
-
F:
|
|
3883
|
+
F: __dxlog_file8,
|
|
3845
3884
|
L: 120,
|
|
3846
3885
|
S: this,
|
|
3847
3886
|
A: [
|
|
@@ -3930,7 +3969,7 @@ import { EditorSelection as EditorSelection2, EditorState as EditorState2 } from
|
|
|
3930
3969
|
import { crosshairCursor, drawSelection as drawSelection2, dropCursor as dropCursor2, EditorView as EditorView16, highlightActiveLine, lineNumbers, placeholder as placeholder2, scrollPastEnd } from "@codemirror/view";
|
|
3931
3970
|
import defaultsDeep2 from "lodash.defaultsdeep";
|
|
3932
3971
|
import { useEffect as useEffect2, useRef as useRef2, useState as useState3 } from "react";
|
|
3933
|
-
import { log as
|
|
3972
|
+
import { log as log8 } from "@dxos/log";
|
|
3934
3973
|
import { isNotFalsy as isNotFalsy3 } from "@dxos/util";
|
|
3935
3974
|
|
|
3936
3975
|
// packages/ui/react-ui-editor/src/themes/default.ts
|
|
@@ -4185,7 +4224,7 @@ var codeTheme = {
|
|
|
4185
4224
|
};
|
|
4186
4225
|
|
|
4187
4226
|
// packages/ui/react-ui-editor/src/hooks/useTextEditor.ts
|
|
4188
|
-
var
|
|
4227
|
+
var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextEditor.ts";
|
|
4189
4228
|
var useTextEditor = ({ autoFocus, scrollTo, debug, doc, selection, extensions } = {}, deps = []) => {
|
|
4190
4229
|
const onUpdate = useRef2();
|
|
4191
4230
|
const [view, setView] = useState3();
|
|
@@ -4199,8 +4238,8 @@ var useTextEditor = ({ autoFocus, scrollTo, debug, doc, selection, extensions }
|
|
|
4199
4238
|
extensions: [
|
|
4200
4239
|
// TODO(burdon): Doesn't catch errors in keymap functions.
|
|
4201
4240
|
EditorView16.exceptionSink.of((err) => {
|
|
4202
|
-
|
|
4203
|
-
F:
|
|
4241
|
+
log8.catch(err, void 0, {
|
|
4242
|
+
F: __dxlog_file9,
|
|
4204
4243
|
L: 70,
|
|
4205
4244
|
S: void 0,
|
|
4206
4245
|
C: (f, a) => f(...a)
|
|
@@ -4276,8 +4315,8 @@ var createBasicExtensions = (_props) => {
|
|
|
4276
4315
|
return [
|
|
4277
4316
|
// TODO(burdon): Doesn't catch errors in keymap functions.
|
|
4278
4317
|
EditorView16.exceptionSink.of((err) => {
|
|
4279
|
-
|
|
4280
|
-
F:
|
|
4318
|
+
log8.catch(err, void 0, {
|
|
4319
|
+
F: __dxlog_file9,
|
|
4281
4320
|
L: 167,
|
|
4282
4321
|
S: void 0,
|
|
4283
4322
|
C: (f, a) => f(...a)
|
|
@@ -4325,7 +4364,7 @@ import { invariant as invariant3 } from "@dxos/invariant";
|
|
|
4325
4364
|
import { isAutomergeObject } from "@dxos/react-client/echo";
|
|
4326
4365
|
import { hueTokens } from "@dxos/react-ui-theme";
|
|
4327
4366
|
import { hexToHue } from "@dxos/util";
|
|
4328
|
-
var
|
|
4367
|
+
var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextModel.ts";
|
|
4329
4368
|
var useTextExtensions = ({ id, text, space, identity }) => {
|
|
4330
4369
|
const extensions = [
|
|
4331
4370
|
automerge(text)
|
|
@@ -4362,7 +4401,7 @@ var createModel = ({ space, identity, text }) => {
|
|
|
4362
4401
|
return void 0;
|
|
4363
4402
|
}
|
|
4364
4403
|
invariant3(isAutomergeObject(text), void 0, {
|
|
4365
|
-
F:
|
|
4404
|
+
F: __dxlog_file10,
|
|
4366
4405
|
L: 89,
|
|
4367
4406
|
S: void 0,
|
|
4368
4407
|
A: [
|
|
@@ -4404,7 +4443,7 @@ var createModel = ({ space, identity, text }) => {
|
|
|
4404
4443
|
};
|
|
4405
4444
|
|
|
4406
4445
|
// packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx
|
|
4407
|
-
var
|
|
4446
|
+
var __dxlog_file11 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx";
|
|
4408
4447
|
var BaseTextEditor = /* @__PURE__ */ forwardRef(({ model, readonly, autoFocus, scrollTo = EditorView17.scrollIntoView(0), moveToEndOfLine, selection, theme, slots = defaultSlots, extensions = [], scrollPastEnd: _scrollPastEnd, debug }, forwardedRef) => {
|
|
4409
4448
|
const tabsterDOMAttribute = useFocusableGroup({
|
|
4410
4449
|
tabBehavior: "limited"
|
|
@@ -4433,8 +4472,8 @@ var BaseTextEditor = /* @__PURE__ */ forwardRef(({ model, readonly, autoFocus, s
|
|
|
4433
4472
|
extensions: [
|
|
4434
4473
|
// TODO(burdon): Doesn't catch errors in keymap functions.
|
|
4435
4474
|
EditorView17.exceptionSink.of((err) => {
|
|
4436
|
-
|
|
4437
|
-
F:
|
|
4475
|
+
log9.catch(err, void 0, {
|
|
4476
|
+
F: __dxlog_file11,
|
|
4438
4477
|
L: 123,
|
|
4439
4478
|
S: void 0,
|
|
4440
4479
|
C: (f, a) => f(...a)
|