@milkdown/crepe 7.12.1 → 7.13.1

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.
Files changed (58) hide show
  1. package/lib/cjs/feature/block-edit/index.js +248 -229
  2. package/lib/cjs/feature/block-edit/index.js.map +1 -1
  3. package/lib/cjs/feature/latex/index.js +41 -3
  4. package/lib/cjs/feature/latex/index.js.map +1 -1
  5. package/lib/cjs/feature/placeholder/index.js.map +1 -1
  6. package/lib/cjs/feature/toolbar/index.js +213 -160
  7. package/lib/cjs/feature/toolbar/index.js.map +1 -1
  8. package/lib/cjs/index.js +408 -390
  9. package/lib/cjs/index.js.map +1 -1
  10. package/lib/esm/feature/block-edit/index.js +250 -231
  11. package/lib/esm/feature/block-edit/index.js.map +1 -1
  12. package/lib/esm/feature/latex/index.js +42 -4
  13. package/lib/esm/feature/latex/index.js.map +1 -1
  14. package/lib/esm/feature/placeholder/index.js.map +1 -1
  15. package/lib/esm/feature/toolbar/index.js +217 -164
  16. package/lib/esm/feature/toolbar/index.js.map +1 -1
  17. package/lib/esm/index.js +414 -396
  18. package/lib/esm/index.js.map +1 -1
  19. package/lib/tsconfig.tsbuildinfo +1 -1
  20. package/lib/types/feature/block-edit/index.d.ts +78 -38
  21. package/lib/types/feature/block-edit/index.d.ts.map +1 -1
  22. package/lib/types/feature/block-edit/menu/config.d.ts +3 -2
  23. package/lib/types/feature/block-edit/menu/config.d.ts.map +1 -1
  24. package/lib/types/feature/block-edit/menu/utils.d.ts +2 -24
  25. package/lib/types/feature/block-edit/menu/utils.d.ts.map +1 -1
  26. package/lib/types/feature/latex/command.d.ts +2 -0
  27. package/lib/types/feature/latex/command.d.ts.map +1 -0
  28. package/lib/types/feature/latex/index.d.ts.map +1 -1
  29. package/lib/types/feature/toolbar/component.d.ts +1 -1
  30. package/lib/types/feature/toolbar/component.d.ts.map +1 -1
  31. package/lib/types/feature/toolbar/config.d.ts +12 -0
  32. package/lib/types/feature/toolbar/config.d.ts.map +1 -0
  33. package/lib/types/feature/toolbar/index.d.ts +3 -0
  34. package/lib/types/feature/toolbar/index.d.ts.map +1 -1
  35. package/lib/types/utils/checker.d.ts +4 -0
  36. package/lib/types/utils/checker.d.ts.map +1 -0
  37. package/lib/types/utils/group-builder.d.ts +43 -0
  38. package/lib/types/utils/group-builder.d.ts.map +1 -0
  39. package/lib/types/utils/index.d.ts +3 -3
  40. package/lib/types/utils/index.d.ts.map +1 -1
  41. package/lib/types/utils/types.d.ts +4 -0
  42. package/lib/types/utils/types.d.ts.map +1 -0
  43. package/package.json +2 -2
  44. package/src/feature/block-edit/index.ts +78 -38
  45. package/src/feature/block-edit/menu/config.ts +306 -240
  46. package/src/feature/block-edit/menu/utils.ts +1 -106
  47. package/src/feature/latex/command.ts +48 -0
  48. package/src/feature/latex/index.ts +2 -0
  49. package/src/feature/toolbar/component.tsx +44 -194
  50. package/src/feature/toolbar/config.ts +136 -0
  51. package/src/feature/toolbar/index.ts +3 -0
  52. package/src/utils/checker.ts +11 -0
  53. package/src/utils/group-builder.ts +68 -0
  54. package/src/utils/index.ts +3 -11
  55. package/src/utils/types.ts +9 -0
  56. package/lib/types/feature/block-edit/menu/group-builder.d.ts +0 -29
  57. package/lib/types/feature/block-edit/menu/group-builder.d.ts.map +0 -1
  58. package/src/feature/block-edit/menu/group-builder.ts +0 -49
