@commonpub/editor 0.1.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.
Files changed (99) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +145 -0
  3. package/dist/blocks/registry.d.ts +17 -0
  4. package/dist/blocks/registry.d.ts.map +1 -0
  5. package/dist/blocks/registry.js +65 -0
  6. package/dist/blocks/registry.js.map +1 -0
  7. package/dist/blocks/schemas.d.ts +137 -0
  8. package/dist/blocks/schemas.d.ts.map +1 -0
  9. package/dist/blocks/schemas.js +113 -0
  10. package/dist/blocks/schemas.js.map +1 -0
  11. package/dist/blocks/types.d.ts +16 -0
  12. package/dist/blocks/types.d.ts.map +1 -0
  13. package/dist/blocks/types.js +2 -0
  14. package/dist/blocks/types.js.map +1 -0
  15. package/dist/editorKit.d.ts +12 -0
  16. package/dist/editorKit.d.ts.map +1 -0
  17. package/dist/editorKit.js +94 -0
  18. package/dist/editorKit.js.map +1 -0
  19. package/dist/extensions/buildStep.d.ts +16 -0
  20. package/dist/extensions/buildStep.d.ts.map +1 -0
  21. package/dist/extensions/buildStep.js +45 -0
  22. package/dist/extensions/buildStep.js.map +1 -0
  23. package/dist/extensions/callout.d.ts +19 -0
  24. package/dist/extensions/callout.d.ts.map +1 -0
  25. package/dist/extensions/callout.js +52 -0
  26. package/dist/extensions/callout.js.map +1 -0
  27. package/dist/extensions/checkpoint.d.ts +12 -0
  28. package/dist/extensions/checkpoint.d.ts.map +1 -0
  29. package/dist/extensions/checkpoint.js +27 -0
  30. package/dist/extensions/checkpoint.js.map +1 -0
  31. package/dist/extensions/code.d.ts +18 -0
  32. package/dist/extensions/code.d.ts.map +1 -0
  33. package/dist/extensions/code.js +75 -0
  34. package/dist/extensions/code.js.map +1 -0
  35. package/dist/extensions/downloads.d.ts +17 -0
  36. package/dist/extensions/downloads.d.ts.map +1 -0
  37. package/dist/extensions/downloads.js +38 -0
  38. package/dist/extensions/downloads.js.map +1 -0
  39. package/dist/extensions/embed.d.ts +14 -0
  40. package/dist/extensions/embed.d.ts.map +1 -0
  41. package/dist/extensions/embed.js +27 -0
  42. package/dist/extensions/embed.js.map +1 -0
  43. package/dist/extensions/gallery.d.ts +19 -0
  44. package/dist/extensions/gallery.d.ts.map +1 -0
  45. package/dist/extensions/gallery.js +43 -0
  46. package/dist/extensions/gallery.js.map +1 -0
  47. package/dist/extensions/heading.d.ts +18 -0
  48. package/dist/extensions/heading.d.ts.map +1 -0
  49. package/dist/extensions/heading.js +57 -0
  50. package/dist/extensions/heading.js.map +1 -0
  51. package/dist/extensions/image.d.ts +17 -0
  52. package/dist/extensions/image.d.ts.map +1 -0
  53. package/dist/extensions/image.js +49 -0
  54. package/dist/extensions/image.js.map +1 -0
  55. package/dist/extensions/interactiveSlider.d.ts +21 -0
  56. package/dist/extensions/interactiveSlider.d.ts.map +1 -0
  57. package/dist/extensions/interactiveSlider.js +45 -0
  58. package/dist/extensions/interactiveSlider.js.map +1 -0
  59. package/dist/extensions/markdown.d.ts +12 -0
  60. package/dist/extensions/markdown.d.ts.map +1 -0
  61. package/dist/extensions/markdown.js +25 -0
  62. package/dist/extensions/markdown.js.map +1 -0
  63. package/dist/extensions/mathNotation.d.ts +13 -0
  64. package/dist/extensions/mathNotation.d.ts.map +1 -0
  65. package/dist/extensions/mathNotation.js +28 -0
  66. package/dist/extensions/mathNotation.js.map +1 -0
  67. package/dist/extensions/partsList.d.ts +19 -0
  68. package/dist/extensions/partsList.d.ts.map +1 -0
  69. package/dist/extensions/partsList.js +38 -0
  70. package/dist/extensions/partsList.js.map +1 -0
  71. package/dist/extensions/quiz.d.ts +17 -0
  72. package/dist/extensions/quiz.d.ts.map +1 -0
  73. package/dist/extensions/quiz.js +42 -0
  74. package/dist/extensions/quiz.js.map +1 -0
  75. package/dist/extensions/quote.d.ts +11 -0
  76. package/dist/extensions/quote.d.ts.map +1 -0
  77. package/dist/extensions/quote.js +42 -0
  78. package/dist/extensions/quote.js.map +1 -0
  79. package/dist/extensions/text.d.ts +3 -0
  80. package/dist/extensions/text.d.ts.map +1 -0
  81. package/dist/extensions/text.js +13 -0
  82. package/dist/extensions/text.js.map +1 -0
  83. package/dist/extensions/toolList.d.ts +16 -0
  84. package/dist/extensions/toolList.d.ts.map +1 -0
  85. package/dist/extensions/toolList.js +38 -0
  86. package/dist/extensions/toolList.js.map +1 -0
  87. package/dist/extensions/video.d.ts +17 -0
  88. package/dist/extensions/video.d.ts.map +1 -0
  89. package/dist/extensions/video.js +32 -0
  90. package/dist/extensions/video.js.map +1 -0
  91. package/dist/index.d.ts +26 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +27 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/serialization.d.ts +16 -0
  96. package/dist/serialization.d.ts.map +1 -0
  97. package/dist/serialization.js +530 -0
  98. package/dist/serialization.js.map +1 -0
  99. package/package.json +80 -0
