@dxos/react-ui-editor 0.8.4-main.ef1bc66f44 → 0.8.4-main.effb148878

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 (149) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/index.mjs +796 -755
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/translations.mjs +39 -0
  7. package/dist/lib/browser/translations.mjs.map +7 -0
  8. package/dist/lib/node-esm/index.mjs +796 -755
  9. package/dist/lib/node-esm/index.mjs.map +4 -4
  10. package/dist/lib/node-esm/meta.json +1 -1
  11. package/dist/lib/node-esm/translations.mjs +41 -0
  12. package/dist/lib/node-esm/translations.mjs.map +7 -0
  13. package/dist/types/src/components/Editor/Editor.d.ts +36 -25
  14. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  15. package/dist/types/src/components/Editor/Editor.stories.d.ts +4 -4
  16. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/{EditorContent/EditorContent.d.ts → Editor/EditorView.d.ts} +5 -5
  18. package/dist/types/src/components/Editor/EditorView.d.ts.map +1 -0
  19. package/dist/types/src/components/Editor/controller.d.ts.map +1 -0
  20. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +1 -3
  21. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -1
  22. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -1
  23. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -1
  24. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +2 -1
  25. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
  26. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
  27. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -1
  28. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +2 -2
  29. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  30. package/dist/types/src/components/EditorToolbar/blocks.d.ts +4 -18
  31. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  32. package/dist/types/src/components/EditorToolbar/formatting.d.ts +4 -18
  33. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  34. package/dist/types/src/components/EditorToolbar/headings.d.ts +4 -18
  35. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  36. package/dist/types/src/components/EditorToolbar/image.d.ts +3 -8
  37. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  38. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -2
  39. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  40. package/dist/types/src/components/EditorToolbar/lists.d.ts +6 -0
  41. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -0
  42. package/dist/types/src/components/EditorToolbar/search.d.ts +3 -8
  43. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  44. package/dist/types/src/components/EditorToolbar/types.d.ts +6 -0
  45. package/dist/types/src/components/EditorToolbar/types.d.ts.map +1 -0
  46. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +5 -19
  47. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  48. package/dist/types/src/components/index.d.ts +0 -2
  49. package/dist/types/src/components/index.d.ts.map +1 -1
  50. package/dist/types/src/extensions/Assistant.stories.d.ts +10 -0
  51. package/dist/types/src/extensions/Assistant.stories.d.ts.map +1 -0
  52. package/dist/types/src/extensions/assistant-extension.d.ts +24 -0
  53. package/dist/types/src/extensions/assistant-extension.d.ts.map +1 -0
  54. package/dist/types/src/extensions/index.d.ts +2 -0
  55. package/dist/types/src/extensions/index.d.ts.map +1 -0
  56. package/dist/types/src/hooks/index.d.ts +1 -0
  57. package/dist/types/src/hooks/index.d.ts.map +1 -1
  58. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts +25 -0
  59. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts.map +1 -0
  60. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  61. package/dist/types/src/index.d.ts +1 -2
  62. package/dist/types/src/index.d.ts.map +1 -1
  63. package/dist/types/src/stories/Automerge.stories.d.ts +25 -24
  64. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -1
  65. package/dist/types/src/stories/Comments.stories.d.ts +2 -2
  66. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  67. package/dist/types/src/stories/EditorToolbar.stories.d.ts +28 -26
  68. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  69. package/dist/types/src/stories/Experimental.stories.d.ts +3 -3
  70. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  71. package/dist/types/src/stories/Markdown.stories.d.ts +2 -2
  72. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  73. package/dist/types/src/stories/Outliner.stories.d.ts +2 -2
  74. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  75. package/dist/types/src/stories/Popover.stories.d.ts +2 -2
  76. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
  77. package/dist/types/src/stories/Preview.stories.d.ts +2 -2
  78. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  79. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  80. package/dist/types/src/stories/TextEditor.stories.d.ts +2 -2
  81. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  82. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -1
  83. package/dist/types/src/stories/components/EditorStory.d.ts +4 -4
  84. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  85. package/dist/types/src/stories/components/util.d.ts +3 -2
  86. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  87. package/dist/types/src/translations.d.ts +24 -24
  88. package/dist/types/src/translations.d.ts.map +1 -1
  89. package/dist/types/src/util/react.d.ts +2 -5
  90. package/dist/types/src/util/react.d.ts.map +1 -1
  91. package/dist/types/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +77 -68
  93. package/src/components/Editor/Editor.stories.tsx +15 -21
  94. package/src/components/Editor/Editor.tsx +54 -53
  95. package/src/components/Editor/EditorView.tsx +102 -0
  96. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +19 -24
  97. package/src/components/EditorMenuProvider/menu-presets.ts +1 -0
  98. package/src/components/EditorMenuProvider/popover.ts +3 -1
  99. package/src/components/EditorMenuProvider/useEditorMenu.ts +8 -1
  100. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +1 -1
  101. package/src/components/EditorToolbar/EditorToolbar.tsx +31 -65
  102. package/src/components/EditorToolbar/blocks.ts +54 -46
  103. package/src/components/EditorToolbar/formatting.ts +44 -45
  104. package/src/components/EditorToolbar/headings.ts +44 -50
  105. package/src/components/EditorToolbar/image.ts +16 -21
  106. package/src/components/EditorToolbar/index.ts +2 -3
  107. package/src/components/EditorToolbar/lists.ts +58 -0
  108. package/src/components/EditorToolbar/search.ts +16 -21
  109. package/src/components/EditorToolbar/types.ts +8 -0
  110. package/src/components/EditorToolbar/view-mode.ts +37 -43
  111. package/src/components/index.ts +0 -3
  112. package/src/extensions/Assistant.stories.tsx +112 -0
  113. package/src/extensions/assistant-extension.tsx +223 -0
  114. package/src/extensions/index.ts +5 -0
  115. package/src/hooks/index.ts +1 -0
  116. package/src/hooks/useBasicMarkdownExtensions.ts +55 -0
  117. package/src/index.ts +1 -4
  118. package/src/stories/Automerge.stories.tsx +18 -16
  119. package/src/stories/Comments.stories.tsx +6 -6
  120. package/src/stories/EditorToolbar.stories.tsx +37 -65
  121. package/src/stories/Experimental.stories.tsx +12 -12
  122. package/src/stories/Markdown.stories.tsx +2 -2
  123. package/src/stories/Outliner.stories.tsx +4 -5
  124. package/src/stories/Popover.stories.tsx +10 -11
  125. package/src/stories/Preview.stories.tsx +51 -43
  126. package/src/stories/Tags.stories.tsx +5 -5
  127. package/src/stories/TextEditor.stories.tsx +2 -2
  128. package/src/stories/Theme.stories.tsx +4 -4
  129. package/src/stories/components/EditorStory.tsx +19 -12
  130. package/src/stories/components/util.tsx +49 -50
  131. package/src/translations.ts +29 -24
  132. package/src/util/react.tsx +4 -13
  133. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +0 -1
  134. package/dist/types/src/components/EditorContent/controller.d.ts.map +0 -1
  135. package/dist/types/src/components/EditorContent/index.d.ts +0 -3
  136. package/dist/types/src/components/EditorContent/index.d.ts.map +0 -1
  137. package/dist/types/src/components/EditorToolbar/actions.d.ts +0 -24
  138. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +0 -1
  139. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +0 -11
  140. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +0 -1
  141. package/dist/types/src/stories/CommandDialog.stories.d.ts +0 -14
  142. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +0 -1
  143. package/src/components/EditorContent/EditorContent.tsx +0 -83
  144. package/src/components/EditorContent/index.ts +0 -6
  145. package/src/components/EditorToolbar/actions.ts +0 -87
  146. package/src/components/EditorToolbar/useEditorToolbar.ts +0 -20
  147. package/src/stories/CommandDialog.stories.tsx +0 -81
  148. /package/dist/types/src/components/{EditorContent → Editor}/controller.d.ts +0 -0
  149. /package/src/components/{EditorContent → Editor}/controller.ts +0 -0
