@kerebron/extension-yjs 0.4.2 → 0.4.4

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 (162) hide show
  1. package/README.md +128 -50
  2. package/assets/collaboration-status.css +172 -0
  3. package/esm/_dnt.polyfills.d.ts +101 -0
  4. package/esm/_dnt.polyfills.d.ts.map +1 -0
  5. package/esm/_dnt.polyfills.js +127 -0
  6. package/esm/_dnt.shims.d.ts +2 -0
  7. package/esm/_dnt.shims.d.ts.map +1 -0
  8. package/esm/_dnt.shims.js +57 -0
  9. package/esm/editor/src/utilities/getShadowRoot.d.ts +2 -0
  10. package/esm/editor/src/utilities/getShadowRoot.d.ts.map +1 -0
  11. package/esm/editor/src/utilities/getShadowRoot.js +16 -0
  12. package/esm/editor/src/utilities/mod.d.ts +6 -0
  13. package/esm/editor/src/utilities/mod.d.ts.map +1 -0
  14. package/esm/editor/src/utilities/mod.js +5 -0
  15. package/esm/editor/src/utilities/toRawTextResult.d.ts +3 -0
  16. package/esm/editor/src/utilities/toRawTextResult.d.ts.map +1 -0
  17. package/esm/editor/src/utilities/toRawTextResult.js +21 -0
  18. package/esm/extension-autocomplete/src/AutocompletePlugin.d.ts +8 -0
  19. package/esm/extension-autocomplete/src/AutocompletePlugin.d.ts.map +1 -0
  20. package/esm/extension-autocomplete/src/AutocompletePlugin.js +232 -0
  21. package/esm/extension-autocomplete/src/DefaultRenderer.d.ts +17 -0
  22. package/esm/extension-autocomplete/src/DefaultRenderer.d.ts.map +1 -0
  23. package/esm/extension-autocomplete/src/DefaultRenderer.js +137 -0
  24. package/esm/extension-autocomplete/src/ExtensionAutocomplete.d.ts +26 -0
  25. package/esm/extension-autocomplete/src/ExtensionAutocomplete.d.ts.map +1 -0
  26. package/esm/extension-autocomplete/src/ExtensionAutocomplete.js +30 -0
  27. package/esm/extension-autocomplete/src/createDefaultMatcher.d.ts +11 -0
  28. package/esm/extension-autocomplete/src/createDefaultMatcher.d.ts.map +1 -0
  29. package/esm/extension-autocomplete/src/createDefaultMatcher.js +58 -0
  30. package/esm/extension-autocomplete/src/createRegexMatcher.d.ts +4 -0
  31. package/esm/extension-autocomplete/src/createRegexMatcher.d.ts.map +1 -0
  32. package/esm/extension-autocomplete/src/createRegexMatcher.js +50 -0
  33. package/esm/extension-autocomplete/src/mod.d.ts +3 -0
  34. package/esm/extension-autocomplete/src/mod.d.ts.map +1 -0
  35. package/esm/extension-autocomplete/src/mod.js +2 -0
  36. package/esm/extension-autocomplete/src/types.d.ts +60 -0
  37. package/esm/extension-autocomplete/src/types.d.ts.map +1 -0
  38. package/esm/extension-autocomplete/src/types.js +1 -0
  39. package/esm/extension-basic-editor/src/ExtensionHtml.d.ts +15 -0
  40. package/esm/extension-basic-editor/src/ExtensionHtml.d.ts.map +1 -0
  41. package/esm/extension-basic-editor/src/ExtensionHtml.js +108 -0
  42. package/esm/extension-lsp/src/DiagnosticPlugin.d.ts +32 -0
  43. package/esm/extension-lsp/src/DiagnosticPlugin.d.ts.map +1 -0
  44. package/esm/extension-lsp/src/DiagnosticPlugin.js +131 -0
  45. package/esm/extension-lsp/src/ExtensionLsp.d.ts +25 -0
  46. package/esm/extension-lsp/src/ExtensionLsp.d.ts.map +1 -0
  47. package/esm/extension-lsp/src/ExtensionLsp.js +126 -0
  48. package/esm/extension-lsp/src/LSPClient.d.ts +56 -0
  49. package/esm/extension-lsp/src/LSPClient.d.ts.map +1 -0
  50. package/esm/extension-lsp/src/LSPClient.js +449 -0
  51. package/esm/extension-lsp/src/LspStatus.d.ts +34 -0
  52. package/esm/extension-lsp/src/LspStatus.d.ts.map +1 -0
  53. package/esm/extension-lsp/src/LspStatus.js +127 -0
  54. package/esm/extension-lsp/src/computeIncrementalChanges.d.ts +8 -0
  55. package/esm/extension-lsp/src/computeIncrementalChanges.d.ts.map +1 -0
  56. package/esm/extension-lsp/src/computeIncrementalChanges.js +82 -0
  57. package/esm/extension-lsp/src/createLspAutocomplete.d.ts +23 -0
  58. package/esm/extension-lsp/src/createLspAutocomplete.d.ts.map +1 -0
  59. package/esm/extension-lsp/src/createLspAutocomplete.js +68 -0
  60. package/esm/extension-lsp/src/workspace.d.ts +62 -0
  61. package/esm/extension-lsp/src/workspace.d.ts.map +1 -0
  62. package/esm/extension-lsp/src/workspace.js +168 -0
  63. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.d.ts +36 -0
  64. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.d.ts.map +1 -0
  65. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.js +240 -0
  66. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.d.ts +26 -0
  67. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.d.ts.map +1 -0
  68. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.js +115 -0
  69. package/esm/extension-markdown/src/ExtensionMarkdown.d.ts +22 -0
  70. package/esm/extension-markdown/src/ExtensionMarkdown.d.ts.map +1 -0
  71. package/esm/extension-markdown/src/ExtensionMarkdown.js +48 -0
  72. package/esm/extension-markdown/src/MarkdownParser.d.ts +61 -0
  73. package/esm/extension-markdown/src/MarkdownParser.d.ts.map +1 -0
  74. package/esm/extension-markdown/src/MarkdownParser.js +249 -0
  75. package/esm/extension-markdown/src/MarkdownSerializer.d.ts +42 -0
  76. package/esm/extension-markdown/src/MarkdownSerializer.d.ts.map +1 -0
  77. package/esm/extension-markdown/src/MarkdownSerializer.js +325 -0
  78. package/esm/extension-markdown/src/PositionMapper.d.ts +15 -0
  79. package/esm/extension-markdown/src/PositionMapper.d.ts.map +1 -0
  80. package/esm/extension-markdown/src/PositionMapper.js +100 -0
  81. package/esm/extension-markdown/src/TokenSource.d.ts +11 -0
  82. package/esm/extension-markdown/src/TokenSource.d.ts.map +1 -0
  83. package/esm/extension-markdown/src/TokenSource.js +39 -0
  84. package/esm/extension-markdown/src/mdToPmConverter.d.ts +5 -0
  85. package/esm/extension-markdown/src/mdToPmConverter.d.ts.map +1 -0
  86. package/esm/extension-markdown/src/mdToPmConverter.js +111 -0
  87. package/esm/extension-markdown/src/pmToMdConverter.d.ts +16 -0
  88. package/esm/extension-markdown/src/pmToMdConverter.d.ts.map +1 -0
  89. package/esm/extension-markdown/src/pmToMdConverter.js +433 -0
  90. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.d.ts +4 -0
  91. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.d.ts.map +1 -0
  92. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.js +151 -0
  93. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.d.ts +3 -0
  94. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.d.ts.map +1 -0
  95. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.js +34 -0
  96. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.d.ts +6 -0
  97. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.d.ts.map +1 -0
  98. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.js +380 -0
  99. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.d.ts +3 -0
  100. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.d.ts.map +1 -0
  101. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.js +323 -0
  102. package/esm/extension-markdown/src/token_handlers/table_token_handlers.d.ts +9 -0
  103. package/esm/extension-markdown/src/token_handlers/table_token_handlers.d.ts.map +1 -0
  104. package/esm/extension-markdown/src/token_handlers/table_token_handlers.js +308 -0
  105. package/esm/extension-markdown/src/treeSitterTokenizer.d.ts +5 -0
  106. package/esm/extension-markdown/src/treeSitterTokenizer.d.ts.map +1 -0
  107. package/esm/extension-markdown/src/treeSitterTokenizer.js +769 -0
  108. package/esm/extension-markdown/src/types.d.ts +28 -0
  109. package/esm/extension-markdown/src/types.d.ts.map +1 -0
  110. package/esm/extension-markdown/src/types.js +131 -0
  111. package/esm/extension-markdown/src/utils.d.ts +8 -0
  112. package/esm/extension-markdown/src/utils.d.ts.map +1 -0
  113. package/esm/extension-markdown/src/utils.js +86 -0
  114. package/esm/extension-menu/src/CustomMenuPlugin.d.ts +65 -0
  115. package/esm/extension-menu/src/CustomMenuPlugin.d.ts.map +1 -0
  116. package/esm/extension-menu/src/CustomMenuPlugin.js +1186 -0
  117. package/esm/extension-menu/src/ExtensionCustomMenu.d.ts +14 -0
  118. package/esm/extension-menu/src/ExtensionCustomMenu.d.ts.map +1 -0
  119. package/esm/extension-menu/src/ExtensionCustomMenu.js +57 -0
  120. package/esm/extension-menu/src/buildMenu.d.ts +5 -0
  121. package/esm/extension-menu/src/buildMenu.d.ts.map +1 -0
  122. package/esm/extension-menu/src/buildMenu.js +331 -0
  123. package/esm/extension-menu/src/icons.d.ts +15 -0
  124. package/esm/extension-menu/src/icons.d.ts.map +1 -0
  125. package/esm/extension-menu/src/icons.js +123 -0
  126. package/esm/extension-menu/src/menu.d.ts +81 -0
  127. package/esm/extension-menu/src/menu.d.ts.map +1 -0
  128. package/esm/extension-menu/src/menu.js +350 -0
  129. package/esm/extension-menu/src/mod.d.ts +3 -0
  130. package/esm/extension-menu/src/mod.d.ts.map +1 -0
  131. package/esm/extension-menu/src/mod.js +2 -0
  132. package/esm/extension-menu/src/prompt.d.ts +36 -0
  133. package/esm/extension-menu/src/prompt.d.ts.map +1 -0
  134. package/esm/extension-menu/src/prompt.js +158 -0
  135. package/esm/extension-yjs/src/CollaborationStatus.d.ts +60 -0
  136. package/esm/extension-yjs/src/CollaborationStatus.d.ts.map +1 -0
  137. package/esm/extension-yjs/src/CollaborationStatus.js +287 -0
  138. package/esm/extension-yjs/src/ExtensionYjs.d.ts +1 -0
  139. package/esm/extension-yjs/src/ExtensionYjs.d.ts.map +1 -1
  140. package/esm/extension-yjs/src/ExtensionYjs.js +1 -0
  141. package/esm/extension-yjs/src/userColors.d.ts +1 -0
  142. package/esm/extension-yjs/src/userColors.d.ts.map +1 -1
  143. package/esm/extension-yjs/src/userColors.js +1 -0
  144. package/esm/tree-sitter-shim/src/main.d.ts +15 -0
  145. package/esm/tree-sitter-shim/src/main.d.ts.map +1 -0
  146. package/esm/tree-sitter-shim/src/main.js +25 -0
  147. package/esm/tree-sitter-shim/src/tree_sitter/node.d.ts +6 -0
  148. package/esm/tree-sitter-shim/src/tree_sitter/node.d.ts.map +1 -0
  149. package/esm/tree-sitter-shim/src/tree_sitter/node.js +1 -0
  150. package/esm/tree-sitter-shim/src/tree_sitter/parser.d.ts +7 -0
  151. package/esm/tree-sitter-shim/src/tree_sitter/parser.d.ts.map +1 -0
  152. package/esm/tree-sitter-shim/src/tree_sitter/parser.js +5 -0
  153. package/esm/tree-sitter-shim/src/tree_sitter/tree.d.ts +6 -0
  154. package/esm/tree-sitter-shim/src/tree_sitter/tree.d.ts.map +1 -0
  155. package/esm/tree-sitter-shim/src/tree_sitter/tree.js +1 -0
  156. package/esm/wasm/src/mod.d.ts +12 -0
  157. package/esm/wasm/src/mod.d.ts.map +1 -0
  158. package/esm/wasm/src/mod.js +48 -0
  159. package/esm/wasm/wasm.d.ts +138 -0
  160. package/esm/wasm/wasm.d.ts.map +1 -0
  161. package/esm/wasm/wasm.js +120 -0
  162. package/package.json +6 -1