@@ -1,46 +1,86 @@
1
+ import type { DeepPartial } from '../../utils';
2
+ import type { GroupBuilder } from '../../utils/group-builder';
1
3
  import type { DefineFeature } from '../shared';
2
- import type { GroupBuilder } from './menu/group-builder';
4
+ import type { SlashMenuItem } from './menu/utils';
3
5
  interface BlockEditConfig {
4
6
  handleAddIcon: string;
5
7
  handleDragIcon: string;
6
- buildMenu: (builder: GroupBuilder) => void;
7
- slashMenuTextGroupLabel: string;
8
- slashMenuTextIcon: string;
9
- slashMenuTextLabel: string;
10
- slashMenuH1Icon: string;
11
- slashMenuH1Label: string;
12
- slashMenuH2Icon: string;
13
- slashMenuH2Label: string;
14
- slashMenuH3Icon: string;
15
- slashMenuH3Label: string;
16
- slashMenuH4Icon: string;
17
- slashMenuH4Label: string;
18
- slashMenuH5Icon: string;
19
- slashMenuH5Label: string;
20
- slashMenuH6Icon: string;
21
- slashMenuH6Label: string;
22
- slashMenuQuoteIcon: string;
23
- slashMenuQuoteLabel: string;
24
- slashMenuDividerIcon: string;
25
- slashMenuDividerLabel: string;
26
- slashMenuListGroupLabel: string;
27
- slashMenuBulletListIcon: string;
28
- slashMenuBulletListLabel: string;
29
- slashMenuOrderedListIcon: string;
30
- slashMenuOrderedListLabel: string;
31
- slashMenuTaskListIcon: string;
32
- slashMenuTaskListLabel: string;
33
- slashMenuAdvancedGroupLabel: string;
34
- slashMenuImageIcon: string;
35
- slashMenuImageLabel: string;
36
- slashMenuCodeBlockIcon: string;
37
- slashMenuCodeBlockLabel: string;
38
- slashMenuTableIcon: string;
39
- slashMenuTableLabel: string;
40
- slashMenuMathIcon: string;
41
- slashMenuMathLabel: string;
8
+ buildMenu: (builder: GroupBuilder<SlashMenuItem>) => void;
9
+ textGroup: {
10
+ label: string;
11
+ text: {
12
+ label: string;
13
+ icon: string;
14
+ } | null;
15
+ h1: {
16
+ label: string;
17
+ icon: string;
18
+ } | null;
19
+ h2: {
20
+ label: string;
21
+ icon: string;
22
+ } | null;
23
+ h3: {
24
+ label: string;
25
+ icon: string;
26
+ } | null;
27
+ h4: {
28
+ label: string;
29
+ icon: string;
30
+ } | null;
31
+ h5: {
32
+ label: string;
33
+ icon: string;
34
+ } | null;
35
+ h6: {
36
+ label: string;
37
+ icon: string;
38
+ } | null;
39
+ quote: {
40
+ label: string;
41
+ icon: string;
42
+ } | null;
43
+ divider: {
44
+ label: string;
45
+ icon: string;
46
+ } | null;
47
+ } | null;
48
+ listGroup: {
49
+ label: string;
50
+ bulletList: {
51
+ label: string;
52
+ icon: string;
53
+ } | null;
54
+ orderedList: {
55
+ label: string;
56
+ icon: string;
57
+ } | null;
58
+ taskList: {
59
+ label: string;
60
+ icon: string;
61
+ } | null;
62
+ } | null;
63
+ advancedGroup: {
64
+ label: string;
65
+ image: {
66
+ label: string;
67
+ icon: string;
68
+ } | null;
69
+ codeBlock: {
70
+ label: string;
71
+ icon: string;
72
+ } | null;
73
+ table: {
74
+ label: string;
75
+ icon: string;
76
+ } | null;
77
+ math: {
78
+ label: string;
79
+ icon: string;
80
+ } | null;
81
+ } | null;
42
82
  }
