@dxos/react-ui-editor 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef

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 (124) hide show
  1. package/dist/lib/browser/index.mjs +548 -423
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/browser/translations.mjs +39 -0
  5. package/dist/lib/browser/translations.mjs.map +7 -0
  6. package/dist/lib/node-esm/index.mjs +548 -423
  7. package/dist/lib/node-esm/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/meta.json +1 -1
  9. package/dist/lib/node-esm/translations.mjs +41 -0
  10. package/dist/lib/node-esm/translations.mjs.map +7 -0
  11. package/dist/types/src/components/Editor/Editor.d.ts +30 -13
  12. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  13. package/dist/types/src/components/Editor/Editor.stories.d.ts +4 -4
  14. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
  15. package/dist/types/src/components/{EditorContent/EditorContent.d.ts → Editor/EditorView.d.ts} +5 -5
  16. package/dist/types/src/components/Editor/EditorView.d.ts.map +1 -0
  17. package/dist/types/src/components/Editor/controller.d.ts.map +1 -0
  18. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -1
  19. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -1
  20. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +2 -1
  21. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
  22. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
  23. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -1
  24. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +2 -2
  25. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  26. package/dist/types/src/components/EditorToolbar/blocks.d.ts +1 -1
  27. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  28. package/dist/types/src/components/EditorToolbar/formatting.d.ts +1 -1
  29. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  30. package/dist/types/src/components/EditorToolbar/headings.d.ts +1 -1
  31. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  32. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  33. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -1
  34. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  35. package/dist/types/src/components/EditorToolbar/lists.d.ts +1 -1
  36. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
  37. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  38. package/dist/types/src/components/EditorToolbar/types.d.ts +6 -0
  39. package/dist/types/src/components/EditorToolbar/types.d.ts.map +1 -0
  40. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +2 -2
  41. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  42. package/dist/types/src/components/index.d.ts +0 -2
  43. package/dist/types/src/components/index.d.ts.map +1 -1
  44. package/dist/types/src/extensions/Assistant.stories.d.ts +10 -0
  45. package/dist/types/src/extensions/Assistant.stories.d.ts.map +1 -0
  46. package/dist/types/src/extensions/assistant-extension.d.ts +24 -0
  47. package/dist/types/src/extensions/assistant-extension.d.ts.map +1 -0
  48. package/dist/types/src/extensions/index.d.ts +2 -0
  49. package/dist/types/src/extensions/index.d.ts.map +1 -0
  50. package/dist/types/src/hooks/index.d.ts +1 -0
  51. package/dist/types/src/hooks/index.d.ts.map +1 -1
  52. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts +25 -0
  53. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts.map +1 -0
  54. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  55. package/dist/types/src/index.d.ts +1 -2
  56. package/dist/types/src/index.d.ts.map +1 -1
  57. package/dist/types/src/stories/Automerge.stories.d.ts +24 -24
  58. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -1
  59. package/dist/types/src/stories/Comments.stories.d.ts +1 -1
  60. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  61. package/dist/types/src/stories/EditorToolbar.stories.d.ts +27 -25
  62. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  63. package/dist/types/src/stories/Experimental.stories.d.ts +2 -2
  64. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  65. package/dist/types/src/stories/Markdown.stories.d.ts +1 -1
  66. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  67. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  68. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
  69. package/dist/types/src/stories/Preview.stories.d.ts +1 -1
  70. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  71. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  72. package/dist/types/src/stories/TextEditor.stories.d.ts +1 -1
  73. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  74. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -1
  75. package/dist/types/src/stories/components/EditorStory.d.ts +1 -1
  76. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  77. package/dist/types/src/stories/components/util.d.ts +2 -1
  78. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  79. package/dist/types/src/translations.d.ts +24 -24
  80. package/dist/types/src/translations.d.ts.map +1 -1
  81. package/dist/types/src/util/react.d.ts +1 -1
  82. package/dist/types/src/util/react.d.ts.map +1 -1
  83. package/dist/types/tsconfig.tsbuildinfo +1 -1
  84. package/package.json +50 -41
  85. package/src/components/Editor/Editor.stories.tsx +10 -15
  86. package/src/components/Editor/Editor.tsx +51 -34
  87. package/src/components/Editor/EditorView.tsx +103 -0
  88. package/src/components/EditorMenuProvider/popover.ts +2 -1
  89. package/src/components/EditorToolbar/EditorToolbar.tsx +9 -7
  90. package/src/components/EditorToolbar/blocks.ts +3 -2
  91. package/src/components/EditorToolbar/formatting.ts +3 -2
  92. package/src/components/EditorToolbar/headings.ts +3 -2
  93. package/src/components/EditorToolbar/image.ts +1 -1
  94. package/src/components/EditorToolbar/index.ts +2 -2
  95. package/src/components/EditorToolbar/lists.ts +3 -2
  96. package/src/components/EditorToolbar/search.ts +1 -1
  97. package/src/components/EditorToolbar/types.ts +8 -0
  98. package/src/components/EditorToolbar/view-mode.ts +4 -3
  99. package/src/components/index.ts +0 -3
  100. package/src/extensions/Assistant.stories.tsx +112 -0
  101. package/src/extensions/assistant-extension.tsx +223 -0
  102. package/src/extensions/index.ts +5 -0
  103. package/src/hooks/index.ts +1 -0
  104. package/src/hooks/useBasicMarkdownExtensions.ts +55 -0
  105. package/src/index.ts +1 -4
  106. package/src/stories/Automerge.stories.tsx +2 -1
  107. package/src/stories/Comments.stories.tsx +2 -1
  108. package/src/stories/EditorToolbar.stories.tsx +35 -78
  109. package/src/stories/Experimental.stories.tsx +7 -7
  110. package/src/stories/Theme.stories.tsx +2 -2
  111. package/src/stories/components/EditorStory.tsx +9 -7
  112. package/src/stories/components/util.tsx +1 -1
  113. package/src/util/react.tsx +1 -1
  114. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +0 -1
  115. package/dist/types/src/components/EditorContent/controller.d.ts.map +0 -1
  116. package/dist/types/src/components/EditorContent/index.d.ts +0 -3
  117. package/dist/types/src/components/EditorContent/index.d.ts.map +0 -1
  118. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +0 -11
  119. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +0 -1
  120. package/src/components/EditorContent/EditorContent.tsx +0 -82
  121. package/src/components/EditorContent/index.ts +0 -6
  122. package/src/components/EditorToolbar/useEditorToolbar.ts +0 -20
  123. /package/dist/types/src/components/{EditorContent → Editor}/controller.d.ts +0 -0
  124. /package/src/components/{EditorContent → Editor}/controller.ts +0 -0
