@dxos/react-ui-editor 0.8.4-main.72ec0f3 → 0.8.4-main.7ace549
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 +19 -17
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +19 -17
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/extensions/automerge/automerge.d.ts +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/cursor.d.ts +1 -1
- package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/sync.d.ts +1 -1
- package/dist/types/src/extensions/automerge/sync.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/update-automerge.d.ts +1 -1
- package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
- package/dist/types/src/extensions/awareness/awareness-provider.d.ts +4 -4
- package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +1 -1
- package/dist/types/src/extensions/factories.d.ts +5 -4
- package/dist/types/src/extensions/factories.d.ts.map +1 -1
- package/dist/types/src/stories/Comments.stories.d.ts +1 -1
- package/dist/types/src/stories/Experimental.stories.d.ts +1 -1
- package/dist/types/src/stories/Markdown.stories.d.ts +1 -1
- package/dist/types/src/stories/Preview.stories.d.ts +1 -1
- package/dist/types/src/stories/TextEditor.stories.d.ts +1 -1
- package/dist/types/src/stories/components/EditorStory.d.ts +5 -4
- package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +36 -35
- package/src/components/EditorContent/EditorContent.stories.tsx +1 -1
- package/src/extensions/automerge/automerge.stories.tsx +3 -2
- package/src/extensions/automerge/automerge.ts +1 -1
- package/src/extensions/automerge/cursor.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-provider.ts +12 -12
- package/src/extensions/factories.ts +13 -9
- package/src/stories/Popover.stories.tsx +4 -4
- package/src/stories/components/EditorStory.tsx +5 -7
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-ui-editor",
|
|
3
|
-
"version": "0.8.4-main.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.8.4-main.7ace549",
|
|
4
|
+
"description": "Text editor components.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
7
7
|
"license": "MIT",
|
|
@@ -66,23 +66,24 @@
|
|
|
66
66
|
"lodash.merge": "^4.6.2",
|
|
67
67
|
"lodash.sortby": "^4.7.0",
|
|
68
68
|
"style-mod": "^4.1.0",
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/context": "0.8.4-main.
|
|
71
|
-
"@dxos/
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/
|
|
74
|
-
"@dxos/echo": "0.8.4-main.
|
|
75
|
-
"@dxos/
|
|
76
|
-
"@dxos/lit-ui": "0.8.4-main.
|
|
77
|
-
"@dxos/
|
|
78
|
-
"@dxos/
|
|
79
|
-
"@dxos/
|
|
80
|
-
"@dxos/
|
|
81
|
-
"@dxos/react-hooks": "0.8.4-main.
|
|
82
|
-
"@dxos/react-ui-
|
|
83
|
-
"@dxos/
|
|
84
|
-
"@dxos/
|
|
85
|
-
"@dxos/
|
|
69
|
+
"@dxos/async": "0.8.4-main.7ace549",
|
|
70
|
+
"@dxos/context": "0.8.4-main.7ace549",
|
|
71
|
+
"@dxos/app-graph": "0.8.4-main.7ace549",
|
|
72
|
+
"@dxos/debug": "0.8.4-main.7ace549",
|
|
73
|
+
"@dxos/display-name": "0.8.4-main.7ace549",
|
|
74
|
+
"@dxos/echo": "0.8.4-main.7ace549",
|
|
75
|
+
"@dxos/echo-db": "0.8.4-main.7ace549",
|
|
76
|
+
"@dxos/lit-ui": "0.8.4-main.7ace549",
|
|
77
|
+
"@dxos/live-object": "0.8.4-main.7ace549",
|
|
78
|
+
"@dxos/invariant": "0.8.4-main.7ace549",
|
|
79
|
+
"@dxos/log": "0.8.4-main.7ace549",
|
|
80
|
+
"@dxos/protocols": "0.8.4-main.7ace549",
|
|
81
|
+
"@dxos/react-hooks": "0.8.4-main.7ace549",
|
|
82
|
+
"@dxos/react-ui-menu": "0.8.4-main.7ace549",
|
|
83
|
+
"@dxos/react-ui-stack": "0.8.4-main.7ace549",
|
|
84
|
+
"@dxos/util": "0.8.4-main.7ace549",
|
|
85
|
+
"@dxos/react-ui-types": "0.8.4-main.7ace549",
|
|
86
|
+
"@dxos/client": "0.8.4-main.7ace549"
|
|
86
87
|
},
|
|
87
88
|
"devDependencies": {
|
|
88
89
|
"@automerge/automerge": "3.1.2",
|
|
@@ -110,19 +111,19 @@
|
|
|
110
111
|
"vite": "7.1.9",
|
|
111
112
|
"vite-plugin-top-level-await": "^1.6.0",
|
|
112
113
|
"vite-plugin-wasm": "^3.5.0",
|
|
113
|
-
"@dxos/config": "0.8.4-main.
|
|
114
|
-
"@dxos/echo-signals": "0.8.4-main.
|
|
115
|
-
"@dxos/keyboard": "0.8.4-main.
|
|
116
|
-
"@dxos/random": "0.8.4-main.
|
|
117
|
-
"@dxos/
|
|
118
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
119
|
-
"@dxos/
|
|
120
|
-
"@dxos/react-ui-
|
|
121
|
-
"@dxos/react-ui-
|
|
122
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
123
|
-
"@dxos/react-
|
|
124
|
-
"@dxos/
|
|
125
|
-
"@dxos/
|
|
114
|
+
"@dxos/config": "0.8.4-main.7ace549",
|
|
115
|
+
"@dxos/echo-signals": "0.8.4-main.7ace549",
|
|
116
|
+
"@dxos/keyboard": "0.8.4-main.7ace549",
|
|
117
|
+
"@dxos/random": "0.8.4-main.7ace549",
|
|
118
|
+
"@dxos/echo": "0.8.4-main.7ace549",
|
|
119
|
+
"@dxos/react-ui-attention": "0.8.4-main.7ace549",
|
|
120
|
+
"@dxos/react-ui": "0.8.4-main.7ace549",
|
|
121
|
+
"@dxos/react-ui-stack": "0.8.4-main.7ace549",
|
|
122
|
+
"@dxos/react-ui-syntax-highlighter": "0.8.4-main.7ace549",
|
|
123
|
+
"@dxos/react-ui-theme": "0.8.4-main.7ace549",
|
|
124
|
+
"@dxos/react-client": "0.8.4-main.7ace549",
|
|
125
|
+
"@dxos/schema": "0.8.4-main.7ace549",
|
|
126
|
+
"@dxos/storybook-utils": "0.8.4-main.7ace549"
|
|
126
127
|
},
|
|
127
128
|
"peerDependencies": {
|
|
128
129
|
"@effect-atom/atom-react": "^0.3.4",
|
|
@@ -130,9 +131,9 @@
|
|
|
130
131
|
"effect": "^3.13.3",
|
|
131
132
|
"react": "^19.0.0",
|
|
132
133
|
"react-dom": "^19.0.0",
|
|
133
|
-
"@dxos/react-
|
|
134
|
-
"@dxos/react-
|
|
135
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
134
|
+
"@dxos/react-client": "0.8.4-main.7ace549",
|
|
135
|
+
"@dxos/react-ui": "0.8.4-main.7ace549",
|
|
136
|
+
"@dxos/react-ui-theme": "0.8.4-main.7ace549"
|
|
136
137
|
},
|
|
137
138
|
"publishConfig": {
|
|
138
139
|
"access": "public"
|
|
@@ -6,7 +6,7 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { useMemo } from 'react';
|
|
8
8
|
|
|
9
|
-
import { createDocAccessor, createObject } from '@dxos/
|
|
9
|
+
import { createDocAccessor, createObject } from '@dxos/echo-db';
|
|
10
10
|
import { useThemeContext } from '@dxos/react-ui';
|
|
11
11
|
import { withLayout, withTheme } from '@dxos/react-ui/testing';
|
|
12
12
|
import { Text } from '@dxos/schema';
|
|
@@ -10,7 +10,8 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
|
10
10
|
import React, { useEffect, useState } from 'react';
|
|
11
11
|
|
|
12
12
|
import { Obj, Ref, Type } from '@dxos/echo';
|
|
13
|
-
import { DocAccessor,
|
|
13
|
+
import { DocAccessor, createDocAccessor } from '@dxos/echo-db';
|
|
14
|
+
import { Query, type Space, useQuery, useSpace } from '@dxos/react-client/echo';
|
|
14
15
|
import { type Identity, useIdentity } from '@dxos/react-client/halo';
|
|
15
16
|
import { type ClientRepeatedComponentProps, ClientRepeater } from '@dxos/react-client/testing';
|
|
16
17
|
import { useThemeContext } from '@dxos/react-ui';
|
|
@@ -43,7 +44,7 @@ const Editor = ({ source, autoFocus, space, identity }: EditorProps) => {
|
|
|
43
44
|
extensions: [
|
|
44
45
|
createBasicExtensions({ placeholder: 'Type here...', search: true }),
|
|
45
46
|
createThemeExtensions({ themeMode, slots: editorSlots }),
|
|
46
|
-
createDataExtensions({ id: 'test', text: source, space, identity }),
|
|
47
|
+
createDataExtensions({ id: 'test', text: source, messenger: space, identity }),
|
|
47
48
|
],
|
|
48
49
|
autoFocus,
|
|
49
50
|
}),
|
|
@@ -8,7 +8,7 @@ import { next as A } from '@automerge/automerge';
|
|
|
8
8
|
import { type Extension, StateField, Transaction } from '@codemirror/state';
|
|
9
9
|
import { EditorView, ViewPlugin } from '@codemirror/view';
|
|
10
10
|
|
|
11
|
-
import { DocAccessor } from '@dxos/
|
|
11
|
+
import { DocAccessor } from '@dxos/echo-db';
|
|
12
12
|
|
|
13
13
|
import { Cursor } from '../../util';
|
|
14
14
|
import { initialSync } from '../state';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type DocAccessor, fromCursor, toCursor } from '@dxos/
|
|
5
|
+
import { type DocAccessor, fromCursor, toCursor } from '@dxos/echo-db';
|
|
6
6
|
import { log } from '@dxos/log';
|
|
7
7
|
|
|
8
8
|
import { type CursorConverter } from '../../util';
|
|
@@ -8,7 +8,7 @@ import { next as A } from '@automerge/automerge';
|
|
|
8
8
|
import { type StateField } from '@codemirror/state';
|
|
9
9
|
import { type EditorView } from '@codemirror/view';
|
|
10
10
|
|
|
11
|
-
import { type IDocHandle } from '@dxos/
|
|
11
|
+
import { type IDocHandle } from '@dxos/echo-db';
|
|
12
12
|
import { log } from '@dxos/log';
|
|
13
13
|
|
|
14
14
|
import { type State, getLastHeads, getPath, isReconcile, reconcileAnnotation, updateHeads } from './defs';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { next as A, type Heads } from '@automerge/automerge';
|
|
8
8
|
import { type EditorState, type StateField, type Text, type Transaction } from '@codemirror/state';
|
|
9
9
|
|
|
10
|
-
import { type IDocHandle } from '@dxos/
|
|
10
|
+
import { type IDocHandle } from '@dxos/echo-db';
|
|
11
11
|
|
|
12
12
|
import { type State } from './defs';
|
|
13
13
|
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { DeferredTask, Event, sleep } from '@dxos/async';
|
|
6
|
-
import { type Space } from '@dxos/client/echo';
|
|
7
|
-
import { type GossipMessage } from '@dxos/client/mesh';
|
|
8
6
|
import { Context } from '@dxos/context';
|
|
9
7
|
import { invariant } from '@dxos/invariant';
|
|
10
8
|
import { log } from '@dxos/log';
|
|
9
|
+
import { type Messenger } from '@dxos/protocols';
|
|
10
|
+
import { type GossipMessage } from '@dxos/protocols/proto/dxos/mesh/teleport/gossip';
|
|
11
11
|
|
|
12
12
|
import { type AwarenessInfo, type AwarenessPosition, type AwarenessProvider, type AwarenessState } from './awareness';
|
|
13
13
|
|
|
@@ -23,7 +23,7 @@ type ProtocolMessage =
|
|
|
23
23
|
const DEBOUNCE_INTERVAL = 100; // ms
|
|
24
24
|
|
|
25
25
|
export type AwarenessProviderParams = {
|
|
26
|
-
|
|
26
|
+
messenger: Messenger;
|
|
27
27
|
channel: string;
|
|
28
28
|
peerId: string;
|
|
29
29
|
info: AwarenessInfo;
|
|
@@ -35,7 +35,7 @@ export type AwarenessProviderParams = {
|
|
|
35
35
|
export class SpaceAwarenessProvider implements AwarenessProvider {
|
|
36
36
|
private readonly _remoteStates = new Map<string, AwarenessState>();
|
|
37
37
|
|
|
38
|
-
private readonly
|
|
38
|
+
private readonly _messenger: Messenger;
|
|
39
39
|
private readonly _channel: string;
|
|
40
40
|
private readonly _peerId: string;
|
|
41
41
|
private readonly _info: AwarenessInfo;
|
|
@@ -46,18 +46,18 @@ export class SpaceAwarenessProvider implements AwarenessProvider {
|
|
|
46
46
|
|
|
47
47
|
public readonly remoteStateChange = new Event<void>();
|
|
48
48
|
|
|
49
|
-
constructor(
|
|
50
|
-
this.
|
|
51
|
-
this._channel =
|
|
52
|
-
this._peerId =
|
|
53
|
-
this._info =
|
|
49
|
+
constructor({ messenger, channel, peerId, info }: AwarenessProviderParams) {
|
|
50
|
+
this._messenger = messenger;
|
|
51
|
+
this._channel = channel;
|
|
52
|
+
this._peerId = peerId;
|
|
53
|
+
this._info = info;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
open(): void {
|
|
57
57
|
this._ctx = new Context();
|
|
58
58
|
this._postTask = new DeferredTask(this._ctx, async () => {
|
|
59
59
|
if (this._localState) {
|
|
60
|
-
await this.
|
|
60
|
+
await this._messenger.postMessage(this._channel, {
|
|
61
61
|
kind: 'post',
|
|
62
62
|
state: this._localState,
|
|
63
63
|
} satisfies ProtocolMessage);
|
|
@@ -69,7 +69,7 @@ export class SpaceAwarenessProvider implements AwarenessProvider {
|
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
this._ctx.onDispose(
|
|
72
|
-
this.
|
|
72
|
+
this._messenger.listen(this._channel, (message: GossipMessage) => {
|
|
73
73
|
switch (message.payload.kind) {
|
|
74
74
|
case 'query': {
|
|
75
75
|
this._handleQueryMessage();
|
|
@@ -83,7 +83,7 @@ export class SpaceAwarenessProvider implements AwarenessProvider {
|
|
|
83
83
|
}),
|
|
84
84
|
);
|
|
85
85
|
|
|
86
|
-
void this.
|
|
86
|
+
void this._messenger
|
|
87
87
|
.postMessage(this._channel, {
|
|
88
88
|
kind: 'query',
|
|
89
89
|
} satisfies ProtocolMessage)
|
|
@@ -23,10 +23,11 @@ import { vscodeDarkStyle, vscodeLightStyle } from '@uiw/codemirror-theme-vscode'
|
|
|
23
23
|
import defaultsDeep from 'lodash.defaultsdeep';
|
|
24
24
|
import merge from 'lodash.merge';
|
|
25
25
|
|
|
26
|
-
import { type DocAccessor, type Space } from '@dxos/client/echo';
|
|
27
|
-
import { type Identity } from '@dxos/client/halo';
|
|
28
26
|
import { generateName } from '@dxos/display-name';
|
|
27
|
+
import { type DocAccessor } from '@dxos/echo-db';
|
|
29
28
|
import { log } from '@dxos/log';
|
|
29
|
+
import { type Messenger } from '@dxos/protocols';
|
|
30
|
+
import { type Identity } from '@dxos/protocols/proto/dxos/client/services';
|
|
30
31
|
import { type ThemeMode } from '@dxos/react-ui';
|
|
31
32
|
import { type HuePalette } from '@dxos/react-ui-theme';
|
|
32
33
|
import { hexToHue, isTruthy } from '@dxos/util';
|
|
@@ -44,7 +45,9 @@ import { focus } from './focus';
|
|
|
44
45
|
|
|
45
46
|
export const filterChars = (chars: RegExp) => {
|
|
46
47
|
return EditorState.transactionFilter.of((transaction) => {
|
|
47
|
-
if (!transaction.docChanged)
|
|
48
|
+
if (!transaction.docChanged) {
|
|
49
|
+
return transaction;
|
|
50
|
+
}
|
|
48
51
|
|
|
49
52
|
const changes: ChangeSpec[] = [];
|
|
50
53
|
transaction.changes.iterChanges((fromA, toA, fromB, toB, text) => {
|
|
@@ -62,6 +65,7 @@ export const filterChars = (chars: RegExp) => {
|
|
|
62
65
|
if (changes.length) {
|
|
63
66
|
return [transaction, { changes, sequential: true } as TransactionSpec];
|
|
64
67
|
}
|
|
68
|
+
|
|
65
69
|
return transaction;
|
|
66
70
|
});
|
|
67
71
|
};
|
|
@@ -190,7 +194,7 @@ export type ThemeExtensionsOptions = {
|
|
|
190
194
|
|
|
191
195
|
export const grow: ThemeExtensionsOptions['slots'] = {
|
|
192
196
|
editor: {
|
|
193
|
-
className: '
|
|
197
|
+
className: 'bs-full is-full',
|
|
194
198
|
},
|
|
195
199
|
} as const;
|
|
196
200
|
|
|
@@ -244,24 +248,24 @@ export const createThemeExtensions = ({
|
|
|
244
248
|
export type DataExtensionsProps<T> = {
|
|
245
249
|
id: string;
|
|
246
250
|
text?: DocAccessor<T>;
|
|
247
|
-
|
|
251
|
+
messenger?: Messenger;
|
|
248
252
|
identity?: Identity | null;
|
|
249
253
|
};
|
|
250
254
|
|
|
251
|
-
// TODO(burdon): Move out of react-ui-editor
|
|
252
|
-
export const createDataExtensions = <T>({ id, text,
|
|
255
|
+
// TODO(burdon): Move out of react-ui-editor?
|
|
256
|
+
export const createDataExtensions = <T>({ id, text, messenger, identity }: DataExtensionsProps<T>): Extension[] => {
|
|
253
257
|
const extensions: Extension[] = [];
|
|
254
258
|
if (text) {
|
|
255
259
|
extensions.push(automerge(text));
|
|
256
260
|
}
|
|
257
261
|
|
|
258
|
-
if (
|
|
262
|
+
if (messenger && identity) {
|
|
259
263
|
const peerId = identity?.identityKey.toHex();
|
|
260
264
|
const hue = (identity?.profile?.data?.hue as HuePalette | undefined) ?? hexToHue(peerId ?? '0');
|
|
261
265
|
extensions.push(
|
|
262
266
|
awareness(
|
|
263
267
|
new SpaceAwarenessProvider({
|
|
264
|
-
|
|
268
|
+
messenger,
|
|
265
269
|
channel: `awareness.${id}`,
|
|
266
270
|
peerId: identity.identityKey.toHex(),
|
|
267
271
|
info: {
|
|
@@ -10,7 +10,7 @@ import { faker } from '@dxos/random';
|
|
|
10
10
|
import { useClientProvider, withClientProvider } from '@dxos/react-client/testing';
|
|
11
11
|
import { Domino } from '@dxos/react-ui';
|
|
12
12
|
import { withTheme } from '@dxos/react-ui/testing';
|
|
13
|
-
import {
|
|
13
|
+
import { TestSchema, type ValueGenerator, createObjectFactory } from '@dxos/schema/testing';
|
|
14
14
|
|
|
15
15
|
import {
|
|
16
16
|
type EditorController,
|
|
@@ -77,7 +77,7 @@ const LinkStory = (args: StoryProps) => {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
const name = text?.startsWith('@') ? text.slice(1).toLowerCase() : (text?.toLowerCase() ?? '');
|
|
80
|
-
const result = await space?.db.query(Query.type(
|
|
80
|
+
const result = await space?.db.query(Query.type(TestSchema.Person)).run();
|
|
81
81
|
const items = result.objects
|
|
82
82
|
.filter((object) => object.name.toLowerCase().includes(name))
|
|
83
83
|
.map(
|
|
@@ -143,11 +143,11 @@ export const Link: Story = {
|
|
|
143
143
|
withClientProvider({
|
|
144
144
|
createSpace: true,
|
|
145
145
|
onInitialized: async (client) => {
|
|
146
|
-
client.addTypes([
|
|
146
|
+
client.addTypes([TestSchema.Person]);
|
|
147
147
|
},
|
|
148
148
|
onCreateSpace: async ({ space }) => {
|
|
149
149
|
const createObjects = createObjectFactory(space.db, generator);
|
|
150
|
-
await createObjects([{ type:
|
|
150
|
+
await createObjects([{ type: TestSchema.Person, count: 10 }]);
|
|
151
151
|
await space.db.flush({ indexes: true });
|
|
152
152
|
},
|
|
153
153
|
}),
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type EditorView } from '@codemirror/view';
|
|
6
|
+
import type * as Schema from 'effect/Schema';
|
|
6
7
|
import React, { type ReactNode, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
7
8
|
|
|
8
|
-
import {
|
|
9
|
-
import { Expando } from '@dxos/echo/internal';
|
|
10
|
-
import { live } from '@dxos/echo/internal';
|
|
9
|
+
import { Obj, Type } from '@dxos/echo';
|
|
11
10
|
import { invariant } from '@dxos/invariant';
|
|
12
11
|
import { PublicKey } from '@dxos/keys';
|
|
13
12
|
import { log } from '@dxos/log';
|
|
@@ -23,7 +22,6 @@ import {
|
|
|
23
22
|
type DebugNode,
|
|
24
23
|
type ThemeExtensionsOptions,
|
|
25
24
|
createBasicExtensions,
|
|
26
|
-
createDataExtensions,
|
|
27
25
|
createMarkdownExtensions,
|
|
28
26
|
createThemeExtensions,
|
|
29
27
|
debugTree,
|
|
@@ -41,7 +39,8 @@ export type StoryProps = Pick<UseTextEditorProps, 'id' | 'scrollTo' | 'selection
|
|
|
41
39
|
debug?: DebugMode;
|
|
42
40
|
debugCustom?: (view: EditorView) => ReactNode;
|
|
43
41
|
text?: string;
|
|
44
|
-
|
|
42
|
+
// TODO(wittjosiah): Find a simpler way to define this type.
|
|
43
|
+
object?: Obj.Obj<Schema.Schema.Type<typeof Type.Expando>>;
|
|
45
44
|
readOnly?: boolean;
|
|
46
45
|
placeholder?: string;
|
|
47
46
|
lineNumbers?: boolean;
|
|
@@ -55,7 +54,7 @@ export const EditorStory = forwardRef<EditorController, StoryProps>(
|
|
|
55
54
|
|
|
56
55
|
const attentionAttrs = useAttentionAttributes('test-panel');
|
|
57
56
|
const [tree, setTree] = useState<DebugNode>();
|
|
58
|
-
const [object] = useState(
|
|
57
|
+
const [object] = useState(Obj.make(Type.Expando, { content: text ?? '' }));
|
|
59
58
|
|
|
60
59
|
const extensions = useMemo(
|
|
61
60
|
() => (debug ? [extensionsParam, debugTree(setTree)].filter(isNonNullable) : extensionsParam),
|
|
@@ -118,7 +117,6 @@ export const EditorComponent = forwardRef<EditorController, StoryProps>(
|
|
|
118
117
|
selection,
|
|
119
118
|
initialValue: text,
|
|
120
119
|
extensions: [
|
|
121
|
-
createDataExtensions({ id, text: createDocAccessor(object, ['content']) }),
|
|
122
120
|
createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true, search: true }),
|
|
123
121
|
createMarkdownExtensions(),
|
|
124
122
|
createThemeExtensions({ themeMode, syntaxHighlighting: true, slots }),
|