@meowdown/core 0.78.3 → 0.79.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
@@ -10,6 +10,7 @@ import { ListAttrs } from "@prosekit/extensions/list";
10
10
  import { HorizontalRuleExtension } from "@prosekit/extensions/horizontal-rule";
11
11
  import { Resolver, XPostMediaClickEvent } from "@meowdown/embed/x";
12
12
  import { YouTubeVideoClickEvent } from "@meowdown/embed/youtube";
13
+ import "prosemirror-flat-list";
13
14
  import { render } from "katex";
14
15
  import { XPost, YouTubeVideo } from "@post-embed/types";
15
16
  import { VirtualElement } from "@floating-ui/dom";
@@ -1098,6 +1099,7 @@ interface EditorConfig extends InlineMarkOptions, FollowLinkHandlers, FilePasteO
1098
1099
  embedPaste?: boolean;
1099
1100
  linkPaste?: boolean;
1100
1101
  bulletAfterHeading?: boolean;
1102
+ backspaceDeletesEmptyFirstBlock?: boolean;
1101
1103
  substitution?: boolean;
1102
1104
  wikilinkEnabled?: boolean;
1103
1105
  placeholder?: PlaceholderOptions$1['placeholder'];
@@ -1121,7 +1123,7 @@ declare function defineEditorExtensionImpl(options: EditorExtensionOptions): imp
1121
1123
  frontmatter?: Frontmatter;
1122
1124
  };
1123
1125
  };