@@ -12,7 +12,7 @@ import { PublicKey } from '@dxos/keys';
12
12
  import { log } from '@dxos/log';
13
13
  import { useMergeRefs, useThemeContext } from '@dxos/react-ui';
14
14
  import { useAttentionAttributes } from '@dxos/react-ui-attention';
15
- import { Json } from '@dxos/react-ui-syntax-highlighter';
15
+ import { Syntax } from '@dxos/react-ui-syntax-highlighter';
16
16
  import {
17
17
  type DebugNode,
18
18
  type ThemeExtensionsOptions,
@@ -77,12 +77,14 @@ export const EditorStory = forwardRef<EditorController, EditorStoryProps>(
77
77
  </pre>
78
78
  )}
79
79
  {(debug === 'tree' || debug === 'raw+tree') && (
80
- <Json.Root data={tree}>
81
- <Json.Content>
82
- <Json.Filter />
83
- <Json.Data classNames='p-1 text-xs' />
84
- </Json.Content>
85
- </Json.Root>
80
+ <Syntax.Root data={tree}>
81
+ <Syntax.Content>
82
+ <Syntax.Filter />
83
+ <Syntax.Viewport>
84
+ <Syntax.Code classNames='p-1 text-xs' />
85
+ </Syntax.Viewport>
86
+ </Syntax.Content>
87
+ </Syntax.Root>
86
88
  )}
87
89
  </div>
88
90
  )}
@@ -9,7 +9,6 @@ import { random } from '@dxos/random';
9
9
  import { Domino } from '@dxos/ui';
