decap-cms-widget-markdown 3.1.2 → 3.1.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.
Files changed (75) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/decap-cms-widget-markdown.js +3 -3
  3. package/dist/decap-cms-widget-markdown.js.map +1 -1
  4. package/dist/esm/MarkdownControl/Toolbar.js +2 -2
  5. package/dist/esm/MarkdownControl/components/Shortcode.js +2 -2
  6. package/dist/esm/MarkdownControl/index.js +2 -2
  7. package/dist/esm/MarkdownControl/plugins/blocks/events/keyDown.js +10 -0
  8. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAfterSoftBreak.js +16 -0
  9. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorCollapsedAfterSoftBreak.js +17 -0
  10. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock copy.js +19 -0
  11. package/dist/esm/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js +12 -4
  12. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownShiftTab.js +2 -2
  13. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownTab.js +2 -2
  14. package/dist/esm/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js +2 -2
  15. package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js +2 -2
  16. package/dist/esm/MarkdownControl/renderers.js +17 -17
  17. package/dist/esm/MarkdownPreview.js +2 -2
  18. package/dist/esm/index.js +2 -2
  19. package/dist/esm/serializers/remarkAssertParents.js +2 -2
  20. package/dist/esm/serializers/remarkEscapeMarkdownEntities.js +2 -2
  21. package/dist/esm/serializers/remarkImagesToText.js +2 -2
  22. package/dist/esm/serializers/remarkPaddedLinks.js +2 -2
  23. package/dist/esm/serializers/remarkRehypeShortcodes.js +2 -2
  24. package/dist/esm/serializers/remarkSlate.js +12 -3
  25. package/dist/esm/serializers/remarkSquashReferences.js +2 -2
  26. package/dist/esm/serializers/slateRemark.js +2 -2
  27. package/package.json +2 -2
  28. package/src/MarkdownControl/plugins/blocks/events/keyDown.js +9 -0
  29. package/src/MarkdownControl/plugins/blocks/locations/isCursorCollapsedAfterSoftBreak.js +13 -0
  30. package/src/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js +17 -4
  31. package/src/MarkdownControl/renderers.js +6 -1
  32. package/src/serializers/remarkSlate.js +9 -1
  33. package/dist/esm/MarkdownControl/PlateEditor.js +0 -149
  34. package/dist/esm/components/Icons.js +0 -174
  35. package/dist/esm/components/plate-ui/blockquote-element.js +0 -28
  36. package/dist/esm/components/plate-ui/button.js +0 -66
  37. package/dist/esm/components/plate-ui/code-block-combobox.js +0 -66
  38. package/dist/esm/components/plate-ui/code-block-element.css +0 -434
  39. package/dist/esm/components/plate-ui/code-block-element.js +0 -41
  40. package/dist/esm/components/plate-ui/code-leaf.js +0 -28
  41. package/dist/esm/components/plate-ui/code-line-element.js +0 -16
  42. package/dist/esm/components/plate-ui/code-syntax-leaf.js +0 -34
  43. package/dist/esm/components/plate-ui/command.js +0 -55
  44. package/dist/esm/components/plate-ui/dialog.js +0 -44
  45. package/dist/esm/components/plate-ui/dropdown-menu.js +0 -114
  46. package/dist/esm/components/plate-ui/editor.js +0 -71
  47. package/dist/esm/components/plate-ui/fixed-toolbar-buttons.js +0 -49
  48. package/dist/esm/components/plate-ui/fixed-toolbar.js +0 -9
  49. package/dist/esm/components/plate-ui/floating-toolbar-buttons.js +0 -34
  50. package/dist/esm/components/plate-ui/floating-toolbar.js +0 -50
  51. package/dist/esm/components/plate-ui/heading-element.js +0 -52
  52. package/dist/esm/components/plate-ui/input.js +0 -25
  53. package/dist/esm/components/plate-ui/insert-dropdown-menu.js +0 -200
  54. package/dist/esm/components/plate-ui/kbd-leaf.js +0 -27
  55. package/dist/esm/components/plate-ui/link-element.js +0 -34
  56. package/dist/esm/components/plate-ui/link-floating-toolbar.js +0 -116
  57. package/dist/esm/components/plate-ui/list-element.js +0 -38
  58. package/dist/esm/components/plate-ui/mark-toolbar-button.js +0 -34
  59. package/dist/esm/components/plate-ui/mode-dropdown-menu.js +0 -67
  60. package/dist/esm/components/plate-ui/more-dropdown-menu.js +0 -50
  61. package/dist/esm/components/plate-ui/paragraph-element.js +0 -9
  62. package/dist/esm/components/plate-ui/placeholder.js +0 -52
  63. package/dist/esm/components/plate-ui/popover.js +0 -45
  64. package/dist/esm/components/plate-ui/resizable.js +0 -50
  65. package/dist/esm/components/plate-ui/separator.js +0 -27
  66. package/dist/esm/components/plate-ui/table-cell-element.js +0 -97
  67. package/dist/esm/components/plate-ui/table-element.js +0 -182
  68. package/dist/esm/components/plate-ui/table-row-element.js +0 -27
  69. package/dist/esm/components/plate-ui/toolbar.js +0 -99
  70. package/dist/esm/components/plate-ui/tooltip.js +0 -49
  71. package/dist/esm/components/plate-ui/turn-into-dropdown-menu.js +0 -129
  72. package/dist/esm/style/global.css +0 -78
  73. package/dist/esm/style/input.css +0 -3
  74. package/dist/esm/style/output.css +0 -557
  75. package/dist/esm/styles/globals.css +0 -76