1124
- }>, import("@prosekit/extensions/text").TextExtension, import("@prosekit/extensions/blockquote").BlockquoteExtension, import("@prosekit/core").Union<readonly [import("@prosekit/extensions/list").ListSpecExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/extensions/list").ListCommandsExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").Extension<{
1126
+ }>, import("@prosekit/extensions/text").TextExtension, import("@prosekit/extensions/blockquote").BlockquoteExtension, import("@prosekit/core").Union<readonly [import("@prosekit/extensions/list").ListSpecExtension, import("@prosekit/core").PlainExtension, import("@prosekit/extensions/list").ListCommandsExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").Extension<{
1125
1127
  Nodes: {
1126
1128
  list: {
1127
1129
  marker?: ListMarker;
@@ -1146,6 +1148,9 @@ declare function defineEditorExtensionImpl(options: EditorExtensionOptions): imp
1146
1148
  wrapInCircleTask: [];
1147
1149
  wrapInSquareTask: [];
1148
1150
  toggleListCollapsed: [];
1151
+ indentList: [options?: import("prosemirror-flat-list").IndentListOptions | undefined];
1152
+ dedentList: [options?: import("prosemirror-flat-list").DedentListOptions | undefined];
1153
+ splitList: [options?: import("prosemirror-flat-list").SplitListOptions | undefined];
1149
1154
  };
1150
1155
  }>]>, import("@prosekit/core").Union<readonly [import("@prosekit/extensions/heading").HeadingSpecExtension, import("@prosekit/core").Extension<{
1151
1156
  Nodes: {
@@ -1247,7 +1252,7 @@ declare function defineEditorExtensionImpl(options: EditorExtensionOptions): imp
1247
1252
  Marks: {
1248
1253
  mdPack: MdPackAttrs;
1249
1254
  };
1250
- }>]>, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").Extension<import("@prosekit/core").ExtensionTyping<any, any, any>>, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").Union<readonly [import("@prosekit/core").Extension<{
1255
+ }>]>, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").Extension<import("@prosekit/core").ExtensionTyping<any, any, any>>, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").Union<readonly [import("@prosekit/core").Extension<{
1251
1256
  Commands: {
1252
1257
  insertSoftBreak: [];
1253
1258
  };
@@ -1343,6 +1348,15 @@ interface DocToMarkdownOptions {
1343
1348
  */
1344
1349
  export declare function docToMarkdown(node: ProseMirrorNode, options?: DocToMarkdownOptions): string;
1345
1350
  //#endregion
1351
+ //#region src/extensions/backspace-empty-first-block.d.ts
1352
+ /**
1353
+ * Nothing sits before the document's first block, so Backspace in an empty
1354
+ * first paragraph has nothing to join and does nothing. When this extension is
1355
+ * applied, that Backspace deletes the empty paragraph instead, and the rest of
1356
+ * the document moves up one line.
1357
+ */
1358
+ export declare function defineBackspaceEmptyFirstBlock(enabled?: (state: EditorState) => boolean): PlainExtension;
1359
+ //#endregion
1346
1360
  //#region src/extensions/bullet-after-heading.d.ts
1347
1361
  /**
1348
1362
  * "Type a title, press Return, start bullets." When this extension is applied,
package/dist/index.js CHANGED
@@ -30,8 +30,8 @@ import { createParser } from "prosemirror-highlight/lezer";
30
30
  import { defineEnterRule, defineTextBlockEnterRule } from "@prosekit/extensions/enter-rule";
31
31
  import { defineInputRule, defineTextBlockInputRule } from "@prosekit/extensions/input-rule";
32
32
  import { triggerAutocomplete } from "@prosekit/extensions/autocomplete";
33
- import { defineListCommands, defineListDropIndicator, defineListKeymap, defineListSpec, moveList, toggleList, unwrapList, wrapInList } from "@prosekit/extensions/list";
34
- import { chainCommands, lift, newlineInCode, splitBlock } from "@prosekit/pm/commands";
33
+ import { defineListCommands, defineListDropIndicator, defineListSpec, moveList, toggleList, unwrapList, wrapInList } from "@prosekit/extensions/list";
34
+ import { chainCommands, deleteSelection, lift, newlineInCode, splitBlock } from "@prosekit/pm/commands";
35
35
  import { closeHistory } from "@prosekit/pm/history";
36
36
  import { defineHorizontalRule } from "@prosekit/extensions/horizontal-rule";
37
37
  import { X_POST_MEDIA_CLICK, registerXPost } from "@meowdown/embed/x";
@@ -44,7 +44,7 @@ import * as v from "valibot";
44
44
  import { AttrStep, ReplaceStep, Step, StepResult, Transform } from "@prosekit/pm/transform";
45
45
  import { decodeString } from "micromark-util-decode-string";
46
46
  import { normalizeIdentifier } from "micromark-util-normalize-identifier";
47
- import { createListRenderingPlugin, createSafariInputMethodWorkaroundPlugin, createToggleCollapsedCommand, defaultAttributesGetter, enterCommand, findCheckboxInListItem, handleListMarkerMouseDown, joinListElements, listToDOM, unwrapListSlice, wrappingListInputRule } from "prosemirror-flat-list";
47
+ import { createDedentListCommand, createIndentListCommand, createListRenderingPlugin, createSafariInputMethodWorkaroundPlugin, createSplitListCommand, createToggleCollapsedCommand, defaultAttributesGetter, deleteCommand, enterCommand, findCheckboxInListItem, handleListMarkerMouseDown, joinCollapsedListBackward, joinListElements, joinListUp, listToDOM, protectCollapsed, unwrapListSlice, wrappingListInputRule } from "prosemirror-flat-list";
48
48
  import { defineTableCellSpec, defineTableCommands, defineTableDropIndicator, defineTableEditingPlugin, defineTableHeaderCellSpec, defineTableRowSpec, defineTableSpec, deleteTable, isCellSelection } from "@prosekit/extensions/table";
49
49
  import { InputRule } from "@prosekit/pm/inputrules";
50
50
 
@@ -428,7 +428,9 @@ function getMarkRangeStrictlyAround(state, pos, markNames) {
428
428
  //#region src/extensions/atom-mark-navigation.ts
429
429
  function getActiveMarkNames(marks, state) {
430
430
  const mode = getMarkMode(state);
431
- return marks.flatMap((mark) => mark.modes.includes(mode) ? [mark.name] : []);
431
+ const result = [];
432
+ for (const mark of marks) if (mark.modes.includes(mode)) result.push(mark.name);
433
+ return result;
432
434
  }
433
435
  function getSelectedRange(state, markNames) {
434
436
  const { from, to, empty } = state.selection;
@@ -627,6 +629,38 @@ function isNodeOfType(node, name) {
627
629
  return node.type.name === name;
628
630
  }
629
631
 
632
+ //#endregion
633
+ //#region src/extensions/backspace-empty-first-block.ts
634
+ /**
635
+ * Claim Backspace only when the selection is an empty caret in an empty
636
+ * paragraph that is the document's first block and has a block after it.
637
+ * Delete that paragraph and leave the following block as it is.
638
+ */
639
+ const deleteEmptyFirstBlock = (state, dispatch) => {
640
+ const { $from, empty } = state.selection;
641
+ if (!empty || $from.depth !== 1 || $from.index(0) !== 0) return false;
642
+ const block = $from.parent;
643
+ if (!isNodeOfType(block, "paragraph") || block.content.size > 0) return false;
644
+ if (state.doc.childCount < 2) return false;
645
+ if (dispatch) {
646
+ const tr = state.tr.delete(0, block.nodeSize);
647
+ tr.setSelection(Selection.atStart(tr.doc));
648
+ dispatch(tr.scrollIntoView());
649
+ }
650
+ return true;
651
+ };
652
+ /**
653
+ * Nothing sits before the document's first block, so Backspace in an empty
654
+ * first paragraph has nothing to join and does nothing. When this extension is
655
+ * applied, that Backspace deletes the empty paragraph instead, and the rest of
656
+ * the document moves up one line.
657
+ */
658
+ function defineBackspaceEmptyFirstBlock(enabled) {
659
+ return withPriority$1(defineKeymap({ Backspace: (state, dispatch) => {
660
+ return (!enabled || enabled(state)) && deleteEmptyFirstBlock(state, dispatch);
661
+ } }), Priority$1.lowest);
662
+ }
663
+
630
664
  //#endregion
631
665
  //#region src/extensions/bullet-after-heading.ts
632
666
  /**
@@ -5894,13 +5928,34 @@ function cycleBulletOrderedList() {
5894
5928
  function toggleListCollapsed() {
5895
5929
  return createToggleCollapsedCommand({ isToggleable: isCollapsibleBullet });
5896
5930
  }
5931
+ function indentList(options) {
5932
+ return createIndentListCommand({
5933
+ strict: true,
5934
+ ...options
5935
+ });
5936
+ }
5937
+ function dedentList(options) {
5938
+ return createDedentListCommand({
5939
+ strict: true,
5940
+ ...options
5941
+ });
5942
+ }
5943
+ function splitList(options) {
5944
+ return createSplitListCommand({
5945
+ strict: true,
5946
+ ...options
5947
+ });
5948
+ }
5897
5949
  function defineMeowdownListCommands() {
5898
5950
  return defineCommands({
5899
5951
  cycleCheckableList,
5900
5952
  cycleBulletOrderedList,
5901
5953
  wrapInCircleTask,
5902
5954
  wrapInSquareTask,
5903
- toggleListCollapsed
5955
+ toggleListCollapsed,
5956
+ indentList,
5957
+ dedentList,
5958
+ splitList
5904
5959
  });
5905
5960
  }
5906
5961
  /**
@@ -6000,6 +6055,13 @@ function defineMeowdownListPlugins() {
6000
6055
  }
6001
6056
  function defineMeowdownListKeymap() {
6002
6057
  return defineKeymap({
6058
+ Enter: chainCommands(protectCollapsed, splitList()),
6059
+ Backspace: chainCommands(protectCollapsed, deleteSelection, joinListUp, joinCollapsedListBackward),
6060
+ Delete: deleteCommand,
6061
+ Tab: indentList(),
6062
+ "Shift-Tab": dedentList(),
6063
+ "Mod-]": indentList(),
6064
+ "Mod-[": dedentList(),
6003
6065
  "Mod-Enter": rotateSquareTask(),
6004
6066
  "Mod-Shift-Enter": rotateCircleTask(),
6005
6067
  "Mod-.": createToggleCollapsedCommand({ isToggleable: isCollapsibleBullet }),
@@ -6019,7 +6081,7 @@ function defineMeowdownListKeymap() {
6019
6081
  });
6020
6082
  }
6021
6083
  function defineMeowdownList() {
6022
- return union(defineListSpec(), defineMeowdownListPlugins(), defineListKeymap(), defineListCommands(), defineMeowdownListSerializer(), defineListDropIndicator(), defineMeowdownListInputRules(), defineMeowdownListKeymap(), defineListMarkerAttr(), defineListTaskMarkerAttr(), defineListMarkerGapAttr(), defineMeowdownListCommands());
6084
+ return union(defineListSpec(), defineMeowdownListPlugins(), defineListCommands(), defineMeowdownListSerializer(), defineListDropIndicator(), defineMeowdownListInputRules(), defineMeowdownListKeymap(), defineListMarkerAttr(), defineListTaskMarkerAttr(), defineListMarkerGapAttr(), defineMeowdownListCommands());
6023
6085
  }
6024
6086
 
6025
6087
  //#endregion
@@ -7281,7 +7343,7 @@ function defineYouTubeVideoClickHandler(getOnClick) {
7281
7343
  //#endregion
7282
7344
  //#region src/extensions/extension.ts
7283
7345
  function defineEditorExtensionImpl(options) {
7284
- return union(defineMeowdownParagraph(), defineDoc(), defineDocFrontmatterAttr(), defineText(), defineBlockquote(), defineMeowdownList(), defineHeading(), defineTable(), defineCodeBlock$1(), defineMeowdownHorizontalRule(), defineHTMLComment(), defineInlineMarks(), defineEditorConfig(options), defineImage(getEditorConfig), defineFileView(getEditorConfig), defineModClickPrevention(), defineFileClickHandler((state) => getEditorConfig(state).onFileClick), defineImageClickHandler((state) => getEditorConfig(state).onImageClick), defineXPostMediaClickHandler((state) => getEditorConfig(state).onXPostMediaClick), defineYouTubeVideoClickHandler((state) => getEditorConfig(state).onYouTubeVideoClick), defineWikilinkClickHandler((state) => getEditorConfig(state).onWikilinkClick), defineTagClickHandler((state) => getEditorConfig(state).onTagClick), defineLinkClickHandler((state) => getEditorConfig(state).onLinkClick), defineFollowLinkHandler(getEditorConfig), defineExitBoundaryHandler((state) => getEditorConfig(state).onExitBoundary), defineFilePaste(getEditorConfig), defineEmbedPaste((state) => !!getEditorConfig(state).embedPaste), defineLinkPaste((state) => !!getEditorConfig(state).linkPaste), defineBulletAfterHeading((state) => !!getEditorConfig(state).bulletAfterHeading), defineSubstitution((state) => !!getEditorConfig(state).substitution), defineWikilinkTrigger((state) => !!getEditorConfig(state).wikilinkEnabled), definePlaceholder$1({
7346
+ return union(defineMeowdownParagraph(), defineDoc(), defineDocFrontmatterAttr(), defineText(), defineBlockquote(), defineMeowdownList(), defineHeading(), defineTable(), defineCodeBlock$1(), defineMeowdownHorizontalRule(), defineHTMLComment(), defineInlineMarks(), defineEditorConfig(options), defineImage(getEditorConfig), defineFileView(getEditorConfig), defineModClickPrevention(), defineFileClickHandler((state) => getEditorConfig(state).onFileClick), defineImageClickHandler((state) => getEditorConfig(state).onImageClick), defineXPostMediaClickHandler((state) => getEditorConfig(state).onXPostMediaClick), defineYouTubeVideoClickHandler((state) => getEditorConfig(state).onYouTubeVideoClick), defineWikilinkClickHandler((state) => getEditorConfig(state).onWikilinkClick), defineTagClickHandler((state) => getEditorConfig(state).onTagClick), defineLinkClickHandler((state) => getEditorConfig(state).onLinkClick), defineFollowLinkHandler(getEditorConfig), defineExitBoundaryHandler((state) => getEditorConfig(state).onExitBoundary), defineFilePaste(getEditorConfig), defineEmbedPaste((state) => !!getEditorConfig(state).embedPaste), defineLinkPaste((state) => !!getEditorConfig(state).linkPaste), defineBulletAfterHeading((state) => !!getEditorConfig(state).bulletAfterHeading), defineBackspaceEmptyFirstBlock((state) => !!getEditorConfig(state).backspaceDeletesEmptyFirstBlock), defineSubstitution((state) => !!getEditorConfig(state).substitution), defineWikilinkTrigger((state) => !!getEditorConfig(state).wikilinkEnabled), definePlaceholder$1({
7285
7347
  placeholder: (state) => {
7286
7348
  const placeholder = getEditorConfig(state).placeholder;
7287
7349
  return typeof placeholder === "function" ? placeholder(state) : placeholder ?? "";
@@ -7904,13 +7966,14 @@ var VirtualCaretView = class {
7904
7966
  view.dom.removeAttribute(DATA_ATTRIBUTE);
7905
7967
  return;
7906
7968
  }
7907
- if (wasHidden) this.#caret.style.transitionProperty = "none";
7969
+ const skipGlide = wasHidden || getIsPointerSelection();
7970
+ if (skipGlide) this.#caret.style.transitionProperty = "none";
7908
7971
  this.#caret.style.visibility = "";
7909
7972
  this.#caret.style.left = `${rect.left}px`;
7910
7973
  this.#caret.style.top = `${rect.top}px`;
7911
7974
  this.#caret.style.height = `${rect.height}px`;
7912
7975
  view.dom.setAttribute(DATA_ATTRIBUTE, "");
7913
- if (wasHidden) {
7976
+ if (skipGlide) {
7914
7977
  forceReflow(this.#caret);
7915
7978
  this.#caret.style.transitionProperty = "";
7916
7979
  }
@@ -8071,4 +8134,4 @@ function getVirtualElementFromRange(view, range) {
8071
8134
  }
8072
8135
 
8073
8136
  //#endregion
8074
- export { EDITOR_KEY_BINDINGS, Priority, buildFileMarkdown, checkRoundTrip, codeBlockLanguages, collectReferenceDefinitions, defaultResolveImageUrl, defaultResolveXPost, defaultResolveYouTubeVideo, defineBulletAfterHeading, defineCodeBlockPreviewPlugin, defineCodeBlockSyntaxHighlight, defineEditorExtension, defineEmbedPaste, defineExitBoundaryHandler, defineFileClickHandler, defineFilePaste, defineFileView, defineFollowLinkHandler, defineHTMLComment, defineImage, defineImageClickHandler, defineLinkClickHandler, defineLinkCommands, defineLinkEditKeymap, defineLinkHoverHandler, defineLinkPaste, defineMath, definePendingReplacementHandler, definePlaceholder, defineReadonly, defineSearchStatusHandler, defineSingleParagraph, defineSubstitution, defineTagClickHandler, defineViewAttributes, defineVirtualCaret, defineWikilinkClickHandler, defineWikilinkHoverHandler, defineWikilinkTrigger, defineXPostMediaClickHandler, defineYouTubeVideoClickHandler, dismissLinkHover, docToMarkdown, docToParagraphMarkdown, formatFileSize, formatSizedWikiEmbed, getCodeTokens, getEditorConfig, getFileKind, getIsComposing, getLinkText, getLinkUnitAt, getMarkBuilders, getPendingReplacement, getSearchStatus, getSelectedText, getTableColumnAlign, getTextblockDisplayText, getVirtualElementFromRange, inlineTextToMarkChunks, inlineTextToMarkChunksWithContext, insertLink, isCodeBlockPreviewHiddenDecoration, isLinkTextForHref, isMarkOfType, isModEvent, isNodeOfType, isReferenceDefinitionNode, isSelectionInTableCell, loadKaTeX, markdownToDoc, normalizeHref, paragraphMarkdownToDoc, parsePostEmbedSnapshot, parseWikiEmbed, removeLink, renderMathInto, updateEditorConfig, updateLink, wikiEmbedBasename, withPriority };
8137
+ export { EDITOR_KEY_BINDINGS, Priority, buildFileMarkdown, checkRoundTrip, codeBlockLanguages, collectReferenceDefinitions, defaultResolveImageUrl, defaultResolveXPost, defaultResolveYouTubeVideo, defineBackspaceEmptyFirstBlock, defineBulletAfterHeading, defineCodeBlockPreviewPlugin, defineCodeBlockSyntaxHighlight, defineEditorExtension, defineEmbedPaste, defineExitBoundaryHandler, defineFileClickHandler, defineFilePaste, defineFileView, defineFollowLinkHandler, defineHTMLComment, defineImage, defineImageClickHandler, defineLinkClickHandler, defineLinkCommands, defineLinkEditKeymap, defineLinkHoverHandler, defineLinkPaste, defineMath, definePendingReplacementHandler, definePlaceholder, defineReadonly, defineSearchStatusHandler, defineSingleParagraph, defineSubstitution, defineTagClickHandler, defineViewAttributes, defineVirtualCaret, defineWikilinkClickHandler, defineWikilinkHoverHandler, defineWikilinkTrigger, defineXPostMediaClickHandler, defineYouTubeVideoClickHandler, dismissLinkHover, docToMarkdown, docToParagraphMarkdown, formatFileSize, formatSizedWikiEmbed, getCodeTokens, getEditorConfig, getFileKind, getIsComposing, getLinkText, getLinkUnitAt, getMarkBuilders, getPendingReplacement, getSearchStatus, getSelectedText, getTableColumnAlign, getTextblockDisplayText, getVirtualElementFromRange, inlineTextToMarkChunks, inlineTextToMarkChunksWithContext, insertLink, isCodeBlockPreviewHiddenDecoration, isLinkTextForHref, isMarkOfType, isModEvent, isNodeOfType, isReferenceDefinitionNode, isSelectionInTableCell, loadKaTeX, markdownToDoc, normalizeHref, paragraphMarkdownToDoc, parsePostEmbedSnapshot, parseWikiEmbed, removeLink, renderMathInto, updateEditorConfig, updateLink, wikiEmbedBasename, withPriority };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meowdown/core",
3
3
  "type": "module",
4
- "version": "0.78.3",
4
+ "version": "0.79.0",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -21,10 +21,10 @@
21
21
  "./dist/**/*.css"
22
22
  ],
23
23
  "dependencies": {
24
- "@codemirror/language": "^6.12.4",
24
+ "@codemirror/language": "^6.13.1",
25
25
  "@codemirror/language-data": "^6.5.2",
26
26
  "@floating-ui/dom": "^1.8.0",
27
- "@lezer/highlight": "^1.2.3",
27
+ "@lezer/highlight": "^1.2.5",
28
28
  "@meowdown/embed": "0.3.1",
29
29
  "@meowdown/markdown": "0.76.0",
30
30
  "@ocavue/utils": "^1.8.0",
@@ -36,14 +36,14 @@
36
36
  "@prosekit/pm": "^0.1.20",
37
37
  "@prosekit/web": "^0.9.3",
38
38
  "hast-util-to-mdast": "^10.1.2",
39
- "katex": "^0.18.7",
39
+ "katex": "^0.19.0",
40
40
  "lru.min": "^1.1.5",
41
- "mdast-util-to-markdown": "^2.1.2",
41
+ "mdast-util-to-markdown": "^2.2.0",
42
42
  "micromark-util-decode-string": "^2.0.1",
43
43
  "micromark-util-normalize-identifier": "^2.0.1",
44
- "prosemirror-flat-list": "^0.7.1",
44
+ "prosemirror-flat-list": "^0.7.2",
45
45
  "prosemirror-highlight": "^0.16.0",
46
- "rehype-parse": "^9.0.1",
46
+ "rehype-parse": "^9.0.0",
47
47
  "rehype-remark": "^10.0.1",
48
48
  "remark-gfm": "^4.0.1",
49
49
  "remark-stringify": "^11.0.0",
@@ -57,11 +57,11 @@
57
57
  "@tsdown/css": "^0.23.0",
58
58
  "@types/hast": "^3.0.5",
59
59
  "@types/mdast": "^4.0.4",
60
- "@vitest/browser-playwright": "^5.0.1",
60
+ "@vitest/browser-playwright": "^5.0.3",
61
61
  "dedent": "^1.7.2",
62
62
  "diffable-html-snapshot": "^0.3.0",
63
63
  "tsdown": "^0.23.0",
64
- "vitest": "^5.0.1"
64
+ "vitest": "^5.0.3"
65
65
  },
66
66
  "publishConfig": {
67
67
  "access": "public"