43
- export type BlockEditFeatureConfig = Partial<BlockEditConfig>;
83
+ export type BlockEditFeatureConfig = DeepPartial<BlockEditConfig>;
44
84
  export declare const blockEdit: DefineFeature<BlockEditFeatureConfig>;
45
85
  export {};
46
86
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/block-edit/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOxD,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAA;IAE1C,uBAAuB,EAAE,MAAM,CAAA;IAC/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,qBAAqB,EAAE,MAAM,CAAA;IAE7B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,wBAAwB,EAAE,MAAM,CAAA;IAChC,wBAAwB,EAAE,MAAM,CAAA;IAChC,yBAAyB,EAAE,MAAM,CAAA;IACjC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,sBAAsB,EAAE,MAAM,CAAA;IAE9B,2BAA2B,EAAE,MAAM,CAAA;IACnC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAE7D,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,sBAAsB,CAW3D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/block-edit/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAOjD,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IAEzD,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,EAAE,EAAE;YACF,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,EAAE,EAAE;YACF,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,EAAE,EAAE;YACF,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,EAAE,EAAE;YACF,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,EAAE,EAAE;YACF,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,EAAE,EAAE;YACF,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;KACT,GAAG,IAAI,CAAA;IAER,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE;YACV,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,WAAW,EAAE;YACX,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,QAAQ,EAAE;YACR,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;KACT,GAAG,IAAI,CAAA;IAER,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,SAAS,EAAE;YACT,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;QACR,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;KACT,GAAG,IAAI,CAAA;CACT;AAED,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,eAAe,CAAC,CAAA;AAEjE,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,sBAAsB,CAW3D,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import type { Ctx } from '@milkdown/kit/ctx';
2
2
  import type { BlockEditFeatureConfig } from '../index';
3
- import type { MenuItemGroup } from './utils';
3
+ import type { SlashMenuItem } from './utils';
4
+ import { type MenuItemGroup } from '../../../utils/group-builder';
4
5
  export declare function getGroups(filter?: string, config?: BlockEditFeatureConfig, ctx?: Ctx): {
5
- groups: MenuItemGroup[];
6
+ groups: MenuItemGroup<SlashMenuItem>[];
6
7
  size: number;
7
8
  };
