@kerebron/extension-menu 0.4.5 → 0.4.7

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 (235) hide show
  1. package/README.md +1 -106
  2. package/assets/custom-menu.css +6 -26
  3. package/assets/menu.css +2 -2
  4. package/esm/{extension-menu/src/CustomMenuPlugin.d.ts → CustomMenuPlugin.d.ts} +4 -8
  5. package/esm/CustomMenuPlugin.d.ts.map +1 -0
  6. package/esm/{extension-menu/src/CustomMenuPlugin.js → CustomMenuPlugin.js} +10 -111
  7. package/esm/ExtensionCustomMenu.d.ts +11 -0
  8. package/esm/ExtensionCustomMenu.d.ts.map +1 -0
  9. package/esm/ExtensionCustomMenu.js +23 -0
  10. package/esm/{extension-menu/src/buildMenu.d.ts → buildMenu.d.ts} +1 -1
  11. package/esm/buildMenu.d.ts.map +1 -0
  12. package/esm/icons.d.ts.map +1 -0
  13. package/esm/{extension-menu/src/menu.d.ts → menu.d.ts} +1 -1
  14. package/esm/menu.d.ts.map +1 -0
  15. package/esm/{extension-menu/src/mod.d.ts → mod.d.ts} +0 -1
  16. package/esm/mod.d.ts.map +1 -0
  17. package/esm/{extension-menu/src/mod.js → mod.js} +0 -1
  18. package/esm/prompt.d.ts.map +1 -0
  19. package/package.json +6 -8
  20. package/esm/_dnt.polyfills.d.ts +0 -101
  21. package/esm/_dnt.polyfills.d.ts.map +0 -1
  22. package/esm/_dnt.polyfills.js +0 -127
  23. package/esm/editor/src/CoreEditor.d.ts +0 -40
  24. package/esm/editor/src/CoreEditor.d.ts.map +0 -1
  25. package/esm/editor/src/CoreEditor.js +0 -252
  26. package/esm/editor/src/DummyEditorView.d.ts +0 -60
  27. package/esm/editor/src/DummyEditorView.d.ts.map +0 -1
  28. package/esm/editor/src/DummyEditorView.js +0 -277
  29. package/esm/editor/src/Extension.d.ts +0 -31
  30. package/esm/editor/src/Extension.d.ts.map +0 -1
  31. package/esm/editor/src/Extension.js +0 -53
  32. package/esm/editor/src/ExtensionManager.d.ts +0 -32
  33. package/esm/editor/src/ExtensionManager.d.ts.map +0 -1
  34. package/esm/editor/src/ExtensionManager.js +0 -260
  35. package/esm/editor/src/Mark.d.ts +0 -23
  36. package/esm/editor/src/Mark.d.ts.map +0 -1
  37. package/esm/editor/src/Mark.js +0 -51
  38. package/esm/editor/src/Node.d.ts +0 -32
  39. package/esm/editor/src/Node.d.ts.map +0 -1
  40. package/esm/editor/src/Node.js +0 -60
  41. package/esm/editor/src/commands/CommandManager.d.ts +0 -23
  42. package/esm/editor/src/commands/CommandManager.d.ts.map +0 -1
  43. package/esm/editor/src/commands/CommandManager.js +0 -118
  44. package/esm/editor/src/commands/baseCommandFactories.d.ts +0 -3
  45. package/esm/editor/src/commands/baseCommandFactories.d.ts.map +0 -1
  46. package/esm/editor/src/commands/baseCommandFactories.js +0 -836
  47. package/esm/editor/src/commands/createChainableState.d.ts +0 -3
  48. package/esm/editor/src/commands/createChainableState.d.ts.map +0 -1
  49. package/esm/editor/src/commands/createChainableState.js +0 -29
  50. package/esm/editor/src/commands/keyCommandFactories.d.ts +0 -3
  51. package/esm/editor/src/commands/keyCommandFactories.d.ts.map +0 -1
  52. package/esm/editor/src/commands/keyCommandFactories.js +0 -10
  53. package/esm/editor/src/commands/mod.d.ts +0 -7
  54. package/esm/editor/src/commands/mod.d.ts.map +0 -1
  55. package/esm/editor/src/commands/mod.js +0 -76
  56. package/esm/editor/src/commands/replaceCommandFactories.d.ts +0 -3
  57. package/esm/editor/src/commands/replaceCommandFactories.d.ts.map +0 -1
  58. package/esm/editor/src/commands/replaceCommandFactories.js +0 -94
  59. package/esm/editor/src/commands/types.d.ts +0 -18
  60. package/esm/editor/src/commands/types.d.ts.map +0 -1
  61. package/esm/editor/src/commands/types.js +0 -1
  62. package/esm/editor/src/mod.d.ts +0 -9
  63. package/esm/editor/src/mod.d.ts.map +0 -1
  64. package/esm/editor/src/mod.js +0 -8
  65. package/esm/editor/src/nodeToTreeString.d.ts +0 -10
  66. package/esm/editor/src/nodeToTreeString.d.ts.map +0 -1
  67. package/esm/editor/src/nodeToTreeString.js +0 -74
  68. package/esm/editor/src/plugins/TrackSelecionPlugin.d.ts +0 -6
  69. package/esm/editor/src/plugins/TrackSelecionPlugin.d.ts.map +0 -1
  70. package/esm/editor/src/plugins/TrackSelecionPlugin.js +0 -24
  71. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.d.ts +0 -23
  72. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.d.ts.map +0 -1
  73. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.js +0 -163
  74. package/esm/editor/src/plugins/keymap/keymap.d.ts +0 -11
  75. package/esm/editor/src/plugins/keymap/keymap.d.ts.map +0 -1
  76. package/esm/editor/src/plugins/keymap/keymap.js +0 -125
  77. package/esm/editor/src/plugins/keymap/w3c-keyname.d.ts +0 -4
  78. package/esm/editor/src/plugins/keymap/w3c-keyname.d.ts.map +0 -1
  79. package/esm/editor/src/plugins/keymap/w3c-keyname.js +0 -124
  80. package/esm/editor/src/types.d.ts +0 -52
  81. package/esm/editor/src/types.d.ts.map +0 -1
  82. package/esm/editor/src/types.js +0 -1
  83. package/esm/editor/src/ui.d.ts +0 -15
  84. package/esm/editor/src/ui.d.ts.map +0 -1
  85. package/esm/editor/src/ui.js +0 -16
  86. package/esm/editor/src/utilities/SmartOutput.d.ts +0 -41
  87. package/esm/editor/src/utilities/SmartOutput.d.ts.map +0 -1
  88. package/esm/editor/src/utilities/SmartOutput.js +0 -228
  89. package/esm/editor/src/utilities/createNodeFromContent.d.ts +0 -9
  90. package/esm/editor/src/utilities/createNodeFromContent.d.ts.map +0 -1
  91. package/esm/editor/src/utilities/createNodeFromContent.js +0 -32
  92. package/esm/editor/src/utilities/getHtmlAttributes.d.ts +0 -9
  93. package/esm/editor/src/utilities/getHtmlAttributes.d.ts.map +0 -1
  94. package/esm/editor/src/utilities/getHtmlAttributes.js +0 -47
  95. package/esm/editor/src/utilities/getShadowRoot.d.ts +0 -2
  96. package/esm/editor/src/utilities/getShadowRoot.d.ts.map +0 -1
  97. package/esm/editor/src/utilities/getShadowRoot.js +0 -16
  98. package/esm/editor/src/utilities/mod.d.ts +0 -6
  99. package/esm/editor/src/utilities/mod.d.ts.map +0 -1
  100. package/esm/editor/src/utilities/mod.js +0 -5
  101. package/esm/editor/src/utilities/toRawTextResult.d.ts +0 -3
  102. package/esm/editor/src/utilities/toRawTextResult.d.ts.map +0 -1
  103. package/esm/editor/src/utilities/toRawTextResult.js +0 -21
  104. package/esm/extension-autocomplete/src/AutocompletePlugin.d.ts +0 -8
  105. package/esm/extension-autocomplete/src/AutocompletePlugin.d.ts.map +0 -1
  106. package/esm/extension-autocomplete/src/AutocompletePlugin.js +0 -232
  107. package/esm/extension-autocomplete/src/DefaultRenderer.d.ts +0 -17
  108. package/esm/extension-autocomplete/src/DefaultRenderer.d.ts.map +0 -1
  109. package/esm/extension-autocomplete/src/DefaultRenderer.js +0 -137
  110. package/esm/extension-autocomplete/src/ExtensionAutocomplete.d.ts +0 -26
  111. package/esm/extension-autocomplete/src/ExtensionAutocomplete.d.ts.map +0 -1
  112. package/esm/extension-autocomplete/src/ExtensionAutocomplete.js +0 -30
  113. package/esm/extension-autocomplete/src/createDefaultMatcher.d.ts +0 -11
  114. package/esm/extension-autocomplete/src/createDefaultMatcher.d.ts.map +0 -1
  115. package/esm/extension-autocomplete/src/createDefaultMatcher.js +0 -58
  116. package/esm/extension-autocomplete/src/createRegexMatcher.d.ts +0 -4
  117. package/esm/extension-autocomplete/src/createRegexMatcher.d.ts.map +0 -1
  118. package/esm/extension-autocomplete/src/createRegexMatcher.js +0 -50
  119. package/esm/extension-autocomplete/src/mod.d.ts +0 -3
  120. package/esm/extension-autocomplete/src/mod.d.ts.map +0 -1
  121. package/esm/extension-autocomplete/src/mod.js +0 -2
  122. package/esm/extension-autocomplete/src/types.d.ts +0 -60
  123. package/esm/extension-autocomplete/src/types.d.ts.map +0 -1
  124. package/esm/extension-autocomplete/src/types.js +0 -1
  125. package/esm/extension-basic-editor/src/ExtensionHtml.d.ts +0 -15
  126. package/esm/extension-basic-editor/src/ExtensionHtml.d.ts.map +0 -1
  127. package/esm/extension-basic-editor/src/ExtensionHtml.js +0 -108
  128. package/esm/extension-lsp/src/DiagnosticPlugin.d.ts +0 -32
  129. package/esm/extension-lsp/src/DiagnosticPlugin.d.ts.map +0 -1
  130. package/esm/extension-lsp/src/DiagnosticPlugin.js +0 -131
  131. package/esm/extension-lsp/src/ExtensionLsp.d.ts +0 -25
  132. package/esm/extension-lsp/src/ExtensionLsp.d.ts.map +0 -1
  133. package/esm/extension-lsp/src/ExtensionLsp.js +0 -126
  134. package/esm/extension-lsp/src/LSPClient.d.ts +0 -56
  135. package/esm/extension-lsp/src/LSPClient.d.ts.map +0 -1
  136. package/esm/extension-lsp/src/LSPClient.js +0 -449
  137. package/esm/extension-lsp/src/LspStatus.d.ts +0 -34
  138. package/esm/extension-lsp/src/LspStatus.d.ts.map +0 -1
  139. package/esm/extension-lsp/src/LspStatus.js +0 -127
  140. package/esm/extension-lsp/src/computeIncrementalChanges.d.ts +0 -8
  141. package/esm/extension-lsp/src/computeIncrementalChanges.d.ts.map +0 -1
  142. package/esm/extension-lsp/src/computeIncrementalChanges.js +0 -82
  143. package/esm/extension-lsp/src/createLspAutocomplete.d.ts +0 -23
  144. package/esm/extension-lsp/src/createLspAutocomplete.d.ts.map +0 -1
  145. package/esm/extension-lsp/src/createLspAutocomplete.js +0 -68
  146. package/esm/extension-lsp/src/workspace.d.ts +0 -62
  147. package/esm/extension-lsp/src/workspace.d.ts.map +0 -1
  148. package/esm/extension-lsp/src/workspace.js +0 -168
  149. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.d.ts +0 -36
  150. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.d.ts.map +0 -1
  151. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.js +0 -240
  152. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.d.ts +0 -26
  153. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.d.ts.map +0 -1
  154. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.js +0 -115
  155. package/esm/extension-markdown/src/ExtensionMarkdown.d.ts +0 -22
  156. package/esm/extension-markdown/src/ExtensionMarkdown.d.ts.map +0 -1
  157. package/esm/extension-markdown/src/ExtensionMarkdown.js +0 -48
  158. package/esm/extension-markdown/src/MarkdownParser.d.ts +0 -61
  159. package/esm/extension-markdown/src/MarkdownParser.d.ts.map +0 -1
  160. package/esm/extension-markdown/src/MarkdownParser.js +0 -249
  161. package/esm/extension-markdown/src/MarkdownSerializer.d.ts +0 -42
  162. package/esm/extension-markdown/src/MarkdownSerializer.d.ts.map +0 -1
  163. package/esm/extension-markdown/src/MarkdownSerializer.js +0 -325
  164. package/esm/extension-markdown/src/PositionMapper.d.ts +0 -15
  165. package/esm/extension-markdown/src/PositionMapper.d.ts.map +0 -1
  166. package/esm/extension-markdown/src/PositionMapper.js +0 -100
  167. package/esm/extension-markdown/src/TokenSource.d.ts +0 -11
  168. package/esm/extension-markdown/src/TokenSource.d.ts.map +0 -1
  169. package/esm/extension-markdown/src/TokenSource.js +0 -39
  170. package/esm/extension-markdown/src/mdToPmConverter.d.ts +0 -5
  171. package/esm/extension-markdown/src/mdToPmConverter.d.ts.map +0 -1
  172. package/esm/extension-markdown/src/mdToPmConverter.js +0 -111
  173. package/esm/extension-markdown/src/pmToMdConverter.d.ts +0 -16
  174. package/esm/extension-markdown/src/pmToMdConverter.d.ts.map +0 -1
  175. package/esm/extension-markdown/src/pmToMdConverter.js +0 -433
  176. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.d.ts +0 -4
  177. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.d.ts.map +0 -1
  178. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.js +0 -151
  179. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.d.ts +0 -3
  180. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.d.ts.map +0 -1
  181. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.js +0 -34
  182. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.d.ts +0 -6
  183. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.d.ts.map +0 -1
  184. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.js +0 -380
  185. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.d.ts +0 -3
  186. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.d.ts.map +0 -1
  187. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.js +0 -323
  188. package/esm/extension-markdown/src/token_handlers/table_token_handlers.d.ts +0 -9
  189. package/esm/extension-markdown/src/token_handlers/table_token_handlers.d.ts.map +0 -1
  190. package/esm/extension-markdown/src/token_handlers/table_token_handlers.js +0 -308
  191. package/esm/extension-markdown/src/treeSitterTokenizer.d.ts +0 -5
  192. package/esm/extension-markdown/src/treeSitterTokenizer.d.ts.map +0 -1
  193. package/esm/extension-markdown/src/treeSitterTokenizer.js +0 -769
  194. package/esm/extension-markdown/src/types.d.ts +0 -28
  195. package/esm/extension-markdown/src/types.d.ts.map +0 -1
  196. package/esm/extension-markdown/src/types.js +0 -131
  197. package/esm/extension-markdown/src/utils.d.ts +0 -8
  198. package/esm/extension-markdown/src/utils.d.ts.map +0 -1
  199. package/esm/extension-markdown/src/utils.js +0 -86
  200. package/esm/extension-menu/src/CustomMenuPlugin.d.ts.map +0 -1
  201. package/esm/extension-menu/src/ExtensionCustomMenu.d.ts +0 -15
  202. package/esm/extension-menu/src/ExtensionCustomMenu.d.ts.map +0 -1
  203. package/esm/extension-menu/src/ExtensionCustomMenu.js +0 -58
  204. package/esm/extension-menu/src/buildMenu.d.ts.map +0 -1
  205. package/esm/extension-menu/src/icons.d.ts.map +0 -1
  206. package/esm/extension-menu/src/menu.d.ts.map +0 -1
  207. package/esm/extension-menu/src/mod.d.ts.map +0 -1
  208. package/esm/extension-menu/src/prompt.d.ts.map +0 -1
  209. package/esm/extension-yjs/src/CollaborationStatus.d.ts +0 -59
  210. package/esm/extension-yjs/src/CollaborationStatus.d.ts.map +0 -1
  211. package/esm/extension-yjs/src/CollaborationStatus.js +0 -286
  212. package/esm/tree-sitter-shim/src/main.d.ts +0 -15
  213. package/esm/tree-sitter-shim/src/main.d.ts.map +0 -1
  214. package/esm/tree-sitter-shim/src/main.js +0 -25
  215. package/esm/tree-sitter-shim/src/tree_sitter/node.d.ts +0 -6
  216. package/esm/tree-sitter-shim/src/tree_sitter/node.d.ts.map +0 -1
  217. package/esm/tree-sitter-shim/src/tree_sitter/node.js +0 -1
  218. package/esm/tree-sitter-shim/src/tree_sitter/parser.d.ts +0 -7
  219. package/esm/tree-sitter-shim/src/tree_sitter/parser.d.ts.map +0 -1
  220. package/esm/tree-sitter-shim/src/tree_sitter/parser.js +0 -5
  221. package/esm/tree-sitter-shim/src/tree_sitter/tree.d.ts +0 -6
  222. package/esm/tree-sitter-shim/src/tree_sitter/tree.d.ts.map +0 -1
  223. package/esm/tree-sitter-shim/src/tree_sitter/tree.js +0 -1
  224. package/esm/wasm/src/mod.d.ts +0 -12
  225. package/esm/wasm/src/mod.d.ts.map +0 -1
  226. package/esm/wasm/src/mod.js +0 -48
  227. package/esm/wasm/wasm.d.ts +0 -138
  228. package/esm/wasm/wasm.d.ts.map +0 -1
  229. package/esm/wasm/wasm.js +0 -120
  230. /package/esm/{extension-menu/src/buildMenu.js → buildMenu.js} +0 -0
  231. /package/esm/{extension-menu/src/icons.d.ts → icons.d.ts} +0 -0
  232. /package/esm/{extension-menu/src/icons.js → icons.js} +0 -0
  233. /package/esm/{extension-menu/src/menu.js → menu.js} +0 -0
  234. /package/esm/{extension-menu/src/prompt.d.ts → prompt.d.ts} +0 -0
  235. /package/esm/{extension-menu/src/prompt.js → prompt.js} +0 -0
