@zanwaar/tiptap-docs-kit 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 (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +273 -0
  3. package/dist/extensions/ParagraphSpacing.d.ts +16 -0
  4. package/dist/extensions/ParagraphSpacing.d.ts.map +1 -0
  5. package/dist/extensions/ParagraphSpacing.js +64 -0
  6. package/dist/extensions/ParagraphSpacing.js.map +1 -0
  7. package/dist/extensions/ResizableImage.d.ts +2 -0
  8. package/dist/extensions/ResizableImage.d.ts.map +1 -0
  9. package/dist/extensions/ResizableImage.js +82 -0
  10. package/dist/extensions/ResizableImage.js.map +1 -0
  11. package/dist/extensions/TextAlign.d.ts +15 -0
  12. package/dist/extensions/TextAlign.d.ts.map +1 -0
  13. package/dist/extensions/TextAlign.js +37 -0
  14. package/dist/extensions/TextAlign.js.map +1 -0
  15. package/dist/extensions/TextColor.d.ts +14 -0
  16. package/dist/extensions/TextColor.d.ts.map +1 -0
  17. package/dist/extensions/TextColor.js +46 -0
  18. package/dist/extensions/TextColor.js.map +1 -0
  19. package/dist/extensions/TextFont.d.ts +14 -0
  20. package/dist/extensions/TextFont.d.ts.map +1 -0
  21. package/dist/extensions/TextFont.js +55 -0
  22. package/dist/extensions/TextFont.js.map +1 -0
  23. package/dist/extensions/TextSize.d.ts +14 -0
  24. package/dist/extensions/TextSize.d.ts.map +1 -0
  25. package/dist/extensions/TextSize.js +57 -0
  26. package/dist/extensions/TextSize.js.map +1 -0
  27. package/dist/index.d.ts +51 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +420 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/keyboard.d.ts +3 -0
  32. package/dist/keyboard.d.ts.map +1 -0
  33. package/dist/keyboard.js +61 -0
  34. package/dist/keyboard.js.map +1 -0
  35. package/dist/page-model.d.ts +16 -0
  36. package/dist/page-model.d.ts.map +1 -0
  37. package/dist/page-model.js +111 -0
  38. package/dist/page-model.js.map +1 -0
  39. package/dist/pagination.d.ts +9 -0
  40. package/dist/pagination.d.ts.map +1 -0
  41. package/dist/pagination.js +497 -0
  42. package/dist/pagination.js.map +1 -0
  43. package/dist/paste.d.ts +11 -0
  44. package/dist/paste.d.ts.map +1 -0
  45. package/dist/paste.js +122 -0
  46. package/dist/paste.js.map +1 -0
  47. package/dist/selection-guard.d.ts +4 -0
  48. package/dist/selection-guard.d.ts.map +1 -0
  49. package/dist/selection-guard.js +64 -0
  50. package/dist/selection-guard.js.map +1 -0
  51. package/dist/style.css +367 -0
  52. package/dist/types.d.ts +76 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +2 -0
  55. package/dist/types.js.map +1 -0
  56. package/package.json +75 -0
  57. package/preview.png +0 -0
@@ -0,0 +1,55 @@
1
+ import { Mark, mergeAttributes } from '@tiptap/core';
2
+ const normalizeTextFont = (fontFamily) => {
3
+ const trimmedFontFamily = fontFamily.trim();
4
+ return trimmedFontFamily || null;
5
+ };
6
+ export const TextFont = Mark.create({
7
+ name: 'textFont',
8
+ addOptions() {
9
+ return {
10
+ HTMLAttributes: {},
11
+ };
12
+ },
13
+ addAttributes() {
14
+ return {
15
+ fontFamily: {
16
+ default: null,
17
+ parseHTML: (element) => element.style.fontFamily || element.getAttribute('data-text-font'),
18
+ renderHTML: (attributes) => {
19
+ if (!attributes.fontFamily)
20
+ return {};
21
+ return {
22
+ 'data-text-font': attributes.fontFamily,
23
+ style: `font-family: ${attributes.fontFamily}`,
24
+ };
25
+ },
26
+ },
27
+ };
28
+ },
29
+ parseHTML() {
30
+ return [
31
+ {
32
+ tag: 'span[data-text-font]',
33
+ },
34
+ {
35
+ style: 'font-family',
36
+ getAttrs: (fontFamily) => (typeof fontFamily === 'string' ? { fontFamily } : false),
37
+ },
38
+ ];
39
+ },
40
+ renderHTML({ HTMLAttributes }) {
41
+ return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
42
+ },
43
+ addCommands() {
44
+ return {
45
+ setTextFont: (fontFamily) => ({ commands }) => {
46
+ const normalizedFontFamily = normalizeTextFont(fontFamily);
47
+ if (!normalizedFontFamily)
48
+ return false;
49
+ return commands.setMark(this.name, { fontFamily: normalizedFontFamily });
50
+ },
51
+ unsetTextFont: () => ({ commands }) => commands.unsetMark(this.name),
52
+ };
53
+ },
54
+ });
55
+ //# sourceMappingURL=TextFont.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextFont.js","sourceRoot":"","sources":["../../src/extensions/TextFont.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAepD,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC/C,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAA;IAE3C,OAAO,iBAAiB,IAAI,IAAI,CAAA;AAClC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAkB;IACnD,IAAI,EAAE,UAAU;IAEhB,UAAU;QACR,OAAO;YACL,cAAc,EAAE,EAAE;SACnB,CAAA;IACH,CAAC;IAED,aAAa;QACX,OAAO;YACL,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBAC1F,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;oBACzB,IAAI,CAAC,UAAU,CAAC,UAAU;wBAAE,OAAO,EAAE,CAAA;oBAErC,OAAO;wBACL,gBAAgB,EAAE,UAAU,CAAC,UAAU;wBACvC,KAAK,EAAE,gBAAgB,UAAU,CAAC,UAAU,EAAE;qBAC/C,CAAA;gBACH,CAAC;aACF;SACF,CAAA;IACH,CAAC;IAED,SAAS;QACP,OAAO;YACL;gBACE,GAAG,EAAE,sBAAsB;aAC5B;YACD;gBACE,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACpF;SACF,CAAA;IACH,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QAC3B,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;IAED,WAAW;QACT,OAAO;YACL,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5C,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE1D,IAAI,CAAC,oBAAoB;oBAAE,OAAO,KAAK,CAAA;gBAEvC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC,CAAA;YAC1E,CAAC;YACD,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;SACrE,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Mark } from '@tiptap/core';
2
+ export interface TextSizeOptions {
3
+ HTMLAttributes: Record<string, unknown>;
4
+ }
5
+ declare module '@tiptap/core' {
6
+ interface Commands<ReturnType> {
7
+ textSize: {
8
+ setTextSize: (size: string) => ReturnType;
9
+ unsetTextSize: () => ReturnType;
10
+ };
11
+ }
12
+ }
13
+ export declare const TextSize: Mark<TextSizeOptions, any>;
14
+ //# sourceMappingURL=TextSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextSize.d.ts","sourceRoot":"","sources":["../../src/extensions/TextSize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAEpD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACxC;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,QAAQ,EAAE;YACR,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAA;YACzC,aAAa,EAAE,MAAM,UAAU,CAAA;SAChC,CAAA;KACF;CACF;AAUD,eAAO,MAAM,QAAQ,4BAsDnB,CAAA"}
@@ -0,0 +1,57 @@
1
+ import { Mark, mergeAttributes } from '@tiptap/core';
2
+ const normalizeTextSize = (size) => {
3
+ const trimmedSize = size.trim();
4
+ if (!trimmedSize)
5
+ return null;
6
+ return /^\d+(\.\d+)?$/.test(trimmedSize) ? `${trimmedSize}pt` : trimmedSize;
7
+ };
8
+ export const TextSize = Mark.create({
9
+ name: 'textSize',
10
+ addOptions() {
11
+ return {
12
+ HTMLAttributes: {},
13
+ };
14
+ },
15
+ addAttributes() {
16
+ return {
17
+ size: {
18
+ default: null,
19
+ parseHTML: (element) => element.style.fontSize || element.getAttribute('data-text-size'),
20
+ renderHTML: (attributes) => {
21
+ if (!attributes.size)
22
+ return {};
23
+ return {
24
+ 'data-text-size': attributes.size,
25
+ style: `font-size: ${attributes.size}`,
26
+ };
27
+ },
28
+ },
29
+ };
30
+ },
31
+ parseHTML() {
32
+ return [
33
+ {
34
+ tag: 'span[data-text-size]',
35
+ },
36
+ {
37
+ style: 'font-size',
38
+ getAttrs: (size) => (typeof size === 'string' ? { size } : false),
39
+ },
40
+ ];
41
+ },
42
+ renderHTML({ HTMLAttributes }) {
43
+ return ['span', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
44
+ },
45
+ addCommands() {
46
+ return {
47
+ setTextSize: (size) => ({ commands }) => {
48
+ const normalizedSize = normalizeTextSize(size);
49
+ if (!normalizedSize)
50
+ return false;
51
+ return commands.setMark(this.name, { size: normalizedSize });
52
+ },
53
+ unsetTextSize: () => ({ commands }) => commands.unsetMark(this.name),
54
+ };
55
+ },
56
+ });
57
+ //# sourceMappingURL=TextSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextSize.js","sourceRoot":"","sources":["../../src/extensions/TextSize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAepD,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAE/B,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAA;IAE7B,OAAO,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,WAAW,CAAA;AAC7E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAkB;IACnD,IAAI,EAAE,UAAU;IAEhB,UAAU;QACR,OAAO;YACL,cAAc,EAAE,EAAE;SACnB,CAAA;IACH,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBACxF,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;oBACzB,IAAI,CAAC,UAAU,CAAC,IAAI;wBAAE,OAAO,EAAE,CAAA;oBAE/B,OAAO;wBACL,gBAAgB,EAAE,UAAU,CAAC,IAAI;wBACjC,KAAK,EAAE,cAAc,UAAU,CAAC,IAAI,EAAE;qBACvC,CAAA;gBACH,CAAC;aACF;SACF,CAAA;IACH,CAAC;IAED,SAAS;QACP,OAAO;YACL;gBACE,GAAG,EAAE,sBAAsB;aAC5B;YACD;gBACE,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aAClE;SACF,CAAA;IACH,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QAC3B,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;IAED,WAAW;QACT,OAAO;YACL,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACtC,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBAE9C,IAAI,CAAC,cAAc;oBAAE,OAAO,KAAK,CAAA;gBAEjC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;YAC9D,CAAC;YACD,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;SACrE,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,51 @@
1
+ import { Extension, Node } from '@tiptap/core';
2
+ import '@tiptap/extension-blockquote';
3
+ import '@tiptap/extension-bold';
4
+ import '@tiptap/extension-bullet-list';
5
+ import '@tiptap/extension-code';
6
+ import '@tiptap/extension-heading';
7
+ import '@tiptap/extension-horizontal-rule';
8
+ import '@tiptap/extension-italic';
9
+ import '@tiptap/extension-ordered-list';
10
+ import '@tiptap/extension-paragraph';
11
+ import '@tiptap/extension-strike';
12
+ import '@tiptap/extension-underline';
13
+ import '@tiptap/extensions/undo-redo';
14
+ import type { DocsKitOptions, InsertGridOptions, InsertPageOptions, PageAttrs, PageBreakOptions, PageOptions, WordPageTemplateName } from './types';
15
+ export type { InsertPageOptions, PageAttrs, PageBreakOptions, DocsKitOptions, InsertGridOptions, PageMargin, PageOptions, PageOrientation, PagePosition, PageType, PaperSize, TextDeleteRange, TextSplitRange, WordPagePaginationOptions, WordPagePaginationBindingOptions, WordPageStablePaginationOptions, WordPageTemplateName, } from './types';
16
+ export { createBlankWordPageDocument, createEmptyWordPageNode, createOverflowPageAttrs, createWordPage, createWordPageDocument, createWordPageTemplate, defaultPageAttrs, findCurrentPage, getPagePositions, isEmptyPage, isEmptyTextblock, pageClassNames, } from './page-model';
17
+ export { createWordPagePastePlugin, insertPlainTextAsWordContent, plainTextToParagraphs } from './paste';
18
+ export { handlePageBackspace } from './keyboard';
19
+ export { bindWordPagePagination, mergeSplitWordParagraphs, normalizeWordPages, paginateWordPages, paginateWordPagesUntilStable, removeEmptyTrailingWordPages, } from './pagination';
20
+ export { TextAlign } from './extensions/TextAlign';
21
+ export { TextColor } from './extensions/TextColor';
22
+ export { TextFont } from './extensions/TextFont';
23
+ export { TextSize } from './extensions/TextSize';
24
+ export { ParagraphSpacing } from './extensions/ParagraphSpacing';
25
+ export { ResizableImage } from './extensions/ResizableImage';
26
+ export { DocsTable as Table, DocsTableCell as TableCell, DocsTableHeader as TableHeader, DocsTableRow as TableRow };
27
+ declare module '@tiptap/core' {
28
+ interface Commands<ReturnType> {
29
+ docsGrid: {
30
+ insertGrid: (options?: InsertGridOptions) => ReturnType;
31
+ };
32
+ }
33
+ }
34
+ declare const DocsTable: Node<import("@tiptap/extension-table").TableOptions, any>;
35
+ declare const DocsTableCell: Node<import("@tiptap/extension-table").TableCellOptions, any>;
36
+ declare const DocsTableHeader: Node<import("@tiptap/extension-table").TableHeaderOptions, any>;
37
+ declare const DocsTableRow: Node<import("@tiptap/extension-table").TableRowOptions, any>;
38
+ export declare const DocsKit: Extension<DocsKitOptions, any>;
39
+ declare module '@tiptap/core' {
40
+ interface Commands<ReturnType> {
41
+ wordPage: {
42
+ insertPage: (options?: InsertPageOptions) => ReturnType;
43
+ setPageAttrs: (attrs: PageAttrs) => ReturnType;
44
+ insertPageBreak: () => ReturnType;
45
+ insertWordPageTemplate: (templateName: WordPageTemplateName) => ReturnType;
46
+ };
47
+ }
48
+ }
49
+ export declare const Page: Node<PageOptions, any>;
50
+ export declare const PageBreak: Node<PageBreakOptions, any>;
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,420 @@
1
+ import { Extension, Node, mergeAttributes } from '@tiptap/core';
2
+ import '@tiptap/extension-blockquote';
3
+ import '@tiptap/extension-bold';
4
+ import '@tiptap/extension-bullet-list';
5
+ import '@tiptap/extension-code';
6
+ import '@tiptap/extension-heading';
7
+ import '@tiptap/extension-horizontal-rule';
8
+ import '@tiptap/extension-italic';
9
+ import '@tiptap/extension-ordered-list';
10
+ import '@tiptap/extension-paragraph';
11
+ import '@tiptap/extension-strike';
12
+ import '@tiptap/extension-underline';
13
+ import '@tiptap/extensions/undo-redo';
14
+ import { Table } from '@tiptap/extension-table';
15
+ import { TableCell } from '@tiptap/extension-table-cell';
16
+ import { TableHeader } from '@tiptap/extension-table-header';
17
+ import { TableRow } from '@tiptap/extension-table-row';
18
+ import StarterKit from '@tiptap/starter-kit';
19
+ import { Fragment } from '@tiptap/pm/model';
20
+ import { Plugin } from '@tiptap/pm/state';
21
+ import { createWordPagePastePlugin } from './paste';
22
+ import { handlePageBackspace } from './keyboard';
23
+ import { TextAlign } from './extensions/TextAlign';
24
+ import { TextColor } from './extensions/TextColor';
25
+ import { TextFont } from './extensions/TextFont';
26
+ import { TextSize } from './extensions/TextSize';
27
+ import { ParagraphSpacing } from './extensions/ParagraphSpacing';
28
+ import { ResizableImage } from './extensions/ResizableImage';
29
+ import { createEmptyWordPageNode, createWordPage, createWordPageTemplate, defaultPageAttrs, findCurrentPage, pageClassNames, } from './page-model';
30
+ export { createBlankWordPageDocument, createEmptyWordPageNode, createOverflowPageAttrs, createWordPage, createWordPageDocument, createWordPageTemplate, defaultPageAttrs, findCurrentPage, getPagePositions, isEmptyPage, isEmptyTextblock, pageClassNames, } from './page-model';
31
+ export { createWordPagePastePlugin, insertPlainTextAsWordContent, plainTextToParagraphs } from './paste';
32
+ export { handlePageBackspace } from './keyboard';
33
+ export { bindWordPagePagination, mergeSplitWordParagraphs, normalizeWordPages, paginateWordPages, paginateWordPagesUntilStable, removeEmptyTrailingWordPages, } from './pagination';
34
+ export { TextAlign } from './extensions/TextAlign';
35
+ export { TextColor } from './extensions/TextColor';
36
+ export { TextFont } from './extensions/TextFont';
37
+ export { TextSize } from './extensions/TextSize';
38
+ export { ParagraphSpacing } from './extensions/ParagraphSpacing';
39
+ export { ResizableImage } from './extensions/ResizableImage';
40
+ export { DocsTable as Table, DocsTableCell as TableCell, DocsTableHeader as TableHeader, DocsTableRow as TableRow };
41
+ const createGridCell = () => ({
42
+ type: 'tableCell',
43
+ attrs: {
44
+ docsCellKind: 'grid',
45
+ },
46
+ content: [{ type: 'paragraph' }],
47
+ });
48
+ const createGridRow = (cols) => ({
49
+ type: 'tableRow',
50
+ content: Array.from({ length: cols }, createGridCell),
51
+ });
52
+ const createGrid = ({ rows = 3, cols = 3 } = {}) => ({
53
+ type: 'table',
54
+ attrs: {
55
+ docsTableKind: 'grid',
56
+ },
57
+ content: Array.from({ length: rows }, () => createGridRow(cols)),
58
+ });
59
+ const DocsTable = Table.extend({
60
+ addAttributes() {
61
+ return {
62
+ docsTableKind: {
63
+ default: null,
64
+ parseHTML: (element) => element.getAttribute('data-docs-table-kind'),
65
+ renderHTML: (attributes) => {
66
+ if (!attributes.docsTableKind)
67
+ return {};
68
+ return {
69
+ 'data-docs-table-kind': attributes.docsTableKind,
70
+ };
71
+ },
72
+ },
73
+ };
74
+ },
75
+ addCommands() {
76
+ return {
77
+ ...this.parent?.(),
78
+ insertGrid: (options = {}) => ({ commands }) => commands.insertContent(createGrid(options)),
79
+ };
80
+ },
81
+ });
82
+ const gridCellAttribute = {
83
+ docsCellKind: {
84
+ default: null,
85
+ parseHTML: (element) => element.getAttribute('data-docs-cell-kind'),
86
+ renderHTML: (attributes) => {
87
+ if (!attributes.docsCellKind)
88
+ return {};
89
+ return {
90
+ 'data-docs-cell-kind': attributes.docsCellKind,
91
+ };
92
+ },
93
+ },
94
+ };
95
+ const DocsTableCell = TableCell.extend({
96
+ addAttributes() {
97
+ return {
98
+ ...this.parent?.(),
99
+ ...gridCellAttribute,
100
+ };
101
+ },
102
+ });
103
+ const DocsTableHeader = TableHeader.extend({
104
+ addAttributes() {
105
+ return {
106
+ ...this.parent?.(),
107
+ ...gridCellAttribute,
108
+ };
109
+ },
110
+ });
111
+ const DocsTableRow = TableRow.extend({
112
+ addAttributes() {
113
+ return {
114
+ docsRepeatedHeader: {
115
+ default: null,
116
+ parseHTML: (element) => element.getAttribute('data-docs-repeated-header'),
117
+ renderHTML: (attributes) => {
118
+ if (!attributes.docsRepeatedHeader)
119
+ return {};
120
+ return {
121
+ 'data-docs-repeated-header': attributes.docsRepeatedHeader,
122
+ };
123
+ },
124
+ },
125
+ };
126
+ },
127
+ });
128
+ const normalizeNestedPages = (doc) => {
129
+ const normalizedPages = [];
130
+ let changed = false;
131
+ const collectPages = (page) => {
132
+ const pageBlocks = [];
133
+ const nestedPages = [];
134
+ page.forEach((child) => {
135
+ if (child.type.name === 'page') {
136
+ nestedPages.push(child);
137
+ changed = true;
138
+ }
139
+ else {
140
+ pageBlocks.push(child);
141
+ }
142
+ });
143
+ const pages = pageBlocks.length > 0 || nestedPages.length === 0
144
+ ? [page.copy(Fragment.fromArray(pageBlocks))]
145
+ : [];
146
+ nestedPages.forEach((nestedPage) => {
147
+ pages.push(...collectPages(nestedPage));
148
+ });
149
+ return pages;
150
+ };
151
+ doc.forEach((node) => {
152
+ if (node.type.name !== 'page') {
153
+ normalizedPages.push(node);
154
+ return;
155
+ }
156
+ normalizedPages.push(...collectPages(node));
157
+ });
158
+ return changed ? normalizedPages : null;
159
+ };
160
+ export const DocsKit = Extension.create({
161
+ name: 'docsKit',
162
+ addOptions() {
163
+ return {
164
+ starterKit: {},
165
+ textAlign: {},
166
+ textColor: {},
167
+ textFont: {},
168
+ textSize: {},
169
+ paragraphSpacing: {},
170
+ table: {
171
+ resizable: true,
172
+ },
173
+ tableCell: {},
174
+ tableHeader: {},
175
+ tableRow: {},
176
+ page: {},
177
+ pageBreak: {},
178
+ image: {},
179
+ };
180
+ },
181
+ addExtensions() {
182
+ const extensions = [];
183
+ if (this.options.starterKit !== false) {
184
+ extensions.push(StarterKit.configure(this.options.starterKit));
185
+ }
186
+ if (this.options.textAlign !== false) {
187
+ extensions.push(TextAlign.configure(this.options.textAlign));
188
+ }
189
+ if (this.options.textColor !== false) {
190
+ extensions.push(TextColor.configure(this.options.textColor));
191
+ }
192
+ if (this.options.textFont !== false) {
193
+ extensions.push(TextFont.configure(this.options.textFont));
194
+ }
195
+ if (this.options.textSize !== false) {
196
+ extensions.push(TextSize.configure(this.options.textSize));
197
+ }
198
+ if (this.options.paragraphSpacing !== false) {
199
+ extensions.push(ParagraphSpacing.configure(this.options.paragraphSpacing));
200
+ }
201
+ if (this.options.table !== false) {
202
+ extensions.push(DocsTable.configure(this.options.table));
203
+ }
204
+ if (this.options.tableRow !== false) {
205
+ extensions.push(DocsTableRow.configure(this.options.tableRow));
206
+ }
207
+ if (this.options.tableHeader !== false) {
208
+ extensions.push(DocsTableHeader.configure(this.options.tableHeader));
209
+ }
210
+ if (this.options.tableCell !== false) {
211
+ extensions.push(DocsTableCell.configure(this.options.tableCell));
212
+ }
213
+ if (this.options.page !== false) {
214
+ extensions.push(Page.configure(this.options.page));
215
+ }
216
+ if (this.options.pageBreak !== false) {
217
+ extensions.push(PageBreak.configure(this.options.pageBreak));
218
+ }
219
+ if (this.options.image !== false) {
220
+ extensions.push(ResizableImage.configure({
221
+ inline: false,
222
+ allowBase64: true,
223
+ HTMLAttributes: { class: 'word-page-image' },
224
+ ...this.options.image,
225
+ }));
226
+ }
227
+ return extensions;
228
+ },
229
+ });
230
+ export const Page = Node.create({
231
+ name: 'page',
232
+ group: 'block',
233
+ content: 'block+',
234
+ defining: true,
235
+ isolating: true,
236
+ addOptions() {
237
+ return {
238
+ HTMLAttributes: {},
239
+ pasteAsPlainText: true,
240
+ pasteAsPlainTextMinLength: 120,
241
+ };
242
+ },
243
+ addAttributes() {
244
+ return {
245
+ pageType: {
246
+ default: defaultPageAttrs.pageType,
247
+ parseHTML: (element) => element.getAttribute('data-page-type') ?? defaultPageAttrs.pageType,
248
+ renderHTML: (attributes) => ({ 'data-page-type': attributes.pageType }),
249
+ },
250
+ paperSize: {
251
+ default: defaultPageAttrs.paperSize,
252
+ parseHTML: (element) => element.getAttribute('data-paper-size') ?? defaultPageAttrs.paperSize,
253
+ renderHTML: (attributes) => ({ 'data-paper-size': attributes.paperSize }),
254
+ },
255
+ orientation: {
256
+ default: defaultPageAttrs.orientation,
257
+ parseHTML: (element) => element.getAttribute('data-orientation') ?? defaultPageAttrs.orientation,
258
+ renderHTML: (attributes) => ({ 'data-orientation': attributes.orientation }),
259
+ },
260
+ margin: {
261
+ default: defaultPageAttrs.margin,
262
+ parseHTML: (element) => element.getAttribute('data-margin') ?? defaultPageAttrs.margin,
263
+ renderHTML: (attributes) => ({ 'data-margin': attributes.margin }),
264
+ },
265
+ marginValue: {
266
+ default: defaultPageAttrs.marginValue,
267
+ parseHTML: (element) => element.getAttribute('data-margin-value') ?? defaultPageAttrs.marginValue,
268
+ renderHTML: (attributes) => {
269
+ if (!attributes.marginValue)
270
+ return {};
271
+ return {
272
+ 'data-margin-value': attributes.marginValue,
273
+ style: `padding: ${attributes.marginValue}`,
274
+ };
275
+ },
276
+ },
277
+ class: {
278
+ default: defaultPageAttrs.class,
279
+ parseHTML: () => defaultPageAttrs.class,
280
+ renderHTML: () => ({}),
281
+ },
282
+ };
283
+ },
284
+ addGlobalAttributes() {
285
+ return [
286
+ {
287
+ types: ['paragraph'],
288
+ attributes: {
289
+ wordPageSplit: {
290
+ default: null,
291
+ parseHTML: (element) => element.getAttribute('data-word-page-split'),
292
+ renderHTML: (attributes) => {
293
+ if (!attributes.wordPageSplit)
294
+ return {};
295
+ return {
296
+ 'data-word-page-split': attributes.wordPageSplit,
297
+ };
298
+ },
299
+ },
300
+ },
301
+ },
302
+ ];
303
+ },
304
+ parseHTML() {
305
+ return [{ tag: 'section[data-type="page"]' }];
306
+ },
307
+ renderHTML({ node, HTMLAttributes }) {
308
+ return [
309
+ 'section',
310
+ mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
311
+ 'data-type': 'page',
312
+ class: pageClassNames(node.attrs),
313
+ }),
314
+ 0,
315
+ ];
316
+ },
317
+ addCommands() {
318
+ return {
319
+ insertPage: (options = {}) => ({ commands }) => commands.insertContent(createWordPage({
320
+ pageType: options.pageType,
321
+ paperSize: options.paperSize,
322
+ orientation: options.orientation,
323
+ margin: options.margin,
324
+ class: options.class,
325
+ content: options.content,
326
+ })),
327
+ setPageAttrs: (attrs) => ({ editor }) => {
328
+ const currentPage = findCurrentPage(editor);
329
+ if (!currentPage)
330
+ return false;
331
+ const transaction = editor.state.tr.setNodeMarkup(currentPage.start, undefined, {
332
+ ...currentPage.node.attrs,
333
+ ...attrs,
334
+ });
335
+ editor.view.dispatch(transaction.scrollIntoView());
336
+ return true;
337
+ },
338
+ insertWordPageTemplate: (templateName) => ({ commands }) => commands.insertContent(createWordPageTemplate(templateName)),
339
+ };
340
+ },
341
+ addKeyboardShortcuts() {
342
+ return {
343
+ Backspace: () => handlePageBackspace(this.editor),
344
+ };
345
+ },
346
+ addProseMirrorPlugins() {
347
+ return [
348
+ new Plugin({
349
+ appendTransaction: (transactions, _oldState, newState) => {
350
+ if (!transactions.some((transaction) => transaction.docChanged))
351
+ return null;
352
+ const normalizedPages = normalizeNestedPages(newState.doc);
353
+ if (normalizedPages) {
354
+ return newState.tr.replaceWith(0, newState.doc.content.size, Fragment.fromArray(normalizedPages));
355
+ }
356
+ const paragraphType = newState.schema.nodes.paragraph;
357
+ if (paragraphType) {
358
+ const trailingInserts = [];
359
+ newState.doc.forEach((pageNode, pageOffset) => {
360
+ if (pageNode.type.name !== this.name)
361
+ return;
362
+ const lastChild = pageNode.lastChild;
363
+ if (lastChild && lastChild.type.name === 'table') {
364
+ trailingInserts.push(pageOffset + pageNode.nodeSize - 1);
365
+ }
366
+ });
367
+ if (trailingInserts.length > 0) {
368
+ const transaction = newState.tr;
369
+ trailingInserts
370
+ .sort((first, second) => second - first)
371
+ .forEach((position) => transaction.insert(position, paragraphType.create()));
372
+ return transaction;
373
+ }
374
+ }
375
+ let hasPage = false;
376
+ newState.doc.forEach((node) => {
377
+ if (node.type.name === this.name)
378
+ hasPage = true;
379
+ });
380
+ if (hasPage)
381
+ return null;
382
+ return newState.tr.insert(0, createEmptyWordPageNode(newState.schema));
383
+ },
384
+ }),
385
+ createWordPagePastePlugin(this.editor, () => ({
386
+ enabled: this.options.pasteAsPlainText,
387
+ minLength: this.options.pasteAsPlainTextMinLength,
388
+ })),
389
+ ];
390
+ },
391
+ });
392
+ export const PageBreak = Node.create({
393
+ name: 'pageBreak',
394
+ group: 'block',
395
+ atom: true,
396
+ selectable: true,
397
+ addOptions() {
398
+ return {
399
+ HTMLAttributes: {},
400
+ };
401
+ },
402
+ parseHTML() {
403
+ return [{ tag: 'div[data-type="page-break"]' }];
404
+ },
405
+ renderHTML({ HTMLAttributes }) {
406
+ return [
407
+ 'div',
408
+ mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
409
+ 'data-type': 'page-break',
410
+ class: 'page-break',
411
+ }),
412
+ ];
413
+ },
414
+ addCommands() {
415
+ return {
416
+ insertPageBreak: () => ({ commands }) => commands.insertContent({ type: this.name }),
417
+ };
418
+ },
419
+ });
420
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Editor } from '@tiptap/core';
2
+ export declare const handlePageBackspace: (editor: Editor) => boolean;
3
+ //# sourceMappingURL=keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAuC1C,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,OA0BpD,CAAA"}