8
9
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAiB5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AA8B5C,wBAAgB,SAAS,CACvB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,sBAAsB,EAC/B,GAAG,CAAC,EAAE,GAAG;YAmRW,aAAa,EAAE;;EAGpC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAqB5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAsB5C,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE/E,wBAAgB,SAAS,CACvB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,sBAAsB,EAC/B,GAAG,CAAC,EAAE,GAAG;YAuVW,aAAa,CAAC,aAAa,CAAC,EAAE;;EAGnD"}
@@ -1,27 +1,5 @@
1
- import type { Ctx } from '@milkdown/kit/ctx';
2
- import type { Attrs, NodeType } from '@milkdown/kit/prose/model';
3
- import type { Command, Transaction } from '@milkdown/kit/prose/state';
4
- export interface MenuItem {
5
- index: number;
6
- key: string;
1
+ export type SlashMenuItem = {
7
2
  label: string;
8
3
  icon: string;
9
- onRun: (ctx: Ctx) => void;
10
- }
11
- type WithRange<T, HasIndex extends true | false = true> = HasIndex extends true ? T & {
12
- range: [start: number, end: number];
13
- } : T;
14
- export type MenuItemGroup<HasIndex extends true | false = true> = WithRange<{
15
- key: string;
16
- label: string;
17
- items: HasIndex extends true ? MenuItem[] : Omit<MenuItem, 'index'>[];
18
- }, HasIndex>;
19
- export declare function clearRange(tr: Transaction): Transaction;
20
- export declare function setBlockType(tr: Transaction, nodeType: NodeType, attrs?: Attrs | null): Transaction;
21
- export declare function wrapInBlockType(tr: Transaction, nodeType: NodeType, attrs?: Attrs | null): Transaction | null;
22
- export declare function addBlockType(tr: Transaction, nodeType: NodeType, attrs?: Attrs | null): Transaction | null;
23
- export declare function clearContentAndSetBlockType(nodeType: NodeType, attrs?: Attrs | null): Command;
24
- export declare function clearContentAndWrapInBlockType(nodeType: NodeType, attrs?: Attrs | null): Command;
25
- export declare function clearContentAndAddBlockType(nodeType: NodeType, attrs?: Attrs | null): Command;
26
- export {};
4
+ };
27
5
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIrE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAC1B;AAED,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,QAAQ,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,SAAS,CACzE;IACE,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,QAAQ,SAAS,IAAI,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAA;CACtE,EACD,QAAQ,CACT,CAAA;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,eAMzC;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,eAI3B;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,sBAS3B;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,sBAM3B;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACzB,OAAO,CAQT;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACzB,OAAO,CAST;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACzB,OAAO,CAST"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const toggleLatexCommand: import("@milkdown/utils").$Command<unknown>;
2
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/feature/latex/command.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,kBAAkB,6CAuC7B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/latex/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAKzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAY9C,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAErD,eAAO,MAAM,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAqCnD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/latex/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAKzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAa9C,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAErD,eAAO,MAAM,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAsCnD,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { Ctx } from '@milkdown/kit/ctx';
2
- import { type Selection } from '@milkdown/kit/prose/state';
2
+ import type { Selection } from '@milkdown/kit/prose/state';
3
3
  import { type Ref, type ShallowRef } from 'vue';
4
4
  import type { ToolbarFeatureConfig } from '.';
