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