@@ -1,87 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type EditorView } from '@codemirror/view';
6
-
7
- import { type Node } from '@dxos/app-graph';
8
- import {
9
- type MenuItemGroup,
10
- type ToolbarMenuActionGroupProperties,
11
- createMenuAction,
12
- createMenuItemGroup,
13
- } from '@dxos/react-ui-menu';
14
- import { List, addList, removeList } from '@dxos/ui-editor';
15
- import { type MenuActionProperties } from '@dxos/ui-types';
16
-
17
- import { translationKey } from '../../translations';
18
-
19
- import { type EditorToolbarState } from './useEditorToolbar';
20
-
21
- const listStyles = {
22
- bullet: 'ph--list-bullets--regular',
23
- ordered: 'ph--list-numbers--regular',
24
- task: 'ph--list-checks--regular',
25
- };
26
-
27
- export const createLists = (state: EditorToolbarState, getView: () => EditorView) => {
28
- const value = state.listStyle ?? '';
29
- const listGroupAction = createListGroupAction(value);
30
- const listActionsMap = createListActions(value, getView);
31
- return {
32
- nodes: [listGroupAction as Node.NodeArg<any>, ...listActionsMap],
33
- edges: [
34
- { source: 'root', target: 'list' },
35
- ...listActionsMap.map(({ id }) => ({ source: listGroupAction.id, target: id })),
36
- ],
37
- };
38
- };
39
-
40
- export const createEditorAction = (id: string, props: Partial<MenuActionProperties>, invoke: () => void) => {
41
- const { label = [`${id} label`, { ns: translationKey }], ...rest } = props;
42
-
43
- return createMenuAction(id, invoke, {
44
- label,
45
- ...rest,
46
- }) as Node.Action<MenuActionProperties>;
47
- };
48
-
49
- export const createEditorActionGroup = (
50
- id: string,
51
- props: Omit<ToolbarMenuActionGroupProperties, 'icon'>,
52
- icon?: string,
53
- ): MenuItemGroup<ToolbarMenuActionGroupProperties> => {
54
- const { label = [`${id} label`, { ns: translationKey }], ...rest } = props;
55
-
56
- return createMenuItemGroup(id, {
57
- label,
58
- icon,
59
- iconOnly: true,
60
- ...rest,
61
- }) as MenuItemGroup<ToolbarMenuActionGroupProperties>;
62
- };
63
-
64
- const createListGroupAction = (value: string) =>
65
- createEditorActionGroup('list', {
66
- variant: 'toggleGroup',
67
- selectCardinality: 'single',
68
- value,
69
- } as ToolbarMenuActionGroupProperties);
70
-
71
- const createListActions = (value: string, getView: () => EditorView) =>
72
- Object.entries(listStyles).map(([listStyle, icon]) => {
73
- const checked = value === listStyle;
74
- return createEditorAction(`list-${listStyle}`, { checked, icon }, () => {
75
- const view = getView();
76
- if (!view) {
77
- return;
78
- }
79
-
80
- const listType = listStyle === 'ordered' ? List.Ordered : listStyle === 'bullet' ? List.Bullet : List.Task;
81
- if (checked) {
82
- removeList(listType)(view);
83
- } else {
84
- addList(listType)(view);
85
- }
86
- });
87
- });
@@ -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
- };
@@ -1,81 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import React, { type KeyboardEvent, useState } from 'react';
7
-
8
- import { type Button, IconButton, Input } from '@dxos/react-ui';
9
- import { withTheme } from '@dxos/react-ui/testing';
10
- import { editorWidth, join } from '@dxos/ui-editor';
11
- import { mx } from '@dxos/ui-theme';
12
-
13
- import { EditorStory } from './components';
14
-
15
- // TODO(burdon): Reimplement with Popover.
16
- const CommandDialog = ({ onAction }: { onAction: (action?: any) => void }) => {
17
- const [text, setText] = useState('');
18
-
19
- const handleInsert = () => {
20
- // TODO(burdon): Use queue ref.
21
- const link = `![${text}](dxn:queue:data:123)`;
22
- onAction(text.length ? { type: 'insert', text: link } : undefined);
23
- };
24
-
25
- const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
26
- switch (event.key) {
27
- case 'Enter': {
28
- handleInsert();
29
- break;
30
- }
31
- case 'Escape': {
32
- onAction();
33
- break;
34
- }
35
- }
36
- };
37
-
38
- return (
39
- <div className='flex is-full justify-center'>
40
- <div
41
- className={mx(
42
- 'flex is-full p-2 gap-2 items-center bg-modalSurface border border-separator rounded-md',
43
- editorWidth,
44
- )}
45
- >
46
- <Input.Root>
47
- <Input.TextInput
48
- autoFocus={true}
49
- placeholder='Ask a question...'
50
- value={text}
51
- onChange={(ev) => setText(ev.target.value)}
52
- onKeyDown={handleKeyDown}
53
- />
54
- </Input.Root>
55
- <IconButton
56
- icon='ph--x--regular'
57
- label='Cancel'
58
- iconOnly
59
- variant='ghost'
60
- classNames='pli-0'
61
- onClick={() => onAction({ type: 'cancel' })}
62
- />
63
- </div>
64
- </div>
65
- );
66
- };
67
-
68
- const meta = {
69
- title: 'ui/react-ui-editor/CommandDialog',
70
- render: () => <EditorStory text={join('# Command', '', '')} extensions={[]} />,
71
- decorators: [withTheme()],
72
- parameters: {
73
- layout: 'fullscreen',
74
- },
75
- } satisfies Meta<typeof Button>;
76
-
77
- export default meta;
78
-
79
- type Story = StoryObj<typeof meta>;
80
-
81
- export const Default: Story = {};