@milkdown/crepe 7.19.2 → 7.20.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/cjs/builder.js +43 -1
- package/lib/cjs/builder.js.map +1 -1
- package/lib/cjs/feature/block-edit/index.js +8 -2
- package/lib/cjs/feature/block-edit/index.js.map +1 -1
- package/lib/cjs/feature/code-mirror/index.js +1 -0
- package/lib/cjs/feature/code-mirror/index.js.map +1 -1
- package/lib/cjs/feature/cursor/index.js +1 -0
- package/lib/cjs/feature/cursor/index.js.map +1 -1
- package/lib/cjs/feature/image-block/index.js +4 -1
- package/lib/cjs/feature/image-block/index.js.map +1 -1
- package/lib/cjs/feature/latex/index.js +5 -0
- package/lib/cjs/feature/latex/index.js.map +1 -1
- package/lib/cjs/feature/link-tooltip/index.js +1 -0
- package/lib/cjs/feature/link-tooltip/index.js.map +1 -1
- package/lib/cjs/feature/list-item/index.js +1 -0
- package/lib/cjs/feature/list-item/index.js.map +1 -1
- package/lib/cjs/feature/placeholder/index.js +1 -0
- package/lib/cjs/feature/placeholder/index.js.map +1 -1
- package/lib/cjs/feature/table/index.js +1 -0
- package/lib/cjs/feature/table/index.js.map +1 -1
- package/lib/cjs/feature/toolbar/index.js +9 -2
- package/lib/cjs/feature/toolbar/index.js.map +1 -1
- package/lib/cjs/feature/top-bar/index.js +790 -0
- package/lib/cjs/feature/top-bar/index.js.map +1 -0
- package/lib/cjs/index.js +630 -142
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/builder.js +43 -1
- package/lib/esm/builder.js.map +1 -1
- package/lib/esm/feature/block-edit/index.js +8 -2
- package/lib/esm/feature/block-edit/index.js.map +1 -1
- package/lib/esm/feature/code-mirror/index.js +1 -0
- package/lib/esm/feature/code-mirror/index.js.map +1 -1
- package/lib/esm/feature/cursor/index.js +1 -0
- package/lib/esm/feature/cursor/index.js.map +1 -1
- package/lib/esm/feature/image-block/index.js +4 -1
- package/lib/esm/feature/image-block/index.js.map +1 -1
- package/lib/esm/feature/latex/index.js +5 -0
- package/lib/esm/feature/latex/index.js.map +1 -1
- package/lib/esm/feature/link-tooltip/index.js +1 -0
- package/lib/esm/feature/link-tooltip/index.js.map +1 -1
- package/lib/esm/feature/list-item/index.js +1 -0
- package/lib/esm/feature/list-item/index.js.map +1 -1
- package/lib/esm/feature/placeholder/index.js +1 -0
- package/lib/esm/feature/placeholder/index.js.map +1 -1
- package/lib/esm/feature/table/index.js +1 -0
- package/lib/esm/feature/table/index.js.map +1 -1
- package/lib/esm/feature/toolbar/index.js +9 -2
- package/lib/esm/feature/toolbar/index.js.map +1 -1
- package/lib/esm/feature/top-bar/index.js +788 -0
- package/lib/esm/feature/top-bar/index.js.map +1 -0
- package/lib/esm/index.js +631 -143
- package/lib/esm/index.js.map +1 -1
- package/lib/theme/common/style.css +1 -0
- package/lib/theme/common/top-bar.css +152 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/builder.d.ts +2 -1
- package/lib/types/core/builder.d.ts.map +1 -1
- package/lib/types/feature/block-edit/handle/component.d.ts.map +1 -1
- package/lib/types/feature/block-edit/menu/component.d.ts.map +1 -1
- package/lib/types/feature/image-block/index.d.ts +2 -0
- package/lib/types/feature/image-block/index.d.ts.map +1 -1
- package/lib/types/feature/index.d.ts +4 -1
- package/lib/types/feature/index.d.ts.map +1 -1
- package/lib/types/feature/latex/inline-tooltip/component.d.ts.map +1 -1
- package/lib/types/feature/loader.d.ts.map +1 -1
- package/lib/types/feature/toolbar/component.d.ts.map +1 -1
- package/lib/types/feature/toolbar/config.d.ts +1 -1
- package/lib/types/feature/top-bar/component.d.ts +11 -0
- package/lib/types/feature/top-bar/component.d.ts.map +1 -0
- package/lib/types/feature/top-bar/config.d.ts +34 -0
- package/lib/types/feature/top-bar/config.d.ts.map +1 -0
- package/lib/types/feature/top-bar/index.d.ts +26 -0
- package/lib/types/feature/top-bar/index.d.ts.map +1 -0
- package/lib/types/icons/code-block.d.ts +2 -0
- package/lib/types/icons/code-block.d.ts.map +1 -0
- package/lib/types/icons/index.d.ts +1 -0
- package/lib/types/icons/index.d.ts.map +1 -1
- package/lib/types/utils/group-builder.d.ts +1 -1
- package/lib/types/utils/group-builder.d.ts.map +1 -1
- package/lib/types/utils/keep-alive.d.ts +2 -0
- package/lib/types/utils/keep-alive.d.ts.map +1 -0
- package/package.json +18 -13
- package/src/core/builder.ts +39 -2
- package/src/feature/block-edit/handle/component.tsx +3 -2
- package/src/feature/block-edit/menu/component.tsx +3 -2
- package/src/feature/block-edit/menu/config.ts +1 -1
- package/src/feature/image-block/index.ts +4 -0
- package/src/feature/index.ts +6 -0
- package/src/feature/latex/inline-tooltip/component.tsx +4 -2
- package/src/feature/loader.ts +4 -0
- package/src/feature/toolbar/component.tsx +7 -5
- package/src/feature/top-bar/component.tsx +198 -0
- package/src/feature/top-bar/config.ts +367 -0
- package/src/feature/top-bar/index.ts +113 -0
- package/src/icons/code-block.ts +12 -0
- package/src/icons/index.ts +1 -0
- package/src/theme/common/style.css +1 -0
- package/src/theme/common/top-bar.css +156 -0
- package/src/utils/group-builder.ts +1 -1
- package/src/utils/keep-alive.ts +3 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type DefaultValue, Editor } from '@milkdown/kit/core';
|
|
2
2
|
import { type ListenerManager } from '@milkdown/kit/plugin/listener';
|
|
3
|
-
import type {
|
|
3
|
+
import type { CrepeFeatureConfig } from '../feature';
|
|
4
4
|
import type { DefineFeature } from '../feature/shared';
|
|
5
|
+
import { CrepeFeature } from '../feature';
|
|
5
6
|
export interface CrepeBuilderConfig {
|
|
6
7
|
root?: Node | string | null;
|
|
7
8
|
defaultValue?: DefaultValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EAEjB,MAAM,EAKP,MAAM,oBAAoB,CAAA;AAI3B,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAA;AAOtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAIzC,MAAM,WAAW,kBAAkB;IAIjC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAG3B,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAID,qBAAa,YAAY;;gBAYX,EAAE,IAAI,EAAE,YAAiB,EAAE,GAAE,kBAAuB;IAgEhE,UAAU,EAAE;QACV,CAAC,CAAC,SAAS,YAAY,EACrB,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC7C,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,YAAY,CAAA;QACf,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,CAAA;KACzD,CAGA;IAGD,MAAM,wBAEL;IAGD,OAAO,wBAEN;IAGD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAGD,IAAI,QAAQ,YAEX;IAGD,WAAW,GAAI,OAAO,OAAO,UAW5B;IAGD,WAAW,eAEV;IAGD,EAAE,GAAI,IAAI,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,UAavC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/handle/component.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/handle/component.tsx"],"names":[],"mappings":"AAOA,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,WAAW,4SA6CtB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,EAOL,KAAK,GAAG,EAET,MAAM,KAAK,CAAA;AAEZ,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,EAOL,KAAK,GAAG,EAET,MAAM,KAAK,CAAA;AAEZ,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAA;AAOhD,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAClB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,IAAI,8RAgNf,CAAA"}
|
|
@@ -15,6 +15,8 @@ interface ImageBlockConfig {
|
|
|
15
15
|
blockUploadPlaceholderText: string;
|
|
16
16
|
blockOnUpload: (file: File) => Promise<string>;
|
|
17
17
|
onImageLoadError: (event: Event) => void | Promise<void>;
|
|
18
|
+
maxWidth: number;
|
|
19
|
+
maxHeight: number;
|
|
18
20
|
}
|
|
19
21
|
export type ImageBlockFeatureConfig = Partial<ImageBlockConfig>;
|
|
20
22
|
export declare const imageBlock: DefineFeature<ImageBlockFeatureConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/image-block/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAM9C,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAEtD,eAAe,EAAE,MAAM,CAAA;IACvB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,2BAA2B,EAAE,MAAM,CAAA;IACnC,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAE/C,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,2BAA2B,EAAE,MAAM,CAAA;IACnC,0BAA0B,EAAE,MAAM,CAAA;IAClC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9C,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/image-block/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAM9C,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAEtD,eAAe,EAAE,MAAM,CAAA;IACvB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,2BAA2B,EAAE,MAAM,CAAA;IACnC,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAE/C,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,2BAA2B,EAAE,MAAM,CAAA;IACnC,0BAA0B,EAAE,MAAM,CAAA;IAClC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9C,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAE/D,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,uBAAuB,CAkC7D,CAAA"}
|
|
@@ -8,6 +8,7 @@ import type { ListItemFeatureConfig } from './list-item';
|
|
|
8
8
|
import type { PlaceholderFeatureConfig } from './placeholder';
|
|
9
9
|
import type { TableFeatureConfig } from './table';
|
|
10
10
|
import type { ToolbarFeatureConfig } from './toolbar';
|
|
11
|
+
import type { TopBarFeatureConfig } from './top-bar';
|
|
11
12
|
export declare enum CrepeFeature {
|
|
12
13
|
CodeMirror = "code-mirror",
|
|
13
14
|
ListItem = "list-item",
|
|
@@ -18,7 +19,8 @@ export declare enum CrepeFeature {
|
|
|
18
19
|
Toolbar = "toolbar",
|
|
19
20
|
Placeholder = "placeholder",
|
|
20
21
|
Table = "table",
|
|
21
|
-
Latex = "latex"
|
|
22
|
+
Latex = "latex",
|
|
23
|
+
TopBar = "top-bar"
|
|
22
24
|
}
|
|
23
25
|
export interface CrepeFeatureConfig {
|
|
24
26
|
[CrepeFeature.Cursor]?: CursorFeatureConfig;
|
|
@@ -31,6 +33,7 @@ export interface CrepeFeatureConfig {
|
|
|
31
33
|
[CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig;
|
|
32
34
|
[CrepeFeature.Table]?: TableFeatureConfig;
|
|
33
35
|
[CrepeFeature.Latex]?: LatexFeatureConfig;
|
|
36
|
+
[CrepeFeature.TopBar]?: TopBarFeatureConfig;
|
|
34
37
|
}
|
|
35
38
|
export declare const defaultFeatures: Record<CrepeFeature, boolean>;
|
|
36
39
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/feature/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/feature/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAKpD,oBAAY,YAAY;IAEtB,UAAU,gBAAgB;IAG1B,QAAQ,cAAc;IAGtB,WAAW,iBAAiB;IAG5B,MAAM,WAAW;IAGjB,UAAU,gBAAgB;IAG1B,SAAS,eAAe;IAGxB,OAAO,YAAY;IAGnB,WAAW,gBAAgB;IAG3B,KAAK,UAAU;IAGf,KAAK,UAAU;IAGf,MAAM,YAAY;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,mBAAmB,CAAA;IAC3C,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,qBAAqB,CAAA;IAC/C,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,wBAAwB,CAAA;IACrD,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,uBAAuB,CAAA;IACnD,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,sBAAsB,CAAA;IACjD,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,wBAAwB,CAAA;IACrD,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,oBAAoB,CAAA;IAC7C,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,uBAAuB,CAAA;IACnD,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAA;IACzC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAA;IACzC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,mBAAmB,CAAA;CAC5C;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAYzD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/feature/latex/inline-tooltip/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG1D,OAAO,EAAmB,KAAK,UAAU,EAAoB,MAAM,KAAK,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/feature/latex/inline-tooltip/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG1D,OAAO,EAAmB,KAAK,UAAU,EAAoB,MAAM,KAAK,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;AAMrC,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5B,SAAS,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IACxC,WAAW,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,YAAY,8SAyCvB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/feature/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAMhD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/feature/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAMhD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAStC,wBAAgB,WAAW,CACzB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,KAAK,QAqCf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/feature/toolbar/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAK1D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,UAAU,EAIhB,MAAM,KAAK,CAAA;AAEZ,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAA;AAO7C,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAClB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/feature/toolbar/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAK1D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,UAAU,EAIhB,MAAM,KAAK,CAAA;AAEZ,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAA;AAO7C,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAClB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,OAAO,oSA6ElB,CAAA"}
|
|
@@ -10,7 +10,7 @@ export declare function getGroups(config?: ToolbarFeatureConfig, ctx?: Ctx): {
|
|
|
10
10
|
items: Omit<{
|
|
11
11
|
index: number;
|
|
12
12
|
key: string;
|
|
13
|
-
onRun
|
|
13
|
+
onRun?: (ctx: Ctx) => void;
|
|
14
14
|
} & ToolbarItem, "index">[];
|
|
15
15
|
}[];
|
|
16
16
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Ctx } from '@milkdown/kit/ctx';
|
|
2
|
+
import { type Ref } from 'vue';
|
|
3
|
+
import type { TopBarFeatureConfig } from '.';
|
|
4
|
+
type TopBarProps = {
|
|
5
|
+
ctx: Ctx;
|
|
6
|
+
version: Ref<number>;
|
|
7
|
+
config?: TopBarFeatureConfig;
|
|
8
|
+
};
|
|
9
|
+
export declare const TopBar: import("vue").DefineComponent<TopBarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<TopBarProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/feature/top-bar/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAK5C,OAAO,EAEL,KAAK,GAAG,EAQT,MAAM,KAAK,CAAA;AAEZ,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAA;AAO5C,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,MAAM,kSAuKjB,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Ctx } from '@milkdown/kit/ctx';
|
|
2
|
+
import type { TopBarFeatureConfig } from '.';
|
|
3
|
+
export interface TopBarSelectorOption {
|
|
4
|
+
label: string;
|
|
5
|
+
onSelect: (ctx: Ctx) => void;
|
|
6
|
+
}
|
|
7
|
+
export interface TopBarSelector {
|
|
8
|
+
options: TopBarSelectorOption[];
|
|
9
|
+
activeLabel: (ctx: Ctx) => string;
|
|
10
|
+
chevronIcon?: string;
|
|
11
|
+
}
|
|
12
|
+
export type TopBarItem = {
|
|
13
|
+
active: (ctx: Ctx) => boolean;
|
|
14
|
+
icon: string;
|
|
15
|
+
selector?: TopBarSelector;
|
|
16
|
+
};
|
|
17
|
+
export type HeadingOption = {
|
|
18
|
+
label: string;
|
|
19
|
+
level: number | null;
|
|
20
|
+
};
|
|
21
|
+
export declare const defaultHeadingOptions: HeadingOption[];
|
|
22
|
+
export declare function getCurrentHeading(ctx: Ctx, options?: HeadingOption[]): HeadingOption;
|
|
23
|
+
export declare function setHeading(ctx: Ctx, level: number | null): void;
|
|
24
|
+
export declare function buildHeadingSelector(headingOptions?: HeadingOption[], chevronIcon?: string): TopBarItem;
|
|
25
|
+
export declare function getGroups(config?: TopBarFeatureConfig, ctx?: Ctx): {
|
|
26
|
+
key: string;
|
|
27
|
+
label: string;
|
|
28
|
+
items: Omit<{
|
|
29
|
+
index: number;
|
|
30
|
+
key: string;
|
|
31
|
+
onRun?: (ctx: Ctx) => void;
|
|
32
|
+
} & TopBarItem, "index">[];
|
|
33
|
+
}[];
|
|
34
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/feature/top-bar/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAmC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAA;AAuB5C,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAQhD,CAAA;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,aAAa,EAAE,GACxB,aAAa,CAef;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,QAYxD;AA0BD,wBAAgB,oBAAoB,CAClC,cAAc,CAAC,EAAE,aAAa,EAAE,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB,UAAU,CAcZ;AAED,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,GAAG;;;;;;;;IAuMhE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { GroupBuilder } from '../../utils';
|
|
2
|
+
import type { DefineFeature } from '../shared';
|
|
3
|
+
import type { HeadingOption, TopBarItem } from './config';
|
|
4
|
+
interface TopBarConfig {
|
|
5
|
+
headingOptions: HeadingOption[];
|
|
6
|
+
boldIcon: string;
|
|
7
|
+
italicIcon: string;
|
|
8
|
+
strikethroughIcon: string;
|
|
9
|
+
codeIcon: string;
|
|
10
|
+
linkIcon: string;
|
|
11
|
+
imageIcon: string;
|
|
12
|
+
tableIcon: string;
|
|
13
|
+
codeBlockIcon: string;
|
|
14
|
+
mathIcon: string;
|
|
15
|
+
quoteIcon: string;
|
|
16
|
+
hrIcon: string;
|
|
17
|
+
bulletListIcon: string;
|
|
18
|
+
orderedListIcon: string;
|
|
19
|
+
taskListIcon: string;
|
|
20
|
+
chevronDownIcon: string;
|
|
21
|
+
buildTopBar: (builder: GroupBuilder<TopBarItem>) => void;
|
|
22
|
+
}
|
|
23
|
+
export type TopBarFeatureConfig = Partial<TopBarConfig>;
|
|
24
|
+
export declare const topBar: DefineFeature<TopBarFeatureConfig>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/top-bar/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAMzD,UAAU,YAAY;IACpB,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;CACzD;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAkEvD,eAAO,MAAM,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAUrD,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const codeBlockIcon = "\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm8 10h6v2h-6v-2zm-3.333-3L5.838 9.172l1.415-1.415L11.495 12l-4.242 4.243-1.415-1.415L8.667 12z\"\n />\n </svg>\n";
|
|
2
|
+
//# sourceMappingURL=code-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../../src/icons/code-block.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,6VAWzB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
|
|
@@ -2,7 +2,7 @@ import type { Ctx } from '@milkdown/kit/ctx';
|
|
|
2
2
|
type MenuItem<T> = {
|
|
3
3
|
index: number;
|
|
4
4
|
key: string;
|
|
5
|
-
onRun
|
|
5
|
+
onRun?: (ctx: Ctx) => void;
|
|
6
6
|
} & T;
|
|
7
7
|
type WithRange<T, HasIndex extends true | false = true> = HasIndex extends true ? T & {
|
|
8
8
|
range: [start: number, end: number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/group-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE5C,KAAK,QAAQ,CAAC,CAAC,IAAI;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"group-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/group-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE5C,KAAK,QAAQ,CAAC,CAAC,IAAI;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAC3B,GAAG,CAAC,CAAA;AAEL,KAAK,SAAS,CAAC,CAAC,EAAE,QAAQ,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,QAAQ,SAAS,IAAI,GAC3E,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;CAAE,GAC3C,CAAC,CAAA;AAEL,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,QAAQ,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,SAAS,CAC5E;IACE,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,QAAQ,SAAS,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAA;CAC5E,EACD,QAAQ,CACT,CAAA;AAED,qBAAa,YAAY,CAAC,CAAC;;IAGzB,KAAK,aAGJ;IAkBD,QAAQ,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM;;iBA/B/B,MAAM;mBACJ,MAAM;;;uBAiBI,MAAM,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;;MAuBlE;IAED,QAAQ,GAAI,KAAK,MAAM;;iBA3ChB,MAAM;mBACJ,MAAM;;;uBAiBI,MAAM,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;;MA8BlE;IAED,KAAK;aAlDE,MAAM;eACJ,MAAM;;QAmDd;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keep-alive.d.ts","sourceRoot":"","sources":["../../../src/utils/keep-alive.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,QAAI"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milkdown/crepe",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
3
|
+
"version": "7.20.0",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"crepe",
|
|
6
|
+
"editor",
|
|
7
|
+
"milkdown",
|
|
8
|
+
"milkdown plugin"
|
|
9
|
+
],
|
|
5
10
|
"license": "MIT",
|
|
6
11
|
"repository": {
|
|
7
12
|
"type": "git",
|
|
8
13
|
"url": "git+https://github.com/Milkdown/milkdown.git",
|
|
9
14
|
"directory": "packages/crepe"
|
|
10
15
|
},
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"crepe",
|
|
15
|
-
"editor"
|
|
16
|
+
"files": [
|
|
17
|
+
"lib",
|
|
18
|
+
"src"
|
|
16
19
|
],
|
|
20
|
+
"type": "module",
|
|
17
21
|
"sideEffects": false,
|
|
22
|
+
"main": "./lib/esm/index.js",
|
|
18
23
|
"exports": {
|
|
19
24
|
".": {
|
|
20
25
|
"import": "./lib/esm/index.js",
|
|
@@ -76,6 +81,11 @@
|
|
|
76
81
|
"require": "./lib/cjs/feature/toolbar/index.js",
|
|
77
82
|
"types": "./lib/types/feature/toolbar/index.d.ts"
|
|
78
83
|
},
|
|
84
|
+
"./feature/top-bar": {
|
|
85
|
+
"import": "./lib/esm/feature/top-bar/index.js",
|
|
86
|
+
"require": "./lib/cjs/feature/top-bar/index.js",
|
|
87
|
+
"types": "./lib/types/feature/top-bar/index.d.ts"
|
|
88
|
+
},
|
|
79
89
|
"./theme/common/*": "./lib/theme/common/*",
|
|
80
90
|
"./theme/classic.css": "./lib/theme/crepe/style.css",
|
|
81
91
|
"./theme/classic-dark.css": "./lib/theme/crepe-dark/style.css",
|
|
@@ -84,11 +94,6 @@
|
|
|
84
94
|
"./theme/frame.css": "./lib/theme/frame/style.css",
|
|
85
95
|
"./theme/frame-dark.css": "./lib/theme/frame-dark/style.css"
|
|
86
96
|
},
|
|
87
|
-
"main": "./lib/esm/index.js",
|
|
88
|
-
"files": [
|
|
89
|
-
"lib",
|
|
90
|
-
"src"
|
|
91
|
-
],
|
|
92
97
|
"dependencies": {
|
|
93
98
|
"@codemirror/commands": "^6.2.4",
|
|
94
99
|
"@codemirror/language": "^6.10.1",
|
|
@@ -105,7 +110,7 @@
|
|
|
105
110
|
"remark-math": "^6.0.0",
|
|
106
111
|
"unist-util-visit": "^5.0.0",
|
|
107
112
|
"vue": "^3.5.20",
|
|
108
|
-
"@milkdown/kit": "7.
|
|
113
|
+
"@milkdown/kit": "7.20.0"
|
|
109
114
|
},
|
|
110
115
|
"scripts": {
|
|
111
116
|
"build": "pnpm run build:es && pnpm run build:theme && echo",
|
package/src/core/builder.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { imageBlockConfig } from '@milkdown/kit/component/image-block'
|
|
1
2
|
import {
|
|
2
3
|
type DefaultValue,
|
|
3
4
|
defaultValueCtx,
|
|
@@ -16,14 +17,16 @@ import {
|
|
|
16
17
|
type ListenerManager,
|
|
17
18
|
} from '@milkdown/kit/plugin/listener'
|
|
18
19
|
import { trailing } from '@milkdown/kit/plugin/trailing'
|
|
20
|
+
import { upload, uploadConfig } from '@milkdown/kit/plugin/upload'
|
|
19
21
|
import { commonmark } from '@milkdown/kit/preset/commonmark'
|
|
20
22
|
import { gfm } from '@milkdown/kit/preset/gfm'
|
|
21
23
|
import { getMarkdown } from '@milkdown/kit/utils'
|
|
22
24
|
|
|
23
|
-
import type {
|
|
25
|
+
import type { CrepeFeatureConfig } from '../feature'
|
|
24
26
|
import type { DefineFeature } from '../feature/shared'
|
|
25
27
|
|
|
26
|
-
import {
|
|
28
|
+
import { CrepeFeature } from '../feature'
|
|
29
|
+
import { CrepeCtx, FeaturesCtx, useCrepeFeatures } from './slice'
|
|
27
30
|
|
|
28
31
|
/// The crepe builder configuration.
|
|
29
32
|
export interface CrepeBuilderConfig {
|
|
@@ -69,6 +72,39 @@ export class CrepeBuilder {
|
|
|
69
72
|
...value,
|
|
70
73
|
size: 4,
|
|
71
74
|
}))
|
|
75
|
+
ctx.update(uploadConfig.key, (prev) => ({
|
|
76
|
+
...prev,
|
|
77
|
+
uploader: async (files, schema, ctx) => {
|
|
78
|
+
const features = useCrepeFeatures(ctx).get()
|
|
79
|
+
const hasImageBlock = features.includes(CrepeFeature.ImageBlock)
|
|
80
|
+
const nodeType = hasImageBlock
|
|
81
|
+
? schema.nodes['image-block']
|
|
82
|
+
: schema.nodes['image']
|
|
83
|
+
|
|
84
|
+
if (!nodeType) return []
|
|
85
|
+
|
|
86
|
+
const onUpload = hasImageBlock
|
|
87
|
+
? ctx.get(imageBlockConfig.key).onUpload
|
|
88
|
+
: undefined
|
|
89
|
+
|
|
90
|
+
const images: File[] = []
|
|
91
|
+
for (let i = 0; i < files.length; i++) {
|
|
92
|
+
const file = files.item(i)
|
|
93
|
+
if (file && file.type.includes('image')) images.push(file)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const nodes = await Promise.all(
|
|
97
|
+
images.map(async (file) => {
|
|
98
|
+
const src = onUpload
|
|
99
|
+
? await onUpload(file)
|
|
100
|
+
: URL.createObjectURL(file)
|
|
101
|
+
return nodeType.createAndFill({ src })!
|
|
102
|
+
})
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
return nodes
|
|
106
|
+
},
|
|
107
|
+
}))
|
|
72
108
|
})
|
|
73
109
|
.use(commonmark)
|
|
74
110
|
.use(listener)
|
|
@@ -76,6 +112,7 @@ export class CrepeBuilder {
|
|
|
76
112
|
.use(indent)
|
|
77
113
|
.use(trailing)
|
|
78
114
|
.use(clipboard)
|
|
115
|
+
.use(upload)
|
|
79
116
|
.use(gfm)
|
|
80
117
|
}
|
|
81
118
|
|
|
@@ -14,9 +14,10 @@ import {
|
|
|
14
14
|
|
|
15
15
|
import type { BlockEditFeatureConfig } from '..'
|
|
16
16
|
|
|
17
|
+
import { keepAlive } from '../../../utils/keep-alive'
|
|
17
18
|
import { getGroups } from './config'
|
|
18
19
|
|
|
19
|
-
h
|
|
20
|
+
keepAlive(h)
|
|
20
21
|
|
|
21
22
|
type MenuProps = {
|
|
22
23
|
ctx: Ctx
|
|
@@ -91,7 +92,7 @@ export const Menu = defineComponent<MenuProps>({
|
|
|
91
92
|
const item = groupInfo.value.groups
|
|
92
93
|
.flatMap((group) => group.items)
|
|
93
94
|
.at(index)
|
|
94
|
-
if (item && ctx) item.onRun(ctx)
|
|
95
|
+
if (item?.onRun && ctx) item.onRun(ctx)
|
|
95
96
|
|
|
96
97
|
hide()
|
|
97
98
|
}
|
|
@@ -31,6 +31,8 @@ interface ImageBlockConfig {
|
|
|
31
31
|
blockUploadPlaceholderText: string
|
|
32
32
|
blockOnUpload: (file: File) => Promise<string>
|
|
33
33
|
onImageLoadError: (event: Event) => void | Promise<void>
|
|
34
|
+
maxWidth: number
|
|
35
|
+
maxHeight: number
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
export type ImageBlockFeatureConfig = Partial<ImageBlockConfig>
|
|
@@ -63,6 +65,8 @@ export const imageBlock: DefineFeature<ImageBlockFeatureConfig> = (
|
|
|
63
65
|
onUpload: config?.blockOnUpload ?? config?.onUpload ?? value.onUpload,
|
|
64
66
|
proxyDomURL: config?.proxyDomURL,
|
|
65
67
|
onImageLoadError: config?.onImageLoadError ?? value.onImageLoadError,
|
|
68
|
+
maxWidth: config?.maxWidth,
|
|
69
|
+
maxHeight: config?.maxHeight,
|
|
66
70
|
}))
|
|
67
71
|
})
|
|
68
72
|
.use(imageBlockComponent)
|
package/src/feature/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { ListItemFeatureConfig } from './list-item'
|
|
|
8
8
|
import type { PlaceholderFeatureConfig } from './placeholder'
|
|
9
9
|
import type { TableFeatureConfig } from './table'
|
|
10
10
|
import type { ToolbarFeatureConfig } from './toolbar'
|
|
11
|
+
import type { TopBarFeatureConfig } from './top-bar'
|
|
11
12
|
|
|
12
13
|
/// The crepe editor feature flags.
|
|
13
14
|
/// Every feature is enabled by default.
|
|
@@ -42,6 +43,9 @@ export enum CrepeFeature {
|
|
|
42
43
|
|
|
43
44
|
/// Mathematical formula support with both inline and block math rendering using KaTeX.
|
|
44
45
|
Latex = 'latex',
|
|
46
|
+
|
|
47
|
+
/// Fixed top toolbar with heading selector, formatting buttons, insert actions, and block commands.
|
|
48
|
+
TopBar = 'top-bar',
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
export interface CrepeFeatureConfig {
|
|
@@ -55,6 +59,7 @@ export interface CrepeFeatureConfig {
|
|
|
55
59
|
[CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig
|
|
56
60
|
[CrepeFeature.Table]?: TableFeatureConfig
|
|
57
61
|
[CrepeFeature.Latex]?: LatexFeatureConfig
|
|
62
|
+
[CrepeFeature.TopBar]?: TopBarFeatureConfig
|
|
58
63
|
}
|
|
59
64
|
|
|
60
65
|
export const defaultFeatures: Record<CrepeFeature, boolean> = {
|
|
@@ -68,4 +73,5 @@ export const defaultFeatures: Record<CrepeFeature, boolean> = {
|
|
|
68
73
|
[CrepeFeature.CodeMirror]: true,
|
|
69
74
|
[CrepeFeature.Table]: true,
|
|
70
75
|
[CrepeFeature.Latex]: true,
|
|
76
|
+
[CrepeFeature.TopBar]: false,
|
|
71
77
|
}
|
|
@@ -5,14 +5,16 @@ import { defineComponent, type ShallowRef, type VNodeRef, h } from 'vue'
|
|
|
5
5
|
|
|
6
6
|
import type { LatexConfig } from '..'
|
|
7
7
|
|
|
8
|
+
import { keepAlive } from '../../../utils/keep-alive'
|
|
9
|
+
|
|
10
|
+
keepAlive(h)
|
|
11
|
+
|
|
8
12
|
type LatexTooltipProps = {
|
|
9
13
|
config: Partial<LatexConfig>
|
|
10
14
|
innerView: ShallowRef<EditorView | null>
|
|
11
15
|
updateValue: ShallowRef<() => void>
|
|
12
16
|
}
|
|
13
17
|
|
|
14
|
-
h
|
|
15
|
-
|
|
16
18
|
export const LatexTooltip = defineComponent<LatexTooltipProps>({
|
|
17
19
|
props: {
|
|
18
20
|
config: {
|
package/src/feature/loader.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { listItem } from './list-item'
|
|
|
11
11
|
import { placeholder } from './placeholder'
|
|
12
12
|
import { table } from './table'
|
|
13
13
|
import { toolbar } from './toolbar'
|
|
14
|
+
import { topBar } from './top-bar'
|
|
14
15
|
|
|
15
16
|
export function loadFeature(
|
|
16
17
|
feature: CrepeFeature,
|
|
@@ -48,5 +49,8 @@ export function loadFeature(
|
|
|
48
49
|
case CrepeFeature.Latex: {
|
|
49
50
|
return latex(editor, config)
|
|
50
51
|
}
|
|
52
|
+
case CrepeFeature.TopBar: {
|
|
53
|
+
return topBar(editor, config)
|
|
54
|
+
}
|
|
51
55
|
}
|
|
52
56
|
}
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
|
|
16
16
|
import type { ToolbarFeatureConfig } from '.'
|
|
17
17
|
|
|
18
|
+
import { keepAlive } from '../../utils/keep-alive'
|
|
18
19
|
import { getGroups, type ToolbarItem } from './config'
|
|
19
20
|
|
|
20
|
-
h
|
|
21
|
-
Fragment
|
|
21
|
+
keepAlive(h, Fragment)
|
|
22
22
|
|
|
23
23
|
type ToolbarProps = {
|
|
24
24
|
ctx: Ctx
|
|
@@ -54,14 +54,16 @@ export const Toolbar = defineComponent<ToolbarProps>({
|
|
|
54
54
|
setup(props) {
|
|
55
55
|
const { ctx, config } = props
|
|
56
56
|
|
|
57
|
-
const onClick = (fn
|
|
57
|
+
const onClick = (fn?: (ctx: Ctx) => void) => (e: MouseEvent) => {
|
|
58
58
|
e.preventDefault()
|
|
59
|
-
|
|
59
|
+
if (ctx) {
|
|
60
|
+
fn?.(ctx)
|
|
61
|
+
}
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
function checkActive(checker: ToolbarItem['active']) {
|
|
63
65
|
// make sure the function subscribed to vue reactive
|
|
64
|
-
props.selection.value
|
|
66
|
+
keepAlive(props.selection.value)
|
|
65
67
|
// Check if the edtior is ready
|
|
66
68
|
const status = ctx.get(editorCtx).status
|
|
67
69
|
if (status !== EditorStatus.Created) return false
|