10
10
  import {
11
11
  type EditorSelectionState,
12
- type RenderCallback,
13
12
  decorateMarkdown,
14
13
  folding,
15
14
  formattingKeymap,
@@ -17,6 +16,7 @@ import {
17
16
  linkTooltip,
18
17
  table,
19
18
  } from '@dxos/ui-editor';
19
+ import { type RenderCallback } from '@dxos/ui-editor/types';
20
20
  import { safeUrl } from '@dxos/util';
21
21
 
22
22
  import { str } from '../../util';
@@ -6,7 +6,7 @@ import React, { type FC } from 'react';
6
6
  import { createRoot } from 'react-dom/client';
7
7
 
8
8
  import { ThemeProvider, Tooltip } from '@dxos/react-ui';
9
- import { type RenderCallback } from '@dxos/ui-editor';
9
+ import { type RenderCallback } from '@dxos/ui-editor/types';
10
10
  import { defaultTx } from '@dxos/ui-theme';
11
11
 
12
12
  /**
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorContent/EditorContent.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,cAAc,CAAC;AAE7E,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAC9C;IACE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,kBAAkB,CACvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa;gBAXV,OAAO;YACX,MAAM;eACH,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;0CA8DrC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorContent/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,EAAE,gBAO5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,MAAM,UAAU,GAAG,IAAI,KAAG,gBA2BhE,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './controller';
2
- export * from './EditorContent';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorContent/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Atom } from '@effect-atom/atom-react';
2
- import { type EditorViewMode, type Formatting } from '@dxos/ui-editor';
3
- export type EditorToolbarState = {
4
- viewMode?: EditorViewMode;
5
- } & Formatting;
6
- /**
7
- * Creates an atom for editor toolbar state.
8
- * @deprecated Use Editor.Root
9
- */
10
- export declare const useEditorToolbar: (initialState?: EditorToolbarState) => Atom.Writable<EditorToolbarState>;
11
- //# sourceMappingURL=useEditorToolbar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEditorToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorToolbar/useEditorToolbar.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/C,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGvE,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GAAG,UAAU,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,eAAc,kBAAuB,KAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAGxG,CAAC"}
@@ -1,82 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Transaction } from '@codemirror/state';
6
- import { EditorView } from '@codemirror/view';
7
- import React, { forwardRef, useEffect, useImperativeHandle } from 'react';
8
-
9
- import { type ThemedClassName } from '@dxos/react-ui';
10
- import { initialSync } from '@dxos/ui-editor';
11
- import { mx } from '@dxos/ui-theme';
12
-
13
- import { type UseTextEditorProps, useTextEditor } from '../../hooks';
14
- import { type EditorController, createEditorController } from './controller';
15
-
16
- export type EditorContentProps = ThemedClassName<
17
- {
18
- focusable?: boolean;
19
- value?: string;
20
- onChange?: (value: string) => void;
21
- } & UseTextEditorProps
22
- >;
23
-
24
- /**
25
- * Minimal text editor.
26
- * NOTE: This shouold not be used with the automerge extension.
27
- * @deprecated Use Editor.Content
28
- */
29
- export const EditorContent = forwardRef<EditorController, EditorContentProps>(
30
- ({ classNames, id, extensions, selectionEnd, focusable = true, value, onChange, ...props }, forwardedRef) => {
31
- const { parentRef, focusAttributes, view } = useTextEditor(
32
- () => ({
33
- id,
34
- initialValue: value,
35
- selectionEnd,
36
- extensions: [
37
- extensions ?? [],
38
- EditorView.updateListener.of(({ view, docChanged, transactions }) => {
39
- const isInitialSync = transactions.some((tr) => tr.annotation(Transaction.userEvent) === initialSync.value);
40
- if (!isInitialSync && docChanged) {
41
- onChange?.(view.state.doc.toString());
42
- }
43
- }),
44
- ],
45
- ...props,
46
- }),
47
- [id, extensions, selectionEnd, onChange],
48
- );
49
-
50
- // External controller.
51
- useImperativeHandle(forwardedRef, () => {
52
- return createEditorController(view);
53
- }, [id, view]);
54
-
55
- // Set initial value and cursor position.
56
- useEffect(() => {
57
- requestAnimationFrame(() => {
58
- view?.dispatch({
59
- annotations: initialSync,
60
- changes: value ? [{ from: 0, to: view?.state.doc.length ?? 0, insert: value ?? '' }] : [],
61
- selection: selectionEnd ? { anchor: view?.state.doc.length ?? 0 } : undefined,
62
- });
63
-
64
- if (selectionEnd) {
65
- view?.focus();
66
- }
67
- });
68
- }, [view, value, selectionEnd]);
69
-
70
- return (
71
- <div
72
- role='none'
73
- className={mx(
74
- 'w-full outline-hidden focus:border-accent-surface focus-within:border-neutral-focus-indicator',
75
- classNames,
76
- )}
77
- ref={parentRef}
78
- {...(focusable ? focusAttributes : {})}
79
- />
80
- );
81
- },
82
- );
@@ -1,6 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './controller';
6
- export * from './EditorContent';
@@ -1,20 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Atom } from '@effect-atom/atom-react';
6
- import { useMemo } from 'react';
7
-
8
- import { type EditorViewMode, type Formatting } from '@dxos/ui-editor';
9
-
10
- // TODO(burdon): Move to extensions.
11
- export type EditorToolbarState = { viewMode?: EditorViewMode } & Formatting;
12
-
13
- /**
14
- * Creates an atom for editor toolbar state.
15
- * @deprecated Use Editor.Root
16
- */
17
- export const useEditorToolbar = (initialState: EditorToolbarState = {}): Atom.Writable<EditorToolbarState> => {
18
- // TODO(wittjosiah): Including initialState in the deps causes reactivity issues.
19
- return useMemo(() => Atom.make<EditorToolbarState>(initialState), []);
20
- };