@milkdown/preset-gfm 5.3.2 → 5.4.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/lib/index.d.ts +1 -36
- package/lib/index.es.js +10 -11
- package/lib/index.es.js.map +1 -1
- package/lib/{auto-link.d.ts → src/auto-link.d.ts} +0 -0
- package/lib/src/auto-link.d.ts.map +1 -0
- package/lib/src/index.d.ts +36 -0
- package/lib/src/index.d.ts.map +1 -0
- package/lib/{strike-through.d.ts → src/strike-through.d.ts} +1 -1
- package/lib/src/strike-through.d.ts.map +1 -0
- package/lib/{supported-keys.d.ts → src/supported-keys.d.ts} +0 -0
- package/lib/src/supported-keys.d.ts.map +1 -0
- package/lib/{table → src/table}/command.d.ts +0 -0
- package/lib/src/table/command.d.ts.map +1 -0
- package/lib/{table → src/table}/index.d.ts +0 -0
- package/lib/src/table/index.d.ts.map +1 -0
- package/lib/{table → src/table}/nodes/index.d.ts +3 -3
- package/lib/src/table/nodes/index.d.ts.map +1 -0
- package/lib/{table → src/table}/nodes/schema.d.ts +0 -0
- package/lib/src/table/nodes/schema.d.ts.map +1 -0
- package/lib/{table → src/table}/nodes/style.d.ts +0 -0
- package/lib/src/table/nodes/style.d.ts.map +1 -0
- package/lib/{table → src/table}/operator-plugin/actions.d.ts +0 -0
- package/lib/src/table/operator-plugin/actions.d.ts.map +1 -0
- package/lib/{table → src/table}/operator-plugin/calc-pos.d.ts +0 -0
- package/lib/src/table/operator-plugin/calc-pos.d.ts.map +1 -0
- package/lib/{table → src/table}/operator-plugin/constant.d.ts +0 -0
- package/lib/src/table/operator-plugin/constant.d.ts.map +1 -0
- package/lib/{table → src/table}/operator-plugin/helper.d.ts +0 -0
- package/lib/src/table/operator-plugin/helper.d.ts.map +1 -0
- package/lib/{table → src/table}/operator-plugin/index.d.ts +0 -0
- package/lib/src/table/operator-plugin/index.d.ts.map +1 -0
- package/lib/src/table/operator-plugin/style.d.ts +3 -0
- package/lib/src/table/operator-plugin/style.d.ts.map +1 -0
- package/lib/{table → src/table}/operator-plugin/widget.d.ts +0 -0
- package/lib/src/table/operator-plugin/widget.d.ts.map +1 -0
- package/lib/{table → src/table}/utils.d.ts +0 -1
- package/lib/src/table/utils.d.ts.map +1 -0
- package/lib/{task-list-item.d.ts → src/task-list-item.d.ts} +1 -1
- package/lib/src/task-list-item.d.ts.map +1 -0
- package/package.json +14 -8
- package/src/strike-through.ts +1 -2
- package/src/table/nodes/style.ts +5 -5
- package/src/table/operator-plugin/style.ts +2 -3
- package/src/task-list-item.ts +2 -3
- package/lib/auto-link.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/strike-through.d.ts.map +0 -1
- package/lib/supported-keys.d.ts.map +0 -1
- package/lib/table/command.d.ts.map +0 -1
- package/lib/table/index.d.ts.map +0 -1
- package/lib/table/nodes/index.d.ts.map +0 -1
- package/lib/table/nodes/schema.d.ts.map +0 -1
- package/lib/table/nodes/style.d.ts.map +0 -1
- package/lib/table/operator-plugin/actions.d.ts.map +0 -1
- package/lib/table/operator-plugin/calc-pos.d.ts.map +0 -1
- package/lib/table/operator-plugin/constant.d.ts.map +0 -1
- package/lib/table/operator-plugin/helper.d.ts.map +0 -1
- package/lib/table/operator-plugin/index.d.ts.map +0 -1
- package/lib/table/operator-plugin/style.d.ts +0 -3
- package/lib/table/operator-plugin/style.d.ts.map +0 -1
- package/lib/table/operator-plugin/widget.d.ts.map +0 -1
- package/lib/table/utils.d.ts.map +0 -1
- package/lib/task-list-item.d.ts.map +0 -1
package/lib/index.d.ts
CHANGED
|
@@ -1,36 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export * from './strike-through';
|
|
3
|
-
export { SupportedKeys } from './supported-keys';
|
|
4
|
-
export { BreakTable, createTable, InsertTable, NextCell, PrevCell, table, } from './table';
|
|
5
|
-
export * from './task-list-item';
|
|
6
|
-
export { blockquote, bulletList, codeFence, codeInline, commonmark, commonmarkNodes, commonmarkPlugins, doc, em, hardbreak, heading, hr, image, InsertHardbreak, InsertHr, InsertImage, LiftListItem, link, listItem, ModifyImage, ModifyLink, orderedList, paragraph, SinkListItem, SplitListItem, strong, text, ToggleBold, ToggleInlineCode, ToggleItalic, ToggleLink, TurnIntoCodeFence, TurnIntoHeading, TurnIntoText, WrapInBlockquote, WrapInBulletList, WrapInOrderedList, } from '@milkdown/preset-commonmark';
|
|
7
|
-
export declare const gfm: AtomList<import("@milkdown/utils").$Prose | import("@milkdown/utils").$Remark | (import("@milkdown/utils/lib/types").Metadata<import("@milkdown/utils/lib/types").GetPlugin<string, import("@milkdown/preset-commonmark").ImageOptions>> & import("@milkdown/core").MilkdownPlugin) | (import("@milkdown/utils/lib/types").Metadata<import("@milkdown/utils/lib/types").GetPlugin<"CodeFence", {
|
|
8
|
-
languageList?: string[] | undefined;
|
|
9
|
-
}>> & import("@milkdown/core").MilkdownPlugin)>;
|
|
10
|
-
export declare const commands: {
|
|
11
|
-
readonly ToggleStrikeThrough: import("@milkdown/core").CmdKey<undefined>;
|
|
12
|
-
readonly TurnIntoTaskList: import("@milkdown/core").CmdKey<undefined>;
|
|
13
|
-
readonly SinkTaskListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
14
|
-
readonly LiftTaskListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
15
|
-
readonly SplitTaskListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
16
|
-
readonly ToggleInlineCode: import("@milkdown/core").CmdKey<undefined>;
|
|
17
|
-
readonly ToggleItalic: import("@milkdown/core").CmdKey<undefined>;
|
|
18
|
-
readonly ToggleLink: import("@milkdown/core").CmdKey<string>;
|
|
19
|
-
readonly ToggleBold: import("@milkdown/core").CmdKey<undefined>;
|
|
20
|
-
readonly ModifyLink: import("@milkdown/core").CmdKey<string>;
|
|
21
|
-
readonly ModifyImage: import("@milkdown/core").CmdKey<string>;
|
|
22
|
-
readonly WrapInBlockquote: import("@milkdown/core").CmdKey<undefined>;
|
|
23
|
-
readonly WrapInBulletList: import("@milkdown/core").CmdKey<undefined>;
|
|
24
|
-
readonly WrapInOrderedList: import("@milkdown/core").CmdKey<undefined>;
|
|
25
|
-
readonly TurnIntoCodeFence: import("@milkdown/core").CmdKey<undefined>;
|
|
26
|
-
readonly TurnIntoHeading: import("@milkdown/core").CmdKey<number>;
|
|
27
|
-
readonly TurnIntoText: import("@milkdown/core").CmdKey<undefined>;
|
|
28
|
-
readonly InsertHardbreak: import("@milkdown/core").CmdKey<undefined>;
|
|
29
|
-
readonly InsertHr: import("@milkdown/core").CmdKey<string>;
|
|
30
|
-
readonly InsertImage: import("@milkdown/core").CmdKey<string>;
|
|
31
|
-
readonly SplitListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
32
|
-
readonly SinkListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
33
|
-
readonly LiftListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
34
|
-
};
|
|
35
|
-
export declare type Commands = typeof commands;
|
|
36
|
-
//# sourceMappingURL=index.d.ts.map
|
|
1
|
+
export * from './src/index'
|
package/lib/index.es.js
CHANGED
|
@@ -22,7 +22,6 @@ export { InsertHardbreak, InsertHr, InsertImage, LiftListItem, ModifyImage, Modi
|
|
|
22
22
|
import { $prose, createPlugin, createShortcut, createMark, createNode, AtomList, $remark } from "@milkdown/utils";
|
|
23
23
|
import remarkGFM from "remark-gfm";
|
|
24
24
|
import { inputRules, InputRule, isInTable, Selection, findParentNode, TableMap, tableNodeTypes, CellSelection, cloneTr, addColumnBefore, addColumnAfter, selectedRect, setCellAttr, deleteTable, deleteColumn, deleteRow, calculateNodePosition, Decoration, Plugin, PluginKey, DecorationSet, tableNodes, TextSelection, goToNextCell, columnResizing, tableEditing, markRule, toggleMark, wrappingInputRule, splitListItem, sinkListItem, liftListItem, wrapIn } from "@milkdown/prose";
|
|
25
|
-
import { css, injectGlobal } from "@emotion/css";
|
|
26
25
|
import { themeToolCtx, createCmdKey, schemaCtx, createCmd } from "@milkdown/core";
|
|
27
26
|
const urlRegex = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;
|
|
28
27
|
const proseUrlPlugin = () => inputRules({
|
|
@@ -292,7 +291,7 @@ var ToolTipPos;
|
|
|
292
291
|
ToolTipPos2["Top"] = "Top";
|
|
293
292
|
ToolTipPos2["Point"] = "Point";
|
|
294
293
|
})(ToolTipPos || (ToolTipPos = {}));
|
|
295
|
-
const injectStyle$1 = ({ size, mixin, palette }) => {
|
|
294
|
+
const injectStyle$1 = ({ size, mixin, palette }, { css }) => {
|
|
296
295
|
var _a, _b;
|
|
297
296
|
return css`
|
|
298
297
|
display: inline-flex;
|
|
@@ -474,7 +473,7 @@ const schema = tableNodes({
|
|
|
474
473
|
}
|
|
475
474
|
}
|
|
476
475
|
});
|
|
477
|
-
const proseTableStyle = css`
|
|
476
|
+
const proseTableStyle = ({ css }) => css`
|
|
478
477
|
/* copy from https://github.com/ProseMirror/prosemirror-tables/blob/master/style/tables.css */
|
|
479
478
|
.ProseMirror .tableWrapper {
|
|
480
479
|
overflow-x: auto;
|
|
@@ -519,11 +518,11 @@ const proseTableStyle = css`
|
|
|
519
518
|
}
|
|
520
519
|
`;
|
|
521
520
|
const injectStyle = (utils) => {
|
|
522
|
-
|
|
523
|
-
return utils.getStyle(({ size, palette, mixin }) => {
|
|
521
|
+
return utils.getStyle(({ size, palette, mixin }, emotion) => {
|
|
524
522
|
var _a, _b, _c;
|
|
525
|
-
|
|
526
|
-
|
|
523
|
+
const css = emotion.injectGlobal;
|
|
524
|
+
css`
|
|
525
|
+
${proseTableStyle(emotion)}
|
|
527
526
|
|
|
528
527
|
.tableWrapper {
|
|
529
528
|
margin: 0 !important;
|
|
@@ -789,7 +788,7 @@ const SupportedKeys = __spreadProps(__spreadValues(__spreadValues({}, SupportedK
|
|
|
789
788
|
const ToggleStrikeThrough = createCmdKey();
|
|
790
789
|
const strikeThrough = createMark((utils) => {
|
|
791
790
|
const id = "strike_through";
|
|
792
|
-
const style = utils.getStyle((themeTool) => css`
|
|
791
|
+
const style = utils.getStyle((themeTool, { css }) => css`
|
|
793
792
|
text-decoration-color: ${themeTool.palette("secondary")};
|
|
794
793
|
`);
|
|
795
794
|
return {
|
|
@@ -831,7 +830,7 @@ const LiftTaskListItem = createCmdKey();
|
|
|
831
830
|
const TurnIntoTaskList = createCmdKey();
|
|
832
831
|
const taskListItem = createNode((utils) => {
|
|
833
832
|
const id = "task_list_item";
|
|
834
|
-
const style = utils.getStyle(({ palette, size }) => css`
|
|
833
|
+
const style = utils.getStyle(({ palette, size }, { css }) => css`
|
|
835
834
|
list-style-type: none;
|
|
836
835
|
position: relative;
|
|
837
836
|
|
|
@@ -883,6 +882,7 @@ const taskListItem = createNode((utils) => {
|
|
|
883
882
|
group: "listItem",
|
|
884
883
|
content: "paragraph block*",
|
|
885
884
|
defining: true,
|
|
885
|
+
priority: 60,
|
|
886
886
|
attrs: {
|
|
887
887
|
checked: {
|
|
888
888
|
default: false
|
|
@@ -896,8 +896,7 @@ const taskListItem = createNode((utils) => {
|
|
|
896
896
|
throw new Error();
|
|
897
897
|
}
|
|
898
898
|
return { checked: dom.dataset.checked === "true" };
|
|
899
|
-
}
|
|
900
|
-
priority: 60
|
|
899
|
+
}
|
|
901
900
|
}
|
|
902
901
|
],
|
|
903
902
|
toDOM: (node) => [
|
package/lib/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/auto-link.ts","../src/table/command.ts","../src/table/utils.ts","../src/table/operator-plugin/helper.ts","../src/table/operator-plugin/actions.ts","../src/table/operator-plugin/calc-pos.ts","../src/table/operator-plugin/constant.ts","../src/table/operator-plugin/style.ts","../src/table/operator-plugin/widget.ts","../src/table/operator-plugin/index.ts","../src/table/nodes/schema.ts","../src/table/nodes/style.ts","../src/table/nodes/index.ts","../src/supported-keys.ts","../src/strike-through.ts","../src/task-list-item.ts","../src/index.ts"],"sourcesContent":["/* Copyright 2021, Milkdown by Mirone. */\nimport { InputRule, inputRules } from '@milkdown/prose';\nimport { $prose } from '@milkdown/utils';\n\nconst urlRegex = /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\n\nconst proseUrlPlugin = () =>\n inputRules({\n rules: [\n new InputRule(urlRegex, (state, match, start, end) => {\n const { schema } = state;\n const [text] = match;\n if (!text) return null;\n\n return state.tr\n .replaceWith(start, end, schema.text(text))\n .addMark(start, text.length + start, schema.marks.link.create({ href: text }));\n }),\n ],\n });\n\nexport const urlPlugin = $prose(() => proseUrlPlugin());\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { Command, isInTable, Node, NodeType, Selection } from '@milkdown/prose';\n\nexport const exitTable =\n (node: NodeType): Command =>\n (state, dispatch) => {\n if (!isInTable(state)) {\n return false;\n }\n const { $head } = state.selection;\n const pos = $head.after();\n const tr = state.tr.replaceWith(pos, pos, node.createAndFill() as Node);\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch?.(tr.scrollIntoView());\n return true;\n };\n","/* Copyright 2021, Milkdown by Mirone. */\nimport {\n CellSelection,\n cloneTr,\n findParentNode,\n Node as ProsemirrorNode,\n Schema,\n Selection,\n TableMap,\n tableNodeTypes,\n TableRect,\n Transaction,\n} from '@milkdown/prose';\n\nexport type CellPos = {\n pos: number;\n start: number;\n node: ProsemirrorNode;\n};\n\nexport const findTable = (selection: Selection) =>\n findParentNode((node) => node.type.spec.tableRole === 'table')(selection);\n\nexport const getCellsInColumn =\n (columnIndex: number) =>\n (selection: Selection): CellPos[] | undefined => {\n const table = findTable(selection);\n if (!table) return undefined;\n const map = TableMap.get(table.node);\n if (columnIndex < 0 || columnIndex >= map.width) {\n return undefined;\n }\n\n return map.cellsInRect({ left: columnIndex, right: columnIndex + 1, top: 0, bottom: map.height }).map((pos) => {\n const node = table.node.nodeAt(pos);\n if (!node) throw new Error();\n const start = pos + table.start;\n return {\n pos: start,\n start: start + 1,\n node,\n };\n });\n };\n\nexport const getCellsInRow =\n (rowIndex: number) =>\n (selection: Selection): CellPos[] | undefined => {\n const table = findTable(selection);\n if (!table) return undefined;\n const map = TableMap.get(table.node);\n if (rowIndex < 0 || rowIndex >= map.height) {\n return undefined;\n }\n\n return map.cellsInRect({ left: 0, right: map.width, top: rowIndex, bottom: rowIndex + 1 }).map((pos) => {\n const node = table.node.nodeAt(pos);\n if (!node) throw new Error();\n const start = pos + table.start;\n return {\n pos: start,\n start: start + 1,\n node,\n };\n });\n };\n\nexport const createTable = (schema: Schema, rowsCount = 3, colsCount = 3) => {\n const { cell: tableCell, header_cell: tableHeader, row: tableRow, table } = tableNodeTypes(schema);\n\n const cells = Array(colsCount)\n .fill(0)\n .map(() => tableCell.createAndFill(null) as ProsemirrorNode);\n\n const headerCells = Array(colsCount)\n .fill(0)\n .map(() => tableHeader.createAndFill(null) as ProsemirrorNode);\n\n const rows = Array(rowsCount)\n .fill(0)\n .map((_, i) => tableRow.create(null, i === 0 ? headerCells : cells));\n\n return table.create(null, rows);\n};\n\nexport const selectLine = (type: 'row' | 'col') => (index: number) => (tr: Transaction) => {\n const table = findTable(tr.selection);\n const isRowSelection = type === 'row';\n if (table) {\n const map = TableMap.get(table.node);\n\n // Check if the index is valid\n if (index >= 0 && index < (isRowSelection ? map.height : map.width)) {\n const lastCell = map.positionAt(\n isRowSelection ? index : map.height - 1,\n isRowSelection ? map.width - 1 : index,\n table.node,\n );\n const $lastCell = tr.doc.resolve(table.start + lastCell);\n\n const createCellSelection = isRowSelection ? CellSelection.rowSelection : CellSelection.colSelection;\n\n const firstCell = map.positionAt(isRowSelection ? index : 0, isRowSelection ? 0 : index, table.node);\n const $firstCell = tr.doc.resolve(table.start + firstCell);\n return cloneTr(tr.setSelection(createCellSelection($lastCell, $firstCell) as unknown as Selection));\n }\n }\n return tr;\n};\n\nexport const getCellsInTable = (selection: Selection) => {\n const table = findTable(selection);\n if (!table) {\n return;\n }\n const map = TableMap.get(table.node);\n const cells = map.cellsInRect({\n left: 0,\n right: map.width,\n top: 0,\n bottom: map.height,\n });\n return cells.map((nodePos) => {\n const node = table.node.nodeAt(nodePos);\n const pos = nodePos + table.start;\n return { pos, start: pos + 1, node };\n });\n};\n\nexport const selectTable = (tr: Transaction) => {\n const cells = getCellsInTable(tr.selection);\n if (cells) {\n const $firstCell = tr.doc.resolve(cells[0].pos);\n const $lastCell = tr.doc.resolve(cells[cells.length - 1].pos);\n return cloneTr(tr.setSelection(new CellSelection($lastCell, $firstCell) as unknown as Selection));\n }\n return tr;\n};\n\nexport function addRowWithAlignment(tr: Transaction, { map, tableStart, table }: TableRect, row: number) {\n const rowPos = Array(row)\n .fill(0)\n .reduce((acc, _, i) => {\n return acc + table.child(i).nodeSize;\n }, tableStart);\n\n const { cell: cellType, row: rowType } = tableNodeTypes(table.type.schema);\n\n const cells = Array(map.width)\n .fill(0)\n .map((_, col) => {\n const headerCol = table.nodeAt(map.map[col]);\n return cellType.createAndFill({ alignment: headerCol?.attrs.alignment }) as ProsemirrorNode;\n });\n\n tr.insert(rowPos, rowType.create(null, cells));\n return tr;\n}\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { CellSelection, EditorView, TableMap } from '@milkdown/prose';\n\nimport { Item } from './actions';\n\nexport const getCellSelection = (view: EditorView): CellSelection => view.state.selection as unknown as CellSelection;\n\nexport const isFirstRowSelected = (selection: CellSelection) => {\n const map = TableMap.get(selection.$anchorCell.node(-1));\n const start = selection.$anchorCell.start(-1);\n const cells = map.cellsInRect({\n left: 0,\n right: map.width,\n top: 0,\n bottom: 1,\n });\n const selectedCells = map.cellsInRect(\n map.rectBetween(selection.$anchorCell.pos - start, selection.$headCell.pos - start),\n );\n\n for (let i = 0, count = cells.length; i < count; i++) {\n if (selectedCells.indexOf(cells[i]) === -1) {\n return false;\n }\n }\n return true;\n};\n\nexport const calculateItem = (actions: Record<string, Item>, view: EditorView) => {\n Object.values(actions).forEach((item) => {\n const disable = item.disable?.(view);\n if (disable) {\n item.$.classList.add('hide');\n return;\n }\n item.$.classList.remove('hide');\n });\n};\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { Ctx, themeToolCtx } from '@milkdown/core';\nimport {\n addColumnAfter,\n addColumnBefore,\n Command,\n deleteColumn,\n deleteRow,\n deleteTable,\n EditorView,\n isInTable,\n selectedRect,\n setCellAttr,\n} from '@milkdown/prose';\n\nimport { addRowWithAlignment } from '../utils';\nimport { getCellSelection, isFirstRowSelected } from './helper';\n\nexport type Item = {\n $: HTMLElement;\n command: (e: Event, view: EditorView) => Command;\n disable?: (view: EditorView) => boolean;\n};\n\nexport enum Action {\n AddColLeft,\n AddColRight,\n AddRowTop,\n AddRowBottom,\n AlignLeft,\n AlignCenter,\n AlignRight,\n Delete,\n}\n\nexport const createActions: (ctx: Ctx) => Record<Action, Item> = (ctx) => ({\n [Action.AddColLeft]: {\n $: ctx.get(themeToolCtx).slots.icon('leftArrow'),\n command: () => addColumnBefore,\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.AddColRight]: {\n $: ctx.get(themeToolCtx).slots.icon('rightArrow'),\n command: () => addColumnAfter,\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.AddRowTop]: {\n $: ctx.get(themeToolCtx).slots.icon('upArrow'),\n command: () => (state, dispatch) => {\n if (!isInTable(state)) return false;\n if (dispatch) {\n const rect = selectedRect(state);\n dispatch(addRowWithAlignment(state.tr, rect, rect.top));\n }\n return true;\n },\n disable: (view) =>\n !getCellSelection(view).isRowSelection() ||\n getCellSelection(view).$head.parent.type.name === 'table_header',\n },\n [Action.AddRowBottom]: {\n $: ctx.get(themeToolCtx).slots.icon('downArrow'),\n command: () => (state, dispatch) => {\n if (!isInTable(state)) return false;\n if (dispatch) {\n const rect = selectedRect(state);\n dispatch(addRowWithAlignment(state.tr, rect, rect.bottom));\n }\n return true;\n },\n disable: (view) => !getCellSelection(view).isRowSelection(),\n },\n [Action.AlignLeft]: {\n $: ctx.get(themeToolCtx).slots.icon('alignLeft'),\n command: () => setCellAttr('alignment', 'left'),\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.AlignCenter]: {\n $: ctx.get(themeToolCtx).slots.icon('alignCenter'),\n command: () => setCellAttr('alignment', 'center'),\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.AlignRight]: {\n $: ctx.get(themeToolCtx).slots.icon('alignRight'),\n command: () => setCellAttr('alignment', 'right'),\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.Delete]: {\n $: ctx.get(themeToolCtx).slots.icon('delete'),\n command: (_, view) => {\n const selection = getCellSelection(view);\n const isCol = selection.isColSelection();\n const isRow = selection.isRowSelection();\n if (isCol && isRow) {\n return deleteTable;\n }\n\n if (isCol) {\n return deleteColumn;\n }\n\n return deleteRow;\n },\n disable: (view) => {\n const selection = getCellSelection(view);\n if (selection.isRowSelection()) {\n if (selection.isColSelection()) {\n return false;\n }\n return isFirstRowSelected(selection);\n }\n return false;\n },\n },\n});\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { calculateNodePosition, CellSelection, EditorView } from '@milkdown/prose';\n\nexport const calculatePosition = (view: EditorView, dom: HTMLElement) => {\n const { selection } = view.state as unknown as { selection: CellSelection };\n const isCol = selection.isColSelection();\n const isRow = selection.isRowSelection();\n\n calculateNodePosition(view, dom, (selected, target, parent) => {\n const $editor = dom.parentElement;\n if (!$editor) {\n throw new Error();\n }\n let left = !isRow\n ? selected.left - parent.left + (selected.width - target.width) / 2\n : selected.left - parent.left - target.width / 2 - 8;\n const top = selected.top - parent.top - target.height - (isCol ? 14 : 0) - 14 + $editor.scrollTop;\n\n if (left < 0) {\n left = 0;\n }\n return [top, left];\n });\n};\n","/* Copyright 2021, Milkdown by Mirone. */\n\nexport enum ToolTipPos {\n Left = 'Left',\n Top = 'Top',\n Point = 'Point',\n}\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { ThemeTool } from '@milkdown/core';\n\nexport const injectStyle = ({ size, mixin, palette }: ThemeTool) => css`\n display: inline-flex;\n cursor: pointer;\n z-index: 2;\n\n justify-content: space-evenly;\n\n position: absolute;\n\n border-radius: ${size.radius};\n\n ${mixin.border?.()};\n\n ${mixin.shadow?.()};\n\n overflow: hidden;\n background: ${palette('surface')};\n\n .icon {\n position: relative;\n color: ${palette('solid', 0.87)};\n\n width: 3rem;\n line-height: 3rem;\n text-align: center;\n transition: all 0.4s ease-in-out;\n &:hover {\n background-color: ${palette('secondary', 0.12)};\n }\n &.active {\n color: ${palette('primary')};\n }\n &:not(:last-child)::after {\n content: '';\n position: absolute;\n right: 0px;\n top: 0;\n width: ${size.lineWidth};\n bottom: 0;\n background: ${palette('line')};\n }\n }\n &.hide,\n .hide {\n display: none;\n }\n`;\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { Ctx, themeToolCtx } from '@milkdown/core';\nimport { Decoration, WidgetDecorationSpec } from '@milkdown/prose';\n\nimport { CellPos, selectLine, selectTable } from '../utils';\nimport { ToolTipPos } from './constant';\n\nconst calculateClassName = (pos: ToolTipPos) => {\n switch (pos) {\n case ToolTipPos.Left: {\n return 'milkdown-cell-left';\n }\n case ToolTipPos.Top: {\n return 'milkdown-cell-top';\n }\n case ToolTipPos.Point:\n default: {\n return 'milkdown-cell-point';\n }\n }\n};\n\nexport function createWidget(ctx: Ctx, cell: CellPos, pos: ToolTipPos.Point): Decoration<WidgetDecorationSpec>;\nexport function createWidget(\n ctx: Ctx,\n cell: CellPos,\n pos: ToolTipPos.Left,\n index: number,\n): Decoration<WidgetDecorationSpec>;\nexport function createWidget(\n ctx: Ctx,\n cell: CellPos,\n pos: ToolTipPos.Top,\n index: number,\n): Decoration<WidgetDecorationSpec>;\nexport function createWidget(ctx: Ctx, cell: CellPos, pos: ToolTipPos, index = 0) {\n const widget = Decoration.widget(cell.pos + 1, (view) => {\n const div = document.createElement('div');\n div.classList.add(calculateClassName(pos));\n if (pos === ToolTipPos.Point) {\n div.appendChild(ctx.get(themeToolCtx).slots.icon('select'));\n }\n div.addEventListener('mousedown', (e) => {\n if (!view) return;\n\n e.preventDefault();\n switch (pos) {\n case ToolTipPos.Point: {\n view.dispatch(selectTable(view.state.tr));\n return;\n }\n case ToolTipPos.Left: {\n view.dispatch(selectLine('row')(index)(view.state.tr));\n return;\n }\n case ToolTipPos.Top: {\n view.dispatch(selectLine('col')(index)(view.state.tr));\n return;\n }\n }\n });\n return div;\n });\n return widget;\n}\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { Ctx } from '@milkdown/core';\nimport { CellSelection, Decoration, DecorationSet, Plugin, PluginKey } from '@milkdown/prose';\nimport { Utils } from '@milkdown/utils';\n\nimport { getCellsInColumn, getCellsInRow } from '../utils';\nimport { createActions } from './actions';\nimport { calculatePosition } from './calc-pos';\nimport { ToolTipPos } from './constant';\nimport { calculateItem } from './helper';\nimport { injectStyle } from './style';\nimport { createWidget } from './widget';\n\nexport const key = 'MILKDOWN_PLUGIN_TABLE';\n\nexport const operatorPlugin = (ctx: Ctx, utils: Utils) => {\n const items = createActions(ctx);\n const tooltip = document.createElement('div');\n const style = utils.getStyle(injectStyle);\n if (style) {\n tooltip.classList.add(style);\n }\n tooltip.classList.add('table-tooltip', 'hide');\n\n return new Plugin({\n key: new PluginKey('MILKDOWN_TABLE_OP'),\n props: {\n decorations: (state) => {\n const decorations: Decoration[] = [];\n const leftCells = getCellsInColumn(0)(state.selection);\n if (!leftCells) return null;\n const topCells = getCellsInRow(0)(state.selection);\n if (!topCells) return null;\n\n const [topLeft] = leftCells;\n\n decorations.push(createWidget(ctx, topLeft, ToolTipPos.Point));\n leftCells.forEach((cell, i) => {\n decorations.push(createWidget(ctx, cell, ToolTipPos.Left, i));\n });\n topCells.forEach((cell, i) => {\n decorations.push(createWidget(ctx, cell, ToolTipPos.Top, i));\n });\n\n return DecorationSet.create(state.doc, decorations);\n },\n },\n view: (editorView) => {\n Object.values(items).forEach(({ $ }) => tooltip.appendChild($));\n editorView.dom.parentNode?.appendChild(tooltip);\n\n const listener = (e: Event) => {\n if (!editorView) return;\n e.stopPropagation();\n e.preventDefault();\n Object.values(items).forEach(({ $, command }) => {\n if ($.contains(e.target as Element)) {\n command(e, editorView)(editorView.state, editorView.dispatch, editorView);\n }\n });\n };\n\n const hide = () => {\n tooltip.classList.add('hide');\n };\n\n tooltip.addEventListener('mousedown', listener);\n\n return {\n update: (view, prevState) => {\n const state = view.state;\n\n if (prevState?.doc.eq(state.doc) && prevState.selection.eq(state.selection)) return;\n\n const isCellSelection = state.selection instanceof CellSelection;\n\n if (!isCellSelection || !view.editable) {\n hide();\n return;\n }\n\n calculateItem(items, view);\n if (Object.values(items).every(({ $ }) => $.classList.contains('hide'))) {\n hide();\n return;\n }\n tooltip.classList.remove('hide');\n calculatePosition(view, tooltip);\n },\n destroy: () => {\n tooltip.removeEventListener('mousedown', listener);\n tooltip.remove();\n },\n };\n },\n });\n};\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { tableNodes as tableNodesSpecCreator } from '@milkdown/prose';\n\nexport const schema = tableNodesSpecCreator({\n tableGroup: 'block',\n cellContent: 'paragraph',\n cellAttributes: {\n alignment: {\n default: 'left',\n getFromDOM: (dom) => (dom as HTMLElement).style.textAlign || 'left',\n setDOMAttr: (value, attrs) => {\n attrs.style = `text-align: ${value || 'left'}`;\n },\n },\n },\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css, injectGlobal } from '@emotion/css';\nimport { Utils } from '@milkdown/utils';\n\nconst proseTableStyle = css`\n /* copy from https://github.com/ProseMirror/prosemirror-tables/blob/master/style/tables.css */\n .ProseMirror .tableWrapper {\n overflow-x: auto;\n }\n .ProseMirror table {\n border-collapse: collapse;\n table-layout: fixed;\n width: 100%;\n overflow: hidden;\n }\n .ProseMirror td,\n .ProseMirror th {\n vertical-align: top;\n box-sizing: border-box;\n position: relative;\n }\n .ProseMirror .column-resize-handle {\n position: absolute;\n right: -2px;\n top: 0;\n bottom: 0;\n width: 4px;\n z-index: 20;\n background-color: #adf;\n pointer-events: none;\n }\n .ProseMirror.resize-cursor {\n cursor: ew-resize;\n cursor: col-resize;\n }\n /* Give selected cells a blue overlay */\n .ProseMirror .selectedCell:after {\n z-index: 2;\n position: absolute;\n content: '';\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(200, 200, 255, 0.4);\n pointer-events: none;\n }\n`;\n\nexport const injectStyle = (utils: Utils) => {\n const css = injectGlobal;\n return utils.getStyle(({ size, palette, mixin }) => {\n css`\n ${proseTableStyle}\n\n .tableWrapper {\n margin: 0 !important;\n\n ${mixin.scrollbar?.('x')};\n\n width: 100%;\n\n table {\n width: calc(100% - 2rem) !important;\n border-radius: ${size.radius};\n box-sizing: border-box;\n margin: 1rem 0 1rem 1rem !important;\n overflow: auto !important;\n * {\n margin: 0 !important;\n box-sizing: border-box;\n font-size: 1rem;\n }\n tr {\n ${mixin.border?.('bottom')};\n }\n\n th {\n background: ${palette('background', 0.5)};\n font-weight: 400;\n }\n\n th,\n td {\n min-width: 100px;\n ${mixin.border?.()};\n text-align: left;\n position: relative;\n line-height: 3rem;\n box-sizing: border-box;\n height: 3rem;\n }\n\n .selectedCell {\n &::after {\n background: ${palette('secondary', 0.38)};\n }\n & ::selection {\n background: transparent;\n }\n }\n\n .column-resize-handle {\n background: ${palette('primary')};\n width: ${size.lineWidth};\n }\n\n th,\n td {\n padding: 0 1rem;\n p {\n line-height: unset !important;\n }\n }\n\n .milkdown-cell-left,\n .milkdown-cell-point,\n .milkdown-cell-top {\n position: absolute;\n\n &::after {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: block;\n transition: all 0.2s ease-in-out;\n background: ${palette('secondary', 0.12)};\n content: '';\n }\n &:hover::after {\n background: ${palette('secondary', 0.38)};\n }\n }\n\n .milkdown-cell-left {\n left: calc(-6px - 0.5rem);\n top: 0;\n bottom: 0;\n width: 0.5rem;\n }\n\n .milkdown-cell-top {\n left: 0;\n right: 0;\n top: calc(-6px - 0.5rem);\n height: 0.5rem;\n }\n\n .milkdown-cell-point {\n left: calc(-2px - 1rem);\n top: calc(-2px - 1rem);\n width: 1rem;\n height: 1rem;\n\n .icon {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n }\n }\n }\n `;\n });\n};\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createCmd, createCmdKey, MarkdownNode, schemaCtx } from '@milkdown/core';\nimport { columnResizing, goToNextCell, InputRule, Selection, tableEditing, TextSelection } from '@milkdown/prose';\nimport { createPlugin, createShortcut } from '@milkdown/utils';\n\nimport { exitTable } from '../command';\nimport { operatorPlugin } from '../operator-plugin';\nimport { createTable } from '../utils';\nimport { schema } from './schema';\nimport { injectStyle } from './style';\n\nexport const SupportedKeys = {\n NextCell: 'NextCell',\n PrevCell: 'PrevCell',\n ExitTable: 'ExitTable',\n} as const;\nexport type SupportedKeys = typeof SupportedKeys;\n\ntype Keys = keyof SupportedKeys;\n\nexport const PrevCell = createCmdKey();\nexport const NextCell = createCmdKey();\nexport const BreakTable = createCmdKey();\nexport const InsertTable = createCmdKey();\n\nexport const table = createPlugin<Keys, Record<string, unknown>, keyof typeof schema>((utils) => {\n injectStyle(utils);\n return {\n schema: () => ({\n node: {\n table: {\n ...schema.table,\n parseMarkdown: {\n match: (node) => node.type === 'table',\n runner: (state, node, type) => {\n const align = node.align as (string | null)[];\n const children = (node.children as MarkdownNode[]).map((x, i) => ({\n ...x,\n align,\n isHeader: i === 0,\n }));\n state.openNode(type);\n state.next(children);\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'table',\n runner: (state, node) => {\n const firstLine = node.content.firstChild?.content;\n if (!firstLine) return;\n\n const align: (string | null)[] = [];\n firstLine.forEach((cell) => {\n align.push(cell.attrs.alignment);\n });\n state.openNode('table', undefined, { align });\n state.next(node.content);\n state.closeNode();\n },\n },\n },\n table_row: {\n ...schema.table_row,\n parseMarkdown: {\n match: (node) => node.type === 'tableRow',\n runner: (state, node, type) => {\n const align = node.align as (string | null)[];\n const children = (node.children as MarkdownNode[]).map((x, i) => ({\n ...x,\n align: align[i],\n isHeader: node.isHeader,\n }));\n state.openNode(type);\n state.next(children);\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'table_row',\n runner: (state, node) => {\n state.openNode('tableRow');\n state.next(node.content);\n state.closeNode();\n },\n },\n },\n table_cell: {\n ...schema.table_cell,\n parseMarkdown: {\n match: (node) => node.type === 'tableCell' && !node.isHeader,\n runner: (state, node, type) => {\n const align = node.align as string;\n state\n .openNode(type, { alignment: align })\n .openNode(state.schema.nodes.paragraph)\n .next(node.children)\n .closeNode()\n .closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'table_cell',\n runner: (state, node) => {\n state.openNode('tableCell').next(node.content).closeNode();\n },\n },\n },\n table_header: {\n ...schema.table_header,\n parseMarkdown: {\n match: (node) => node.type === 'tableCell' && !!node.isHeader,\n runner: (state, node, type) => {\n const align = node.align as string;\n state.openNode(type, { alignment: align });\n state.openNode(state.schema.nodes.paragraph);\n state.next(node.children);\n state.closeNode();\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'table_header',\n runner: (state, node) => {\n state.openNode('tableCell');\n state.next(node.content);\n state.closeNode();\n },\n },\n },\n },\n }),\n inputRules: (nodeType, ctx) => [\n new InputRule(/^\\|\\|\\s$/, (state, _match, start, end) => {\n const $start = state.doc.resolve(start);\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), nodeType.table))\n return null;\n\n const tableNode = createTable(ctx.get(schemaCtx));\n const tr = state.tr.replaceRangeWith(start, end, tableNode).scrollIntoView();\n return tr.setSelection(TextSelection.create(tr.doc, start + 3));\n }),\n ],\n commands: (_, ctx) => [\n createCmd(PrevCell, () => goToNextCell(-1)),\n createCmd(NextCell, () => goToNextCell(1)),\n createCmd(BreakTable, () => exitTable(ctx.get(schemaCtx).nodes.paragraph)),\n createCmd(InsertTable, () => (state, dispatch) => {\n const { selection, tr } = state;\n const { from } = selection;\n const table = createTable(ctx.get(schemaCtx));\n const _tr = tr.replaceSelectionWith(table);\n const sel = Selection.findFrom(_tr.doc.resolve(from), 1, true);\n if (sel) {\n dispatch?.(_tr.setSelection(sel));\n }\n return true;\n }),\n ],\n shortcuts: {\n [SupportedKeys.NextCell]: createShortcut(NextCell, 'Mod-]'),\n [SupportedKeys.PrevCell]: createShortcut(PrevCell, 'Mod-['),\n [SupportedKeys.ExitTable]: createShortcut(BreakTable, 'Mod-Enter'),\n },\n prosePlugins: (_, ctx) => {\n return [operatorPlugin(ctx, utils), columnResizing({}), tableEditing()];\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { SupportedKeys as CommonmarkKeys } from '@milkdown/preset-commonmark';\n\nimport { SupportedKeys as TableKeys } from './table';\n\nexport const SupportedKeys = {\n ...CommonmarkKeys,\n ...TableKeys,\n StrikeThrough: 'StrikeThrough',\n TaskList: 'TaskList',\n} as const;\nexport type SupportedKeys = typeof SupportedKeys;\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { markRule, toggleMark } from '@milkdown/prose';\nimport { createMark, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from './supported-keys';\n\ntype Keys = SupportedKeys['StrikeThrough'];\n\nexport const ToggleStrikeThrough = createCmdKey();\n\nexport const strikeThrough = createMark<Keys>((utils) => {\n const id = 'strike_through';\n const style = utils.getStyle(\n (themeTool) =>\n css`\n text-decoration-color: ${themeTool.palette('secondary')};\n `,\n );\n\n return {\n id,\n schema: () => ({\n parseDOM: [\n { tag: 'del' },\n { style: 'text-decoration', getAttrs: (value) => (value === 'line-through') as false },\n ],\n toDOM: (mark) => ['del', { class: utils.getClassName(mark.attrs, 'strike-through', style) }],\n parseMarkdown: {\n match: (node) => node.type === 'delete',\n runner: (state, node, markType) => {\n state.openMark(markType);\n state.next(node.children);\n state.closeMark(markType);\n },\n },\n toMarkdown: {\n match: (mark) => mark.type.name === id,\n runner: (state, mark) => {\n state.withMark(mark, 'delete');\n },\n },\n }),\n inputRules: (markType) => [\n markRule(/(?:~~)([^~]+)(?:~~)$/, markType),\n markRule(/(?:^|[^~])(~([^~]+)~)$/, markType),\n ],\n commands: (markType) => [createCmd(ToggleStrikeThrough, () => toggleMark(markType))],\n shortcuts: {\n [SupportedKeys.StrikeThrough]: createShortcut(ToggleStrikeThrough, 'Mod-Alt-x'),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey, themeToolCtx } from '@milkdown/core';\nimport type { Icon } from '@milkdown/design-system';\nimport { liftListItem, sinkListItem, splitListItem, wrapIn, wrappingInputRule } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from './supported-keys';\n\ntype Keys = Extract<keyof SupportedKeys, 'SinkListItem' | 'LiftListItem' | 'NextListItem' | 'TaskList'>;\n\nexport const SplitTaskListItem = createCmdKey();\nexport const SinkTaskListItem = createCmdKey();\nexport const LiftTaskListItem = createCmdKey();\nexport const TurnIntoTaskList = createCmdKey();\n\nexport const taskListItem = createNode<Keys>((utils) => {\n const id = 'task_list_item';\n const style = utils.getStyle(\n ({ palette, size }) =>\n css`\n list-style-type: none;\n position: relative;\n\n & > div {\n overflow: hidden;\n padding: 0 2px;\n }\n\n label {\n position: absolute;\n top: 0;\n left: -2rem;\n display: inline-block;\n width: 1.5rem;\n height: 1.5rem;\n margin: 0.5rem 0;\n input {\n visibility: hidden;\n }\n }\n label:before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n border-radius: ${size.radius};\n }\n label:hover:before {\n background: ${palette('background')};\n }\n &[data-checked='true'] {\n label {\n color: ${palette('primary')};\n }\n }\n &[data-checked='false'] {\n label {\n color: ${palette('solid', 0.87)};\n }\n }\n .paragraph {\n margin: 0.5rem 0;\n }\n `,\n );\n\n return {\n id,\n schema: () => ({\n group: 'listItem',\n content: 'paragraph block*',\n defining: true,\n attrs: {\n checked: {\n default: false,\n },\n },\n parseDOM: [\n {\n tag: 'li[data-type=\"task-item\"]',\n getAttrs: (dom) => {\n if (!(dom instanceof HTMLElement)) {\n throw new Error();\n }\n return { checked: dom.dataset.checked === 'true' };\n },\n priority: 60,\n },\n ],\n toDOM: (node) => [\n 'li',\n {\n 'data-type': 'task-item',\n 'data-checked': node.attrs.checked ? 'true' : 'false',\n class: utils.getClassName(node.attrs, 'task-list-item', style),\n },\n 0,\n ],\n parseMarkdown: {\n match: ({ type, checked }) => {\n return type === 'listItem' && checked !== null;\n },\n runner: (state, node, type) => {\n state.openNode(type, { checked: node.checked as boolean });\n state.next(node.children);\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.openNode('listItem', undefined, { checked: node.attrs.checked });\n state.next(node.content);\n state.closeNode();\n },\n },\n }),\n inputRules: (nodeType) => [\n wrappingInputRule(/^\\s*(\\[([ |x])\\])\\s$/, nodeType, (match) => ({\n checked: match[match.length - 1] === 'x',\n })),\n ],\n commands: (nodeType) => [\n createCmd(SplitTaskListItem, () => splitListItem(nodeType)),\n createCmd(SinkTaskListItem, () => sinkListItem(nodeType)),\n createCmd(LiftTaskListItem, () => liftListItem(nodeType)),\n createCmd(TurnIntoTaskList, () => wrapIn(nodeType)),\n ],\n shortcuts: {\n [SupportedKeys.NextListItem]: createShortcut(SplitTaskListItem, 'Enter'),\n [SupportedKeys.SinkListItem]: createShortcut(SinkTaskListItem, 'Mod-]'),\n [SupportedKeys.LiftListItem]: createShortcut(LiftTaskListItem, 'Mod-['),\n [SupportedKeys.TaskList]: createShortcut(TurnIntoTaskList, 'Mod-Alt-9'),\n },\n view: (ctx) => (node, view, getPos) => {\n const createIcon = ctx.get(themeToolCtx).slots.icon;\n\n const listItem = document.createElement('li');\n const checkboxWrapper = document.createElement('label');\n const checkboxStyler = document.createElement('span');\n const checkbox = document.createElement('input');\n const content = document.createElement('div');\n\n let icon = createIcon('unchecked');\n checkboxWrapper.appendChild(icon);\n const setIcon = (name: Icon) => {\n const nextIcon = createIcon(name);\n checkboxWrapper.replaceChild(nextIcon, icon);\n icon = nextIcon;\n };\n\n checkboxWrapper.contentEditable = 'false';\n checkbox.type = 'checkbox';\n const onChange = (event: Event) => {\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) return;\n\n if (!view.editable) {\n checkbox.checked = !checkbox.checked;\n\n return;\n }\n\n const { tr } = view.state;\n\n view.dispatch(\n tr.setNodeMarkup(getPos(), undefined, {\n checked: target.checked,\n }),\n );\n };\n checkbox.addEventListener('change', onChange);\n\n listItem.dataset.checked = node.attrs.checked;\n if (node.attrs.checked) {\n checkbox.setAttribute('checked', 'checked');\n }\n\n checkboxWrapper.append(checkbox, checkboxStyler);\n listItem.append(checkboxWrapper, content);\n\n const attributes = {\n 'data-type': 'task-item',\n 'data-checked': node.attrs.checked ? 'true' : 'false',\n class: utils.getClassName(node.attrs, 'task-list-item', style),\n };\n Object.entries(attributes).forEach(([key, value]) => {\n listItem.setAttribute(key, value);\n });\n setIcon(node.attrs.checked ? 'checked' : 'unchecked');\n\n return {\n dom: listItem,\n contentDOM: content,\n update: (updatedNode) => {\n if (updatedNode.type.name !== id) return false;\n\n listItem.dataset.checked = updatedNode.attrs.checked;\n if (updatedNode.attrs.checked) {\n checkbox.setAttribute('checked', 'checked');\n } else {\n checkbox.removeAttribute('checked');\n }\n setIcon(updatedNode.attrs.checked ? 'checked' : 'unchecked');\n\n return true;\n },\n destroy: () => {\n checkbox.removeEventListener('change', onChange);\n },\n };\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { commands as commonmarkCommands, commonmark } from '@milkdown/preset-commonmark';\nimport { $remark, AtomList } from '@milkdown/utils';\nimport remarkGFM from 'remark-gfm';\n\nimport { urlPlugin } from './auto-link';\nimport { strikeThrough, ToggleStrikeThrough } from './strike-through';\nimport { table } from './table';\nimport {\n LiftTaskListItem,\n SinkTaskListItem,\n SplitTaskListItem,\n taskListItem,\n TurnIntoTaskList,\n} from './task-list-item';\n\nexport * from './strike-through';\nexport { SupportedKeys } from './supported-keys';\nexport {\n BreakTable,\n // command\n createTable,\n InsertTable,\n NextCell,\n PrevCell,\n // gather\n table,\n} from './table';\nexport * from './task-list-item';\nexport {\n blockquote,\n bulletList,\n codeFence,\n codeInline,\n commonmark,\n // gather\n commonmarkNodes,\n commonmarkPlugins,\n // node\n doc,\n em,\n hardbreak,\n heading,\n hr,\n image,\n // command\n InsertHardbreak,\n InsertHr,\n InsertImage,\n LiftListItem,\n link,\n listItem,\n ModifyImage,\n ModifyLink,\n orderedList,\n paragraph,\n SinkListItem,\n SplitListItem,\n strong,\n text,\n ToggleBold,\n ToggleInlineCode,\n ToggleItalic,\n ToggleLink,\n TurnIntoCodeFence,\n TurnIntoHeading,\n TurnIntoText,\n WrapInBlockquote,\n WrapInBulletList,\n WrapInOrderedList,\n} from '@milkdown/preset-commonmark';\n\nexport const gfm = AtomList.create([\n ...commonmark,\n $remark(() => remarkGFM),\n table(),\n urlPlugin,\n strikeThrough(),\n taskListItem(),\n]);\n\nexport const commands = {\n ...commonmarkCommands,\n ToggleStrikeThrough,\n TurnIntoTaskList,\n SinkTaskListItem,\n LiftTaskListItem,\n SplitTaskListItem,\n} as const;\nexport type Commands = typeof commands;\n"],"names":["injectStyle","tableNodesSpecCreator","SupportedKeys","CommonmarkKeys","TableKeys","commonmarkCommands"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/auto-link.ts","../src/table/command.ts","../src/table/utils.ts","../src/table/operator-plugin/helper.ts","../src/table/operator-plugin/actions.ts","../src/table/operator-plugin/calc-pos.ts","../src/table/operator-plugin/constant.ts","../src/table/operator-plugin/style.ts","../src/table/operator-plugin/widget.ts","../src/table/operator-plugin/index.ts","../src/table/nodes/schema.ts","../src/table/nodes/style.ts","../src/table/nodes/index.ts","../src/supported-keys.ts","../src/strike-through.ts","../src/task-list-item.ts","../src/index.ts"],"sourcesContent":["/* Copyright 2021, Milkdown by Mirone. */\nimport { InputRule, inputRules } from '@milkdown/prose';\nimport { $prose } from '@milkdown/utils';\n\nconst urlRegex = /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\n\nconst proseUrlPlugin = () =>\n inputRules({\n rules: [\n new InputRule(urlRegex, (state, match, start, end) => {\n const { schema } = state;\n const [text] = match;\n if (!text) return null;\n\n return state.tr\n .replaceWith(start, end, schema.text(text))\n .addMark(start, text.length + start, schema.marks.link.create({ href: text }));\n }),\n ],\n });\n\nexport const urlPlugin = $prose(() => proseUrlPlugin());\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { Command, isInTable, Node, NodeType, Selection } from '@milkdown/prose';\n\nexport const exitTable =\n (node: NodeType): Command =>\n (state, dispatch) => {\n if (!isInTable(state)) {\n return false;\n }\n const { $head } = state.selection;\n const pos = $head.after();\n const tr = state.tr.replaceWith(pos, pos, node.createAndFill() as Node);\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch?.(tr.scrollIntoView());\n return true;\n };\n","/* Copyright 2021, Milkdown by Mirone. */\nimport {\n CellSelection,\n cloneTr,\n findParentNode,\n Node as ProsemirrorNode,\n Schema,\n Selection,\n TableMap,\n tableNodeTypes,\n TableRect,\n Transaction,\n} from '@milkdown/prose';\n\nexport type CellPos = {\n pos: number;\n start: number;\n node: ProsemirrorNode;\n};\n\nexport const findTable = (selection: Selection) =>\n findParentNode((node) => node.type.spec.tableRole === 'table')(selection);\n\nexport const getCellsInColumn =\n (columnIndex: number) =>\n (selection: Selection): CellPos[] | undefined => {\n const table = findTable(selection);\n if (!table) return undefined;\n const map = TableMap.get(table.node);\n if (columnIndex < 0 || columnIndex >= map.width) {\n return undefined;\n }\n\n return map.cellsInRect({ left: columnIndex, right: columnIndex + 1, top: 0, bottom: map.height }).map((pos) => {\n const node = table.node.nodeAt(pos);\n if (!node) throw new Error();\n const start = pos + table.start;\n return {\n pos: start,\n start: start + 1,\n node,\n };\n });\n };\n\nexport const getCellsInRow =\n (rowIndex: number) =>\n (selection: Selection): CellPos[] | undefined => {\n const table = findTable(selection);\n if (!table) return undefined;\n const map = TableMap.get(table.node);\n if (rowIndex < 0 || rowIndex >= map.height) {\n return undefined;\n }\n\n return map.cellsInRect({ left: 0, right: map.width, top: rowIndex, bottom: rowIndex + 1 }).map((pos) => {\n const node = table.node.nodeAt(pos);\n if (!node) throw new Error();\n const start = pos + table.start;\n return {\n pos: start,\n start: start + 1,\n node,\n };\n });\n };\n\nexport const createTable = (schema: Schema, rowsCount = 3, colsCount = 3) => {\n const { cell: tableCell, header_cell: tableHeader, row: tableRow, table } = tableNodeTypes(schema);\n\n const cells = Array(colsCount)\n .fill(0)\n .map(() => tableCell.createAndFill(null) as ProsemirrorNode);\n\n const headerCells = Array(colsCount)\n .fill(0)\n .map(() => tableHeader.createAndFill(null) as ProsemirrorNode);\n\n const rows = Array(rowsCount)\n .fill(0)\n .map((_, i) => tableRow.create(null, i === 0 ? headerCells : cells));\n\n return table.create(null, rows);\n};\n\nexport const selectLine = (type: 'row' | 'col') => (index: number) => (tr: Transaction) => {\n const table = findTable(tr.selection);\n const isRowSelection = type === 'row';\n if (table) {\n const map = TableMap.get(table.node);\n\n // Check if the index is valid\n if (index >= 0 && index < (isRowSelection ? map.height : map.width)) {\n const lastCell = map.positionAt(\n isRowSelection ? index : map.height - 1,\n isRowSelection ? map.width - 1 : index,\n table.node,\n );\n const $lastCell = tr.doc.resolve(table.start + lastCell);\n\n const createCellSelection = isRowSelection ? CellSelection.rowSelection : CellSelection.colSelection;\n\n const firstCell = map.positionAt(isRowSelection ? index : 0, isRowSelection ? 0 : index, table.node);\n const $firstCell = tr.doc.resolve(table.start + firstCell);\n return cloneTr(tr.setSelection(createCellSelection($lastCell, $firstCell) as unknown as Selection));\n }\n }\n return tr;\n};\n\nexport const getCellsInTable = (selection: Selection) => {\n const table = findTable(selection);\n if (!table) {\n return;\n }\n const map = TableMap.get(table.node);\n const cells = map.cellsInRect({\n left: 0,\n right: map.width,\n top: 0,\n bottom: map.height,\n });\n return cells.map((nodePos) => {\n const node = table.node.nodeAt(nodePos);\n const pos = nodePos + table.start;\n return { pos, start: pos + 1, node };\n });\n};\n\nexport const selectTable = (tr: Transaction) => {\n const cells = getCellsInTable(tr.selection);\n if (cells) {\n const $firstCell = tr.doc.resolve(cells[0].pos);\n const $lastCell = tr.doc.resolve(cells[cells.length - 1].pos);\n return cloneTr(tr.setSelection(new CellSelection($lastCell, $firstCell) as unknown as Selection));\n }\n return tr;\n};\n\nexport function addRowWithAlignment(tr: Transaction, { map, tableStart, table }: TableRect, row: number) {\n const rowPos = Array(row)\n .fill(0)\n .reduce((acc, _, i) => {\n return acc + table.child(i).nodeSize;\n }, tableStart);\n\n const { cell: cellType, row: rowType } = tableNodeTypes(table.type.schema);\n\n const cells = Array(map.width)\n .fill(0)\n .map((_, col) => {\n const headerCol = table.nodeAt(map.map[col]);\n return cellType.createAndFill({ alignment: headerCol?.attrs.alignment }) as ProsemirrorNode;\n });\n\n tr.insert(rowPos, rowType.create(null, cells));\n return tr;\n}\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { CellSelection, EditorView, TableMap } from '@milkdown/prose';\n\nimport { Item } from './actions';\n\nexport const getCellSelection = (view: EditorView): CellSelection => view.state.selection as unknown as CellSelection;\n\nexport const isFirstRowSelected = (selection: CellSelection) => {\n const map = TableMap.get(selection.$anchorCell.node(-1));\n const start = selection.$anchorCell.start(-1);\n const cells = map.cellsInRect({\n left: 0,\n right: map.width,\n top: 0,\n bottom: 1,\n });\n const selectedCells = map.cellsInRect(\n map.rectBetween(selection.$anchorCell.pos - start, selection.$headCell.pos - start),\n );\n\n for (let i = 0, count = cells.length; i < count; i++) {\n if (selectedCells.indexOf(cells[i]) === -1) {\n return false;\n }\n }\n return true;\n};\n\nexport const calculateItem = (actions: Record<string, Item>, view: EditorView) => {\n Object.values(actions).forEach((item) => {\n const disable = item.disable?.(view);\n if (disable) {\n item.$.classList.add('hide');\n return;\n }\n item.$.classList.remove('hide');\n });\n};\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { Ctx, themeToolCtx } from '@milkdown/core';\nimport {\n addColumnAfter,\n addColumnBefore,\n Command,\n deleteColumn,\n deleteRow,\n deleteTable,\n EditorView,\n isInTable,\n selectedRect,\n setCellAttr,\n} from '@milkdown/prose';\n\nimport { addRowWithAlignment } from '../utils';\nimport { getCellSelection, isFirstRowSelected } from './helper';\n\nexport type Item = {\n $: HTMLElement;\n command: (e: Event, view: EditorView) => Command;\n disable?: (view: EditorView) => boolean;\n};\n\nexport enum Action {\n AddColLeft,\n AddColRight,\n AddRowTop,\n AddRowBottom,\n AlignLeft,\n AlignCenter,\n AlignRight,\n Delete,\n}\n\nexport const createActions: (ctx: Ctx) => Record<Action, Item> = (ctx) => ({\n [Action.AddColLeft]: {\n $: ctx.get(themeToolCtx).slots.icon('leftArrow'),\n command: () => addColumnBefore,\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.AddColRight]: {\n $: ctx.get(themeToolCtx).slots.icon('rightArrow'),\n command: () => addColumnAfter,\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.AddRowTop]: {\n $: ctx.get(themeToolCtx).slots.icon('upArrow'),\n command: () => (state, dispatch) => {\n if (!isInTable(state)) return false;\n if (dispatch) {\n const rect = selectedRect(state);\n dispatch(addRowWithAlignment(state.tr, rect, rect.top));\n }\n return true;\n },\n disable: (view) =>\n !getCellSelection(view).isRowSelection() ||\n getCellSelection(view).$head.parent.type.name === 'table_header',\n },\n [Action.AddRowBottom]: {\n $: ctx.get(themeToolCtx).slots.icon('downArrow'),\n command: () => (state, dispatch) => {\n if (!isInTable(state)) return false;\n if (dispatch) {\n const rect = selectedRect(state);\n dispatch(addRowWithAlignment(state.tr, rect, rect.bottom));\n }\n return true;\n },\n disable: (view) => !getCellSelection(view).isRowSelection(),\n },\n [Action.AlignLeft]: {\n $: ctx.get(themeToolCtx).slots.icon('alignLeft'),\n command: () => setCellAttr('alignment', 'left'),\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.AlignCenter]: {\n $: ctx.get(themeToolCtx).slots.icon('alignCenter'),\n command: () => setCellAttr('alignment', 'center'),\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.AlignRight]: {\n $: ctx.get(themeToolCtx).slots.icon('alignRight'),\n command: () => setCellAttr('alignment', 'right'),\n disable: (view) => !getCellSelection(view).isColSelection(),\n },\n [Action.Delete]: {\n $: ctx.get(themeToolCtx).slots.icon('delete'),\n command: (_, view) => {\n const selection = getCellSelection(view);\n const isCol = selection.isColSelection();\n const isRow = selection.isRowSelection();\n if (isCol && isRow) {\n return deleteTable;\n }\n\n if (isCol) {\n return deleteColumn;\n }\n\n return deleteRow;\n },\n disable: (view) => {\n const selection = getCellSelection(view);\n if (selection.isRowSelection()) {\n if (selection.isColSelection()) {\n return false;\n }\n return isFirstRowSelected(selection);\n }\n return false;\n },\n },\n});\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { calculateNodePosition, CellSelection, EditorView } from '@milkdown/prose';\n\nexport const calculatePosition = (view: EditorView, dom: HTMLElement) => {\n const { selection } = view.state as unknown as { selection: CellSelection };\n const isCol = selection.isColSelection();\n const isRow = selection.isRowSelection();\n\n calculateNodePosition(view, dom, (selected, target, parent) => {\n const $editor = dom.parentElement;\n if (!$editor) {\n throw new Error();\n }\n let left = !isRow\n ? selected.left - parent.left + (selected.width - target.width) / 2\n : selected.left - parent.left - target.width / 2 - 8;\n const top = selected.top - parent.top - target.height - (isCol ? 14 : 0) - 14 + $editor.scrollTop;\n\n if (left < 0) {\n left = 0;\n }\n return [top, left];\n });\n};\n","/* Copyright 2021, Milkdown by Mirone. */\n\nexport enum ToolTipPos {\n Left = 'Left',\n Top = 'Top',\n Point = 'Point',\n}\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { Emotion, ThemeTool } from '@milkdown/core';\n\nexport const injectStyle = ({ size, mixin, palette }: ThemeTool, { css }: Emotion) => css`\n display: inline-flex;\n cursor: pointer;\n z-index: 2;\n\n justify-content: space-evenly;\n\n position: absolute;\n\n border-radius: ${size.radius};\n\n ${mixin.border?.()};\n\n ${mixin.shadow?.()};\n\n overflow: hidden;\n background: ${palette('surface')};\n\n .icon {\n position: relative;\n color: ${palette('solid', 0.87)};\n\n width: 3rem;\n line-height: 3rem;\n text-align: center;\n transition: all 0.4s ease-in-out;\n &:hover {\n background-color: ${palette('secondary', 0.12)};\n }\n &.active {\n color: ${palette('primary')};\n }\n &:not(:last-child)::after {\n content: '';\n position: absolute;\n right: 0px;\n top: 0;\n width: ${size.lineWidth};\n bottom: 0;\n background: ${palette('line')};\n }\n }\n &.hide,\n .hide {\n display: none;\n }\n`;\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { Ctx, themeToolCtx } from '@milkdown/core';\nimport { Decoration, WidgetDecorationSpec } from '@milkdown/prose';\n\nimport { CellPos, selectLine, selectTable } from '../utils';\nimport { ToolTipPos } from './constant';\n\nconst calculateClassName = (pos: ToolTipPos) => {\n switch (pos) {\n case ToolTipPos.Left: {\n return 'milkdown-cell-left';\n }\n case ToolTipPos.Top: {\n return 'milkdown-cell-top';\n }\n case ToolTipPos.Point:\n default: {\n return 'milkdown-cell-point';\n }\n }\n};\n\nexport function createWidget(ctx: Ctx, cell: CellPos, pos: ToolTipPos.Point): Decoration<WidgetDecorationSpec>;\nexport function createWidget(\n ctx: Ctx,\n cell: CellPos,\n pos: ToolTipPos.Left,\n index: number,\n): Decoration<WidgetDecorationSpec>;\nexport function createWidget(\n ctx: Ctx,\n cell: CellPos,\n pos: ToolTipPos.Top,\n index: number,\n): Decoration<WidgetDecorationSpec>;\nexport function createWidget(ctx: Ctx, cell: CellPos, pos: ToolTipPos, index = 0) {\n const widget = Decoration.widget(cell.pos + 1, (view) => {\n const div = document.createElement('div');\n div.classList.add(calculateClassName(pos));\n if (pos === ToolTipPos.Point) {\n div.appendChild(ctx.get(themeToolCtx).slots.icon('select'));\n }\n div.addEventListener('mousedown', (e) => {\n if (!view) return;\n\n e.preventDefault();\n switch (pos) {\n case ToolTipPos.Point: {\n view.dispatch(selectTable(view.state.tr));\n return;\n }\n case ToolTipPos.Left: {\n view.dispatch(selectLine('row')(index)(view.state.tr));\n return;\n }\n case ToolTipPos.Top: {\n view.dispatch(selectLine('col')(index)(view.state.tr));\n return;\n }\n }\n });\n return div;\n });\n return widget;\n}\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { Ctx } from '@milkdown/core';\nimport { CellSelection, Decoration, DecorationSet, Plugin, PluginKey } from '@milkdown/prose';\nimport { Utils } from '@milkdown/utils';\n\nimport { getCellsInColumn, getCellsInRow } from '../utils';\nimport { createActions } from './actions';\nimport { calculatePosition } from './calc-pos';\nimport { ToolTipPos } from './constant';\nimport { calculateItem } from './helper';\nimport { injectStyle } from './style';\nimport { createWidget } from './widget';\n\nexport const key = 'MILKDOWN_PLUGIN_TABLE';\n\nexport const operatorPlugin = (ctx: Ctx, utils: Utils) => {\n const items = createActions(ctx);\n const tooltip = document.createElement('div');\n const style = utils.getStyle(injectStyle);\n if (style) {\n tooltip.classList.add(style);\n }\n tooltip.classList.add('table-tooltip', 'hide');\n\n return new Plugin({\n key: new PluginKey('MILKDOWN_TABLE_OP'),\n props: {\n decorations: (state) => {\n const decorations: Decoration[] = [];\n const leftCells = getCellsInColumn(0)(state.selection);\n if (!leftCells) return null;\n const topCells = getCellsInRow(0)(state.selection);\n if (!topCells) return null;\n\n const [topLeft] = leftCells;\n\n decorations.push(createWidget(ctx, topLeft, ToolTipPos.Point));\n leftCells.forEach((cell, i) => {\n decorations.push(createWidget(ctx, cell, ToolTipPos.Left, i));\n });\n topCells.forEach((cell, i) => {\n decorations.push(createWidget(ctx, cell, ToolTipPos.Top, i));\n });\n\n return DecorationSet.create(state.doc, decorations);\n },\n },\n view: (editorView) => {\n Object.values(items).forEach(({ $ }) => tooltip.appendChild($));\n editorView.dom.parentNode?.appendChild(tooltip);\n\n const listener = (e: Event) => {\n if (!editorView) return;\n e.stopPropagation();\n e.preventDefault();\n Object.values(items).forEach(({ $, command }) => {\n if ($.contains(e.target as Element)) {\n command(e, editorView)(editorView.state, editorView.dispatch, editorView);\n }\n });\n };\n\n const hide = () => {\n tooltip.classList.add('hide');\n };\n\n tooltip.addEventListener('mousedown', listener);\n\n return {\n update: (view, prevState) => {\n const state = view.state;\n\n if (prevState?.doc.eq(state.doc) && prevState.selection.eq(state.selection)) return;\n\n const isCellSelection = state.selection instanceof CellSelection;\n\n if (!isCellSelection || !view.editable) {\n hide();\n return;\n }\n\n calculateItem(items, view);\n if (Object.values(items).every(({ $ }) => $.classList.contains('hide'))) {\n hide();\n return;\n }\n tooltip.classList.remove('hide');\n calculatePosition(view, tooltip);\n },\n destroy: () => {\n tooltip.removeEventListener('mousedown', listener);\n tooltip.remove();\n },\n };\n },\n });\n};\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { tableNodes as tableNodesSpecCreator } from '@milkdown/prose';\n\nexport const schema = tableNodesSpecCreator({\n tableGroup: 'block',\n cellContent: 'paragraph',\n cellAttributes: {\n alignment: {\n default: 'left',\n getFromDOM: (dom) => (dom as HTMLElement).style.textAlign || 'left',\n setDOMAttr: (value, attrs) => {\n attrs.style = `text-align: ${value || 'left'}`;\n },\n },\n },\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { Emotion } from '@milkdown/design-system';\nimport { Utils } from '@milkdown/utils';\n\nconst proseTableStyle = ({ css }: Emotion) => css`\n /* copy from https://github.com/ProseMirror/prosemirror-tables/blob/master/style/tables.css */\n .ProseMirror .tableWrapper {\n overflow-x: auto;\n }\n .ProseMirror table {\n border-collapse: collapse;\n table-layout: fixed;\n width: 100%;\n overflow: hidden;\n }\n .ProseMirror td,\n .ProseMirror th {\n vertical-align: top;\n box-sizing: border-box;\n position: relative;\n }\n .ProseMirror .column-resize-handle {\n position: absolute;\n right: -2px;\n top: 0;\n bottom: 0;\n width: 4px;\n z-index: 20;\n background-color: #adf;\n pointer-events: none;\n }\n .ProseMirror.resize-cursor {\n cursor: ew-resize;\n cursor: col-resize;\n }\n /* Give selected cells a blue overlay */\n .ProseMirror .selectedCell:after {\n z-index: 2;\n position: absolute;\n content: '';\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(200, 200, 255, 0.4);\n pointer-events: none;\n }\n`;\n\nexport const injectStyle = (utils: Utils) => {\n return utils.getStyle(({ size, palette, mixin }, emotion) => {\n const css = emotion.injectGlobal;\n css`\n ${proseTableStyle(emotion)}\n\n .tableWrapper {\n margin: 0 !important;\n\n ${mixin.scrollbar?.('x')};\n\n width: 100%;\n\n table {\n width: calc(100% - 2rem) !important;\n border-radius: ${size.radius};\n box-sizing: border-box;\n margin: 1rem 0 1rem 1rem !important;\n overflow: auto !important;\n * {\n margin: 0 !important;\n box-sizing: border-box;\n font-size: 1rem;\n }\n tr {\n ${mixin.border?.('bottom')};\n }\n\n th {\n background: ${palette('background', 0.5)};\n font-weight: 400;\n }\n\n th,\n td {\n min-width: 100px;\n ${mixin.border?.()};\n text-align: left;\n position: relative;\n line-height: 3rem;\n box-sizing: border-box;\n height: 3rem;\n }\n\n .selectedCell {\n &::after {\n background: ${palette('secondary', 0.38)};\n }\n & ::selection {\n background: transparent;\n }\n }\n\n .column-resize-handle {\n background: ${palette('primary')};\n width: ${size.lineWidth};\n }\n\n th,\n td {\n padding: 0 1rem;\n p {\n line-height: unset !important;\n }\n }\n\n .milkdown-cell-left,\n .milkdown-cell-point,\n .milkdown-cell-top {\n position: absolute;\n\n &::after {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: block;\n transition: all 0.2s ease-in-out;\n background: ${palette('secondary', 0.12)};\n content: '';\n }\n &:hover::after {\n background: ${palette('secondary', 0.38)};\n }\n }\n\n .milkdown-cell-left {\n left: calc(-6px - 0.5rem);\n top: 0;\n bottom: 0;\n width: 0.5rem;\n }\n\n .milkdown-cell-top {\n left: 0;\n right: 0;\n top: calc(-6px - 0.5rem);\n height: 0.5rem;\n }\n\n .milkdown-cell-point {\n left: calc(-2px - 1rem);\n top: calc(-2px - 1rem);\n width: 1rem;\n height: 1rem;\n\n .icon {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n }\n }\n }\n `;\n });\n};\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createCmd, createCmdKey, MarkdownNode, schemaCtx } from '@milkdown/core';\nimport { columnResizing, goToNextCell, InputRule, Selection, tableEditing, TextSelection } from '@milkdown/prose';\nimport { createPlugin, createShortcut } from '@milkdown/utils';\n\nimport { exitTable } from '../command';\nimport { operatorPlugin } from '../operator-plugin';\nimport { createTable } from '../utils';\nimport { schema } from './schema';\nimport { injectStyle } from './style';\n\nexport const SupportedKeys = {\n NextCell: 'NextCell',\n PrevCell: 'PrevCell',\n ExitTable: 'ExitTable',\n} as const;\nexport type SupportedKeys = typeof SupportedKeys;\n\ntype Keys = keyof SupportedKeys;\n\nexport const PrevCell = createCmdKey();\nexport const NextCell = createCmdKey();\nexport const BreakTable = createCmdKey();\nexport const InsertTable = createCmdKey();\n\nexport const table = createPlugin<Keys, Record<string, unknown>, keyof typeof schema>((utils) => {\n injectStyle(utils);\n return {\n schema: () => ({\n node: {\n table: {\n ...schema.table,\n parseMarkdown: {\n match: (node) => node.type === 'table',\n runner: (state, node, type) => {\n const align = node.align as (string | null)[];\n const children = (node.children as MarkdownNode[]).map((x, i) => ({\n ...x,\n align,\n isHeader: i === 0,\n }));\n state.openNode(type);\n state.next(children);\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'table',\n runner: (state, node) => {\n const firstLine = node.content.firstChild?.content;\n if (!firstLine) return;\n\n const align: (string | null)[] = [];\n firstLine.forEach((cell) => {\n align.push(cell.attrs.alignment);\n });\n state.openNode('table', undefined, { align });\n state.next(node.content);\n state.closeNode();\n },\n },\n },\n table_row: {\n ...schema.table_row,\n parseMarkdown: {\n match: (node) => node.type === 'tableRow',\n runner: (state, node, type) => {\n const align = node.align as (string | null)[];\n const children = (node.children as MarkdownNode[]).map((x, i) => ({\n ...x,\n align: align[i],\n isHeader: node.isHeader,\n }));\n state.openNode(type);\n state.next(children);\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'table_row',\n runner: (state, node) => {\n state.openNode('tableRow');\n state.next(node.content);\n state.closeNode();\n },\n },\n },\n table_cell: {\n ...schema.table_cell,\n parseMarkdown: {\n match: (node) => node.type === 'tableCell' && !node.isHeader,\n runner: (state, node, type) => {\n const align = node.align as string;\n state\n .openNode(type, { alignment: align })\n .openNode(state.schema.nodes.paragraph)\n .next(node.children)\n .closeNode()\n .closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'table_cell',\n runner: (state, node) => {\n state.openNode('tableCell').next(node.content).closeNode();\n },\n },\n },\n table_header: {\n ...schema.table_header,\n parseMarkdown: {\n match: (node) => node.type === 'tableCell' && !!node.isHeader,\n runner: (state, node, type) => {\n const align = node.align as string;\n state.openNode(type, { alignment: align });\n state.openNode(state.schema.nodes.paragraph);\n state.next(node.children);\n state.closeNode();\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'table_header',\n runner: (state, node) => {\n state.openNode('tableCell');\n state.next(node.content);\n state.closeNode();\n },\n },\n },\n },\n }),\n inputRules: (nodeType, ctx) => [\n new InputRule(/^\\|\\|\\s$/, (state, _match, start, end) => {\n const $start = state.doc.resolve(start);\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), nodeType.table))\n return null;\n\n const tableNode = createTable(ctx.get(schemaCtx));\n const tr = state.tr.replaceRangeWith(start, end, tableNode).scrollIntoView();\n return tr.setSelection(TextSelection.create(tr.doc, start + 3));\n }),\n ],\n commands: (_, ctx) => [\n createCmd(PrevCell, () => goToNextCell(-1)),\n createCmd(NextCell, () => goToNextCell(1)),\n createCmd(BreakTable, () => exitTable(ctx.get(schemaCtx).nodes.paragraph)),\n createCmd(InsertTable, () => (state, dispatch) => {\n const { selection, tr } = state;\n const { from } = selection;\n const table = createTable(ctx.get(schemaCtx));\n const _tr = tr.replaceSelectionWith(table);\n const sel = Selection.findFrom(_tr.doc.resolve(from), 1, true);\n if (sel) {\n dispatch?.(_tr.setSelection(sel));\n }\n return true;\n }),\n ],\n shortcuts: {\n [SupportedKeys.NextCell]: createShortcut(NextCell, 'Mod-]'),\n [SupportedKeys.PrevCell]: createShortcut(PrevCell, 'Mod-['),\n [SupportedKeys.ExitTable]: createShortcut(BreakTable, 'Mod-Enter'),\n },\n prosePlugins: (_, ctx) => {\n return [operatorPlugin(ctx, utils), columnResizing({}), tableEditing()];\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { SupportedKeys as CommonmarkKeys } from '@milkdown/preset-commonmark';\n\nimport { SupportedKeys as TableKeys } from './table';\n\nexport const SupportedKeys = {\n ...CommonmarkKeys,\n ...TableKeys,\n StrikeThrough: 'StrikeThrough',\n TaskList: 'TaskList',\n} as const;\nexport type SupportedKeys = typeof SupportedKeys;\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { markRule, toggleMark } from '@milkdown/prose';\nimport { createMark, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from './supported-keys';\n\ntype Keys = SupportedKeys['StrikeThrough'];\n\nexport const ToggleStrikeThrough = createCmdKey();\n\nexport const strikeThrough = createMark<Keys>((utils) => {\n const id = 'strike_through';\n const style = utils.getStyle(\n (themeTool, { css }) =>\n css`\n text-decoration-color: ${themeTool.palette('secondary')};\n `,\n );\n\n return {\n id,\n schema: () => ({\n parseDOM: [\n { tag: 'del' },\n { style: 'text-decoration', getAttrs: (value) => (value === 'line-through') as false },\n ],\n toDOM: (mark) => ['del', { class: utils.getClassName(mark.attrs, 'strike-through', style) }],\n parseMarkdown: {\n match: (node) => node.type === 'delete',\n runner: (state, node, markType) => {\n state.openMark(markType);\n state.next(node.children);\n state.closeMark(markType);\n },\n },\n toMarkdown: {\n match: (mark) => mark.type.name === id,\n runner: (state, mark) => {\n state.withMark(mark, 'delete');\n },\n },\n }),\n inputRules: (markType) => [\n markRule(/(?:~~)([^~]+)(?:~~)$/, markType),\n markRule(/(?:^|[^~])(~([^~]+)~)$/, markType),\n ],\n commands: (markType) => [createCmd(ToggleStrikeThrough, () => toggleMark(markType))],\n shortcuts: {\n [SupportedKeys.StrikeThrough]: createShortcut(ToggleStrikeThrough, 'Mod-Alt-x'),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createCmd, createCmdKey, themeToolCtx } from '@milkdown/core';\nimport type { Icon } from '@milkdown/design-system';\nimport { liftListItem, sinkListItem, splitListItem, wrapIn, wrappingInputRule } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from './supported-keys';\n\ntype Keys = Extract<keyof SupportedKeys, 'SinkListItem' | 'LiftListItem' | 'NextListItem' | 'TaskList'>;\n\nexport const SplitTaskListItem = createCmdKey();\nexport const SinkTaskListItem = createCmdKey();\nexport const LiftTaskListItem = createCmdKey();\nexport const TurnIntoTaskList = createCmdKey();\n\nexport const taskListItem = createNode<Keys>((utils) => {\n const id = 'task_list_item';\n const style = utils.getStyle(\n ({ palette, size }, { css }) =>\n css`\n list-style-type: none;\n position: relative;\n\n & > div {\n overflow: hidden;\n padding: 0 2px;\n }\n\n label {\n position: absolute;\n top: 0;\n left: -2rem;\n display: inline-block;\n width: 1.5rem;\n height: 1.5rem;\n margin: 0.5rem 0;\n input {\n visibility: hidden;\n }\n }\n label:before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n border-radius: ${size.radius};\n }\n label:hover:before {\n background: ${palette('background')};\n }\n &[data-checked='true'] {\n label {\n color: ${palette('primary')};\n }\n }\n &[data-checked='false'] {\n label {\n color: ${palette('solid', 0.87)};\n }\n }\n .paragraph {\n margin: 0.5rem 0;\n }\n `,\n );\n\n return {\n id,\n schema: () => ({\n group: 'listItem',\n content: 'paragraph block*',\n defining: true,\n priority: 60,\n attrs: {\n checked: {\n default: false,\n },\n },\n parseDOM: [\n {\n tag: 'li[data-type=\"task-item\"]',\n getAttrs: (dom) => {\n if (!(dom instanceof HTMLElement)) {\n throw new Error();\n }\n return { checked: dom.dataset.checked === 'true' };\n },\n },\n ],\n toDOM: (node) => [\n 'li',\n {\n 'data-type': 'task-item',\n 'data-checked': node.attrs.checked ? 'true' : 'false',\n class: utils.getClassName(node.attrs, 'task-list-item', style),\n },\n 0,\n ],\n parseMarkdown: {\n match: ({ type, checked }) => {\n return type === 'listItem' && checked !== null;\n },\n runner: (state, node, type) => {\n state.openNode(type, { checked: node.checked as boolean });\n state.next(node.children);\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.openNode('listItem', undefined, { checked: node.attrs.checked });\n state.next(node.content);\n state.closeNode();\n },\n },\n }),\n inputRules: (nodeType) => [\n wrappingInputRule(/^\\s*(\\[([ |x])\\])\\s$/, nodeType, (match) => ({\n checked: match[match.length - 1] === 'x',\n })),\n ],\n commands: (nodeType) => [\n createCmd(SplitTaskListItem, () => splitListItem(nodeType)),\n createCmd(SinkTaskListItem, () => sinkListItem(nodeType)),\n createCmd(LiftTaskListItem, () => liftListItem(nodeType)),\n createCmd(TurnIntoTaskList, () => wrapIn(nodeType)),\n ],\n shortcuts: {\n [SupportedKeys.NextListItem]: createShortcut(SplitTaskListItem, 'Enter'),\n [SupportedKeys.SinkListItem]: createShortcut(SinkTaskListItem, 'Mod-]'),\n [SupportedKeys.LiftListItem]: createShortcut(LiftTaskListItem, 'Mod-['),\n [SupportedKeys.TaskList]: createShortcut(TurnIntoTaskList, 'Mod-Alt-9'),\n },\n view: (ctx) => (node, view, getPos) => {\n const createIcon = ctx.get(themeToolCtx).slots.icon;\n\n const listItem = document.createElement('li');\n const checkboxWrapper = document.createElement('label');\n const checkboxStyler = document.createElement('span');\n const checkbox = document.createElement('input');\n const content = document.createElement('div');\n\n let icon = createIcon('unchecked');\n checkboxWrapper.appendChild(icon);\n const setIcon = (name: Icon) => {\n const nextIcon = createIcon(name);\n checkboxWrapper.replaceChild(nextIcon, icon);\n icon = nextIcon;\n };\n\n checkboxWrapper.contentEditable = 'false';\n checkbox.type = 'checkbox';\n const onChange = (event: Event) => {\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) return;\n\n if (!view.editable) {\n checkbox.checked = !checkbox.checked;\n\n return;\n }\n\n const { tr } = view.state;\n\n view.dispatch(\n tr.setNodeMarkup(getPos(), undefined, {\n checked: target.checked,\n }),\n );\n };\n checkbox.addEventListener('change', onChange);\n\n listItem.dataset.checked = node.attrs.checked;\n if (node.attrs.checked) {\n checkbox.setAttribute('checked', 'checked');\n }\n\n checkboxWrapper.append(checkbox, checkboxStyler);\n listItem.append(checkboxWrapper, content);\n\n const attributes = {\n 'data-type': 'task-item',\n 'data-checked': node.attrs.checked ? 'true' : 'false',\n class: utils.getClassName(node.attrs, 'task-list-item', style),\n };\n Object.entries(attributes).forEach(([key, value]) => {\n listItem.setAttribute(key, value);\n });\n setIcon(node.attrs.checked ? 'checked' : 'unchecked');\n\n return {\n dom: listItem,\n contentDOM: content,\n update: (updatedNode) => {\n if (updatedNode.type.name !== id) return false;\n\n listItem.dataset.checked = updatedNode.attrs.checked;\n if (updatedNode.attrs.checked) {\n checkbox.setAttribute('checked', 'checked');\n } else {\n checkbox.removeAttribute('checked');\n }\n setIcon(updatedNode.attrs.checked ? 'checked' : 'unchecked');\n\n return true;\n },\n destroy: () => {\n checkbox.removeEventListener('change', onChange);\n },\n };\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { commands as commonmarkCommands, commonmark } from '@milkdown/preset-commonmark';\nimport { $remark, AtomList } from '@milkdown/utils';\nimport remarkGFM from 'remark-gfm';\n\nimport { urlPlugin } from './auto-link';\nimport { strikeThrough, ToggleStrikeThrough } from './strike-through';\nimport { table } from './table';\nimport {\n LiftTaskListItem,\n SinkTaskListItem,\n SplitTaskListItem,\n taskListItem,\n TurnIntoTaskList,\n} from './task-list-item';\n\nexport * from './strike-through';\nexport { SupportedKeys } from './supported-keys';\nexport {\n BreakTable,\n // command\n createTable,\n InsertTable,\n NextCell,\n PrevCell,\n // gather\n table,\n} from './table';\nexport * from './task-list-item';\nexport {\n blockquote,\n bulletList,\n codeFence,\n codeInline,\n commonmark,\n // gather\n commonmarkNodes,\n commonmarkPlugins,\n // node\n doc,\n em,\n hardbreak,\n heading,\n hr,\n image,\n // command\n InsertHardbreak,\n InsertHr,\n InsertImage,\n LiftListItem,\n link,\n listItem,\n ModifyImage,\n ModifyLink,\n orderedList,\n paragraph,\n SinkListItem,\n SplitListItem,\n strong,\n text,\n ToggleBold,\n ToggleInlineCode,\n ToggleItalic,\n ToggleLink,\n TurnIntoCodeFence,\n TurnIntoHeading,\n TurnIntoText,\n WrapInBlockquote,\n WrapInBulletList,\n WrapInOrderedList,\n} from '@milkdown/preset-commonmark';\n\nexport const gfm = AtomList.create([\n ...commonmark,\n $remark(() => remarkGFM),\n table(),\n urlPlugin,\n strikeThrough(),\n taskListItem(),\n]);\n\nexport const commands = {\n ...commonmarkCommands,\n ToggleStrikeThrough,\n TurnIntoTaskList,\n SinkTaskListItem,\n LiftTaskListItem,\n SplitTaskListItem,\n} as const;\nexport type Commands = typeof commands;\n"],"names":["injectStyle","tableNodesSpecCreator","SupportedKeys","CommonmarkKeys","TableKeys","commonmarkCommands"],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-link.d.ts","sourceRoot":"","sources":["auto-link.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,SAAS,kCAAiC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AtomList } from '@milkdown/utils';
|
|
2
|
+
export * from './strike-through';
|
|
3
|
+
export { SupportedKeys } from './supported-keys';
|
|
4
|
+
export { BreakTable, createTable, InsertTable, NextCell, PrevCell, table, } from './table';
|
|
5
|
+
export * from './task-list-item';
|
|
6
|
+
export { blockquote, bulletList, codeFence, codeInline, commonmark, commonmarkNodes, commonmarkPlugins, doc, em, hardbreak, heading, hr, image, InsertHardbreak, InsertHr, InsertImage, LiftListItem, link, listItem, ModifyImage, ModifyLink, orderedList, paragraph, SinkListItem, SplitListItem, strong, text, ToggleBold, ToggleInlineCode, ToggleItalic, ToggleLink, TurnIntoCodeFence, TurnIntoHeading, TurnIntoText, WrapInBlockquote, WrapInBulletList, WrapInOrderedList, } from '@milkdown/preset-commonmark';
|
|
7
|
+
export declare const gfm: AtomList<import("@milkdown/utils").$Prose | (import("@milkdown/utils/lib/src/types").Metadata<import("@milkdown/utils/lib/src/types").GetPlugin<"CodeFence", {
|
|
8
|
+
languageList?: string[] | undefined;
|
|
9
|
+
}>> & import("@milkdown/core").MilkdownPlugin) | (import("@milkdown/utils/lib/src/types").Metadata<import("@milkdown/utils/lib/src/types").GetPlugin<string, import("@milkdown/preset-commonmark").ImageOptions>> & import("@milkdown/core").MilkdownPlugin) | import("@milkdown/utils").$Remark>;
|
|
10
|
+
export declare const commands: {
|
|
11
|
+
readonly ToggleStrikeThrough: import("@milkdown/core").CmdKey<undefined>;
|
|
12
|
+
readonly TurnIntoTaskList: import("@milkdown/core").CmdKey<undefined>;
|
|
13
|
+
readonly SinkTaskListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
14
|
+
readonly LiftTaskListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
15
|
+
readonly SplitTaskListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
16
|
+
readonly ToggleInlineCode: import("@milkdown/core").CmdKey<undefined>;
|
|
17
|
+
readonly ToggleItalic: import("@milkdown/core").CmdKey<undefined>;
|
|
18
|
+
readonly ToggleLink: import("@milkdown/core").CmdKey<string>;
|
|
19
|
+
readonly ToggleBold: import("@milkdown/core").CmdKey<undefined>;
|
|
20
|
+
readonly ModifyLink: import("@milkdown/core").CmdKey<string>;
|
|
21
|
+
readonly ModifyImage: import("@milkdown/core").CmdKey<string>;
|
|
22
|
+
readonly WrapInBlockquote: import("@milkdown/core").CmdKey<undefined>;
|
|
23
|
+
readonly WrapInBulletList: import("@milkdown/core").CmdKey<undefined>;
|
|
24
|
+
readonly WrapInOrderedList: import("@milkdown/core").CmdKey<undefined>;
|
|
25
|
+
readonly TurnIntoCodeFence: import("@milkdown/core").CmdKey<undefined>;
|
|
26
|
+
readonly TurnIntoHeading: import("@milkdown/core").CmdKey<number>;
|
|
27
|
+
readonly TurnIntoText: import("@milkdown/core").CmdKey<undefined>;
|
|
28
|
+
readonly InsertHardbreak: import("@milkdown/core").CmdKey<undefined>;
|
|
29
|
+
readonly InsertHr: import("@milkdown/core").CmdKey<string>;
|
|
30
|
+
readonly InsertImage: import("@milkdown/core").CmdKey<string>;
|
|
31
|
+
readonly SplitListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
32
|
+
readonly SinkListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
33
|
+
readonly LiftListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
34
|
+
};
|
|
35
|
+
export declare type Commands = typeof commands;
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAcpD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACH,UAAU,EAEV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EAER,KAAK,GACR,MAAM,SAAS,CAAC;AACjB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACH,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EAEV,eAAe,EACf,iBAAiB,EAEjB,GAAG,EACH,EAAE,EACF,SAAS,EACT,OAAO,EACP,EAAE,EACF,KAAK,EAEL,eAAe,EACf,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,MAAM,EACN,IAAI,EACJ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,GAAG;;iSAOd,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;CAOX,CAAC;AACX,oBAAY,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const ToggleStrikeThrough: import("@milkdown/core").CmdKey<undefined>;
|
|
2
|
-
export declare const strikeThrough: import("@milkdown/utils/lib/types").WithExtend<"StrikeThrough", import("@milkdown/utils").UnknownRecord, import("prosemirror-model").MarkType<any>, {
|
|
2
|
+
export declare const strikeThrough: import("@milkdown/utils/lib/src/types").WithExtend<"StrikeThrough", import("@milkdown/utils").UnknownRecord, import("prosemirror-model").MarkType<any>, {
|
|
3
3
|
id: string;
|
|
4
4
|
schema: (ctx: import("@milkdown/core").Ctx) => import("@milkdown/core").MarkSchema;
|
|
5
5
|
view?: ((ctx: import("@milkdown/core").Ctx) => import("@milkdown/prose").MarkViewFactory) | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strike-through.d.ts","sourceRoot":"","sources":["strike-through.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,4CAAiB,CAAC;AAElD,eAAO,MAAM,aAAa;;;;EAyCxB,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supported-keys.d.ts","sourceRoot":"","sources":["supported-keys.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;CAKhB,CAAC;AACX,oBAAY,aAAa,GAAG,OAAO,aAAa,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAmB,QAAQ,EAAa,MAAM,iBAAiB,CAAC;AAEhF,eAAO,MAAM,SAAS,SACX,QAAQ,KAAG,OAWjB,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,QAAQ;;;;;CAKX,CAAC;AACX,oBAAY,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
|
|
@@ -8,11 +8,11 @@ export declare const PrevCell: import("@milkdown/core").CmdKey<undefined>;
|
|
|
8
8
|
export declare const NextCell: import("@milkdown/core").CmdKey<undefined>;
|
|
9
9
|
export declare const BreakTable: import("@milkdown/core").CmdKey<undefined>;
|
|
10
10
|
export declare const InsertTable: import("@milkdown/core").CmdKey<undefined>;
|
|
11
|
-
export declare const table: import("@milkdown/utils/lib/types").WithExtend<"NextCell" | "PrevCell" | "ExitTable", Record<string, unknown>, {
|
|
11
|
+
export declare const table: import("@milkdown/utils/lib/src/types").WithExtend<"NextCell" | "PrevCell" | "ExitTable", Record<string, unknown>, {
|
|
12
12
|
table: import("prosemirror-model").NodeType<any>;
|
|
13
|
-
table_header: import("prosemirror-model").NodeType<any>;
|
|
14
13
|
table_row: import("prosemirror-model").NodeType<any>;
|
|
15
14
|
table_cell: import("prosemirror-model").NodeType<any>;
|
|
15
|
+
table_header: import("prosemirror-model").NodeType<any>;
|
|
16
16
|
} & {
|
|
17
17
|
[x: string]: import("prosemirror-model").MarkType<any>;
|
|
18
18
|
}, {
|
|
@@ -22,9 +22,9 @@ export declare const table: import("@milkdown/utils/lib/types").WithExtend<"Next
|
|
|
22
22
|
}) | undefined;
|
|
23
23
|
view?: ((ctx: import("@milkdown/core").Ctx) => Partial<{
|
|
24
24
|
table: import("@milkdown/prose").NodeViewFactory;
|
|
25
|
-
table_header: import("@milkdown/prose").NodeViewFactory;
|
|
26
25
|
table_row: import("@milkdown/prose").NodeViewFactory;
|
|
27
26
|
table_cell: import("@milkdown/prose").NodeViewFactory;
|
|
27
|
+
table_header: import("@milkdown/prose").NodeViewFactory;
|
|
28
28
|
} & {
|
|
29
29
|
[x: string]: import("@milkdown/prose").MarkViewFactory;
|
|
30
30
|
}>) | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AACX,oBAAY,aAAa,GAAG,OAAO,aAAa,CAAC;AAIjD,eAAO,MAAM,QAAQ,4CAAiB,CAAC;AACvC,eAAO,MAAM,QAAQ,4CAAiB,CAAC;AACvC,eAAO,MAAM,UAAU,4CAAiB,CAAC;AACzC,eAAO,MAAM,WAAW,4CAAiB,CAAC;AAE1C,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;EA+IhB,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["schema.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,sCAYjB,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["style.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AA+CxC,eAAO,MAAM,WAAW,UAAW,KAAK,uBAwHvC,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAgB,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAGH,OAAO,EAIP,UAAU,EAIb,MAAM,iBAAiB,CAAC;AAKzB,oBAAY,IAAI,GAAG;IACf,CAAC,EAAE,WAAW,CAAC;IACf,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;CAC3C,CAAC;AAEF,oBAAY,MAAM;IACd,UAAU,IAAA;IACV,WAAW,IAAA;IACX,SAAS,IAAA;IACT,YAAY,IAAA;IACZ,SAAS,IAAA;IACT,WAAW,IAAA;IACX,UAAU,IAAA;IACV,MAAM,IAAA;CACT;AAED,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CA+E3D,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calc-pos.d.ts","sourceRoot":"","sources":["calc-pos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnF,eAAO,MAAM,iBAAiB,SAAU,UAAU,OAAO,WAAW,SAoBnE,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["constant.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU;IAClB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;CAClB"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,eAAO,MAAM,gBAAgB,SAAU,UAAU,KAAG,aAAiE,CAAC;AAEtH,eAAO,MAAM,kBAAkB,cAAe,aAAa,YAmB1D,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,OAAO,MAAM,EAAE,IAAI,CAAC,QAAQ,UAAU,SAS5E,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAA4C,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAUxC,eAAO,MAAM,GAAG,0BAA0B,CAAC;AAE3C,eAAO,MAAM,cAAc,QAAS,GAAG,SAAS,KAAK,qBAiFpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["style.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,WAAW,6BAA8B,SAAS,WAAW,OAAO,WA8ChF,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["widget.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAgB,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,OAAO,EAA2B,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBxC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC/G,wBAAgB,YAAY,CACxB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,UAAU,CAAC,IAAI,EACpB,KAAK,EAAE,MAAM,GACd,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACpC,wBAAgB,YAAY,CACxB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,UAAU,CAAC,GAAG,EACnB,KAAK,EAAE,MAAM,GACd,UAAU,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,IAAI,IAAI,eAAe,EACvB,MAAM,EACN,SAAS,EAGT,SAAS,EACT,WAAW,EACd,MAAM,iBAAiB,CAAC;AAEzB,oBAAY,OAAO,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,SAAS,cAAe,SAAS,6DAC+B,CAAC;AAE9E,eAAO,MAAM,gBAAgB,gBACX,MAAM,iBACR,SAAS,KAAG,OAAO,EAAE,GAAG,SAkBnC,CAAC;AAEN,eAAO,MAAM,aAAa,aACX,MAAM,iBACL,SAAS,KAAG,OAAO,EAAE,GAAG,SAkBnC,CAAC;AAEN,eAAO,MAAM,WAAW,WAAY,MAAM,iEAgBzC,CAAC;AAEF,eAAO,MAAM,UAAU,SAAU,KAAK,GAAG,KAAK,aAAa,MAAM,UAAU,WAAW,QAuBrF,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,SAAS;;;;eAiBnD,CAAC;AAEF,eAAO,MAAM,WAAW,OAAQ,WAAW,QAQ1C,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,oBAkBtG"}
|
|
@@ -4,7 +4,7 @@ export declare const SplitTaskListItem: import("@milkdown/core").CmdKey<undefine
|
|
|
4
4
|
export declare const SinkTaskListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
5
5
|
export declare const LiftTaskListItem: import("@milkdown/core").CmdKey<undefined>;
|
|
6
6
|
export declare const TurnIntoTaskList: import("@milkdown/core").CmdKey<undefined>;
|
|
7
|
-
export declare const taskListItem: import("@milkdown/utils/lib/types").WithExtend<Keys, import("@milkdown/utils").UnknownRecord, import("prosemirror-model").NodeType<any>, {
|
|
7
|
+
export declare const taskListItem: import("@milkdown/utils/lib/src/types").WithExtend<Keys, import("@milkdown/utils").UnknownRecord, import("prosemirror-model").NodeType<any>, {
|
|
8
8
|
id: string;
|
|
9
9
|
schema: (ctx: import("@milkdown/core").Ctx) => import("@milkdown/core").NodeSchema;
|
|
10
10
|
view?: ((ctx: import("@milkdown/core").Ctx) => import("@milkdown/prose").NodeViewFactory) | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-list-item.d.ts","sourceRoot":"","sources":["task-list-item.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,aAAK,IAAI,GAAG,OAAO,CAAC,MAAM,aAAa,EAAE,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC;AAExG,eAAO,MAAM,iBAAiB,4CAAiB,CAAC;AAChD,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAE/C,eAAO,MAAM,YAAY;;;;EAuMvB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milkdown/preset-gfm",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./lib/index.es.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -16,13 +16,19 @@
|
|
|
16
16
|
"markdown",
|
|
17
17
|
"gfm"
|
|
18
18
|
],
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@milkdown/core": "5.4.0",
|
|
21
|
+
"@milkdown/prose": "5.4.0",
|
|
22
|
+
"@milkdown/design-system": "5.4.0",
|
|
23
|
+
"@milkdown/preset-commonmark": "5.4.0"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"@milkdown/core": "^5.4.0",
|
|
27
|
+
"@milkdown/prose": "^5.4.0",
|
|
28
|
+
"@milkdown/preset-commonmark": "^5.4.0"
|
|
29
|
+
},
|
|
19
30
|
"dependencies": {
|
|
20
|
-
"@
|
|
21
|
-
"@milkdown/core": "5.3.2",
|
|
22
|
-
"@milkdown/design-system": "5.3.2",
|
|
23
|
-
"@milkdown/preset-commonmark": "5.3.2",
|
|
24
|
-
"@milkdown/prose": "5.3.2",
|
|
25
|
-
"@milkdown/utils": "5.3.2",
|
|
31
|
+
"@milkdown/utils": "5.4.0",
|
|
26
32
|
"remark-gfm": "^3.0.0",
|
|
27
33
|
"tslib": "^2.3.1"
|
|
28
34
|
},
|
|
@@ -30,7 +36,7 @@
|
|
|
30
36
|
"start": "vite build --watch",
|
|
31
37
|
"test": "vitest",
|
|
32
38
|
"tsc": "tsc --noEmit",
|
|
33
|
-
"build": "vite build
|
|
39
|
+
"build": "vite build"
|
|
34
40
|
},
|
|
35
41
|
"readme": "# @milkdown/preset-gfm\n\nGithub flavored markdown preset for [milkdown](https://saul-mirone.github.io/milkdown/).\nAdd support for gfm.\n\n# Example Usage\n\n```typescript\nimport { Editor } from '@milkdown/core';\nimport { nord } from '@milkdown/theme-nord';\n\nimport { gfm } from '@milkdown/preset-gfm';\n\nEditor.make().use(nord).use(gfm).create();\n```\n\n## Custom Keymap\n\n```typescript\nimport { commonmark, blockquote, SupportedKeys } from '@milkdown/preset-gfm';\n\nconst nodes = commonmark.configure(blockquote, {\n keymap: {\n [SupportedKeys.Blockquote]: 'Mod-Shift-b',\n },\n});\n\nEditor.make().use(nodes);\n```\n\nKeymap supported:\n\n- HardBreak\n- Blockquote\n- TaskList\n- BulletList\n- OrderedList\n- CodeFence\n- H1\n- H2\n- H3\n- H4\n- H5\n- H6\n- Text\n- CodeInline\n- Em\n- Bold\n- StrikeThrough\n- NextListItem\n- SinkListItem\n- LiftListItem\n- NextCell\n- PrevCell\n- ExitTable\n\n## Custom Style\n\n```typescript\nimport { commonmark, paragraph, heading } from '@milkdown/preset-gfm';\n\nconst nodes = commonmark\n .configure(paragraph, {\n className: () => 'my-custom-paragraph',\n })\n .configure(heading, {\n className: (attrs) => `my-custom-heading my-h${attrs.level}`,\n });\n\nEditor.make().use(nodes);\n```\n\n# License\n\nMilkdown is open sourced software licensed under [MIT license](https://github.com/Saul-Mirone/milkdown/blob/main/LICENSE).\n"
|
|
36
42
|
}
|
package/src/strike-through.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/* Copyright 2021, Milkdown by Mirone. */
|
|
2
|
-
import { css } from '@emotion/css';
|
|
3
2
|
import { createCmd, createCmdKey } from '@milkdown/core';
|
|
4
3
|
import { markRule, toggleMark } from '@milkdown/prose';
|
|
5
4
|
import { createMark, createShortcut } from '@milkdown/utils';
|
|
@@ -13,7 +12,7 @@ export const ToggleStrikeThrough = createCmdKey();
|
|
|
13
12
|
export const strikeThrough = createMark<Keys>((utils) => {
|
|
14
13
|
const id = 'strike_through';
|
|
15
14
|
const style = utils.getStyle(
|
|
16
|
-
(themeTool) =>
|
|
15
|
+
(themeTool, { css }) =>
|
|
17
16
|
css`
|
|
18
17
|
text-decoration-color: ${themeTool.palette('secondary')};
|
|
19
18
|
`,
|
package/src/table/nodes/style.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* Copyright 2021, Milkdown by Mirone. */
|
|
2
|
-
import {
|
|
2
|
+
import { Emotion } from '@milkdown/design-system';
|
|
3
3
|
import { Utils } from '@milkdown/utils';
|
|
4
4
|
|
|
5
|
-
const proseTableStyle = css`
|
|
5
|
+
const proseTableStyle = ({ css }: Emotion) => css`
|
|
6
6
|
/* copy from https://github.com/ProseMirror/prosemirror-tables/blob/master/style/tables.css */
|
|
7
7
|
.ProseMirror .tableWrapper {
|
|
8
8
|
overflow-x: auto;
|
|
@@ -48,10 +48,10 @@ const proseTableStyle = css`
|
|
|
48
48
|
`;
|
|
49
49
|
|
|
50
50
|
export const injectStyle = (utils: Utils) => {
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
return utils.getStyle(({ size, palette, mixin }, emotion) => {
|
|
52
|
+
const css = emotion.injectGlobal;
|
|
53
53
|
css`
|
|
54
|
-
${proseTableStyle}
|
|
54
|
+
${proseTableStyle(emotion)}
|
|
55
55
|
|
|
56
56
|
.tableWrapper {
|
|
57
57
|
margin: 0 !important;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/* Copyright 2021, Milkdown by Mirone. */
|
|
2
|
-
import {
|
|
3
|
-
import { ThemeTool } from '@milkdown/core';
|
|
2
|
+
import { Emotion, ThemeTool } from '@milkdown/core';
|
|
4
3
|
|
|
5
|
-
export const injectStyle = ({ size, mixin, palette }: ThemeTool) => css`
|
|
4
|
+
export const injectStyle = ({ size, mixin, palette }: ThemeTool, { css }: Emotion) => css`
|
|
6
5
|
display: inline-flex;
|
|
7
6
|
cursor: pointer;
|
|
8
7
|
z-index: 2;
|
package/src/task-list-item.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/* Copyright 2021, Milkdown by Mirone. */
|
|
2
|
-
import { css } from '@emotion/css';
|
|
3
2
|
import { createCmd, createCmdKey, themeToolCtx } from '@milkdown/core';
|
|
4
3
|
import type { Icon } from '@milkdown/design-system';
|
|
5
4
|
import { liftListItem, sinkListItem, splitListItem, wrapIn, wrappingInputRule } from '@milkdown/prose';
|
|
@@ -17,7 +16,7 @@ export const TurnIntoTaskList = createCmdKey();
|
|
|
17
16
|
export const taskListItem = createNode<Keys>((utils) => {
|
|
18
17
|
const id = 'task_list_item';
|
|
19
18
|
const style = utils.getStyle(
|
|
20
|
-
({ palette, size }) =>
|
|
19
|
+
({ palette, size }, { css }) =>
|
|
21
20
|
css`
|
|
22
21
|
list-style-type: none;
|
|
23
22
|
position: relative;
|
|
@@ -72,6 +71,7 @@ export const taskListItem = createNode<Keys>((utils) => {
|
|
|
72
71
|
group: 'listItem',
|
|
73
72
|
content: 'paragraph block*',
|
|
74
73
|
defining: true,
|
|
74
|
+
priority: 60,
|
|
75
75
|
attrs: {
|
|
76
76
|
checked: {
|
|
77
77
|
default: false,
|
|
@@ -86,7 +86,6 @@ export const taskListItem = createNode<Keys>((utils) => {
|
|
|
86
86
|
}
|
|
87
87
|
return { checked: dom.dataset.checked === 'true' };
|
|
88
88
|
},
|
|
89
|
-
priority: 60,
|
|
90
89
|
},
|
|
91
90
|
],
|
|
92
91
|
toDOM: (node) => [
|
package/lib/auto-link.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-link.d.ts","sourceRoot":"","sources":["../src/auto-link.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,SAAS,kCAAiC,CAAC"}
|
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAcpD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACH,UAAU,EAEV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EAER,KAAK,GACR,MAAM,SAAS,CAAC;AACjB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACH,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EAEV,eAAe,EACf,iBAAiB,EAEjB,GAAG,EACH,EAAE,EACF,SAAS,EACT,OAAO,EACP,EAAE,EACF,KAAK,EAEL,eAAe,EACf,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,MAAM,EACN,IAAI,EACJ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,GAAG;;+CAOd,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;CAOX,CAAC;AACX,oBAAY,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strike-through.d.ts","sourceRoot":"","sources":["../src/strike-through.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,mBAAmB,4CAAiB,CAAC;AAElD,eAAO,MAAM,aAAa;;;;EAyCxB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"supported-keys.d.ts","sourceRoot":"","sources":["../src/supported-keys.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;CAKhB,CAAC;AACX,oBAAY,aAAa,GAAG,OAAO,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/table/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAmB,QAAQ,EAAa,MAAM,iBAAiB,CAAC;AAEhF,eAAO,MAAM,SAAS,SACX,QAAQ,KAAG,OAWjB,CAAC"}
|
package/lib/table/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,QAAQ;;;;;CAKX,CAAC;AACX,oBAAY,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table/nodes/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AACX,oBAAY,aAAa,GAAG,OAAO,aAAa,CAAC;AAIjD,eAAO,MAAM,QAAQ,4CAAiB,CAAC;AACvC,eAAO,MAAM,QAAQ,4CAAiB,CAAC;AACvC,eAAO,MAAM,UAAU,4CAAiB,CAAC;AACzC,eAAO,MAAM,WAAW,4CAAiB,CAAC;AAE1C,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;EA+IhB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/table/nodes/schema.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,sCAYjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/table/nodes/style.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AA+CxC,eAAO,MAAM,WAAW,UAAW,KAAK,uBAwHvC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/table/operator-plugin/actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAgB,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAGH,OAAO,EAIP,UAAU,EAIb,MAAM,iBAAiB,CAAC;AAKzB,oBAAY,IAAI,GAAG;IACf,CAAC,EAAE,WAAW,CAAC;IACf,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;CAC3C,CAAC;AAEF,oBAAY,MAAM;IACd,UAAU,IAAA;IACV,WAAW,IAAA;IACX,SAAS,IAAA;IACT,YAAY,IAAA;IACZ,SAAS,IAAA;IACT,WAAW,IAAA;IACX,UAAU,IAAA;IACV,MAAM,IAAA;CACT;AAED,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CA+E3D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"calc-pos.d.ts","sourceRoot":"","sources":["../../../src/table/operator-plugin/calc-pos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnF,eAAO,MAAM,iBAAiB,SAAU,UAAU,OAAO,WAAW,SAoBnE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../src/table/operator-plugin/constant.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU;IAClB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;CAClB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../src/table/operator-plugin/helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,eAAO,MAAM,gBAAgB,SAAU,UAAU,KAAG,aAAiE,CAAC;AAEtH,eAAO,MAAM,kBAAkB,cAAe,aAAa,YAmB1D,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,OAAO,MAAM,EAAE,IAAI,CAAC,QAAQ,UAAU,SAS5E,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table/operator-plugin/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAA4C,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAUxC,eAAO,MAAM,GAAG,0BAA0B,CAAC;AAE3C,eAAO,MAAM,cAAc,QAAS,GAAG,SAAS,KAAK,qBAiFpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/table/operator-plugin/style.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,eAAO,MAAM,WAAW,6BAA8B,SAAS,WA8C9D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/table/operator-plugin/widget.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAgB,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,OAAO,EAA2B,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBxC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC/G,wBAAgB,YAAY,CACxB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,UAAU,CAAC,IAAI,EACpB,KAAK,EAAE,MAAM,GACd,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACpC,wBAAgB,YAAY,CACxB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,UAAU,CAAC,GAAG,EACnB,KAAK,EAAE,MAAM,GACd,UAAU,CAAC,oBAAoB,CAAC,CAAC"}
|
package/lib/table/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/table/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAIH,IAAI,IAAI,eAAe,EACvB,MAAM,EACN,SAAS,EAGT,SAAS,EACT,WAAW,EACd,MAAM,iBAAiB,CAAC;AAEzB,oBAAY,OAAO,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,SAAS,cAAe,SAAS,6DAC+B,CAAC;AAE9E,eAAO,MAAM,gBAAgB,gBACX,MAAM,iBACR,SAAS,KAAG,OAAO,EAAE,GAAG,SAkBnC,CAAC;AAEN,eAAO,MAAM,aAAa,aACX,MAAM,iBACL,SAAS,KAAG,OAAO,EAAE,GAAG,SAkBnC,CAAC;AAEN,eAAO,MAAM,WAAW,WAAY,MAAM,iEAgBzC,CAAC;AAEF,eAAO,MAAM,UAAU,SAAU,KAAK,GAAG,KAAK,aAAa,MAAM,UAAU,WAAW,QAuBrF,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,SAAS;;;;eAiBnD,CAAC;AAEF,eAAO,MAAM,WAAW,OAAQ,WAAW,QAQ1C,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,oBAkBtG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-list-item.d.ts","sourceRoot":"","sources":["../src/task-list-item.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,aAAK,IAAI,GAAG,OAAO,CAAC,MAAM,aAAa,EAAE,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC;AAExG,eAAO,MAAM,iBAAiB,4CAAiB,CAAC;AAChD,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAE/C,eAAO,MAAM,YAAY;;;;EAuMvB,CAAC"}
|