slate-react 0.86.0 → 0.87.0
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/dist/components/editable.d.ts.map +1 -1
- package/dist/components/leaf.d.ts.map +1 -1
- package/dist/index.es.js +82 -18
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +82 -18
- package/dist/index.js.map +1 -1
- package/dist/slate-react.js +82 -18
- package/dist/slate-react.min.js +1 -1
- package/dist/utils/weak-maps.d.ts +1 -0
- package/dist/utils/weak-maps.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"AAGA,OAAO,KAON,MAAM,OAAO,CAAA;AAEd,OAAO,EAEL,OAAO,EAEP,SAAS,EAET,KAAK,EACL,IAAI,EAEL,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAOpD,OAAO,EAGL,QAAQ,EAMT,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"AAGA,OAAO,KAON,MAAM,OAAO,CAAA;AAEd,OAAO,EAEL,OAAO,EAEP,SAAS,EAET,KAAK,EACL,IAAI,EAEL,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAOpD,OAAO,EAGL,QAAQ,EAMT,MAAM,cAAc,CAAA;AA4CrB;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE;QACV,iBAAiB,EAAE,SAAS,CAAA;QAC5B,mBAAmB,CAAC,EAAE,IAAI,CAAA;QAC1B,iBAAiB,CAAC,EAAE,IAAI,CAAA;QACxB,GAAG,CAAC,EAAE,KAAK,CAAA;QACX,GAAG,EAAE,GAAG,CAAA;KACT,CAAA;CACF;AAED;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,GAAG,CAAA;IACb,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE;QACV,iBAAiB,EAAE,IAAI,CAAA;KACxB,CAAA;CACF;AAED;;GAEG;AAEH,oBAAY,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK,EAAE,CAAA;IACxC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,CAAC,OAAO,CAAA;IAC1D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,GAAG,CAAC,OAAO,CAAA;IACpD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,GAAG,CAAC,OAAO,CAAA;IAClE,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC3E,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;CACvB,GAAG,KAAK,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEhD;;GAEG;AAEH,eAAO,MAAM,QAAQ,UAAW,aAAa,gBAu+C5C,CAAA;AAED;;GAEG;AACH,oBAAY,sBAAsB,GAAG;IACnC,QAAQ,EAAE,GAAG,CAAA;IACb,UAAU,EAAE;QACV,wBAAwB,EAAE,OAAO,CAAA;QACjC,GAAG,CAAC,EAAE,KAAK,CAAA;QACX,eAAe,EAAE,OAAO,CAAA;QACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACzB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAA;KAC3B,CAAA;CACF,CAAA;AAED;;GAEG;AAEH,eAAO,MAAM,kBAAkB,8BAG5B,sBAAsB,gBAOxB,CAAA;AAED;;GAEG;AAEH,eAAO,MAAM,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK,EAAa,CAAA;AA2BtE;;GAEG;AAEH,eAAO,MAAM,cAAc,gHAIO,IAAI,GAAG,OAAO,yBAc/C,CAAA;AAED;;GAEG;AAEH,eAAO,MAAM,iBAAiB,uDAEJ,IAAI,GAAG,OAAO,yBAevC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../packages/slate-react/src/components/leaf.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../packages/slate-react/src/components/leaf.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAOrC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AA2HpE,QAAA,MAAM,YAAY;YAnHR,OAAO;UACT,IAAI;YACF,OAAO;+BACY,sBAAsB,KAAK,WAAW;0BAC5C,eAAe,KAAK,WAAW;UAC9C,IAAI;kBAwHV,CAAA;AAEF,eAAO,MAAM,WAAW,UAAW,eAAe,gBAGjD,CAAA;AAED,eAAe,YAAY,CAAA"}
|
package/dist/index.es.js
CHANGED
|
@@ -90,6 +90,7 @@ var ELEMENT_TO_NODE = new WeakMap();
|
|
|
90
90
|
var NODE_TO_ELEMENT = new WeakMap();
|
|
91
91
|
var NODE_TO_KEY = new WeakMap();
|
|
92
92
|
var EDITOR_TO_KEY_TO_ELEMENT = new WeakMap();
|
|
93
|
+
var EDITOR_TO_STYLE_ELEMENT = new WeakMap();
|
|
93
94
|
/**
|
|
94
95
|
* Weak maps for storing editor-related state.
|
|
95
96
|
*/
|
|
@@ -1261,18 +1262,55 @@ var Leaf = props => {
|
|
|
1261
1262
|
} = props;
|
|
1262
1263
|
var placeholderRef = useRef(null);
|
|
1263
1264
|
var editor = useSlateStatic();
|
|
1265
|
+
var placeholderResizeObserver = useRef(null);
|
|
1266
|
+
useEffect(() => {
|
|
1267
|
+
return () => {
|
|
1268
|
+
if (placeholderResizeObserver.current) {
|
|
1269
|
+
placeholderResizeObserver.current.disconnect();
|
|
1270
|
+
}
|
|
1271
|
+
};
|
|
1272
|
+
}, []);
|
|
1264
1273
|
useEffect(() => {
|
|
1265
1274
|
var placeholderEl = placeholderRef === null || placeholderRef === void 0 ? void 0 : placeholderRef.current;
|
|
1266
|
-
var editorEl = ReactEditor.toDOMNode(editor, editor);
|
|
1267
1275
|
|
|
1268
|
-
if (
|
|
1269
|
-
|
|
1276
|
+
if (placeholderEl) {
|
|
1277
|
+
EDITOR_TO_PLACEHOLDER_ELEMENT.set(editor, placeholderEl);
|
|
1278
|
+
} else {
|
|
1279
|
+
EDITOR_TO_PLACEHOLDER_ELEMENT.delete(editor);
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
if (placeholderResizeObserver.current) {
|
|
1283
|
+
// Update existing observer.
|
|
1284
|
+
placeholderResizeObserver.current.disconnect();
|
|
1285
|
+
if (placeholderEl) placeholderResizeObserver.current.observe(placeholderEl);
|
|
1286
|
+
} else if (placeholderEl) {
|
|
1287
|
+
// Create a new observer and observe the placeholder element.
|
|
1288
|
+
placeholderResizeObserver.current = new ResizeObserver(_ref => {
|
|
1289
|
+
var [{
|
|
1290
|
+
target
|
|
1291
|
+
}] = _ref;
|
|
1292
|
+
var styleElement = EDITOR_TO_STYLE_ELEMENT.get(editor);
|
|
1293
|
+
|
|
1294
|
+
if (styleElement) {
|
|
1295
|
+
// Make the min-height the height of the placeholder.
|
|
1296
|
+
var minHeight = "".concat(target.clientHeight, "px");
|
|
1297
|
+
styleElement.innerHTML = ":where([data-slate-editor-id=\"".concat(editor.id, "\"]) { min-height: ").concat(minHeight, "; }");
|
|
1298
|
+
}
|
|
1299
|
+
});
|
|
1300
|
+
placeholderResizeObserver.current.observe(placeholderEl);
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
if (!placeholderEl) {
|
|
1304
|
+
// No placeholder element, so no need for a resize observer.
|
|
1305
|
+
var styleElement = EDITOR_TO_STYLE_ELEMENT.get(editor);
|
|
1306
|
+
|
|
1307
|
+
if (styleElement) {
|
|
1308
|
+
// No min-height if there is no placeholder.
|
|
1309
|
+
styleElement.innerHTML = '';
|
|
1310
|
+
}
|
|
1270
1311
|
}
|
|
1271
1312
|
|
|
1272
|
-
editorEl.style.minHeight = "".concat(placeholderEl.clientHeight, "px");
|
|
1273
|
-
EDITOR_TO_PLACEHOLDER_ELEMENT.set(editor, placeholderEl);
|
|
1274
1313
|
return () => {
|
|
1275
|
-
editorEl.style.minHeight = 'auto';
|
|
1276
1314
|
EDITOR_TO_PLACEHOLDER_ELEMENT.delete(editor);
|
|
1277
1315
|
};
|
|
1278
1316
|
}, [placeholderRef, leaf]);
|
|
@@ -3058,12 +3096,14 @@ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if
|
|
|
3058
3096
|
|
|
3059
3097
|
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
3060
3098
|
|
|
3061
|
-
var Children = props => /*#__PURE__*/React.createElement(React.Fragment, null, useChildren(props));
|
|
3099
|
+
var Children = props => /*#__PURE__*/React.createElement(React.Fragment, null, useChildren(props)); // The number of Editable components currently mounted.
|
|
3100
|
+
|
|
3101
|
+
|
|
3102
|
+
var mountedCount = 0;
|
|
3062
3103
|
/**
|
|
3063
3104
|
* Editable.
|
|
3064
3105
|
*/
|
|
3065
3106
|
|
|
3066
|
-
|
|
3067
3107
|
var Editable = props => {
|
|
3068
3108
|
var {
|
|
3069
3109
|
autoFocus,
|
|
@@ -3680,6 +3720,38 @@ var Editable = props => {
|
|
|
3680
3720
|
EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);
|
|
3681
3721
|
});
|
|
3682
3722
|
});
|
|
3723
|
+
useEffect(() => {
|
|
3724
|
+
mountedCount++;
|
|
3725
|
+
|
|
3726
|
+
if (mountedCount === 1) {
|
|
3727
|
+
// Set global default styles for editors.
|
|
3728
|
+
var defaultStylesElement = document.createElement('style');
|
|
3729
|
+
defaultStylesElement.setAttribute('data-slate-default-styles', 'true');
|
|
3730
|
+
defaultStylesElement.innerHTML = // :where is used to give these rules lower specificity so user stylesheets can override them.
|
|
3731
|
+
":where([data-slate-editor]) {" + // Allow positioning relative to the editable element.
|
|
3732
|
+
"position: relative;" + // Prevent the default outline styles.
|
|
3733
|
+
"outline: none;" + // Preserve adjacent whitespace and new lines.
|
|
3734
|
+
"white-space: pre-wrap;" + // Allow words to break if they are too long.
|
|
3735
|
+
"word-wrap: break-word;" + "}";
|
|
3736
|
+
document.head.appendChild(defaultStylesElement);
|
|
3737
|
+
}
|
|
3738
|
+
|
|
3739
|
+
return () => {
|
|
3740
|
+
var _document$querySelect;
|
|
3741
|
+
|
|
3742
|
+
mountedCount--;
|
|
3743
|
+
if (mountedCount <= 0) (_document$querySelect = document.querySelector('style[data-slate-default-styles]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.remove();
|
|
3744
|
+
};
|
|
3745
|
+
}, []);
|
|
3746
|
+
useEffect(() => {
|
|
3747
|
+
var styleElement = document.createElement('style');
|
|
3748
|
+
document.head.appendChild(styleElement);
|
|
3749
|
+
EDITOR_TO_STYLE_ELEMENT.set(editor, styleElement);
|
|
3750
|
+
return () => {
|
|
3751
|
+
styleElement.remove();
|
|
3752
|
+
EDITOR_TO_STYLE_ELEMENT.delete(editor);
|
|
3753
|
+
};
|
|
3754
|
+
}, []);
|
|
3683
3755
|
return /*#__PURE__*/React.createElement(ReadOnlyContext.Provider, {
|
|
3684
3756
|
value: readOnly
|
|
3685
3757
|
}, /*#__PURE__*/React.createElement(DecorateContext.Provider, {
|
|
@@ -3700,6 +3772,7 @@ var Editable = props => {
|
|
|
3700
3772
|
autoCorrect: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCorrect : 'false',
|
|
3701
3773
|
autoCapitalize: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCapitalize : 'false',
|
|
3702
3774
|
"data-slate-editor": true,
|
|
3775
|
+
"data-slate-editor-id": editor.id,
|
|
3703
3776
|
"data-slate-node": "value",
|
|
3704
3777
|
// explicitly set this
|
|
3705
3778
|
contentEditable: !readOnly,
|
|
@@ -3709,16 +3782,7 @@ var Editable = props => {
|
|
|
3709
3782
|
zindex: -1,
|
|
3710
3783
|
suppressContentEditableWarning: true,
|
|
3711
3784
|
ref: ref,
|
|
3712
|
-
style:
|
|
3713
|
-
// Allow positioning relative to the editable element.
|
|
3714
|
-
position: 'relative',
|
|
3715
|
-
// Prevent the default outline styles.
|
|
3716
|
-
outline: 'none',
|
|
3717
|
-
// Preserve adjacent whitespace and new lines.
|
|
3718
|
-
whiteSpace: 'pre-wrap',
|
|
3719
|
-
// Allow words to break if they are too long.
|
|
3720
|
-
wordWrap: 'break-word'
|
|
3721
|
-
}, style),
|
|
3785
|
+
style: style,
|
|
3722
3786
|
onBeforeInput: useCallback(event => {
|
|
3723
3787
|
// COMPAT: Certain browsers don't support the `beforeinput` event, so we
|
|
3724
3788
|
// fall back to React's leaky polyfill instead just for it. It
|