@meowdown/react 0.46.1 → 0.48.0
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/index.d.ts +6 -1
- package/dist/index.js +9 -10
- package/package.json +8 -8
package/dist/index.d.ts
CHANGED
|
@@ -333,6 +333,11 @@ interface EditorProps {
|
|
|
333
333
|
* Off by default.
|
|
334
334
|
*/
|
|
335
335
|
bulletAfterHeading?: boolean;
|
|
336
|
+
/**
|
|
337
|
+
* Replaces typed character sequences with their typographic equivalents,
|
|
338
|
+
* e.g. `->` with `→` and `(c)` with `©`. On by default.
|
|
339
|
+
*/
|
|
340
|
+
substitution?: boolean;
|
|
336
341
|
/** Handles a leading `---` frontmatter block (off by default). */
|
|
337
342
|
frontmatter?: boolean;
|
|
338
343
|
/**
|
|
@@ -369,7 +374,7 @@ interface EditorProps {
|
|
|
369
374
|
/** Nodes rendered inside the editor's ProseKit context. */
|
|
370
375
|
children?: ReactNode;
|
|
371
376
|
}
|
|
372
|
-
declare function MeowdownEditor({ mode, initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, frontmatter, blockHandle, placeholder, readOnly, spellCheck, timeFormat, editorClassName, wrapperClassName, handleRef, children }: EditorProps): import("react").JSX.Element;
|
|
377
|
+
declare function MeowdownEditor({ mode, initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, substitution, frontmatter, blockHandle, placeholder, readOnly, spellCheck, timeFormat, editorClassName, wrapperClassName, handleRef, children }: EditorProps): import("react").JSX.Element;
|
|
373
378
|
//#endregion
|
|
374
379
|
//#region src/components/markdown-view.d.ts
|
|
375
380
|
/** Payload for {@link TaskClickHandler}. */
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clsx } from "clsx/lite";
|
|
2
2
|
import { Fragment, cloneElement, createElement, useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { buildFileMarkdown, codeBlockLanguages, defaultResolveImageUrl, defineBulletAfterHeading, defineCodeBlockPreviewPlugin, defineEditorExtension, defineEmbedPaste, defineExitBoundaryHandler, defineFileClickHandler, defineFilePaste, defineFileView, defineFollowLinkHandler,
|
|
3
|
+
import { buildFileMarkdown, codeBlockLanguages, defaultResolveImageUrl, defineBulletAfterHeading, defineCodeBlockPreviewPlugin, defineEditorExtension, defineEmbedPaste, defineExitBoundaryHandler, defineFileClickHandler, defineFilePaste, defineFileView, defineFollowLinkHandler, defineImage, defineImageClickHandler, defineLinkClickHandler, defineLinkEditKeymap, defineLinkHoverHandler, defineLinkPaste, definePendingReplacementHandler, definePlaceholder, defineReadonly, defineSpellCheckPlugin, defineSubstitution, defineTagClickHandler, defineWikilinkClickHandler, defineWikilinkHoverHandler, defineWikilinkTrigger, docToMarkdown, getCodeTokens, getMarkBuilders, getPendingReplacement, getSelectedText, getTableColumnAlign, getVirtualElementFromRange, inlineTextToMarkChunks, isCodeBlockPreviewHiddenDecoration, isSelectionInTableCell, listenForTweetHeight, loadKaTeX, markdownToDoc, matchEmbed, renderMathInto } from "@meowdown/core";
|
|
4
4
|
import { clamp } from "@ocavue/utils";
|
|
5
5
|
import { canUseRegexLookbehind, createEditor, defineDocChangeHandler, defineUpdateHandler, isTextSelection, union } from "@prosekit/core";
|
|
6
6
|
import { Selection, TextSelection } from "@prosekit/pm/state";
|
|
@@ -295,7 +295,7 @@ function DropIndicator$1() {
|
|
|
295
295
|
|
|
296
296
|
//#endregion
|
|
297
297
|
//#region src/components/editor-extensions.tsx
|
|
298
|
-
function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick, onTagClick, onExitBoundary, resolveImageUrl, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, placeholder, readOnly, wikilinkEnabled, spellCheck }) {
|
|
298
|
+
function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick, onTagClick, onExitBoundary, resolveImageUrl, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, substitution, placeholder, readOnly, wikilinkEnabled, spellCheck }) {
|
|
299
299
|
const editor = useEditor$1();
|
|
300
300
|
useEffect(() => {
|
|
301
301
|
editor.commands.setMarkMode(markMode);
|
|
@@ -355,15 +355,12 @@ function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick,
|
|
|
355
355
|
useExtension$1(useMemo(() => {
|
|
356
356
|
return linkPaste ? defineLinkPaste() : null;
|
|
357
357
|
}, [linkPaste]));
|
|
358
|
-
useExtension$1(useMemo(() => {
|
|
359
|
-
return defineHTMLPaste();
|
|
360
|
-
}, []));
|
|
361
|
-
useExtension$1(useMemo(() => {
|
|
362
|
-
return defineMarkdownCopy();
|
|
363
|
-
}, []));
|
|
364
358
|
useExtension$1(useMemo(() => {
|
|
365
359
|
return bulletAfterHeading ? defineBulletAfterHeading() : null;
|
|
366
360
|
}, [bulletAfterHeading]));
|
|
361
|
+
useExtension$1(useMemo(() => {
|
|
362
|
+
return substitution ? defineSubstitution() : null;
|
|
363
|
+
}, [substitution]));
|
|
367
364
|
useExtension$1(useMemo(() => {
|
|
368
365
|
return placeholder ? definePlaceholder({
|
|
369
366
|
placeholder,
|
|
@@ -1548,7 +1545,7 @@ function resolveSelection(doc, selection) {
|
|
|
1548
1545
|
return TextSelection.between(doc.resolve(anchor), doc.resolve(head));
|
|
1549
1546
|
}
|
|
1550
1547
|
}
|
|
1551
|
-
function ProseKitEditor({ markMode = "focus", initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance = true, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, frontmatter = false, blockHandle = true, placeholder, readOnly, spellCheck, timeFormat, editorClassName, ref, children }) {
|
|
1548
|
+
function ProseKitEditor({ markMode = "focus", initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance = true, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, substitution = true, frontmatter = false, blockHandle = true, placeholder, readOnly, spellCheck, timeFormat, editorClassName, ref, children }) {
|
|
1552
1549
|
const [editor] = useState(() => {
|
|
1553
1550
|
const editor = createEditor({ extension: union(defineEditorExtension({
|
|
1554
1551
|
resolveFileLink,
|
|
@@ -1693,6 +1690,7 @@ function ProseKitEditor({ markMode = "focus", initialMarkdown, onDocChange, onSl
|
|
|
1693
1690
|
embedPaste,
|
|
1694
1691
|
linkPaste,
|
|
1695
1692
|
bulletAfterHeading,
|
|
1693
|
+
substitution,
|
|
1696
1694
|
placeholder,
|
|
1697
1695
|
readOnly,
|
|
1698
1696
|
wikilinkEnabled: !!onWikilinkSearch,
|
|
@@ -1731,7 +1729,7 @@ function ProseKitEditor({ markMode = "focus", initialMarkdown, onDocChange, onSl
|
|
|
1731
1729
|
|
|
1732
1730
|
//#endregion
|
|
1733
1731
|
//#region src/components/editor.tsx
|
|
1734
|
-
function MeowdownEditor({ mode = "focus", initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance = true, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste = true, linkPaste = true, bulletAfterHeading = false, frontmatter = false, blockHandle = true, placeholder, readOnly, spellCheck, timeFormat, editorClassName, wrapperClassName, handleRef, children }) {
|
|
1732
|
+
function MeowdownEditor({ mode = "focus", initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance = true, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste = true, linkPaste = true, bulletAfterHeading = false, substitution = true, frontmatter = false, blockHandle = true, placeholder, readOnly, spellCheck, timeFormat, editorClassName, wrapperClassName, handleRef, children }) {
|
|
1735
1733
|
const childRef = useRef(null);
|
|
1736
1734
|
useImperativeHandle(handleRef, () => {
|
|
1737
1735
|
function getMarkdown() {
|
|
@@ -1837,6 +1835,7 @@ function MeowdownEditor({ mode = "focus", initialMarkdown, onDocChange, onSlashM
|
|
|
1837
1835
|
embedPaste,
|
|
1838
1836
|
linkPaste,
|
|
1839
1837
|
bulletAfterHeading,
|
|
1838
|
+
substitution,
|
|
1840
1839
|
frontmatter,
|
|
1841
1840
|
blockHandle,
|
|
1842
1841
|
placeholder,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meowdown/react",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.48.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"@prosekit/pm": "^0.1.19-beta.3",
|
|
25
25
|
"@prosekit/react": "^0.8.0-beta.21",
|
|
26
26
|
"clsx": "^2.1.1",
|
|
27
|
-
"lucide-react": "^1.
|
|
27
|
+
"lucide-react": "^1.24.0",
|
|
28
28
|
"react-property": "^2.0.2",
|
|
29
|
-
"@meowdown/core": "0.
|
|
29
|
+
"@meowdown/core": "0.48.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": "^19.0.0",
|
|
@@ -41,17 +41,17 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@css-modules-kit/codegen": "^1.
|
|
44
|
+
"@css-modules-kit/codegen": "^1.4.0",
|
|
45
45
|
"@ocavue/tsconfig": "^0.7.1",
|
|
46
|
-
"@tsdown/css": "^0.22.
|
|
46
|
+
"@tsdown/css": "^0.22.7",
|
|
47
47
|
"@types/react": "^19.2.17",
|
|
48
48
|
"@types/react-dom": "^19.2.3",
|
|
49
|
-
"@vitest/browser-playwright": "^4.1.
|
|
49
|
+
"@vitest/browser-playwright": "^4.1.10",
|
|
50
50
|
"dedent": "^1.7.2",
|
|
51
51
|
"react": "^19.2.7",
|
|
52
52
|
"react-dom": "^19.2.7",
|
|
53
|
-
"tsdown": "^0.22.
|
|
54
|
-
"vitest": "^4.1.
|
|
53
|
+
"tsdown": "^0.22.7",
|
|
54
|
+
"vitest": "^4.1.10",
|
|
55
55
|
"vitest-browser-commands": "^0.2.1",
|
|
56
56
|
"vitest-browser-react": "^2.2.0",
|
|
57
57
|
"@meowdown/vitest": "0.0.0"
|