5
5
  type ToolbarProps = {
@@ -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;AAmB5C,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAmB,KAAK,GAAG,EAAE,KAAK,UAAU,EAAe,MAAM,KAAK,CAAA;AAE7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAA;AAiB7C,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,oSA2MlB,CAAA"}
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,oSA2ElB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { Ctx } from '@milkdown/kit/ctx';
2
+ import type { ToolbarFeatureConfig } from '.';
3
+ export type ToolbarItem = {
4
+ active: (ctx: Ctx) => boolean;
5
+ icon: string;
6
+ };
7
+ export declare function getGroups(config?: ToolbarFeatureConfig, ctx?: Ctx): {
8
+ key: string;
9
+ label: string;
10
+ items: Omit<import("../../utils").MenuItem<ToolbarItem>, "index">[];
11
+ }[];
12
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/feature/toolbar/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAoB5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAA;AAgB7C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE,GAAG;;;;IA8FjE"}
@@ -1,4 +1,6 @@
1
+ import type { GroupBuilder } from '../../utils';
1
2
  import type { DefineFeature } from '../shared';
3
+ import type { ToolbarItem } from './config';
2
4
  interface ToolbarConfig {
3
5
  boldIcon: string;
4
6
  codeIcon: string;
@@ -6,6 +8,7 @@ interface ToolbarConfig {
6
8
  linkIcon: string;
7
9
  strikethroughIcon: string;
8
10
  latexIcon: string;
11
+ buildToolbar: (builder: GroupBuilder<ToolbarItem>) => void;
9
12
  }
10
13
  export type ToolbarFeatureConfig = Partial<ToolbarConfig>;
11
14
  export declare const toolbar: DefineFeature<ToolbarFeatureConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/toolbar/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAM9C,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAqFzD,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAYvD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/toolbar/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAM3C,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;CAC3D;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAqFzD,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAYvD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Selection } from '@milkdown/kit/prose/state';
2
+ export declare function isInCodeBlock(selection: Selection): boolean;
3
+ export declare function isInList(selection: Selection): boolean;
4
+ //# sourceMappingURL=checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/utils/checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,WAGjD;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,WAG5C"}
@@ -0,0 +1,43 @@
1
+ import type { Ctx } from '@milkdown/kit/ctx';
2
+ export type MenuItem<T> = {
3
+ index: number;
4
+ key: string;
5
+ onRun: (ctx: Ctx) => void;
6
+ } & T;
7
+ type WithRange<T, HasIndex extends true | false = true> = HasIndex extends true ? T & {
8
+ range: [start: number, end: number];
9
+ } : T;
10
+ export type MenuItemGroup<T, HasIndex extends true | false = true> = WithRange<{
11
+ key: string;
12
+ label: string;
13
+ items: HasIndex extends true ? MenuItem<T>[] : Omit<MenuItem<T>, 'index'>[];
14
+ }, HasIndex>;
15
+ export declare class GroupBuilder<T> {
16
+ #private;
17
+ clear: () => this;
18
+ addGroup: (key: string, label: string) => {
19
+ group: {
20
+ key: string;
21
+ label: string;
22
+ items: Omit<MenuItem<T>, "index">[];
23
+ };
24
+ addItem: (key: string, item: Omit<MenuItem<T>, "key" | "index">) => /*elided*/ any;
25
+ clear: () => /*elided*/ any;
26
+ };
27
+ getGroup: (key: string) => {
28
+ group: {
29
+ key: string;
30
+ label: string;
31
+ items: Omit<MenuItem<T>, "index">[];
32
+ };
33
+ addItem: (key: string, item: Omit<MenuItem<T>, "key" | "index">) => /*elided*/ any;
34
+ clear: () => /*elided*/ any;
35
+ };
36
+ build: () => {
37
+ key: string;
38
+ label: string;
39
+ items: Omit<MenuItem<T>, "index">[];
40
+ }[];
41
+ }
42
+ export {};
43
+ //# sourceMappingURL=group-builder.d.ts.map
@@ -0,0 +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,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAC1B,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"}
@@ -1,4 +1,4 @@
1
- import type { Selection } from '@milkdown/kit/prose/state';
2
- export declare function isInCodeBlock(selection: Selection): boolean;
3
- export declare function isInList(selection: Selection): boolean;
1
+ export * from './checker';
2
+ export * from './group-builder';
3
+ export * from './types';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,WAGjD;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,WAG5C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA"}
@@ -0,0 +1,4 @@
1
+ export type DeepPartial<T> = {
2
+ [K in keyof T]?: T[K] extends (...args: any[]) => any ? T[K] : T[K] extends Record<string, any> ? DeepPartial<T[K]> : T[K] extends Record<string, any> | null | undefined ? DeepPartial<T[K]> | null | undefined : T[K];
3
+ };
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GACjD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,GACjD,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,GACpC,CAAC,CAAC,CAAC,CAAC;CACb,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@milkdown/crepe",
3
3
  "type": "module",
4
- "version": "7.12.1",
4
+ "version": "7.13.1",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -107,7 +107,7 @@
107
107
  "tslib": "^2.8.1",
108
108
  "unist-util-visit": "^5.0.0",
109
109
  "vue": "^3.5.13",
110
- "@milkdown/kit": "7.12.1"
110
+ "@milkdown/kit": "7.13.1"
111
111
  },