package/README.md CHANGED
@@ -1,108 +1,3 @@
1
1
  # Menu extension
2
2
 
3
- Custom menu system for ProseMirror editors with pinnable tools and overflow management.
4
-
5
- ## Features
6
-
7
- - **Pinnable Tools**: Pin/unpin tools to customize the toolbar
8
- - **Overflow Menu**: Tools that don't fit in the toolbar appear in an overflow menu
9
- - **Mobile Responsive**: Automatically limits toolbar to 4 tools on narrow screens (< 768px)
10
- - **State Persistence**: Pinned tool configuration saved to localStorage
11
- - **Trailing Elements**: Support for fixed elements on the right side of the toolbar (e.g., status indicators)
12
- - **Auto YJS Integration**: Automatically adds collaboration status when YJS extension is detected
13
- - **Auto LSP Integration**: Automatically adds LSP status when LSP extension is detected
14
-
15
- ## Usage
16
-
17
- ```typescript
18
- import { ExtensionCustomMenu } from '@kerebron/extension-menu';
19
-
20
- // Basic usage - auto-detects YJS and LSP, adds status indicators
21
- new Editor({
22
- extensions: [
23
- // ... other extensions
24
- ExtensionYjs({ ydoc, provider }), // Optional: for collaboration
25
- ExtensionLsp({ getLspTransport }), // Optional: for LSP support
26
- ExtensionCustomMenu(), // Must come LAST for auto-detection
27
- ],
28
- });
29
-
30
- // Disable auto status indicators
31
- new Editor({
32
- extensions: [
33
- ExtensionCustomMenu({
34
- autoAddCollaborationStatus: false,
35
- autoAddLspStatus: false,
36
- }),
37
- // ... other extensions
38
- ],
39
- });
40
-
41
- // Custom trailing elements
42
- import { CollaborationStatusElement } from '@kerebron/extension-yjs/CollaborationStatus';
43
- import { LspStatusElement } from '@kerebron/extension-lsp/LspStatus';
44
-
45
- new Editor({
46
- extensions: [
47
- ExtensionCustomMenu({
48
- autoAddCollaborationStatus: false,
49
- autoAddLspStatus: false,
50
- trailingElements: [
51
- new CollaborationStatusElement({ awareness, provider }),
52
- new LspStatusElement({ lspExtension, label: 'LSP' }),
53
- ],
54
- }),
55
- // ... other extensions
56
- ],
57
- });
58
- ```
59
-
60
- ## Extension Order
61
-
62
- **Important**: For auto-detection to work, `ExtensionCustomMenu` must be registered **after** any extensions you want it to detect:
63
-
64
- ```typescript
65
- extensions: [
66
- // ... other extensions
67
- new ExtensionYjs({ ... }), // Register first (if using)
68
- new ExtensionLsp({ ... }), // Register second (if using)
69
- new ExtensionCustomMenu(), // Register LAST for auto-detection
70
- ]
71
- ```
72
-
73
- ## Options
74
-
75
- | Option | Type | Default | Description |
76
- |--------|------|---------|-------------|
77
- | `content` | `MenuElement[][]` | Auto-generated | Custom menu content (pinnable tools) |
78
- | `trailingElements` | `MenuElement[]` | `[]` | Fixed elements on the right side of toolbar |
79
- | `autoAddCollaborationStatus` | `boolean` | `true` | Auto-add collaboration status when YJS is detected |
80
- | `autoAddLspStatus` | `boolean` | `true` | Auto-add LSP status when LSP extension is detected |
81
-
82
- ## CSS Imports
83
-
84
- Don't forget to import the necessary CSS files:
85
-
86
- ```typescript
87
- import '@kerebron/extension-menu/assets/custom-menu.css';
88
- import '@kerebron/extension-yjs/assets/collaboration-status.css'; // If using YJS
89
- import '@kerebron/extension-lsp/assets/lsp-status.css'; // If using LSP
90
- ```
91
-
92
- ## Debug Mode
93
-
94
- Debug logging is disabled by default. To enable detailed logging for troubleshooting:
95
-
96
- ```javascript
97
- // Enable debug mode
98
- localStorage.setItem('kb-custom-menu-debug', 'true');
99
-
100
- // Disable debug mode
101
- localStorage.removeItem('kb-custom-menu-debug');
102
- ```
103
-
104
- After changing the debug flag, refresh the page to see debug output in the console.
105
-
106
- ## Development
107
-
108
- The custom menu plugin provides a configurable toolbar that adapts to available space and user preferences, with persistent state across sessions.
3
+ Porting prosemirror-menu in progress...
@@ -74,7 +74,7 @@
74
74
  padding: 6px var(--kb-space-sm);
