mirror of
https://github.com/muerwre/markdown-home-tab.git
synced 2025-04-24 16:36:41 +07:00
made simplier editor, added color coding
This commit is contained in:
parent
601eda17de
commit
c1533e9cb9
15 changed files with 287 additions and 43 deletions
|
@ -28,6 +28,7 @@
|
||||||
"dockview": "^1.7.1",
|
"dockview": "^1.7.1",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
|
"react-markdown": "^8.0.7",
|
||||||
"remirror": "^2.0.26",
|
"remirror": "^2.0.26",
|
||||||
"sass": "^1.62.0",
|
"sass": "^1.62.0",
|
||||||
"uuid": "^9.0.0",
|
"uuid": "^9.0.0",
|
||||||
|
|
41
src/modules/editor/components/ReactMarkdownEditor/index.tsx
Normal file
41
src/modules/editor/components/ReactMarkdownEditor/index.tsx
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
import { ChangeEvent, FC, useCallback, useMemo } from "react";
|
||||||
|
import styles from "./styles.module.scss";
|
||||||
|
import { useTheme } from "~/modules/theme/context/ThemeContext";
|
||||||
|
|
||||||
|
interface ReactMarkdownEditorProps {
|
||||||
|
value: string;
|
||||||
|
onChange: (val: string) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ReactMarkdownEditor: FC<ReactMarkdownEditorProps> = ({
|
||||||
|
value,
|
||||||
|
onChange,
|
||||||
|
}) => {
|
||||||
|
const changeHandler = useCallback(
|
||||||
|
(event: ChangeEvent<HTMLTextAreaElement>) => {
|
||||||
|
onChange(event.target.value);
|
||||||
|
},
|
||||||
|
[onChange]
|
||||||
|
);
|
||||||
|
|
||||||
|
const { paddingHorizontal, paddingVertical } = useTheme();
|
||||||
|
|
||||||
|
const style = useMemo(
|
||||||
|
() => ({
|
||||||
|
padding: `${paddingVertical}px ${paddingHorizontal}px`,
|
||||||
|
}),
|
||||||
|
[paddingHorizontal, paddingVertical]
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<textarea
|
||||||
|
onChange={changeHandler}
|
||||||
|
className={styles.textarea}
|
||||||
|
style={style}
|
||||||
|
>
|
||||||
|
{value}
|
||||||
|
</textarea>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export { ReactMarkdownEditor };
|
|
@ -0,0 +1,9 @@
|
||||||
|
.textarea {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0;
|
||||||
|
background: transparent;
|
||||||
|
color: inherit;
|
||||||
|
border: none;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
20
src/modules/editor/components/ReactMarkdownViewer/index.tsx
Normal file
20
src/modules/editor/components/ReactMarkdownViewer/index.tsx
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
import { FC } from "react";
|
||||||
|
import ReactMarkdown from "react-markdown";
|
||||||
|
import { useContainerPaddings } from "~/modules/theme/hooks/useContainerPaddings";
|
||||||
|
import styles from "./styles.module.scss";
|
||||||
|
|
||||||
|
interface ReactMarkdownViewerProps {
|
||||||
|
value: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ReactMarkdownViewer: FC<ReactMarkdownViewerProps> = ({ value }) => {
|
||||||
|
const style = useContainerPaddings();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div style={style} className={styles.editor}>
|
||||||
|
<ReactMarkdown>{value}</ReactMarkdown>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export { ReactMarkdownViewer };
|
|
@ -0,0 +1,11 @@
|
||||||
|
.editor {
|
||||||
|
& > :first-child {
|
||||||
|
margin-top: 0 !important;
|
||||||
|
margin-left: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
& > :last-child {
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
margin-right: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
|
@ -31,6 +31,7 @@ import {
|
||||||
GapCursorExtension,
|
GapCursorExtension,
|
||||||
} from "remirror/extensions";
|
} from "remirror/extensions";
|
||||||
import styles from "./styles.module.scss";
|
import styles from "./styles.module.scss";
|
||||||
|
import { useContainerPaddings } from "~/modules/theme/hooks/useContainerPaddings";
|
||||||
|
|
||||||
interface RemirrorEditorProps {
|
interface RemirrorEditorProps {
|
||||||
locked: boolean;
|
locked: boolean;
|
||||||
|
@ -63,23 +64,28 @@ const RemirrorEditor: FC<RemirrorEditorProps> = ({
|
||||||
[onChange, setState]
|
[onChange, setState]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const style = useContainerPaddings();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Remirror
|
<div className={styles.wrapper} style={style}>
|
||||||
placeholder="Start typing..."
|
<Remirror
|
||||||
manager={manager}
|
placeholder="Start typing..."
|
||||||
classNames={[styles.editor]}
|
manager={manager}
|
||||||
editable={!locked}
|
classNames={[styles.editor]}
|
||||||
onChange={onStateChange}
|
editable={!locked}
|
||||||
state={state}
|
onChange={onStateChange}
|
||||||
>
|
state={state}
|
||||||
<EditorComponent />
|
autoFocus
|
||||||
{!locked && (
|
>
|
||||||
<FloatingToolbar>
|
<EditorComponent />
|
||||||
<FormattingButtonGroup />
|
{!locked && (
|
||||||
<HeadingLevelButtonGroup />
|
<FloatingToolbar>
|
||||||
</FloatingToolbar>
|
<FormattingButtonGroup />
|
||||||
)}
|
<HeadingLevelButtonGroup />
|
||||||
</Remirror>
|
</FloatingToolbar>
|
||||||
|
)}
|
||||||
|
</Remirror>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,17 @@
|
||||||
|
.wrapper {
|
||||||
|
height: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
& > :global(.remirror-editor-wrapper) {
|
||||||
|
height: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.editor {
|
.editor {
|
||||||
outline: none;
|
outline: none;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
& > :first-child {
|
& > :first-child {
|
||||||
margin-top: 0 !important;
|
margin-top: 0 !important;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import { FC } from "react";
|
import { FC } from "react";
|
||||||
import styles from "./styles.module.scss";
|
import { ReactMarkdownEditor } from "../../components/ReactMarkdownEditor";
|
||||||
|
import { ReactMarkdownViewer } from "../../components/ReactMarkdownViewer";
|
||||||
import { usePersistedValue } from "./hooks/usePersistedValue";
|
import { usePersistedValue } from "./hooks/usePersistedValue";
|
||||||
import { RemirrorEditor } from "../../components/RemirrorEditor";
|
import styles from "./styles.module.scss";
|
||||||
|
|
||||||
interface MarkdownEditorContainerProps {
|
interface MarkdownEditorContainerProps {
|
||||||
id: string;
|
id: string;
|
||||||
|
@ -16,7 +17,19 @@ export const MarkdownEditorContainer: FC<MarkdownEditorContainerProps> = ({
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.editor}>
|
<div className={styles.editor}>
|
||||||
<RemirrorEditor value={value} onChange={setValue} locked={locked} />
|
{/*
|
||||||
|
locked ? (
|
||||||
|
<ReactMarkdownViewer value={value} />
|
||||||
|
) : (
|
||||||
|
<ReactMarkdownEditor value={value} onChange={setValue} />
|
||||||
|
)
|
||||||
|
*/}
|
||||||
|
{locked ? (
|
||||||
|
<ReactMarkdownViewer value={value} />
|
||||||
|
) : (
|
||||||
|
<ReactMarkdownEditor value={value} onChange={setValue} />
|
||||||
|
// <RemirrorEditor value={value} onChange={setValue} locked={locked} />
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
.editor {
|
.editor {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 16px;
|
|
||||||
overflow: scroll;
|
overflow: scroll;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,27 +26,27 @@ const GridLayoutItemWrapper: FC<GridLayoutItemWrapperProps> = ({
|
||||||
}) => (
|
}) => (
|
||||||
<div className={styles.wrapper}>
|
<div className={styles.wrapper}>
|
||||||
<div className={styles.menu}>
|
<div className={styles.menu}>
|
||||||
|
<IconButton
|
||||||
|
onClick={splitVertical}
|
||||||
|
role="button"
|
||||||
|
className={styles.button}
|
||||||
|
>
|
||||||
|
<SplitVertical />
|
||||||
|
</IconButton>
|
||||||
|
<IconButton
|
||||||
|
onClick={splitHorizontal}
|
||||||
|
role="button"
|
||||||
|
className={styles.button}
|
||||||
|
>
|
||||||
|
<SplitHorizontal />
|
||||||
|
</IconButton>
|
||||||
|
|
||||||
{!locked && (
|
{!locked && (
|
||||||
<>
|
<IconButton onClick={remove} role="button" className={styles.button}>
|
||||||
<IconButton
|
<DeleteIcon />
|
||||||
onClick={splitVertical}
|
</IconButton>
|
||||||
role="button"
|
|
||||||
className={styles.button}
|
|
||||||
>
|
|
||||||
<SplitVertical />
|
|
||||||
</IconButton>
|
|
||||||
<IconButton
|
|
||||||
onClick={splitHorizontal}
|
|
||||||
role="button"
|
|
||||||
className={styles.button}
|
|
||||||
>
|
|
||||||
<SplitHorizontal />
|
|
||||||
</IconButton>
|
|
||||||
<IconButton onClick={remove} role="button" className={styles.button}>
|
|
||||||
<DeleteIcon />
|
|
||||||
</IconButton>
|
|
||||||
</>
|
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<IconButton onClick={lock} role="button" className={styles.button}>
|
<IconButton onClick={lock} role="button" className={styles.button}>
|
||||||
{locked ? <Locked /> : <Unlocked />}
|
{locked ? <Locked /> : <Unlocked />}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
|
|
|
@ -5,6 +5,8 @@ import { FontFamily } from "../../constants/fonts";
|
||||||
export const defaultTheme = {
|
export const defaultTheme = {
|
||||||
theme: Theme.Dark,
|
theme: Theme.Dark,
|
||||||
font: FontFamily.Inter,
|
font: FontFamily.Inter,
|
||||||
|
paddingHorizontal: 16,
|
||||||
|
paddingVertical: 16,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const ThemeContext = createContext(defaultTheme);
|
export const ThemeContext = createContext(defaultTheme);
|
||||||
|
|
12
src/modules/theme/hooks/useContainerPaddings.ts
Normal file
12
src/modules/theme/hooks/useContainerPaddings.ts
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
import { useMemo } from "react";
|
||||||
|
import { useTheme } from "~/modules/theme/context/ThemeContext";
|
||||||
|
export const useContainerPaddings = () => {
|
||||||
|
const { paddingHorizontal, paddingVertical } = useTheme();
|
||||||
|
|
||||||
|
return useMemo(
|
||||||
|
() => ({
|
||||||
|
padding: `${paddingVertical}px ${paddingHorizontal}px`,
|
||||||
|
}),
|
||||||
|
[paddingHorizontal, paddingVertical]
|
||||||
|
);
|
||||||
|
};
|
|
@ -3,4 +3,7 @@
|
||||||
--color-background: #111111;
|
--color-background: #111111;
|
||||||
--color-text: #ffffff;
|
--color-text: #ffffff;
|
||||||
--color-link: #25bfe6;
|
--color-link: #25bfe6;
|
||||||
|
--color-code-text: #ff3344;
|
||||||
|
--color-code-background: #{transparentize(#ff3344, 0.9)};
|
||||||
|
--color-pre-background: #{lighten(#111111, 2%)};
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,3 +25,25 @@ ul {
|
||||||
margin: 0.5em 0;
|
margin: 0.5em 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
background: var(--color-code-background);
|
||||||
|
color: var(--color-code-text);
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 0 5px;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background: var(--color-pre-background);
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: inherit;
|
||||||
|
|
||||||
|
code {
|
||||||
|
padding: 0;
|
||||||
|
background: transparent;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
102
yarn.lock
102
yarn.lock
|
@ -2119,7 +2119,7 @@
|
||||||
resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.0.tgz#a1c3809b0ad61c62cac6d4e0c56d610c910b7654"
|
resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.0.tgz#a1c3809b0ad61c62cac6d4e0c56d610c910b7654"
|
||||||
integrity sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==
|
integrity sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==
|
||||||
|
|
||||||
"@types/prop-types@*", "@types/prop-types@^15.7.5":
|
"@types/prop-types@*", "@types/prop-types@^15.0.0", "@types/prop-types@^15.7.5":
|
||||||
version "15.7.5"
|
version "15.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
|
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
|
||||||
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
|
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
|
||||||
|
@ -2917,6 +2917,11 @@ comma-separated-tokens@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea"
|
resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea"
|
||||||
integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==
|
integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==
|
||||||
|
|
||||||
|
comma-separated-tokens@^2.0.0:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee"
|
||||||
|
integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==
|
||||||
|
|
||||||
commander@2.9.0:
|
commander@2.9.0:
|
||||||
version "2.9.0"
|
version "2.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
||||||
|
@ -4209,6 +4214,11 @@ hast-util-parse-selector@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a"
|
resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a"
|
||||||
integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==
|
integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==
|
||||||
|
|
||||||
|
hast-util-whitespace@^2.0.0:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557"
|
||||||
|
integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==
|
||||||
|
|
||||||
hastscript@^6.0.0:
|
hastscript@^6.0.0:
|
||||||
version "6.0.0"
|
version "6.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640"
|
resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640"
|
||||||
|
@ -4344,6 +4354,11 @@ ini@^1.3.4, ini@~1.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
||||||
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
||||||
|
|
||||||
|
inline-style-parser@0.1.1:
|
||||||
|
version "0.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1"
|
||||||
|
integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==
|
||||||
|
|
||||||
inline-style-prefixer@^6.0.0:
|
inline-style-prefixer@^6.0.0:
|
||||||
version "6.0.4"
|
version "6.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz#4290ed453ab0e4441583284ad86e41ad88384f44"
|
resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz#4290ed453ab0e4441583284ad86e41ad88384f44"
|
||||||
|
@ -5033,6 +5048,20 @@ mdast-util-phrasing@^3.0.0:
|
||||||
"@types/mdast" "^3.0.0"
|
"@types/mdast" "^3.0.0"
|
||||||
unist-util-is "^5.0.0"
|
unist-util-is "^5.0.0"
|
||||||
|
|
||||||
|
mdast-util-to-hast@^12.1.0:
|
||||||
|
version "12.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49"
|
||||||
|
integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==
|
||||||
|
dependencies:
|
||||||
|
"@types/hast" "^2.0.0"
|
||||||
|
"@types/mdast" "^3.0.0"
|
||||||
|
mdast-util-definitions "^5.0.0"
|
||||||
|
micromark-util-sanitize-uri "^1.1.0"
|
||||||
|
trim-lines "^3.0.0"
|
||||||
|
unist-util-generated "^2.0.0"
|
||||||
|
unist-util-position "^4.0.0"
|
||||||
|
unist-util-visit "^4.0.0"
|
||||||
|
|
||||||
mdast-util-to-markdown@^1.0.0:
|
mdast-util-to-markdown@^1.0.0:
|
||||||
version "1.5.0"
|
version "1.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6"
|
resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6"
|
||||||
|
@ -5221,7 +5250,7 @@ micromark-util-resolve-all@^1.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
micromark-util-types "^1.0.0"
|
micromark-util-types "^1.0.0"
|
||||||
|
|
||||||
micromark-util-sanitize-uri@^1.0.0:
|
micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee"
|
resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee"
|
||||||
integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==
|
integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==
|
||||||
|
@ -5895,7 +5924,7 @@ promise-toolbox@0.21.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
make-error "^1.3.2"
|
make-error "^1.3.2"
|
||||||
|
|
||||||
prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.8.1:
|
prop-types@^15.0.0, prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.8.1:
|
||||||
version "15.8.1"
|
version "15.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
|
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
|
||||||
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
|
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
|
||||||
|
@ -5911,6 +5940,11 @@ property-information@^5.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
xtend "^4.0.0"
|
xtend "^4.0.0"
|
||||||
|
|
||||||
|
property-information@^6.0.0:
|
||||||
|
version "6.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d"
|
||||||
|
integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==
|
||||||
|
|
||||||
prosemirror-changeset@^2.2.0:
|
prosemirror-changeset@^2.2.0:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.0.tgz#22c05da271a118be40d3e339fa2cace789b1254b"
|
resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.0.tgz#22c05da271a118be40d3e339fa2cace789b1254b"
|
||||||
|
@ -6170,11 +6204,32 @@ react-is@^16.13.1, react-is@^16.7.0:
|
||||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||||
|
|
||||||
react-is@^18.2.0:
|
react-is@^18.0.0, react-is@^18.2.0:
|
||||||
version "18.2.0"
|
version "18.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
|
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
|
||||||
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
|
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
|
||||||
|
|
||||||
|
react-markdown@^8.0.7:
|
||||||
|
version "8.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.7.tgz#c8dbd1b9ba5f1c5e7e5f2a44de465a3caafdf89b"
|
||||||
|
integrity sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/hast" "^2.0.0"
|
||||||
|
"@types/prop-types" "^15.0.0"
|
||||||
|
"@types/unist" "^2.0.0"
|
||||||
|
comma-separated-tokens "^2.0.0"
|
||||||
|
hast-util-whitespace "^2.0.0"
|
||||||
|
prop-types "^15.0.0"
|
||||||
|
property-information "^6.0.0"
|
||||||
|
react-is "^18.0.0"
|
||||||
|
remark-parse "^10.0.0"
|
||||||
|
remark-rehype "^10.0.0"
|
||||||
|
space-separated-tokens "^2.0.0"
|
||||||
|
style-to-object "^0.4.0"
|
||||||
|
unified "^10.0.0"
|
||||||
|
unist-util-visit "^4.0.0"
|
||||||
|
vfile "^5.0.0"
|
||||||
|
|
||||||
react-transition-group@^4.4.5:
|
react-transition-group@^4.4.5:
|
||||||
version "4.4.5"
|
version "4.4.5"
|
||||||
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
|
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
|
||||||
|
@ -6323,6 +6378,16 @@ remark-parse@^10.0.0, remark-parse@^10.0.1:
|
||||||
mdast-util-from-markdown "^1.0.0"
|
mdast-util-from-markdown "^1.0.0"
|
||||||
unified "^10.0.0"
|
unified "^10.0.0"
|
||||||
|
|
||||||
|
remark-rehype@^10.0.0:
|
||||||
|
version "10.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279"
|
||||||
|
integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==
|
||||||
|
dependencies:
|
||||||
|
"@types/hast" "^2.0.0"
|
||||||
|
"@types/mdast" "^3.0.0"
|
||||||
|
mdast-util-to-hast "^12.1.0"
|
||||||
|
unified "^10.0.0"
|
||||||
|
|
||||||
remark-stringify@^10.0.0, remark-stringify@^10.0.2:
|
remark-stringify@^10.0.0, remark-stringify@^10.0.2:
|
||||||
version "10.0.2"
|
version "10.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7"
|
resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7"
|
||||||
|
@ -6766,6 +6831,11 @@ space-separated-tokens@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899"
|
resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899"
|
||||||
integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==
|
integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==
|
||||||
|
|
||||||
|
space-separated-tokens@^2.0.0:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f"
|
||||||
|
integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==
|
||||||
|
|
||||||
spawn-sync@1.0.15:
|
spawn-sync@1.0.15:
|
||||||
version "1.0.15"
|
version "1.0.15"
|
||||||
resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
|
resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
|
||||||
|
@ -6966,6 +7036,13 @@ strip-json-comments@~2.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||||
integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
|
integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
|
||||||
|
|
||||||
|
style-to-object@^0.4.0:
|
||||||
|
version "0.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37"
|
||||||
|
integrity sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==
|
||||||
|
dependencies:
|
||||||
|
inline-style-parser "0.1.1"
|
||||||
|
|
||||||
stylis@4.1.3, stylis@^4.0.6:
|
stylis@4.1.3, stylis@^4.0.6:
|
||||||
version "4.1.3"
|
version "4.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7"
|
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7"
|
||||||
|
@ -7097,6 +7174,11 @@ tough-cookie@~2.5.0:
|
||||||
psl "^1.1.28"
|
psl "^1.1.28"
|
||||||
punycode "^2.1.1"
|
punycode "^2.1.1"
|
||||||
|
|
||||||
|
trim-lines@^3.0.0:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338"
|
||||||
|
integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==
|
||||||
|
|
||||||
trough@^2.0.0:
|
trough@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876"
|
resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876"
|
||||||
|
@ -7231,6 +7313,11 @@ unique-string@^3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
crypto-random-string "^4.0.0"
|
crypto-random-string "^4.0.0"
|
||||||
|
|
||||||
|
unist-util-generated@^2.0.0:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae"
|
||||||
|
integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==
|
||||||
|
|
||||||
unist-util-is@^5.0.0:
|
unist-util-is@^5.0.0:
|
||||||
version "5.2.1"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9"
|
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9"
|
||||||
|
@ -7238,6 +7325,13 @@ unist-util-is@^5.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/unist" "^2.0.0"
|
"@types/unist" "^2.0.0"
|
||||||
|
|
||||||
|
unist-util-position@^4.0.0:
|
||||||
|
version "4.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037"
|
||||||
|
integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==
|
||||||
|
dependencies:
|
||||||
|
"@types/unist" "^2.0.0"
|
||||||
|
|
||||||
unist-util-stringify-position@^3.0.0:
|
unist-util-stringify-position@^3.0.0:
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d"
|
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue