@meowdown/react 0.64.3 → 0.65.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/dist/index.d.ts +3 -3
- package/dist/index.js +27 -16
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -410,9 +410,9 @@ interface EditorProps {
|
|
|
410
410
|
*/
|
|
411
411
|
onFileSaveError?: FilePasteOptions['onFileSaveError'];
|
|
412
412
|
/**
|
|
413
|
-
* Called when the user clicks a rendered image
|
|
414
|
-
* `alt`, and the originating
|
|
415
|
-
* `useCallback`).
|
|
413
|
+
* Called when the user clicks a rendered image (or presses `Enter` on a
|
|
414
|
+
* selected one), with its markdown `src`, `alt`, and the originating event.
|
|
415
|
+
* Pass a stable function (e.g. from `useCallback`).
|
|
416
416
|
*/
|
|
417
417
|
onImageClick?: ImageClickHandler;
|
|
418
418
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clsx } from "clsx/lite";
|
|
2
2
|
import { Fragment, cloneElement, createElement, useCallback, useDeferredValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { buildFileMarkdown, codeBlockLanguages, collectReferenceDefinitions, defaultResolveImageUrl, defineBulletAfterHeading, defineCodeBlockPreviewPlugin, defineEditorExtension, defineEmbedPaste, defineExitBoundaryHandler, defineFileClickHandler, defineFilePaste, defineFileView, defineFollowLinkHandler, defineImage, defineImageClickHandler, defineLinkClickHandler, defineLinkEditKeymap, defineLinkHoverHandler, defineLinkPaste, definePendingReplacementHandler, definePlaceholder, defineReadonly, defineSearchStatusHandler,
|
|
3
|
+
import { buildFileMarkdown, codeBlockLanguages, collectReferenceDefinitions, defaultResolveImageUrl, defineBulletAfterHeading, defineCodeBlockPreviewPlugin, defineEditorExtension, defineEmbedPaste, defineExitBoundaryHandler, defineFileClickHandler, defineFilePaste, defineFileView, defineFollowLinkHandler, defineImage, defineImageClickHandler, defineLinkClickHandler, defineLinkEditKeymap, defineLinkHoverHandler, defineLinkPaste, definePendingReplacementHandler, definePlaceholder, defineReadonly, defineSearchStatusHandler, defineSubstitution, defineTagClickHandler, defineViewAttributes, defineVirtualCaret, defineWikilinkClickHandler, defineWikilinkHoverHandler, defineWikilinkTrigger, docToMarkdown, formatFileSize, getCodeTokens, getFileKind, getMarkBuilders, getPendingReplacement, getSearchStatus, getSelectedText, getTableColumnAlign, getTextblockDisplayText, getVirtualElementFromRange, inlineTextToMarkChunksWithContext, isCodeBlockPreviewHiddenDecoration, isModEvent, isNodeOfType, 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";
|
|
@@ -401,6 +401,11 @@ function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick,
|
|
|
401
401
|
const extension = defineViewAttributes({ class: editorClassName });
|
|
402
402
|
return editor.use(extension);
|
|
403
403
|
}, [editor, editorClassName]);
|
|
404
|
+
useLayoutEffect(() => {
|
|
405
|
+
if (spellCheck == null) return;
|
|
406
|
+
const extension = defineViewAttributes({ spellcheck: spellCheck ? "true" : "false" });
|
|
407
|
+
return editor.use(extension);
|
|
408
|
+
}, [editor, spellCheck]);
|
|
404
409
|
const deferredSearchQuery = useDeferredValue(searchQuery);
|
|
405
410
|
useEffect(() => {
|
|
406
411
|
editor.commands.setSearchQuery({
|
|
@@ -425,17 +430,19 @@ function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick,
|
|
|
425
430
|
return onTagClick ? defineTagClickHandler(onTagClick) : null;
|
|
426
431
|
}, [onTagClick]));
|
|
427
432
|
useExtension$1(useMemo(() => {
|
|
428
|
-
return onWikilinkClick || onTagClick || onFileClick || onLinkClick ? defineFollowLinkHandler({
|
|
433
|
+
return onWikilinkClick || onTagClick || onFileClick || onLinkClick || onImageClick ? defineFollowLinkHandler({
|
|
429
434
|
onWikilinkClick,
|
|
430
435
|
onTagClick,
|
|
431
436
|
onFileClick,
|
|
432
|
-
onLinkClick
|
|
437
|
+
onLinkClick,
|
|
438
|
+
onImageClick
|
|
433
439
|
}) : null;
|
|
434
440
|
}, [
|
|
435
441
|
onWikilinkClick,
|
|
436
442
|
onTagClick,
|
|
437
443
|
onFileClick,
|
|
438
|
-
onLinkClick
|
|
444
|
+
onLinkClick,
|
|
445
|
+
onImageClick
|
|
439
446
|
]));
|
|
440
447
|
useExtension$1(useMemo(() => {
|
|
441
448
|
return onExitBoundary ? defineExitBoundaryHandler(onExitBoundary) : null;
|
|
@@ -479,9 +486,6 @@ function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick,
|
|
|
479
486
|
useExtension$1(useMemo(() => {
|
|
480
487
|
return wikilinkEnabled ? defineWikilinkTrigger() : null;
|
|
481
488
|
}, [wikilinkEnabled]));
|
|
482
|
-
useExtension$1(useMemo(() => {
|
|
483
|
-
return spellCheck == null ? null : defineSpellCheckPlugin(spellCheck);
|
|
484
|
-
}, [spellCheck]));
|
|
485
489
|
return null;
|
|
486
490
|
}
|
|
487
491
|
|
|
@@ -585,7 +589,8 @@ function LinkInfoContent({ href, onLinkClick, onLinkCopy, onEdit, onRemove }) {
|
|
|
585
589
|
event.preventDefault();
|
|
586
590
|
onLinkClick({
|
|
587
591
|
href,
|
|
588
|
-
event: event.nativeEvent
|
|
592
|
+
event: event.nativeEvent,
|
|
593
|
+
mod: isModEvent(event)
|
|
589
594
|
});
|
|
590
595
|
},
|
|
591
596
|
children: href
|
|
@@ -2184,7 +2189,8 @@ function WikilinkChip(props) {
|
|
|
2184
2189
|
contentEditable: false,
|
|
2185
2190
|
onClick: onWikilinkClick ? (event) => onWikilinkClick({
|
|
2186
2191
|
target,
|
|
2187
|
-
event: event.nativeEvent
|
|
2192
|
+
event: event.nativeEvent,
|
|
2193
|
+
mod: isModEvent(event)
|
|
2188
2194
|
}) : void 0,
|
|
2189
2195
|
children: /* @__PURE__ */ jsx("span", {
|
|
2190
2196
|
className: "md-wikilink-view-label",
|
|
@@ -2248,7 +2254,8 @@ function ImagePreview(props) {
|
|
|
2248
2254
|
onClick: onImageClick ? (event) => onImageClick({
|
|
2249
2255
|
src,
|
|
2250
2256
|
alt,
|
|
2251
|
-
event: event.nativeEvent
|
|
2257
|
+
event: event.nativeEvent,
|
|
2258
|
+
mod: isModEvent(event)
|
|
2252
2259
|
}) : void 0,
|
|
2253
2260
|
style: width == null ? void 0 : { width: `${width}px` }
|
|
2254
2261
|
})
|
|
@@ -2298,11 +2305,14 @@ function FileView(props) {
|
|
|
2298
2305
|
};
|
|
2299
2306
|
}, [resolveFileInfo, href]);
|
|
2300
2307
|
const size = resolvedSize?.href === href && resolvedSize.resolver === resolveFileInfo ? resolvedSize.text : "";
|
|
2301
|
-
const handleClick = context.onFileClick ? (event) =>
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2308
|
+
const handleClick = context.onFileClick ? (event) => {
|
|
2309
|
+
context.onFileClick?.({
|
|
2310
|
+
href,
|
|
2311
|
+
name,
|
|
2312
|
+
event: event.nativeEvent,
|
|
2313
|
+
mod: isModEvent(event)
|
|
2314
|
+
});
|
|
2315
|
+
} : void 0;
|
|
2306
2316
|
return /* @__PURE__ */ jsxs("span", {
|
|
2307
2317
|
className: "md-file-view md-atom-view",
|
|
2308
2318
|
children: [/* @__PURE__ */ jsxs("span", {
|
|
@@ -2487,7 +2497,8 @@ function wrapMark(mark, children, context) {
|
|
|
2487
2497
|
event.preventDefault();
|
|
2488
2498
|
context.onLinkClick?.({
|
|
2489
2499
|
href: attrs.href,
|
|
2490
|
-
event: event.nativeEvent
|
|
2500
|
+
event: event.nativeEvent,
|
|
2501
|
+
mod: isModEvent(event)
|
|
2491
2502
|
});
|
|
2492
2503
|
} : void 0;
|
|
2493
2504
|
return /* @__PURE__ */ jsx("a", {
|
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.65.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"github-slugger": "^2.0.0",
|
|
32
32
|
"lucide-react": "^1.28.0",
|
|
33
33
|
"react-property": "^2.0.2",
|
|
34
|
-
"@meowdown/core": "0.
|
|
34
|
+
"@meowdown/core": "0.65.1"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"react": "^19.0.0",
|