@dxos/react-ui-editor 0.6.12-staging.e11e696 → 0.6.13-main.09887cd
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 → chunk-CIQSMP7K.mjs} +3 -3
- package/dist/lib/browser/{chunk-AZWYO7TE.mjs.map → chunk-CIQSMP7K.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +80 -81
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/state/index.mjs +1 -1
- package/dist/lib/node/{chunk-5RSKGJRI.cjs → chunk-GZWIENFM.cjs} +6 -6
- package/dist/lib/node/{chunk-5RSKGJRI.cjs.map → chunk-GZWIENFM.cjs.map} +2 -2
- package/dist/lib/node/index.cjs +108 -108
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/state/index.cjs +7 -7
- package/dist/lib/node/state/index.cjs.map +1 -1
- package/dist/lib/node-esm/{chunk-RCIWLRIY.mjs → chunk-GP5RCZ3X.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-RCIWLRIY.mjs.map → chunk-GP5RCZ3X.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +80 -81
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/state/index.mjs +1 -1
- package/dist/types/src/extensions/comments.d.ts.map +1 -1
- package/dist/types/src/extensions/listener.d.ts +1 -0
- package/dist/types/src/extensions/listener.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/state/state.d.ts +2 -2
- package/dist/types/src/state/state.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +6 -0
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +28 -24
- package/src/extensions/command/hint.ts +1 -1
- package/src/extensions/comments.ts +7 -2
- package/src/extensions/listener.ts +1 -0
- package/src/hooks/useTextEditor.ts +28 -30
- package/src/state/state.ts +6 -3
- package/src/util.ts +10 -0
@@ -6,7 +6,7 @@ import {
|
|
6
6
|
localStorageStateStoreAdapter,
|
7
7
|
singleValueFacet,
|
8
8
|
state
|
9
|
-
} from "./chunk-
|
9
|
+
} from "./chunk-GP5RCZ3X.mjs";
|
10
10
|
|
11
11
|
// packages/ui/react-ui-editor/src/translations.ts
|
12
12
|
var translationKey = "react-ui-editor";
|
@@ -1238,6 +1238,51 @@ var clientRectsFor = (dom) => {
|
|
1238
1238
|
}
|
1239
1239
|
};
|
1240
1240
|
|
1241
|
+
// packages/ui/react-ui-editor/src/extensions/util/error.ts
|
1242
|
+
import { log as log3 } from "@dxos/log";
|
1243
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/util/error.ts";
|
1244
|
+
var wrapWithCatch = (fn) => {
|
1245
|
+
return (...args) => {
|
1246
|
+
try {
|
1247
|
+
return fn(...args);
|
1248
|
+
} catch (err) {
|
1249
|
+
log3.catch(err, void 0, {
|
1250
|
+
F: __dxlog_file5,
|
1251
|
+
L: 12,
|
1252
|
+
S: void 0,
|
1253
|
+
C: (f, a) => f(...a)
|
1254
|
+
});
|
1255
|
+
}
|
1256
|
+
};
|
1257
|
+
};
|
1258
|
+
|
1259
|
+
// packages/ui/react-ui-editor/src/extensions/util/overlap.ts
|
1260
|
+
var overlap = (a, b) => a.from <= b.to && a.to >= b.from;
|
1261
|
+
|
1262
|
+
// packages/ui/react-ui-editor/src/extensions/util/react.tsx
|
1263
|
+
import React from "react";
|
1264
|
+
import { createRoot } from "react-dom/client";
|
1265
|
+
import { ThemeProvider } from "@dxos/react-ui";
|
1266
|
+
import { defaultTx } from "@dxos/react-ui-theme";
|
1267
|
+
var createElement = (tag, options, children) => {
|
1268
|
+
const el = document.createElement(tag);
|
1269
|
+
if (options?.className) {
|
1270
|
+
el.className = options.className;
|
1271
|
+
}
|
1272
|
+
if (children) {
|
1273
|
+
el.append(...Array.isArray(children) ? children : [
|
1274
|
+
children
|
1275
|
+
]);
|
1276
|
+
}
|
1277
|
+
return el;
|
1278
|
+
};
|
1279
|
+
var renderRoot = (root, node) => {
|
1280
|
+
createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
|
1281
|
+
tx: defaultTx
|
1282
|
+
}, node));
|
1283
|
+
return root;
|
1284
|
+
};
|
1285
|
+
|
1241
1286
|
// packages/ui/react-ui-editor/src/extensions/command/hint.ts
|
1242
1287
|
var CommandHint = class extends WidgetType2 {
|
1243
1288
|
constructor(content) {
|
@@ -1328,51 +1373,6 @@ import { debounce } from "@dxos/async";
|
|
1328
1373
|
import { log as log5 } from "@dxos/log";
|
1329
1374
|
import { nonNullable } from "@dxos/util";
|
1330
1375
|
|
1331
|
-
// packages/ui/react-ui-editor/src/extensions/util/error.ts
|
1332
|
-
import { log as log3 } from "@dxos/log";
|
1333
|
-
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/util/error.ts";
|
1334
|
-
var wrapWithCatch = (fn) => {
|
1335
|
-
return (...args) => {
|
1336
|
-
try {
|
1337
|
-
return fn(...args);
|
1338
|
-
} catch (err) {
|
1339
|
-
log3.catch(err, void 0, {
|
1340
|
-
F: __dxlog_file5,
|
1341
|
-
L: 12,
|
1342
|
-
S: void 0,
|
1343
|
-
C: (f, a) => f(...a)
|
1344
|
-
});
|
1345
|
-
}
|
1346
|
-
};
|
1347
|
-
};
|
1348
|
-
|
1349
|
-
// packages/ui/react-ui-editor/src/extensions/util/overlap.ts
|
1350
|
-
var overlap = (a, b) => a.from <= b.to && a.to >= b.from;
|
1351
|
-
|
1352
|
-
// packages/ui/react-ui-editor/src/extensions/util/react.tsx
|
1353
|
-
import React from "react";
|
1354
|
-
import { createRoot } from "react-dom/client";
|
1355
|
-
import { ThemeProvider } from "@dxos/react-ui";
|
1356
|
-
import { defaultTx } from "@dxos/react-ui-theme";
|
1357
|
-
var createElement = (tag, options, children) => {
|
1358
|
-
const el = document.createElement(tag);
|
1359
|
-
if (options?.className) {
|
1360
|
-
el.className = options.className;
|
1361
|
-
}
|
1362
|
-
if (children) {
|
1363
|
-
el.append(...Array.isArray(children) ? children : [
|
1364
|
-
children
|
1365
|
-
]);
|
1366
|
-
}
|
1367
|
-
return el;
|
1368
|
-
};
|
1369
|
-
var renderRoot = (root, node) => {
|
1370
|
-
createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
|
1371
|
-
tx: defaultTx
|
1372
|
-
}, node));
|
1373
|
-
return root;
|
1374
|
-
};
|
1375
|
-
|
1376
1376
|
// packages/ui/react-ui-editor/src/util.ts
|
1377
1377
|
import { log as log4 } from "@dxos/log";
|
1378
1378
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/util.ts";
|
@@ -1382,12 +1382,16 @@ var callbackWrapper = (fn) => (...args) => {
|
|
1382
1382
|
} catch (err) {
|
1383
1383
|
log4.catch(err, void 0, {
|
1384
1384
|
F: __dxlog_file6,
|
1385
|
-
L:
|
1385
|
+
L: 19,
|
1386
1386
|
S: void 0,
|
1387
1387
|
C: (f, a) => f(...a)
|
1388
1388
|
});
|
1389
1389
|
}
|
1390
1390
|
};
|
1391
|
+
var debugDispatcher = (trs, view) => {
|
1392
|
+
logChanges(trs);
|
1393
|
+
view.update(trs);
|
1394
|
+
};
|
1391
1395
|
var logChanges = (trs) => {
|
1392
1396
|
const changes = trs.flatMap((tr) => {
|
1393
1397
|
if (tr.changes.empty) {
|
@@ -1408,7 +1412,7 @@ var logChanges = (trs) => {
|
|
1408
1412
|
changes
|
1409
1413
|
}, {
|
1410
1414
|
F: __dxlog_file6,
|
1411
|
-
L:
|
1415
|
+
L: 49,
|
1412
1416
|
S: void 0,
|
1413
1417
|
C: (f, a) => f(...a)
|
1414
1418
|
});
|
@@ -1800,8 +1804,11 @@ var scrollThreadIntoView = (view, id, center = true) => {
|
|
1800
1804
|
}
|
1801
1805
|
};
|
1802
1806
|
var selectionOverlapsComment = (state2) => {
|
1807
|
+
const commentState = state2.field(commentsState, false);
|
1808
|
+
if (commentState === void 0) {
|
1809
|
+
return false;
|
1810
|
+
}
|
1803
1811
|
const { selection } = state2;
|
1804
|
-
const commentState = state2.field(commentsState);
|
1805
1812
|
for (const range of selection.ranges) {
|
1806
1813
|
if (commentState.comments.some(({ range: commentRange }) => overlap(commentRange, range))) {
|
1807
1814
|
return true;
|
@@ -5233,7 +5240,6 @@ var instanceCount = 0;
|
|
5233
5240
|
var useTextEditor = (props = {}, deps = []) => {
|
5234
5241
|
const { id, initialValue, extensions, autoFocus, scrollTo, selection, moveToEndOfLine, debug } = useMemo3(() => getProviderValue(props), deps ?? []);
|
5235
5242
|
const [instanceId] = useState4(() => `text-editor-${++instanceCount}`);
|
5236
|
-
const onUpdate = useRef2();
|
5237
5243
|
const [view, setView] = useState4();
|
5238
5244
|
const parentRef = useRef2(null);
|
5239
5245
|
useEffect3(() => {
|
@@ -5245,7 +5251,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5245
5251
|
doc: initialValue?.length ?? 0
|
5246
5252
|
}, {
|
5247
5253
|
F: __dxlog_file11,
|
5248
|
-
L:
|
5254
|
+
L: 76,
|
5249
5255
|
S: void 0,
|
5250
5256
|
C: (f, a) => f(...a)
|
5251
5257
|
});
|
@@ -5266,42 +5272,35 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5266
5272
|
selection: initialSelection,
|
5267
5273
|
extensions: [
|
5268
5274
|
id && documentId.of(id),
|
5269
|
-
|
5275
|
+
extensions,
|
5276
|
+
// NOTE: This doesn't catch errors in keymap functions.
|
5270
5277
|
EditorView18.exceptionSink.of((err) => {
|
5271
5278
|
log8.catch(err, void 0, {
|
5272
5279
|
F: __dxlog_file11,
|
5273
|
-
L:
|
5280
|
+
L: 98,
|
5274
5281
|
S: void 0,
|
5275
5282
|
C: (f, a) => f(...a)
|
5276
5283
|
});
|
5277
|
-
}),
|
5278
|
-
extensions,
|
5279
|
-
EditorView18.updateListener.of(() => {
|
5280
|
-
setTimeout(() => {
|
5281
|
-
onUpdate.current?.();
|
5282
|
-
});
|
5283
5284
|
})
|
5284
5285
|
].filter(isNotFalsy3)
|
5285
5286
|
});
|
5286
5287
|
view2 = new EditorView18({
|
5287
5288
|
parent: parentRef.current,
|
5288
5289
|
state: state2,
|
5289
|
-
|
5290
|
-
|
5291
|
-
|
5292
|
-
|
5293
|
-
logChanges(trs);
|
5294
|
-
}
|
5295
|
-
view3.update(trs);
|
5296
|
-
}
|
5290
|
+
scrollTo: scrollTo ? EditorView18.scrollIntoView(scrollTo, {
|
5291
|
+
yMargin: 96
|
5292
|
+
}) : void 0,
|
5293
|
+
dispatchTransactions: debug ? debugDispatcher : void 0
|
5297
5294
|
});
|
5298
|
-
if (
|
5295
|
+
if (moveToEndOfLine && !initialSelection) {
|
5299
5296
|
const { to } = view2.state.doc.lineAt(0);
|
5300
|
-
|
5301
|
-
|
5302
|
-
|
5303
|
-
|
5304
|
-
|
5297
|
+
if (to) {
|
5298
|
+
view2.dispatch({
|
5299
|
+
selection: {
|
5300
|
+
anchor: to
|
5301
|
+
}
|
5302
|
+
});
|
5303
|
+
}
|
5305
5304
|
}
|
5306
5305
|
setView(view2);
|
5307
5306
|
}
|
@@ -5319,21 +5318,20 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5319
5318
|
}, deps);
|
5320
5319
|
useEffect3(() => {
|
5321
5320
|
if (view) {
|
5322
|
-
|
5323
|
-
|
5324
|
-
|
5321
|
+
if (view.state.facet(editorInputMode).noTabster) {
|
5322
|
+
parentRef.current?.removeAttribute("data-tabster");
|
5323
|
+
}
|
5324
|
+
if (scrollTo || selection) {
|
5325
|
+
view.dispatch(createEditorStateTransaction(view.state, {
|
5325
5326
|
scrollTo,
|
5326
5327
|
selection
|
5327
5328
|
}));
|
5328
|
-
};
|
5329
|
-
if (view.state.facet(editorInputMode).noTabster) {
|
5330
|
-
parentRef.current?.removeAttribute("data-tabster");
|
5331
5329
|
}
|
5332
5330
|
}
|
5333
5331
|
}, [
|
5334
5332
|
view,
|
5335
|
-
|
5336
|
-
|
5333
|
+
scrollTo,
|
5334
|
+
selection
|
5337
5335
|
]);
|
5338
5336
|
useEffect3(() => {
|
5339
5337
|
if (view && autoFocus) {
|
@@ -5404,6 +5402,7 @@ export {
|
|
5404
5402
|
createExternalCommentSync,
|
5405
5403
|
createMarkdownExtensions,
|
5406
5404
|
createThemeExtensions,
|
5405
|
+
debugDispatcher,
|
5407
5406
|
debugNodeLogger,
|
5408
5407
|
debugTree,
|
5409
5408
|
decorateMarkdown,
|