@dxos/react-ui-editor 0.4.8-main.e00e8f3 → 0.4.8-main.e23f3c5
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 +20 -16
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/extensions/markdown/formatting.d.ts.map +1 -1
- package/dist/types/src/hooks/useDocAccessor.d.ts +4 -2
- package/dist/types/src/hooks/useDocAccessor.d.ts.map +1 -1
- package/package.json +24 -24
- package/src/extensions/markdown/formatting.ts +11 -11
- package/src/hooks/useDocAccessor.ts +8 -2
|
@@ -33,7 +33,7 @@ import { Doc, YText, YXmlFragment } from "@dxos/text-model";
|
|
|
33
33
|
import { EditorState as EditorState2 } from "@codemirror/state";
|
|
34
34
|
import { EditorView as EditorView17 } from "@codemirror/view";
|
|
35
35
|
import { useFocusableGroup } from "@fluentui/react-tabster";
|
|
36
|
-
import React, { forwardRef, useCallback, useEffect as useEffect2, useImperativeHandle, useRef, useState } from "react";
|
|
36
|
+
import React, { forwardRef, useCallback, useEffect as useEffect2, useImperativeHandle, useRef, useState as useState2 } from "react";
|
|
37
37
|
import { log as log9 } from "@dxos/log";
|
|
38
38
|
import { isNotFalsy as isNotFalsy4 } from "@dxos/util";
|
|
39
39
|
|
|
@@ -2797,8 +2797,7 @@ import { snippet } from "@codemirror/autocomplete";
|
|
|
2797
2797
|
import { syntaxTree as syntaxTree2 } from "@codemirror/language";
|
|
2798
2798
|
import { EditorSelection } from "@codemirror/state";
|
|
2799
2799
|
import { EditorView as EditorView13, keymap as keymap6 } from "@codemirror/view";
|
|
2800
|
-
import { useMemo } from "react";
|
|
2801
|
-
import { useStateRef } from "@dxos/react-async";
|
|
2800
|
+
import { useMemo, useState } from "react";
|
|
2802
2801
|
var formattingEquals = (a, b) => a.blockType === b.blockType && a.strong === b.strong && a.emphasis === b.emphasis && a.strikethrough === b.strikethrough && a.code === b.code && a.link === b.link && a.listStyle === b.listStyle && a.blockQuote === b.blockQuote;
|
|
2803
2802
|
var Inline;
|
|
2804
2803
|
(function(Inline2) {
|
|
@@ -3866,15 +3865,20 @@ var getFormatting = (state2) => {
|
|
|
3866
3865
|
};
|
|
3867
3866
|
};
|
|
3868
3867
|
var useFormattingState = () => {
|
|
3869
|
-
const [state2, setState
|
|
3868
|
+
const [state2, setState] = useState();
|
|
3870
3869
|
const observer = useMemo(() => EditorView13.updateListener.of((update2) => {
|
|
3871
3870
|
if (update2.docChanged || update2.selectionSet) {
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3871
|
+
setState((prevState) => {
|
|
3872
|
+
const newState = getFormatting(update2.state);
|
|
3873
|
+
if (!prevState || !formattingEquals(prevState, newState)) {
|
|
3874
|
+
return newState;
|
|
3875
|
+
}
|
|
3876
|
+
return prevState;
|
|
3877
|
+
});
|
|
3876
3878
|
}
|
|
3877
|
-
}), [
|
|
3879
|
+
}), [
|
|
3880
|
+
setState
|
|
3881
|
+
]);
|
|
3878
3882
|
return [
|
|
3879
3883
|
state2,
|
|
3880
3884
|
observer
|
|
@@ -4316,12 +4320,12 @@ var instanceCount = 0;
|
|
|
4316
4320
|
var TextEditor = /* @__PURE__ */ forwardRef(({ id, doc, selection, extensions, className, autoFocus, scrollTo = EditorView17.scrollIntoView(0, {
|
|
4317
4321
|
yMargin: 0
|
|
4318
4322
|
}), moveToEndOfLine, debug, dataTestId }, forwardedRef) => {
|
|
4319
|
-
const [instanceId] =
|
|
4323
|
+
const [instanceId] = useState2(() => `text-editor-${++instanceCount}`);
|
|
4320
4324
|
const tabsterDOMAttribute = useFocusableGroup({
|
|
4321
4325
|
tabBehavior: "limited"
|
|
4322
4326
|
});
|
|
4323
4327
|
const rootRef = useRef(null);
|
|
4324
|
-
const [view, setView] =
|
|
4328
|
+
const [view, setView] = useState2(null);
|
|
4325
4329
|
useImperativeHandle(forwardedRef, () => view, [
|
|
4326
4330
|
view
|
|
4327
4331
|
]);
|
|
@@ -4435,7 +4439,7 @@ var TextEditor = /* @__PURE__ */ forwardRef(({ id, doc, selection, extensions, c
|
|
|
4435
4439
|
// packages/ui/react-ui-editor/src/components/Toolbar/Toolbar.tsx
|
|
4436
4440
|
import { ChatText, Code, CodeBlock, Image, Link, ListBullets, ListChecks, ListNumbers, Paragraph, Quotes, TextStrikethrough, Table as Table2, TextB, TextHOne, TextHTwo, TextHThree, TextHFour, TextHFive, TextHSix, TextItalic } from "@phosphor-icons/react";
|
|
4437
4441
|
import { createContext } from "@radix-ui/react-context";
|
|
4438
|
-
import React2, { useEffect as useEffect3, useRef as useRef2, useState as
|
|
4442
|
+
import React2, { useEffect as useEffect3, useRef as useRef2, useState as useState3 } from "react";
|
|
4439
4443
|
import { useDropzone } from "react-dropzone";
|
|
4440
4444
|
import { DensityProvider, ElevationProvider, Select, Toolbar as NaturalToolbar, Tooltip, useTranslation } from "@dxos/react-ui";
|
|
4441
4445
|
import { getSize } from "@dxos/react-ui-theme";
|
|
@@ -4508,8 +4512,8 @@ var MarkdownHeading = () => {
|
|
|
4508
4512
|
const value = header ? header[1] : blockType === "paragraph" || !blockType ? "0" : void 0;
|
|
4509
4513
|
const HeadingIcon = HeadingIcons[value ?? "0"];
|
|
4510
4514
|
const suppressNextTooltip = useRef2(false);
|
|
4511
|
-
const [tooltipOpen, setTooltipOpen] =
|
|
4512
|
-
const [selectOpen, setSelectOpen] =
|
|
4515
|
+
const [tooltipOpen, setTooltipOpen] = useState3(false);
|
|
4516
|
+
const [selectOpen, setSelectOpen] = useState3(false);
|
|
4513
4517
|
return /* @__PURE__ */ React2.createElement(Tooltip.Root, {
|
|
4514
4518
|
open: tooltipOpen,
|
|
4515
4519
|
onOpenChange: (nextOpen) => {
|
|
@@ -4821,14 +4825,14 @@ var useDocAccessor = (text) => {
|
|
|
4821
4825
|
// packages/ui/react-ui-editor/src/hooks/useTextEditor.ts
|
|
4822
4826
|
import { EditorSelection as EditorSelection2, EditorState as EditorState3 } from "@codemirror/state";
|
|
4823
4827
|
import { EditorView as EditorView18 } from "@codemirror/view";
|
|
4824
|
-
import { useEffect as useEffect4, useMemo as useMemo3, useRef as useRef3, useState as
|
|
4828
|
+
import { useEffect as useEffect4, useMemo as useMemo3, useRef as useRef3, useState as useState4 } from "react";
|
|
4825
4829
|
import { log as log10 } from "@dxos/log";
|
|
4826
4830
|
import { isNotFalsy as isNotFalsy5 } from "@dxos/util";
|
|
4827
4831
|
var __dxlog_file13 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextEditor.ts";
|
|
4828
4832
|
var useTextEditor = (cb = () => ({}), deps = []) => {
|
|
4829
4833
|
let { id, doc, selection, extensions, autoFocus, scrollTo, debug } = useMemo3(cb, deps ?? []);
|
|
4830
4834
|
const onUpdate = useRef3();
|
|
4831
|
-
const [view, setView] =
|
|
4835
|
+
const [view, setView] = useState4();
|
|
4832
4836
|
const parentRef = useRef3(null);
|
|
4833
4837
|
useEffect4(() => {
|
|
4834
4838
|
let view2;
|