@meowdown/react 0.67.2 → 0.68.1
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/README.md +1 -1
- package/dist/index.d.ts +17 -3
- package/dist/index.js +9 -4
- package/dist/style.css +1 -0
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ Common `MeowdownEditor` props:
|
|
|
62
62
|
| `mode` | `'focus'` (default), `'show'`, or `'hide'`: how much Markdown syntax stays in view |
|
|
63
63
|
| `searchQuery` / `onSearchChange` | Find in document, with `EditorHandle.findNext()` / `findPrevious()` |
|
|
64
64
|
| `onWikilinkClick` / `onLinkClick` / `onTagClick` / `onImageClick` / `onFileClick` | Click handling for the rendered atoms |
|
|
65
|
-
| `resolveImageUrl` / `resolveWikiEmbed` / `resolveFileLink` / `resolveFileInfo`
|
|
65
|
+
| `resolveImageUrl` / `resolveWikiEmbed` / `resolveWikilink` / `resolveFileLink` / `resolveFileInfo` | Resolve and classify local content |
|
|
66
66
|
| `onFilePaste` | Persist pasted or dropped files |
|
|
67
67
|
| `onSlashMenuSearch` / `onTagSearch` / `onWikilinkSearch` / `onSelectionMenuSearch` | Search menus for `/`, `#`, `[[`, and selection commands |
|
|
68
68
|
| `readOnly` / `placeholder` / `blockHandle` / `caretGlide` / `embedPaste` / `linkPaste` / `bulletAfterHeading` | Behavior toggles |
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactElement, ReactNode, Ref } from "react";
|
|
2
|
-
import { AcceptPendingReplacementOptions, ExitBoundaryHandler, FileClickHandler, FileInfoResolver, FileLinkResolver, FilePasteOptions, FileViewOptions, ImageClickHandler, ImageOptions, LinkClickHandler, LinkCopyHandler, LinkPreview, LinkPreviewResolver, LinkPreviewResolver as LinkPreviewResolver$1, ListMarker, MarkMode, PendingReplacement, PendingReplacementOutcome, PlaceholderOptions, SearchStatusHandler, StartPendingReplacementOptions, TagClickHandler, TypedEditor, WikiEmbedResolver, WikilinkClickHandler, WikilinkHoverHit } from "@meowdown/core";
|
|
2
|
+
import { AcceptPendingReplacementOptions, ExitBoundaryHandler, FileClickHandler, FileInfoResolver, FileLinkResolver, FilePasteOptions, FileViewOptions, ImageClickHandler, ImageOptions, LinkClickHandler, LinkCopyHandler, LinkPreview, LinkPreviewResolver, LinkPreviewResolver as LinkPreviewResolver$1, ListMarker, MarkMode, PendingReplacement, PendingReplacementOutcome, PlaceholderOptions, SearchStatusHandler, StartPendingReplacementOptions, TagClickHandler, TypedEditor, WikiEmbedResolver, WikilinkClickHandler, WikilinkHoverHit, WikilinkResolver } from "@meowdown/core";
|
|
3
3
|
import { SelectionJSON, SelectionJSON as SelectionJSON$1 } from "@prosekit/core";
|
|
4
4
|
import { useEditor, useExtension, useKeymap } from "@prosekit/react";
|
|
5
5
|
//#region src/utils/date-format.d.ts
|
|
@@ -391,6 +391,15 @@ interface EditorProps {
|
|
|
391
391
|
* and editable. Must be pure and is read once when the editor is created.
|
|
392
392
|
*/
|
|
393
393
|
resolveWikiEmbed?: WikiEmbedResolver;
|
|
394
|
+
/**
|
|
395
|
+
* Resolves a `[[...]]` wikilink into the target its click and hover
|
|
396
|
+
* handlers receive and the label its chip shows. Meowdown reads no syntax
|
|
397
|
+
* inside the brackets, so an alias form such as `[[target|alias]]` is
|
|
398
|
+
* split here by the host. Return `undefined` to use the bracketed text as
|
|
399
|
+
* both; the markdown text is untouched either way. Must be pure and is
|
|
400
|
+
* read once when the editor is created.
|
|
401
|
+
*/
|
|
402
|
+
resolveWikilink?: WikilinkResolver;
|
|
394
403
|
/**
|
|
395
404
|
* Resolves the metadata (file size in bytes) shown on a file pill, directly
|
|
396
405
|
* or as a promise; the pill renders immediately and fills the size in when
|
|
@@ -515,7 +524,7 @@ interface EditorProps {
|
|
|
515
524
|
*
|
|
516
525
|
* Callbacks and resolvers should be stable; pass them via `useCallback`.
|
|
517
526
|
*/
|
|
518
|
-
export declare function MeowdownEditor({ mode, initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, resolveLinkPreview, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, substitution, frontmatter, blockHandle, caretGlide, placeholder, readOnly, spellCheck, searchQuery, onSearchChange, timeFormat, editorClassName, wrapperClassName, handleRef, children }: EditorProps): ReactElement;
|
|
527
|
+
export declare function MeowdownEditor({ mode, initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, resolveLinkPreview, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveWikilink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, substitution, frontmatter, blockHandle, caretGlide, placeholder, readOnly, spellCheck, searchQuery, onSearchChange, timeFormat, editorClassName, wrapperClassName, handleRef, children }: EditorProps): ReactElement;
|
|
519
528
|
//#endregion
|
|
520
529
|
//#region src/components/markdown-view.d.ts
|
|
521
530
|
/**
|
|
@@ -595,6 +604,11 @@ interface MarkdownViewProps {
|
|
|
595
604
|
* Classify `![[target]]` as an image, file, or note; unresolved source stays literal.
|
|
596
605
|
*/
|
|
597
606
|
resolveWikiEmbed?: WikiEmbedResolver;
|
|
607
|
+
/**
|
|
608
|
+
* Resolve a `[[...]]` wikilink into its target and chip label; the bracketed
|
|
609
|
+
* text is both by default. Must be pure.
|
|
610
|
+
*/
|
|
611
|
+
resolveWikilink?: WikilinkResolver;
|
|
598
612
|
/**
|
|
599
613
|
* Resolve metadata shown on a file pill.
|
|
600
614
|
*/
|
|
@@ -635,7 +649,7 @@ interface MarkdownViewProps {
|
|
|
635
649
|
* Callbacks (`onWikilinkClick`, etc.) and resolvers should be stable; pass them via
|
|
636
650
|
* `useCallback` to avoid re-rendering the whole tree.
|
|
637
651
|
*/
|
|
638
|
-
export declare function MarkdownView({ markdown, markMode, frontmatter, interactive, expandCollapsed, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveFileInfo, onWikilinkClick, onLinkClick, onImageClick, onFileClick, onTaskClick, className }: MarkdownViewProps): ReactElement;
|
|
652
|
+
export declare function MarkdownView({ markdown, markMode, frontmatter, interactive, expandCollapsed, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveWikilink, resolveFileInfo, onWikilinkClick, onLinkClick, onImageClick, onFileClick, onTaskClick, className }: MarkdownViewProps): ReactElement;
|
|
639
653
|
//#endregion
|
|
640
654
|
//#region src/components/wikilink-hover-card.d.ts
|
|
641
655
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1919,11 +1919,12 @@ function findHeadingPosition(doc, fragment) {
|
|
|
1919
1919
|
});
|
|
1920
1920
|
return match;
|
|
1921
1921
|
}
|
|
1922
|
-
function ProseKitEditor({ markMode = "focus", initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance = true, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, resolveLinkPreview, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, substitution = true, frontmatter = false, blockHandle = true, placeholder, readOnly, spellCheck, searchQuery = "", onSearchChange, timeFormat, editorClassName, ref, children }) {
|
|
1922
|
+
function ProseKitEditor({ markMode = "focus", initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance = true, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, resolveLinkPreview, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveWikilink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, linkPaste, bulletAfterHeading, substitution = true, frontmatter = false, blockHandle = true, placeholder, readOnly, spellCheck, searchQuery = "", onSearchChange, timeFormat, editorClassName, ref, children }) {
|
|
1923
1923
|
const [editor] = useState(() => {
|
|
1924
1924
|
const baseExtension = defineEditorExtension({
|
|
1925
1925
|
resolveFileLink,
|
|
1926
1926
|
resolveWikiEmbed,
|
|
1927
|
+
resolveWikilink,
|
|
1927
1928
|
markMode
|
|
1928
1929
|
});
|
|
1929
1930
|
const extension = union(baseExtension, defineCodeBlockView());
|
|
@@ -2143,7 +2144,7 @@ const CARET_GLIDE_OFF = { "--meowdown-caret-glide": "0ms" };
|
|
|
2143
2144
|
*
|
|
2144
2145
|
* Callbacks and resolvers should be stable; pass them via `useCallback`.
|
|
2145
2146
|
*/
|
|
2146
|
-
function MeowdownEditor({ mode = "focus", initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance = true, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, resolveLinkPreview, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste = true, linkPaste = true, bulletAfterHeading = false, substitution = true, frontmatter = false, blockHandle = true, caretGlide = true, placeholder, readOnly, spellCheck, searchQuery, onSearchChange, timeFormat, editorClassName, wrapperClassName, handleRef, children }) {
|
|
2147
|
+
function MeowdownEditor({ mode = "focus", initialMarkdown, onDocChange, onSlashMenuSearch, onTagSearch, onWikilinkSearch, onSelectionMenuSearch, selectionMenuAffordance = true, pendingReplacementActions, onPendingReplacementResolve, onWikilinkClick, onLinkClick, onLinkCopy, resolveLinkPreview, onTagClick, onExitBoundary, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveWikilink, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste = true, linkPaste = true, bulletAfterHeading = false, substitution = true, frontmatter = false, blockHandle = true, caretGlide = true, placeholder, readOnly, spellCheck, searchQuery, onSearchChange, timeFormat, editorClassName, wrapperClassName, handleRef, children }) {
|
|
2147
2148
|
const childRef = useRef(null);
|
|
2148
2149
|
useImperativeHandle(handleRef, () => {
|
|
2149
2150
|
function getMarkdown() {
|
|
@@ -2260,6 +2261,7 @@ function MeowdownEditor({ mode = "focus", initialMarkdown, onDocChange, onSlashM
|
|
|
2260
2261
|
resolveImageUrl,
|
|
2261
2262
|
resolveFileLink,
|
|
2262
2263
|
resolveWikiEmbed,
|
|
2264
|
+
resolveWikilink,
|
|
2263
2265
|
resolveFileInfo,
|
|
2264
2266
|
onFileClick,
|
|
2265
2267
|
onFilePaste,
|
|
@@ -2756,7 +2758,8 @@ function renderInline(node, context) {
|
|
|
2756
2758
|
if (!text) return null;
|
|
2757
2759
|
return renderRuns(inlineTextToMarkChunksWithContext(getMarkBuilders(), text, {
|
|
2758
2760
|
resolveFileLink: context.resolveFileLink,
|
|
2759
|
-
resolveWikiEmbed: context.resolveWikiEmbed
|
|
2761
|
+
resolveWikiEmbed: context.resolveWikiEmbed,
|
|
2762
|
+
resolveWikilink: context.resolveWikilink
|
|
2760
2763
|
}, {
|
|
2761
2764
|
referenceDefinitions: context.referenceDefinitions,
|
|
2762
2765
|
isReferenceDefinition: context.referenceDefinitionNodes.has(node)
|
|
@@ -2836,7 +2839,7 @@ function renderBlock(node, context) {
|
|
|
2836
2839
|
* Callbacks (`onWikilinkClick`, etc.) and resolvers should be stable; pass them via
|
|
2837
2840
|
* `useCallback` to avoid re-rendering the whole tree.
|
|
2838
2841
|
*/
|
|
2839
|
-
function MarkdownView({ markdown, markMode = "hide", frontmatter = false, interactive = true, expandCollapsed = false, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveFileInfo, onWikilinkClick, onLinkClick, onImageClick, onFileClick, onTaskClick, className }) {
|
|
2842
|
+
function MarkdownView({ markdown, markMode = "hide", frontmatter = false, interactive = true, expandCollapsed = false, resolveImageUrl, resolveFileLink, resolveWikiEmbed, resolveWikilink, resolveFileInfo, onWikilinkClick, onLinkClick, onImageClick, onFileClick, onTaskClick, className }) {
|
|
2840
2843
|
const content = useMemo(() => {
|
|
2841
2844
|
const doc = markdownToDoc(markdown, { frontmatter });
|
|
2842
2845
|
const referenceIndex = collectReferenceDefinitions(doc);
|
|
@@ -2846,6 +2849,7 @@ function MarkdownView({ markdown, markMode = "hide", frontmatter = false, intera
|
|
|
2846
2849
|
resolveImageUrl,
|
|
2847
2850
|
resolveFileLink,
|
|
2848
2851
|
resolveWikiEmbed,
|
|
2852
|
+
resolveWikilink,
|
|
2849
2853
|
resolveFileInfo,
|
|
2850
2854
|
onWikilinkClick: interactive ? onWikilinkClick : void 0,
|
|
2851
2855
|
onLinkClick: interactive ? onLinkClick : void 0,
|
|
@@ -2866,6 +2870,7 @@ function MarkdownView({ markdown, markMode = "hide", frontmatter = false, intera
|
|
|
2866
2870
|
resolveImageUrl,
|
|
2867
2871
|
resolveFileLink,
|
|
2868
2872
|
resolveWikiEmbed,
|
|
2873
|
+
resolveWikilink,
|
|
2869
2874
|
resolveFileInfo,
|
|
2870
2875
|
onWikilinkClick,
|
|
2871
2876
|
onLinkClick,
|
package/dist/style.css
CHANGED
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.68.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@base-ui/react": "^1.7.0",
|
|
25
25
|
"@ocavue/utils": "^1.7.0",
|
|
26
|
-
"@prosekit/core": "^0.13.
|
|
26
|
+
"@prosekit/core": "^0.13.2",
|
|
27
27
|
"@prosekit/pm": "^0.1.19",
|
|
28
|
-
"@prosekit/react": "^0.8.
|
|
28
|
+
"@prosekit/react": "^0.8.2",
|
|
29
29
|
"beautiful-mermaid": "^1.1.3",
|
|
30
30
|
"clsx": "^2.1.1",
|
|
31
31
|
"github-slugger": "^2.0.0",
|
|
32
|
-
"lucide-react": "^1.
|
|
32
|
+
"lucide-react": "^1.38.0",
|
|
33
33
|
"react-property": "^2.0.2",
|
|
34
|
-
"@meowdown/core": "0.
|
|
34
|
+
"@meowdown/core": "0.68.1"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"react": "^19.0.0",
|
|
@@ -48,15 +48,15 @@
|
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@css-modules-kit/codegen": "^1.4.0",
|
|
50
50
|
"@ocavue/tsconfig": "^0.7.1",
|
|
51
|
-
"@tsdown/css": "^0.23.0-
|
|
51
|
+
"@tsdown/css": "^0.23.0-rc.1",
|
|
52
52
|
"@types/react": "^19.2.18",
|
|
53
|
-
"@types/react-dom": "^19.2.
|
|
54
|
-
"@vitest/browser-playwright": "^
|
|
53
|
+
"@types/react-dom": "^19.2.5",
|
|
54
|
+
"@vitest/browser-playwright": "^5.0.0",
|
|
55
55
|
"dedent": "^1.7.2",
|
|
56
56
|
"react": "^19.2.8",
|
|
57
57
|
"react-dom": "^19.2.8",
|
|
58
|
-
"tsdown": "^0.23.0-
|
|
59
|
-
"vitest": "^
|
|
58
|
+
"tsdown": "^0.23.0-rc.1",
|
|
59
|
+
"vitest": "^5.0.0",
|
|
60
60
|
"vitest-browser-commands": "^0.4.1",
|
|
61
61
|
"vitest-browser-react": "^2.2.0",
|
|
62
62
|
"@meowdown/vitest": "0.0.0"
|