@dxos/react-ui-editor 0.4.4-main.3a00f69 → 0.4.4-main.4dba395

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.
@@ -12,7 +12,7 @@ import { EditorView as EditorView15 } from "@codemirror/view";
12
12
  import { useFocusableGroup } from "@fluentui/react-tabster";
13
13
  import defaultsDeep2 from "lodash.defaultsdeep";
14
14
  import React, { forwardRef, useCallback, useEffect as useEffect2, useImperativeHandle, useRef, useState as useState2 } from "react";
15
- import { log as log2 } from "@dxos/log";
15
+ import { log as log3 } from "@dxos/log";
16
16
  import { useThemeContext } from "@dxos/react-ui";
17
17
  import { focusRing } from "@dxos/react-ui-theme";
18
18
  import { isNotFalsy as isNotFalsy4 } from "@dxos/util";
@@ -163,6 +163,8 @@ import { next as A4 } from "@dxos/automerge/automerge";
163
163
  // packages/ui/react-ui-editor/src/extensions/automerge/cursor.ts
164
164
  import get from "lodash.get";
165
165
  import { next as A } from "@dxos/automerge/automerge";
166
+ import { log } from "@dxos/log";
167
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/automerge/cursor.ts";
166
168
  var cursorConverter = (handle, path) => ({
167
169
  // TODO(burdon): Handle assoc to associate with a previous character.
168
170
  toCursor: (pos) => {
@@ -177,6 +179,12 @@ var cursorConverter = (handle, path) => ({
177
179
  try {
178
180
  return A.getCursor(doc, path.slice(), pos);
179
181
  } catch (err) {
182
+ log.catch(err, void 0, {
183
+ F: __dxlog_file,
184
+ L: 31,
185
+ S: void 0,
186
+ C: (f, a) => f(...a)
187
+ });
180
188
  return "";
181
189
  }
182
190
  },
@@ -199,6 +207,12 @@ var cursorConverter = (handle, path) => ({
199
207
  try {
200
208
  return A.getCursorPosition(doc, path.slice(), cursor);
201
209
  } catch (err) {
210
+ log.catch(err, void 0, {
211
+ F: __dxlog_file,
212
+ L: 59,
213
+ S: void 0,
214
+ C: (f, a) => f(...a)
215
+ });
202
216
  return 0;
203
217
  }
204
218
  }
@@ -701,10 +715,10 @@ import { bracketMatching, defaultHighlightStyle, syntaxHighlighting } from "@cod
701
715
  import { oneDarkHighlightStyle } from "@codemirror/theme-one-dark";
702
716
  import { drawSelection, EditorView as EditorView4, highlightActiveLine, placeholder } from "@codemirror/view";
703
717
  import { isNotFalsy as isNotFalsy2 } from "@dxos/util";
704
- var createBasicBundle = ({ themeMode, placeholder: _placeholder, lineWrapping = true } = {}) => [
718
+ var createBasicBundle = ({ themeMode, placeholder: _placeholder, lineWrapping = true, bracketMatching: _bracketMatching = true } = {}) => [
705
719
  lineWrapping && EditorView4.lineWrapping,
706
720
  // https://codemirror.net/docs/ref/#codemirror.minimalSetup
707
- bracketMatching(),
721
+ _bracketMatching && bracketMatching(),
708
722
  closeBrackets(),
709
723
  drawSelection(),
710
724
  highlightActiveLine(),
@@ -718,7 +732,7 @@ var createBasicBundle = ({ themeMode, placeholder: _placeholder, lineWrapping =
718
732
  import { EditorView as EditorView5, keymap as keymap2 } from "@codemirror/view";
719
733
  import defaultsDeep from "lodash.defaultsdeep";
720
734
  import { invariant } from "@dxos/invariant";
721
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/blast.ts";
735
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/blast.ts";
722
736
  var defaultOptions = {
723
737
  effect: 2,
724
738
  maxParticles: 200,
@@ -845,7 +859,7 @@ var Blaster = class {
845
859
  }
846
860
  initialize() {
847
861
  invariant(!this._canvas && !this._ctx, void 0, {
848
- F: __dxlog_file,
862
+ F: __dxlog_file2,
849
863
  L: 141,
850
864
  S: this,
851
865
  A: [
@@ -882,7 +896,7 @@ var Blaster = class {
882
896
  }
883
897
  start() {
884
898
  invariant(this._canvas && this._ctx, void 0, {
885
- F: __dxlog_file,
899
+ F: __dxlog_file2,
886
900
  L: 180,
887
901
  S: this,
888
902
  A: [
@@ -1107,14 +1121,14 @@ var editorFillLayoutEditor = "min-bs-full";
1107
1121
  var editorHalfViewportOverscrollContent = "after:block after:min-bs-[50dvh] after:pointer-events-none";
1108
1122
 
1109
1123
  // packages/ui/react-ui-editor/src/util.ts
1110
- import { log } from "@dxos/log";
1111
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/util.ts";
1124
+ import { log as log2 } from "@dxos/log";
1125
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/util.ts";
1112
1126
  var callbackWrapper = (fn) => (...args) => {
1113
1127
  try {
1114
1128
  return fn(...args);
1115
1129
  } catch (err) {
1116
- log.catch(err, void 0, {
1117
- F: __dxlog_file2,
1130
+ log2.catch(err, void 0, {
1131
+ F: __dxlog_file3,
1118
1132
  L: 18,
1119
1133
  S: void 0,
1120
1134
  C: (f, a) => f(...a)
@@ -3892,7 +3906,7 @@ var codeTheme = {
3892
3906
  };
3893
3907
 
3894
3908
  // packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx
3895
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx";
3909
+ var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx";
3896
3910
  var BaseTextEditor = /* @__PURE__ */ forwardRef(({ model, readonly, autoFocus, scrollTo, selection, theme, slots = defaultSlots, extensions = [], debug }, forwardedRef) => {
3897
3911
  const tabsterDOMAttribute = useFocusableGroup({
3898
3912
  tabBehavior: "limited"
@@ -3929,8 +3943,8 @@ var BaseTextEditor = /* @__PURE__ */ forwardRef(({ model, readonly, autoFocus, s
3929
3943
  extensions: [
3930
3944
  // TODO(burdon): Doesn't catch errors in keymap functions.
3931
3945
  EditorView15.exceptionSink.of((err) => {
3932
- log2.catch(err, void 0, {
3933
- F: __dxlog_file3,
3946
+ log3.catch(err, void 0, {
3947
+ F: __dxlog_file4,
3934
3948
  L: 112,
3935
3949
  S: void 0,
3936
3950
  C: (f, a) => f(...a)
@@ -4332,8 +4346,8 @@ var Toolbar = {
4332
4346
  import { DeferredTask, Event as Event2, sleep } from "@dxos/async";
4333
4347
  import { Context as Context2 } from "@dxos/context";
4334
4348
  import { invariant as invariant2 } from "@dxos/invariant";
4335
- import { log as log3 } from "@dxos/log";
4336
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/awareness-provider.ts";
4349
+ import { log as log4 } from "@dxos/log";
4350
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/awareness-provider.ts";
4337
4351
  var DEBOUNCE_INTERVAL = 100;
4338
4352
  var SpaceAwarenessProvider = class {
4339
4353
  constructor(params) {
@@ -4370,10 +4384,10 @@ var SpaceAwarenessProvider = class {
4370
4384
  void this._space.postMessage(this._channel, {
4371
4385
  kind: "query"
4372
4386
  }).catch((err) => {
4373
- log3.debug("failed to query awareness", {
4387
+ log4.debug("failed to query awareness", {
4374
4388
  err
4375
4389
  }, {
4376
- F: __dxlog_file4,
4390
+ F: __dxlog_file5,
4377
4391
  L: 89,
4378
4392
  S: this,
4379
4393
  C: (f, a) => f(...a)
@@ -4390,7 +4404,7 @@ var SpaceAwarenessProvider = class {
4390
4404
  }
4391
4405
  update(position) {
4392
4406
  invariant2(this._postTask, void 0, {
4393
- F: __dxlog_file4,
4407
+ F: __dxlog_file5,
4394
4408
  L: 104,
4395
4409
  S: this,
4396
4410
  A: [
@@ -4407,7 +4421,7 @@ var SpaceAwarenessProvider = class {
4407
4421
  }
4408
4422
  _handleQueryMessage() {
4409
4423
  invariant2(this._postTask, void 0, {
4410
- F: __dxlog_file4,
4424
+ F: __dxlog_file5,
4411
4425
  L: 115,
4412
4426
  S: this,
4413
4427
  A: [
@@ -4419,7 +4433,7 @@ var SpaceAwarenessProvider = class {
4419
4433
  }
4420
4434
  _handlePostMessage(message) {
4421
4435
  invariant2(message.kind === "post", void 0, {
4422
- F: __dxlog_file4,
4436
+ F: __dxlog_file5,
4423
4437
  L: 120,
4424
4438
  S: this,
4425
4439
  A: [
@@ -4488,28 +4502,36 @@ var useActionHandler = (view) => {
4488
4502
  };
4489
4503
 
4490
4504
  // packages/ui/react-ui-editor/src/hooks/useEditorView.ts
4491
- import { useState as useState3 } from "react";
4492
- var useEditorView = () => {
4493
- const [view, setView] = useState3(null);
4505
+ import { useRef as useRef2, useState as useState3 } from "react";
4506
+ var useEditorView = (id) => {
4507
+ const editorRef = useRef2(null);
4508
+ const [prev, setPrev] = useState3([
4509
+ null,
4510
+ ""
4511
+ ]);
4512
+ if (prev[0] !== editorRef.current) {
4513
+ setPrev([
4514
+ editorRef.current,
4515
+ id
4516
+ ]);
4517
+ }
4494
4518
  return [
4495
- (ref) => {
4496
- setView(ref);
4497
- },
4498
- view
4519
+ editorRef,
4520
+ prev[1] !== id
4499
4521
  ];
4500
4522
  };
4501
4523
 
4502
4524
  // packages/ui/react-ui-editor/src/hooks/useTextEditor.ts
4503
4525
  import { EditorSelection as EditorSelection2, EditorState as EditorState3 } from "@codemirror/state";
4504
4526
  import { EditorView as EditorView16 } from "@codemirror/view";
4505
- import { useEffect as useEffect3, useRef as useRef2, useState as useState4 } from "react";
4506
- import { log as log4 } from "@dxos/log";
4527
+ import { useEffect as useEffect3, useRef as useRef3, useState as useState4 } from "react";
4528
+ import { log as log5 } from "@dxos/log";
4507
4529
  import { isNotFalsy as isNotFalsy5 } from "@dxos/util";
4508
- var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextEditor.ts";
4530
+ var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextEditor.ts";
4509
4531
  var useTextEditor = ({ autoFocus, scrollTo, debug, doc, selection, extensions } = {}) => {
4510
- const onUpdate = useRef2();
4532
+ const onUpdate = useRef3();
4511
4533
  const [view, setView] = useState4();
4512
- const parentRef = useRef2(null);
4534
+ const parentRef = useRef3(null);
4513
4535
  useEffect3(() => {
4514
4536
  if (parentRef.current) {
4515
4537
  const state = EditorState3.create({
@@ -4518,8 +4540,8 @@ var useTextEditor = ({ autoFocus, scrollTo, debug, doc, selection, extensions }
4518
4540
  extensions: [
4519
4541
  // TODO(burdon): Doesn't catch errors in keymap functions.
4520
4542
  EditorView16.exceptionSink.of((err) => {
4521
- log4.catch(err, void 0, {
4522
- F: __dxlog_file5,
4543
+ log5.catch(err, void 0, {
4544
+ F: __dxlog_file6,
4523
4545
  L: 57,
4524
4546
  S: void 0,
4525
4547
  C: (f, a) => f(...a)
@@ -4608,24 +4630,13 @@ var createThemeExtensions = ({ theme, themeMode, slots } = {}) => {
4608
4630
 
4609
4631
  // packages/ui/react-ui-editor/src/hooks/useTextModel.ts
4610
4632
  import get4 from "lodash.get";
4611
- import { useEffect as useEffect4, useState as useState5 } from "react";
4633
+ import { useState as useState5, useMemo as useMemo2 } from "react";
4612
4634
  import { generateName } from "@dxos/display-name";
4613
4635
  import { getRawDoc } from "@dxos/echo-schema";
4614
4636
  import { invariant as invariant3 } from "@dxos/invariant";
4615
4637
  import { isAutomergeObject } from "@dxos/react-client/echo";
4616
- var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextModel.ts";
4617
- var useTextModel = (props) => {
4618
- const [model, setModel] = useState5();
4619
- const { identity, space, text } = props;
4620
- useEffect4(() => {
4621
- setModel(createModel(props));
4622
- }, [
4623
- identity,
4624
- space,
4625
- text
4626
- ]);
4627
- return model;
4628
- };
4638
+ var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextModel.ts";
4639
+ var useTextModel = (props) => useMemo2(() => createModel(props), Object.values(props));
4629
4640
  var useInMemoryTextModel = ({ id, defaultContent }) => {
4630
4641
  const [content, setContent] = useState5(defaultContent ?? "");
4631
4642
  return {
@@ -4640,8 +4651,8 @@ var createModel = ({ space, identity, text }) => {
4640
4651
  return void 0;
4641
4652
  }
4642
4653
  invariant3(isAutomergeObject(text), void 0, {
4643
- F: __dxlog_file6,
4644
- L: 60,
4654
+ F: __dxlog_file7,
4655
+ L: 54,
4645
4656
  S: void 0,
4646
4657
  A: [
4647
4658
  "isAutomergeObject(text)",