@meowdown/react 0.64.3 → 0.65.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 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, with its markdown `src`,
414
- * `alt`, and the originating `MouseEvent`. Pass a stable function (e.g. from
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, defineSpellCheckPlugin, defineSubstitution, defineTagClickHandler, defineViewAttributes, defineVirtualCaret, defineWikilinkClickHandler, defineWikilinkHoverHandler, defineWikilinkTrigger, docToMarkdown, formatFileSize, getCodeTokens, getFileKind, getMarkBuilders, getPendingReplacement, getSearchStatus, getSelectedText, getTableColumnAlign, getTextblockDisplayText, getVirtualElementFromRange, inlineTextToMarkChunksWithContext, isCodeBlockPreviewHiddenDecoration, isNodeOfType, isSelectionInTableCell, listenForTweetHeight, loadKaTeX, markdownToDoc, matchEmbed, renderMathInto } from "@meowdown/core";
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, defineSpellCheckPlugin, 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";
@@ -425,17 +425,19 @@ function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick,
425
425
  return onTagClick ? defineTagClickHandler(onTagClick) : null;
426
426
  }, [onTagClick]));
427
427
  useExtension$1(useMemo(() => {
428
- return onWikilinkClick || onTagClick || onFileClick || onLinkClick ? defineFollowLinkHandler({
428
+ return onWikilinkClick || onTagClick || onFileClick || onLinkClick || onImageClick ? defineFollowLinkHandler({
429
429
  onWikilinkClick,
430
430
  onTagClick,
431
431
  onFileClick,
432
- onLinkClick
432
+ onLinkClick,
433
+ onImageClick
433
434
  }) : null;
434
435
  }, [
435
436
  onWikilinkClick,
436
437
  onTagClick,
437
438
  onFileClick,
438
- onLinkClick
439
+ onLinkClick,
440
+ onImageClick
439
441
  ]));
440
442
  useExtension$1(useMemo(() => {
441
443
  return onExitBoundary ? defineExitBoundaryHandler(onExitBoundary) : null;
@@ -585,7 +587,8 @@ function LinkInfoContent({ href, onLinkClick, onLinkCopy, onEdit, onRemove }) {
585
587
  event.preventDefault();
586
588
  onLinkClick({
587
589
  href,
588
- event: event.nativeEvent
590
+ event: event.nativeEvent,
591
+ mod: isModEvent(event)
589
592
  });
590
593
  },
591
594
  children: href
@@ -2184,7 +2187,8 @@ function WikilinkChip(props) {
2184
2187
  contentEditable: false,
2185
2188
  onClick: onWikilinkClick ? (event) => onWikilinkClick({
2186
2189
  target,
2187
- event: event.nativeEvent
2190
+ event: event.nativeEvent,
2191
+ mod: isModEvent(event)
2188
2192
  }) : void 0,
2189
2193
  children: /* @__PURE__ */ jsx("span", {
2190
2194
  className: "md-wikilink-view-label",
@@ -2248,7 +2252,8 @@ function ImagePreview(props) {
2248
2252
  onClick: onImageClick ? (event) => onImageClick({
2249
2253
  src,
2250
2254
  alt,
2251
- event: event.nativeEvent
2255
+ event: event.nativeEvent,
2256
+ mod: isModEvent(event)
2252
2257
  }) : void 0,
2253
2258
  style: width == null ? void 0 : { width: `${width}px` }
2254
2259
  })
@@ -2298,11 +2303,14 @@ function FileView(props) {
2298
2303
  };
2299
2304
  }, [resolveFileInfo, href]);
2300
2305
  const size = resolvedSize?.href === href && resolvedSize.resolver === resolveFileInfo ? resolvedSize.text : "";
2301
- const handleClick = context.onFileClick ? (event) => context.onFileClick?.({
2302
- href,
2303
- name,
2304
- event: event.nativeEvent
2305
- }) : void 0;
2306
+ const handleClick = context.onFileClick ? (event) => {
2307
+ context.onFileClick?.({
2308
+ href,
2309
+ name,
2310
+ event: event.nativeEvent,
2311
+ mod: isModEvent(event)
2312
+ });
2313
+ } : void 0;
2306
2314
  return /* @__PURE__ */ jsxs("span", {
2307
2315
  className: "md-file-view md-atom-view",
2308
2316
  children: [/* @__PURE__ */ jsxs("span", {
@@ -2487,7 +2495,8 @@ function wrapMark(mark, children, context) {
2487
2495
  event.preventDefault();
2488
2496
  context.onLinkClick?.({
2489
2497
  href: attrs.href,
2490
- event: event.nativeEvent
2498
+ event: event.nativeEvent,
2499
+ mod: isModEvent(event)
2491
2500
  });
2492
2501
  } : void 0;
2493
2502
  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.64.3",
4
+ "version": "0.65.0",
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.64.3"
34
+ "@meowdown/core": "0.65.0"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "react": "^19.0.0",