@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.
Files changed (90) hide show
  1. package/dist/lib/browser/index.mjs +61 -139
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/browser/translations.mjs +39 -0
  5. package/dist/lib/browser/translations.mjs.map +7 -0
  6. package/dist/lib/node-esm/index.mjs +61 -139
  7. package/dist/lib/node-esm/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/meta.json +1 -1
  9. package/dist/lib/node-esm/translations.mjs +41 -0
  10. package/dist/lib/node-esm/translations.mjs.map +7 -0
  11. package/dist/types/src/components/Editor/Editor.d.ts +17 -5
  12. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  13. package/dist/types/src/components/Editor/Editor.stories.d.ts +1 -1
  14. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
  15. package/dist/types/src/components/Editor/EditorView.d.ts.map +1 -1
  16. package/dist/types/src/components/Editor/controller.d.ts.map +1 -1
  17. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -1
  18. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -1
  19. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +2 -1
  20. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
  21. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
  22. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -1
  23. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +1 -1
  24. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  25. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  26. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  27. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  28. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  29. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
  30. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  31. package/dist/types/src/components/EditorToolbar/types.d.ts +2 -1
  32. package/dist/types/src/components/EditorToolbar/types.d.ts.map +1 -1
  33. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +1 -1
  34. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  35. package/dist/types/src/extensions/Assistant.stories.d.ts.map +1 -1
  36. package/dist/types/src/extensions/assistant-extension.d.ts.map +1 -1
  37. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts.map +1 -1
  38. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  39. package/dist/types/src/index.d.ts +0 -2
  40. package/dist/types/src/index.d.ts.map +1 -1
  41. package/dist/types/src/stories/Automerge.stories.d.ts +24 -24
  42. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -1
  43. package/dist/types/src/stories/Comments.stories.d.ts +1 -1
  44. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  45. package/dist/types/src/stories/EditorToolbar.stories.d.ts +25 -25
  46. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  47. package/dist/types/src/stories/Experimental.stories.d.ts +2 -2
  48. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  49. package/dist/types/src/stories/Markdown.stories.d.ts +1 -1
  50. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  51. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  52. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
  53. package/dist/types/src/stories/Preview.stories.d.ts +1 -1
  54. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  55. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  56. package/dist/types/src/stories/TextEditor.stories.d.ts +1 -1
  57. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  58. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -1
  59. package/dist/types/src/stories/components/EditorStory.d.ts +1 -1
  60. package/dist/types/src/stories/components/util.d.ts +2 -1
  61. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  62. package/dist/types/src/translations.d.ts +24 -24
  63. package/dist/types/src/translations.d.ts.map +1 -1
  64. package/dist/types/src/util/react.d.ts +1 -1
  65. package/dist/types/src/util/react.d.ts.map +1 -1
  66. package/dist/types/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +54 -45
  68. package/src/components/Editor/Editor.tsx +2 -8
  69. package/src/components/Editor/EditorView.tsx +29 -10
  70. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +1 -1
  71. package/src/components/EditorMenuProvider/popover.ts +3 -1
  72. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +1 -1
  73. package/src/components/EditorToolbar/EditorToolbar.tsx +8 -6
  74. package/src/components/EditorToolbar/blocks.ts +2 -1
  75. package/src/components/EditorToolbar/formatting.ts +2 -1
  76. package/src/components/EditorToolbar/headings.ts +2 -1
  77. package/src/components/EditorToolbar/image.ts +1 -1
  78. package/src/components/EditorToolbar/lists.ts +2 -1
  79. package/src/components/EditorToolbar/search.ts +1 -1
  80. package/src/components/EditorToolbar/types.ts +2 -1
  81. package/src/components/EditorToolbar/view-mode.ts +3 -2
  82. package/src/extensions/Assistant.stories.tsx +2 -1
  83. package/src/extensions/assistant-extension.tsx +3 -3
  84. package/src/index.ts +0 -4
  85. package/src/stories/Automerge.stories.tsx +4 -3
  86. package/src/stories/Comments.stories.tsx +2 -1
  87. package/src/stories/EditorToolbar.stories.tsx +4 -3
  88. package/src/stories/Experimental.stories.tsx +7 -7
  89. package/src/stories/components/util.tsx +2 -2
  90. 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: translationKey
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: translationKey
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: translationKey
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: translationKey
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: translationKey
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: translationKey
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: translationKey
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: translationKey
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: translationKey
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: translationKey
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 = useEditorToolbarActionGraph(props);
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 useEditorToolbarActionGraph = ({ state, getView, customActions, ...features }) => {
1061
- const menuCreator = useMemo2(() => createToolbarActions({
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 createToolbarActions = ({ state, getView, customActions, ...features }) => {
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
- onChange?.(view2.state.doc.toString());
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?.dispatch({
1282
+ if (view.state.doc.toString() === next) {
1283
+ return;
1284
+ }
1285
+ view.dispatch({
1347
1286
  annotations: initialSync,
1348
- changes: value ? [
1287
+ changes: [
1349
1288
  {
1350
1289
  from: 0,
1351
- to: view?.state.doc.length ?? 0,
1352
- insert: value ?? ""
1290
+ to: view.state.doc.length,
1291
+ insert: next
1353
1292
  }
1354
- ] : [],
1293
+ ],
1355
1294
  selection: selectionEnd ? {
1356
- anchor: view?.state.doc.length ?? 0
1295
+ anchor: next.length
1357
1296
  } : void 0
1358
1297
  });
1359
1298
  if (selectionEnd) {
1360
- view?.focus();
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
- role: "none",
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 useRef4, useState as useState5 } from "react";
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 = useRef4(null);
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-surface-text) !important"
1504
+ color: "var(--color-base-foreground) !important"
1577
1505
  },
1578
1506
  ".cm-panel.cm-panel-lint ul": {
1579
- color: "var(--color-base-surface-text) !important",
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-surface-text) !important",
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,