@dxos/react-ui-editor 0.8.4-main.c1de068 → 0.8.4-main.fd6878d
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 +299 -249
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs.map +2 -2
- package/dist/lib/node-esm/index.mjs +299 -249
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs.map +2 -2
- package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/util.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts +1 -1
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
- package/dist/types/src/extensions/autocomplete.d.ts +1 -1
- package/dist/types/src/extensions/autocomplete.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/defs.d.ts +1 -1
- package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/sync.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
- package/dist/types/src/extensions/command/action.d.ts +1 -1
- package/dist/types/src/extensions/command/action.d.ts.map +1 -1
- package/dist/types/src/extensions/command/command-menu.d.ts +1 -1
- package/dist/types/src/extensions/command/command-menu.d.ts.map +1 -1
- package/dist/types/src/extensions/command/command.d.ts.map +1 -1
- package/dist/types/src/extensions/command/hint.d.ts.map +1 -1
- package/dist/types/src/extensions/command/state.d.ts +1 -1
- package/dist/types/src/extensions/command/state.d.ts.map +1 -1
- package/dist/types/src/extensions/command/typeahead.d.ts.map +1 -1
- package/dist/types/src/extensions/command/useCommandMenu.d.ts +1 -1
- package/dist/types/src/extensions/command/useCommandMenu.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/dnd.d.ts.map +1 -1
- package/dist/types/src/extensions/factories.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/action.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/changes.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/decorate.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/formatting.d.ts +1 -1
- package/dist/types/src/extensions/markdown/formatting.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/outliner.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/selection.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/tree.d.ts +1 -1
- package/dist/types/src/extensions/outliner/tree.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/stories/Command.stories.d.ts.map +1 -1
- package/dist/types/src/stories/CommandMenu.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
- package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
- package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
- package/dist/types/src/styles/theme.d.ts.map +1 -1
- package/dist/types/src/testing/util.d.ts +1 -0
- package/dist/types/src/testing/util.d.ts.map +1 -1
- package/dist/types/src/util/cursor.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +40 -37
- package/src/components/Editor/Editor.tsx +1 -1
- package/src/components/EditorToolbar/EditorToolbar.tsx +1 -1
- package/src/components/EditorToolbar/blocks.ts +3 -2
- package/src/components/EditorToolbar/formatting.ts +3 -2
- package/src/components/EditorToolbar/headings.ts +2 -1
- package/src/components/EditorToolbar/lists.ts +3 -2
- package/src/components/EditorToolbar/util.ts +1 -1
- package/src/components/EditorToolbar/view-mode.ts +2 -1
- package/src/components/Popover/RefDropdownMenu.tsx +1 -1
- package/src/components/Popover/RefPopover.tsx +4 -4
- package/src/extensions/autocomplete.ts +3 -3
- package/src/extensions/automerge/automerge.stories.tsx +4 -4
- package/src/extensions/automerge/automerge.ts +4 -3
- package/src/extensions/automerge/defs.ts +1 -1
- package/src/extensions/automerge/sync.ts +1 -1
- package/src/extensions/automerge/update-automerge.ts +1 -1
- package/src/extensions/awareness/awareness.ts +2 -2
- package/src/extensions/command/action.ts +1 -1
- package/src/extensions/command/command-menu.ts +4 -3
- package/src/extensions/command/command.ts +3 -3
- package/src/extensions/command/hint.ts +2 -1
- package/src/extensions/command/placeholder.ts +1 -1
- package/src/extensions/command/state.ts +4 -3
- package/src/extensions/command/typeahead.ts +2 -2
- package/src/extensions/command/useCommandMenu.ts +2 -1
- package/src/extensions/comments.ts +7 -6
- package/src/extensions/dnd.ts +1 -1
- package/src/extensions/factories.ts +4 -3
- package/src/extensions/markdown/action.ts +2 -1
- package/src/extensions/markdown/bundle.ts +1 -1
- package/src/extensions/markdown/changes.ts +1 -1
- package/src/extensions/markdown/decorate.ts +7 -6
- package/src/extensions/markdown/formatting.test.ts +6 -6
- package/src/extensions/markdown/formatting.ts +3 -3
- package/src/extensions/markdown/highlight.ts +1 -1
- package/src/extensions/mention.ts +1 -1
- package/src/extensions/outliner/outliner.test.ts +3 -2
- package/src/extensions/outliner/outliner.ts +4 -3
- package/src/extensions/outliner/selection.ts +1 -1
- package/src/extensions/outliner/tree.test.ts +2 -1
- package/src/extensions/outliner/tree.ts +1 -1
- package/src/hooks/useTextEditor.ts +3 -3
- package/src/stories/Command.stories.tsx +6 -5
- package/src/stories/CommandMenu.stories.tsx +5 -4
- package/src/stories/Comments.stories.tsx +3 -2
- package/src/stories/EditorToolbar.stories.tsx +3 -3
- package/src/stories/Experimental.stories.tsx +4 -3
- package/src/stories/Markdown.stories.tsx +3 -2
- package/src/stories/Outliner.stories.tsx +4 -3
- package/src/stories/Preview.stories.tsx +21 -22
- package/src/stories/TextEditor.stories.tsx +15 -14
- package/src/stories/components/EditorStory.tsx +5 -5
- package/src/styles/theme.ts +4 -3
- package/src/testing/util.ts +2 -0
- package/src/util/cursor.ts +2 -1
@@ -70,9 +70,7 @@ var annotationMark = Decoration.mark({
|
|
70
70
|
var annotations = ({ match } = {}) => {
|
71
71
|
return [
|
72
72
|
ViewPlugin.fromClass(class {
|
73
|
-
|
74
|
-
this.decorations = Decoration.none;
|
75
|
-
}
|
73
|
+
decorations = Decoration.none;
|
76
74
|
update(update2) {
|
77
75
|
const builder = new RangeSetBuilder();
|
78
76
|
if (match) {
|
@@ -144,17 +142,174 @@ import { next as A3 } from "@automerge/automerge";
|
|
144
142
|
import { StateField } from "@codemirror/state";
|
145
143
|
import { EditorView as EditorView2, ViewPlugin as ViewPlugin2 } from "@codemirror/view";
|
146
144
|
|
147
|
-
// src/
|
145
|
+
// src/util/facet.ts
|
146
|
+
import { Facet } from "@codemirror/state";
|
147
|
+
var singleValueFacet = (defaultValue) => Facet.define({
|
148
|
+
// Called immediately.
|
149
|
+
combine: (providers) => {
|
150
|
+
return providers[0] ?? defaultValue;
|
151
|
+
}
|
152
|
+
});
|
153
|
+
|
154
|
+
// src/util/cursor.ts
|
155
|
+
var overlap = (a, b) => a.from <= b.to && a.to >= b.from;
|
156
|
+
var defaultCursorConverter = {
|
157
|
+
toCursor: (position) => position.toString(),
|
158
|
+
fromCursor: (cursor) => parseInt(cursor)
|
159
|
+
};
|
160
|
+
var Cursor = class _Cursor {
|
161
|
+
static converter = singleValueFacet(defaultCursorConverter);
|
162
|
+
static getCursorFromRange = (state, range) => {
|
163
|
+
const cursorConverter2 = state.facet(_Cursor.converter);
|
164
|
+
const from = cursorConverter2.toCursor(range.from);
|
165
|
+
const to = cursorConverter2.toCursor(range.to, -1);
|
166
|
+
return [
|
167
|
+
from,
|
168
|
+
to
|
169
|
+
].join(":");
|
170
|
+
};
|
171
|
+
static getRangeFromCursor = (state, cursor) => {
|
172
|
+
const cursorConverter2 = state.facet(_Cursor.converter);
|
173
|
+
const parts = cursor.split(":");
|
174
|
+
const from = cursorConverter2.fromCursor(parts[0]);
|
175
|
+
const to = cursorConverter2.fromCursor(parts[1]);
|
176
|
+
return from !== void 0 && to !== void 0 ? {
|
177
|
+
from,
|
178
|
+
to
|
179
|
+
} : void 0;
|
180
|
+
};
|
181
|
+
};
|
182
|
+
|
183
|
+
// src/util/debug.ts
|
148
184
|
import { log } from "@dxos/log";
|
185
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-editor/src/util/debug.ts";
|
186
|
+
var wrapWithCatch = (fn) => {
|
187
|
+
return (...args) => {
|
188
|
+
try {
|
189
|
+
return fn(...args);
|
190
|
+
} catch (err) {
|
191
|
+
log.catch(err, void 0, {
|
192
|
+
F: __dxlog_file,
|
193
|
+
L: 15,
|
194
|
+
S: void 0,
|
195
|
+
C: (f, a) => f(...a)
|
196
|
+
});
|
197
|
+
}
|
198
|
+
};
|
199
|
+
};
|
200
|
+
var callbackWrapper = (fn) => (...args) => {
|
201
|
+
try {
|
202
|
+
return fn(...args);
|
203
|
+
} catch (err) {
|
204
|
+
log.catch(err, void 0, {
|
205
|
+
F: __dxlog_file,
|
206
|
+
L: 29,
|
207
|
+
S: void 0,
|
208
|
+
C: (f, a) => f(...a)
|
209
|
+
});
|
210
|
+
}
|
211
|
+
};
|
212
|
+
var debugDispatcher = (trs, view) => {
|
213
|
+
logChanges(trs);
|
214
|
+
view.update(trs);
|
215
|
+
};
|
216
|
+
var logChanges = (trs) => {
|
217
|
+
const changes = trs.flatMap((tr) => {
|
218
|
+
if (tr.changes.empty) {
|
219
|
+
return void 0;
|
220
|
+
}
|
221
|
+
const changes2 = [];
|
222
|
+
tr.changes.iterChanges((fromA, toA, fromB, toB, inserted) => changes2.push(JSON.stringify({
|
223
|
+
fromA,
|
224
|
+
toA,
|
225
|
+
fromB,
|
226
|
+
toB,
|
227
|
+
inserted: inserted.toString()
|
228
|
+
})));
|
229
|
+
return changes2;
|
230
|
+
}).filter(Boolean);
|
231
|
+
if (changes.length) {
|
232
|
+
log("changes", {
|
233
|
+
changes
|
234
|
+
}, {
|
235
|
+
F: __dxlog_file,
|
236
|
+
L: 62,
|
237
|
+
S: void 0,
|
238
|
+
C: (f, a) => f(...a)
|
239
|
+
});
|
240
|
+
}
|
241
|
+
};
|
242
|
+
|
243
|
+
// src/util/dom.ts
|
244
|
+
var flattenRect = (rect, left) => {
|
245
|
+
const x = left ? rect.left : rect.right;
|
246
|
+
return {
|
247
|
+
left: x,
|
248
|
+
right: x,
|
249
|
+
top: rect.top,
|
250
|
+
bottom: rect.bottom
|
251
|
+
};
|
252
|
+
};
|
253
|
+
var scratchRange;
|
254
|
+
var textRange = (node, from, to = from) => {
|
255
|
+
const range = scratchRange || (scratchRange = document.createRange());
|
256
|
+
range.setEnd(node, to);
|
257
|
+
range.setStart(node, from);
|
258
|
+
return range;
|
259
|
+
};
|
260
|
+
var clientRectsFor = (dom) => {
|
261
|
+
if (dom.nodeType === 3) {
|
262
|
+
return textRange(dom, 0, dom.nodeValue.length).getClientRects();
|
263
|
+
} else if (dom.nodeType === 1) {
|
264
|
+
return dom.getClientRects();
|
265
|
+
} else {
|
266
|
+
return [];
|
267
|
+
}
|
268
|
+
};
|
269
|
+
var createElement = (tag, options, children) => {
|
270
|
+
const el = document.createElement(tag);
|
271
|
+
if (options?.className) {
|
272
|
+
el.className = options.className;
|
273
|
+
}
|
274
|
+
if (options?.text) {
|
275
|
+
el.textContent = options.text;
|
276
|
+
}
|
277
|
+
if (children) {
|
278
|
+
el.append(...Array.isArray(children) ? children : [
|
279
|
+
children
|
280
|
+
]);
|
281
|
+
}
|
282
|
+
return el;
|
283
|
+
};
|
284
|
+
|
285
|
+
// src/util/react.tsx
|
286
|
+
import React from "react";
|
287
|
+
import { createRoot } from "react-dom/client";
|
288
|
+
import { ThemeProvider, Tooltip } from "@dxos/react-ui";
|
289
|
+
import { defaultTx } from "@dxos/react-ui-theme";
|
290
|
+
var renderRoot = (root, node) => {
|
291
|
+
createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
|
292
|
+
tx: defaultTx
|
293
|
+
}, node));
|
294
|
+
return root;
|
295
|
+
};
|
296
|
+
var createRenderer = (Component) => (el, props) => {
|
297
|
+
renderRoot(el, /* @__PURE__ */ React.createElement(ThemeProvider, {
|
298
|
+
tx: defaultTx
|
299
|
+
}, /* @__PURE__ */ React.createElement(Tooltip.Provider, null, /* @__PURE__ */ React.createElement(Component, props))));
|
300
|
+
};
|
301
|
+
|
302
|
+
// src/extensions/automerge/cursor.ts
|
303
|
+
import { log as log2 } from "@dxos/log";
|
149
304
|
import { fromCursor, toCursor } from "@dxos/react-client/echo";
|
150
|
-
var
|
305
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui-editor/src/extensions/automerge/cursor.ts";
|
151
306
|
var cursorConverter = (accessor) => ({
|
152
307
|
toCursor: (pos, assoc) => {
|
153
308
|
try {
|
154
309
|
return toCursor(accessor, pos, assoc);
|
155
310
|
} catch (err) {
|
156
|
-
|
157
|
-
F:
|
311
|
+
log2.catch(err, void 0, {
|
312
|
+
F: __dxlog_file2,
|
158
313
|
L: 15,
|
159
314
|
S: void 0,
|
160
315
|
C: (f, a) => f(...a)
|
@@ -166,8 +321,8 @@ var cursorConverter = (accessor) => ({
|
|
166
321
|
try {
|
167
322
|
return fromCursor(accessor, cursor);
|
168
323
|
} catch (err) {
|
169
|
-
|
170
|
-
F:
|
324
|
+
log2.catch(err, void 0, {
|
325
|
+
F: __dxlog_file2,
|
171
326
|
L: 24,
|
172
327
|
S: void 0,
|
173
328
|
C: (f, a) => f(...a)
|
@@ -333,6 +488,9 @@ var charPath = (textPath, candidatePath) => {
|
|
333
488
|
|
334
489
|
// src/extensions/automerge/sync.ts
|
335
490
|
var Syncer = class {
|
491
|
+
_handle;
|
492
|
+
_state;
|
493
|
+
_pending;
|
336
494
|
// prettier-ignore
|
337
495
|
constructor(_handle, _state) {
|
338
496
|
this._handle = _handle;
|
@@ -375,169 +533,6 @@ var Syncer = class {
|
|
375
533
|
}
|
376
534
|
};
|
377
535
|
|
378
|
-
// src/util/facet.ts
|
379
|
-
import { Facet } from "@codemirror/state";
|
380
|
-
var singleValueFacet = (defaultValue) => Facet.define({
|
381
|
-
// Called immediately.
|
382
|
-
combine: (providers) => {
|
383
|
-
return providers[0] ?? defaultValue;
|
384
|
-
}
|
385
|
-
});
|
386
|
-
|
387
|
-
// src/util/cursor.ts
|
388
|
-
var overlap = (a, b) => a.from <= b.to && a.to >= b.from;
|
389
|
-
var defaultCursorConverter = {
|
390
|
-
toCursor: (position) => position.toString(),
|
391
|
-
fromCursor: (cursor) => parseInt(cursor)
|
392
|
-
};
|
393
|
-
var Cursor = class _Cursor {
|
394
|
-
static {
|
395
|
-
this.converter = singleValueFacet(defaultCursorConverter);
|
396
|
-
}
|
397
|
-
static {
|
398
|
-
this.getCursorFromRange = (state, range) => {
|
399
|
-
const cursorConverter2 = state.facet(_Cursor.converter);
|
400
|
-
const from = cursorConverter2.toCursor(range.from);
|
401
|
-
const to = cursorConverter2.toCursor(range.to, -1);
|
402
|
-
return [
|
403
|
-
from,
|
404
|
-
to
|
405
|
-
].join(":");
|
406
|
-
};
|
407
|
-
}
|
408
|
-
static {
|
409
|
-
this.getRangeFromCursor = (state, cursor) => {
|
410
|
-
const cursorConverter2 = state.facet(_Cursor.converter);
|
411
|
-
const parts = cursor.split(":");
|
412
|
-
const from = cursorConverter2.fromCursor(parts[0]);
|
413
|
-
const to = cursorConverter2.fromCursor(parts[1]);
|
414
|
-
return from !== void 0 && to !== void 0 ? {
|
415
|
-
from,
|
416
|
-
to
|
417
|
-
} : void 0;
|
418
|
-
};
|
419
|
-
}
|
420
|
-
};
|
421
|
-
|
422
|
-
// src/util/debug.ts
|
423
|
-
import { log as log2 } from "@dxos/log";
|
424
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui-editor/src/util/debug.ts";
|
425
|
-
var wrapWithCatch = (fn) => {
|
426
|
-
return (...args) => {
|
427
|
-
try {
|
428
|
-
return fn(...args);
|
429
|
-
} catch (err) {
|
430
|
-
log2.catch(err, void 0, {
|
431
|
-
F: __dxlog_file2,
|
432
|
-
L: 15,
|
433
|
-
S: void 0,
|
434
|
-
C: (f, a) => f(...a)
|
435
|
-
});
|
436
|
-
}
|
437
|
-
};
|
438
|
-
};
|
439
|
-
var callbackWrapper = (fn) => (...args) => {
|
440
|
-
try {
|
441
|
-
return fn(...args);
|
442
|
-
} catch (err) {
|
443
|
-
log2.catch(err, void 0, {
|
444
|
-
F: __dxlog_file2,
|
445
|
-
L: 29,
|
446
|
-
S: void 0,
|
447
|
-
C: (f, a) => f(...a)
|
448
|
-
});
|
449
|
-
}
|
450
|
-
};
|
451
|
-
var debugDispatcher = (trs, view) => {
|
452
|
-
logChanges(trs);
|
453
|
-
view.update(trs);
|
454
|
-
};
|
455
|
-
var logChanges = (trs) => {
|
456
|
-
const changes = trs.flatMap((tr) => {
|
457
|
-
if (tr.changes.empty) {
|
458
|
-
return void 0;
|
459
|
-
}
|
460
|
-
const changes2 = [];
|
461
|
-
tr.changes.iterChanges((fromA, toA, fromB, toB, inserted) => changes2.push(JSON.stringify({
|
462
|
-
fromA,
|
463
|
-
toA,
|
464
|
-
fromB,
|
465
|
-
toB,
|
466
|
-
inserted: inserted.toString()
|
467
|
-
})));
|
468
|
-
return changes2;
|
469
|
-
}).filter(Boolean);
|
470
|
-
if (changes.length) {
|
471
|
-
log2("changes", {
|
472
|
-
changes
|
473
|
-
}, {
|
474
|
-
F: __dxlog_file2,
|
475
|
-
L: 62,
|
476
|
-
S: void 0,
|
477
|
-
C: (f, a) => f(...a)
|
478
|
-
});
|
479
|
-
}
|
480
|
-
};
|
481
|
-
|
482
|
-
// src/util/dom.ts
|
483
|
-
var flattenRect = (rect, left) => {
|
484
|
-
const x = left ? rect.left : rect.right;
|
485
|
-
return {
|
486
|
-
left: x,
|
487
|
-
right: x,
|
488
|
-
top: rect.top,
|
489
|
-
bottom: rect.bottom
|
490
|
-
};
|
491
|
-
};
|
492
|
-
var scratchRange;
|
493
|
-
var textRange = (node, from, to = from) => {
|
494
|
-
const range = scratchRange || (scratchRange = document.createRange());
|
495
|
-
range.setEnd(node, to);
|
496
|
-
range.setStart(node, from);
|
497
|
-
return range;
|
498
|
-
};
|
499
|
-
var clientRectsFor = (dom) => {
|
500
|
-
if (dom.nodeType === 3) {
|
501
|
-
return textRange(dom, 0, dom.nodeValue.length).getClientRects();
|
502
|
-
} else if (dom.nodeType === 1) {
|
503
|
-
return dom.getClientRects();
|
504
|
-
} else {
|
505
|
-
return [];
|
506
|
-
}
|
507
|
-
};
|
508
|
-
var createElement = (tag, options, children) => {
|
509
|
-
const el = document.createElement(tag);
|
510
|
-
if (options?.className) {
|
511
|
-
el.className = options.className;
|
512
|
-
}
|
513
|
-
if (options?.text) {
|
514
|
-
el.textContent = options.text;
|
515
|
-
}
|
516
|
-
if (children) {
|
517
|
-
el.append(...Array.isArray(children) ? children : [
|
518
|
-
children
|
519
|
-
]);
|
520
|
-
}
|
521
|
-
return el;
|
522
|
-
};
|
523
|
-
|
524
|
-
// src/util/react.tsx
|
525
|
-
import React from "react";
|
526
|
-
import { createRoot } from "react-dom/client";
|
527
|
-
import { ThemeProvider, Tooltip } from "@dxos/react-ui";
|
528
|
-
import { defaultTx } from "@dxos/react-ui-theme";
|
529
|
-
var renderRoot = (root, node) => {
|
530
|
-
createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
|
531
|
-
tx: defaultTx
|
532
|
-
}, node));
|
533
|
-
return root;
|
534
|
-
};
|
535
|
-
var createRenderer = (Component) => (el, props) => {
|
536
|
-
renderRoot(el, /* @__PURE__ */ React.createElement(ThemeProvider, {
|
537
|
-
tx: defaultTx
|
538
|
-
}, /* @__PURE__ */ React.createElement(Tooltip.Provider, null, /* @__PURE__ */ React.createElement(Component, props))));
|
539
|
-
};
|
540
|
-
|
541
536
|
// src/extensions/automerge/automerge.ts
|
542
537
|
var automerge = (accessor) => {
|
543
538
|
const syncState = StateField.define({
|
@@ -576,6 +571,7 @@ var automerge = (accessor) => {
|
|
576
571
|
syncState,
|
577
572
|
// Reconcile external updates.
|
578
573
|
ViewPlugin2.fromClass(class {
|
574
|
+
_view;
|
579
575
|
constructor(_view) {
|
580
576
|
this._view = _view;
|
581
577
|
this._handleChange = () => {
|
@@ -586,6 +582,7 @@ var automerge = (accessor) => {
|
|
586
582
|
destroy() {
|
587
583
|
accessor.handle.removeListener("change", this._handleChange);
|
588
584
|
}
|
585
|
+
_handleChange;
|
589
586
|
}),
|
590
587
|
// Reconcile local updates.
|
591
588
|
EditorView2.updateListener.of(({ view, changes }) => {
|
@@ -624,12 +621,16 @@ var awareness = (provider = dummyProvider) => {
|
|
624
621
|
];
|
625
622
|
};
|
626
623
|
var RemoteSelectionsDecorator = class {
|
624
|
+
_ctx = new Context(void 0, {
|
625
|
+
F: __dxlog_file3,
|
626
|
+
L: 80
|
627
|
+
});
|
628
|
+
_cursorConverter;
|
629
|
+
_provider;
|
630
|
+
_lastAnchor;
|
631
|
+
_lastHead;
|
632
|
+
decorations = RangeSet.of([]);
|
627
633
|
constructor(view) {
|
628
|
-
this._ctx = new Context(void 0, {
|
629
|
-
F: __dxlog_file3,
|
630
|
-
L: 80
|
631
|
-
});
|
632
|
-
this.decorations = RangeSet.of([]);
|
633
634
|
this._cursorConverter = view.state.facet(Cursor.converter);
|
634
635
|
this._provider = view.state.facet(awarenessProvider);
|
635
636
|
this._provider.open();
|
@@ -737,6 +738,8 @@ var RemoteSelectionsDecorator = class {
|
|
737
738
|
}
|
738
739
|
};
|
739
740
|
var RemoteCaretWidget = class extends WidgetType {
|
741
|
+
_name;
|
742
|
+
_color;
|
740
743
|
constructor(_name, _color) {
|
741
744
|
super(), this._name = _name, this._color = _color;
|
742
745
|
}
|
@@ -836,9 +839,16 @@ import { log as log3 } from "@dxos/log";
|
|
836
839
|
var __dxlog_file4 = "/__w/dxos/dxos/packages/ui/react-ui-editor/src/extensions/awareness/awareness-provider.ts";
|
837
840
|
var DEBOUNCE_INTERVAL = 100;
|
838
841
|
var SpaceAwarenessProvider = class {
|
842
|
+
_remoteStates = /* @__PURE__ */ new Map();
|
843
|
+
_space;
|
844
|
+
_channel;
|
845
|
+
_peerId;
|
846
|
+
_info;
|
847
|
+
_ctx;
|
848
|
+
_postTask;
|
849
|
+
_localState;
|
850
|
+
remoteStateChange = new Event2();
|
839
851
|
constructor(params) {
|
840
|
-
this._remoteStates = /* @__PURE__ */ new Map();
|
841
|
-
this.remoteStateChange = new Event2();
|
842
852
|
this._space = params.space;
|
843
853
|
this._channel = params.channel;
|
844
854
|
this._peerId = params.peerId;
|
@@ -1034,6 +1044,18 @@ var blast = (options = defaultOptions) => {
|
|
1034
1044
|
];
|
1035
1045
|
};
|
1036
1046
|
var Blaster = class {
|
1047
|
+
_node;
|
1048
|
+
_options;
|
1049
|
+
_effect;
|
1050
|
+
_canvas;
|
1051
|
+
_ctx;
|
1052
|
+
_running;
|
1053
|
+
_lastTime;
|
1054
|
+
_shakeTime;
|
1055
|
+
_shakeTimeMax;
|
1056
|
+
_particles;
|
1057
|
+
_particlePointer;
|
1058
|
+
_lastPoint;
|
1037
1059
|
constructor(_node, _options) {
|
1038
1060
|
this._node = _node;
|
1039
1061
|
this._options = _options;
|
@@ -1138,6 +1160,8 @@ var Blaster = class {
|
|
1138
1160
|
this.drawParticles();
|
1139
1161
|
requestAnimationFrame(this.loop.bind(this));
|
1140
1162
|
}
|
1163
|
+
shake;
|
1164
|
+
spawn;
|
1141
1165
|
drawParticles() {
|
1142
1166
|
for (let i = this._particles.length; i--; i > 0) {
|
1143
1167
|
const particle = this._particles[i];
|
@@ -1152,6 +1176,7 @@ var Blaster = class {
|
|
1152
1176
|
}
|
1153
1177
|
};
|
1154
1178
|
var Effect = class {
|
1179
|
+
_options;
|
1155
1180
|
constructor(_options) {
|
1156
1181
|
this._options = _options;
|
1157
1182
|
}
|
@@ -1357,9 +1382,8 @@ import { RangeSetBuilder as RangeSetBuilder2 } from "@codemirror/state";
|
|
1357
1382
|
import { Decoration as Decoration3, EditorView as EditorView5, ViewPlugin as ViewPlugin4, WidgetType as WidgetType2 } from "@codemirror/view";
|
1358
1383
|
var hint = ({ delay = 3e3, onHint }) => {
|
1359
1384
|
return ViewPlugin4.fromClass(class {
|
1360
|
-
|
1361
|
-
|
1362
|
-
}
|
1385
|
+
decorations = Decoration3.none;
|
1386
|
+
timeout;
|
1363
1387
|
update(update2) {
|
1364
1388
|
if (this.timeout) {
|
1365
1389
|
clearTimeout(this.timeout);
|
@@ -1398,6 +1422,7 @@ var hint = ({ delay = 3e3, onHint }) => {
|
|
1398
1422
|
});
|
1399
1423
|
};
|
1400
1424
|
var Hint = class extends WidgetType2 {
|
1425
|
+
content;
|
1401
1426
|
constructor(content) {
|
1402
1427
|
super(), this.content = content;
|
1403
1428
|
}
|
@@ -1453,16 +1478,15 @@ var command = (options = {}) => {
|
|
1453
1478
|
};
|
1454
1479
|
|
1455
1480
|
// src/extensions/command/command-menu.ts
|
1456
|
-
import {
|
1457
|
-
import {
|
1481
|
+
import { Prec as Prec2, RangeSetBuilder as RangeSetBuilder3, StateEffect as StateEffect3, StateField as StateField3 } from "@codemirror/state";
|
1482
|
+
import { Decoration as Decoration5, EditorView as EditorView8, ViewPlugin as ViewPlugin6, keymap as keymap4 } from "@codemirror/view";
|
1458
1483
|
|
1459
1484
|
// src/extensions/command/placeholder.ts
|
1460
|
-
import { Decoration as Decoration4, EditorView as EditorView7,
|
1485
|
+
import { Decoration as Decoration4, EditorView as EditorView7, ViewPlugin as ViewPlugin5, WidgetType as WidgetType3 } from "@codemirror/view";
|
1461
1486
|
var placeholder = ({ delay = 3e3, content }) => {
|
1462
1487
|
const plugin = ViewPlugin5.fromClass(class {
|
1463
|
-
|
1464
|
-
|
1465
|
-
}
|
1488
|
+
decorations = Decoration4.none;
|
1489
|
+
timeout;
|
1466
1490
|
update(update2) {
|
1467
1491
|
if (this.timeout) {
|
1468
1492
|
window.clearTimeout(this.timeout);
|
@@ -1504,6 +1528,7 @@ var placeholder = ({ delay = 3e3, content }) => {
|
|
1504
1528
|
] : plugin;
|
1505
1529
|
};
|
1506
1530
|
var Placeholder = class extends WidgetType3 {
|
1531
|
+
content;
|
1507
1532
|
constructor(content) {
|
1508
1533
|
super(), this.content = content;
|
1509
1534
|
}
|
@@ -1541,6 +1566,8 @@ var Placeholder = class extends WidgetType3 {
|
|
1541
1566
|
// src/extensions/command/command-menu.ts
|
1542
1567
|
var commandMenu = (options) => {
|
1543
1568
|
const commandMenuPlugin = ViewPlugin6.fromClass(class {
|
1569
|
+
view;
|
1570
|
+
decorations;
|
1544
1571
|
constructor(view) {
|
1545
1572
|
this.view = view;
|
1546
1573
|
this.decorations = Decoration5.none;
|
@@ -1700,6 +1727,10 @@ import { EditorView as EditorView9, ViewPlugin as ViewPlugin7 } from "@codemirro
|
|
1700
1727
|
import { addEventListener } from "@dxos/async";
|
1701
1728
|
var floatingMenu = (options = {}) => [
|
1702
1729
|
ViewPlugin7.fromClass(class {
|
1730
|
+
view;
|
1731
|
+
tag;
|
1732
|
+
rafId;
|
1733
|
+
cleanup;
|
1703
1734
|
constructor(view) {
|
1704
1735
|
this.view = view;
|
1705
1736
|
const container = view.scrollDOM;
|
@@ -1786,7 +1817,7 @@ var floatingMenu = (options = {}) => [
|
|
1786
1817
|
|
1787
1818
|
// src/extensions/command/typeahead.ts
|
1788
1819
|
import { EditorSelection, Prec as Prec3, RangeSetBuilder as RangeSetBuilder4 } from "@codemirror/state";
|
1789
|
-
import { Decoration as Decoration6,
|
1820
|
+
import { Decoration as Decoration6, ViewPlugin as ViewPlugin8, keymap as keymap5 } from "@codemirror/view";
|
1790
1821
|
var typeahead = ({ onComplete } = {}) => {
|
1791
1822
|
let hint2;
|
1792
1823
|
const complete = (view) => {
|
@@ -1808,9 +1839,7 @@ var typeahead = ({ onComplete } = {}) => {
|
|
1808
1839
|
};
|
1809
1840
|
return [
|
1810
1841
|
ViewPlugin8.fromClass(class {
|
1811
|
-
|
1812
|
-
this.decorations = Decoration6.none;
|
1813
|
-
}
|
1842
|
+
decorations = Decoration6.none;
|
1814
1843
|
update(update2) {
|
1815
1844
|
const builder = new RangeSetBuilder4();
|
1816
1845
|
const selection = update2.view.state.selection.main;
|
@@ -1973,7 +2002,7 @@ var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder3, getMenu })
|
|
1973
2002
|
// src/extensions/comments.ts
|
1974
2003
|
import { invertedEffects } from "@codemirror/commands";
|
1975
2004
|
import { StateEffect as StateEffect4, StateField as StateField4 } from "@codemirror/state";
|
1976
|
-
import {
|
2005
|
+
import { Decoration as Decoration7, EditorView as EditorView11, ViewPlugin as ViewPlugin9, hoverTooltip, keymap as keymap7 } from "@codemirror/view";
|
1977
2006
|
import sortBy from "lodash.sortby";
|
1978
2007
|
import { useEffect } from "react";
|
1979
2008
|
import { debounce as debounce2 } from "@dxos/async";
|
@@ -2145,7 +2174,7 @@ var commentsDecorations = EditorView11.decorations.compute([
|
|
2145
2174
|
if (!range) {
|
2146
2175
|
log4.warn("Invalid range:", range, {
|
2147
2176
|
F: __dxlog_file7,
|
2148
|
-
L:
|
2177
|
+
L: 136,
|
2149
2178
|
S: void 0,
|
2150
2179
|
C: (f, a) => f(...a)
|
2151
2180
|
});
|
@@ -2460,10 +2489,8 @@ var scrollThreadIntoView = (view, id, center = true) => {
|
|
2460
2489
|
}
|
2461
2490
|
};
|
2462
2491
|
var ExternalCommentSync = class {
|
2492
|
+
unsubscribe;
|
2463
2493
|
constructor(view, id, subscribe, getComments) {
|
2464
|
-
this.destroy = () => {
|
2465
|
-
this.unsubscribe();
|
2466
|
-
};
|
2467
2494
|
const updateComments = () => {
|
2468
2495
|
const comments2 = getComments();
|
2469
2496
|
if (id === view.state.facet(documentId)) {
|
@@ -2477,6 +2504,9 @@ var ExternalCommentSync = class {
|
|
2477
2504
|
};
|
2478
2505
|
this.unsubscribe = subscribe(updateComments);
|
2479
2506
|
}
|
2507
|
+
destroy = () => {
|
2508
|
+
this.unsubscribe();
|
2509
|
+
};
|
2480
2510
|
};
|
2481
2511
|
var createExternalCommentSync = (id, subscribe, getComments) => ViewPlugin9.fromClass(class {
|
2482
2512
|
constructor(view) {
|
@@ -2512,7 +2542,7 @@ var debugNodeLogger = (log9 = console.log) => {
|
|
2512
2542
|
};
|
2513
2543
|
|
2514
2544
|
// src/extensions/dnd.ts
|
2515
|
-
import {
|
2545
|
+
import { EditorView as EditorView12, dropCursor } from "@codemirror/view";
|
2516
2546
|
var styles3 = EditorView12.theme({
|
2517
2547
|
".cm-dropCursor": {
|
2518
2548
|
borderLeft: "2px solid var(--dx-accentText)",
|
@@ -2561,39 +2591,8 @@ import { generateName } from "@dxos/display-name";
|
|
2561
2591
|
import { log as log5 } from "@dxos/log";
|
2562
2592
|
import { hexToHue, isNotFalsy as isNotFalsy2 } from "@dxos/util";
|
2563
2593
|
|
2564
|
-
// src/extensions/focus.ts
|
2565
|
-
import { StateEffect as StateEffect5, StateField as StateField6 } from "@codemirror/state";
|
2566
|
-
import { EditorView as EditorView13 } from "@codemirror/view";
|
2567
|
-
var focusEffect = StateEffect5.define();
|
2568
|
-
var focusField = StateField6.define({
|
2569
|
-
create: () => false,
|
2570
|
-
update: (value, tr) => {
|
2571
|
-
for (const effect of tr.effects) {
|
2572
|
-
if (effect.is(focusEffect)) {
|
2573
|
-
return effect.value;
|
2574
|
-
}
|
2575
|
-
}
|
2576
|
-
return value;
|
2577
|
-
}
|
2578
|
-
});
|
2579
|
-
var focus = [
|
2580
|
-
focusField,
|
2581
|
-
EditorView13.domEventHandlers({
|
2582
|
-
focus: (event, view) => {
|
2583
|
-
setTimeout(() => view.dispatch({
|
2584
|
-
effects: focusEffect.of(true)
|
2585
|
-
}));
|
2586
|
-
},
|
2587
|
-
blur: (event, view) => {
|
2588
|
-
setTimeout(() => view.dispatch({
|
2589
|
-
effects: focusEffect.of(false)
|
2590
|
-
}));
|
2591
|
-
}
|
2592
|
-
})
|
2593
|
-
];
|
2594
|
-
|
2595
2594
|
// src/defaults.ts
|
2596
|
-
import { EditorView as
|
2595
|
+
import { EditorView as EditorView13 } from "@codemirror/view";
|
2597
2596
|
import { mx as mx2 } from "@dxos/react-ui-theme";
|
2598
2597
|
|
2599
2598
|
// src/styles/markdown.ts
|
@@ -2730,7 +2729,7 @@ var defaultTheme = {
|
|
2730
2729
|
* Tooltip.
|
2731
2730
|
*/
|
2732
2731
|
".cm-tooltip": {
|
2733
|
-
background: "var(--dx-
|
2732
|
+
background: "var(--dx-modalSurface)"
|
2734
2733
|
},
|
2735
2734
|
".cm-tooltip-below": {},
|
2736
2735
|
/**
|
@@ -2750,7 +2749,8 @@ var defaultTheme = {
|
|
2750
2749
|
padding: "4px"
|
2751
2750
|
},
|
2752
2751
|
".cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]": {
|
2753
|
-
background: "var(--dx-
|
2752
|
+
background: "var(--dx-accentSurface)",
|
2753
|
+
color: "var(--dx-accentSurfaceText)"
|
2754
2754
|
},
|
2755
2755
|
".cm-tooltip.cm-tooltip-autocomplete > ul > completion-section": {
|
2756
2756
|
paddingLeft: "4px !important",
|
@@ -2804,7 +2804,7 @@ var defaultTheme = {
|
|
2804
2804
|
outline: "1px solid transparent"
|
2805
2805
|
},
|
2806
2806
|
".cm-panel input, .cm-panel button": {
|
2807
|
-
backgroundColor: "var(--dx-
|
2807
|
+
backgroundColor: "var(--dx-inputSurface)"
|
2808
2808
|
},
|
2809
2809
|
".cm-panel input:focus, .cm-panel button:focus": {
|
2810
2810
|
outline: "1px solid var(--dx-neutralFocusIndicator)"
|
@@ -2846,13 +2846,13 @@ var editorSlots = {
|
|
2846
2846
|
className: editorWidth
|
2847
2847
|
}
|
2848
2848
|
};
|
2849
|
-
var editorGutter =
|
2849
|
+
var editorGutter = EditorView13.theme({
|
2850
2850
|
".cm-gutters": {
|
2851
2851
|
background: "var(--dx-baseSurface)",
|
2852
2852
|
paddingRight: "1rem"
|
2853
2853
|
}
|
2854
2854
|
});
|
2855
|
-
var editorMonospace =
|
2855
|
+
var editorMonospace = EditorView13.theme({
|
2856
2856
|
".cm-content": {
|
2857
2857
|
fontFamily: fontMono
|
2858
2858
|
}
|
@@ -2860,6 +2860,37 @@ var editorMonospace = EditorView14.theme({
|
|
2860
2860
|
var editorWithToolbarLayout = "grid grid-cols-1 grid-rows-[min-content_1fr] data-[toolbar=disabled]:grid-rows-[1fr] justify-center content-start overflow-hidden";
|
2861
2861
|
var stackItemContentEditorClassNames = (role) => mx2("attention-surface dx-focus-ring-inset data-[toolbar=disabled]:pbs-2", role === "section" ? "[&_.cm-scroller]:overflow-hidden [&_.cm-scroller]:min-bs-24" : "min-bs-0");
|
2862
2862
|
|
2863
|
+
// src/extensions/focus.ts
|
2864
|
+
import { StateEffect as StateEffect5, StateField as StateField6 } from "@codemirror/state";
|
2865
|
+
import { EditorView as EditorView14 } from "@codemirror/view";
|
2866
|
+
var focusEffect = StateEffect5.define();
|
2867
|
+
var focusField = StateField6.define({
|
2868
|
+
create: () => false,
|
2869
|
+
update: (value, tr) => {
|
2870
|
+
for (const effect of tr.effects) {
|
2871
|
+
if (effect.is(focusEffect)) {
|
2872
|
+
return effect.value;
|
2873
|
+
}
|
2874
|
+
}
|
2875
|
+
return value;
|
2876
|
+
}
|
2877
|
+
});
|
2878
|
+
var focus = [
|
2879
|
+
focusField,
|
2880
|
+
EditorView14.domEventHandlers({
|
2881
|
+
focus: (event, view) => {
|
2882
|
+
setTimeout(() => view.dispatch({
|
2883
|
+
effects: focusEffect.of(true)
|
2884
|
+
}));
|
2885
|
+
},
|
2886
|
+
blur: (event, view) => {
|
2887
|
+
setTimeout(() => view.dispatch({
|
2888
|
+
effects: focusEffect.of(false)
|
2889
|
+
}));
|
2890
|
+
}
|
2891
|
+
})
|
2892
|
+
];
|
2893
|
+
|
2863
2894
|
// src/extensions/factories.ts
|
2864
2895
|
var __dxlog_file8 = "/__w/dxos/dxos/packages/ui/react-ui-editor/src/extensions/factories.ts";
|
2865
2896
|
var preventNewline = EditorState.transactionFilter.of((tr) => tr.newDoc.lines > 1 ? [] : tr);
|
@@ -2872,7 +2903,7 @@ var defaultBasicOptions = {
|
|
2872
2903
|
history: true,
|
2873
2904
|
keymap: "standard",
|
2874
2905
|
lineWrapping: true,
|
2875
|
-
search:
|
2906
|
+
search: false
|
2876
2907
|
};
|
2877
2908
|
var keymaps = {
|
2878
2909
|
// https://codemirror.net/docs/ref/#commands.standardKeymap
|
@@ -2887,7 +2918,7 @@ var createBasicExtensions = (_props) => {
|
|
2887
2918
|
EditorView15.exceptionSink.of((err) => {
|
2888
2919
|
log5.catch(err, void 0, {
|
2889
2920
|
F: __dxlog_file8,
|
2890
|
-
L:
|
2921
|
+
L: 101,
|
2891
2922
|
S: void 0,
|
2892
2923
|
C: (f, a) => f(...a)
|
2893
2924
|
});
|
@@ -3037,6 +3068,7 @@ var folding = (_props = {}) => [
|
|
3037
3068
|
import { Decoration as Decoration8, EditorView as EditorView17, MatchDecorator, ViewPlugin as ViewPlugin11, WidgetType as WidgetType4 } from "@codemirror/view";
|
3038
3069
|
import { getHashColor, mx as mx3 } from "@dxos/react-ui-theme";
|
3039
3070
|
var TagWidget = class extends WidgetType4 {
|
3071
|
+
_text;
|
3040
3072
|
constructor(_text) {
|
3041
3073
|
super(), this._text = _text;
|
3042
3074
|
}
|
@@ -3055,6 +3087,7 @@ var tagMatcher = new MatchDecorator({
|
|
3055
3087
|
});
|
3056
3088
|
var hashtag = () => [
|
3057
3089
|
ViewPlugin11.fromClass(class {
|
3090
|
+
tags;
|
3058
3091
|
constructor(view) {
|
3059
3092
|
this.tags = tagMatcher.createDeco(view);
|
3060
3093
|
}
|
@@ -4295,7 +4328,7 @@ var processEditorPayload = (view, { type, data }) => {
|
|
4295
4328
|
// src/extensions/markdown/bundle.ts
|
4296
4329
|
import { completionKeymap as completionKeymap2 } from "@codemirror/autocomplete";
|
4297
4330
|
import { defaultKeymap as defaultKeymap2, indentWithTab as indentWithTab2 } from "@codemirror/commands";
|
4298
|
-
import { markdownLanguage as markdownLanguage3
|
4331
|
+
import { markdown, markdownLanguage as markdownLanguage3 } from "@codemirror/lang-markdown";
|
4299
4332
|
import { syntaxHighlighting as syntaxHighlighting2 } from "@codemirror/language";
|
4300
4333
|
import { languages } from "@codemirror/language-data";
|
4301
4334
|
import { keymap as keymap10 } from "@codemirror/view";
|
@@ -4304,7 +4337,7 @@ import { isNotFalsy as isNotFalsy3 } from "@dxos/util";
|
|
4304
4337
|
// src/extensions/markdown/highlight.ts
|
4305
4338
|
import { markdownLanguage as markdownLanguage2 } from "@codemirror/lang-markdown";
|
4306
4339
|
import { HighlightStyle } from "@codemirror/language";
|
4307
|
-
import {
|
4340
|
+
import { Tag, styleTags, tags } from "@lezer/highlight";
|
4308
4341
|
import { Table } from "@lezer/markdown";
|
4309
4342
|
var markdownTags = {
|
4310
4343
|
Blockquote: Tag.define(),
|
@@ -4545,7 +4578,7 @@ var convertTreeToJson = (state) => {
|
|
4545
4578
|
// src/extensions/markdown/decorate.ts
|
4546
4579
|
import { syntaxTree as syntaxTree7 } from "@codemirror/language";
|
4547
4580
|
import { RangeSetBuilder as RangeSetBuilder6, StateEffect as StateEffect6 } from "@codemirror/state";
|
4548
|
-
import {
|
4581
|
+
import { Decoration as Decoration11, EditorView as EditorView23, ViewPlugin as ViewPlugin13, WidgetType as WidgetType7 } from "@codemirror/view";
|
4549
4582
|
import { invariant as invariant4 } from "@dxos/invariant";
|
4550
4583
|
import { mx as mx4 } from "@dxos/react-ui-theme";
|
4551
4584
|
|
@@ -4763,6 +4796,7 @@ var preloadImage = (url) => {
|
|
4763
4796
|
}
|
4764
4797
|
};
|
4765
4798
|
var ImageWidget = class extends WidgetType5 {
|
4799
|
+
_url;
|
4766
4800
|
constructor(_url) {
|
4767
4801
|
super(), this._url = _url;
|
4768
4802
|
}
|
@@ -4971,6 +5005,7 @@ var update = (state, _options) => {
|
|
4971
5005
|
return builder.finish();
|
4972
5006
|
};
|
4973
5007
|
var TableWidget = class extends WidgetType6 {
|
5008
|
+
_table;
|
4974
5009
|
constructor(_table) {
|
4975
5010
|
super(), this._table = _table;
|
4976
5011
|
}
|
@@ -5019,6 +5054,8 @@ var HorizontalRuleWidget = class extends WidgetType7 {
|
|
5019
5054
|
}
|
5020
5055
|
};
|
5021
5056
|
var LinkButton = class extends WidgetType7 {
|
5057
|
+
url;
|
5058
|
+
render;
|
5022
5059
|
constructor(url, render) {
|
5023
5060
|
super(), this.url = url, this.render = render;
|
5024
5061
|
}
|
@@ -5035,6 +5072,7 @@ var LinkButton = class extends WidgetType7 {
|
|
5035
5072
|
}
|
5036
5073
|
};
|
5037
5074
|
var CheckboxWidget = class extends WidgetType7 {
|
5075
|
+
_checked;
|
5038
5076
|
constructor(_checked) {
|
5039
5077
|
super(), this._checked = _checked;
|
5040
5078
|
}
|
@@ -5079,6 +5117,8 @@ var CheckboxWidget = class extends WidgetType7 {
|
|
5079
5117
|
}
|
5080
5118
|
};
|
5081
5119
|
var TextWidget = class extends WidgetType7 {
|
5120
|
+
text;
|
5121
|
+
className;
|
5082
5122
|
constructor(text, className) {
|
5083
5123
|
super(), this.text = text, this.className = className;
|
5084
5124
|
}
|
@@ -5136,7 +5176,7 @@ var buildDecorations2 = (view, options, focus2) => {
|
|
5136
5176
|
const getHeaderLevels = (node, level) => {
|
5137
5177
|
invariant4(level > 0, void 0, {
|
5138
5178
|
F: __dxlog_file9,
|
5139
|
-
L:
|
5179
|
+
L: 180,
|
5140
5180
|
S: void 0,
|
5141
5181
|
A: [
|
5142
5182
|
"level > 0",
|
@@ -5175,7 +5215,7 @@ var buildDecorations2 = (view, options, focus2) => {
|
|
5175
5215
|
const getCurrentListLevel = () => {
|
5176
5216
|
invariant4(listLevels.length, void 0, {
|
5177
5217
|
F: __dxlog_file9,
|
5178
|
-
L:
|
5218
|
+
L: 202,
|
5179
5219
|
S: void 0,
|
5180
5220
|
A: [
|
5181
5221
|
"listLevels.length",
|
@@ -5415,6 +5455,9 @@ var forceUpdate = StateEffect6.define();
|
|
5415
5455
|
var decorateMarkdown = (options = {}) => {
|
5416
5456
|
return [
|
5417
5457
|
ViewPlugin13.fromClass(class {
|
5458
|
+
deco;
|
5459
|
+
atomicDeco;
|
5460
|
+
pendingUpdate;
|
5418
5461
|
constructor(view) {
|
5419
5462
|
({ deco: this.deco, atomicDeco: this.atomicDeco } = buildDecorations2(view, options, view.hasFocus));
|
5420
5463
|
}
|
@@ -5597,11 +5640,14 @@ var itemToJSON = ({ type, index, level, lineRange, contentRange, children }) =>
|
|
5597
5640
|
};
|
5598
5641
|
};
|
5599
5642
|
var Tree = class {
|
5643
|
+
type = "root";
|
5644
|
+
index = -1;
|
5645
|
+
level = -1;
|
5646
|
+
node;
|
5647
|
+
lineRange;
|
5648
|
+
contentRange;
|
5649
|
+
children = [];
|
5600
5650
|
constructor(node) {
|
5601
|
-
this.type = "root";
|
5602
|
-
this.index = -1;
|
5603
|
-
this.level = -1;
|
5604
|
-
this.children = [];
|
5605
5651
|
this.node = node;
|
5606
5652
|
this.lineRange = {
|
5607
5653
|
from: node.from,
|
@@ -6362,8 +6408,8 @@ var outliner = (options = {}) => [
|
|
6362
6408
|
];
|
6363
6409
|
var decorations = () => [
|
6364
6410
|
ViewPlugin15.fromClass(class {
|
6411
|
+
decorations = Decoration12.none;
|
6365
6412
|
constructor(view) {
|
6366
|
-
this.decorations = Decoration12.none;
|
6367
6413
|
this.updateDecorations(view.state, view);
|
6368
6414
|
}
|
6369
6415
|
update(update2) {
|
@@ -6500,6 +6546,8 @@ var buildDecorations3 = (state, options) => {
|
|
6500
6546
|
return builder.finish();
|
6501
6547
|
};
|
6502
6548
|
var PreviewInlineWidget = class extends WidgetType8 {
|
6549
|
+
_options;
|
6550
|
+
_link;
|
6503
6551
|
constructor(_options, _link) {
|
6504
6552
|
super(), this._options = _options, this._link = _link;
|
6505
6553
|
}
|
@@ -6517,6 +6565,8 @@ var PreviewInlineWidget = class extends WidgetType8 {
|
|
6517
6565
|
}
|
6518
6566
|
};
|
6519
6567
|
var PreviewBlockWidget = class extends WidgetType8 {
|
6568
|
+
_options;
|
6569
|
+
_link;
|
6520
6570
|
constructor(_options, _link) {
|
6521
6571
|
super(), this._options = _options, this._link = _link;
|
6522
6572
|
}
|
@@ -7464,7 +7514,7 @@ var linkSlashCommands = {
|
|
7464
7514
|
// src/components/Popover/RefPopover.tsx
|
7465
7515
|
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
7466
7516
|
import { createContext } from "@radix-ui/react-context";
|
7467
|
-
import React6, {
|
7517
|
+
import React6, { forwardRef as forwardRef2, useCallback as useCallback5, useEffect as useEffect4, useRef as useRef4, useState as useState3 } from "react";
|
7468
7518
|
import { addEventListener as addEventListener2 } from "@dxos/async";
|
7469
7519
|
import { Popover as Popover2 } from "@dxos/react-ui";
|
7470
7520
|
var customEventOptions = {
|
@@ -7548,7 +7598,7 @@ var PreviewProvider = ({ children, onLookup }) => {
|
|
7548
7598
|
// src/components/Popover/RefDropdownMenu.tsx
|
7549
7599
|
import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
|
7550
7600
|
import { createContext as createContext2 } from "@radix-ui/react-context";
|
7551
|
-
import React7, {
|
7601
|
+
import React7, { useCallback as useCallback6, useEffect as useEffect5, useRef as useRef5, useState as useState4 } from "react";
|
7552
7602
|
import { addEventListener as addEventListener3 } from "@dxos/async";
|
7553
7603
|
import { DropdownMenu } from "@dxos/react-ui";
|
7554
7604
|
var customEventOptions2 = {
|