@@ -0,0 +1,16 @@
1
+ import { Node } from '@tiptap/core';
2
+ declare module '@tiptap/core' {
3
+ interface Commands<ReturnType> {
4
+ buildStep: {
5
+ setBuildStep: (attributes: {
6
+ stepNumber: number;
7
+ instructions: string;
8
+ image?: string;
9
+ time?: string;
10
+ partsUsed?: string[];
11
+ }) => ReturnType;
12
+ };
13
+ }
14
+ }
15
+ export declare const CommonPubBuildStep: Node<any, any>;
16
+ //# sourceMappingURL=buildStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildStep.d.ts","sourceRoot":"","sources":["../../src/extensions/buildStep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,SAAS,EAAE;YACT,YAAY,EAAE,CAAC,UAAU,EAAE;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE,KAAK,UAAU,CAAC;SAC7I,CAAC;KACH;CACF;AAED,eAAO,MAAM,kBAAkB,gBA+C7B,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { Node, mergeAttributes } from '@tiptap/core';
2
+ export const CommonPubBuildStep = Node.create({
3
+ name: 'buildStep',
4
+ group: 'block',
5
+ atom: true,
6
+ addAttributes() {
7
+ return {
8
+ stepNumber: { default: 1 },
9
+ image: { default: null },
10
+ instructions: { default: '' },
11
+ time: { default: null },
12
+ partsUsed: {
13
+ default: [],
14
+ parseHTML: (element) => {
15
+ try {
16
+ return JSON.parse(element.getAttribute('data-parts-used') || '[]');
17
+ }
18
+ catch {
19
+ return [];
20
+ }
21
+ },
22
+ renderHTML: (attributes) => ({
23
+ 'data-parts-used': JSON.stringify(attributes.partsUsed),
24
+ }),
25
+ },
26
+ };
27
+ },
28
+ parseHTML() {
29
+ return [{ tag: 'div.cpub-build-step' }];
30
+ },
31
+ renderHTML({ node, HTMLAttributes }) {
32
+ return ['div', mergeAttributes(HTMLAttributes, { class: 'cpub-build-step' }),
33
+ ['span', { class: 'cpub-build-step-number' }, `Step ${node.attrs.stepNumber}`],
34
+ ['p', {}, node.attrs.instructions],
35
+ ];
36
+ },
37
+ addCommands() {
38
+ return {
39
+ setBuildStep: (attributes) => ({ commands }) => {
40
+ return commands.insertContent({ type: this.name, attrs: attributes });
41
+ },
42
+ };
43
+ },
44
+ });
45
+ //# sourceMappingURL=buildStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildStep.js","sourceRoot":"","sources":["../../src/extensions/buildStep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAUrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,IAAI;IAEV,aAAa;QACX,OAAO;YACL,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;YAC1B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACxB,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACvB,SAAS,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,CAAC,OAAoB,EAAE,EAAE;oBAClC,IAAI,CAAC;wBACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,CAAC;oBACrE,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC;gBACD,UAAU,EAAE,CAAC,UAAmC,EAAE,EAAE,CAAC,CAAC;oBACpD,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;iBACxD,CAAC;aACH;SACF,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;QACjC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;YAC1E,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC9E,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO;YACL,YAAY,EACV,CAAC,UAAU,EAAE,EAAE,CACf,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACxE,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Node } from '@tiptap/core';
2
+ export type CalloutVariant = 'info' | 'tip' | 'warning' | 'danger';
3
+ export interface CalloutOptions {
4
+ variants: CalloutVariant[];
5
+ }
6
+ declare module '@tiptap/core' {
7
+ interface Commands<ReturnType> {
8
+ callout: {
9
+ setCallout: (attributes?: {
10
+ variant?: CalloutVariant;
11
+ }) => ReturnType;
12
+ toggleCallout: (attributes?: {
13
+ variant?: CalloutVariant;
14
+ }) => ReturnType;
15
+ };
16
+ }
17
+ }
18
+ export declare const CommonPubCallout: Node<CalloutOptions, any>;
19
+ //# sourceMappingURL=callout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callout.d.ts","sourceRoot":"","sources":["../../src/extensions/callout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAqB,MAAM,cAAc,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,OAAO,EAAE;YACP,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,cAAc,CAAA;aAAE,KAAK,UAAU,CAAC;YACtE,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,cAAc,CAAA;aAAE,KAAK,UAAU,CAAC;SAC1E,CAAC;KACH;CACF;AAED,eAAO,MAAM,gBAAgB,2BA4D3B,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { Node, wrappingInputRule } from '@tiptap/core';
2
+ export const CommonPubCallout = Node.create({
3
+ name: 'callout',
4
+ group: 'block',
5
+ content: 'block+',
6
+ defining: true,
7
+ addOptions() {
8
+ return {
9
+ variants: ['info', 'tip', 'warning', 'danger'],
10
+ };
11
+ },
12
+ addAttributes() {
13
+ return {
14
+ variant: {
15
+ default: 'info',
16
+ parseHTML: (element) => {
17
+ const classList = element.className.split(' ');
18
+ for (const cls of classList) {
19
+ const match = cls.match(/^callout-(\w+)$/);
20
+ if (match?.[1])
21
+ return match[1];
22
+ }
23
+ return 'info';
24
+ },
25
+ },
26
+ };
27
+ },
28
+ parseHTML() {
29
+ return [{ tag: 'div.callout' }];
30
+ },
31
+ renderHTML({ node, HTMLAttributes }) {
32
+ return ['div', { ...HTMLAttributes, class: `callout callout-${node.attrs.variant}` }, 0];
33
+ },
34
+ addCommands() {
35
+ return {
36
+ setCallout: (attributes) => ({ commands }) => {
37
+ return commands.wrapIn(this.name, attributes);
38
+ },
39
+ toggleCallout: (attributes) => ({ commands }) => {
40
+ return commands.toggleWrap(this.name, attributes);
41
+ },
42
+ };
43
+ },
44
+ addInputRules() {
45
+ return this.options.variants.map((variant) => wrappingInputRule({
46
+ find: new RegExp(`^:::${variant}\\s$`),
47
+ type: this.type,
48
+ getAttributes: () => ({ variant }),
49
+ }));
50
+ },
51
+ });
52
+ //# sourceMappingURL=callout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callout.js","sourceRoot":"","sources":["../../src/extensions/callout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiBvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAiB;IAC1D,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,IAAI;IAEd,UAAU;QACR,OAAO;YACL,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAqB;SACnE,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO;YACL,OAAO,EAAE;gBACP,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,CAAC,OAAoB,EAAE,EAAE;oBAClC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC/C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;wBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;wBAC3C,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;4BAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;QACjC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,cAAc,EAAE,KAAK,EAAE,mBAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,WAAW;QACT,OAAO;YACL,UAAU,EACR,CAAC,UAAyC,EAAE,EAAE,CAC9C,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAChD,CAAC;YACH,aAAa,EACX,CAAC,UAAyC,EAAE,EAAE,CAC9C,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACpD,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3C,iBAAiB,CAAC;YAChB,IAAI,EAAE,IAAI,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Node } from '@tiptap/core';
2
+ declare module '@tiptap/core' {
3
+ interface Commands<ReturnType> {
4
+ checkpoint: {
5
+ setCheckpoint: (attributes: {
6
+ message: string;
7
+ }) => ReturnType;
8
+ };
9
+ }
10
+ }
11
+ export declare const CommonPubCheckpoint: Node<any, any>;
12
+ //# sourceMappingURL=checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/extensions/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,UAAU,EAAE;YACV,aAAa,EAAE,CAAC,UAAU,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAA;aAAE,KAAK,UAAU,CAAC;SAChE,CAAC;KACH;CACF;AAED,eAAO,MAAM,mBAAmB,gBA8B9B,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Node, mergeAttributes } from '@tiptap/core';
2
+ export const CommonPubCheckpoint = Node.create({
3
+ name: 'checkpoint',
4
+ group: 'block',
5
+ atom: true,
6
+ addAttributes() {
7
+ return {
8
+ message: { default: '' },
9
+ };
10
+ },
11
+ parseHTML() {
12
+ return [{ tag: 'div.cpub-checkpoint' }];
13
+ },
14
+ renderHTML({ node, HTMLAttributes }) {
15
+ return ['div', mergeAttributes(HTMLAttributes, { class: 'cpub-checkpoint' }),
16
+ ['span', {}, node.attrs.message],
17
+ ];
18
+ },
19
+ addCommands() {
20
+ return {
21
+ setCheckpoint: (attributes) => ({ commands }) => {
22
+ return commands.insertContent({ type: this.name, attrs: attributes });
23
+ },
24
+ };
25
+ },
26
+ });
27
+ //# sourceMappingURL=checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/extensions/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAUrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,IAAI;IAEV,aAAa;QACX,OAAO;YACL,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;SACzB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;QACjC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;YAC1E,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SACjC,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO;YACL,aAAa,EACX,CAAC,UAAU,EAAE,EAAE,CACf,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACxE,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Node } from '@tiptap/core';
2
+ export interface CodeBlockOptions {
3
+ defaultLanguage: string;
4
+ }
5
+ declare module '@tiptap/core' {
6
+ interface Commands<ReturnType> {
7
+ codeBlock: {
8
+ setCodeBlock: (attributes?: {
9
+ language?: string;
10
+ }) => ReturnType;
11
+ toggleCodeBlock: (attributes?: {
12
+ language?: string;
13
+ }) => ReturnType;
14
+ };
15
+ }
16
+ }
17
+ export declare const CommonPubCodeBlock: Node<CodeBlockOptions, any>;
18
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/extensions/code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA0B,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,SAAS,EAAE;YACT,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE;gBAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;aAAE,KAAK,UAAU,CAAC;YACjE,eAAe,EAAE,CAAC,UAAU,CAAC,EAAE;gBAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;aAAE,KAAK,UAAU,CAAC;SACrE,CAAC;KACH;CACF;AAED,eAAO,MAAM,kBAAkB,6BAmF7B,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { Node, textblockTypeInputRule } from '@tiptap/core';
2
+ export const CommonPubCodeBlock = Node.create({
3
+ name: 'code_block',
4
+ group: 'block',
5
+ content: 'text*',
6
+ marks: '',
7
+ code: true,
8
+ defining: true,
9
+ addOptions() {
10
+ return {
11
+ defaultLanguage: '',
12
+ };
13
+ },
14
+ addAttributes() {
15
+ return {
16
+ language: {
17
+ default: this.options.defaultLanguage,
18
+ parseHTML: (element) => element.querySelector('code')?.getAttribute('class')?.replace('language-', '') ?? '',
19
+ },
20
+ filename: {
21
+ default: null,
22
+ parseHTML: (element) => element.getAttribute('data-filename'),
23
+ renderHTML: (attributes) => {
24
+ if (!attributes.filename)
25
+ return {};
26
+ return { 'data-filename': attributes.filename };
27
+ },
28
+ },
29
+ };
30
+ },
31
+ parseHTML() {
32
+ return [{ tag: 'pre', preserveWhitespace: 'full' }];
33
+ },
34
+ renderHTML({ node, HTMLAttributes }) {
35
+ return [
36
+ 'pre',
37
+ HTMLAttributes,
38
+ ['code', { class: node.attrs.language ? `language-${node.attrs.language}` : null }, 0],
39
+ ];
40
+ },
41
+ addCommands() {
42
+ return {
43
+ setCodeBlock: (attributes) => ({ commands }) => {
44
+ return commands.setNode(this.name, attributes);
45
+ },
46
+ toggleCodeBlock: (attributes) => ({ commands }) => {
47
+ return commands.toggleNode(this.name, 'paragraph', attributes);
48
+ },
49
+ };
50
+ },
51
+ addInputRules() {
52
+ return [
53
+ textblockTypeInputRule({
54
+ find: /^```([a-z]*)\s$/,
55
+ type: this.type,
56
+ getAttributes: (match) => ({
57
+ language: match[1] || this.options.defaultLanguage,
58
+ }),
59
+ }),
60
+ ];
61
+ },
62
+ addKeyboardShortcuts() {
63
+ return {
64
+ 'Mod-Alt-c': () => this.editor.commands.toggleNode(this.name, 'paragraph'),
65
+ Tab: ({ editor }) => {
66
+ if (editor.isActive(this.name)) {
67
+ editor.commands.insertContent('\t');
68
+ return true;
69
+ }
70
+ return false;
71
+ },
72
+ };
73
+ },
74
+ });
75
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/extensions/code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Node } from '@tiptap/core';
2
+ declare module '@tiptap/core' {
3
+ interface Commands<ReturnType> {
4
+ downloads: {
5
+ setDownloads: (attributes: {
6
+ files: {
7
+ name: string;
8
+ url: string;
9
+ size?: string;
10
+ type?: string;
11
+ }[];
12
+ }) => ReturnType;
13
+ };
14
+ }
15
+ }
16
+ export declare const CommonPubDownloads: Node<any, any>;
17
+ //# sourceMappingURL=downloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloads.d.ts","sourceRoot":"","sources":["../../src/extensions/downloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,SAAS,EAAE;YACT,YAAY,EAAE,CAAC,UAAU,EAAE;gBAAE,KAAK,EAAE;oBAAE,IAAI,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAC;oBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;oBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;iBAAE,EAAE,CAAA;aAAE,KAAK,UAAU,CAAC;SACpH,CAAC;KACH;CACF;AAED,eAAO,MAAM,kBAAkB,gBAwC7B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { Node, mergeAttributes } from '@tiptap/core';
2
+ export const CommonPubDownloads = Node.create({
3
+ name: 'downloads',
4
+ group: 'block',
5
+ atom: true,
6
+ addAttributes() {
7
+ return {
8
+ files: {
9
+ default: [],
10
+ parseHTML: (element) => {
11
+ try {
12
+ return JSON.parse(element.getAttribute('data-files') || '[]');
13
+ }
14
+ catch {
15
+ return [];
16
+ }
17
+ },
18
+ renderHTML: (attributes) => ({
19
+ 'data-files': JSON.stringify(attributes.files),
20
+ }),
21
+ },
22
+ };
23
+ },
24
+ parseHTML() {
25
+ return [{ tag: 'div.cpub-downloads' }];
26
+ },
27
+ renderHTML({ HTMLAttributes }) {
28
+ return ['div', mergeAttributes(HTMLAttributes, { class: 'cpub-downloads' })];
29
+ },
30
+ addCommands() {
31
+ return {
32
+ setDownloads: (attributes) => ({ commands }) => {
33
+ return commands.insertContent({ type: this.name, attrs: attributes });
34
+ },
35
+ };
36
+ },
37
+ });
38
+ //# sourceMappingURL=downloads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloads.js","sourceRoot":"","sources":["../../src/extensions/downloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAUrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,IAAI;IAEV,aAAa;QACX,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,CAAC,OAAoB,EAAE,EAAE;oBAClC,IAAI,CAAC;wBACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;oBAChE,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC;gBACD,UAAU,EAAE,CAAC,UAAmC,EAAE,EAAE,CAAC,CAAC;oBACpD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;iBAC/C,CAAC;aACH;SACF,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QAC3B,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,WAAW;QACT,OAAO;YACL,YAAY,EACV,CAAC,UAAU,EAAE,EAAE,CACf,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACxE,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Node } from '@tiptap/core';
2
+ declare module '@tiptap/core' {
3
+ interface Commands<ReturnType> {
4
+ embed: {
5
+ setEmbed: (attributes: {
6
+ url: string;
7
+ type?: string;
8
+ html?: string;
9
+ }) => ReturnType;
10
+ };
11
+ }
12
+ }
13
+ export declare const CommonPubEmbed: Node<any, any>;
14
+ //# sourceMappingURL=embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/extensions/embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,KAAK,EAAE;YACL,QAAQ,EAAE,CAAC,UAAU,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,KAAK,UAAU,CAAC;SACrF,CAAC;KACH;CACF;AAED,eAAO,MAAM,cAAc,gBA8BzB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Node, mergeAttributes } from '@tiptap/core';
2
+ export const CommonPubEmbed = Node.create({
3
+ name: 'embed',
4
+ group: 'block',
5
+ atom: true,
6
+ addAttributes() {
7
+ return {
8
+ url: { default: '' },
9
+ type: { default: 'generic' },
10
+ html: { default: null },
11
+ };
12
+ },
13
+ parseHTML() {
14
+ return [{ tag: 'div.cpub-embed' }];
15
+ },
16
+ renderHTML({ HTMLAttributes }) {
17
+ return ['div', mergeAttributes(HTMLAttributes, { class: 'cpub-embed' })];
18
+ },
19
+ addCommands() {
20
+ return {
21
+ setEmbed: (attributes) => ({ commands }) => {
22
+ return commands.insertContent({ type: this.name, attrs: attributes });
23
+ },
24
+ };
25
+ },
26
+ });
27
+ //# sourceMappingURL=embed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/extensions/embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAUrD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,IAAI;IAEV,aAAa;QACX,OAAO;YACL,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACpB,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;YAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QAC3B,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,WAAW;QACT,OAAO;YACL,QAAQ,EACN,CAAC,UAAU,EAAE,EAAE,CACf,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACxE,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Node } from '@tiptap/core';
2
+ export interface GalleryOptions {
3
+ maxImages: number;
4
+ }
5
+ declare module '@tiptap/core' {
6
+ interface Commands<ReturnType> {
7
+ gallery: {
8
+ setGallery: (attributes: {
9
+ images: {
10
+ src: string;
11
+ alt: string;
12
+ caption?: string;
13
+ }[];
14
+ }) => ReturnType;
15
+ };
16
+ }
17
+ }
18
+ export declare const CommonPubGallery: Node<GalleryOptions, any>;
19
+ //# sourceMappingURL=gallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gallery.d.ts","sourceRoot":"","sources":["../../src/extensions/gallery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,OAAO,EAAE;YACP,UAAU,EAAE,CAAC,UAAU,EAAE;gBAAE,MAAM,EAAE;oBAAE,GAAG,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAC;oBAAC,OAAO,CAAC,EAAE,MAAM,CAAA;iBAAE,EAAE,CAAA;aAAE,KAAK,UAAU,CAAC;SACtG,CAAC;KACH;CACF;AAED,eAAO,MAAM,gBAAgB,2BA8C3B,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { Node, mergeAttributes } from '@tiptap/core';
2
+ export const CommonPubGallery = Node.create({
3
+ name: 'gallery',
4
+ group: 'block',
5
+ atom: true,
6
+ addOptions() {
7
+ return {
8
+ maxImages: 20,
9
+ };
10
+ },
11
+ addAttributes() {
12
+ return {
13
+ images: {
14
+ default: [],
15
+ parseHTML: (element) => {
16
+ try {
17
+ return JSON.parse(element.getAttribute('data-images') || '[]');
18
+ }
19
+ catch {
20
+ return [];
21
+ }
22
+ },
23
+ renderHTML: (attributes) => ({
24
+ 'data-images': JSON.stringify(attributes.images),
25
+ }),
26
+ },
27
+ };
28
+ },
29
+ parseHTML() {
30
+ return [{ tag: 'div.cpub-gallery' }];
31
+ },
32
+ renderHTML({ HTMLAttributes }) {
33
+ return ['div', mergeAttributes(HTMLAttributes, { class: 'cpub-gallery' })];
34
+ },
35
+ addCommands() {
36
+ return {
37
+ setGallery: (attributes) => ({ commands }) => {
38
+ return commands.insertContent({ type: this.name, attrs: attributes });
39
+ },
40
+ };
41
+ },
42
+ });
43
+ //# sourceMappingURL=gallery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gallery.js","sourceRoot":"","sources":["../../src/extensions/gallery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAcrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAiB;IAC1D,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,IAAI;IAEV,UAAU;QACR,OAAO;YACL,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,CAAC,OAAoB,EAAE,EAAE;oBAClC,IAAI,CAAC;wBACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;oBACjE,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC;gBACD,UAAU,EAAE,CAAC,UAAmC,EAAE,EAAE,CAAC,CAAC;oBACpD,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;iBACjD,CAAC;aACH;SACF,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QAC3B,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,WAAW;QACT,OAAO;YACL,UAAU,EACR,CAAC,UAAU,EAAE,EAAE,CACf,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACxE,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Node } from '@tiptap/core';
2
+ export interface HeadingOptions {
3
+ levels: number[];
4
+ }
5
+ declare module '@tiptap/core' {
6
+ interface Commands<ReturnType> {
7
+ heading: {
8
+ setHeading: (attributes: {
9
+ level: number;
10
+ }) => ReturnType;
11
+ toggleHeading: (attributes: {
12
+ level: number;
13
+ }) => ReturnType;
14
+ };
15
+ }
16
+ }
17
+ export declare const CommonPubHeading: Node<HeadingOptions, any>;
18
+ //# sourceMappingURL=heading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../src/extensions/heading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA2C,MAAM,cAAc,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,OAAO,EAAE;YACP,UAAU,EAAE,CAAC,UAAU,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,KAAK,UAAU,CAAC;YAC1D,aAAa,EAAE,CAAC,UAAU,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,KAAK,UAAU,CAAC;SAC9D,CAAC;KACH;CACF;AAED,eAAO,MAAM,gBAAgB,2BAuE3B,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { Node, mergeAttributes, textblockTypeInputRule } from '@tiptap/core';
2
+ export const CommonPubHeading = Node.create({
3
+ name: 'heading',
4
+ group: 'block',
5
+ content: 'inline*',
6
+ defining: true,
7
+ addOptions() {
8
+ return {
9
+ levels: [1, 2, 3, 4],
10
+ };
11
+ },
12
+ addAttributes() {
13
+ return {
14
+ level: {
15
+ default: 2,
16
+ rendered: false,
17
+ },
18
+ };
19
+ },
20
+ parseHTML() {
21
+ return this.options.levels.map((level) => ({
22
+ tag: `h${level}`,
23
+ attrs: { level },
24
+ }));
25
+ },
26
+ renderHTML({ node, HTMLAttributes }) {
27
+ const level = node.attrs.level;
28
+ return [`h${level}`, mergeAttributes(HTMLAttributes), 0];
29
+ },
30
+ addCommands() {
31
+ return {
32
+ setHeading: (attributes) => ({ commands }) => {
33
+ return commands.setNode(this.name, attributes);
34
+ },
35
+ toggleHeading: (attributes) => ({ commands }) => {
36
+ return commands.toggleNode(this.name, 'paragraph', attributes);
37
+ },
38
+ };
39
+ },
40
+ addInputRules() {
41
+ return this.options.levels.map((level) => textblockTypeInputRule({
42
+ find: new RegExp(`^(#{1,${level}})\\s$`),
43
+ type: this.type,
44
+ getAttributes: (match) => {
45
+ const hashes = match[1]?.length ?? level;
46
+ return { level: Math.min(hashes, 4) };
47
+ },
48
+ }));
49
+ },
50
+ addKeyboardShortcuts() {
51
+ return this.options.levels.reduce((shortcuts, level) => ({
52
+ ...shortcuts,
53
+ [`Mod-Alt-${level}`]: () => this.editor.commands.toggleNode(this.name, 'paragraph', { level }),
54
+ }), {});
55
+ },
56
+ });
57
+ //# sourceMappingURL=heading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading.js","sourceRoot":"","sources":["../../src/extensions/heading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAe7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAiB;IAC1D,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,IAAI;IAEd,UAAU;QACR,OAAO;YACL,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACrB,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,GAAG,EAAE,IAAI,KAAK,EAAE;YAChB,KAAK,EAAE,EAAE,KAAK,EAAE;SACjB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC;QACzC,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,WAAW;QACT,OAAO;YACL,UAAU,EACR,CAAC,UAA6B,EAAE,EAAE,CAClC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC;YACH,aAAa,EACX,CAAC,UAA6B,EAAE,EAAE,CAClC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACjE,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACvC,sBAAsB,CAAC;YACrB,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;YACxC,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAC/B,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrB,GAAG,SAAS;YACZ,CAAC,WAAW,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;SACrE,CAAC,EACF,EAAmC,CACpC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Node } from '@tiptap/core';
2
+ export interface ImageOptions {
3
+ allowBase64: boolean;
4
+ }
5
+ declare module '@tiptap/core' {
6
+ interface Commands<ReturnType> {
7
+ image: {
8
+ setImage: (attributes: {
9
+ src: string;
10
+ alt?: string;
11
+ caption?: string;
12
+ }) => ReturnType;
13
+ };
14
+ }
15
+ }
16
+ export declare const CommonPubImage: Node<ImageOptions, any>;
17
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/extensions/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,KAAK,EAAE;YACL,QAAQ,EAAE,CAAC,UAAU,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,MAAM,CAAA;aAAE,KAAK,UAAU,CAAC;SACvF,CAAC;KACH;CACF;AAED,eAAO,MAAM,cAAc,yBAqDzB,CAAC"}