@dxos/react-ui-editor 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393
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 +61 -139
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/translations.mjs +39 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +61 -139
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/translations.mjs +41 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/types/src/components/Editor/Editor.d.ts +17 -5
- package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
- package/dist/types/src/components/Editor/Editor.stories.d.ts +1 -1
- package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
- package/dist/types/src/components/Editor/EditorView.d.ts.map +1 -1
- package/dist/types/src/components/Editor/controller.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/popover.d.ts +2 -1
- package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
- package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +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/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/image.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/types.d.ts +2 -1
- package/dist/types/src/components/EditorToolbar/types.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/extensions/Assistant.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/assistant-extension.d.ts.map +1 -1
- package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/stories/Automerge.stories.d.ts +24 -24
- package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Comments.stories.d.ts +1 -1
- package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/stories/EditorToolbar.stories.d.ts +25 -25
- package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Experimental.stories.d.ts +2 -2
- package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Markdown.stories.d.ts +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/Popover.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Preview.stories.d.ts +1 -1
- package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
- package/dist/types/src/stories/TextEditor.stories.d.ts +1 -1
- package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Theme.stories.d.ts.map +1 -1
- package/dist/types/src/stories/components/EditorStory.d.ts +1 -1
- package/dist/types/src/stories/components/util.d.ts +2 -1
- package/dist/types/src/stories/components/util.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +24 -24
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/util/react.d.ts +1 -1
- package/dist/types/src/util/react.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +54 -45
- package/src/components/Editor/Editor.tsx +2 -8
- package/src/components/Editor/EditorView.tsx +29 -10
- package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +1 -1
- package/src/components/EditorMenuProvider/popover.ts +3 -1
- package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +1 -1
- package/src/components/EditorToolbar/EditorToolbar.tsx +8 -6
- package/src/components/EditorToolbar/blocks.ts +2 -1
- package/src/components/EditorToolbar/formatting.ts +2 -1
- package/src/components/EditorToolbar/headings.ts +2 -1
- package/src/components/EditorToolbar/image.ts +1 -1
- package/src/components/EditorToolbar/lists.ts +2 -1
- package/src/components/EditorToolbar/search.ts +1 -1
- package/src/components/EditorToolbar/types.ts +2 -1
- package/src/components/EditorToolbar/view-mode.ts +3 -2
- package/src/extensions/Assistant.stories.tsx +2 -1
- package/src/extensions/assistant-extension.tsx +3 -3
- package/src/index.ts +0 -4
- package/src/stories/Automerge.stories.tsx +4 -3
- package/src/stories/Comments.stories.tsx +2 -1
- package/src/stories/EditorToolbar.stories.tsx +4 -3
- package/src/stories/Experimental.stories.tsx +7 -7
- package/src/stories/components/util.tsx +2 -2
- package/src/util/react.tsx +1 -1
|
@@ -1,40 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
|
-
// src/translations.ts
|
|
4
|
-
var translationKey = "@dxos/react-ui-editor";
|
|
5
|
-
var translations = [
|
|
6
|
-
{
|
|
7
|
-
"en-US": {
|
|
8
|
-
[translationKey]: {
|
|
9
|
-
"comment.label": "Create comment",
|
|
10
|
-
"image.label": "Insert image",
|
|
11
|
-
"search.label": "Search",
|
|
12
|
-
"block.label": "Block",
|
|
13
|
-
"block.blockquote.label": "Block quote",
|
|
14
|
-
"block.codeblock.label": "Code block",
|
|
15
|
-
"block.table.label": "Create table",
|
|
16
|
-
"formatting.label": "Formatting",
|
|
17
|
-
"formatting.strong.label": "Bold",
|
|
18
|
-
"formatting.emphasis.label": "Italics",
|
|
19
|
-
"formatting.strikethrough.label": "Strikethrough",
|
|
20
|
-
"formatting.code.label": "Code",
|
|
21
|
-
"formatting.link.label": "Link",
|
|
22
|
-
"list.bullet.label": "Bullet list",
|
|
23
|
-
"list.ordered.label": "Numbered list",
|
|
24
|
-
"list.task.label": "Task list",
|
|
25
|
-
"heading.label": "Heading level",
|
|
26
|
-
"heading-level.label_zero": "Paragraph",
|
|
27
|
-
"heading-level.label_one": "Heading level {{count}}",
|
|
28
|
-
"heading-level.label_other": "Heading level {{count}}",
|
|
29
|
-
"view-mode.label": "Editor view",
|
|
30
|
-
"view-mode.preview.label": "Markdown",
|
|
31
|
-
"view-mode.source.label": "Plain text",
|
|
32
|
-
"view-mode.readonly.label": "Read only"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
];
|
|
37
|
-
|
|
38
3
|
// src/components/Editor/Editor.tsx
|
|
39
4
|
import { Atom as Atom2 } from "@effect-atom/atom-react";
|
|
40
5
|
import { createContext } from "@radix-ui/react-context";
|
|
@@ -96,6 +61,7 @@ var popover = (options = {}) => {
|
|
|
96
61
|
options.trigger && placeholder({
|
|
97
62
|
// TODO(burdon): Translations.
|
|
98
63
|
content: `Press '${Array.isArray(options.trigger) ? options.trigger[0] : options.trigger}' for commands`,
|
|
64
|
+
focusOnly: true,
|
|
99
65
|
...options.placeholder
|
|
100
66
|
})
|
|
101
67
|
].filter(isTruthy);
|
|
@@ -453,15 +419,7 @@ var EditorMenuProvider = ({ children, view, groups, currentItem, open: openProp,
|
|
|
453
419
|
prop: openProp,
|
|
454
420
|
defaultProp: defaultOpen,
|
|
455
421
|
onChange: (open2) => {
|
|
456
|
-
invariant(viewRef.current, void 0, {
|
|
457
|
-
F: __dxlog_file,
|
|
458
|
-
L: 64,
|
|
459
|
-
S: void 0,
|
|
460
|
-
A: [
|
|
461
|
-
"viewRef.current",
|
|
462
|
-
""
|
|
463
|
-
]
|
|
464
|
-
});
|
|
422
|
+
invariant(viewRef.current, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 21, S: void 0, A: ["viewRef.current", ""] });
|
|
465
423
|
onOpenChange?.({
|
|
466
424
|
view: viewRef.current,
|
|
467
425
|
open: open2
|
|
@@ -495,15 +453,7 @@ var EditorMenuProvider = ({ children, view, groups, currentItem, open: openProp,
|
|
|
495
453
|
onActivate
|
|
496
454
|
]);
|
|
497
455
|
const handleSelect = useCallback((item) => {
|
|
498
|
-
invariant(viewRef.current, void 0, {
|
|
499
|
-
F: __dxlog_file,
|
|
500
|
-
L: 99,
|
|
501
|
-
S: void 0,
|
|
502
|
-
A: [
|
|
503
|
-
"viewRef.current",
|
|
504
|
-
""
|
|
505
|
-
]
|
|
506
|
-
});
|
|
456
|
+
invariant(viewRef.current, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 56, S: void 0, A: ["viewRef.current", ""] });
|
|
507
457
|
onSelect?.({
|
|
508
458
|
view: viewRef.current,
|
|
509
459
|
item
|
|
@@ -548,7 +498,6 @@ var EditorMenuProvider = ({ children, view, groups, currentItem, open: openProp,
|
|
|
548
498
|
currentItem,
|
|
549
499
|
onSelect: handleSelect
|
|
550
500
|
})))), /* @__PURE__ */ React.createElement(Popover.Arrow, null))), /* @__PURE__ */ React.createElement("div", {
|
|
551
|
-
role: "none",
|
|
552
501
|
className: "contents",
|
|
553
502
|
ref: setRoot
|
|
554
503
|
}, children));
|
|
@@ -631,15 +580,7 @@ var useEditorMenu = ({ trigger, triggerKey, placeholder: placeholder2, filter =
|
|
|
631
580
|
filter
|
|
632
581
|
]);
|
|
633
582
|
const handleOpenChange = useCallback2(async ({ view, open: open2 }) => {
|
|
634
|
-
invariant2(view, void 0, {
|
|
635
|
-
F: __dxlog_file2,
|
|
636
|
-
L: 77,
|
|
637
|
-
S: void 0,
|
|
638
|
-
A: [
|
|
639
|
-
"view",
|
|
640
|
-
""
|
|
641
|
-
]
|
|
642
|
-
});
|
|
583
|
+
invariant2(view, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 40, S: void 0, A: ["view", ""] });
|
|
643
584
|
setOpen(open2);
|
|
644
585
|
if (!open2) {
|
|
645
586
|
setCurrentItem(void 0);
|
|
@@ -776,6 +717,7 @@ import { Menu as Menu2, MenuBuilder, useMenuActions } from "@dxos/react-ui-menu"
|
|
|
776
717
|
|
|
777
718
|
// src/components/EditorToolbar/blocks.ts
|
|
778
719
|
import { addBlockquote, addCodeblock, insertTable, removeBlockquote, removeCodeblock } from "@dxos/ui-editor";
|
|
720
|
+
import { translationKey } from "#translations";
|
|
779
721
|
var blockTypes = {
|
|
780
722
|
blockquote: "ph--quotes--regular",
|
|
781
723
|
codeblock: "ph--code-block--regular",
|
|
@@ -832,6 +774,7 @@ var addBlocks = (state, getView) => (builder) => {
|
|
|
832
774
|
|
|
833
775
|
// src/components/EditorToolbar/formatting.ts
|
|
834
776
|
import { Inline, addLink, removeLink, setStyle } from "@dxos/ui-editor";
|
|
777
|
+
import { translationKey as translationKey2 } from "#translations";
|
|
835
778
|
var formats = {
|
|
836
779
|
strong: "ph--text-b--regular",
|
|
837
780
|
emphasis: "ph--text-italic--regular",
|
|
@@ -845,7 +788,7 @@ var addFormatting = (state, getView) => (builder) => {
|
|
|
845
788
|
label: [
|
|
846
789
|
"formatting.label",
|
|
847
790
|
{
|
|
848
|
-
ns:
|
|
791
|
+
ns: translationKey2
|
|
849
792
|
}
|
|
850
793
|
],
|
|
851
794
|
iconOnly: true,
|
|
@@ -859,7 +802,7 @@ var addFormatting = (state, getView) => (builder) => {
|
|
|
859
802
|
label: [
|
|
860
803
|
`formatting.${type}.label`,
|
|
861
804
|
{
|
|
862
|
-
ns:
|
|
805
|
+
ns: translationKey2
|
|
863
806
|
}
|
|
864
807
|
],
|
|
865
808
|
checked,
|
|
@@ -881,6 +824,7 @@ var addFormatting = (state, getView) => (builder) => {
|
|
|
881
824
|
|
|
882
825
|
// src/components/EditorToolbar/headings.ts
|
|
883
826
|
import { setHeading } from "@dxos/ui-editor";
|
|
827
|
+
import { translationKey as translationKey3 } from "#translations";
|
|
884
828
|
var headingIcons = {
|
|
885
829
|
0: "ph--paragraph--regular",
|
|
886
830
|
1: "ph--text-h-one--regular",
|
|
@@ -901,7 +845,7 @@ var addHeadings = (state, getView) => (builder) => {
|
|
|
901
845
|
label: [
|
|
902
846
|
"heading.label",
|
|
903
847
|
{
|
|
904
|
-
ns:
|
|
848
|
+
ns: translationKey3
|
|
905
849
|
}
|
|
906
850
|
],
|
|
907
851
|
icon: "ph--text-h--regular",
|
|
@@ -919,7 +863,7 @@ var addHeadings = (state, getView) => (builder) => {
|
|
|
919
863
|
"heading-level.label",
|
|
920
864
|
{
|
|
921
865
|
count: level,
|
|
922
|
-
ns:
|
|
866
|
+
ns: translationKey3
|
|
923
867
|
}
|
|
924
868
|
],
|
|
925
869
|
icon,
|
|
@@ -930,12 +874,13 @@ var addHeadings = (state, getView) => (builder) => {
|
|
|
930
874
|
};
|
|
931
875
|
|
|
932
876
|
// src/components/EditorToolbar/image.ts
|
|
877
|
+
import { translationKey as translationKey4 } from "#translations";
|
|
933
878
|
var addImageUpload = (onImageUpload) => (builder) => {
|
|
934
879
|
builder.action("image", {
|
|
935
880
|
label: [
|
|
936
881
|
"image.label",
|
|
937
882
|
{
|
|
938
|
-
ns:
|
|
883
|
+
ns: translationKey4
|
|
939
884
|
}
|
|
940
885
|
],
|
|
941
886
|
testId: "editor.toolbar.image",
|
|
@@ -945,6 +890,7 @@ var addImageUpload = (onImageUpload) => (builder) => {
|
|
|
945
890
|
|
|
946
891
|
// src/components/EditorToolbar/lists.ts
|
|
947
892
|
import { List, addList, removeList } from "@dxos/ui-editor";
|
|
893
|
+
import { translationKey as translationKey5 } from "#translations";
|
|
948
894
|
var listStyles = {
|
|
949
895
|
bullet: "ph--list-bullets--regular",
|
|
950
896
|
ordered: "ph--list-numbers--regular",
|
|
@@ -956,7 +902,7 @@ var addLists = (state, getView) => (builder) => {
|
|
|
956
902
|
label: [
|
|
957
903
|
"list.label",
|
|
958
904
|
{
|
|
959
|
-
ns:
|
|
905
|
+
ns: translationKey5
|
|
960
906
|
}
|
|
961
907
|
],
|
|
962
908
|
iconOnly: true,
|
|
@@ -970,7 +916,7 @@ var addLists = (state, getView) => (builder) => {
|
|
|
970
916
|
label: [
|
|
971
917
|
`list.${listStyle}.label`,
|
|
972
918
|
{
|
|
973
|
-
ns:
|
|
919
|
+
ns: translationKey5
|
|
974
920
|
}
|
|
975
921
|
],
|
|
976
922
|
checked,
|
|
@@ -993,12 +939,13 @@ var addLists = (state, getView) => (builder) => {
|
|
|
993
939
|
|
|
994
940
|
// src/components/EditorToolbar/search.ts
|
|
995
941
|
import { openSearchPanel } from "@codemirror/search";
|
|
942
|
+
import { translationKey as translationKey6 } from "#translations";
|
|
996
943
|
var addSearch = (getView) => (builder) => {
|
|
997
944
|
builder.action("search", {
|
|
998
945
|
label: [
|
|
999
946
|
"search.label",
|
|
1000
947
|
{
|
|
1001
|
-
ns:
|
|
948
|
+
ns: translationKey6
|
|
1002
949
|
}
|
|
1003
950
|
],
|
|
1004
951
|
testId: "editor.toolbar.search",
|
|
@@ -1007,6 +954,7 @@ var addSearch = (getView) => (builder) => {
|
|
|
1007
954
|
};
|
|
1008
955
|
|
|
1009
956
|
// src/components/EditorToolbar/view-mode.ts
|
|
957
|
+
import { translationKey as translationKey7 } from "#translations";
|
|
1010
958
|
var viewModes = {
|
|
1011
959
|
preview: "ph--eye--regular",
|
|
1012
960
|
source: "ph--pencil-simple--regular",
|
|
@@ -1018,7 +966,7 @@ var addViewMode = (state, onViewModeChange) => (builder) => {
|
|
|
1018
966
|
label: [
|
|
1019
967
|
"view-mode.label",
|
|
1020
968
|
{
|
|
1021
|
-
ns:
|
|
969
|
+
ns: translationKey7
|
|
1022
970
|
}
|
|
1023
971
|
],
|
|
1024
972
|
icon: "ph--eye--regular",
|
|
@@ -1034,7 +982,7 @@ var addViewMode = (state, onViewModeChange) => (builder) => {
|
|
|
1034
982
|
label: [
|
|
1035
983
|
`view-mode.${viewMode}.label`,
|
|
1036
984
|
{
|
|
1037
|
-
ns:
|
|
985
|
+
ns: translationKey7
|
|
1038
986
|
}
|
|
1039
987
|
],
|
|
1040
988
|
checked,
|
|
@@ -1046,7 +994,7 @@ var addViewMode = (state, onViewModeChange) => (builder) => {
|
|
|
1046
994
|
|
|
1047
995
|
// src/components/EditorToolbar/EditorToolbar.tsx
|
|
1048
996
|
var EditorToolbar = /* @__PURE__ */ memo(({ classNames, role, attendableId, onAction, ...props }) => {
|
|
1049
|
-
const menuActions =
|
|
997
|
+
const menuActions = useMarkdownMenuActions(props);
|
|
1050
998
|
return /* @__PURE__ */ React2.createElement(ElevationProvider, {
|
|
1051
999
|
elevation: role === "section" ? "positioned" : "base"
|
|
1052
1000
|
}, /* @__PURE__ */ React2.createElement(Menu2.Root, {
|
|
@@ -1057,8 +1005,8 @@ var EditorToolbar = /* @__PURE__ */ memo(({ classNames, role, attendableId, onAc
|
|
|
1057
1005
|
classNames
|
|
1058
1006
|
})));
|
|
1059
1007
|
});
|
|
1060
|
-
var
|
|
1061
|
-
const menuCreator = useMemo2(() =>
|
|
1008
|
+
var useMarkdownMenuActions = ({ state, getView, customActions, ...features }) => {
|
|
1009
|
+
const menuCreator = useMemo2(() => createMarkdownActions({
|
|
1062
1010
|
state,
|
|
1063
1011
|
getView,
|
|
1064
1012
|
customActions,
|
|
@@ -1077,7 +1025,7 @@ var useEditorToolbarActionGraph = ({ state, getView, customActions, ...features
|
|
|
1077
1025
|
]);
|
|
1078
1026
|
return useMenuActions(menuCreator);
|
|
1079
1027
|
};
|
|
1080
|
-
var
|
|
1028
|
+
var createMarkdownActions = ({ state, getView, customActions, ...features }) => {
|
|
1081
1029
|
return Atom.make((get) => {
|
|
1082
1030
|
const stateSnapshot = get(state);
|
|
1083
1031
|
return MenuBuilder.make().subgraph(features?.showHeadings !== false && addHeadings(stateSnapshot, getView)).subgraph(features?.showFormatting !== false && addFormatting(stateSnapshot, getView)).subgraph(features?.showLists !== false && addLists(stateSnapshot, getView)).subgraph(features?.showBlocks !== false && addBlocks(stateSnapshot, getView)).subgraph(features?.onImageUpload && addImageUpload(features.onImageUpload)).separator("gap").subgraph(customActions && get(customActions)).subgraph(features?.showSearch !== false && addSearch(getView)).subgraph(features?.onViewModeChange && addViewMode(stateSnapshot, features.onViewModeChange)).build();
|
|
@@ -1087,7 +1035,7 @@ var createToolbarActions = ({ state, getView, customActions, ...features }) => {
|
|
|
1087
1035
|
// src/components/Editor/EditorView.tsx
|
|
1088
1036
|
import { Transaction } from "@codemirror/state";
|
|
1089
1037
|
import { EditorView as NaturalEditorView } from "@codemirror/view";
|
|
1090
|
-
import React3, { forwardRef, useEffect as useEffect3, useImperativeHandle } from "react";
|
|
1038
|
+
import React3, { forwardRef, useEffect as useEffect3, useImperativeHandle, useRef as useRef4 } from "react";
|
|
1091
1039
|
import { initialSync } from "@dxos/ui-editor";
|
|
1092
1040
|
import { mx } from "@dxos/ui-theme";
|
|
1093
1041
|
|
|
@@ -1139,12 +1087,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
|
1139
1087
|
id,
|
|
1140
1088
|
instanceId,
|
|
1141
1089
|
doc: initialValue?.length ?? 0
|
|
1142
|
-
}, {
|
|
1143
|
-
F: __dxlog_file3,
|
|
1144
|
-
L: 75,
|
|
1145
|
-
S: void 0,
|
|
1146
|
-
C: (f, a) => f(...a)
|
|
1147
|
-
});
|
|
1090
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 22, S: void 0 });
|
|
1148
1091
|
let initialSelection;
|
|
1149
1092
|
if (selection?.anchor && initialValue?.length) {
|
|
1150
1093
|
if (selection.anchor <= initialValue.length && (selection?.head ?? 0) <= initialValue.length) {
|
|
@@ -1165,12 +1108,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
|
1165
1108
|
extensions,
|
|
1166
1109
|
// NOTE: This doesn't catch errors in keymap functions.
|
|
1167
1110
|
EditorView2.exceptionSink.of((err) => {
|
|
1168
|
-
log.catch(err, void 0, {
|
|
1169
|
-
F: __dxlog_file3,
|
|
1170
|
-
L: 97,
|
|
1171
|
-
S: void 0,
|
|
1172
|
-
C: (f, a) => f(...a)
|
|
1173
|
-
});
|
|
1111
|
+
log.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 48, S: void 0 });
|
|
1174
1112
|
})
|
|
1175
1113
|
].filter(isTruthy2)
|
|
1176
1114
|
});
|
|
@@ -1197,12 +1135,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
|
1197
1135
|
return () => {
|
|
1198
1136
|
log("destroy", {
|
|
1199
1137
|
id
|
|
1200
|
-
}, {
|
|
1201
|
-
F: __dxlog_file3,
|
|
1202
|
-
L: 122,
|
|
1203
|
-
S: void 0,
|
|
1204
|
-
C: (f, a) => f(...a)
|
|
1205
|
-
});
|
|
1138
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 75, S: void 0 });
|
|
1206
1139
|
view2?.destroy();
|
|
1207
1140
|
};
|
|
1208
1141
|
}, deps);
|
|
@@ -1214,12 +1147,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
|
1214
1147
|
length: view.state.doc.length,
|
|
1215
1148
|
scrollTo,
|
|
1216
1149
|
selection
|
|
1217
|
-
}, {
|
|
1218
|
-
F: __dxlog_file3,
|
|
1219
|
-
L: 131,
|
|
1220
|
-
S: void 0,
|
|
1221
|
-
C: (f, a) => f(...a)
|
|
1222
|
-
});
|
|
1150
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 85, S: void 0 });
|
|
1223
1151
|
return;
|
|
1224
1152
|
}
|
|
1225
1153
|
view.dispatch(createEditorStateTransaction({
|
|
@@ -1315,6 +1243,8 @@ var createEditorController = (view) => {
|
|
|
1315
1243
|
|
|
1316
1244
|
// src/components/Editor/EditorView.tsx
|
|
1317
1245
|
var EditorView3 = /* @__PURE__ */ forwardRef(({ classNames, id, extensions, selectionEnd, focusable = true, value, onChange, ...props }, forwardedRef) => {
|
|
1246
|
+
const onChangeRef = useRef4(onChange);
|
|
1247
|
+
onChangeRef.current = onChange;
|
|
1318
1248
|
const { parentRef, focusAttributes, view } = useTextEditor(() => ({
|
|
1319
1249
|
id,
|
|
1320
1250
|
initialValue: value,
|
|
@@ -1324,7 +1254,7 @@ var EditorView3 = /* @__PURE__ */ forwardRef(({ classNames, id, extensions, sele
|
|
|
1324
1254
|
NaturalEditorView.updateListener.of(({ view: view2, docChanged, transactions }) => {
|
|
1325
1255
|
const isInitialSync = transactions.some((tr) => tr.annotation(Transaction.userEvent) === initialSync.value);
|
|
1326
1256
|
if (!isInitialSync && docChanged) {
|
|
1327
|
-
|
|
1257
|
+
onChangeRef.current?.(view2.state.doc.toString());
|
|
1328
1258
|
}
|
|
1329
1259
|
})
|
|
1330
1260
|
],
|
|
@@ -1332,8 +1262,7 @@ var EditorView3 = /* @__PURE__ */ forwardRef(({ classNames, id, extensions, sele
|
|
|
1332
1262
|
}), [
|
|
1333
1263
|
id,
|
|
1334
1264
|
extensions,
|
|
1335
|
-
selectionEnd
|
|
1336
|
-
onChange
|
|
1265
|
+
selectionEnd
|
|
1337
1266
|
]);
|
|
1338
1267
|
useImperativeHandle(forwardedRef, () => {
|
|
1339
1268
|
return createEditorController(view);
|
|
@@ -1342,22 +1271,32 @@ var EditorView3 = /* @__PURE__ */ forwardRef(({ classNames, id, extensions, sele
|
|
|
1342
1271
|
view
|
|
1343
1272
|
]);
|
|
1344
1273
|
useEffect3(() => {
|
|
1274
|
+
if (!view) {
|
|
1275
|
+
return;
|
|
1276
|
+
}
|
|
1277
|
+
const next = value ?? "";
|
|
1278
|
+
if (view.state.doc.toString() === next) {
|
|
1279
|
+
return;
|
|
1280
|
+
}
|
|
1345
1281
|
requestAnimationFrame(() => {
|
|
1346
|
-
view
|
|
1282
|
+
if (view.state.doc.toString() === next) {
|
|
1283
|
+
return;
|
|
1284
|
+
}
|
|
1285
|
+
view.dispatch({
|
|
1347
1286
|
annotations: initialSync,
|
|
1348
|
-
changes:
|
|
1287
|
+
changes: [
|
|
1349
1288
|
{
|
|
1350
1289
|
from: 0,
|
|
1351
|
-
to: view
|
|
1352
|
-
insert:
|
|
1290
|
+
to: view.state.doc.length,
|
|
1291
|
+
insert: next
|
|
1353
1292
|
}
|
|
1354
|
-
]
|
|
1293
|
+
],
|
|
1355
1294
|
selection: selectionEnd ? {
|
|
1356
|
-
anchor:
|
|
1295
|
+
anchor: next.length
|
|
1357
1296
|
} : void 0
|
|
1358
1297
|
});
|
|
1359
1298
|
if (selectionEnd) {
|
|
1360
|
-
view
|
|
1299
|
+
view.focus();
|
|
1361
1300
|
}
|
|
1362
1301
|
});
|
|
1363
1302
|
}, [
|
|
@@ -1366,8 +1305,7 @@ var EditorView3 = /* @__PURE__ */ forwardRef(({ classNames, id, extensions, sele
|
|
|
1366
1305
|
selectionEnd
|
|
1367
1306
|
]);
|
|
1368
1307
|
return /* @__PURE__ */ React3.createElement("div", {
|
|
1369
|
-
|
|
1370
|
-
className: mx("w-full outline-hidden focus:border-accent-surface focus-within:border-neutral-focus-indicator", classNames),
|
|
1308
|
+
className: mx("w-full outline-hidden focus:border-accent-surface focus-within:border-focus-ring-subtle", classNames),
|
|
1371
1309
|
...focusable ? focusAttributes : {},
|
|
1372
1310
|
ref: parentRef
|
|
1373
1311
|
});
|
|
@@ -1410,7 +1348,6 @@ EditorRoot.displayName = "Editor.Root";
|
|
|
1410
1348
|
var EDITOR_CONTENT_NAME = "Editor.Content";
|
|
1411
1349
|
var EditorContent = ({ classNames, children }) => {
|
|
1412
1350
|
return /* @__PURE__ */ React4.createElement("div", {
|
|
1413
|
-
role: "none",
|
|
1414
1351
|
className: mx2("grid grid-rows-[min-content_1fr] h-full overflow-hidden", classNames)
|
|
1415
1352
|
}, children);
|
|
1416
1353
|
};
|
|
@@ -1436,15 +1373,7 @@ var EDITOR_TOOLBAR_NAME = "Editor.Toolbar";
|
|
|
1436
1373
|
var EditorToolbar2 = (props) => {
|
|
1437
1374
|
const { controller, state } = useEditorContext(EDITOR_TOOLBAR_NAME);
|
|
1438
1375
|
const getView = useCallback4(() => {
|
|
1439
|
-
invariant3(controller?.view, void 0, {
|
|
1440
|
-
F: __dxlog_file4,
|
|
1441
|
-
L: 163,
|
|
1442
|
-
S: void 0,
|
|
1443
|
-
A: [
|
|
1444
|
-
"controller?.view",
|
|
1445
|
-
""
|
|
1446
|
-
]
|
|
1447
|
-
});
|
|
1376
|
+
invariant3(controller?.view, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 99, S: void 0, A: ["controller?.view", ""] });
|
|
1448
1377
|
return controller?.view;
|
|
1449
1378
|
}, [
|
|
1450
1379
|
controller
|
|
@@ -1458,19 +1387,19 @@ var EditorToolbar2 = (props) => {
|
|
|
1458
1387
|
EditorToolbar2.displayName = EDITOR_TOOLBAR_NAME;
|
|
1459
1388
|
var Editor = {
|
|
1460
1389
|
Root: EditorRoot,
|
|
1390
|
+
Toolbar: EditorToolbar2,
|
|
1461
1391
|
Content: EditorContent,
|
|
1462
|
-
View: EditorView4
|
|
1463
|
-
Toolbar: EditorToolbar2
|
|
1392
|
+
View: EditorView4
|
|
1464
1393
|
};
|
|
1465
1394
|
|
|
1466
1395
|
// src/components/EditorPreviewProvider/EditorPreviewProvider.tsx
|
|
1467
1396
|
import { createContext as createContext2 } from "@radix-ui/react-context";
|
|
1468
|
-
import React5, { useCallback as useCallback5, useEffect as useEffect4, useRef as
|
|
1397
|
+
import React5, { useCallback as useCallback5, useEffect as useEffect4, useRef as useRef5, useState as useState5 } from "react";
|
|
1469
1398
|
import { addEventListener as addEventListener2 } from "@dxos/async";
|
|
1470
1399
|
import { DX_ANCHOR_ACTIVATE as DX_ANCHOR_ACTIVATE2, Popover as Popover2 } from "@dxos/react-ui";
|
|
1471
1400
|
var [EditorPreviewContextProvider, useEditorPreview] = createContext2("PreviewPopover", {});
|
|
1472
1401
|
var EditorPreviewProvider = ({ children, onLookup }) => {
|
|
1473
|
-
const triggerRef =
|
|
1402
|
+
const triggerRef = useRef5(null);
|
|
1474
1403
|
const [value, setValue] = useState5({});
|
|
1475
1404
|
const [open, setOpen] = useState5(false);
|
|
1476
1405
|
const handleActivate = useCallback5((event) => {
|
|
@@ -1519,7 +1448,6 @@ var EditorPreviewProvider = ({ children, onLookup }) => {
|
|
|
1519
1448
|
}, /* @__PURE__ */ React5.createElement(Popover2.VirtualTrigger, {
|
|
1520
1449
|
virtualRef: triggerRef
|
|
1521
1450
|
}), /* @__PURE__ */ React5.createElement("div", {
|
|
1522
|
-
role: "none",
|
|
1523
1451
|
className: "contents",
|
|
1524
1452
|
ref: setRoot
|
|
1525
1453
|
}, children)));
|
|
@@ -1573,15 +1501,15 @@ var assistant = (options) => {
|
|
|
1573
1501
|
},
|
|
1574
1502
|
/** @apply dx-button */
|
|
1575
1503
|
".cm-panel button": {
|
|
1576
|
-
color: "var(--color-base-
|
|
1504
|
+
color: "var(--color-base-foreground) !important"
|
|
1577
1505
|
},
|
|
1578
1506
|
".cm-panel.cm-panel-lint ul": {
|
|
1579
|
-
color: "var(--color-base-
|
|
1507
|
+
color: "var(--color-base-foreground) !important",
|
|
1580
1508
|
backgroundColor: "var(--color-base-surface) !important",
|
|
1581
1509
|
marginRight: "2rem !important"
|
|
1582
1510
|
},
|
|
1583
1511
|
".cm-panel.cm-panel-lint ul [aria-selected]": {
|
|
1584
|
-
color: "var(--color-base-
|
|
1512
|
+
color: "var(--color-base-foreground) !important",
|
|
1585
1513
|
backgroundColor: "var(--color-base-surface) !important"
|
|
1586
1514
|
},
|
|
1587
1515
|
".cm-panel.cm-panel-lint ul li": {
|
|
@@ -1689,12 +1617,7 @@ var assistantLinter = ({ generate, instructions = DEFAULT_INSTRUCTIONS, autoPane
|
|
|
1689
1617
|
return diagnostics;
|
|
1690
1618
|
}
|
|
1691
1619
|
} catch (err) {
|
|
1692
|
-
log2.catch(err, void 0, {
|
|
1693
|
-
F: __dxlog_file5,
|
|
1694
|
-
L: 214,
|
|
1695
|
-
S: void 0,
|
|
1696
|
-
C: (f, a) => f(...a)
|
|
1697
|
-
});
|
|
1620
|
+
log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 169, S: void 0 });
|
|
1698
1621
|
}
|
|
1699
1622
|
return [];
|
|
1700
1623
|
}, {
|
|
@@ -1717,7 +1640,6 @@ export {
|
|
|
1717
1640
|
popover,
|
|
1718
1641
|
popoverRangeEffect,
|
|
1719
1642
|
popoverStateField,
|
|
1720
|
-
translations,
|
|
1721
1643
|
useBasicMarkdownExtensions,
|
|
1722
1644
|
useEditorContext,
|
|
1723
1645
|
useEditorMenu,
|