@dxos/react-ui-editor 0.3.7-main.fcec8cd → 0.3.7

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.
Files changed (46) hide show
  1. package/dist/lib/browser/index.mjs +23 -17
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/types/src/components/Editor/Editor.d.ts +15 -0
  5. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -0
  6. package/dist/types/src/components/{Composer/Composer.stories.d.ts → Editor/Editor.stories.d.ts} +3 -3
  7. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -0
  8. package/dist/types/src/components/Editor/index.d.ts +2 -0
  9. package/dist/types/src/components/Editor/index.d.ts.map +1 -0
  10. package/dist/types/src/components/Markdown/Markdown.d.ts +6 -6
  11. package/dist/types/src/components/Markdown/Markdown.d.ts.map +1 -1
  12. package/dist/types/src/components/Markdown/Markdown.stories.d.ts +1 -1
  13. package/dist/types/src/components/Markdown/markdownTheme.d.ts +10 -4
  14. package/dist/types/src/components/Markdown/markdownTheme.d.ts.map +1 -1
  15. package/dist/types/src/components/RichText/RichText.d.ts +7 -7
  16. package/dist/types/src/components/RichText/RichText.d.ts.map +1 -1
  17. package/dist/types/src/components/RichText/RichText.stories.d.ts +5 -5
  18. package/dist/types/src/components/RichText/RichText.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/index.d.ts +1 -1
  20. package/dist/types/src/components/index.d.ts.map +1 -1
  21. package/dist/types/src/model.d.ts +3 -3
  22. package/dist/types/src/model.d.ts.map +1 -1
  23. package/dist/types/src/testing/proto/gen/schema.d.ts +4 -4
  24. package/dist/types/src/testing/proto/gen/schema.d.ts.map +1 -1
  25. package/dist/types/src/testing/replicator.d.ts +4 -4
  26. package/dist/types/src/testing/replicator.d.ts.map +1 -1
  27. package/package.json +15 -15
  28. package/src/components/{Composer/Composer.stories.tsx → Editor/Editor.stories.tsx} +8 -8
  29. package/src/components/Editor/Editor.tsx +33 -0
  30. package/src/components/{Composer → Editor}/index.ts +1 -1
  31. package/src/components/Markdown/Markdown.stories.tsx +3 -3
  32. package/src/components/Markdown/Markdown.tsx +6 -6
  33. package/src/components/Markdown/markdownTheme.ts +12 -6
  34. package/src/components/RichText/RichText.stories.tsx +4 -4
  35. package/src/components/RichText/RichText.tsx +6 -6
  36. package/src/components/index.ts +1 -1
  37. package/src/model.ts +4 -4
  38. package/src/testing/proto/gen/schema.ts +10 -10
  39. package/src/testing/proto/schema.proto +2 -2
  40. package/src/testing/replicator.ts +6 -6
  41. package/dist/types/src/components/Composer/Composer.d.ts +0 -15
  42. package/dist/types/src/components/Composer/Composer.d.ts.map +0 -1
  43. package/dist/types/src/components/Composer/Composer.stories.d.ts.map +0 -1
  44. package/dist/types/src/components/Composer/index.d.ts +0 -2
  45. package/dist/types/src/components/Composer/index.d.ts.map +0 -1
  46. package/src/components/Composer/Composer.tsx +0 -33
