@dxos/react-ui-editor 0.8.2-main.2f9c567 → 0.8.2-main.30e4dbb

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 (91) hide show
  1. package/dist/lib/browser/index.mjs +1591 -1523
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +1383 -1316
  5. package/dist/lib/node/index.cjs.map +4 -4
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +1591 -1523
  8. package/dist/lib/node-esm/index.mjs.map +4 -4
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +1 -1
  11. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  12. package/dist/types/src/{stories/InputMode.stories.d.ts → components/EditorToolbar/EditorToolbar.stories.d.ts} +3 -7
  13. package/dist/types/src/components/EditorToolbar/EditorToolbar.stories.d.ts.map +1 -0
  14. package/dist/types/src/components/EditorToolbar/blocks.d.ts +4 -3
  15. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  16. package/dist/types/src/components/EditorToolbar/comment.d.ts +4 -3
  17. package/dist/types/src/components/EditorToolbar/comment.d.ts.map +1 -1
  18. package/dist/types/src/components/EditorToolbar/formatting.d.ts +4 -3
  19. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  20. package/dist/types/src/components/EditorToolbar/headings.d.ts +4 -3
  21. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  22. package/dist/types/src/components/EditorToolbar/image.d.ts +16 -0
  23. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -0
  24. package/dist/types/src/components/EditorToolbar/lists.d.ts +4 -3
  25. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
  26. package/dist/types/src/components/EditorToolbar/search.d.ts +17 -0
  27. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -0
  28. package/dist/types/src/components/EditorToolbar/util.d.ts +11 -17
  29. package/dist/types/src/components/EditorToolbar/util.d.ts.map +1 -1
  30. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +4 -3
  31. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  32. package/dist/types/src/defaults.d.ts.map +1 -1
  33. package/dist/types/src/extensions/annotations.d.ts.map +1 -1
  34. package/dist/types/src/extensions/autocomplete.d.ts.map +1 -1
  35. package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -1
  36. package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -1
  37. package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -1
  38. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
  39. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +1 -1
  40. package/dist/types/src/extensions/awareness/awareness.d.ts.map +1 -1
  41. package/dist/types/src/extensions/blast.d.ts.map +1 -1
  42. package/dist/types/src/extensions/command/command.d.ts.map +1 -1
  43. package/dist/types/src/extensions/command/hint.d.ts.map +1 -1
  44. package/dist/types/src/extensions/command/menu.d.ts.map +1 -1
  45. package/dist/types/src/extensions/comments.d.ts.map +1 -1
  46. package/dist/types/src/extensions/debug.d.ts.map +1 -1
  47. package/dist/types/src/extensions/dnd.d.ts.map +1 -1
  48. package/dist/types/src/extensions/factories.d.ts.map +1 -1
  49. package/dist/types/src/extensions/folding.d.ts.map +1 -1
  50. package/dist/types/src/extensions/listener.d.ts.map +1 -1
  51. package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -1
  52. package/dist/types/src/extensions/markdown/changes.d.ts.map +1 -1
  53. package/dist/types/src/extensions/markdown/debug.d.ts.map +1 -1
  54. package/dist/types/src/extensions/markdown/decorate.d.ts.map +1 -1
  55. package/dist/types/src/extensions/markdown/formatting.d.ts.map +1 -1
  56. package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -1
  57. package/dist/types/src/extensions/markdown/image.d.ts.map +1 -1
  58. package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
  59. package/dist/types/src/extensions/markdown/table.d.ts.map +1 -1
  60. package/dist/types/src/extensions/mention.d.ts.map +1 -1
  61. package/dist/types/src/extensions/preview/preview.d.ts.map +1 -1
  62. package/dist/types/src/extensions/selection.d.ts.map +1 -1
  63. package/dist/types/src/extensions/typewriter.d.ts.map +1 -1
  64. package/dist/types/src/hooks/index.d.ts +0 -1
  65. package/dist/types/src/hooks/index.d.ts.map +1 -1
  66. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  67. package/dist/types/src/stories/story-utils.d.ts.map +1 -1
  68. package/dist/types/src/util/cursor.d.ts.map +1 -1
  69. package/dist/types/src/util/debug.d.ts.map +1 -1
  70. package/dist/types/src/util/dom.d.ts.map +1 -1
  71. package/dist/types/src/util/facet.d.ts.map +1 -1
  72. package/dist/types/src/util/react.d.ts.map +1 -1
  73. package/dist/types/tsconfig.tsbuildinfo +1 -1
  74. package/package.json +28 -28
  75. package/src/components/EditorToolbar/EditorToolbar.stories.tsx +90 -0
  76. package/src/components/EditorToolbar/EditorToolbar.tsx +30 -31
  77. package/src/components/EditorToolbar/blocks.ts +27 -6
  78. package/src/components/EditorToolbar/comment.ts +11 -4
  79. package/src/components/EditorToolbar/formatting.ts +34 -7
  80. package/src/components/EditorToolbar/headings.ts +9 -8
  81. package/src/components/EditorToolbar/image.ts +16 -0
  82. package/src/components/EditorToolbar/lists.ts +26 -7
  83. package/src/components/EditorToolbar/search.ts +19 -0
  84. package/src/components/EditorToolbar/util.ts +14 -14
  85. package/src/components/EditorToolbar/view-mode.ts +9 -8
  86. package/src/hooks/index.ts +0 -1
  87. package/dist/types/src/hooks/useActionHandler.d.ts +0 -4
  88. package/dist/types/src/hooks/useActionHandler.d.ts.map +0 -1
  89. package/dist/types/src/stories/InputMode.stories.d.ts.map +0 -1
  90. package/src/hooks/useActionHandler.ts +0 -12
  91. package/src/stories/InputMode.stories.tsx +0 -124
@@ -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
- };