@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,61 @@
1
+ import { TextSelection } from '@tiptap/pm/state';
2
+ import { findCurrentPage, getPagePositions, isEmptyPage } from './page-model';
3
+ const findLastTextDeleteRange = (page) => {
4
+ let deleteRange = null;
5
+ page.node.descendants((node, position) => {
6
+ if (!node.isText || !node.text || node.text.length === 0)
7
+ return;
8
+ const lastCharacterPosition = page.start + 1 + position + node.text.length - 1;
9
+ deleteRange = {
10
+ from: lastCharacterPosition,
11
+ to: lastCharacterPosition + 1,
12
+ };
13
+ });
14
+ return deleteRange;
15
+ };
16
+ const isSelectionAtStartOfPageContent = (editor, page) => {
17
+ const { selection } = editor.state;
18
+ if (!selection.empty)
19
+ return false;
20
+ if (selection.$from.parentOffset > 0)
21
+ return false;
22
+ if (selection.$from.pos <= page.start + 1)
23
+ return true;
24
+ if (selection.$from.before(selection.$from.depth) !== page.start + 1)
25
+ return false;
26
+ let firstChildStart = page.start + 1;
27
+ for (let index = 0; index < page.node.childCount; index += 1) {
28
+ const child = page.node.child(index);
29
+ if (child.isTextblock)
30
+ return selection.$from.pos === firstChildStart + 1;
31
+ firstChildStart += child.nodeSize;
32
+ }
33
+ return false;
34
+ };
35
+ export const handlePageBackspace = (editor) => {
36
+ const currentPage = findCurrentPage(editor);
37
+ if (!currentPage || currentPage.index === 0)
38
+ return false;
39
+ if (!isSelectionAtStartOfPageContent(editor, currentPage))
40
+ return false;
41
+ const previousPage = getPagePositions(editor)[currentPage.index - 1];
42
+ if (!previousPage)
43
+ return false;
44
+ const transaction = editor.state.tr;
45
+ if (isEmptyPage(currentPage.node)) {
46
+ transaction.delete(currentPage.start, currentPage.start + currentPage.node.nodeSize);
47
+ const previousSelectionPosition = Math.max(previousPage.start + 1, previousPage.start + previousPage.node.content.size);
48
+ transaction.setSelection(TextSelection.near(transaction.doc.resolve(transaction.mapping.map(previousSelectionPosition)), -1));
49
+ }
50
+ else {
51
+ const deleteRange = findLastTextDeleteRange(previousPage);
52
+ if (!deleteRange)
53
+ return false;
54
+ const currentSelectionPosition = editor.state.selection.from;
55
+ transaction.delete(deleteRange.from, deleteRange.to);
56
+ transaction.setSelection(TextSelection.near(transaction.doc.resolve(transaction.mapping.map(currentSelectionPosition)), 1));
57
+ }
58
+ editor.view.dispatch(transaction.scrollIntoView());
59
+ return true;
60
+ };
61
+ //# sourceMappingURL=keyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Editor, JSONContent } from '@tiptap/core';
2
+ import type { Node as ProseMirrorNode, Schema } from '@tiptap/pm/model';
3
+ import type { InsertPageOptions, PageAttrs, PagePosition, WordPageTemplateName } from './types';
4
+ export declare const defaultPageAttrs: Required<Omit<PageAttrs, 'class' | 'marginValue'>> & Pick<PageAttrs, 'class' | 'marginValue'>;
5
+ export declare const pageClassNames: ({ pageType, paperSize, orientation, margin, class: className }: PageAttrs) => string;
6
+ export declare const createWordPage: (options?: InsertPageOptions) => JSONContent;
7
+ export declare const createBlankWordPageDocument: () => JSONContent;
8
+ export declare const createEmptyWordPageNode: (schema: Schema) => ProseMirrorNode;
9
+ export declare const createWordPageTemplate: (templateName: WordPageTemplateName) => JSONContent;
10
+ export declare const createWordPageDocument: () => JSONContent;
11
+ export declare const isEmptyTextblock: (node: ProseMirrorNode) => boolean;
12
+ export declare const isEmptyPage: (node: ProseMirrorNode) => boolean;
13
+ export declare const getPagePositions: (editor: Editor) => PagePosition[];
14
+ export declare const findCurrentPage: (editor: Editor) => PagePosition | null;
15
+ export declare const createOverflowPageAttrs: (attrs?: PageAttrs) => PageAttrs;
16
+ //# sourceMappingURL=page-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-model.d.ts","sourceRoot":"","sources":["../src/page-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE/F,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,CAO1H,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,gEAAgE,SAAS,WAO7E,CAAA;AAE3B,eAAO,MAAM,cAAc,GAAI,UAAS,iBAAsB,KAAG,WAY/D,CAAA;AAEF,eAAO,MAAM,2BAA2B,QAAO,WAG7C,CAAA;AAEF,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,eAGxD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,cAAc,oBAAoB,KAAG,WAsC3E,CAAA;AAED,eAAO,MAAM,sBAAsB,QAAO,WAOxC,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,eAAe,KAAG,OAAsD,CAAA;AAE/G,eAAO,MAAM,WAAW,GAAI,MAAM,eAAe,KAAG,OAMnD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,YAAY,EAU7D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,YAAY,GAAG,IAK/D,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,QAAO,SAAc,KAAG,SAK9D,CAAA"}
@@ -0,0 +1,111 @@
1
+ export const defaultPageAttrs = {
2
+ pageType: 'body',
3
+ paperSize: 'a4',
4
+ orientation: 'portrait',
5
+ margin: 'normal',
6
+ marginValue: null,
7
+ class: null,
8
+ };
9
+ export const pageClassNames = ({ pageType, paperSize, orientation, margin, class: className }) => [
10
+ 'a4-page',
11
+ pageType ? `a4-page--${pageType}` : '',
12
+ paperSize ? `a4-page--${paperSize}` : '',
13
+ orientation ? `a4-page--${orientation}` : '',
14
+ margin ? `a4-page--margin-${margin}` : '',
15
+ className ?? '',
16
+ ].filter(Boolean).join(' ');
17
+ export const createWordPage = (options = {}) => ({
18
+ type: 'page',
19
+ attrs: {
20
+ ...defaultPageAttrs,
21
+ pageType: options.pageType ?? defaultPageAttrs.pageType,
22
+ paperSize: options.paperSize ?? defaultPageAttrs.paperSize,
23
+ orientation: options.orientation ?? defaultPageAttrs.orientation,
24
+ margin: options.margin ?? defaultPageAttrs.margin,
25
+ marginValue: options.marginValue ?? defaultPageAttrs.marginValue,
26
+ class: options.class ?? defaultPageAttrs.class,
27
+ },
28
+ content: options.content ?? [{ type: 'paragraph' }],
29
+ });
30
+ export const createBlankWordPageDocument = () => ({
31
+ type: 'doc',
32
+ content: [createWordPage()],
33
+ });
34
+ export const createEmptyWordPageNode = (schema) => schema.nodes.page.create(defaultPageAttrs, schema.nodes.paragraph.create());
35
+ export const createWordPageTemplate = (templateName) => {
36
+ const templates = {
37
+ cover: createWordPage({
38
+ pageType: 'cover',
39
+ content: [
40
+ { type: 'heading', attrs: { level: 2 }, content: [{ type: 'text', text: 'LAPORAN PROYEK AKHIR' }] },
41
+ { type: 'paragraph', attrs: { class: 'subtitle' }, content: [{ type: 'text', text: 'Pengembangan Sistem Dokumentasi Terpadu Berbasis Awan untuk Optimalisasi Kolaborasi Profesional' }] },
42
+ { type: 'paragraph', content: [{ type: 'text', text: 'Disusun oleh:' }] },
43
+ { type: 'paragraph', content: [{ type: 'text', text: 'Felix Arvidsson' }] },
44
+ { type: 'paragraph', content: [{ type: 'text', text: 'NIM: 1202194012' }] },
45
+ { type: 'paragraph', content: [{ type: 'text', text: 'FAKULTAS REKAYASA INDUSTRI' }] },
46
+ { type: 'paragraph', content: [{ type: 'text', text: 'UNIVERSITAS TEKNOLOGI MODERN' }] },
47
+ { type: 'paragraph', content: [{ type: 'text', text: 'BANDUNG' }] },
48
+ { type: 'paragraph', content: [{ type: 'text', text: '2024' }] },
49
+ ],
50
+ }),
51
+ preface: createWordPage({
52
+ content: [
53
+ { type: 'heading', attrs: { level: 3 }, content: [{ type: 'text', text: 'Kata Pengantar' }] },
54
+ { type: 'paragraph', content: [{ type: 'text', text: 'Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala rahmat dan hidayah-Nya sehingga Laporan Proyek Akhir ini dapat diselesaikan tepat pada waktunya.' }] },
55
+ { type: 'paragraph', content: [{ type: 'text', text: 'Laporan ini disusun sebagai salah satu syarat untuk menyelesaikan program studi di Fakultas Rekayasa Industri, Universitas Teknologi Modern. Penulis menyadari bahwa keberhasilan penyusunan laporan ini tidak lepas dari bantuan berbagai pihak.' }] },
56
+ ],
57
+ }),
58
+ contents: createWordPage({
59
+ pageType: 'toc',
60
+ class: 'a4-page--last',
61
+ content: [
62
+ { type: 'heading', attrs: { level: 3 }, content: [{ type: 'text', text: 'Daftar Isi' }] },
63
+ { type: 'paragraph', content: [{ type: 'text', text: 'BAB I PENDAHULUAN ........................................................ 1' }] },
64
+ { type: 'paragraph', content: [{ type: 'text', text: 'BAB II LANDASAN TEORI .................................................... 5' }] },
65
+ { type: 'paragraph', content: [{ type: 'text', text: 'BAB III METODOLOGI PENELITIAN ...................................... 15' }] },
66
+ { type: 'paragraph', content: [{ type: 'text', text: 'BAB IV ANALISIS DAN PEMBAHASAN .................................... 25' }] },
67
+ ],
68
+ }),
69
+ starter: createBlankWordPageDocument(),
70
+ };
71
+ return templates[templateName];
72
+ };
73
+ export const createWordPageDocument = () => ({
74
+ type: 'doc',
75
+ content: [
76
+ createWordPageTemplate('cover'),
77
+ createWordPageTemplate('preface'),
78
+ createWordPageTemplate('contents'),
79
+ ],
80
+ });
81
+ export const isEmptyTextblock = (node) => node.isTextblock && node.content.size === 0;
82
+ export const isEmptyPage = (node) => {
83
+ if (node.type.name !== 'page')
84
+ return false;
85
+ if (node.childCount === 0)
86
+ return true;
87
+ if (node.childCount === 1)
88
+ return isEmptyTextblock(node.firstChild);
89
+ return node.content.size === 0 || node.textContent.trim().length === 0;
90
+ };
91
+ export const getPagePositions = (editor) => {
92
+ const pagePositions = [];
93
+ editor.state.doc.forEach((node, offset, index) => {
94
+ if (node.type.name === 'page') {
95
+ pagePositions.push({ index, start: offset, node });
96
+ }
97
+ });
98
+ return pagePositions;
99
+ };
100
+ export const findCurrentPage = (editor) => {
101
+ const { $from } = editor.state.selection;
102
+ const pagePositions = getPagePositions(editor);
103
+ return pagePositions.find(({ start, node }) => $from.pos > start && $from.pos < start + node.nodeSize) ?? null;
104
+ };
105
+ export const createOverflowPageAttrs = (attrs = {}) => ({
106
+ ...defaultPageAttrs,
107
+ ...attrs,
108
+ pageType: 'body',
109
+ class: null,
110
+ });
111
+ //# sourceMappingURL=page-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-model.js","sourceRoot":"","sources":["../src/page-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Editor } from '@tiptap/core';
2
+ import type { WordPagePaginationBindingOptions, WordPagePaginationOptions, WordPageStablePaginationOptions } from './types';
3
+ export declare const normalizeWordPages: (editor: Editor) => boolean;
4
+ export declare const removeEmptyTrailingWordPages: (editor: Editor) => boolean;
5
+ export declare const mergeSplitWordParagraphs: (editor: Editor) => boolean;
6
+ export declare const paginateWordPages: (editor: Editor, rootElement: ParentNode, options?: WordPagePaginationOptions) => boolean;
7
+ export declare const paginateWordPagesUntilStable: (editor: Editor, rootElement: ParentNode, options?: WordPageStablePaginationOptions) => boolean;
8
+ export declare const bindWordPagePagination: (editor: Editor, rootElement: ParentNode, options?: WordPagePaginationBindingOptions) => (() => void);
9
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAI1C,OAAO,KAAK,EAGV,gCAAgC,EAChC,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,SAAS,CAAA;AAqVhB,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,KAAG,OAyBnD,CAAA;AAED,eAAO,MAAM,4BAA4B,WA3BE,MAAM,KAAG,OA2BU,CAAA;AAE9D,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,OAmDzD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,aAAa,UAAU,EACvB,UAAS,yBAA8B,KACtC,OAgIF,CAAA;AAED,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,aAAa,UAAU,EACvB,UAAS,+BAAoC,KAC5C,OAYF,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,aAAa,UAAU,EACvB,UAAS,gCAAqC,KAC7C,CAAC,MAAM,IAAI,CA+Cb,CAAA"}