@dxos/react-ui-editor 0.8.2-main.5885341 → 0.8.2-main.600d381
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 +1874 -1806
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +1386 -1319
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +1874 -1806
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +1 -1
- package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
- package/dist/types/src/{stories/InputMode.stories.d.ts → components/EditorToolbar/EditorToolbar.stories.d.ts} +3 -7
- package/dist/types/src/components/EditorToolbar/EditorToolbar.stories.d.ts.map +1 -0
- package/dist/types/src/components/EditorToolbar/blocks.d.ts +4 -3
- package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/comment.d.ts +4 -3
- package/dist/types/src/components/EditorToolbar/comment.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/formatting.d.ts +4 -3
- package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/headings.d.ts +4 -3
- package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/image.d.ts +16 -0
- package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -0
- package/dist/types/src/components/EditorToolbar/lists.d.ts +4 -3
- package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/search.d.ts +17 -0
- package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -0
- package/dist/types/src/components/EditorToolbar/util.d.ts +11 -17
- package/dist/types/src/components/EditorToolbar/util.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts +4 -3
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
- package/dist/types/src/defaults.d.ts.map +1 -1
- package/dist/types/src/extensions/annotations.d.ts.map +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/cursor.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +1 -1
- package/dist/types/src/extensions/awareness/awareness.d.ts.map +1 -1
- package/dist/types/src/extensions/blast.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/menu.d.ts.map +1 -1
- package/dist/types/src/extensions/comments.d.ts.map +1 -1
- package/dist/types/src/extensions/debug.d.ts.map +1 -1
- package/dist/types/src/extensions/dnd.d.ts.map +1 -1
- package/dist/types/src/extensions/factories.d.ts.map +1 -1
- package/dist/types/src/extensions/folding.d.ts.map +1 -1
- package/dist/types/src/extensions/listener.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/changes.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/debug.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.map +1 -1
- package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/image.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/table.d.ts.map +1 -1
- package/dist/types/src/extensions/mention.d.ts.map +1 -1
- package/dist/types/src/extensions/modes.d.ts +5 -5
- package/dist/types/src/extensions/modes.d.ts.map +1 -1
- package/dist/types/src/extensions/preview/preview.d.ts.map +1 -1
- package/dist/types/src/extensions/selection.d.ts.map +1 -1
- package/dist/types/src/extensions/typewriter.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +0 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/stories/story-utils.d.ts.map +1 -1
- package/dist/types/src/util/cursor.d.ts.map +1 -1
- package/dist/types/src/util/debug.d.ts.map +1 -1
- package/dist/types/src/util/dom.d.ts.map +1 -1
- package/dist/types/src/util/facet.d.ts.map +1 -1
- package/dist/types/src/util/react.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -28
- package/src/components/EditorToolbar/EditorToolbar.stories.tsx +90 -0
- package/src/components/EditorToolbar/EditorToolbar.tsx +30 -31
- package/src/components/EditorToolbar/blocks.ts +27 -6
- package/src/components/EditorToolbar/comment.ts +11 -4
- package/src/components/EditorToolbar/formatting.ts +34 -7
- package/src/components/EditorToolbar/headings.ts +9 -8
- package/src/components/EditorToolbar/image.ts +16 -0
- package/src/components/EditorToolbar/lists.ts +26 -7
- package/src/components/EditorToolbar/search.ts +19 -0
- package/src/components/EditorToolbar/util.ts +14 -14
- package/src/components/EditorToolbar/view-mode.ts +9 -8
- package/src/extensions/modes.ts +5 -6
- package/src/hooks/index.ts +0 -1
- package/dist/types/src/hooks/useActionHandler.d.ts +0 -4
- package/dist/types/src/hooks/useActionHandler.d.ts.map +0 -1
- package/dist/types/src/stories/InputMode.stories.d.ts.map +0 -1
- package/src/hooks/useActionHandler.ts +0 -12
- package/src/stories/InputMode.stories.tsx +0 -124
@@ -1,4 +0,0 @@
|
|
1
|
-
import { type EditorView } from '@codemirror/view';
|
2
|
-
import { type EditorAction } from '../extensions';
|
3
|
-
export declare const useActionHandler: (view?: EditorView | null) => (action: EditorAction) => void | null | undefined;
|
4
|
-
//# sourceMappingURL=useActionHandler.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"useActionHandler.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useActionHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,eAAe,CAAC;AAExE,eAAO,MAAM,gBAAgB,UAAW,UAAU,GAAG,IAAI,cAC3B,YAAY,4BACzC,CAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"InputMode.stories.d.ts","sourceRoot":"","sources":["../../../../src/stories/InputMode.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,KAAmB,MAAM,OAAO,CAAC;AAiBxC,OAAO,EAAmC,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGpF,KAAK,UAAU,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,kBAAkB,CAAC;AAqEpF,eAAO,MAAM,OAAO;;CAanB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC;;;iEAxFwE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FpF,wBAKE"}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// Copyright 2024 DXOS.org
|
3
|
-
//
|
4
|
-
|
5
|
-
import { type EditorView } from '@codemirror/view';
|
6
|
-
import { useCallback } from 'react';
|
7
|
-
|
8
|
-
import { type EditorAction, processEditorPayload } from '../extensions';
|
9
|
-
|
10
|
-
export const useActionHandler = (view?: EditorView | null) => {
|
11
|
-
return useCallback((action: EditorAction) => view && processEditorPayload(view, action.properties), [view]);
|
12
|
-
};
|
@@ -1,124 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// Copyright 2024 DXOS.org
|
3
|
-
//
|
4
|
-
|
5
|
-
import '@dxos-theme';
|
6
|
-
|
7
|
-
import React, { useState } from 'react';
|
8
|
-
|
9
|
-
import { Toolbar as NaturalToolbar, Select, useThemeContext } from '@dxos/react-ui';
|
10
|
-
import { attentionSurface, mx } from '@dxos/react-ui-theme';
|
11
|
-
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
12
|
-
|
13
|
-
import { EditorToolbar, useEditorToolbarState } from '../components';
|
14
|
-
import {
|
15
|
-
type EditorInputMode,
|
16
|
-
decorateMarkdown,
|
17
|
-
createMarkdownExtensions,
|
18
|
-
formattingKeymap,
|
19
|
-
useFormattingState,
|
20
|
-
createBasicExtensions,
|
21
|
-
createThemeExtensions,
|
22
|
-
InputModeExtensions,
|
23
|
-
} from '../extensions';
|
24
|
-
import { useActionHandler, useTextEditor, type UseTextEditorProps } from '../hooks';
|
25
|
-
import translations from '../translations';
|
26
|
-
|
27
|
-
type StoryProps = { placeholder?: string; readOnly?: boolean } & UseTextEditorProps;
|
28
|
-
|
29
|
-
const DefaultStory = ({ autoFocus, initialValue, placeholder, readOnly }: StoryProps) => {
|
30
|
-
const { themeMode } = useThemeContext();
|
31
|
-
const toolbarState = useEditorToolbarState({ viewMode: 'source' });
|
32
|
-
const trackFormatting = useFormattingState(toolbarState);
|
33
|
-
const [editorInputMode, _setEditorInputMode] = useState<EditorInputMode>('default');
|
34
|
-
const { parentRef, view } = useTextEditor(
|
35
|
-
() => ({
|
36
|
-
autoFocus,
|
37
|
-
initialValue,
|
38
|
-
moveToEndOfLine: true,
|
39
|
-
extensions: [
|
40
|
-
editorInputMode ? InputModeExtensions[editorInputMode] : [],
|
41
|
-
createBasicExtensions({ placeholder, lineWrapping: true, readOnly }),
|
42
|
-
createMarkdownExtensions({ themeMode }),
|
43
|
-
createThemeExtensions({ themeMode, syntaxHighlighting: true }),
|
44
|
-
decorateMarkdown(),
|
45
|
-
formattingKeymap(),
|
46
|
-
trackFormatting,
|
47
|
-
],
|
48
|
-
}),
|
49
|
-
[editorInputMode, themeMode, placeholder, readOnly],
|
50
|
-
);
|
51
|
-
|
52
|
-
const handleAction = useActionHandler(view);
|
53
|
-
|
54
|
-
// TODO(marijn): This doesn't update the state on view changes.
|
55
|
-
// Also not sure if view is even guaranteed to exist at this point.
|
56
|
-
return (
|
57
|
-
<div role='none' className={mx('fixed inset-0 flex flex-col')}>
|
58
|
-
{toolbarState && <EditorToolbar onAction={handleAction} state={toolbarState} />}
|
59
|
-
<div role='none' className='grow overflow-hidden'>
|
60
|
-
<div className={attentionSurface} ref={parentRef} />
|
61
|
-
</div>
|
62
|
-
</div>
|
63
|
-
);
|
64
|
-
};
|
65
|
-
|
66
|
-
const _EditorInputModeToolbar = ({
|
67
|
-
editorInputMode,
|
68
|
-
setEditorInputMode,
|
69
|
-
}: {
|
70
|
-
editorInputMode: EditorInputMode;
|
71
|
-
setEditorInputMode: (mode: EditorInputMode) => void;
|
72
|
-
}) => {
|
73
|
-
return (
|
74
|
-
<Select.Root value={editorInputMode} onValueChange={(value) => setEditorInputMode(value as EditorInputMode)}>
|
75
|
-
<NaturalToolbar.Button asChild>
|
76
|
-
<Select.TriggerButton variant='ghost'>{editorInputMode}</Select.TriggerButton>
|
77
|
-
</NaturalToolbar.Button>
|
78
|
-
<Select.Portal>
|
79
|
-
<Select.Content>
|
80
|
-
<Select.ScrollUpButton />
|
81
|
-
<Select.Viewport>
|
82
|
-
{['default', 'vim'].map((mode) => (
|
83
|
-
<Select.Option key={mode} value={mode}>
|
84
|
-
{mode}
|
85
|
-
</Select.Option>
|
86
|
-
))}
|
87
|
-
</Select.Viewport>
|
88
|
-
<Select.ScrollDownButton />
|
89
|
-
<Select.Arrow />
|
90
|
-
</Select.Content>
|
91
|
-
</Select.Portal>
|
92
|
-
</Select.Root>
|
93
|
-
);
|
94
|
-
};
|
95
|
-
|
96
|
-
export const Default = {
|
97
|
-
render: () => {
|
98
|
-
const { themeMode } = useThemeContext();
|
99
|
-
const { parentRef } = useTextEditor({
|
100
|
-
extensions: [
|
101
|
-
//
|
102
|
-
createBasicExtensions({ placeholder: 'Enter text...' }),
|
103
|
-
createThemeExtensions({ themeMode }),
|
104
|
-
],
|
105
|
-
});
|
106
|
-
|
107
|
-
return <div ref={parentRef} className={attentionSurface} />;
|
108
|
-
},
|
109
|
-
};
|
110
|
-
|
111
|
-
export const Markdown = {
|
112
|
-
args: {
|
113
|
-
autoFocus: true,
|
114
|
-
placeholder: 'Text...',
|
115
|
-
initialValue: '# Demo\n\nThis is a document.\n\n',
|
116
|
-
},
|
117
|
-
};
|
118
|
-
|
119
|
-
export default {
|
120
|
-
title: 'ui/react-ui-editor/InputMode',
|
121
|
-
render: DefaultStory,
|
122
|
-
decorators: [withTheme, withLayout({ fullscreen: true, tooltips: true })],
|
123
|
-
parameters: { translations, layout: 'fullscreen' },
|
124
|
-
};
|