slate-react 0.58.0 → 0.58.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.
@@ -28663,11 +28663,14 @@
28663
28663
  style: {
28664
28664
  pointerEvents: 'none',
28665
28665
  display: 'inline-block',
28666
- verticalAlign: 'text-top',
28667
28666
  width: '0',
28668
28667
  maxWidth: '100%',
28669
28668
  whiteSpace: 'nowrap',
28670
- opacity: '0.333'
28669
+ opacity: '0.333',
28670
+ userSelect: 'none',
28671
+ fontStyle: 'normal',
28672
+ fontWeight: 'normal',
28673
+ textDecoration: 'none'
28671
28674
  }
28672
28675
  }, leaf.placeholder), children);
28673
28676
  } // COMPAT: Having the `data-` attributes on these leaf elements ensures that
@@ -29240,7 +29243,9 @@
29240
29243
  var IS_FIREFOX = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);
29241
29244
  var IS_SAFARI = typeof navigator !== 'undefined' && /Version\/[\d\.]+.*Safari/.test(navigator.userAgent); // "modern" Edge was released at 79.x
29242
29245
 
29243
- var IS_EDGE_LEGACY = typeof navigator !== 'undefined' && /Edge?\/(?:[0-6][0-9]|[0-7][0-8])/i.test(navigator.userAgent);
29246
+ var IS_EDGE_LEGACY = typeof navigator !== 'undefined' && /Edge?\/(?:[0-6][0-9]|[0-7][0-8])/i.test(navigator.userAgent); // Native beforeInput events don't work well with react on Chrome 75 and older, Chrome 76+ can use beforeInput
29247
+
29248
+ var IS_CHROME_LEGACY = typeof navigator !== 'undefined' && /Chrome?\/(?:[0-7][0-5]|[0-6][0-9])/i.test(navigator.userAgent);
29244
29249
 
29245
29250
  /**
29246
29251
  * Hotkey mappings for each platform.
@@ -29334,8 +29339,9 @@
29334
29339
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
29335
29340
 
29336
29341
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29342
+ // Chrome Legacy doesn't support `beforeinput` correctly
29337
29343
 
29338
- var HAS_BEFORE_INPUT_SUPPORT = !(IS_FIREFOX || IS_EDGE_LEGACY);
29344
+ var HAS_BEFORE_INPUT_SUPPORT = !(IS_FIREFOX || IS_EDGE_LEGACY || IS_CHROME_LEGACY);
29339
29345
  /**
29340
29346
  * Editable.
29341
29347
  */
@@ -29416,7 +29422,8 @@
29416
29422
  domSelection.addRange(newDomRange);
29417
29423
  var leafEl = newDomRange.startContainer.parentElement;
29418
29424
  scrollIntoView(leafEl, {
29419
- scrollMode: 'if-needed'
29425
+ scrollMode: 'if-needed',
29426
+ boundary: el
29420
29427
  });
29421
29428
  }
29422
29429
 
@@ -29588,13 +29595,13 @@
29588
29595
  // https://github.com/facebook/react/issues/11211
29589
29596
 
29590
29597
  useIsomorphicLayoutEffect(function () {
29591
- if (ref.current) {
29598
+ if (ref.current && HAS_BEFORE_INPUT_SUPPORT) {
29592
29599
  // @ts-ignore The `beforeinput` event isn't recognized.
29593
29600
  ref.current.addEventListener('beforeinput', onDOMBeforeInput);
29594
29601
  }
29595
29602
 
29596
29603
  return function () {
29597
- if (ref.current) {
29604
+ if (ref.current && HAS_BEFORE_INPUT_SUPPORT) {
29598
29605
  // @ts-ignore The `beforeinput` event isn't recognized.
29599
29606
  ref.current.removeEventListener('beforeinput', onDOMBeforeInput);
29600
29607
  }
@@ -29740,9 +29747,15 @@
29740
29747
 
29741
29748
  var _start = slate.Editor.start(editor, path);
29742
29749
 
29743
- if (slate.Editor["void"](editor, {
29750
+ var end = slate.Editor.end(editor, path);
29751
+ var startVoid = slate.Editor["void"](editor, {
29744
29752
  at: _start
29745
- })) {
29753
+ });
29754
+ var endVoid = slate.Editor["void"](editor, {
29755
+ at: end
29756
+ });
29757
+
29758
+ if (startVoid && endVoid && slate.Path.equals(startVoid[1], endVoid[1])) {
29746
29759
  var range = slate.Editor.range(editor, _start);
29747
29760
  slate.Transforms.select(editor, range);
29748
29761
  }
@@ -30066,7 +30079,7 @@
30066
30079
  // COMPAT: Firefox, Chrome and Safari are not emitting `beforeinput` events
30067
30080
  // when "paste without formatting" option is used.
30068
30081
  // This unfortunately needs to be handled with paste events instead.
30069
- if ((!HAS_BEFORE_INPUT_SUPPORT || isPlainTextOnlyPaste(event.nativeEvent)) && !readOnly && hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onPaste)) {
30082
+ if (!isEventHandled(event, attributes.onPaste) && (!HAS_BEFORE_INPUT_SUPPORT || isPlainTextOnlyPaste(event.nativeEvent)) && !readOnly && hasEditableTarget(editor, event.target)) {
30070
30083
  event.preventDefault();
30071
30084
  ReactEditor.insertData(editor, event.clipboardData);
30072
30085
  }