@meowdown/react 0.34.0 → 0.36.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.js +47 -5
- package/dist/style.css +7 -0
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clsx } from "clsx/lite";
|
|
2
2
|
import { Fragment, createElement, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { codeBlockLanguages, defaultResolveImageUrl, defineBulletAfterHeading, defineEditorExtension, defineEmbedPaste, defineExitBoundaryHandler, defineFileClickHandler, defineFilePaste, defineFileView, defineFollowLinkHandler, defineHTMLPaste, defineImage, defineImageClickHandler, defineLinkClickHandler, defineLinkEditKeymap, defineLinkHoverHandler,
|
|
3
|
+
import { codeBlockLanguages, defaultResolveImageUrl, defineBulletAfterHeading, defineEditorExtension, defineEmbedPaste, defineExitBoundaryHandler, defineFileClickHandler, defineFilePaste, defineFileView, defineFollowLinkHandler, defineHTMLPaste, defineImage, defineImageClickHandler, defineLinkClickHandler, defineLinkEditKeymap, defineLinkHoverHandler, defineMarkdownCopy, definePendingReplacementHandler, definePlaceholder, defineReadonly, defineSpellCheckPlugin, defineTagClickHandler, defineWikilinkClickHandler, defineWikilinkTrigger, docToMarkdown, getCodeTokens, getMarkBuilders, getPendingReplacement, getSelectedText, getTableColumnAlign, getVirtualElementFromRange, inlineTextToMarkChunks, isSelectionInTableCell, listenForTweetHeight, markdownToDoc, matchEmbed } 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";
|
|
@@ -217,9 +217,10 @@ function DropIndicator$1() {
|
|
|
217
217
|
//#endregion
|
|
218
218
|
//#region src/components/editor-extensions.tsx
|
|
219
219
|
function EditorExtensions({ markMode, onDocChange, onWikilinkClick, onLinkClick, onTagClick, onExitBoundary, resolveImageUrl, resolveFileInfo, onFileClick, onFilePaste, onFileSaveError, onImageClick, embedPaste, bulletAfterHeading, placeholder, readOnly, wikilinkEnabled, spellCheck }) {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
const editor = useEditor$1();
|
|
221
|
+
useEffect(() => {
|
|
222
|
+
editor.commands.setMarkMode(markMode);
|
|
223
|
+
}, [editor, markMode]);
|
|
223
224
|
useExtension$1(useMemo(() => {
|
|
224
225
|
return readOnly ? defineReadonly() : null;
|
|
225
226
|
}, [readOnly]));
|
|
@@ -1070,7 +1071,13 @@ var table_handle_module_default = {
|
|
|
1070
1071
|
//#region src/components/table-handle.tsx
|
|
1071
1072
|
function getTableHandleState(editor) {
|
|
1072
1073
|
const commands = editor.commands;
|
|
1074
|
+
const columnAlign = getTableColumnAlign(editor.state);
|
|
1073
1075
|
return {
|
|
1076
|
+
columnAlign,
|
|
1077
|
+
setTableColumnAlign: {
|
|
1078
|
+
canExec: commands.setTableColumnAlign.canExec("left"),
|
|
1079
|
+
command: (align) => commands.setTableColumnAlign(columnAlign === align ? null : align)
|
|
1080
|
+
},
|
|
1074
1081
|
addTableColumnBefore: {
|
|
1075
1082
|
canExec: commands.addTableColumnBefore.canExec(),
|
|
1076
1083
|
command: () => commands.addTableColumnBefore()
|
|
@@ -1105,6 +1112,21 @@ function getTableHandleState(editor) {
|
|
|
1105
1112
|
}
|
|
1106
1113
|
};
|
|
1107
1114
|
}
|
|
1115
|
+
const COLUMN_ALIGN_LABELS = {
|
|
1116
|
+
left: "Align Left",
|
|
1117
|
+
center: "Align Center",
|
|
1118
|
+
right: "Align Right"
|
|
1119
|
+
};
|
|
1120
|
+
function ColumnAlignMenuItem({ align, columnAlign, onSelect }) {
|
|
1121
|
+
const active = columnAlign === align;
|
|
1122
|
+
return /* @__PURE__ */ jsxs(MenuItem, {
|
|
1123
|
+
className: table_handle_module_default.MenuItem,
|
|
1124
|
+
"data-testid": `table-align-${align}`,
|
|
1125
|
+
"data-active": active ? "" : void 0,
|
|
1126
|
+
onSelect,
|
|
1127
|
+
children: [/* @__PURE__ */ jsx("span", { children: COLUMN_ALIGN_LABELS[align] }), active && /* @__PURE__ */ jsx(CheckIcon, {})]
|
|
1128
|
+
});
|
|
1129
|
+
}
|
|
1108
1130
|
function TableHandle() {
|
|
1109
1131
|
const state = useEditorDerivedValue(getTableHandleState);
|
|
1110
1132
|
return /* @__PURE__ */ jsxs(TableHandleRoot, { children: [
|
|
@@ -1136,6 +1158,23 @@ function TableHandle() {
|
|
|
1136
1158
|
onSelect: state.addTableColumnAfter.command,
|
|
1137
1159
|
children: /* @__PURE__ */ jsx("span", { children: "Insert Right" })
|
|
1138
1160
|
}),
|
|
1161
|
+
state.setTableColumnAlign.canExec && /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
1162
|
+
/* @__PURE__ */ jsx(ColumnAlignMenuItem, {
|
|
1163
|
+
align: "left",
|
|
1164
|
+
columnAlign: state.columnAlign,
|
|
1165
|
+
onSelect: () => state.setTableColumnAlign.command("left")
|
|
1166
|
+
}),
|
|
1167
|
+
/* @__PURE__ */ jsx(ColumnAlignMenuItem, {
|
|
1168
|
+
align: "center",
|
|
1169
|
+
columnAlign: state.columnAlign,
|
|
1170
|
+
onSelect: () => state.setTableColumnAlign.command("center")
|
|
1171
|
+
}),
|
|
1172
|
+
/* @__PURE__ */ jsx(ColumnAlignMenuItem, {
|
|
1173
|
+
align: "right",
|
|
1174
|
+
columnAlign: state.columnAlign,
|
|
1175
|
+
onSelect: () => state.setTableColumnAlign.command("right")
|
|
1176
|
+
})
|
|
1177
|
+
] }),
|
|
1139
1178
|
state.deleteCellSelection.canExec && /* @__PURE__ */ jsxs(MenuItem, {
|
|
1140
1179
|
className: table_handle_module_default.MenuItem,
|
|
1141
1180
|
"data-testid": "table-clear-column",
|
|
@@ -1366,7 +1405,10 @@ function resolveSelection(doc, selection) {
|
|
|
1366
1405
|
}
|
|
1367
1406
|
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, bulletAfterHeading, frontmatter = false, blockHandle = true, placeholder, readOnly, spellCheck, timeFormat, editorClassName, ref, children }) {
|
|
1368
1407
|
const [editor] = useState(() => {
|
|
1369
|
-
const editor = createEditor({ extension: union(defineEditorExtension({
|
|
1408
|
+
const editor = createEditor({ extension: union(defineEditorExtension({
|
|
1409
|
+
resolveFileLink,
|
|
1410
|
+
markMode
|
|
1411
|
+
}), defineCodeBlockView()) });
|
|
1370
1412
|
if (initialMarkdown) editor.setContent(markdownToDoc(initialMarkdown, {
|
|
1371
1413
|
nodes: editor.nodes,
|
|
1372
1414
|
frontmatter
|
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.36.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"@ocavue/utils": "^1.7.0",
|
|
23
23
|
"@prosekit/core": "^0.13.0-beta.5",
|
|
24
24
|
"@prosekit/pm": "^0.1.19-beta.2",
|
|
25
|
-
"@prosekit/react": "^0.8.0-beta.
|
|
25
|
+
"@prosekit/react": "^0.8.0-beta.17",
|
|
26
26
|
"clsx": "^2.1.1",
|
|
27
27
|
"lucide-react": "^1.21.0",
|
|
28
|
-
"@meowdown/core": "0.
|
|
28
|
+
"@meowdown/core": "0.36.0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": "^19.0.0",
|