75
75
  background: var(--kb-color-surface-elevated);
76
76
  border-bottom: 1px solid var(--kb-color-border-strong);
77
- z-index: var(--kb-z-dropdown, 100);
77
+ z-index: 1000;
78
78
  overflow: visible;
79
79
  }
80
80
 
@@ -188,24 +188,6 @@
188
188
  margin-left: auto;
189
189
  }
190
190
 
191
- /* Trailing separator (before trailing elements) */
192
- .kb-custom-menu__separator--trailing {
193
- margin-left: 0;
194
- }
195
-
196
- /* Trailing elements group (always visible, not pinnable) */
197
- .kb-custom-menu__trailing-group {
198
- display: flex;
199
- align-items: center;
200
- gap: var(--kb-space-xs);
201
- flex-shrink: 0;
202
- }
203
-
204
- .kb-custom-menu__trailing-item {
205
- display: inline-flex;
206
- align-items: center;
207
- }
208
-
209
191
  /* Overflow toggle button (3-dot menu) */
210
192
  .kb-custom-menu__overflow-toggle {
211
193
  display: inline-flex;
@@ -244,7 +226,7 @@
244
226
  border: 1px solid var(--kb-color-border-strong);
245
227
  border-radius: var(--kb-radius-lg);
246
228
  box-shadow: var(--kb-shadow-lg);
247
- z-index: calc(var(--kb-z-dropdown, 100) + 1);
229
+ z-index: 1001;
248
230
  max-height: 80vh;
249
231
  display: flex;
250
232
  flex-direction: column;
@@ -294,7 +276,7 @@
294
276
  padding: var(--kb-space-sm) 0;
295
277
  border: none;
296
278
  background: transparent;
297
- color: var(--kb-menu-dropdown-dark-text);
279
+ color: var(--kb-color-text);
298
280
  cursor: pointer;
299
281
  border-radius: 0;
300
282
  transition: none;
@@ -379,7 +361,7 @@
379
361
  /* Overflow item label */
380
362
  .kb-custom-menu__overflow-item-label {
381
363
  flex: 1;
382
- color: var(--kb-menu-dropdown-dark-text);
364
+ color: var(--kb-color-text);
383
365
  font-size: var(--kb-text-sm);
384
366
  white-space: nowrap;
385
367
  overflow: hidden;
@@ -392,8 +374,7 @@
392
374
  align-items: center;
393
375
  margin-left: auto;
394
376
  padding-left: var(--kb-space-sm);
395
- color: var(--kb-menu-dropdown-dark-text);
396
- opacity: 0.7;
377
+ color: var(--kb-color-text-muted);
397
378
  }
398
379
 
399
380
  .kb-custom-menu__overflow-item-chevron svg {
@@ -503,7 +484,7 @@
503
484
  right: 0;
504
485
  bottom: 0;
505
486
  background: rgba(0, 0, 0, 0.5);
506
- z-index: var(--kb-z-modal, 300);
487
+ z-index: 10000;
507
488
  display: flex;
508
489
  align-items: center;
509
490
  justify-content: center;
@@ -849,7 +830,6 @@
849
830
  min-width: 200px;
850
831
  max-width: 300px;
851
832
  background: var(--kb-menu-dropdown-dark-bg) !important;
852
- color: var(--kb-menu-dropdown-dark-text);
853
833
  border: 1px solid var(--kb-color-border-strong);
854
834
  border-radius: var(--kb-radius-lg);
855
835
  box-shadow: var(--kb-shadow-lg);
package/assets/menu.css CHANGED
@@ -15,7 +15,7 @@
15
15
  padding: 4px 8px;
16
16
  background: #f9f9f9;
17
17
  border-bottom: 1px solid #dadce0;
18
- z-index: var(--kb-z-dropdown, 100);
18
+ z-index: var(--kb-z-dropdown, 1000);
19
19
  overflow: visible;
20
20
  }
21
21
 
@@ -122,7 +122,7 @@
122
122
 
123
123
  .kb-menu {
124
124
  background-color: var(--kb-color-surface);
125
- z-index: var(--kb-z-dropdown, 100);
125
+ z-index: 10000;
126
126
  }
127
127
 
128
128
  /* Toolbar items */
@@ -1,6 +1,7 @@
1
1
  import { EditorState, Plugin } from 'prosemirror-state';
2
2
  import { EditorView } from 'prosemirror-view';
3
- import type { CoreEditor } from '../../editor/src/mod.js';
3
+ import type { CoreEditor } from '@kerebron/editor';
4
+ import { CustomMenuOptions } from './ExtensionCustomMenu.js';
4
5
  import type { MenuElement } from './menu.js';
5
6
  interface ToolItem {
6
7
  id: string;
@@ -18,7 +19,6 @@ export declare class CustomMenuView {
18
19
  pinnedDropdownMenu: HTMLElement | null;
19
20
  modal: HTMLElement | null;
20
21
  tools: ToolItem[];
21
- trailingElements: MenuElement[];
22
22
  root: Document | ShadowRoot;
23
23
  resizeHandle: HTMLElement;
24
24
  editorContainer: HTMLElement;
@@ -26,7 +26,7 @@ export declare class CustomMenuView {
26
26
  private closePinnedDropdownHandler;
27
27
  private submenuStack;
28
28
  private pinnedDropdownStack;
29
- constructor(editorView: EditorView, editor: CoreEditor, content: readonly (readonly MenuElement[])[], trailingElements?: readonly MenuElement[]);
29
+ constructor(editorView: EditorView, editor: CoreEditor, content: readonly (readonly MenuElement[])[]);
30
30
  private initializeTools;
31
31
  /**
32
32
  * Generate a stable ID from a label by converting it to a kebab-case slug.
@@ -54,12 +54,8 @@ export declare class CustomMenuView {
54
54
  update(view: EditorView, prevState: EditorState): void;
55
55
  destroy(): void;
56
56
  }
57
- export interface CustomMenuPluginOptions {
58
- content: readonly (readonly MenuElement[])[];
59
- trailingElements?: readonly MenuElement[];
60
- }
61
57
  export declare class CustomMenuPlugin extends Plugin {
62
- constructor(editor: CoreEditor, options: CustomMenuPluginOptions);
58
+ constructor(editor: CoreEditor, options: CustomMenuOptions);
63
59
  }
64
60
  export {};
65
61
  //# sourceMappingURL=CustomMenuPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomMenuPlugin.d.ts","sourceRoot":"","sources":["../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,kBAAkB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQ7C,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;IAkBvB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE;IAnBvD,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,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;IA6DvD,OAAO,CAAC,eAAe;IA0BvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,eAAe;IAuBvB,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;IA8J5B,OAAO,CAAC,kBAAkB;IA6R1B,OAAO,CAAC,MAAM;IA6Jd,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,qBAAa,gBAAiB,SAAQ,MAAM;gBAC9B,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB;CAO3D"}
@@ -1,26 +1,13 @@
1
1
  // deno-lint-ignore-file no-window
2
- import * as dntShim from "../../_dnt.shims.js";
2
+ import * as dntShim from "./_dnt.shims.js";
3
3
  import { Plugin } from 'prosemirror-state';
4
4
  const CSS_PREFIX = 'kb-custom-menu';
5
5
  const MAX_PINNED_ITEMS = 8;
6
6
  const STORAGE_KEY = 'kb-custom-menu-pinned';
7
- const DEBUG_STORAGE_KEY = 'kb-custom-menu-debug';
8
7
  // Bootstrap md breakpoint: 768px (mobile is < 768px, desktop is >= 768px)
9
8
  const MOBILE_BREAKPOINT = 768;
10
- // Debug helper function
11
- function debug(...args) {
12
- try {
13
- if (typeof localStorage !== 'undefined' &&
14
- localStorage.getItem(DEBUG_STORAGE_KEY) === 'true') {
15
- console.log('[kb-custom-menu]', ...args);
16
- }
17
- }
18
- catch (e) {
19
- // Ignore localStorage errors
20
- }
21
- }
22
9
  export class CustomMenuView {
23
- constructor(editorView, editor, content, trailingElements) {
10
+ constructor(editorView, editor, content) {
24
11
  Object.defineProperty(this, "editorView", {
25
12
  enumerable: true,
26
13
  configurable: true,
@@ -75,12 +62,6 @@ export class CustomMenuView {
75
62
  writable: true,
76
63
  value: []
77
64
  });
78
- Object.defineProperty(this, "trailingElements", {
79
- enumerable: true,
80
- configurable: true,
81
- writable: true,
82
- value: []
83
- });
84
65
  Object.defineProperty(this, "root", {
85
66
  enumerable: true,
86
67
  configurable: true,
@@ -123,15 +104,10 @@ export class CustomMenuView {
123
104
  writable: true,
124
105
  value: []
125
106
  });
126
- debug('CustomMenuView constructor called');
127
- debug('Content groups:', content.length);
128
107
  this.root = editorView.root;
129
- // Store trailing elements
130
- this.trailingElements = trailingElements ? [...trailingElements] : [];
131
108
  // Create wrapper
132
109
  this.wrapper = document.createElement('div');
133
110
  this.wrapper.classList.add(CSS_PREFIX + '__wrapper');
134
- debug('Wrapper created:', this.wrapper);
135
111
  // Create toolbar
136
112
  this.toolbar = document.createElement('div');
137
113
  this.toolbar.classList.add(CSS_PREFIX);
@@ -175,11 +151,8 @@ export class CustomMenuView {
175
151
  }
176
152
  }
177
153
  initializeTools() {
178
- debug('Initializing tools from content');
179
- let toolCount = 0;
180
- this.content.forEach((group, groupIndex) => {
181
- debug(`Processing group ${groupIndex}, elements:`, group.length);
182
- group.forEach((element, elementIndex) => {
154
+ this.content.forEach((group) => {
155
+ group.forEach((element) => {
183
156
  const { dom, update } = element.render(this.editorView);
184
157
  // For dropdowns, get the label from the element's options directly
185
158
  let label;
@@ -197,11 +170,8 @@ export class CustomMenuView {
197
170
  element,
198
171
  isPinned: false,
199
172
  });
200
- toolCount++;
201
- debug(`Tool ${toolCount}: id="${id}", label="${label}"`);
202
173
  });
203
174
  });
204
- debug(`Total tools initialized: ${this.tools.length}`);
205
175
  }
206
176
  /**
207
177
  * Generate a stable ID from a label by converting it to a kebab-case slug.
@@ -264,38 +234,23 @@ export class CustomMenuView {
264
234
  return 'Unknown Tool';
265
235
  }
266
236
  loadPinnedState() {
267
- debug('Loading pinned state from localStorage');
268
237
  try {
269
238
  const saved = localStorage.getItem(STORAGE_KEY);
270
- debug('Saved pinned state:', saved);
271
239
  if (saved) {
272
240
  const pinnedIds = JSON.parse(saved);
273
- debug('Pinned tool IDs:', pinnedIds);
274
- // If the saved array is empty, treat it as no saved state (use defaults)
275
- if (pinnedIds.length === 0) {
276
- debug('Saved state is empty array, using default (first 8 tools)');
277
- this.tools.slice(0, MAX_PINNED_ITEMS).forEach((tool) => {
278
- tool.isPinned = true;
279
- });
280
- }
281
- else {
282
- this.tools.forEach((tool) => {
283
- tool.isPinned = pinnedIds.includes(tool.id);
284
- });
285
- }
241
+ this.tools.forEach((tool) => {
242
+ tool.isPinned = pinnedIds.includes(tool.id);
243
+ });
286
244
  }
287
245
  else {
288
246
  // Default pinned items (first 8)
289
- debug('No saved state, using default (first 8 tools)');
290
247
  this.tools.slice(0, MAX_PINNED_ITEMS).forEach((tool) => {
291
248
  tool.isPinned = true;
292
249
  });
293
250
  }
294
- const pinnedCount = this.tools.filter((t) => t.isPinned).length;
295
- debug(`Loaded pinned state: ${pinnedCount} tools pinned`);
296
251
  }
297
252
  catch (e) {
298
- console.error('[kb-custom-menu] Failed to load pinned state:', e);
253
+ console.error('Failed to load pinned state:', e);
299
254
  // Default to first 8 items
300
255
  this.tools.slice(0, MAX_PINNED_ITEMS).forEach((tool) => {
301
256
  tool.isPinned = true;
@@ -442,37 +397,6 @@ export class CustomMenuView {
442
397
  // Create dropdown menu
443
398
  this.pinnedDropdownMenu = document.createElement('div');
444
399
  this.pinnedDropdownMenu.classList.add(CSS_PREFIX + '__pinned-dropdown');
445
- // Inherit theme CSS variables from editor container
446
- // This ensures dropdowns match the editor's theme even when appended to body
447
- const editorContainer = this.editorView.dom.closest('.kb-component') ||
448
- this.editorView.dom.parentElement;
449
- if (editorContainer) {
450
- const computedStyle = getComputedStyle(editorContainer);
451
- const themeVars = [
452
- // New unified naming
453
- '--kb-menu-dropdown-bg',
454
- '--kb-menu-dropdown-border',
455
- '--kb-menu-dropdown-text',
456
- // Legacy naming (for backwards compatibility)
457
- '--kb-menu-dropdown-dark-bg',
458
- '--kb-menu-dropdown-dark-border',
459
- '--kb-menu-dropdown-dark-text',
460
- // General theme colors
461
- '--kb-color-surface',
462
- '--kb-color-surface-elevated',
463
- '--kb-color-surface-hover',
464
- '--kb-color-border',
465
- '--kb-color-border-strong',
466
- '--kb-color-text',
467
- '--kb-color-text-muted',
468
- ];
469
- themeVars.forEach((varName) => {
470
- const value = computedStyle.getPropertyValue(varName).trim();
471
- if (value) {
472
- this.pinnedDropdownMenu.style.setProperty(varName, value);
473
- }
474
- });
475
- }
476
400
  // Position it below the trigger element
477
401
  const rect = triggerElement.getBoundingClientRect();
478
402
  this.pinnedDropdownMenu.style.position = 'absolute';
@@ -835,28 +759,22 @@ export class CustomMenuView {
835
759
  }
836
760
  }
837
761
  render() {
838
- debug('render() called');
839
762
  // Clear toolbar and overflow menu
840
763
  this.toolbar.innerHTML = '';
841
764
  this.overflowMenu.innerHTML = '';
842
765
  const pinnedTools = this.tools.filter((t) => t.isPinned);
843
766
  const overflowTools = this.tools.filter((t) => !t.isPinned);
844
- debug(`Rendering: ${pinnedTools.length} pinned, ${overflowTools.length} unpinned`);
845
767
  // Check if we're in mobile view (Bootstrap md breakpoint: < 768px)
846
768
  const isMobile = typeof dntShim.dntGlobalThis !== 'undefined' &&
847
769
  globalThis.innerWidth < MOBILE_BREAKPOINT;
848
770
  const mobileLimit = 4;
849
- debug(`isMobile: ${isMobile}, window width: ${typeof dntShim.dntGlobalThis !== 'undefined' ? globalThis.innerWidth : 'N/A'}`);
850
771
  // In mobile, only show first 4 pinned tools in toolbar
851
772
  const visibleTools = isMobile
852
773
  ? pinnedTools.slice(0, mobileLimit)
853
774
  : pinnedTools;
854
775
  const mobileOverflowPinned = isMobile ? pinnedTools.slice(mobileLimit) : [];
855
- debug(`Visible tools in toolbar: ${visibleTools.length}`);
856
- debug('Visible tool IDs:', visibleTools.map((t) => t.id).join(', '));
857
776
  // Render visible pinned tools in toolbar
858
- visibleTools.forEach((tool, index) => {
859
- debug(`Rendering tool ${index + 1}/${visibleTools.length}: "${tool.label}" (${tool.id})`);
777
+ visibleTools.forEach((tool) => {
860
778
  const wrapper = document.createElement('span');
861
779
  wrapper.classList.add(CSS_PREFIX + '__item');
862
780
  wrapper.setAttribute('data-tool-id', tool.id);
@@ -972,25 +890,6 @@ export class CustomMenuView {
972
890
  });
973
891
  this.toolbar.appendChild(overflowToggle);
974
892
  }
975
- // Render trailing elements (always visible, not pinnable)
976
- if (this.trailingElements.length > 0) {
977
- // Add separator before trailing elements
978
- const separator = document.createElement('div');
979
- separator.classList.add(CSS_PREFIX + '__separator');
980
- separator.classList.add(CSS_PREFIX + '__separator--trailing');
981
- this.toolbar.appendChild(separator);
982
- // Create a trailing group container
983
- const trailingGroup = document.createElement('div');
984
- trailingGroup.classList.add(CSS_PREFIX + '__trailing-group');
985
- this.trailingElements.forEach((element) => {
986
- const { dom, update } = element.render(this.editorView);
987
- const wrapper = document.createElement('span');
988
- wrapper.classList.add(CSS_PREFIX + '__trailing-item');
989
- wrapper.appendChild(dom);
990
- trailingGroup.appendChild(wrapper);
991
- });
992
- this.toolbar.appendChild(trailingGroup);
993
- }
994
893
  // Render overflow menu content
995
894
  this.renderOverflowMenu();
996
895
  }
@@ -1179,7 +1078,7 @@ export class CustomMenuPlugin extends Plugin {
1179
1078
  constructor(editor, options) {
1180
1079
  super({
1181
1080
  view(editorView) {
1182
- return new CustomMenuView(editorView, editor, options.content, options.trailingElements);
1081
+ return new CustomMenuView(editorView, editor, options.content);
1183
1082
  },
1184
1083
  });
1185
1084
  }
@@ -0,0 +1,11 @@
1
+ import { Plugin } from 'prosemirror-state';
2
+ import { Extension } from '@kerebron/editor';
3
+ import { type MenuElement } from './menu.js';
4
+ export interface CustomMenuOptions {
5
+ content: readonly (readonly MenuElement[])[];
6
+ }
7
+ export declare class ExtensionCustomMenu extends Extension {
8
+ name: string;
9
+ getProseMirrorPlugins(): Plugin[];
10
+ }
11
+ //# sourceMappingURL=ExtensionCustomMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionCustomMenu.d.ts","sourceRoot":"","sources":["../src/ExtensionCustomMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,MAAM,WAAW,iBAAiB;IAEhC,OAAO,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;CAC9C;AAGD,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,IAAI,SAAgB;IAEX,qBAAqB,IAAI,MAAM,EAAE;CAS3C"}
@@ -0,0 +1,23 @@
1
+ import { Extension } from '@kerebron/editor';
2
+ import { buildMenu } from './buildMenu.js';
3
+ import { CustomMenuPlugin } from './CustomMenuPlugin.js';
4
+ /// Extension for a customizable menu with pinned items
5
+ export class ExtensionCustomMenu extends Extension {
6
+ constructor() {
7
+ super(...arguments);
8
+ Object.defineProperty(this, "name", {
9
+ enumerable: true,
10
+ configurable: true,
11
+ writable: true,
12
+ value: 'customMenu'
13
+ });
14
+ }
15
+ getProseMirrorPlugins() {
16
+ const content = buildMenu(this.editor, this.editor.schema);
17
+ return [
18
+ new CustomMenuPlugin(this.editor, {
19
+ content,
20
+ }),
21
+ ];
22
+ }
23
+ }
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'prosemirror-model';
2
- import { type CoreEditor } from '../../editor/src/mod.js';
2
+ import { type CoreEditor } from '@kerebron/editor';
3
3
  import { type MenuElement } from './menu.js';
4
4
  export declare function buildMenu(editor: CoreEditor, schema: Schema): MenuElement[][];
5
5
  //# sourceMappingURL=buildMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildMenu.d.ts","sourceRoot":"","sources":["../src/buildMenu.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,WAAW,CAAC;AAoCnB,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,CAgX7E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAerC,wBAAgB,OAAO,CACrB,IAAI,EAAE,QAAQ,GAAG,UAAU,EAC3B,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,GAChB,WAAW,CAmCb;AA8BD,eAAO,MAAM,KAAK,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;CAyE7C,CAAC"}
@@ -11,7 +11,7 @@ export declare class MenuItem implements MenuElement {
11
11
  CSS_PREFIX: string;
12
12
  constructor(spec: MenuItemSpec);
13
13
  render(view: EditorView): {
14
- dom: HTMLElement | null;
14
+ dom: any;
15
15
  update: (state: EditorState) => boolean;
16
16
  };
17
17
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import "../../_dnt.polyfills.js";
2
1
  export { Dropdown, DropdownSubmenu, type MenuElement, MenuItem, type MenuItemSpec, } from './menu.js';
3
2
  export * from './ExtensionCustomMenu.js';
4
3
  //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,YAAY,GAClB,MAAM,WAAW,CAAC;AAEnB,cAAc,0BAA0B,CAAC"}
@@ -1,3 +1,2 @@
1
- import "../../_dnt.polyfills.js";
2
1
  export { Dropdown, DropdownSubmenu, MenuItem, } from './menu.js';
3
2
  export * from './ExtensionCustomMenu.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,QA0EA;AA+BD,8BAAsB,KAAK;IAKvB,QAAQ,CAAC,OAAO,EAAE;QAEhB,KAAK,CAAC,EAAE,GAAG,CAAC;QAGZ,KAAK,EAAE,MAAM,CAAC;QAGd,QAAQ,CAAC,EAAE,OAAO,CAAC;QAInB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;QAGzC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;KAC7B;gBAhBQ,OAAO,EAAE;QAEhB,KAAK,CAAC,EAAE,GAAG,CAAC;QAGZ,KAAK,EAAE,MAAM,CAAC;QAGd,QAAQ,CAAC,EAAE,OAAO,CAAC;QAInB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;QAGzC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;KAC7B;IAIH,QAAQ,CAAC,MAAM,IAAI,WAAW;IAG9B,IAAI,CAAC,GAAG,EAAE,WAAW;IAKrB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI;IAKvC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI;IAQnC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;CAGvB;AAGD,qBAAa,SAAU,SAAQ,KAAK;IAClC,MAAM;CAQP;AAMD,qBAAa,WAAY,SAAQ,KAAK;IACpC,MAAM;CAWP"}
package/package.json CHANGED
@@ -1,24 +1,22 @@
1
1
  {
2
2
  "name": "@kerebron/extension-menu",
3
- "version": "0.4.5",
3
+ "version": "0.4.7",
4
4
  "license": "MIT",
5
- "module": "./esm/extension-menu/src/mod.js",
5
+ "module": "./esm/mod.js",
6
6
  "exports": {
7
7
  ".": {
8
- "import": "./esm/extension-menu/src/mod.js"
8
+ "import": "./esm/mod.js"
9
9
  },
10
10
  "./ExtensionCustomMenu": {
11
- "import": "./esm/extension-menu/src/ExtensionCustomMenu.js"
11
+ "import": "./esm/ExtensionCustomMenu.js"
12
12
  }
13
13
  },
14
14
  "scripts": {},
15
15
  "dependencies": {
16
+ "@kerebron/editor": "0.4.7",
16
17
  "prosemirror-model": "1.25.3",
17
18
  "prosemirror-state": "1.4.3",
18
- "prosemirror-transform": "1.10.4",
19
- "prosemirror-view": "1.40.0",
20
- "vscode-languageserver-protocol": "3.17.5",
21
- "web-tree-sitter": "0.24.7"
19
+ "prosemirror-view": "1.40.0"
22
20
  },
23
21
  "devDependencies": {
24
22
  "@types/node": "^20.9.0"