@dxos/react-ui-editor 0.3.10 → 0.3.11-main.0e40963
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 +1971 -1744
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts +14 -10
- package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TextEditor/TextEditor.d.ts +3 -2
- package/dist/types/src/components/TextEditor/TextEditor.d.ts.map +1 -1
- package/dist/types/src/components/TextEditor/index.d.ts +0 -2
- package/dist/types/src/components/TextEditor/index.d.ts.map +1 -1
- package/dist/types/src/extensions/autocomplete.d.ts.map +1 -0
- package/dist/types/src/extensions/basic.d.ts.map +1 -0
- package/dist/types/src/extensions/blast.d.ts.map +1 -0
- package/dist/types/src/extensions/code.d.ts.map +1 -0
- package/dist/types/src/extensions/comments.d.ts +48 -0
- package/dist/types/src/extensions/comments.d.ts.map +1 -0
- package/dist/types/src/extensions/hr.d.ts +2 -0
- package/dist/types/src/extensions/hr.d.ts.map +1 -0
- package/dist/types/src/extensions/image.d.ts.map +1 -0
- package/dist/types/src/{components/TextEditor/extensions → extensions}/index.d.ts +3 -3
- package/dist/types/src/extensions/index.d.ts.map +1 -0
- package/dist/types/src/{components/TextEditor/extensions → extensions}/link.d.ts +1 -0
- package/dist/types/src/extensions/link.d.ts.map +1 -0
- package/dist/types/src/extensions/listener.d.ts +10 -0
- package/dist/types/src/extensions/listener.d.ts.map +1 -0
- package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -0
- package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/highlight.d.ts +0 -1
- package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -0
- package/dist/types/src/extensions/markdown/index.d.ts.map +1 -0
- package/dist/types/src/extensions/mention.d.ts.map +1 -0
- package/dist/types/src/extensions/mermaid.d.ts +3 -0
- package/dist/types/src/extensions/mermaid.d.ts.map +1 -0
- package/dist/types/src/extensions/table.d.ts.map +1 -0
- package/dist/types/src/extensions/tasklist.d.ts.map +1 -0
- package/dist/types/src/{components/TextEditor/extensions/demo.d.ts → extensions/typewriter.d.ts} +2 -3
- package/dist/types/src/extensions/typewriter.d.ts.map +1 -0
- package/dist/types/src/extensions/util.d.ts +5 -0
- package/dist/types/src/extensions/util.d.ts.map +1 -0
- package/dist/types/src/hooks/automerge/automerge.stories.d.ts +2 -3
- package/dist/types/src/hooks/automerge/automerge.stories.d.ts.map +1 -1
- package/dist/types/src/hooks/automerge/plugin.d.ts.map +1 -1
- package/dist/types/src/hooks/automerge/{PatchSemaphore.d.ts → semaphore.d.ts} +1 -1
- package/dist/types/src/hooks/automerge/semaphore.d.ts.map +1 -0
- package/dist/types/src/hooks/automerge/update-automerge.d.ts +6 -0
- package/dist/types/src/hooks/automerge/update-automerge.d.ts.map +1 -0
- package/dist/types/src/hooks/automerge/update-codemirror.d.ts +5 -0
- package/dist/types/src/hooks/automerge/update-codemirror.d.ts.map +1 -0
- package/dist/types/src/hooks/useTextModel.d.ts +14 -6
- package/dist/types/src/hooks/useTextModel.d.ts.map +1 -1
- package/dist/types/src/hooks/yjs/yjs.test.d.ts +2 -0
- package/dist/types/src/hooks/yjs/yjs.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/testing/replicator.d.ts.map +1 -1
- package/dist/types/src/{components/TextEditor/themes → themes}/default.d.ts +5 -13
- package/dist/types/src/themes/default.d.ts.map +1 -0
- package/dist/types/src/themes/index.d.ts.map +1 -0
- package/package.json +24 -20
- package/src/components/TextEditor/MarkdownEditor.stories.tsx +130 -71
- package/src/components/TextEditor/TextEditor.stories.tsx +2 -2
- package/src/components/TextEditor/TextEditor.tsx +29 -25
- package/src/components/TextEditor/index.ts +0 -3
- package/src/{components/TextEditor/extensions → extensions}/code.ts +13 -13
- package/src/extensions/comments.ts +391 -0
- package/src/extensions/hr.ts +74 -0
- package/src/{components/TextEditor/extensions → extensions}/image.ts +3 -1
- package/src/{components/TextEditor/extensions → extensions}/index.ts +3 -3
- package/src/{components/TextEditor/extensions → extensions}/link.ts +66 -10
- package/src/extensions/listener.ts +35 -0
- package/src/{components/TextEditor/extensions → extensions}/markdown/highlight.ts +6 -9
- package/src/extensions/mermaid.ts +11 -0
- package/src/{components/TextEditor/extensions → extensions}/table.ts +14 -1
- package/src/{components/TextEditor/extensions/demo.ts → extensions/typewriter.ts} +2 -3
- package/src/extensions/util.ts +18 -0
- package/src/hooks/automerge/automerge.stories.tsx +2 -3
- package/src/hooks/automerge/plugin.ts +1 -1
- package/src/hooks/automerge/{PatchSemaphore.ts → semaphore.ts} +4 -3
- package/src/hooks/automerge/{translation/codemirror-to-automerge.ts → update-automerge.ts} +3 -3
- package/src/hooks/automerge/{translation/automerge-to-codemirror.ts → update-codemirror.ts} +2 -7
- package/src/hooks/useTextModel.ts +60 -22
- package/src/hooks/yjs/yjs.test.ts +59 -0
- package/src/index.ts +3 -0
- package/src/testing/replicator.ts +0 -1
- package/src/{components/TextEditor/themes → themes}/default.ts +61 -38
- package/dist/types/src/components/TextEditor/extensions/autocomplete.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/basic.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/blast.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/code.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/comments.d.ts +0 -18
- package/dist/types/src/components/TextEditor/extensions/comments.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/demo.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/experimental.d.ts +0 -10
- package/dist/types/src/components/TextEditor/extensions/experimental.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/highlight.d.ts +0 -24
- package/dist/types/src/components/TextEditor/extensions/highlight.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/image.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/index.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/link.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/listener.d.ts +0 -9
- package/dist/types/src/components/TextEditor/extensions/listener.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/markdown/bundle.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/markdown/highlight.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/markdown/index.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/mention.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/table.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/tasklist.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/extensions/tooltip.d.ts +0 -12
- package/dist/types/src/components/TextEditor/extensions/tooltip.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/themes/default.d.ts.map +0 -1
- package/dist/types/src/components/TextEditor/themes/index.d.ts.map +0 -1
- package/dist/types/src/hooks/automerge/PatchSemaphore.d.ts.map +0 -1
- package/dist/types/src/hooks/automerge/translation/automerge-to-codemirror.d.ts +0 -5
- package/dist/types/src/hooks/automerge/translation/automerge-to-codemirror.d.ts.map +0 -1
- package/dist/types/src/hooks/automerge/translation/codemirror-to-automerge.d.ts +0 -6
- package/dist/types/src/hooks/automerge/translation/codemirror-to-automerge.d.ts.map +0 -1
- package/dist/types/src/hooks/automerge/translation/index.d.ts +0 -3
- package/dist/types/src/hooks/automerge/translation/index.d.ts.map +0 -1
- package/src/components/TextEditor/extensions/comments.ts +0 -173
- package/src/components/TextEditor/extensions/experimental.tsx +0 -114
- package/src/components/TextEditor/extensions/highlight.ts +0 -128
- package/src/components/TextEditor/extensions/listener.ts +0 -23
- package/src/components/TextEditor/extensions/tooltip.tsx +0 -61
- package/src/hooks/automerge/translation/index.ts +0 -6
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/autocomplete.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/basic.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/blast.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/code.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/image.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/bundle.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/index.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/mention.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/table.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/extensions → extensions}/tasklist.d.ts +0 -0
- /package/dist/types/src/{components/TextEditor/themes → themes}/index.d.ts +0 -0
- /package/src/{components/TextEditor/extensions → extensions}/autocomplete.ts +0 -0
- /package/src/{components/TextEditor/extensions → extensions}/basic.ts +0 -0
- /package/src/{components/TextEditor/extensions → extensions}/blast.ts +0 -0
- /package/src/{components/TextEditor/extensions → extensions}/markdown/bundle.ts +0 -0
- /package/src/{components/TextEditor/extensions → extensions}/markdown/index.ts +0 -0
- /package/src/{components/TextEditor/extensions → extensions}/mention.ts +0 -0
- /package/src/{components/TextEditor/extensions → extensions}/tasklist.ts +0 -0
- /package/src/{components/TextEditor/themes → themes}/index.ts +0 -0
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
import { type Extension } from '@codemirror/state';
|
|
1
|
+
import { type Extension, StateField } from '@codemirror/state';
|
|
2
2
|
import type * as awarenessProtocol from 'y-protocols/awareness';
|
|
3
3
|
import { type DocAccessor, type Space, type TextObject } from '@dxos/react-client/echo';
|
|
4
4
|
import { type Identity } from '@dxos/react-client/halo';
|
|
5
5
|
import type { YText, YXmlFragment } from '@dxos/text-model';
|
|
6
6
|
type Awareness = awarenessProtocol.Awareness;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* State field makes the model available to other extensions.
|
|
9
|
+
*/
|
|
10
|
+
export declare const modelState: StateField<EditorModel | undefined>;
|
|
11
|
+
export type Range = {
|
|
9
12
|
from: number;
|
|
10
13
|
to: number;
|
|
11
14
|
};
|
|
15
|
+
export type CommentRange = {
|
|
16
|
+
id: string;
|
|
17
|
+
cursor: string;
|
|
18
|
+
};
|
|
12
19
|
export type EditorModel = {
|
|
13
20
|
id: string;
|
|
14
21
|
content: string | YText | YXmlFragment | DocAccessor;
|
|
15
22
|
text: () => string;
|
|
16
|
-
|
|
23
|
+
getCursorFromRange?: (value: Range) => string;
|
|
24
|
+
getRangeFromCursor?: (cursor: string) => Range | undefined;
|
|
17
25
|
extension?: Extension;
|
|
18
26
|
awareness?: Awareness;
|
|
19
27
|
peer?: {
|
|
@@ -21,11 +29,11 @@ export type EditorModel = {
|
|
|
21
29
|
name?: string;
|
|
22
30
|
};
|
|
23
31
|
};
|
|
24
|
-
export type
|
|
32
|
+
export type UseTextModelProps = {
|
|
25
33
|
identity?: Identity | null;
|
|
26
34
|
space?: Space;
|
|
27
35
|
text?: TextObject;
|
|
28
36
|
};
|
|
29
|
-
export declare const useTextModel: (
|
|
37
|
+
export declare const useTextModel: (props: UseTextModelProps) => EditorModel | undefined;
|
|
30
38
|
export {};
|
|
31
39
|
//# sourceMappingURL=useTextModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTextModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useTextModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"useTextModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useTextModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/D,OAAO,KAAK,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAIhE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,UAAU,EAIhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAO5D,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAE7C;;GAEG;AAEH,eAAO,MAAM,UAAU,qCAGrB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,WAAW,CAAC;IACrD,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAIF,eAAO,MAAM,YAAY,UAAW,iBAAiB,KAAG,WAAW,GAAG,SAKrE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yjs.test.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/yjs/yjs.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export { TextKind } from '@dxos/protocols/proto/dxos/echo/model/text';
|
|
2
2
|
export { Doc, YText, YXmlFragment } from '@dxos/text-model';
|
|
3
|
+
export { type Extension } from '@codemirror/state';
|
|
3
4
|
export * from './components';
|
|
5
|
+
export * from './extensions';
|
|
4
6
|
export * from './hooks';
|
|
7
|
+
export * from './themes';
|
|
5
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../src/testing/replicator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AAEtE,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzD,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAM7C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,GAAG,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;gBAEf,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAAC,GAAG,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;IA+BtG,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,mBAAmB;CAG5B;AAED;;GAEG;AACH,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAqB;gBAEN,KAAK,EAAE,QAAQ;IAE5C,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE;IAI7B,UAAU,OAAQ,MAAM,QAAO,GAAG,KAAe,WAAW,
|
|
1
|
+
{"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../src/testing/replicator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AAEtE,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzD,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAM7C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,GAAG,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;gBAEf,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAAC,GAAG,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;IA+BtG,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,mBAAmB;CAG5B;AAED;;GAEG;AACH,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAqB;gBAEN,KAAK,EAAE,QAAQ;IAE5C,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE;IAI7B,UAAU,OAAQ,MAAM,QAAO,GAAG,KAAe,WAAW,CAoB1D;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,WAAW,4BAA6B,kBAAkB,KAAG,WAEzE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ThemeStyles } from '../styles';
|
|
2
2
|
/**
|
|
3
3
|
* Minimal styles.
|
|
4
4
|
* https://codemirror.net/examples/styling
|
|
@@ -10,16 +10,8 @@ import { type StyleSpec } from 'style-mod';
|
|
|
10
10
|
* NOTE: Use one of '&', '&light', and '&dark' prefix to scope instance.
|
|
11
11
|
* NOTE: `light` and `dark` selectors are preprocessed by CodeMirror and can only be in the base theme.
|
|
12
12
|
*/
|
|
13
|
-
export declare const defaultTheme:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export declare const
|
|
17
|
-
[selector: string]: StyleSpec;
|
|
18
|
-
};
|
|
19
|
-
export declare const markdownTheme: {
|
|
20
|
-
[selector: string]: StyleSpec;
|
|
21
|
-
};
|
|
22
|
-
export declare const codeTheme: {
|
|
23
|
-
[selector: string]: StyleSpec;
|
|
24
|
-
};
|
|
13
|
+
export declare const defaultTheme: ThemeStyles;
|
|
14
|
+
export declare const textTheme: ThemeStyles;
|
|
15
|
+
export declare const markdownTheme: ThemeStyles;
|
|
16
|
+
export declare const codeTheme: ThemeStyles;
|
|
25
17
|
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/themes/default.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,WAAW,CAAC;AAKrD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,WA8P1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAOvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAK3B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAOvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/themes/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-ui-editor",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.11-main.0e40963",
|
|
4
4
|
"description": "Document editing experience within a DXOS shell.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -32,24 +32,25 @@
|
|
|
32
32
|
"lib0": "^0.2.65",
|
|
33
33
|
"lodash.defaultsdeep": "^4.6.1",
|
|
34
34
|
"lodash.get": "^4.4.2",
|
|
35
|
+
"lodash.pick": "^4.4.0",
|
|
35
36
|
"lodash.sortby": "^4.7.0",
|
|
36
37
|
"style-mod": "^4.1.0",
|
|
37
38
|
"y-codemirror.next": "^0.3.2",
|
|
38
39
|
"y-protocols": "^1.0.5",
|
|
39
40
|
"yjs": "^13.6.10",
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/display-name": "0.3.
|
|
44
|
-
"@dxos/invariant": "0.3.
|
|
45
|
-
"@dxos/echo-schema": "0.3.
|
|
46
|
-
"@dxos/protocols": "0.3.
|
|
47
|
-
"@dxos/react-async": "0.3.
|
|
48
|
-
"@dxos/log": "0.3.
|
|
49
|
-
"@dxos/react-ui": "0.3.
|
|
50
|
-
"@dxos/react-ui-theme": "0.3.
|
|
51
|
-
"@dxos/text-model": "0.3.
|
|
52
|
-
"@dxos/util": "0.3.
|
|
41
|
+
"@dxos/async": "0.3.11-main.0e40963",
|
|
42
|
+
"@dxos/debug": "0.3.11-main.0e40963",
|
|
43
|
+
"@dxos/automerge": "0.3.11-main.0e40963",
|
|
44
|
+
"@dxos/display-name": "0.3.11-main.0e40963",
|
|
45
|
+
"@dxos/invariant": "0.3.11-main.0e40963",
|
|
46
|
+
"@dxos/echo-schema": "0.3.11-main.0e40963",
|
|
47
|
+
"@dxos/protocols": "0.3.11-main.0e40963",
|
|
48
|
+
"@dxos/react-async": "0.3.11-main.0e40963",
|
|
49
|
+
"@dxos/log": "0.3.11-main.0e40963",
|
|
50
|
+
"@dxos/react-ui": "0.3.11-main.0e40963",
|
|
51
|
+
"@dxos/react-ui-theme": "0.3.11-main.0e40963",
|
|
52
|
+
"@dxos/text-model": "0.3.11-main.0e40963",
|
|
53
|
+
"@dxos/util": "0.3.11-main.0e40963"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@automerge/automerge-repo-network-broadcastchannel": "^1.0.19",
|
|
@@ -58,22 +59,25 @@
|
|
|
58
59
|
"@preact/signals-react": "^1.3.6",
|
|
59
60
|
"@types/lodash.defaultsdeep": "^4.6.6",
|
|
60
61
|
"@types/lodash.get": "^4.4.7",
|
|
62
|
+
"@types/lodash.pick": "^4.4.7",
|
|
61
63
|
"@types/lodash.sortby": "^4.7.7",
|
|
62
64
|
"@types/react": "^18.0.21",
|
|
63
65
|
"@types/react-dom": "^18.0.6",
|
|
66
|
+
"deepsignal": "1.4.0-shallow.0",
|
|
64
67
|
"react": "^18.2.0",
|
|
65
68
|
"react-dom": "^18.2.0",
|
|
66
|
-
"@dxos/config": "0.3.
|
|
67
|
-
"@dxos/echo-
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/react-client": "0.3.
|
|
69
|
+
"@dxos/config": "0.3.11-main.0e40963",
|
|
70
|
+
"@dxos/echo-signals": "0.3.11-main.0e40963",
|
|
71
|
+
"@dxos/echo-typegen": "0.3.11-main.0e40963",
|
|
72
|
+
"@dxos/react-ui": "0.3.11-main.0e40963",
|
|
73
|
+
"@dxos/react-client": "0.3.11-main.0e40963",
|
|
74
|
+
"@dxos/storybook-utils": "0.3.11-main.0e40963"
|
|
71
75
|
},
|
|
72
76
|
"peerDependencies": {
|
|
73
77
|
"@phosphor-icons/react": "^2.0.5",
|
|
74
78
|
"react": "^18.2.0",
|
|
75
79
|
"react-dom": "^18.2.0",
|
|
76
|
-
"@dxos/react-client": "0.3.
|
|
80
|
+
"@dxos/react-client": "0.3.11-main.0e40963"
|
|
77
81
|
},
|
|
78
82
|
"publishConfig": {
|
|
79
83
|
"access": "public"
|
|
@@ -8,7 +8,7 @@ import { EditorView } from '@codemirror/view';
|
|
|
8
8
|
import { faker } from '@faker-js/faker';
|
|
9
9
|
import { ArrowSquareOut } from '@phosphor-icons/react';
|
|
10
10
|
import defaultsDeep from 'lodash.defaultsdeep';
|
|
11
|
-
import React, { StrictMode, useRef, useState } from 'react';
|
|
11
|
+
import React, { type FC, StrictMode, useRef, useState } from 'react';
|
|
12
12
|
import { createRoot } from 'react-dom/client';
|
|
13
13
|
|
|
14
14
|
import { TextObject } from '@dxos/echo-schema';
|
|
@@ -19,28 +19,30 @@ import { withTheme } from '@dxos/storybook-utils';
|
|
|
19
19
|
import { MarkdownEditor, type TextEditorProps, type TextEditorRef } from './TextEditor';
|
|
20
20
|
import {
|
|
21
21
|
autocomplete,
|
|
22
|
+
blast,
|
|
23
|
+
code,
|
|
24
|
+
comments,
|
|
25
|
+
defaultOptions,
|
|
26
|
+
hr,
|
|
27
|
+
image,
|
|
22
28
|
listener,
|
|
23
29
|
link,
|
|
30
|
+
mention,
|
|
31
|
+
table,
|
|
24
32
|
tasklist,
|
|
25
|
-
|
|
26
|
-
type
|
|
33
|
+
typewriter,
|
|
34
|
+
type CommentsOptions,
|
|
27
35
|
type LinkOptions,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
mention,
|
|
32
|
-
blast,
|
|
33
|
-
demo,
|
|
34
|
-
defaultOptions,
|
|
35
|
-
highlight,
|
|
36
|
-
code,
|
|
37
|
-
} from './extensions';
|
|
38
|
-
import { useTextModel } from '../../hooks';
|
|
36
|
+
mermaid,
|
|
37
|
+
} from '../../extensions';
|
|
38
|
+
import { type CommentRange, useTextModel } from '../../hooks';
|
|
39
39
|
|
|
40
40
|
// Extensions:
|
|
41
41
|
// TODO(burdon): Table of contents.
|
|
42
42
|
// TODO(burdon): Front-matter
|
|
43
43
|
|
|
44
|
+
faker.seed(101);
|
|
45
|
+
|
|
44
46
|
const str = (...lines: string[]) => lines.join('\n');
|
|
45
47
|
|
|
46
48
|
const num = () => faker.number.int({ min: 0, max: 9999 }).toLocaleString();
|
|
@@ -55,6 +57,7 @@ const text = {
|
|
|
55
57
|
' - [ ] state',
|
|
56
58
|
' - [ ] indent',
|
|
57
59
|
' - [x] style',
|
|
60
|
+
'',
|
|
58
61
|
),
|
|
59
62
|
|
|
60
63
|
list: str(
|
|
@@ -63,6 +66,7 @@ const text = {
|
|
|
63
66
|
'- new york',
|
|
64
67
|
'- london',
|
|
65
68
|
'- tokyo',
|
|
69
|
+
'',
|
|
66
70
|
),
|
|
67
71
|
|
|
68
72
|
numbered: str(
|
|
@@ -87,8 +91,8 @@ const text = {
|
|
|
87
91
|
'',
|
|
88
92
|
' return () => <div>Test</div>;',
|
|
89
93
|
'};',
|
|
94
|
+
'```',
|
|
90
95
|
'',
|
|
91
|
-
'```'
|
|
92
96
|
),
|
|
93
97
|
|
|
94
98
|
links: str(
|
|
@@ -103,11 +107,11 @@ const text = {
|
|
|
103
107
|
table: str(
|
|
104
108
|
'# Table',
|
|
105
109
|
'',
|
|
106
|
-
`| ${faker.lorem.word().padStart(
|
|
107
|
-
'
|
|
108
|
-
`| ${num().padStart(
|
|
109
|
-
`| ${num().padStart(
|
|
110
|
-
`| ${num().padStart(
|
|
110
|
+
`| ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} |`,
|
|
111
|
+
`|-${''.padStart(12, '-')}-|-${''.padStart(12, '-')}-|-${''.padStart(12, '-')}-|`,
|
|
112
|
+
`| ${num().padStart(12)} | ${num().padStart(12)} | ${num().padStart(12)} |`,
|
|
113
|
+
`| ${num().padStart(12)} | ${num().padStart(12)} | ${num().padStart(12)} |`,
|
|
114
|
+
`| ${num().padStart(12)} | ${num().padStart(12)} | ${num().padStart(12)} |`,
|
|
111
115
|
'', // TODO(burdon): Possible GFM parsing bug if no newline?
|
|
112
116
|
),
|
|
113
117
|
|
|
@@ -119,6 +123,8 @@ const text = {
|
|
|
119
123
|
|
|
120
124
|
paragraphs: str(...faker.helpers.multiple(() => [faker.lorem.paragraph(), ''], { count: 3 }).flat()),
|
|
121
125
|
|
|
126
|
+
mermaid: str('```mermaid', 'graph TD;', 'A-->B;', 'A-->C;', 'B-->D;', 'C-->D;', '```'),
|
|
127
|
+
|
|
122
128
|
footer: str('', '', '', '', '')
|
|
123
129
|
};
|
|
124
130
|
|
|
@@ -147,7 +153,6 @@ const document = str(
|
|
|
147
153
|
text.table,
|
|
148
154
|
'---',
|
|
149
155
|
text.image,
|
|
150
|
-
'',
|
|
151
156
|
text.footer,
|
|
152
157
|
);
|
|
153
158
|
|
|
@@ -162,7 +167,7 @@ const links = [
|
|
|
162
167
|
const hover =
|
|
163
168
|
'rounded-sm text-base text-primary-600 hover:text-primary-500 dark:text-primary-300 hover:dark:text-primary-200';
|
|
164
169
|
|
|
165
|
-
const
|
|
170
|
+
const onHoverLinkTooltip: LinkOptions['onHover'] = (el, url) => {
|
|
166
171
|
const web = new URL(url);
|
|
167
172
|
createRoot(el).render(
|
|
168
173
|
<StrictMode>
|
|
@@ -174,7 +179,28 @@ const onHover: TooltipOptions['onHover'] = (el, url) => {
|
|
|
174
179
|
);
|
|
175
180
|
};
|
|
176
181
|
|
|
177
|
-
const
|
|
182
|
+
const Key: FC<{ char: string }> = ({ char }) => (
|
|
183
|
+
<span className='flex justify-center items-center w-[24px] h-[24px] rounded text-xs bg-neutral-200 text-black'>
|
|
184
|
+
{char}
|
|
185
|
+
</span>
|
|
186
|
+
);
|
|
187
|
+
|
|
188
|
+
const onCommentsHover: CommentsOptions['onHover'] = (el) => {
|
|
189
|
+
createRoot(el).render(
|
|
190
|
+
<StrictMode>
|
|
191
|
+
<div className='flex items-center gap-2 px-2 py-2 bg-neutral-700 text-white text-xs rounded'>
|
|
192
|
+
<div>Create comment</div>
|
|
193
|
+
{/* TODO(burdon): Unify shortcuts. */}
|
|
194
|
+
<div className='flex gap-1'>
|
|
195
|
+
<Key char='⌘' />
|
|
196
|
+
<Key char="'" />
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
</StrictMode>,
|
|
200
|
+
);
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
const onRenderLink: LinkOptions['onRender'] = (el, url) => {
|
|
178
204
|
createRoot(el).render(
|
|
179
205
|
<StrictMode>
|
|
180
206
|
<a href={url} target='_blank' rel='noreferrer' className={hover}>
|
|
@@ -184,14 +210,14 @@ const onRender: LinkOptions['onRender'] = (el, url) => {
|
|
|
184
210
|
);
|
|
185
211
|
};
|
|
186
212
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
213
|
+
type StoryProps = {
|
|
214
|
+
text?: string;
|
|
215
|
+
automerge?: boolean;
|
|
216
|
+
} & Pick<TextEditorProps, 'comments' | 'readonly' | 'extensions' | 'slots'>;
|
|
217
|
+
|
|
218
|
+
const Story = ({ text, automerge, ...props }: StoryProps) => {
|
|
193
219
|
const ref = useRef<TextEditorRef>(null);
|
|
194
|
-
const [item] = useState({ text: new TextObject(text, undefined, undefined, {
|
|
220
|
+
const [item] = useState({ text: new TextObject(text, undefined, undefined, { automerge }) });
|
|
195
221
|
const model = useTextModel({ text: item.text });
|
|
196
222
|
if (!model) {
|
|
197
223
|
return null;
|
|
@@ -221,11 +247,11 @@ const extensions = [
|
|
|
221
247
|
onSearch: (text) => links.filter(({ label }) => label.toLowerCase().includes(text.toLowerCase())),
|
|
222
248
|
}),
|
|
223
249
|
code(),
|
|
250
|
+
hr(),
|
|
224
251
|
image(),
|
|
225
|
-
link({ onRender }),
|
|
252
|
+
link({ onRender: onRenderLink, onHover: onHoverLinkTooltip }),
|
|
226
253
|
table(),
|
|
227
254
|
tasklist(),
|
|
228
|
-
tooltip({ onHover }),
|
|
229
255
|
];
|
|
230
256
|
|
|
231
257
|
export const Default = {
|
|
@@ -236,12 +262,27 @@ export const Readonly = {
|
|
|
236
262
|
render: () => <Story text={document} extensions={extensions} readonly />,
|
|
237
263
|
};
|
|
238
264
|
|
|
239
|
-
export const
|
|
240
|
-
render: () => <Story text={
|
|
265
|
+
export const NoExtensions = {
|
|
266
|
+
render: () => <Story text={document} />,
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
// TODO(burdon): Cursor bug if no newline after BR (cursor down just loops back to start of each paragraph).
|
|
270
|
+
export const HorizontalRule = {
|
|
271
|
+
render: () => (
|
|
272
|
+
<Story
|
|
273
|
+
text={str('# Horizontal Rule', '', text.paragraphs, '---', '', text.paragraphs, '---', '', text.paragraphs)}
|
|
274
|
+
extensions={[hr()]}
|
|
275
|
+
/>
|
|
276
|
+
),
|
|
241
277
|
};
|
|
242
278
|
|
|
243
279
|
export const Links = {
|
|
244
|
-
render: () =>
|
|
280
|
+
render: () => (
|
|
281
|
+
<Story
|
|
282
|
+
text={str(text.links, text.footer)}
|
|
283
|
+
extensions={[link({ onHover: onHoverLinkTooltip, onRender: onRenderLink })]}
|
|
284
|
+
/>
|
|
285
|
+
),
|
|
245
286
|
};
|
|
246
287
|
|
|
247
288
|
export const Code = {
|
|
@@ -256,7 +297,7 @@ export const Image = {
|
|
|
256
297
|
render: () => <Story text={str(text.image, text.footer)} readonly extensions={[image()]} />,
|
|
257
298
|
};
|
|
258
299
|
|
|
259
|
-
export const
|
|
300
|
+
export const Tasklist = {
|
|
260
301
|
render: () => (
|
|
261
302
|
<Story
|
|
262
303
|
text={str(text.tasks, '', text.list, text.footer)}
|
|
@@ -277,7 +318,7 @@ export const Autocomplete = {
|
|
|
277
318
|
<Story
|
|
278
319
|
text={str('# Autocomplete', '', 'Press CTRL-SPACE', text.footer)}
|
|
279
320
|
extensions={[
|
|
280
|
-
link({ onRender }),
|
|
321
|
+
link({ onRender: onRenderLink }),
|
|
281
322
|
autocomplete({
|
|
282
323
|
onSearch: (text) => links.filter(({ label }) => label.toLowerCase().includes(text.toLowerCase())),
|
|
283
324
|
}),
|
|
@@ -301,48 +342,56 @@ export const Mention = {
|
|
|
301
342
|
),
|
|
302
343
|
};
|
|
303
344
|
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
render: () => (
|
|
307
|
-
<Story
|
|
308
|
-
text={str(text.paragraphs, mark(), '', mark(), text.footer)}
|
|
309
|
-
extensions={[
|
|
310
|
-
comments({
|
|
311
|
-
onCreate: () => PublicKey.random().toHex(),
|
|
312
|
-
onUpdate: (info) => {
|
|
313
|
-
// console.log('update', info);
|
|
314
|
-
},
|
|
315
|
-
}),
|
|
316
|
-
highlight(),
|
|
317
|
-
]}
|
|
318
|
-
/>
|
|
319
|
-
),
|
|
345
|
+
export const Mermaid = {
|
|
346
|
+
render: () => <Story text={str('# Mermaid', '', text.mermaid, text.footer)} extensions={[code(), mermaid()]} />,
|
|
320
347
|
};
|
|
321
348
|
|
|
322
|
-
export const
|
|
323
|
-
render: () =>
|
|
324
|
-
<
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
349
|
+
export const Comments = {
|
|
350
|
+
render: () => {
|
|
351
|
+
const [commentsStates, setCommentStates] = useState<CommentRange[]>([]);
|
|
352
|
+
|
|
353
|
+
return (
|
|
354
|
+
<Story
|
|
355
|
+
text={str('# Comments', '', text.paragraphs, text.footer)}
|
|
356
|
+
comments={commentsStates}
|
|
357
|
+
extensions={[
|
|
358
|
+
comments({
|
|
359
|
+
onHover: onCommentsHover,
|
|
360
|
+
onCreate: (relPos) => {
|
|
361
|
+
const id = PublicKey.random().toHex();
|
|
362
|
+
setCommentStates((comments) => [...comments, { id, cursor: relPos }]);
|
|
363
|
+
return id;
|
|
364
|
+
},
|
|
365
|
+
onSelect: (state) => {
|
|
366
|
+
const debug = false;
|
|
367
|
+
if (debug) {
|
|
368
|
+
console.log(
|
|
369
|
+
'update',
|
|
370
|
+
JSON.stringify({
|
|
371
|
+
active: state.active?.slice(0, 8),
|
|
372
|
+
closest: state.closest?.slice(0, 8),
|
|
373
|
+
ranges: state.ranges.length,
|
|
374
|
+
}),
|
|
375
|
+
);
|
|
376
|
+
}
|
|
377
|
+
},
|
|
378
|
+
}),
|
|
379
|
+
]}
|
|
380
|
+
/>
|
|
381
|
+
);
|
|
382
|
+
},
|
|
334
383
|
};
|
|
335
384
|
|
|
336
|
-
export const
|
|
337
|
-
render: () => <Story text={str(text.paragraphs, text.footer)} extensions={[
|
|
385
|
+
export const Typewriter = {
|
|
386
|
+
render: () => <Story text={str('# Typewriter', '', text.paragraphs, text.footer)} extensions={[typewriter()]} />,
|
|
338
387
|
};
|
|
339
388
|
|
|
340
389
|
export const Blast = {
|
|
341
390
|
render: () => (
|
|
342
391
|
<Story
|
|
343
|
-
text={str(text.paragraphs, text.code, text.paragraphs)}
|
|
392
|
+
text={str('# Blast', '', text.paragraphs, text.code, text.paragraphs)}
|
|
344
393
|
extensions={[
|
|
345
|
-
|
|
394
|
+
typewriter({
|
|
346
395
|
items: localStorage.getItem('dxos.composer.extension.demo')?.split(','),
|
|
347
396
|
}),
|
|
348
397
|
blast(
|
|
@@ -362,6 +411,16 @@ export const Blast = {
|
|
|
362
411
|
),
|
|
363
412
|
};
|
|
364
413
|
|
|
365
|
-
export const
|
|
366
|
-
render: () =>
|
|
414
|
+
export const Diagnostics = {
|
|
415
|
+
render: () => (
|
|
416
|
+
<Story
|
|
417
|
+
text={document}
|
|
418
|
+
extensions={[
|
|
419
|
+
// Cursor moved.
|
|
420
|
+
EditorView.updateListener.of((update) => {
|
|
421
|
+
console.log('update', update.view.state.selection.main.head);
|
|
422
|
+
}),
|
|
423
|
+
]}
|
|
424
|
+
/>
|
|
425
|
+
),
|
|
367
426
|
};
|
|
@@ -12,8 +12,8 @@ import { fixedInsetFlexLayout, groupSurface, mx } from '@dxos/react-ui-theme';
|
|
|
12
12
|
import { withTheme } from '@dxos/storybook-utils';
|
|
13
13
|
|
|
14
14
|
import { defaultSlots, TextEditor, type TextEditorProps, type TextEditorRef, type TextEditorSlots } from './TextEditor';
|
|
15
|
-
import { textTheme } from './themes';
|
|
16
15
|
import { useTextModel } from '../../hooks';
|
|
16
|
+
import { textTheme } from '../../themes';
|
|
17
17
|
|
|
18
18
|
const initialText = [
|
|
19
19
|
'# TextEditor',
|
|
@@ -31,7 +31,7 @@ const Story = ({
|
|
|
31
31
|
...props
|
|
32
32
|
}: { text?: string; automerge?: boolean } & Pick<TextEditorProps, 'extensions' | 'slots'>) => {
|
|
33
33
|
const ref = useRef<TextEditorRef>(null);
|
|
34
|
-
const [item] = useState({ text: new TextObject(text, undefined, undefined, {
|
|
34
|
+
const [item] = useState({ text: new TextObject(text, undefined, undefined, { automerge }) });
|
|
35
35
|
const model = useTextModel({ text: item.text });
|
|
36
36
|
if (!model) {
|
|
37
37
|
return null;
|