@dxos/react-ui-editor 0.8.3 → 0.8.4-main.28f8d3d
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/chunk-22UMM3QJ.mjs +22 -0
- package/dist/lib/browser/chunk-22UMM3QJ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +790 -700
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/lib/browser/testing/index.mjs.map +2 -2
- package/dist/lib/browser/types/index.mjs +13 -0
- package/dist/lib/browser/types/index.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YXYQPV6R.mjs +24 -0
- package/dist/lib/node-esm/chunk-YXYQPV6R.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +789 -700
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +1 -1
- package/dist/lib/node-esm/testing/index.mjs.map +2 -2
- package/dist/lib/node-esm/types/index.mjs +14 -0
- package/dist/lib/node-esm/types/index.mjs.map +7 -0
- package/dist/types/src/components/Editor/Editor.d.ts +19 -0
- package/dist/types/src/components/Editor/Editor.d.ts.map +1 -0
- package/dist/types/src/components/Editor/index.d.ts +2 -0
- package/dist/types/src/components/Editor/index.d.ts.map +1 -0
- package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/util.d.ts +4 -3
- package/dist/types/src/components/EditorToolbar/util.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts +1 -1
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
- package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions/autocomplete.d.ts +1 -1
- package/dist/types/src/extensions/autocomplete.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts +28 -28
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/defs.d.ts +1 -1
- package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/sync.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
- package/dist/types/src/extensions/blast.d.ts.map +1 -1
- package/dist/types/src/extensions/command/action.d.ts +1 -1
- package/dist/types/src/extensions/command/action.d.ts.map +1 -1
- package/dist/types/src/extensions/command/command-menu.d.ts +1 -1
- package/dist/types/src/extensions/command/command-menu.d.ts.map +1 -1
- package/dist/types/src/extensions/command/command.d.ts.map +1 -1
- package/dist/types/src/extensions/command/hint.d.ts.map +1 -1
- package/dist/types/src/extensions/command/index.d.ts +1 -1
- package/dist/types/src/extensions/command/index.d.ts.map +1 -1
- package/dist/types/src/extensions/command/state.d.ts +1 -1
- package/dist/types/src/extensions/command/state.d.ts.map +1 -1
- package/dist/types/src/extensions/command/typeahead.d.ts +7 -2
- package/dist/types/src/extensions/command/typeahead.d.ts.map +1 -1
- package/dist/types/src/extensions/command/useCommandMenu.d.ts +1 -1
- package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +1 -1
- package/dist/types/src/extensions/comments.d.ts +1 -1
- package/dist/types/src/extensions/comments.d.ts.map +1 -1
- package/dist/types/src/extensions/dnd.d.ts.map +1 -1
- package/dist/types/src/extensions/factories.d.ts +19 -0
- package/dist/types/src/extensions/factories.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/action.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/changes.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/decorate.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/formatting.d.ts +1 -1
- package/dist/types/src/extensions/markdown/formatting.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -1
- package/dist/types/src/extensions/modes.d.ts +0 -7
- package/dist/types/src/extensions/modes.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/outliner.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/selection.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/tree.d.ts +1 -1
- package/dist/types/src/extensions/outliner/tree.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/stories/Command.stories.d.ts.map +1 -1
- package/dist/types/src/stories/CommandMenu.stories.d.ts +1 -1
- package/dist/types/src/stories/CommandMenu.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/stories/EditorToolbar.stories.d.ts +1 -1
- package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
- package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
- package/dist/types/src/stories/components/EditorStory.d.ts +2 -2
- package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
- package/dist/types/src/testing/util.d.ts +1 -0
- package/dist/types/src/testing/util.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +28 -29
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/types/types.d.ts +21 -0
- package/dist/types/src/types/types.d.ts.map +1 -0
- package/dist/types/src/util/cursor.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +47 -41
- package/src/components/Editor/Editor.tsx +39 -0
- package/src/components/Editor/index.ts +5 -0
- package/src/components/EditorToolbar/EditorToolbar.tsx +1 -1
- package/src/components/EditorToolbar/blocks.ts +4 -3
- package/src/components/EditorToolbar/formatting.ts +3 -2
- package/src/components/EditorToolbar/headings.ts +2 -1
- package/src/components/EditorToolbar/lists.ts +3 -2
- package/src/components/EditorToolbar/util.ts +6 -5
- package/src/components/EditorToolbar/view-mode.ts +3 -2
- package/src/components/Popover/RefDropdownMenu.tsx +10 -4
- package/src/components/Popover/RefPopover.tsx +4 -4
- package/src/components/index.ts +1 -0
- package/src/extensions/autocomplete.ts +3 -3
- package/src/extensions/automerge/automerge.stories.tsx +8 -6
- package/src/extensions/automerge/automerge.ts +4 -3
- package/src/extensions/automerge/defs.ts +1 -1
- package/src/extensions/automerge/sync.ts +1 -1
- package/src/extensions/automerge/update-automerge.ts +1 -1
- package/src/extensions/awareness/awareness.ts +2 -2
- package/src/extensions/blast.ts +3 -16
- package/src/extensions/command/action.ts +1 -1
- package/src/extensions/command/command-menu.ts +4 -3
- package/src/extensions/command/command.ts +3 -3
- package/src/extensions/command/hint.ts +2 -1
- package/src/extensions/command/index.ts +1 -1
- package/src/extensions/command/placeholder.ts +1 -1
- package/src/extensions/command/state.ts +4 -3
- package/src/extensions/command/typeahead.ts +28 -15
- package/src/extensions/command/useCommandMenu.ts +2 -1
- package/src/extensions/comments.ts +7 -6
- package/src/extensions/dnd.ts +1 -1
- package/src/extensions/factories.ts +28 -8
- package/src/extensions/markdown/action.ts +2 -1
- package/src/extensions/markdown/bundle.ts +1 -1
- package/src/extensions/markdown/changes.ts +1 -1
- package/src/extensions/markdown/decorate.ts +7 -6
- package/src/extensions/markdown/formatting.test.ts +7 -7
- package/src/extensions/markdown/formatting.ts +16 -14
- package/src/extensions/markdown/highlight.ts +1 -1
- package/src/extensions/mention.ts +1 -1
- package/src/extensions/modes.ts +0 -9
- package/src/extensions/outliner/outliner.test.ts +3 -2
- package/src/extensions/outliner/outliner.ts +4 -3
- package/src/extensions/outliner/selection.ts +1 -1
- package/src/extensions/outliner/tree.test.ts +2 -1
- package/src/extensions/outliner/tree.ts +1 -1
- package/src/hooks/useTextEditor.ts +3 -3
- package/src/index.ts +1 -1
- package/src/stories/Command.stories.tsx +6 -5
- package/src/stories/CommandMenu.stories.tsx +7 -6
- package/src/stories/Comments.stories.tsx +3 -2
- package/src/stories/EditorToolbar.stories.tsx +6 -7
- package/src/stories/Experimental.stories.tsx +4 -3
- package/src/stories/Markdown.stories.tsx +3 -2
- package/src/stories/Outliner.stories.tsx +4 -3
- package/src/stories/Preview.stories.tsx +25 -26
- package/src/stories/TextEditor.stories.tsx +16 -15
- package/src/stories/components/EditorStory.tsx +5 -5
- package/src/styles/theme.ts +8 -8
- package/src/testing/util.ts +2 -0
- package/src/translations.ts +4 -2
- package/src/types/index.ts +5 -0
- package/src/types/types.ts +32 -0
- package/src/util/cursor.ts +2 -1
- package/dist/lib/node/index.cjs +0 -7754
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/testing/index.cjs +0 -29
- package/dist/lib/node/testing/index.cjs.map +0 -7
- package/dist/types/src/types.d.ts +0 -14
- package/dist/types/src/types.d.ts.map +0 -1
- package/src/types.ts +0 -23
@@ -7,12 +7,13 @@ import '@dxos-theme';
|
|
7
7
|
import { markdown } from '@codemirror/lang-markdown';
|
8
8
|
import React from 'react';
|
9
9
|
|
10
|
-
import { withLayout, withTheme
|
10
|
+
import { type Meta, withLayout, withTheme } from '@dxos/storybook-utils';
|
11
11
|
|
12
|
-
import { EditorStory, content, defaultExtensions, headings, renderLinkTooltip, text } from './components';
|
13
12
|
import { decorateMarkdown, image, linkTooltip, table } from '../extensions';
|
14
13
|
import { str } from '../testing';
|
15
14
|
|
15
|
+
import { EditorStory, content, defaultExtensions, headings, renderLinkTooltip, text } from './components';
|
16
|
+
|
16
17
|
const meta: Meta<typeof EditorStory> = {
|
17
18
|
title: 'ui/react-ui-editor/Markdown',
|
18
19
|
component: EditorStory,
|
@@ -9,13 +9,14 @@ import React, { useRef } from 'react';
|
|
9
9
|
|
10
10
|
import { DropdownMenu } from '@dxos/react-ui';
|
11
11
|
import { withAttention } from '@dxos/react-ui-attention/testing';
|
12
|
-
import { withLayout, withTheme
|
12
|
+
import { type Meta, withLayout, withTheme } from '@dxos/storybook-utils';
|
13
13
|
|
14
|
-
import { EditorStory } from './components';
|
15
14
|
import { RefDropdownMenu } from '../components';
|
16
|
-
import {
|
15
|
+
import { deleteItem, hashtag, listItemToString, outliner, treeFacet } from '../extensions';
|
17
16
|
import { str } from '../testing';
|
18
17
|
|
18
|
+
import { EditorStory } from './components';
|
19
|
+
|
19
20
|
type StoryProps = {
|
20
21
|
text: string;
|
21
22
|
};
|
@@ -6,7 +6,7 @@ import '@dxos-theme';
|
|
6
6
|
|
7
7
|
import { syntaxTree } from '@codemirror/language';
|
8
8
|
import { type EditorView } from '@codemirror/view';
|
9
|
-
import React, {
|
9
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
10
10
|
import { createPortal } from 'react-dom';
|
11
11
|
|
12
12
|
import { invariant } from '@dxos/invariant';
|
@@ -14,12 +14,13 @@ import { faker } from '@dxos/random';
|
|
14
14
|
import { Popover } from '@dxos/react-ui';
|
15
15
|
import { Card } from '@dxos/react-ui-stack';
|
16
16
|
import { hoverableControlItem, hoverableControlItemTransition, hoverableControls } from '@dxos/react-ui-theme';
|
17
|
-
import { withLayout, withTheme
|
17
|
+
import { type Meta, withLayout, withTheme } from '@dxos/storybook-utils';
|
18
|
+
import { trim } from '@dxos/util';
|
18
19
|
|
19
|
-
import { EditorStory } from './components';
|
20
20
|
import { PreviewProvider, useRefPopover } from '../components';
|
21
|
-
import {
|
22
|
-
|
21
|
+
import { type PreviewLinkRef, type PreviewLinkTarget, getLinkRef, image, preview } from '../extensions';
|
22
|
+
|
23
|
+
import { EditorStory } from './components';
|
23
24
|
|
24
25
|
const handlePreviewLookup = async ({ label, ref }: PreviewLinkRef): Promise<PreviewLinkTarget> => {
|
25
26
|
// Random text.
|
@@ -48,10 +49,10 @@ const PreviewCard = () => {
|
|
48
49
|
<Popover.Portal>
|
49
50
|
<Popover.Content onOpenAutoFocus={(event) => event.preventDefault()}>
|
50
51
|
<Popover.Viewport>
|
51
|
-
<Card.
|
52
|
+
<Card.SurfaceRoot role='card--popover'>
|
52
53
|
<Card.Heading>{target?.label}</Card.Heading>
|
53
54
|
{target && <Card.Text classNames='line-clamp-3'>{target.text}</Card.Text>}
|
54
|
-
</Card.
|
55
|
+
</Card.SurfaceRoot>
|
55
56
|
</Popover.Viewport>
|
56
57
|
<Popover.Arrow />
|
57
58
|
</Popover.Content>
|
@@ -126,13 +127,13 @@ const PreviewBlock = ({ link, el, view }: { link: PreviewLinkRef; el: HTMLElemen
|
|
126
127
|
}, [handleAction, link, target]);
|
127
128
|
|
128
129
|
return createPortal(
|
129
|
-
<Card.
|
130
|
+
<Card.StaticRoot classNames={hoverableControls}>
|
130
131
|
<div className='flex items-start'>
|
131
132
|
{!view?.state.readOnly && (
|
132
133
|
<Card.Toolbar classNames='is-min p-[--dx-cardSpacingInline]'>
|
133
134
|
{(link.suggest && (
|
134
135
|
<>
|
135
|
-
<Card.ToolbarIconButton label='Discard' icon=
|
136
|
+
<Card.ToolbarIconButton label='Discard' icon='ph--x--regular' onClick={handleDelete} />
|
136
137
|
{target && (
|
137
138
|
<Card.ToolbarIconButton
|
138
139
|
classNames='bg-successSurface text-successSurfaceText'
|
@@ -159,7 +160,7 @@ const PreviewBlock = ({ link, el, view }: { link: PreviewLinkRef; el: HTMLElemen
|
|
159
160
|
</Card.Heading>
|
160
161
|
</div>
|
161
162
|
{target && <Card.Text classNames='line-clamp-3 mbs-0'>{target.text}</Card.Text>}
|
162
|
-
</Card.
|
163
|
+
</Card.StaticRoot>,
|
163
164
|
el,
|
164
165
|
);
|
165
166
|
};
|
@@ -200,22 +201,20 @@ export const Default = {
|
|
200
201
|
<PreviewProvider onLookup={handlePreviewLookup}>
|
201
202
|
<EditorStory
|
202
203
|
ref={handleViewRef}
|
203
|
-
text={
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
'',
|
218
|
-
)}
|
204
|
+
text={trim`
|
205
|
+
# Preview
|
206
|
+
|
207
|
+
This project is part of the [DXOS][dxn:queue:data:123] SDK.
|
208
|
+
|
209
|
+
![DXOS][?dxn:queue:data:123]
|
210
|
+
|
211
|
+
It consists of [ECHO][dxn:queue:data:echo], [HALO][dxn:queue:data:halo], and [MESH][dxn:queue:data:mesh].
|
212
|
+
|
213
|
+
## Deep dive
|
214
|
+
|
215
|
+
![ECHO][dxn:queue:data:echo]
|
216
|
+
|
217
|
+
`}
|
219
218
|
extensions={extensions}
|
220
219
|
/>
|
221
220
|
<PreviewCard />
|
@@ -9,21 +9,8 @@ import { openSearchPanel } from '@codemirror/search';
|
|
9
9
|
import React from 'react';
|
10
10
|
|
11
11
|
import { log } from '@dxos/log';
|
12
|
-
import { withLayout, withTheme
|
12
|
+
import { type Meta, withLayout, withTheme } from '@dxos/storybook-utils';
|
13
13
|
|
14
|
-
import {
|
15
|
-
EditorStory,
|
16
|
-
allExtensions,
|
17
|
-
content,
|
18
|
-
defaultExtensions,
|
19
|
-
global,
|
20
|
-
largeWithImages,
|
21
|
-
links,
|
22
|
-
longText,
|
23
|
-
names,
|
24
|
-
renderLinkButton,
|
25
|
-
text,
|
26
|
-
} from './components';
|
27
14
|
import { editorMonospace } from '../defaults';
|
28
15
|
import {
|
29
16
|
InputModeExtensions,
|
@@ -39,6 +26,20 @@ import {
|
|
39
26
|
} from '../extensions';
|
40
27
|
import { str } from '../testing';
|
41
28
|
|
29
|
+
import {
|
30
|
+
EditorStory,
|
31
|
+
allExtensions,
|
32
|
+
content,
|
33
|
+
defaultExtensions,
|
34
|
+
global,
|
35
|
+
largeWithImages,
|
36
|
+
links,
|
37
|
+
longText,
|
38
|
+
names,
|
39
|
+
renderLinkButton,
|
40
|
+
text,
|
41
|
+
} from './components';
|
42
|
+
|
42
43
|
const meta: Meta<typeof EditorStory> = {
|
43
44
|
title: 'ui/react-ui-editor/TextEditor',
|
44
45
|
component: EditorStory,
|
@@ -217,7 +218,7 @@ export const Typeahead = {
|
|
217
218
|
extensions={[
|
218
219
|
decorateMarkdown({ renderLinkButton }),
|
219
220
|
typeahead({
|
220
|
-
onComplete: staticCompletion(completions,
|
221
|
+
onComplete: staticCompletion(completions, { minLength: 2 }),
|
221
222
|
}),
|
222
223
|
]}
|
223
224
|
/>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
//
|
4
4
|
|
5
5
|
import { type EditorView } from '@codemirror/view';
|
6
|
-
import React, { type ReactNode, forwardRef, useEffect,
|
6
|
+
import React, { type ReactNode, forwardRef, useEffect, useImperativeHandle, useMemo, useState } from 'react';
|
7
7
|
|
8
8
|
import { Expando } from '@dxos/echo-schema';
|
9
9
|
import { invariant } from '@dxos/invariant';
|
@@ -16,17 +16,17 @@ import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
|
|
16
16
|
import { mx } from '@dxos/react-ui-theme';
|
17
17
|
import { isNonNullable } from '@dxos/util';
|
18
18
|
|
19
|
-
import {
|
19
|
+
import { editorGutter, editorSlots } from '../../defaults';
|
20
20
|
import {
|
21
21
|
type DebugNode,
|
22
22
|
type ThemeExtensionsOptions,
|
23
|
-
createDataExtensions,
|
24
23
|
createBasicExtensions,
|
24
|
+
createDataExtensions,
|
25
25
|
createMarkdownExtensions,
|
26
26
|
createThemeExtensions,
|
27
27
|
debugTree,
|
28
28
|
} from '../../extensions';
|
29
|
-
import {
|
29
|
+
import { type UseTextEditorProps, useTextEditor } from '../../hooks';
|
30
30
|
|
31
31
|
// Type definitions.
|
32
32
|
export type DebugMode = 'raw' | 'tree' | 'raw+tree';
|
@@ -112,7 +112,7 @@ export const EditorComponent = forwardRef<EditorView | undefined, StoryProps>(
|
|
112
112
|
initialValue: text,
|
113
113
|
extensions: [
|
114
114
|
createDataExtensions({ id, text: createDocAccessor(object, ['content']) }),
|
115
|
-
createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true }),
|
115
|
+
createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true, search: true }),
|
116
116
|
createMarkdownExtensions({ themeMode }),
|
117
117
|
createThemeExtensions({ themeMode, syntaxHighlighting: true, slots }),
|
118
118
|
editorGutter,
|
package/src/styles/theme.ts
CHANGED
@@ -79,18 +79,17 @@ export const defaultTheme: ThemeStyles = {
|
|
79
79
|
'.cm-gutter': {},
|
80
80
|
'.cm-gutter.cm-lineNumbers': {
|
81
81
|
paddingRight: '4px',
|
82
|
-
borderRight: '1px solid var(--dx-
|
82
|
+
borderRight: '1px solid var(--dx-subduedSeparator)',
|
83
83
|
},
|
84
84
|
'.cm-gutter.cm-lineNumbers .cm-gutterElement': {
|
85
85
|
minWidth: '40px',
|
86
|
-
alignContent: 'center',
|
87
86
|
},
|
88
87
|
/**
|
89
|
-
* Height is set to match the corresponding line.
|
88
|
+
* Height is set to match the corresponding line (which may have wrapped).
|
90
89
|
*/
|
91
90
|
'.cm-gutterElement': {
|
92
|
-
alignItems: 'center',
|
93
91
|
fontSize: '12px',
|
92
|
+
lineHeight: '24px',
|
94
93
|
},
|
95
94
|
|
96
95
|
/**
|
@@ -110,7 +109,7 @@ export const defaultTheme: ThemeStyles = {
|
|
110
109
|
borderLeft: '2px solid var(--dx-cmCursor)',
|
111
110
|
},
|
112
111
|
'.cm-placeholder': {
|
113
|
-
color: 'var(--dx-
|
112
|
+
color: 'var(--dx-placeholder)',
|
114
113
|
},
|
115
114
|
|
116
115
|
/**
|
@@ -156,7 +155,7 @@ export const defaultTheme: ThemeStyles = {
|
|
156
155
|
* Tooltip.
|
157
156
|
*/
|
158
157
|
'.cm-tooltip': {
|
159
|
-
background: 'var(--dx-
|
158
|
+
background: 'var(--dx-modalSurface)',
|
160
159
|
},
|
161
160
|
'.cm-tooltip-below': {},
|
162
161
|
|
@@ -177,7 +176,8 @@ export const defaultTheme: ThemeStyles = {
|
|
177
176
|
padding: '4px',
|
178
177
|
},
|
179
178
|
'.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]': {
|
180
|
-
background: 'var(--dx-
|
179
|
+
background: 'var(--dx-accentSurface)',
|
180
|
+
color: 'var(--dx-accentSurfaceText)',
|
181
181
|
},
|
182
182
|
'.cm-tooltip.cm-tooltip-autocomplete > ul > completion-section': {
|
183
183
|
paddingLeft: '4px !important',
|
@@ -233,7 +233,7 @@ export const defaultTheme: ThemeStyles = {
|
|
233
233
|
outline: '1px solid transparent',
|
234
234
|
},
|
235
235
|
'.cm-panel input, .cm-panel button': {
|
236
|
-
backgroundColor: 'var(--dx-
|
236
|
+
backgroundColor: 'var(--dx-inputSurface)',
|
237
237
|
},
|
238
238
|
'.cm-panel input:focus, .cm-panel button:focus': {
|
239
239
|
outline: '1px solid var(--dx-neutralFocusIndicator)',
|
package/src/testing/util.ts
CHANGED
package/src/translations.ts
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
// Copyright 2023 DXOS.org
|
3
3
|
//
|
4
4
|
|
5
|
+
import { type Resource } from '@dxos/react-ui';
|
6
|
+
|
5
7
|
export const translationKey = 'react-ui-editor';
|
6
8
|
|
7
|
-
export
|
9
|
+
export const translations = [
|
8
10
|
{
|
9
11
|
'en-US': {
|
10
12
|
[translationKey]: {
|
@@ -35,4 +37,4 @@ export default [
|
|
35
37
|
},
|
36
38
|
},
|
37
39
|
},
|
38
|
-
];
|
40
|
+
] as const satisfies Resource[];
|
@@ -0,0 +1,32 @@
|
|
1
|
+
//
|
2
|
+
// Copyright 2024 DXOS.org
|
3
|
+
//
|
4
|
+
|
5
|
+
import { type EditorView } from '@codemirror/view';
|
6
|
+
import { Schema } from 'effect';
|
7
|
+
|
8
|
+
// Runtime data structure.
|
9
|
+
export type Range = {
|
10
|
+
from: number;
|
11
|
+
to: number;
|
12
|
+
};
|
13
|
+
|
14
|
+
// Persistent data structure.
|
15
|
+
// TODO(burdon): Rename annotation?
|
16
|
+
export type Comment = {
|
17
|
+
id: string;
|
18
|
+
cursor?: string;
|
19
|
+
};
|
20
|
+
|
21
|
+
/**
|
22
|
+
* Callback that renders into a DOM element within the editor.
|
23
|
+
*/
|
24
|
+
export type RenderCallback<Props extends object> = (el: HTMLElement, props: Props, view: EditorView) => void;
|
25
|
+
|
26
|
+
export const EditorViewModes = ['preview', 'readonly', 'source'] as const;
|
27
|
+
export const EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));
|
28
|
+
export type EditorViewMode = Schema.Schema.Type<typeof EditorViewMode>;
|
29
|
+
|
30
|
+
export const EditorInputModes = ['default', 'vim', 'vscode'] as const;
|
31
|
+
export const EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));
|
32
|
+
export type EditorInputMode = Schema.Schema.Type<typeof EditorInputMode>;
|
package/src/util/cursor.ts
CHANGED
@@ -4,9 +4,10 @@
|
|
4
4
|
|
5
5
|
import { type EditorState } from '@codemirror/state';
|
6
6
|
|
7
|
-
import { singleValueFacet } from './facet';
|
8
7
|
import { type Range } from '../types';
|
9
8
|
|
9
|
+
import { singleValueFacet } from './facet';
|
10
|
+
|
10
11
|
/**
|
11
12
|
* Determines if two ranges overlap.
|
12
13
|
* A range is considered to overlap if there is any intersection
|