prosemirror-view 1.41.5 → 1.41.6

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.41.6 (2026-02-06)
2
+
3
+ ### Bug fixes
4
+
5
+ Fix an issue where backspacing content before a flexbox or grid styled widget would insert a bogus line break on Firefox.
6
+
1
7
  ## 1.41.5 (2026-01-14)
2
8
 
3
9
  ### Bug fixes
package/dist/index.cjs CHANGED
@@ -4403,7 +4403,25 @@ var DOMObserver = function () {
4403
4403
  }
4404
4404
  }
4405
4405
  }
4406
- if (gecko && added.length) {
4406
+ if (added.some(function (n) {
4407
+ return n.nodeName == "BR";
4408
+ }) && (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
4409
+ var _iterator3 = _createForOfIteratorHelper(added),
4410
+ _step3;
4411
+ try {
4412
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
4413
+ var node = _step3.value;
4414
+ if (node.nodeName == "BR" && node.parentNode) {
4415
+ var after = node.nextSibling;
4416
+ if (after && after.nodeType == 1 && after.contentEditable == "false") node.parentNode.removeChild(node);
4417
+ }
4418
+ }
4419
+ } catch (err) {
4420
+ _iterator3.e(err);
4421
+ } finally {
4422
+ _iterator3.f();
4423
+ }
4424
+ } else if (gecko && added.length) {
4407
4425
  var brs = added.filter(function (n) {
4408
4426
  return n.nodeName == "BR";
4409
4427
  });
@@ -4414,38 +4432,20 @@ var DOMObserver = function () {
4414
4432
  if (a.parentNode && a.parentNode.parentNode == b.parentNode) b.remove();else a.remove();
4415
4433
  } else {
4416
4434
  var focusNode = this.currentSelection.focusNode;
4417
- var _iterator3 = _createForOfIteratorHelper(brs),
4418
- _step3;
4435
+ var _iterator4 = _createForOfIteratorHelper(brs),
4436
+ _step4;
4419
4437
  try {
4420
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
4421
- var br = _step3.value;
4438
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
4439
+ var br = _step4.value;
4422
4440
  var parent = br.parentNode;
4423
4441
  if (parent && parent.nodeName == "LI" && (!focusNode || blockParent(view, focusNode) != parent)) br.remove();
4424
4442
  }
4425
4443
  } catch (err) {
4426
- _iterator3.e(err);
4444
+ _iterator4.e(err);
4427
4445
  } finally {
4428
- _iterator3.f();
4446
+ _iterator4.f();
4429
4447
  }
4430
4448
  }
4431
- } else if ((chrome || safari) && added.some(function (n) {
4432
- return n.nodeName == "BR";
4433
- }) && (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
4434
- var _iterator4 = _createForOfIteratorHelper(added),
4435
- _step4;
4436
- try {
4437
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
4438
- var node = _step4.value;
4439
- if (node.nodeName == "BR" && node.parentNode) {
4440
- var after = node.nextSibling;
4441
- if (after && after.nodeType == 1 && after.contentEditable == "false") node.parentNode.removeChild(node);
4442
- }
4443
- }
4444
- } catch (err) {
4445
- _iterator4.e(err);
4446
- } finally {
4447
- _iterator4.f();
4448
- }
4449
4449
  }
4450
4450
  var readSel = null;
4451
4451
  if (from < 0 && newSel && view.input.lastFocus > Date.now() - 200 && Math.max(view.input.lastTouch, view.input.lastClick.time) < Date.now() - 300 && selectionCollapsed(sel) && (readSel = selectionFromDOM(view)) && readSel.eq(prosemirrorState.Selection.near(view.state.doc.resolve(0), 1))) {
package/dist/index.js CHANGED
@@ -4724,7 +4724,17 @@ class DOMObserver {
4724
4724
  }
4725
4725
  }
4726
4726
  }
4727
- if (gecko && added.length) {
4727
+ if (added.some(n => n.nodeName == "BR") && (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
4728
+ // Browsers sometimes insert a bogus break node if you
4729
+ // backspace out the last bit of text before an inline-flex node (#1552)
4730
+ for (let node of added)
4731
+ if (node.nodeName == "BR" && node.parentNode) {
4732
+ let after = node.nextSibling;
4733
+ if (after && after.nodeType == 1 && after.contentEditable == "false")
4734
+ node.parentNode.removeChild(node);
4735
+ }
4736
+ }
4737
+ else if (gecko && added.length) {
4728
4738
  let brs = added.filter(n => n.nodeName == "BR");
4729
4739
  if (brs.length == 2) {
4730
4740
  let [a, b] = brs;
@@ -4742,17 +4752,6 @@ class DOMObserver {
4742
4752
  }
4743
4753
  }
4744
4754
  }
4745
- else if ((chrome || safari) && added.some(n => n.nodeName == "BR") &&
4746
- (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
4747
- // Chrome/Safari sometimes insert a bogus break node if you
4748
- // backspace out the last bit of text before an inline-flex node (#1552)
4749
- for (let node of added)
4750
- if (node.nodeName == "BR" && node.parentNode) {
4751
- let after = node.nextSibling;
4752
- if (after && after.nodeType == 1 && after.contentEditable == "false")
4753
- node.parentNode.removeChild(node);
4754
- }
4755
- }
4756
4755
  let readSel = null;
4757
4756
  // If it looks like the browser has reset the selection to the
4758
4757
  // start of the document after focus, restore the selection from
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prosemirror-view",
3
- "version": "1.41.5",
3
+ "version": "1.41.6",
4
4
  "description": "ProseMirror's view component",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -192,7 +192,15 @@ export class DOMObserver {
192
192
  }
193
193
  }
194
194
 
195
- if (browser.gecko && added.length) {
195
+ if (added.some(n => n.nodeName == "BR") && (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
196
+ // Browsers sometimes insert a bogus break node if you
197
+ // backspace out the last bit of text before an inline-flex node (#1552)
198
+ for (let node of added) if (node.nodeName == "BR" && node.parentNode) {
199
+ let after = node.nextSibling
200
+ if (after && after.nodeType == 1 && (after as HTMLElement).contentEditable == "false")
201
+ node.parentNode.removeChild(node)
202
+ }
203
+ } else if (browser.gecko && added.length) {
196
204
  let brs = added.filter(n => n.nodeName == "BR") as HTMLElement[]
197
205
  if (brs.length == 2) {
198
206
  let [a, b] = brs
@@ -206,15 +214,6 @@ export class DOMObserver {
206
214
  br.remove()
207
215
  }
208
216
  }
209
- } else if ((browser.chrome || browser.safari) && added.some(n => n.nodeName == "BR") &&
210
- (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
211
- // Chrome/Safari sometimes insert a bogus break node if you
212
- // backspace out the last bit of text before an inline-flex node (#1552)
213
- for (let node of added) if (node.nodeName == "BR" && node.parentNode) {
214
- let after = node.nextSibling
215
- if (after && after.nodeType == 1 && (after as HTMLElement).contentEditable == "false")
216
- node.parentNode.removeChild(node)
217
- }
218
217
  }
219
218
 
220
219
  let readSel: Selection | null = null