@@ -12,8 +12,8 @@ var _serializers = require("./serializers");
12
12
  var _react2 = require("@emotion/react");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
16
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
17
  class MarkdownPreview extends _react.default.Component {
18
18
  render() {
19
19
  const {
package/dist/esm/index.js CHANGED
@@ -11,8 +11,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
11
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
12
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
13
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
15
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
15
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
16
  function Widget(opts = {}) {
17
17
  return _objectSpread({
18
18
  name: 'markdown',
@@ -13,8 +13,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
13
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
15
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
17
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
18
  /**
19
19
  * remarkUnwrapInvalidNest
20
20
  *
@@ -13,8 +13,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
13
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
15
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
17
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
18
  /**
19
19
  * Reusable regular expressions segments.
20
20
  */
@@ -7,8 +7,8 @@ exports.default = remarkImagesToText;
7
7
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
8
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
9
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
11
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
11
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
12
12
  /**
13
13
  * Images must be parsed as shortcodes for asset proxying. This plugin converts
14
14
  * MDAST image nodes back to text to allow shortcode pattern matching. Note that
@@ -17,8 +17,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
17
17
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
18
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
19
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
21
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
21
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
22
  /**
23
23
  * Convert leading and trailing spaces in a link to single spaces outside of the
24
24
  * link. MDASTs derived from pasted Google Docs HTML require this treatment.
@@ -13,8 +13,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
13
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
15
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
17
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
18
  /**
19
19
  * This plugin doesn't actually transform Remark (MDAST) nodes to Rehype
20
20
  * (HAST) nodes, but rather, it prepares an MDAST shortcode node for HAST
@@ -15,8 +15,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
19
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
20
  /**
21
21
  * Map of MDAST node types to Slate node types.
22
22
  */
@@ -259,7 +259,6 @@ function remarkToSlate({
259
259
  * Convert simple cases that only require a type and children, with no
260
260
  * additional properties.
261
261
  */
262
- case 'root':
263
262
  case 'paragraph':
264
263
  case 'blockquote':
265
264
  case 'tableRow':
@@ -268,6 +267,16 @@ function remarkToSlate({
268
267
  return createBlock(typeMap[node.type], nodes);
269
268
  }
270
269
 
270
+ /**
271
+ * Root element
272
+ * If the root node is empty, we need to add a paragraph node to it.
273
+ */
274
+ case 'root':
275
+ {
276
+ const children = (0, _isEmpty2.default)(nodes) ? [createBlock('paragraph')] : nodes;
277
+ return createBlock(typeMap[node.type], children);
278
+ }
279
+
271
280
  /**
272
281
  * List Items
273
282
  *
@@ -12,8 +12,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
12
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
14
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
16
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
17
  /**
18
18
  * Raw markdown may contain image references or link references. Because there
19
19
  * is no way to maintain these references within the Slate AST, we convert image
@@ -20,8 +20,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
20
20
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
21
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
22
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
24
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
23
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
24
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
25
25
  /**
26
26
  * Map of Slate node types to MDAST/Remark node types.
27
27
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "decap-cms-widget-markdown",
3
3
  "description": "Widget for editing markdown in Decap CMS.",
4
- "version": "3.1.2",
4
+ "version": "3.1.4",
5
5
  "homepage": "https://www.decapcms.org/docs/widgets/#markdown",
6
6
  "repository": "https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown",
7
7
  "bugs": "https://github.com/decaporg/decap-cms/issues",
@@ -60,5 +60,5 @@
60
60
  "commonmark-spec": "^0.30.0",
61
61
  "slate-hyperscript": "^0.77.0"
62
62
  },
63
- "gitHead": "875f4cafa9a82283d28fc5d7871a34550b2a3870"
63
+ "gitHead": "f16f7369396d25fb62e0e48598e787c1e7eb203c"
64
64
  }
@@ -1,9 +1,11 @@
1
1
  import isHotkey from 'is-hotkey';
2
+ import { Editor, Transforms } from 'slate';
2
3
 
3
4
  import keyDownEnter from './keyDownEnter';
4
5
  import keyDownBackspace from './keyDownBackspace';
5
6
  import isCursorInNonDefaultBlock from '../locations/isCursorInNonDefaultBlock';
6
7
  import toggleBlock from './toggleBlock';
8
+ import isCursorCollapsedAfterSoftBreak from '../locations/isCursorCollapsedAfterSoftBreak';
7
9
 
8
10
  const HEADING_HOTKEYS = {
9
11
  'mod+1': 'heading-one',
@@ -25,6 +27,13 @@ function keyDown(event, editor) {
25
27
  }
26
28
  }
27
29
 
30
+ if (isHotkey('backspace', event) && isCursorCollapsedAfterSoftBreak(editor)) {
31
+ const [, path] = Editor.previous(editor);
32
+ Transforms.removeNodes(editor, { at: path });
33
+ event.preventDefault();
34
+ return false;
35
+ }
36
+
28
37
  if (!isCursorInNonDefaultBlock(editor)) return;
29
38
 
30
39
  if (isHotkey('enter', event)) {
@@ -0,0 +1,13 @@
1
+ import { Editor, Range } from 'slate';
2
+
3
+ function isCursorCollapsedAfterSoftBreak(editor) {
4
+ const { selection } = editor;
5
+ if (!selection) return false;
6
+ if (Range.isExpanded(selection)) return false;
7
+
8
+ const previous = Editor.previous(editor);
9
+
10
+ return previous && previous[0].type == 'break';
11
+ }
12
+
13
+ export default isCursorCollapsedAfterSoftBreak;
@@ -5,18 +5,31 @@ import lowestMatchedAncestor from '../../matchers/lowestMatchedAncestor';
5
5
  function unwrapIfCursorAtStart(editor, mergeWithPrevious = false) {
6
6
  if (editor.selection.anchor.offset !== 0) return false;
7
7
 
8
- const node = Editor.above(editor, lowestMatchedAncestor(editor, 'non-default'));
8
+ let [node, path] = Editor.above(editor, lowestMatchedAncestor(editor, 'non-default'));
9
9
 
10
- if (node[1].length == 0) return false;
10
+ if (path.length == 0) return false;
11
11
 
12
- const isHeading = `${node[0].type}`.startsWith('heading-');
12
+ const isHeading = `${node.type}`.startsWith('heading-');
13
13
  if (isHeading) {
14
14
  Transforms.setNodes(editor, { type: 'paragraph' });
15
15
  return false;
16
16
  }
17
17
 
18
+ const isBlock = Editor.isBlock(editor, node);
19
+ const [parentBlock, parentBlockPath] = Editor.above(
20
+ editor,
21
+ lowestMatchedAncestor(editor, 'block'),
22
+ );
23
+ if (!isBlock) {
24
+ if (!Editor.isStart(editor, path, parentBlockPath)) {
25
+ return false;
26
+ }
27
+
28
+ [node, path] = [parentBlock, parentBlockPath];
29
+ }
30
+
18
31
  Editor.withoutNormalizing(editor, () => {
19
- Transforms.unwrapNodes(editor, { match: n => n.type === node[0].type, split: true });
32
+ Transforms.unwrapNodes(editor, { match: n => n.type === node.type, split: true });
20
33
 
21
34
  if (mergeWithPrevious) {
22
35
  Transforms.mergeNodes(editor);
@@ -205,7 +205,12 @@ function ThematicBreak(props) {
205
205
  }
206
206
 
207
207
  function Break(props) {
208
- return <br {...props.attributes} />;
208
+ return (
209
+ <>
210
+ <br {...props.attributes} />
211
+ {props.children}
212
+ </>
213
+ );
209
214
  }
210
215
 
211
216
  function BulletedList(props) {
@@ -234,7 +234,6 @@ export default function remarkToSlate({ voidCodeBlock } = {}) {
234
234
  * Convert simple cases that only require a type and children, with no
235
235
  * additional properties.
236
236
  */
237
- case 'root':
238
237
  case 'paragraph':
239
238
  case 'blockquote':
240
239
  case 'tableRow':
@@ -242,6 +241,15 @@ export default function remarkToSlate({ voidCodeBlock } = {}) {
242
241
  return createBlock(typeMap[node.type], nodes);
243
242
  }
244
243
 
244
+ /**
245
+ * Root element
246
+ * If the root node is empty, we need to add a paragraph node to it.
247
+ */
248
+ case 'root': {
249
+ const children = isEmpty(nodes) ? [createBlock('paragraph')] : nodes;
250
+ return createBlock(typeMap[node.type], children);
251
+ }
252
+
245
253
  /**
246
254
  * List Items
247
255
  *
@@ -1,149 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = PlateEditor;
7
- var _react = _interopRequireDefault(require("react"));
8
- require("./../style/output.css");
9
- var _cn = require("@udecode/cn");
10
- var _plateCommon = require("@udecode/plate-common");
11
- var _plateParagraph = require("@udecode/plate-paragraph");
12
- var _plateHeading = require("@udecode/plate-heading");
13
- var _plateBlockQuote = require("@udecode/plate-block-quote");
14
- var _plateCodeBlock = require("@udecode/plate-code-block");
15
- var _plateLink = require("@udecode/plate-link");
16
- var _plateList = require("@udecode/plate-list");
17
- var _plateTable = require("@udecode/plate-table");
18
- var _plateBasicMarks = require("@udecode/plate-basic-marks");
19
- var _plateKbd = require("@udecode/plate-kbd");
20
- var _plateSelection = require("@udecode/plate-selection");
21
- var _plateResetNode = require("@udecode/plate-reset-node");
22
- var _plateSelect = require("@udecode/plate-select");
23
- var _plateBreak = require("@udecode/plate-break");
24
- var _blockquoteElement = require("./../components/plate-ui/blockquote-element");
25
- var _codeBlockElement = require("./../components/plate-ui/code-block-element");
26
- var _codeLineElement = require("./../components/plate-ui/code-line-element");
27
- var _codeSyntaxLeaf = require("./../components/plate-ui/code-syntax-leaf");
28
- var _linkElement = require("./../components/plate-ui/link-element");
29
- var _linkFloatingToolbar = require("./../components/plate-ui/link-floating-toolbar");
30
- var _headingElement = require("./../components/plate-ui/heading-element");
31
- var _listElement = require("./../components/plate-ui/list-element");
32
- var _paragraphElement = require("./../components/plate-ui/paragraph-element");
33
- var _tableElement = require("./../components/plate-ui/table-element");
34
- var _tableRowElement = require("./../components/plate-ui/table-row-element");
35
- var _tableCellElement = require("./../components/plate-ui/table-cell-element");
36
- var _codeLeaf = require("./../components/plate-ui/code-leaf");
37
- var _kbdLeaf = require("./../components/plate-ui/kbd-leaf");
38
- var _editor = require("./../components/plate-ui/editor");
39
- var _fixedToolbar = require("./../components/plate-ui/fixed-toolbar");
40
- var _fixedToolbarButtons = require("./../components/plate-ui/fixed-toolbar-buttons");
41
- var _floatingToolbar = require("./../components/plate-ui/floating-toolbar");
42
- var _floatingToolbarButtons = require("./../components/plate-ui/floating-toolbar-buttons");
43
- var _placeholder = require("./../components/plate-ui/placeholder");
44
- var _react2 = require("@emotion/react");
45
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
46
- const plugins = (0, _plateCommon.createPlugins)([(0, _plateParagraph.createParagraphPlugin)(), (0, _plateHeading.createHeadingPlugin)(), (0, _plateBlockQuote.createBlockquotePlugin)(), (0, _plateCodeBlock.createCodeBlockPlugin)(), (0, _plateLink.createLinkPlugin)({
47
- renderAfterEditable: _linkFloatingToolbar.LinkFloatingToolbar
48
- }), (0, _plateList.createListPlugin)(), (0, _plateTable.createTablePlugin)(), (0, _plateBasicMarks.createBoldPlugin)(), (0, _plateBasicMarks.createItalicPlugin)(), (0, _plateBasicMarks.createUnderlinePlugin)(), (0, _plateBasicMarks.createStrikethroughPlugin)(), (0, _plateBasicMarks.createCodePlugin)(), (0, _plateKbd.createKbdPlugin)(), (0, _plateSelection.createBlockSelectionPlugin)({
49
- options: {
50
- sizes: {
51
- top: 0,
52
- bottom: 0
53
- }
54
- }
55
- }), (0, _plateResetNode.createResetNodePlugin)({
56
- options: {
57
- rules: [
58
- // Usage: https://platejs.org/docs/reset-node
59
- ]
60
- }
61
- }), (0, _plateSelect.createSelectOnBackspacePlugin)({
62
- options: {
63
- query: {
64
- allow: [
65
- // ELEMENT_IMAGE, ELEMENT_HR
66
- ]
67
- }
68
- }
69
- }), (0, _plateSelect.createDeletePlugin)(), (0, _plateBreak.createSoftBreakPlugin)({
70
- options: {
71
- rules: [{
72
- hotkey: 'shift+enter'
73
- }, {
74
- hotkey: 'enter',
75
- query: {
76
- allow: [
77
- // ELEMENT_CODE_BLOCK, ELEMENT_BLOCKQUOTE, ELEMENT_TD
78
- ]
79
- }
80
- }]
81
- }
82
- })], {
83
- components: (0, _placeholder.withPlaceholders)({
84
- [_plateBlockQuote.ELEMENT_BLOCKQUOTE]: _blockquoteElement.BlockquoteElement,
85
- [_plateCodeBlock.ELEMENT_CODE_BLOCK]: _codeBlockElement.CodeBlockElement,
86
- [_plateCodeBlock.ELEMENT_CODE_LINE]: _codeLineElement.CodeLineElement,
87
- [_plateCodeBlock.ELEMENT_CODE_SYNTAX]: _codeSyntaxLeaf.CodeSyntaxLeaf,
88
- [_plateLink.ELEMENT_LINK]: _linkElement.LinkElement,
89
- [_plateHeading.ELEMENT_H1]: (0, _cn.withProps)(_headingElement.HeadingElement, {
90
- variant: 'h1'
91
- }),
92
- [_plateHeading.ELEMENT_H2]: (0, _cn.withProps)(_headingElement.HeadingElement, {
93
- variant: 'h2'
94
- }),
95
- [_plateHeading.ELEMENT_H3]: (0, _cn.withProps)(_headingElement.HeadingElement, {
96
- variant: 'h3'
97
- }),
98
- [_plateHeading.ELEMENT_H4]: (0, _cn.withProps)(_headingElement.HeadingElement, {
99
- variant: 'h4'
100
- }),
101
- [_plateHeading.ELEMENT_H5]: (0, _cn.withProps)(_headingElement.HeadingElement, {
102
- variant: 'h5'
103
- }),
104
- [_plateHeading.ELEMENT_H6]: (0, _cn.withProps)(_headingElement.HeadingElement, {
105
- variant: 'h6'
106
- }),
107
- [_plateList.ELEMENT_UL]: (0, _cn.withProps)(_listElement.ListElement, {
108
- variant: 'ul'
109
- }),
110
- [_plateList.ELEMENT_OL]: (0, _cn.withProps)(_listElement.ListElement, {
111
- variant: 'ol'
112
- }),
113
- [_plateList.ELEMENT_LI]: (0, _cn.withProps)(_plateCommon.PlateElement, {
114
- as: 'li'
115
- }),
116
- [_plateParagraph.ELEMENT_PARAGRAPH]: _paragraphElement.ParagraphElement,
117
- [_plateTable.ELEMENT_TABLE]: _tableElement.TableElement,
118
- [_plateTable.ELEMENT_TR]: _tableRowElement.TableRowElement,
119
- [_plateTable.ELEMENT_TD]: _tableCellElement.TableCellElement,
120
- [_plateTable.ELEMENT_TH]: _tableCellElement.TableCellHeaderElement,
121
- [_plateBasicMarks.MARK_BOLD]: (0, _cn.withProps)(_plateCommon.PlateLeaf, {
122
- as: 'strong'
123
- }),
124
- [_plateBasicMarks.MARK_CODE]: _codeLeaf.CodeLeaf,
125
- [_plateBasicMarks.MARK_ITALIC]: (0, _cn.withProps)(_plateCommon.PlateLeaf, {
126
- as: 'em'
127
- }),
128
- [_plateKbd.MARK_KBD]: _kbdLeaf.KbdLeaf,
129
- [_plateBasicMarks.MARK_STRIKETHROUGH]: (0, _cn.withProps)(_plateCommon.PlateLeaf, {
130
- as: 's'
131
- }),
132
- [_plateBasicMarks.MARK_UNDERLINE]: (0, _cn.withProps)(_plateCommon.PlateLeaf, {
133
- as: 'u'
134
- })
135
- })
136
- });
137
- const initialValue = [{
138
- id: '1',
139
- type: 'p',
140
- children: [{
141
- text: 'Hello, World!'
142
- }]
143
- }];
144
- function PlateEditor() {
145
- return (0, _react2.jsx)(_plateCommon.Plate, {
146
- plugins: plugins,
147
- initialValue: initialValue
148
- }, (0, _react2.jsx)(_fixedToolbar.FixedToolbar, null, (0, _react2.jsx)(_fixedToolbarButtons.FixedToolbarButtons, null)), (0, _react2.jsx)(_editor.Editor, null), (0, _react2.jsx)(_floatingToolbar.FloatingToolbar, null, (0, _react2.jsx)(_floatingToolbarButtons.FloatingToolbarButtons, null)));
149
- }