slate-react 0.133.5-20261012163450 → 0.133.5

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":"editable.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ReactEditor } from '../plugin/react-editor';
2
2
  export declare const useCompositionDOM: (editor: ReactEditor) => {
3
+ observe: () => void;
3
4
  track: (text: string | null) => void;
4
5
  pause: () => void;
5
6
  restore: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-composition-dom.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/hooks/use-composition-dom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpD,eAAO,MAAM,iBAAiB,WAAY,WAAW;kBAW5B,MAAM,GAAG,IAAI;;;;CA4BrC,CAAA"}
1
+ {"version":3,"file":"use-composition-dom.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/hooks/use-composition-dom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpD,eAAO,MAAM,iBAAiB,WAAY,WAAW;;kBAmB5B,MAAM,GAAG,IAAI;;;;CAsBrC,CAAA"}
package/dist/index.es.js CHANGED
@@ -2604,16 +2604,17 @@ const useCompositionDOM = editor => {
2604
2604
  observer = null;
2605
2605
  manager.clear();
2606
2606
  };
2607
- const track = text => {
2608
- if (!observer) {
2609
- if (!(text !== null && text !== void 0 && text.includes('\n'))) return;
2610
- observer = new MutationObserver(manager.registerMutations);
2611
- }
2607
+ const observe = () => {
2608
+ observer !== null && observer !== void 0 ? observer : observer = new MutationObserver(manager.registerMutations);
2612
2609
  observer.observe(ReactEditor.toDOMNode(editor, editor), {
2613
2610
  childList: true,
2614
2611
  subtree: true
2615
2612
  });
2616
2613
  };
2614
+ const track = text => {
2615
+ if (!observer && !(text !== null && text !== void 0 && text.includes('\n'))) return;
2616
+ observe();
2617
+ };
2617
2618
  const pause = () => {
2618
2619
  if (!observer) return;
2619
2620
  manager.registerMutations(observer.takeRecords());
@@ -2624,6 +2625,7 @@ const useCompositionDOM = editor => {
2624
2625
  manager.restoreDOM();
2625
2626
  };
2626
2627
  return {
2628
+ observe,
2627
2629
  track,
2628
2630
  pause,
2629
2631
  restore,
@@ -2797,6 +2799,7 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
2797
2799
  const [placeholderHeight, setPlaceholderHeight] = useState();
2798
2800
  const processing = useRef(false);
2799
2801
  const compositionDOM = useCompositionDOM(editor);
2802
+ const deleteOnCompositionEndRef = useRef(false);
2800
2803
  const {
2801
2804
  onUserInput,
2802
2805
  receivedUserInput
@@ -2910,6 +2913,14 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
2910
2913
  }
2911
2914
  }, 100), [editor, readOnly, state]);
2912
2915
  const scheduleOnDOMSelectionChange = useMemo(() => debounce(onDOMSelectionChange, 0), [onDOMSelectionChange]);
2916
+ const flushDOMSelectionChange = useCallback(() => {
2917
+ const root = ReactEditor.toDOMNode(editor, editor).getRootNode();
2918
+ scheduleOnDOMSelectionChange.flush();
2919
+ if (!(IS_WEBKIT && root instanceof ShadowRoot)) {
2920
+ onDOMSelectionChange();
2921
+ }
2922
+ onDOMSelectionChange.flush();
2923
+ }, [editor, onDOMSelectionChange, scheduleOnDOMSelectionChange]);
2913
2924
  androidInputManagerRef.current = useAndroidInputManager({
2914
2925
  node: ref,
2915
2926
  onDOMSelectionChange,
@@ -3109,11 +3120,7 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
3109
3120
  // Some IMEs/Chrome extensions like e.g. Grammarly set the selection immediately before
3110
3121
  // triggering a `beforeinput` expecting the change to be applied to the immediately before
3111
3122
  // set selection.
3112
- scheduleOnDOMSelectionChange.flush();
3113
- if (!(IS_WEBKIT && root instanceof ShadowRoot)) {
3114
- onDOMSelectionChange();
3115
- }
3116
- onDOMSelectionChange.flush();
3123
+ flushDOMSelectionChange();
3117
3124
  const {
3118
3125
  selection
3119
3126
  } = editor;
@@ -3125,7 +3132,7 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
3125
3132
  // COMPAT: use composition change events as a hint to where we should insert
3126
3133
  // composition text if we aren't composing to work around https://github.com/ianstormtaylor/slate/issues/5038
3127
3134
  if (isCompositionChange && ReactEditor.isComposing(editor)) {
3128
- if (IS_CHROME) {
3135
+ if (IS_CHROME || deleteOnCompositionEndRef.current) {
3129
3136
  compositionDOM.track(event.data);
3130
3137
  }
3131
3138
  return;
@@ -3345,7 +3352,7 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
3345
3352
  Transforms.select(editor, toRestore);
3346
3353
  }
3347
3354
  }
3348
- }, [editor, onDOMSelectionChange, onUserInput, propsOnDOMBeforeInput, compositionDOM, readOnly, scheduleOnDOMSelectionChange]);
3355
+ }, [editor, onUserInput, propsOnDOMBeforeInput, compositionDOM, flushDOMSelectionChange, readOnly]);
3349
3356
  const callbackRef = useCallback(node => {
3350
3357
  if (node == null) {
3351
3358
  onDOMSelectionChange.cancel();
@@ -3695,10 +3702,16 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
3695
3702
  });
3696
3703
  }
3697
3704
  (_androidInputManagerR3 = androidInputManagerRef.current) === null || _androidInputManagerR3 === void 0 || _androidInputManagerR3.handleCompositionEnd(event);
3705
+ const deleteOnCompositionEnd = deleteOnCompositionEndRef.current;
3706
+ deleteOnCompositionEndRef.current = false;
3698
3707
  if (isEventHandled(event, attributes.onCompositionEnd) || IS_ANDROID) {
3699
3708
  compositionDOM.clear();
3700
3709
  return;
3701
3710
  }
3711
+ if (deleteOnCompositionEnd && !event.data) {
3712
+ compositionDOM.restore();
3713
+ Editor.deleteFragment(editor);
3714
+ }
3702
3715
  // COMPAT: In Chrome, `beforeinput` events for compositions
3703
3716
  // aren't correct and never fire the "insertFromComposition"
3704
3717
  // type that we need. So instead, insert whenever a composition
@@ -3742,15 +3755,21 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
3742
3755
  }
3743
3756
  compositionDOM.clear();
3744
3757
  setIsComposing(true);
3758
+ flushDOMSelectionChange();
3745
3759
  const {
3746
3760
  selection
3747
3761
  } = editor;
3748
3762
  if (selection && Range.isExpanded(selection)) {
3763
+ if (IS_FIREFOX && !IS_FIREFOX_LEGACY) {
3764
+ compositionDOM.observe();
3765
+ deleteOnCompositionEndRef.current = true;
3766
+ return;
3767
+ }
3749
3768
  Editor.deleteFragment(editor);
3750
3769
  return;
3751
3770
  }
3752
3771
  }
3753
- }, [attributes.onCompositionStart, editor, compositionDOM]),
3772
+ }, [attributes.onCompositionStart, editor, compositionDOM, flushDOMSelectionChange]),
3754
3773
  onCopy: useCallback(event => {
3755
3774
  if (ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCopy) && !isDOMEventTargetInput(event)) {
3756
3775
  event.preventDefault();