@@ -0,0 +1,28 @@
1
+ type TupleArray = Array<[string, string]>;
2
+ export declare const NESTING_OPENING = 1;
3
+ export declare const NESTING_SELF_CLOSING = 0;
4
+ export declare const NESTING_CLOSING = -1;
5
+ type Nesting = -1 | 0 | 1;
6
+ export declare class Token {
7
+ type: string;
8
+ tag: string;
9
+ nesting: Nesting;
10
+ attrs: TupleArray | null;
11
+ map: [number] | [number, number] | [number, number, number, number] | null;
12
+ level: number;
13
+ children: Array<Token> | null;
14
+ content: string;
15
+ markup: string;
16
+ info: string;
17
+ meta: any;
18
+ block: boolean;
19
+ hidden: boolean;
20
+ constructor(type: string, tag: string, nesting: Nesting);
21
+ attrIndex(name: string): number;
22
+ attrPush(attrData: [string, string]): void;
23
+ attrSet(name: string, value: string): void;
24
+ attrGet(name: string): string | null;
25
+ attrJoin(name: string, value: string): void;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extension-markdown/src/types.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1C,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,KAAK,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1B,qBAAa,KAAK;IAcP,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,OAAO;IAfzB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAQ;IAChC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CACnE;IACP,KAAK,EAAE,MAAM,CAAK;IAClB,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAQ;IACrC,OAAO,EAAE,MAAM,CAAM;IACrB,MAAM,EAAE,MAAM,CAAM;IACpB,IAAI,EAAE,MAAM,CAAM;IAClB,IAAI,EAAE,GAAG,CAAQ;IACjB,KAAK,UAAS;IACd,MAAM,UAAS;gBAGN,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO;IAIzB,SAAS,CAAC,IAAI,EAAE,MAAM;IAWtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAQnC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAWnC,OAAO,CAAC,IAAI,EAAE,MAAM;IASpB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CASrC"}
@@ -0,0 +1,131 @@
1
+ // https://github.com/markdown-it/markdown-it/blob/master/lib/token.mjs
2
+ export const NESTING_OPENING = 1;
3
+ export const NESTING_SELF_CLOSING = 0;
4
+ export const NESTING_CLOSING = -1;
5
+ export class Token {
6
+ constructor(type, tag, nesting) {
7
+ Object.defineProperty(this, "type", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: type
12
+ });
13
+ Object.defineProperty(this, "tag", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: tag
18
+ });
19
+ Object.defineProperty(this, "nesting", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: nesting
24
+ });
25
+ Object.defineProperty(this, "attrs", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: null
30
+ });
31
+ Object.defineProperty(this, "map", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: null
36
+ });
37
+ Object.defineProperty(this, "level", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: 0
42
+ });
43
+ Object.defineProperty(this, "children", {
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true,
47
+ value: null
48
+ });
49
+ Object.defineProperty(this, "content", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: ''
54
+ });
55
+ Object.defineProperty(this, "markup", {
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: true,
59
+ value: ''
60
+ });
61
+ Object.defineProperty(this, "info", {
62
+ enumerable: true,
63
+ configurable: true,
64
+ writable: true,
65
+ value: ''
66
+ });
67
+ Object.defineProperty(this, "meta", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: null
72
+ });
73
+ Object.defineProperty(this, "block", {
74
+ enumerable: true,
75
+ configurable: true,
76
+ writable: true,
77
+ value: false
78
+ });
79
+ Object.defineProperty(this, "hidden", {
80
+ enumerable: true,
81
+ configurable: true,
82
+ writable: true,
83
+ value: false
84
+ });
85
+ }
86
+ attrIndex(name) {
87
+ if (!this.attrs)
88
+ return -1;
89
+ const attrs = this.attrs;
90
+ for (let i = 0, len = attrs.length; i < len; i++) {
91
+ if (attrs[i][0] === name)
92
+ return i;
93
+ }
94
+ return -1;
95
+ }
96
+ attrPush(attrData) {
97
+ if (this.attrs) {
98
+ this.attrs.push(attrData);
99
+ }
100
+ else {
101
+ this.attrs = [attrData];
102
+ }
103
+ }
104
+ attrSet(name, value) {
105
+ const idx = this.attrIndex(name);
106
+ const attrData = [name, value];
107
+ if (idx < 0 || !this.attrs) {
108
+ this.attrPush(attrData);
109
+ }
110
+ else {
111
+ this.attrs[idx] = attrData;
112
+ }
113
+ }
114
+ attrGet(name) {
115
+ const idx = this.attrIndex(name);
116
+ let value = null;
117
+ if (idx >= 0 && this.attrs) {
118
+ value = this.attrs[idx][1];
119
+ }
120
+ return value;
121
+ }
122
+ attrJoin(name, value) {
123
+ const idx = this.attrIndex(name);
124
+ if (idx < 0 || !this.attrs) {
125
+ this.attrPush([name, value]);
126
+ }
127
+ else {
128
+ this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;
129
+ }
130
+ }
131
+ }
@@ -0,0 +1,8 @@
1
+ export declare function spaces(num: number): string;
2
+ export declare function inchesToSpaces(value: string): number;
3
+ export declare function inchesToMm(value: string): number;
4
+ export declare function inchesToPixels(value: string): number;
5
+ export declare function fixCharacters(text: string): string;
6
+ export declare function numberString(num: number, symbol?: string): string;
7
+ export declare function romanize(num: number): string;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/extension-markdown/src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,UAEjC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAchD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,UASzC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,UAkBrD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyB5C"}
@@ -0,0 +1,86 @@
1
+ export function spaces(num) {
2
+ return ' '.repeat(num || 0);
3
+ }
4
+ export function inchesToSpaces(value) {
5
+ if (!value) {
6
+ return 0;
7
+ }
8
+ if (value.endsWith('in')) {
9
+ return Math.floor(parseFloat(value.substring(0, value.length - 2)) / 0.125);
10
+ }
11
+ return 0;
12
+ }
13
+ export function inchesToMm(value) {
14
+ if (!value) {
15
+ return 0;
16
+ }
17
+ if (value.endsWith('pt')) {
18
+ return parseFloat(value.substring(0, value.length - 2)) * 0.3528;
19
+ }
20
+ if (value.endsWith('in')) {
21
+ return parseFloat(value.substring(0, value.length - 2)) * 25.4;
22
+ }
23
+ if (value.endsWith('em')) {
24
+ return parseFloat(value.substring(0, value.length - 2)) / 0.125 * 25.4;
25
+ }
26
+ return 0;
27
+ }
28
+ export function inchesToPixels(value) {
29
+ if (!value) {
30
+ return 0;
31
+ }
32
+ return Math.floor(100 * inchesToMm(value));
33
+ }
34
+ export function fixCharacters(text) {
35
+ return text
36
+ .replace(/’/g, "'")
37
+ .replace(/“/g, '"')
38
+ .replace(/”/g, '"')
39
+ // deno-lint-ignore no-control-regex
40
+ .replace(/\x0b/g, ' ')
41
+ .replace(/\u201d/g, '"')
42
+ .replace(/\u201c/g, '"');
43
+ }
44
+ export function numberString(num, symbol = '1') {
45
+ if (['a'].includes(symbol)) {
46
+ return String.fromCharCode('a'.charCodeAt(0) + num - 1) + '. ';
47
+ }
48
+ if (['A'].includes(symbol)) {
49
+ return String.fromCharCode('A'.charCodeAt(0) + num - 1) + '. ';
50
+ }
51
+ if (['I'].includes(symbol)) {
52
+ return `${romanize(num)}. `;
53
+ }
54
+ if (['i'].includes(symbol)) {
55
+ return `${romanize(num).toLowerCase()}. `;
56
+ }
57
+ if (['1'].includes(symbol)) {
58
+ return `${num}. `;
59
+ }
60
+ return `${num}. `;
61
+ }
62
+ export function romanize(num) {
63
+ const lookup = [
64
+ ['M', 1000],
65
+ ['CM', 900],
66
+ ['D', 500],
67
+ ['CD', 400],
68
+ ['C', 100],
69
+ ['XC', 90],
70
+ ['L', 50],
71
+ ['XL', 40],
72
+ ['X', 10],
73
+ ['IX', 9],
74
+ ['V', 5],
75
+ ['IV', 4],
76
+ ['I', 1],
77
+ ];
78
+ let roman = '';
79
+ for (const [symbol, value] of lookup) {
80
+ while (num >= value) {
81
+ roman += symbol;
82
+ num -= value;
83
+ }
84
+ }
85
+ return roman;
86
+ }
@@ -0,0 +1,65 @@
1
+ import { EditorState, Plugin } from 'prosemirror-state';
2
+ import { EditorView } from 'prosemirror-view';
3
+ import type { CoreEditor } from '../../editor/src/mod.js';
4
+ import type { MenuElement } from './menu.js';
5
+ interface ToolItem {
6
+ id: string;
7
+ label: string;
8
+ element: MenuElement;
9
+ isPinned: boolean;
10
+ }
11
+ export declare class CustomMenuView {
12
+ readonly editorView: EditorView;
13
+ readonly editor: CoreEditor;
14
+ readonly content: readonly (readonly MenuElement[])[];
15
+ wrapper: HTMLElement;
16
+ toolbar: HTMLElement;
17
+ overflowMenu: HTMLElement;
18
+ pinnedDropdownMenu: HTMLElement | null;
19
+ modal: HTMLElement | null;
20
+ tools: ToolItem[];
21
+ trailingElements: MenuElement[];
22
+ root: Document | ShadowRoot;
23
+ resizeHandle: HTMLElement;
24
+ editorContainer: HTMLElement;
25
+ private closeOverflowHandler;
26
+ private closePinnedDropdownHandler;
27
+ private submenuStack;
28
+ private pinnedDropdownStack;
29
+ constructor(editorView: EditorView, editor: CoreEditor, content: readonly (readonly MenuElement[])[], trailingElements?: readonly MenuElement[]);
30
+ private initializeTools;
31
+ /**
32
+ * Generate a stable ID from a label by converting it to a kebab-case slug.
33
+ * Falls back to a hash if the label is empty or contains only special characters.
34
+ */
35
+ private generateStableId;
36
+ /**
37
+ * Simple hash function for generating stable IDs from strings.
38
+ */
39
+ private simpleHash;
40
+ private extractLabel;
41
+ private loadPinnedState;
42
+ private savePinnedState;
43
+ private showSubmenu;
44
+ private goBack;
45
+ private showPinnedDropdown;
46
+ private pinnedDropdownGoBack;
47
+ private pinnedDropdownShowSubmenu;
48
+ private renderPinnedDropdown;
49
+ private renderOverflowMenu;
50
+ private render;
51
+ private openManageModal;
52
+ private updateModalState;
53
+ private setupResize;
54
+ update(view: EditorView, prevState: EditorState): void;
55
+ destroy(): void;
56
+ }
57
+ export interface CustomMenuPluginOptions {
58
+ content: readonly (readonly MenuElement[])[];
59
+ trailingElements?: readonly MenuElement[];
60
+ }
61
+ export declare class CustomMenuPlugin extends Plugin {
62
+ constructor(editor: CoreEditor, options: CustomMenuPluginOptions);
63
+ }
64
+ export {};
65
+ //# sourceMappingURL=CustomMenuPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomMenuPlugin.d.ts","sourceRoot":"","sources":["../../../src/extension-menu/src/CustomMenuPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAI1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAuB7C,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,cAAc;IAmBvB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE;IApBvD,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,WAAW,CAAC;IAC1B,kBAAkB,EAAE,WAAW,GAAG,IAAI,CAAQ;IAC9C,KAAK,EAAE,WAAW,GAAG,IAAI,CAAQ;IACjC,KAAK,EAAE,QAAQ,EAAE,CAAM;IACvB,gBAAgB,EAAE,WAAW,EAAE,CAAM;IACrC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,YAAY,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,oBAAoB,CAA0C;IACtE,OAAO,CAAC,0BAA0B,CAA0C;IAC5E,OAAO,CAAC,YAAY,CAAmD;IACvE,OAAO,CAAC,mBAAmB,CAEpB;gBAGI,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,EACrD,gBAAgB,CAAC,EAAE,SAAS,WAAW,EAAE;IAmE3C,OAAO,CAAC,eAAe;IAgCvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,yBAAyB;IAuCjC,OAAO,CAAC,oBAAoB;IA8L5B,OAAO,CAAC,kBAAkB;IA6R1B,OAAO,CAAC,MAAM;IAuMd,OAAO,CAAC,eAAe;IAyHvB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,WAAW;IAgDnB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW;IAQ/C,OAAO;CA8BR;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;IAC7C,gBAAgB,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAC3C;AAED,qBAAa,gBAAiB,SAAQ,MAAM;gBAC9B,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,uBAAuB;CAYjE"}