@@ -41,11 +41,11 @@ export declare const markdownTheme: {
41
41
  '& .cm-line *': {
42
42
  lineHeight: number;
43
43
  };
44
- '& .cm-selectionBackground': {
45
- background: string;
44
+ '&.cm-focused .cm-selectionBackground, & .cm-selectionBackground': {
45
+ background: any;
46
46
  };
47
- '.dark & .cm-selectionBackground': {
48
- background: string;
47
+ '.dark & .cm-selectionBackground, .dark &.cm-focused .cm-selectionBackground': {
48
+ background: any;
49
49
  };
50
50
  '& .cm-selectionMatch': {
51
51
  background: string;
@@ -87,6 +87,12 @@ export declare const markdownTheme: {
87
87
  paddingBlockStart: string;
88
88
  paddingBlockEnd: string;
89
89
  };
90
+ '& .cm-ySelection, & .cm-yLineSelection': {
91
+ mixBlendMode: string;
92
+ };
93
+ '.dark & .cm-ySelection, .dark & .cm-yLineSelection': {
94
+ mixBlendMode: string;
95
+ };
90
96
  '& .cm-ySelectionCaret': {
91
97
  display: string;
92
98
  insetBlockStart: string;
@@ -1 +1 @@
1
- {"version":3,"file":"markdownTheme.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/markdownTheme.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUtD,eAAO,MAAM,MAAM,YAAY,CAAC;AAChC,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,YAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,MAAM,YAAY,CAAC;AAChC,eAAO,MAAM,IAAI,YAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,YAAY,CAAC;AAEhC,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,eAAO,MAAM,MAAM,YAAY,CAAC;AAIhC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIzB,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBA6EpC,CAAC"}
1
+ {"version":3,"file":"markdownTheme.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/markdownTheme.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUtD,eAAO,MAAM,MAAM,YAAY,CAAC;AAChC,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,YAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,MAAM,YAAY,CAAC;AAChC,eAAO,MAAM,IAAI,YAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,YAAY,CAAC;AAEhC,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,eAAO,MAAM,MAAM,YAAY,CAAC;AAIhC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwIzB,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBA6EpC,CAAC"}
@@ -1,20 +1,20 @@
1
1
  import { type Editor } from '@tiptap/react';
2
2
  import React from 'react';
3
- import { type ComposerModel, type ComposerSlots } from '../../model';
3
+ import { type EditorModel, type EditorSlots } from '../../model';
4
4
  export type TipTapEditor = Editor;
5
5
  type UseEditorOptions = {
6
- model?: ComposerModel;
6
+ model?: EditorModel;
7
7
  placeholder?: string;
8
- slots?: Pick<ComposerSlots, 'editor'>;
8
+ slots?: Pick<EditorSlots, 'editor'>;
9
9
  };
10
- export type RichTextComposerProps = UseEditorOptions & {
11
- slots?: ComposerSlots;
10
+ export type RichTextEditorProps = UseEditorOptions & {
11
+ slots?: EditorSlots;
12
12
  };
13
13
  /**
14
14
  * @deprecated
15
15
  */
16
- export declare const RichTextComposer: React.ForwardRefExoticComponent<UseEditorOptions & {
17
- slots?: ComposerSlots | undefined;
16
+ export declare const RichTextEditor: React.ForwardRefExoticComponent<UseEditorOptions & {
17
+ slots?: EditorSlots | undefined;
18
18
  } & React.RefAttributes<Editor | null>>;
19
19
  export {};
20
20
  //# sourceMappingURL=RichText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../../../../src/components/RichText/RichText.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAAgD,MAAM,eAAe,CAAC;AAE1F,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAkBrE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;CACvC,CAAC;AA2HF,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG;IACrD,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,gBAAgB;;uCAS3B,CAAC"}
1
+ {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../../../../src/components/RichText/RichText.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAAgD,MAAM,eAAe,CAAC;AAE1F,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAkBjE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;CACrC,CAAC;AA2HF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,cAAc;;uCASzB,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import '@dxosTheme';
2
2
  import React from 'react';
3
- import { type RichTextComposerProps } from './RichText';
3
+ import { type RichTextEditorProps } from './RichText';
4
4
  declare const _default: {
5
5
  component: React.ForwardRefExoticComponent<{
6
- model?: import("../..").ComposerModel | undefined;
6
+ model?: import("../..").EditorModel | undefined;
7
7
  placeholder?: string | undefined;
8
- slots?: Pick<import("../..").ComposerSlots, "editor"> | undefined;
8
+ slots?: Pick<import("../..").EditorSlots, "editor"> | undefined;
9
9
  } & {
10
- slots?: import("../..").ComposerSlots | undefined;
10
+ slots?: import("../..").EditorSlots | undefined;
11
11
  } & React.RefAttributes<import("@tiptap/react").Editor | null>>;
12
12
  };
13
13
  export default _default;
@@ -20,7 +20,7 @@ export declare const Default: {
20
20
  };
21
21
  };
22
22
  export declare const WithYjs: {
23
- render: (args: Omit<RichTextComposerProps, 'model'>) => JSX.Element;
23
+ render: (args: Omit<RichTextEditorProps, 'model'>) => JSX.Element;
24
24
  decorators: import("@storybook/csf").DecoratorFunction<import("@storybook/react/dist/types-0a347bb9").R, any>[];
25
25
  };
26
26
  //# sourceMappingURL=RichText.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/RichText/RichText.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;AAG1E,wBAEE;AAEF,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC;AAGF,eAAO,MAAM,OAAO;mBACH,KAAK,qBAAqB,EAAE,OAAO,CAAC;;CAmCpD,CAAC"}
1
+ {"version":3,"file":"RichText.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/RichText/RichText.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;AAGtE,wBAEE;AAEF,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC;AAGF,eAAO,MAAM,OAAO;mBACH,KAAK,mBAAmB,EAAE,OAAO,CAAC;;CAmClD,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from './Composer';
1
+ export * from './Editor';
2
2
  export * from './Markdown';
3
3
  export * from './RichText';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -4,7 +4,7 @@ import type * as awarenessProtocol from 'y-protocols/awareness';
4
4
  import { type Space, type TextObject } from '@dxos/react-client/echo';
5
5
  import { type Identity } from '@dxos/react-client/halo';
6
6
  import type { YText, YXmlFragment } from '@dxos/text-model';
7
- export type ComposerSlots = {
7
+ export type EditorSlots = {
8
8
  root?: Omit<ComponentProps<'div'>, 'ref'>;
9
9
  editor?: {
10
10
  className?: string;
@@ -18,7 +18,7 @@ type Awareness = awarenessProtocol.Awareness;
18
18
  type Provider = {
19
19
  awareness: Awareness;
20
20
  };
21
- export type ComposerModel = {
21
+ export type EditorModel = {
22
22
  id: string;
23
23
  content: string | YText | YXmlFragment;
24
24
  provider?: Provider;
@@ -32,6 +32,6 @@ export type UseTextModelOptions = {
32
32
  space?: Space;
33
33
  text?: TextObject;
34
34
  };
35
- export declare const useTextModel: ({ identity, space, text }: UseTextModelOptions) => ComposerModel | undefined;
35
+ export declare const useTextModel: ({ identity, space, text }: UseTextModelOptions) => EditorModel | undefined;
36
36
  export {};
37
37
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,cAAc,EAAW,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI5D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACxD,CAAC;CACH,CAAC;AAEF,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAC7C,KAAK,QAAQ,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAGzC,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,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,8BAA+B,mBAAmB,KAAG,aAAa,GAAG,SAwB7F,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,cAAc,EAAW,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI5D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACxD,CAAC;CACH,CAAC;AAEF,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAC7C,KAAK,QAAQ,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAGzC,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,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,8BAA+B,mBAAmB,KAAG,WAAW,GAAG,SAwB3F,CAAC"}
@@ -3,13 +3,13 @@
3
3
  **/
4
4
  import * as dxos_echo_schema from "@dxos/echo-schema";
5
5
  export declare const types: dxos_echo_schema.TypeCollection;
6
- export type ComposerDocumentProps = {
6
+ export type EditorDocumentProps = {
7
7
  content: dxos_echo_schema.Text;
8
8
  };
9
- export declare class ComposerDocument extends dxos_echo_schema.TypedObject<ComposerDocumentProps> {
9
+ export declare class EditorDocument extends dxos_echo_schema.TypedObject<EditorDocumentProps> {
10
10
  static readonly schema: dxos_echo_schema.Schema;
11
- static filter(filter?: Partial<ComposerDocumentProps> | dxos_echo_schema.OperatorFilter<ComposerDocument>): dxos_echo_schema.Filter<ComposerDocument>;
12
- constructor(initValues?: Partial<ComposerDocumentProps>, opts?: dxos_echo_schema.TypedObjectOptions);
11
+ static filter(filter?: Partial<EditorDocumentProps> | dxos_echo_schema.OperatorFilter<EditorDocument>): dxos_echo_schema.Filter<EditorDocument>;
12
+ constructor(initValues?: Partial<EditorDocumentProps>, opts?: dxos_echo_schema.TypedObjectOptions);
13
13
  content: dxos_echo_schema.Text;
14
14
  }
15
15
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/proto/gen/schema.ts"],"names":[],"mappings":"AAAA;;IAEI;AAEJ,OAAO,KAAK,gBAAgB,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,KAAK,iCAAwC,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;CAChC,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,WAAW,CAAC,qBAAqB,CAAC;IACvF,gBAAwB,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAExD,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,EACH,OAAO,CAAC,qBAAqB,CAAC,GAC9B,gBAAgB,CAAC,cAAc,CAAC,gBAAgB,CAAC,GACpD,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAQ1C,UAAU,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAC3C,IAAI,CAAC,EAAE,gBAAgB,CAAC,kBAAkB;IAIpC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;CACxC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/proto/gen/schema.ts"],"names":[],"mappings":"AAAA;;IAEI;AAEJ,OAAO,KAAK,gBAAgB,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,KAAK,iCAAwC,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;CAChC,CAAC;AAEF,qBAAa,cAAe,SAAQ,gBAAgB,CAAC,WAAW,CAAC,mBAAmB,CAAC;IACnF,gBAAwB,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAExD,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,EACH,OAAO,CAAC,mBAAmB,CAAC,GAC5B,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC,GAClD,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC;gBAQxC,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACzC,IAAI,CAAC,EAAE,gBAAgB,CAAC,kBAAkB;IAIpC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;CACxC"}
@@ -3,7 +3,7 @@ import * as awarenessProtocol from 'y-protocols/awareness';
3
3
  import { Doc } from 'yjs';
4
4
  import { Event } from '@dxos/async';
5
5
  import { TextKind } from '@dxos/protocols/proto/dxos/echo/model/text';
6
- import { type ComposerModel } from '../model';
6
+ import { type EditorModel } from '../model';
7
7
  type Awareness = awarenessProtocol.Awareness;
8
8
  /**
9
9
  * Yjs awareness provider in-memory.
@@ -32,14 +32,14 @@ export declare class Replicator {
32
32
  private readonly _update;
33
33
  private _peers;
34
34
  constructor(_kind: TextKind);
35
- setPeers(peers: ComposerModel[]): void;
36
- createPeer: (id: string, doc?: Doc) => ComposerModel;
35
+ setPeers(peers: EditorModel[]): void;
36
+ createPeer: (id: string, doc?: Doc) => EditorModel;
37
37
  }
38
38
  export type UseYjsModelOptions = {
39
39
  replicator: Replicator;
40
40
  id: string;
41
41
  doc?: Doc;
42
42
  };
43
- export declare const useYjsModel: ({ replicator, id, doc }: UseYjsModelOptions) => ComposerModel;
43
+ export declare const useYjsModel: ({ replicator, id, doc }: UseYjsModelOptions) => EditorModel;
44
44
  export {};
45
45
  //# sourceMappingURL=replicator.d.ts.map
@@ -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,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,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,CAAuB;gBAER,KAAK,EAAE,QAAQ;IAE5C,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE;IAI/B,UAAU,OAAQ,MAAM,QAAO,GAAG,KAAe,aAAa,CAmB5D;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,aAIzE,CAAC"}
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;AAG5C,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,CAmB1D;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,WAIzE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-ui-editor",
3
- "version": "0.3.7-main.fcec8cd",
3
+ "version": "0.3.7",
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",
@@ -47,15 +47,15 @@
47
47
  "y-prosemirror": "~1.0.20",
48
48
  "y-protocols": "^1.0.5",
49
49
  "yjs": "^13.6.8",
50
- "@dxos/debug": "0.3.7-main.fcec8cd",
51
- "@dxos/display-name": "0.3.7-main.fcec8cd",
52
- "@dxos/log": "0.3.7-main.fcec8cd",
53
- "@dxos/protocols": "0.3.7-main.fcec8cd",
54
- "@dxos/react-async": "0.3.7-main.fcec8cd",
55
- "@dxos/react-ui": "0.3.7-main.fcec8cd",
56
- "@dxos/react-ui-theme": "0.3.7-main.fcec8cd",
57
- "@dxos/text-model": "0.3.7-main.fcec8cd",
58
- "@dxos/util": "0.3.7-main.fcec8cd"
50
+ "@dxos/debug": "0.3.7",
51
+ "@dxos/display-name": "0.3.7",
52
+ "@dxos/log": "0.3.7",
53
+ "@dxos/protocols": "0.3.7",
54
+ "@dxos/react-async": "0.3.7",
55
+ "@dxos/react-ui": "0.3.7",
56
+ "@dxos/react-ui-theme": "0.3.7",
57
+ "@dxos/text-model": "0.3.7",
58
+ "@dxos/util": "0.3.7"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/lodash.get": "^4.4.7",
@@ -63,15 +63,15 @@
63
63
  "@types/react-dom": "^18.0.6",
64
64
  "react": "^18.2.0",
65
65
  "react-dom": "^18.2.0",
66
- "@dxos/config": "0.3.7-main.fcec8cd",
67
- "@dxos/echo-schema": "0.3.7-main.fcec8cd",
68
- "@dxos/echo-typegen": "0.3.7-main.fcec8cd",
69
- "@dxos/react-client": "0.3.7-main.fcec8cd"
66
+ "@dxos/config": "0.3.7",
67
+ "@dxos/echo-schema": "0.3.7",
68
+ "@dxos/echo-typegen": "0.3.7",
69
+ "@dxos/react-client": "0.3.7"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "react": "^18.2.0",
73
73
  "react-dom": "^18.2.0",
74
- "@dxos/react-client": "0.3.7-main.fcec8cd"
74
+ "@dxos/react-client": "0.3.7"
75
75
  },
76
76
  "publishConfig": {
77
77
  "access": "public"
@@ -12,20 +12,20 @@ import { useIdentity } from '@dxos/react-client/halo';
12
12
  import { ClientDecorator, setupPeersInSpace, textGenerator, useDataGenerator } from '@dxos/react-client/testing';
13
13
  import { useId } from '@dxos/react-ui';
14
14
 
15
- import { Composer, type ComposerProps } from './Composer';
16
- import { ComposerDocument, types as schema } from '../../testing';
15
+ import { Editor, type EditorProps } from './Editor';
16
+ import { EditorDocument, types as schema } from '../../testing';
17
17
 
18
18
  export default {
19
- component: Composer,
19
+ component: Editor,
20
20
  };
21
21
 
22
- const Story = ({ spaceKey, ...args }: Pick<ComposerProps, 'slots'> & { spaceKey: PublicKey }) => {
22
+ const Story = ({ spaceKey, ...args }: Pick<EditorProps, 'slots'> & { spaceKey: PublicKey }) => {
23
23
  const [generate, setGenerate] = useState(false);
24
24
  const generateId = useId('generate');
25
25
 
26
26
  const identity = useIdentity();
27
27
  const space = useSpace(spaceKey);
28
- const [document] = useQuery(space, ComposerDocument.filter());
28
+ const [document] = useQuery(space, EditorDocument.filter());
29
29
 
30
30
  useDataGenerator({
31
31
  generator: generate ? textGenerator : undefined,
@@ -39,7 +39,7 @@ const Story = ({ spaceKey, ...args }: Pick<ComposerProps, 'slots'> & { spaceKey:
39
39
  Generate Data
40
40
  </div>
41
41
  {document?.content.toString().length}
42
- <Composer identity={identity} space={space} text={document?.content} {...args} />
42
+ <Editor identity={identity} space={space} text={document?.content} {...args} />
43
43
  </main>
44
44
  );
45
45
  };
@@ -48,7 +48,7 @@ const { spaceKey: markdownSpaceKey, clients: markdownClients } = await setupPeer
48
48
  count: 2,
49
49
  schema,
50
50
  onCreateSpace: async (space) => {
51
- const document = new ComposerDocument({ content: new TextObject('Hello, Storybook!') });
51
+ const document = new EditorDocument({ content: new TextObject('Hello, Storybook!') });
52
52
  await space?.db.add(document);
53
53
  },
54
54
  });
@@ -62,7 +62,7 @@ const { spaceKey: richSpaceKey, clients: richClients } = await setupPeersInSpace
62
62
  count: 2,
63
63
  schema,
64
64
  onCreateSpace: async (space) => {
65
- const document = new ComposerDocument({ content: new TextObject('Hello, Storybook!', TextKind.RICH) });
65
+ const document = new EditorDocument({ content: new TextObject('Hello, Storybook!', TextKind.RICH) });
66
66
  await space?.db.add(document);
67
67
  },
68
68
  });
@@ -0,0 +1,33 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React, { forwardRef, memo, type Ref } from 'react';
6
+
7
+ import { YXmlFragment } from '@dxos/text-model';
8
+
9
+ import { type EditorSlots, useTextModel, type UseTextModelOptions } from '../../model';
10
+ import { MarkdownEditor, type MarkdownEditorRef } from '../Markdown';
11
+ import { RichTextEditor, type TipTapEditor } from '../RichText';
12
+
13
+ export type EditorProps = UseTextModelOptions & {
14
+ slots?: EditorSlots;
15
+ };
16
+
17
+ /**
18
+ * Memoized editor which depends on DXOS platform.
19
+ *
20
+ * Determines which editor to render based on the kind of text.
21
+ */
22
+ // NOTE: Without `memo`, if parent component uses `observer` the editor re-renders excessively.
23
+ // TODO(wittjosiah): Factor out?
24
+ export const Editor = memo(
25
+ forwardRef<TipTapEditor | MarkdownEditorRef, EditorProps>(({ slots, ...options }, forwardedRef) => {
26
+ const model = useTextModel(options);
27
+ if (model?.content instanceof YXmlFragment) {
28
+ return <RichTextEditor ref={forwardedRef as Ref<TipTapEditor>} model={model} slots={slots} />;
29
+ } else {
30
+ return <MarkdownEditor ref={forwardedRef as Ref<MarkdownEditorRef>} model={model} slots={slots} />;
31
+ }
32
+ }),
33
+ );
@@ -2,4 +2,4 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './Composer';
5
+ export * from './Editor';
@@ -11,11 +11,11 @@ import { TextKind } from '@dxos/react-client/echo';
11
11
  import { ClientDecorator, textGenerator, useDataGenerator } from '@dxos/react-client/testing';
12
12
  import { useId } from '@dxos/react-ui';
13
13
 
14
- import { MarkdownComposer } from './Markdown';
14
+ import { MarkdownEditor } from './Markdown';
15
15
  import { Replicator, useYjsModel } from '../../testing';
16
16
 
17
17
  export default {
18
- component: MarkdownComposer,
18
+ component: MarkdownEditor,
19
19
  };
20
20
 
21
21
  export const Default = {
@@ -47,7 +47,7 @@ export const WithYjs = {
47
47
  <input type='checkbox' onChange={(event) => setGenerate(event.target.checked)} />
48
48
  Generate Data
49
49
  </div>
50
- <MarkdownComposer model={model} />
50
+ <MarkdownEditor model={model} />
51
51
  </main>
52
52
  );
53
53
  },
@@ -49,25 +49,25 @@ import { YText } from '@dxos/text-model';
49
49
 
50
50
  import { markdownTagsExtension } from './markdownTags';
51
51
  import { markdownDarkHighlighting, markdownTheme } from './markdownTheme';
52
- import { type ComposerModel, type ComposerSlots } from '../../model';
52
+ import { type EditorModel, type EditorSlots } from '../../model';
53
53
 
54
54
  export const EditorModes = ['default', 'vim'] as const;
55
55
  export type EditorMode = (typeof EditorModes)[number];
56
56
 
57
- export type MarkdownComposerProps = {
58
- model?: ComposerModel;
59
- slots?: ComposerSlots;
57
+ export type MarkdownEditorProps = {
58
+ model?: EditorModel;
59
+ slots?: EditorSlots;
60
60
  editorMode?: EditorMode;
61
61
  onChange?: (content: string | Text) => void;
62
62
  };
63
63
 
64
- export type MarkdownComposerRef = {
64
+ export type MarkdownEditorRef = {
65
65
  editor: HTMLDivElement | null;
66
66
  state?: EditorState;
67
67
  view?: EditorView;
68
68
  };
69
69
 
70
- export const MarkdownComposer = forwardRef<MarkdownComposerRef, MarkdownComposerProps>(
70
+ export const MarkdownEditor = forwardRef<MarkdownEditorRef, MarkdownEditorProps>(
71
71
  ({ model, slots = {}, onChange, editorMode }, forwardedRef) => {
72
72
  const { id, content, provider, peer } = model ?? {};
73
73
  const { themeMode } = useThemeContext();
@@ -99,17 +99,17 @@ export const markdownTheme = {
99
99
  '& .cm-line *': {
100
100
  lineHeight: 1.6,
101
101
  },
102
- '& .cm-selectionBackground': {
103
- background: get(tokens, 'extend.colors.primary.150', '#00ffff') + 'aa',
102
+ '&.cm-focused .cm-selectionBackground, & .cm-selectionBackground': {
103
+ background: get(tokens, 'extend.colors.primary.150', '#00ffff'),
104
104
  },
105
- '.dark & .cm-selectionBackground': {
106
- background: get(tokens, 'extend.colors.primary.500', '#00ffff') + 'aa',
105
+ '.dark & .cm-selectionBackground, .dark &.cm-focused .cm-selectionBackground': {
106
+ background: get(tokens, 'extend.colors.primary.850', '#00ffff'),
107
107
  },
108
108
  '& .cm-selectionMatch': {
109
- background: get(tokens, 'extend.colors.primary.100', '#00ffff') + '44',
109
+ background: get(tokens, 'extend.colors.primary.250', '#00ffff') + '44',
110
110
  },
111
111
  '.dark & .cm-selectionMatch': {
112
- background: get(tokens, 'extend.colors.primary.400', '#00ffff') + '44',
112
+ background: get(tokens, 'extend.colors.primary.600', '#00ffff') + '44',
113
113
  },
114
114
  '& .cm-content': {
115
115
  caretColor: 'black',
@@ -145,6 +145,12 @@ export const markdownTheme = {
145
145
  paddingBlockStart: '.15em',
146
146
  paddingBlockEnd: '.15em',
147
147
  },
148
+ '& .cm-ySelection, & .cm-yLineSelection': {
149
+ mixBlendMode: 'multiply',
150
+ },
151
+ '.dark & .cm-ySelection, .dark & .cm-yLineSelection': {
152
+ mixBlendMode: 'screen',
153
+ },
148
154
  '& .cm-ySelectionCaret': {
149
155
  display: 'inline-block',
150
156
  insetBlockStart: '.1em',
@@ -12,11 +12,11 @@ import { ClientDecorator, textGenerator, useDataGenerator } from '@dxos/react-cl
12
12
  import { useId } from '@dxos/react-ui';
13
13
  import { mx } from '@dxos/react-ui-theme';
14
14
 
15
- import { RichTextComposer, type RichTextComposerProps } from './RichText';
15
+ import { RichTextEditor, type RichTextEditorProps } from './RichText';
16
16
  import { Replicator, useYjsModel } from '../../testing';
17
17
 
18
18
  export default {
19
- component: RichTextComposer,
19
+ component: RichTextEditor,
20
20
  };
21
21
 
22
22
  export const Default = {
@@ -30,7 +30,7 @@ export const Default = {
30
30
 
31
31
  const replicator = new Replicator(TextKind.RICH);
32
32
  export const WithYjs = {
33
- render: (args: Omit<RichTextComposerProps, 'model'>) => {
33
+ render: (args: Omit<RichTextEditorProps, 'model'>) => {
34
34
  const [generate, setGenerate] = useState(false);
35
35
  const generateId = useId('generate');
36
36
 
@@ -48,7 +48,7 @@ export const WithYjs = {
48
48
  <input type='checkbox' onChange={(event) => setGenerate(event.target.checked)} />
49
49
  Generate Data
50
50
  </div>
51
- <RichTextComposer
51
+ <RichTextEditor
52
52
  {...args}
53
53
  model={model}
54
54
  slots={{
@@ -14,7 +14,7 @@ import React, { forwardRef, useImperativeHandle, useMemo } from 'react';
14
14
  import { generateName } from '@dxos/display-name';
15
15
  import { mx } from '@dxos/react-ui-theme';
16
16
 
17
- import { type ComposerModel, type ComposerSlots } from '../../model';
17
+ import { type EditorModel, type EditorSlots } from '../../model';
18
18
  import {
19
19
  blockquote,
20
20
  bold,
@@ -35,9 +35,9 @@ import { cursorColor } from '../../yjs';
35
35
  export type TipTapEditor = Editor;
36
36
 
37
37
  type UseEditorOptions = {
38
- model?: ComposerModel;
38
+ model?: EditorModel;
39
39
  placeholder?: string;
40
- slots?: Pick<ComposerSlots, 'editor'>;
40
+ slots?: Pick<EditorSlots, 'editor'>;
41
41
  };
42
42
 
43
43
  const useEditor = ({ model, placeholder = 'Enter text…', slots = {} }: UseEditorOptions) => {
@@ -161,15 +161,15 @@ const useEditor = ({ model, placeholder = 'Enter text…', slots = {} }: UseEdit
161
161
  );
162
162
  };
163
163
 
164
- export type RichTextComposerProps = UseEditorOptions & {
165
- slots?: ComposerSlots;
164
+ export type RichTextEditorProps = UseEditorOptions & {
165
+ slots?: EditorSlots;
166
166
  };
167
167
 
168
168
  /**
169
169
  * @deprecated
170
170
  */
171
171
  // TODO(burdon): Currently broken.
172
- export const RichTextComposer = forwardRef<Editor | null, RichTextComposerProps>((props, ref) => {
172
+ export const RichTextEditor = forwardRef<Editor | null, RichTextEditorProps>((props, ref) => {
173
173
  const editor = useEditor(props);
174
174
  useImperativeHandle<Editor | null, Editor | null>(ref, () => editor, [editor]);
175
175
 
@@ -2,6 +2,6 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- export * from './Composer';
5
+ export * from './Editor';
6
6
  export * from './Markdown';
7
7
  export * from './RichText';
package/src/model.ts CHANGED
@@ -12,7 +12,7 @@ import type { YText, YXmlFragment } from '@dxos/text-model';
12
12
 
13
13
  import { SpaceAwarenessProvider } from './yjs';
14
14
 
15
- export type ComposerSlots = {
15
+ export type EditorSlots = {
16
16
  root?: Omit<ComponentProps<'div'>, 'ref'>;
17
17
  editor?: {
18
18
  className?: string;
@@ -27,7 +27,7 @@ type Awareness = awarenessProtocol.Awareness;
27
27
  type Provider = { awareness: Awareness };
28
28
 
29
29
  // TODO(wittjosiah): Factor out to common package? @dxos/react-client?
30
- export type ComposerModel = {
30
+ export type EditorModel = {
31
31
  id: string;
32
32
  content: string | YText | YXmlFragment;
33
33
  provider?: Provider;
@@ -44,8 +44,8 @@ export type UseTextModelOptions = {
44
44
  };
45
45
 
46
46
  // TODO(wittjosiah): Factor out to common package? @dxos/react-client?
47
- // TODO(burdon): Decouple space (make Composer less dependent on entire stack)?
48
- export const useTextModel = ({ identity, space, text }: UseTextModelOptions): ComposerModel | undefined => {
47
+ // TODO(burdon): Decouple space (make Editor less dependent on entire stack)?
48
+ export const useTextModel = ({ identity, space, text }: UseTextModelOptions): EditorModel | undefined => {
49
49
  const provider = useMemo(() => {
50
50
  if (!space || !text?.doc) {
51
51
  return undefined;
@@ -6,35 +6,35 @@ import * as dxos_echo_schema from "@dxos/echo-schema";
6
6
 
7
7
  export const types = new dxos_echo_schema.TypeCollection();
8
8
 
9
- export type ComposerDocumentProps = {
9
+ export type EditorDocumentProps = {
10
10
  content: dxos_echo_schema.Text;
11
11
  };
12
12
 
13
- export class ComposerDocument extends dxos_echo_schema.TypedObject<ComposerDocumentProps> {
13
+ export class EditorDocument extends dxos_echo_schema.TypedObject<EditorDocumentProps> {
14
14
  declare static readonly schema: dxos_echo_schema.Schema;
15
15
 
16
16
  static filter(
17
17
  filter?:
18
- | Partial<ComposerDocumentProps>
19
- | dxos_echo_schema.OperatorFilter<ComposerDocument>
20
- ): dxos_echo_schema.Filter<ComposerDocument> {
18
+ | Partial<EditorDocumentProps>
19
+ | dxos_echo_schema.OperatorFilter<EditorDocument>
20
+ ): dxos_echo_schema.Filter<EditorDocument> {
21
21
  return dxos_echo_schema.Filter.typename(
22
- "dxos.testing.composer.ComposerDocument",
22
+ "dxos.testing.editor.EditorDocument",
23
23
  filter
24
24
  );
25
25
  }
26
26
 
27
27
  constructor(
28
- initValues?: Partial<ComposerDocumentProps>,
28
+ initValues?: Partial<EditorDocumentProps>,
29
29
  opts?: dxos_echo_schema.TypedObjectOptions
30
30
  ) {
31
- super({ ...initValues }, { schema: ComposerDocument.schema, ...opts });
31
+ super({ ...initValues }, { schema: EditorDocument.schema, ...opts });
32
32
  }
33
33
  declare content: dxos_echo_schema.Text;
34
34
  }
35
35
 
36
- types.registerPrototype(ComposerDocument, {
37
- typename: "dxos.testing.composer.ComposerDocument",
36
+ types.registerPrototype(EditorDocument, {
37
+ typename: "dxos.testing.editor.EditorDocument",
38
38
  props: [
39
39
  {
40
40
  id: "content",
@@ -6,9 +6,9 @@ syntax = "proto3";
6
6
 
7
7
  import "dxos/schema.proto";
8
8
 
9
- package dxos.testing.composer;
9
+ package dxos.testing.editor;
10
10
 
11
- message ComposerDocument {
11
+ message EditorDocument {
12
12
  option (object) = true;
13
13
 
14
14
  dxos.schema.Text content = 1;