@meowdown/react 0.47.0 → 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 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, defineImage, defineImageClickHandler, defineLinkClickHandler, defineLinkEditKeymap, defineLinkHoverHandler, defineLinkPaste, definePendingReplacementHandler, definePlaceholder, defineReadonly, defineSpellCheckPlugin, defineTagClickHandler, defineWikilinkClickHandler, defineWikilinkHoverHandler, defineWikilinkTrigger, docToMarkdown, getCodeTokens, getMarkBuilders, getPendingReplacement, getSelectedText, getTableColumnAlign, getVirtualElementFromRange, inlineTextToMarkChunks, isCodeBlockPreviewHiddenDecoration, isSelectionInTableCell, listenForTweetHeight, loadKaTeX, markdownToDoc, matchEmbed, renderMathInto } from "@meowdown/core";
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);
@@ -358,6 +358,9 @@ function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick,
358
358
  useExtension$1(useMemo(() => {
359
359
  return bulletAfterHeading ? defineBulletAfterHeading() : null;
360
360
  }, [bulletAfterHeading]));
361
+ useExtension$1(useMemo(() => {
362
+ return substitution ? defineSubstitution() : null;
363
+ }, [substitution]));
361
364
  useExtension$1(useMemo(() => {
362
365
  return placeholder ? definePlaceholder({
363
366
  placeholder,
@@ -1542,7 +1545,7 @@ function resolveSelection(doc, selection) {
1542
1545
  return TextSelection.between(doc.resolve(anchor), doc.resolve(head));
1543
1546
  }
1544
1547
  }
1545
- 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 }) {
1546
1549
  const [editor] = useState(() => {
1547
1550
  const editor = createEditor({ extension: union(defineEditorExtension({
1548
1551
  resolveFileLink,
@@ -1687,6 +1690,7 @@ function ProseKitEditor({ markMode = "focus", initialMarkdown, onDocChange, onSl
1687
1690
  embedPaste,
1688
1691
  linkPaste,
1689
1692
  bulletAfterHeading,
1693
+ substitution,
1690
1694
  placeholder,
1691
1695
  readOnly,
1692
1696
  wikilinkEnabled: !!onWikilinkSearch,
@@ -1725,7 +1729,7 @@ function ProseKitEditor({ markMode = "focus", initialMarkdown, onDocChange, onSl
1725
1729
 
1726
1730
  //#endregion
1727
1731
  //#region src/components/editor.tsx
1728
- 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 }) {
1729
1733
  const childRef = useRef(null);
1730
1734
  useImperativeHandle(handleRef, () => {
1731
1735
  function getMarkdown() {
@@ -1831,6 +1835,7 @@ function MeowdownEditor({ mode = "focus", initialMarkdown, onDocChange, onSlashM
1831
1835
  embedPaste,
1832
1836
  linkPaste,
1833
1837
  bulletAfterHeading,
1838
+ substitution,
1834
1839
  frontmatter,
1835
1840
  blockHandle,
1836
1841
  placeholder,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meowdown/react",
3
3
  "type": "module",
4
- "version": "0.47.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.21.0",
27
+ "lucide-react": "^1.24.0",
28
28
  "react-property": "^2.0.2",
29
- "@meowdown/core": "0.47.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.3.0",
44
+ "@css-modules-kit/codegen": "^1.4.0",
45
45
  "@ocavue/tsconfig": "^0.7.1",
46
- "@tsdown/css": "^0.22.3",
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.9",
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.3",
54
- "vitest": "^4.1.9",
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"