112
112
  "scripts": {
113
113
  "build": "pnpm run build:es && pnpm run build:theme && echo",
@@ -1,7 +1,9 @@
1
1
  import { block } from '@milkdown/kit/plugin/block'
2
2
 
3
+ import type { DeepPartial } from '../../utils'
4
+ import type { GroupBuilder } from '../../utils/group-builder'
3
5
  import type { DefineFeature } from '../shared'
4
- import type { GroupBuilder } from './menu/group-builder'
6
+ import type { SlashMenuItem } from './menu/utils'
5
7
 
6
8
  import { crepeFeatureConfig } from '../../core/slice'
7
9
  import { CrepeFeature } from '../index'
@@ -11,48 +13,86 @@ import { configureMenu, menu, menuAPI } from './menu'
11
13
  interface BlockEditConfig {
12
14
  handleAddIcon: string
13
15
  handleDragIcon: string
14
- buildMenu: (builder: GroupBuilder) => void
16
+ buildMenu: (builder: GroupBuilder<SlashMenuItem>) => void
15
17
 
16
- slashMenuTextGroupLabel: string
17
- slashMenuTextIcon: string
18
- slashMenuTextLabel: string
19
- slashMenuH1Icon: string
20
- slashMenuH1Label: string
21
- slashMenuH2Icon: string
22
- slashMenuH2Label: string
23
- slashMenuH3Icon: string
24
- slashMenuH3Label: string
25
- slashMenuH4Icon: string
26
- slashMenuH4Label: string
27
- slashMenuH5Icon: string
28
- slashMenuH5Label: string
29
- slashMenuH6Icon: string
30
- slashMenuH6Label: string
31
- slashMenuQuoteIcon: string
32
- slashMenuQuoteLabel: string
33
- slashMenuDividerIcon: string
34
- slashMenuDividerLabel: string
18
+ textGroup: {
19
+ label: string
20
+ text: {
21
+ label: string
22
+ icon: string
23
+ } | null
24
+ h1: {
25
+ label: string
26
+ icon: string
27
+ } | null
28
+ h2: {
29
+ label: string
30
+ icon: string
31
+ } | null
32
+ h3: {
33
+ label: string
34
+ icon: string
35
+ } | null
36
+ h4: {
37
+ label: string
38
+ icon: string
39
+ } | null
40
+ h5: {
41
+ label: string
42
+ icon: string
43
+ } | null
44
+ h6: {
45
+ label: string
46
+ icon: string
47
+ } | null
48
+ quote: {
49
+ label: string
50
+ icon: string
51
+ } | null
52
+ divider: {
53
+ label: string
54
+ icon: string
55
+ } | null
56
+ } | null
35
57
 
36
- slashMenuListGroupLabel: string
37
- slashMenuBulletListIcon: string
38
- slashMenuBulletListLabel: string
39
- slashMenuOrderedListIcon: string
40
- slashMenuOrderedListLabel: string
41
- slashMenuTaskListIcon: string
42
- slashMenuTaskListLabel: string
58
+ listGroup: {
59
+ label: string
60
+ bulletList: {
61
+ label: string
62
+ icon: string
63
+ } | null
64
+ orderedList: {
65
+ label: string
66
+ icon: string
67
+ } | null
68
+ taskList: {
69
+ label: string
70
+ icon: string
71
+ } | null
72
+ } | null
43
73
 
44
- slashMenuAdvancedGroupLabel: string
45
- slashMenuImageIcon: string
46
- slashMenuImageLabel: string
47
- slashMenuCodeBlockIcon: string
48
- slashMenuCodeBlockLabel: string
49
- slashMenuTableIcon: string
50
- slashMenuTableLabel: string
51
- slashMenuMathIcon: string
52
- slashMenuMathLabel: string
74
+ advancedGroup: {
75
+ label: string
76
+ image: {
77
+ label: string
78
+ icon: string
79
+ } | null
80
+ codeBlock: {
81
+ label: string
82
+ icon: string
83
+ } | null
84
+ table: {
85
+ label: string
86
+ icon: string
87
+ } | null
88
+ math: {
89
+ label: string
90
+ icon: string
91
+ } | null
92
+ } | null
53
93
  }
54
94
 
55
- export type BlockEditFeatureConfig = Partial<BlockEditConfig>
95
+ export type BlockEditFeatureConfig = DeepPartial<BlockEditConfig>
56
96
 
57
97
  export const blockEdit: DefineFeature<BlockEditFeatureConfig> = (
58
98
  editor,