@kerebron/extension-basic-editor 0.5.0 → 0.5.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionDropcursor.d.ts","sourceRoot":"","sources":["../src/ExtensionDropcursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,UAAU,iBAAiB;IAEzB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAGvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAMlE;AA+KD,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,IAAI,SAAgB;IAEpB,OAAO;;;;MAIL;IAEO,qBAAqB,IAAI,MAAM,EAAE;CAK3C"}
1
+ {"version":3,"file":"ExtensionDropcursor.d.ts","sourceRoot":"","sources":["../src/ExtensionDropcursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAa,MAAM,mBAAmB,CAAC;AAInE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,UAAU,iBAAiB;IAEzB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAGvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAOlE;AA+KD,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,IAAI,SAAgB;IAEpB,OAAO;;;;MAIL;IAEO,qBAAqB,IAAI,MAAM,EAAE;CAK3C"}
@@ -1,4 +1,4 @@
1
- import { Plugin } from 'prosemirror-state';
1
+ import { Plugin, PluginKey } from 'prosemirror-state';
2
2
  import { dropPoint } from 'prosemirror-transform';
3
3
  import { Extension } from '@kerebron/editor';
4
4
  /// Create a plugin that, when added to a ProseMirror instance,
@@ -11,6 +11,7 @@ import { Extension } from '@kerebron/editor';
11
11
  /// position, and should return a boolean.
12
12
  export function dropCursor(options = {}) {
13
13
  return new Plugin({
14
+ key: new PluginKey('drop-cursor'),
14
15
  view(editorView) {
15
16
  return new DropCursorView(editorView, options);
16
17
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionDropcursor.js","sourceRoot":"","sources":["../src/ExtensionDropcursor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExtensionDropcursor.js","sourceRoot":"","sources":["../src/ExtensionDropcursor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionGapcursor.d.ts","sourceRoot":"","sources":["../src/ExtensionGapcursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EACN,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAY,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7C,qBAAa,SAAU,SAAQ,SAAS;gBAE1B,IAAI,EAAE,WAAW;IAK7B,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS;IAKnC,OAAO;IAIhB,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI7B,MAAM,IAAI,GAAG;IAKb,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,SAAS;IAQlD,WAAW,IAAI,WAAW;IAKnC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW;IAY9B,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAQ;CA0C1E;AAID,cAAM,WAAW;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAEhC,GAAG,CAAC,OAAO,EAAE,QAAQ;IAGrB,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS;CAI9B;AA4ID,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,IAAI,SAAe;IAEnB,OAAO;;;;MAIL;IAEO,qBAAqB,IAAI,MAAM,EAAE;CAK3C"}
1
+ {"version":3,"file":"ExtensionGapcursor.d.ts","sourceRoot":"","sources":["../src/ExtensionGapcursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EAEN,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAY,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7C,qBAAa,SAAU,SAAQ,SAAS;gBAE1B,IAAI,EAAE,WAAW;IAK7B,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS;IAKnC,OAAO;IAIhB,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI7B,MAAM,IAAI,GAAG;IAKb,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,SAAS;IAQlD,WAAW,IAAI,WAAW;IAKnC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW;IAY9B,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAQ;CA0C1E;AAID,cAAM,WAAW;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAEhC,GAAG,CAAC,OAAO,EAAE,QAAQ;IAGrB,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS;CAI9B;AA6ID,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,IAAI,SAAe;IAEnB,OAAO;;;;MAIL;IAEO,qBAAqB,IAAI,MAAM,EAAE;CAK3C"}
@@ -1,4 +1,4 @@
1
- import { NodeSelection, Plugin, Selection, TextSelection, } from 'prosemirror-state';
1
+ import { NodeSelection, Plugin, PluginKey, Selection, TextSelection, } from 'prosemirror-state';
2
2
  import { Fragment, Slice } from 'prosemirror-model';
3
3
  import { Decoration, DecorationSet } from 'prosemirror-view';
4
4
  import { Extension } from '@kerebron/editor';
@@ -151,6 +151,7 @@ function closedAfter($pos) {
151
151
  /// styles to make it visible.
152
152
  function gapCursor() {
153
153
  return new Plugin({
154
+ key: new PluginKey('gap-cursor'),
154
155
  props: {
155
156
  decorations: drawGapCursor,
156
157
  createSelectionBetween(_view, $anchor, $head) {
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionGapcursor.js","sourceRoot":"","sources":["../src/ExtensionGapcursor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExtensionGapcursor.js","sourceRoot":"","sources":["../src/ExtensionGapcursor.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import { type NodeSpec } from 'prosemirror-model';
2
+ import type { NodeViewConstructor } from 'prosemirror-view';
2
3
  import { Node } from '@kerebron/editor';
4
+ import type { CoreEditor } from '@kerebron/editor';
3
5
  export declare class NodeImage extends Node {
4
6
  name: string;
5
7
  requires: string[];
6
8
  getNodeSpec(): NodeSpec;
9
+ getNodeView(editor: CoreEditor): NodeViewConstructor;
7
10
  }
8
11
  //# sourceMappingURL=NodeImage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeImage.d.ts","sourceRoot":"","sources":["../src/NodeImage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,qBAAa,SAAU,SAAQ,IAAI;IACxB,IAAI,SAAW;IACxB,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;CA4BjC"}
1
+ {"version":3,"file":"NodeImage.d.ts","sourceRoot":"","sources":["../src/NodeImage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAc,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,qBAAa,SAAU,SAAQ,IAAI;IACxB,IAAI,SAAW;IACxB,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;IAsCvB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB;CAkM9D"}
package/esm/NodeImage.js CHANGED
@@ -9,6 +9,8 @@ export class NodeImage extends Node {
9
9
  src: {},
10
10
  alt: { default: null },
11
11
  title: { default: null },
12
+ width: { default: null },
13
+ height: { default: null },
12
14
  },
13
15
  group: 'inline',
14
16
  draggable: true,
@@ -20,15 +22,201 @@ export class NodeImage extends Node {
20
22
  src: dom.getAttribute('src'),
21
23
  title: dom.getAttribute('title'),
22
24
  alt: dom.getAttribute('alt'),
25
+ width: dom.getAttribute('width') || dom.style.width || null,
26
+ height: dom.getAttribute('height') || dom.style.height || null,
23
27
  };
24
28
  },
25
29
  },
26
30
  ],
27
31
  toDOM(node) {
28
- const { src, alt, title } = node.attrs;
29
- return ['img', { src, alt, title }];
32
+ const { src, alt, title, width, height } = node.attrs;
33
+ const attrs = { src };
34
+ if (alt)
35
+ attrs.alt = alt;
36
+ if (title)
37
+ attrs.title = title;
38
+ if (width)
39
+ attrs.width = width;
40
+ if (height)
41
+ attrs.height = height;
42
+ return ['img', attrs];
30
43
  },
31
44
  };
32
45
  }
46
+ getNodeView(editor) {
47
+ return (node, view, getPos) => {
48
+ // Create wrapper div for the image with resize handles
49
+ const wrapper = document.createElement('span');
50
+ wrapper.className = 'kb-image-wrapper';
51
+ wrapper.contentEditable = 'false';
52
+ // Create the image element
53
+ const img = document.createElement('img');
54
+ img.src = node.attrs.src;
55
+ if (node.attrs.alt)
56
+ img.alt = node.attrs.alt;
57
+ if (node.attrs.title)
58
+ img.title = node.attrs.title;
59
+ if (node.attrs.width) {
60
+ img.style.width = typeof node.attrs.width === 'number'
61
+ ? `${node.attrs.width}px`
62
+ : node.attrs.width;
63
+ }
64
+ if (node.attrs.height) {
65
+ img.style.height = typeof node.attrs.height === 'number'
66
+ ? `${node.attrs.height}px`
67
+ : node.attrs.height;
68
+ }
69
+ img.draggable = false;
70
+ wrapper.appendChild(img);
71
+ // Create resize handles
72
+ const positions = ['nw', 'ne', 'sw', 'se'];
73
+ const handles = [];
74
+ for (const pos of positions) {
75
+ const handle = document.createElement('span');
76
+ handle.className =
77
+ `kb-image-resize-handle kb-image-resize-handle-${pos}`;
78
+ handle.dataset.position = pos;
79
+ handles.push(handle);
80
+ wrapper.appendChild(handle);
81
+ }
82
+ let isResizing = false;
83
+ let startX = 0;
84
+ let startY = 0;
85
+ let startWidth = 0;
86
+ let startHeight = 0;
87
+ let aspectRatio = 1;
88
+ let activeHandle = null;
89
+ const onMouseDown = (e) => {
90
+ const target = e.target;
91
+ if (!target.classList.contains('kb-image-resize-handle'))
92
+ return;
93
+ e.preventDefault();
94
+ e.stopPropagation();
95
+ isResizing = true;
96
+ activeHandle = target.dataset.position || null;
97
+ startX = e.clientX;
98
+ startY = e.clientY;
99
+ const rect = img.getBoundingClientRect();
100
+ startWidth = rect.width;
101
+ startHeight = rect.height;
102
+ aspectRatio = startWidth / startHeight;
103
+ wrapper.classList.add('kb-image-resizing');
104
+ document.addEventListener('mousemove', onMouseMove);
105
+ document.addEventListener('mouseup', onMouseUp);
106
+ };
107
+ const onMouseMove = (e) => {
108
+ if (!isResizing)
109
+ return;
110
+ const deltaX = e.clientX - startX;
111
+ const deltaY = e.clientY - startY;
112
+ let newWidth = startWidth;
113
+ let newHeight = startHeight;
114
+ // Calculate new dimensions based on which handle is being dragged
115
+ switch (activeHandle) {
116
+ case 'se':
117
+ newWidth = startWidth + deltaX;
118
+ newHeight = e.shiftKey
119
+ ? startHeight + deltaY
120
+ : newWidth / aspectRatio;
121
+ break;
122
+ case 'sw':
123
+ newWidth = startWidth - deltaX;
124
+ newHeight = e.shiftKey
125
+ ? startHeight + deltaY
126
+ : newWidth / aspectRatio;
127
+ break;
128
+ case 'ne':
129
+ newWidth = startWidth + deltaX;
130
+ newHeight = e.shiftKey
131
+ ? startHeight - deltaY
132
+ : newWidth / aspectRatio;
133
+ break;
134
+ case 'nw':
135
+ newWidth = startWidth - deltaX;
136
+ newHeight = e.shiftKey
137
+ ? startHeight - deltaY
138
+ : newWidth / aspectRatio;
139
+ break;
140
+ }
141
+ // Ensure minimum size
142
+ newWidth = Math.max(50, newWidth);
143
+ newHeight = Math.max(50, newHeight);
144
+ img.style.width = `${Math.round(newWidth)}px`;
145
+ img.style.height = `${Math.round(newHeight)}px`;
146
+ };
147
+ const onMouseUp = () => {
148
+ if (!isResizing)
149
+ return;
150
+ isResizing = false;
151
+ activeHandle = null;
152
+ wrapper.classList.remove('kb-image-resizing');
153
+ document.removeEventListener('mousemove', onMouseMove);
154
+ document.removeEventListener('mouseup', onMouseUp);
155
+ // Get the new dimensions and update the node
156
+ const newWidth = Math.round(img.getBoundingClientRect().width);
157
+ const newHeight = Math.round(img.getBoundingClientRect().height);
158
+ const pos = getPos();
159
+ if (typeof pos === 'number') {
160
+ const tr = view.state.tr.setNodeMarkup(pos, undefined, {
161
+ ...node.attrs,
162
+ width: `${newWidth}px`,
163
+ height: `${newHeight}px`,
164
+ });
165
+ view.dispatch(tr);
166
+ }
167
+ };
168
+ wrapper.addEventListener('mousedown', onMouseDown);
169
+ // Add click handler to select the image
170
+ wrapper.addEventListener('click', (e) => {
171
+ e.preventDefault();
172
+ const pos = getPos();
173
+ if (typeof pos === 'number') {
174
+ const $pos = view.state.doc.resolve(pos);
175
+ const selection = view.state.selection.constructor.near($pos);
176
+ view.dispatch(view.state.tr.setSelection(selection));
177
+ }
178
+ });
179
+ return {
180
+ dom: wrapper,
181
+ update: (updatedNode) => {
182
+ if (updatedNode.type.name !== 'image')
183
+ return false;
184
+ img.src = updatedNode.attrs.src;
185
+ if (updatedNode.attrs.alt)
186
+ img.alt = updatedNode.attrs.alt;
187
+ if (updatedNode.attrs.title)
188
+ img.title = updatedNode.attrs.title;
189
+ if (updatedNode.attrs.width) {
190
+ img.style.width = typeof updatedNode.attrs.width === 'number'
191
+ ? `${updatedNode.attrs.width}px`
192
+ : updatedNode.attrs.width;
193
+ }
194
+ else {
195
+ img.style.width = '';
196
+ }
197
+ if (updatedNode.attrs.height) {
198
+ img.style.height = typeof updatedNode.attrs.height === 'number'
199
+ ? `${updatedNode.attrs.height}px`
200
+ : updatedNode.attrs.height;
201
+ }
202
+ else {
203
+ img.style.height = '';
204
+ }
205
+ return true;
206
+ },
207
+ destroy: () => {
208
+ wrapper.removeEventListener('mousedown', onMouseDown);
209
+ document.removeEventListener('mousemove', onMouseMove);
210
+ document.removeEventListener('mouseup', onMouseUp);
211
+ },
212
+ stopEvent: (event) => {
213
+ // Allow selection events to pass through
214
+ return event.type === 'mousedown' &&
215
+ event.target.classList.contains('kb-image-resize-handle');
216
+ },
217
+ ignoreMutation: () => true,
218
+ };
219
+ };
220
+ }
33
221
  }
34
222
  //# sourceMappingURL=NodeImage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeImage.js","sourceRoot":"","sources":["../src/NodeImage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,OAAO,SAAU,SAAQ,IAAI;IACxB,IAAI,GAAG,OAAO,CAAC;IACxB,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;IAEV,WAAW;QAClB,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE;gBACL,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBACtB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aACzB;YACD,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,UAAU;oBACf,QAAQ,CAAC,GAAgB;wBACvB,OAAO;4BACL,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;4BAC5B,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC;4BAChC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;yBAC7B,CAAC;oBACJ,CAAC;iBACF;aACF;YACD,KAAK,CAAC,IAAI;gBACR,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACtC,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"NodeImage.js","sourceRoot":"","sources":["../src/NodeImage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kerebron/extension-basic-editor",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "license": "MIT",
5
5
  "module": "./esm/BasicEditorKit.js",
6
6
  "exports": {
@@ -37,6 +37,9 @@
37
37
  "./ExtensionHtml": {
38
38
  "import": "./esm/ExtensionHtml.js"
39
39
  },
40
+ "./ExtensionTextAlign": {
41
+ "import": "./esm/ExtensionTextAlign.js"
42
+ },
40
43
  "./NodeDocument": {
41
44
  "import": "./esm/NodeDocument.js"
42
45
  },
@@ -109,8 +112,8 @@
109
112
  "./MarkSubscript": {
110
113
  "import": "./esm/MarkSubscript.js"
111
114
  },
112
- "./ExtensionTextAlign": {
113
- "import": "./esm/ExtensionTextAlign.js"
115
+ "./assets/*.css": {
116
+ "import": "./assets/*.css"
114
117
  }
115
118
  },
116
119
  "scripts": {},
@@ -119,7 +122,7 @@
119
122
  "src"
120
123
  ],
121
124
  "dependencies": {
122
- "@kerebron/editor": "0.5.0",
125
+ "@kerebron/editor": "0.5.2",
123
126
  "prosemirror-history": "1.4.1",
124
127
  "prosemirror-model": "1.25.3",
125
128
  "prosemirror-state": "1.4.3",
@@ -1,4 +1,4 @@
1
- import { EditorState, Plugin } from 'prosemirror-state';
1
+ import { EditorState, Plugin, PluginKey } from 'prosemirror-state';
2
2
  import { EditorView } from 'prosemirror-view';
3
3
  import { dropPoint } from 'prosemirror-transform';
4
4
 
@@ -25,6 +25,7 @@ interface DropCursorOptions {
25
25
  /// position, and should return a boolean.
26
26
  export function dropCursor(options: DropCursorOptions = {}): Plugin {
27
27
  return new Plugin({
28
+ key: new PluginKey('drop-cursor'),
28
29
  view(editorView) {
29
30
  return new DropCursorView(editorView, options);
30
31
  },
@@ -2,6 +2,7 @@ import {
2
2
  EditorState,
3
3
  NodeSelection,
4
4
  Plugin,
5
+ PluginKey,
5
6
  Selection,
6
7
  TextSelection,
7
8
  } from 'prosemirror-state';
@@ -171,6 +172,7 @@ function closedAfter($pos: ResolvedPos) {
171
172
  /// styles to make it visible.
172
173
  function gapCursor(): Plugin {
173
174
  return new Plugin({
175
+ key: new PluginKey('gap-cursor'),
174
176
  props: {
175
177
  decorations: drawGapCursor,
176
178
 
package/src/NodeImage.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import { type NodeSpec } from 'prosemirror-model';
2
+ import type { Node as PmNode } from 'prosemirror-model';
3
+ import type { EditorView, NodeViewConstructor } from 'prosemirror-view';
2
4
  import { Node } from '@kerebron/editor';
5
+ import type { CoreEditor } from '@kerebron/editor';
3
6
 
4
7
  export class NodeImage extends Node {
5
8
  override name = 'image';
@@ -12,6 +15,8 @@ export class NodeImage extends Node {
12
15
  src: {},
13
16
  alt: { default: null },
14
17
  title: { default: null },
18
+ width: { default: null },
19
+ height: { default: null },
15
20
  },
16
21
  group: 'inline',
17
22
  draggable: true,
@@ -23,14 +28,216 @@ export class NodeImage extends Node {
23
28
  src: dom.getAttribute('src'),
24
29
  title: dom.getAttribute('title'),
25
30
  alt: dom.getAttribute('alt'),
31
+ width: dom.getAttribute('width') || dom.style.width || null,
32
+ height: dom.getAttribute('height') || dom.style.height || null,
26
33
  };
27
34
  },
28
35
  },
29
36
  ],
30
37
  toDOM(node) {
31
- const { src, alt, title } = node.attrs;
32
- return ['img', { src, alt, title }];
38
+ const { src, alt, title, width, height } = node.attrs;
39
+ const attrs: Record<string, string> = { src };
40
+ if (alt) attrs.alt = alt;
41
+ if (title) attrs.title = title;
42
+ if (width) attrs.width = width;
43
+ if (height) attrs.height = height;
44
+ return ['img', attrs];
33
45
  },
34
46
  };
35
47
  }
48
+
49
+ override getNodeView(editor: CoreEditor): NodeViewConstructor {
50
+ return (node: PmNode, view: EditorView, getPos) => {
51
+ // Create wrapper div for the image with resize handles
52
+ const wrapper = document.createElement('span');
53
+ wrapper.className = 'kb-image-wrapper';
54
+ wrapper.contentEditable = 'false';
55
+
56
+ // Create the image element
57
+ const img = document.createElement('img');
58
+ img.src = node.attrs.src;
59
+ if (node.attrs.alt) img.alt = node.attrs.alt;
60
+ if (node.attrs.title) img.title = node.attrs.title;
61
+ if (node.attrs.width) {
62
+ img.style.width = typeof node.attrs.width === 'number'
63
+ ? `${node.attrs.width}px`
64
+ : node.attrs.width;
65
+ }
66
+ if (node.attrs.height) {
67
+ img.style.height = typeof node.attrs.height === 'number'
68
+ ? `${node.attrs.height}px`
69
+ : node.attrs.height;
70
+ }
71
+ img.draggable = false;
72
+
73
+ wrapper.appendChild(img);
74
+
75
+ // Create resize handles
76
+ const positions = ['nw', 'ne', 'sw', 'se'] as const;
77
+ const handles: HTMLElement[] = [];
78
+
79
+ for (const pos of positions) {
80
+ const handle = document.createElement('span');
81
+ handle.className =
82
+ `kb-image-resize-handle kb-image-resize-handle-${pos}`;
83
+ handle.dataset.position = pos;
84
+ handles.push(handle);
85
+ wrapper.appendChild(handle);
86
+ }
87
+
88
+ let isResizing = false;
89
+ let startX = 0;
90
+ let startY = 0;
91
+ let startWidth = 0;
92
+ let startHeight = 0;
93
+ let aspectRatio = 1;
94
+ let activeHandle: string | null = null;
95
+
96
+ const onMouseDown = (e: MouseEvent) => {
97
+ const target = e.target as HTMLElement;
98
+ if (!target.classList.contains('kb-image-resize-handle')) return;
99
+
100
+ e.preventDefault();
101
+ e.stopPropagation();
102
+
103
+ isResizing = true;
104
+ activeHandle = target.dataset.position || null;
105
+ startX = e.clientX;
106
+ startY = e.clientY;
107
+
108
+ const rect = img.getBoundingClientRect();
109
+ startWidth = rect.width;
110
+ startHeight = rect.height;
111
+ aspectRatio = startWidth / startHeight;
112
+
113
+ wrapper.classList.add('kb-image-resizing');
114
+
115
+ document.addEventListener('mousemove', onMouseMove);
116
+ document.addEventListener('mouseup', onMouseUp);
117
+ };
118
+
119
+ const onMouseMove = (e: MouseEvent) => {
120
+ if (!isResizing) return;
121
+
122
+ const deltaX = e.clientX - startX;
123
+ const deltaY = e.clientY - startY;
124
+
125
+ let newWidth = startWidth;
126
+ let newHeight = startHeight;
127
+
128
+ // Calculate new dimensions based on which handle is being dragged
129
+ switch (activeHandle) {
130
+ case 'se':
131
+ newWidth = startWidth + deltaX;
132
+ newHeight = e.shiftKey
133
+ ? startHeight + deltaY
134
+ : newWidth / aspectRatio;
135
+ break;
136
+ case 'sw':
137
+ newWidth = startWidth - deltaX;
138
+ newHeight = e.shiftKey
139
+ ? startHeight + deltaY
140
+ : newWidth / aspectRatio;
141
+ break;
142
+ case 'ne':
143
+ newWidth = startWidth + deltaX;
144
+ newHeight = e.shiftKey
145
+ ? startHeight - deltaY
146
+ : newWidth / aspectRatio;
147
+ break;
148
+ case 'nw':
149
+ newWidth = startWidth - deltaX;
150
+ newHeight = e.shiftKey
151
+ ? startHeight - deltaY
152
+ : newWidth / aspectRatio;
153
+ break;
154
+ }
155
+
156
+ // Ensure minimum size
157
+ newWidth = Math.max(50, newWidth);
158
+ newHeight = Math.max(50, newHeight);
159
+
160
+ img.style.width = `${Math.round(newWidth)}px`;
161
+ img.style.height = `${Math.round(newHeight)}px`;
162
+ };
163
+
164
+ const onMouseUp = () => {
165
+ if (!isResizing) return;
166
+
167
+ isResizing = false;
168
+ activeHandle = null;
169
+ wrapper.classList.remove('kb-image-resizing');
170
+
171
+ document.removeEventListener('mousemove', onMouseMove);
172
+ document.removeEventListener('mouseup', onMouseUp);
173
+
174
+ // Get the new dimensions and update the node
175
+ const newWidth = Math.round(img.getBoundingClientRect().width);
176
+ const newHeight = Math.round(img.getBoundingClientRect().height);
177
+
178
+ const pos = getPos();
179
+ if (typeof pos === 'number') {
180
+ const tr = view.state.tr.setNodeMarkup(pos, undefined, {
181
+ ...node.attrs,
182
+ width: `${newWidth}px`,
183
+ height: `${newHeight}px`,
184
+ });
185
+ view.dispatch(tr);
186
+ }
187
+ };
188
+
189
+ wrapper.addEventListener('mousedown', onMouseDown);
190
+
191
+ // Add click handler to select the image
192
+ wrapper.addEventListener('click', (e) => {
193
+ e.preventDefault();
194
+ const pos = getPos();
195
+ if (typeof pos === 'number') {
196
+ const $pos = view.state.doc.resolve(pos);
197
+ const selection = view.state.selection.constructor.near($pos);
198
+ view.dispatch(view.state.tr.setSelection(selection));
199
+ }
200
+ });
201
+
202
+ return {
203
+ dom: wrapper,
204
+ update: (updatedNode: PmNode) => {
205
+ if (updatedNode.type.name !== 'image') return false;
206
+
207
+ img.src = updatedNode.attrs.src;
208
+ if (updatedNode.attrs.alt) img.alt = updatedNode.attrs.alt;
209
+ if (updatedNode.attrs.title) img.title = updatedNode.attrs.title;
210
+ if (updatedNode.attrs.width) {
211
+ img.style.width = typeof updatedNode.attrs.width === 'number'
212
+ ? `${updatedNode.attrs.width}px`
213
+ : updatedNode.attrs.width;
214
+ } else {
215
+ img.style.width = '';
216
+ }
217
+ if (updatedNode.attrs.height) {
218
+ img.style.height = typeof updatedNode.attrs.height === 'number'
219
+ ? `${updatedNode.attrs.height}px`
220
+ : updatedNode.attrs.height;
221
+ } else {
222
+ img.style.height = '';
223
+ }
224
+
225
+ return true;
226
+ },
227
+ destroy: () => {
228
+ wrapper.removeEventListener('mousedown', onMouseDown);
229
+ document.removeEventListener('mousemove', onMouseMove);
230
+ document.removeEventListener('mouseup', onMouseUp);
231
+ },
232
+ stopEvent: (event: Event) => {
233
+ // Allow selection events to pass through
234
+ return event.type === 'mousedown' &&
235
+ (event.target as HTMLElement).classList.contains(
236
+ 'kb-image-resize-handle',
237
+ );
238
+ },
239
+ ignoreMutation: () => true,
240
+ };
241
+ };
242
+ }
36
243
  }