decap-cms-widget-markdown 3.2.0 → 3.3.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.
Files changed (104) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/decap-cms-widget-markdown.js +4 -4
  3. package/dist/decap-cms-widget-markdown.js.map +1 -1
  4. package/dist/esm/MarkdownControl/RawEditor.js +36 -43
  5. package/dist/esm/MarkdownControl/Toolbar.js +52 -59
  6. package/dist/esm/MarkdownControl/ToolbarButton.js +16 -23
  7. package/dist/esm/MarkdownControl/VisualEditor.js +85 -92
  8. package/dist/esm/MarkdownControl/components/Shortcode.js +24 -31
  9. package/dist/esm/MarkdownControl/components/VoidBlock.js +18 -23
  10. package/dist/esm/MarkdownControl/index.js +30 -35
  11. package/dist/esm/MarkdownControl/plugins/BreakToDefaultBlock.js +3 -10
  12. package/dist/esm/MarkdownControl/plugins/CloseBlock.js +3 -10
  13. package/dist/esm/MarkdownControl/plugins/CommandsAndQueries.js +8 -15
  14. package/dist/esm/MarkdownControl/plugins/ForceInsert.js +1 -7
  15. package/dist/esm/MarkdownControl/plugins/Hotkey.js +4 -11
  16. package/dist/esm/MarkdownControl/plugins/LineBreak.js +3 -10
  17. package/dist/esm/MarkdownControl/plugins/Link.js +1 -7
  18. package/dist/esm/MarkdownControl/plugins/blocks/defaultEmptyBlock.js +1 -7
  19. package/dist/esm/MarkdownControl/plugins/blocks/events/keyDown.js +18 -25
  20. package/dist/esm/MarkdownControl/plugins/blocks/events/keyDownBackspace.js +11 -18
  21. package/dist/esm/MarkdownControl/plugins/blocks/events/keyDownEnter.js +9 -16
  22. package/dist/esm/MarkdownControl/plugins/blocks/events/toggleBlock.js +11 -18
  23. package/dist/esm/MarkdownControl/plugins/blocks/locations/areCurrentAndPreviousBlocksOfType.js +5 -12
  24. package/dist/esm/MarkdownControl/plugins/blocks/locations/getListTypeAtCursor.js +4 -11
  25. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtEndOfParagraph.js +5 -12
  26. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfBlockType.js +5 -12
  27. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfNonEmptyHeading.js +5 -11
  28. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorCollapsedAfterSoftBreak.js +4 -10
  29. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInBlockType.js +4 -10
  30. package/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock.js +5 -11
  31. package/dist/esm/MarkdownControl/plugins/blocks/transforms/splitIntoParagraph.js +6 -12
  32. package/dist/esm/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js +12 -19
  33. package/dist/esm/MarkdownControl/plugins/blocks/transforms/wrapListItemsInBlock.js +7 -13
  34. package/dist/esm/MarkdownControl/plugins/blocks/withBlocks.js +5 -12
  35. package/dist/esm/MarkdownControl/plugins/html/withHtml.js +29 -14
  36. package/dist/esm/MarkdownControl/plugins/inlines/events/keyDown.js +11 -18
  37. package/dist/esm/MarkdownControl/plugins/inlines/events/keyDownShiftEnter.js +5 -11
  38. package/dist/esm/MarkdownControl/plugins/inlines/events/toggleLink.js +7 -14
  39. package/dist/esm/MarkdownControl/plugins/inlines/events/toggleMark.js +6 -13
  40. package/dist/esm/MarkdownControl/plugins/inlines/locations/isMarkActive.js +3 -9
  41. package/dist/esm/MarkdownControl/plugins/inlines/selectors/getActiveLink.js +4 -11
  42. package/dist/esm/MarkdownControl/plugins/inlines/transforms/unwrapLink.js +4 -11
  43. package/dist/esm/MarkdownControl/plugins/inlines/transforms/wrapLink.js +11 -18
  44. package/dist/esm/MarkdownControl/plugins/inlines/withInlines.js +3 -10
  45. package/dist/esm/MarkdownControl/plugins/lists/events/keyDown.js +14 -21
  46. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownBackspace.js +11 -18
  47. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownEnter.js +18 -25
  48. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownShiftTab.js +9 -16
  49. package/dist/esm/MarkdownControl/plugins/lists/events/keyDownTab.js +13 -20
  50. package/dist/esm/MarkdownControl/plugins/lists/events/toggleListType.js +11 -18
  51. package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtListItemStart.js +3 -9
  52. package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js +3 -9
  53. package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js +3 -10
  54. package/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInListItem.js +4 -10
  55. package/dist/esm/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js +4 -10
  56. package/dist/esm/MarkdownControl/plugins/lists/selectors/getListContainedInListItem.js +5 -12
  57. package/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorList.js +4 -11
  58. package/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorQuote.js +4 -11
  59. package/dist/esm/MarkdownControl/plugins/lists/transforms/changeListType.js +8 -15
  60. package/dist/esm/MarkdownControl/plugins/lists/transforms/convertParagraphToListItem.js +8 -15
  61. package/dist/esm/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js +3 -9
  62. package/dist/esm/MarkdownControl/plugins/lists/transforms/liftListItem.js +13 -20
  63. package/dist/esm/MarkdownControl/plugins/lists/transforms/mergeWithPreviousListItem.js +6 -13
  64. package/dist/esm/MarkdownControl/plugins/lists/transforms/moveListToListItem.js +3 -9
  65. package/dist/esm/MarkdownControl/plugins/lists/transforms/splitListItem.js +12 -19
  66. package/dist/esm/MarkdownControl/plugins/lists/transforms/splitToNestedList.js +11 -18
  67. package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapFirstMatchedParent.js +4 -11
  68. package/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js +7 -14
  69. package/dist/esm/MarkdownControl/plugins/lists/transforms/wrapFirstMatchedParent.js +4 -11
  70. package/dist/esm/MarkdownControl/plugins/lists/transforms/wrapSelectionInList.js +8 -15
  71. package/dist/esm/MarkdownControl/plugins/lists/withLists.js +19 -26
  72. package/dist/esm/MarkdownControl/plugins/matchers/lowestMatchedAncestor.js +3 -10
  73. package/dist/esm/MarkdownControl/plugins/matchers/matchLink.js +3 -9
  74. package/dist/esm/MarkdownControl/plugins/matchers/matchedAncestors.js +3 -9
  75. package/dist/esm/MarkdownControl/plugins/shortcodes/insertShortcode.js +6 -13
  76. package/dist/esm/MarkdownControl/plugins/shortcodes/locations/isCursorInEmptyParagraph.js +5 -11
  77. package/dist/esm/MarkdownControl/plugins/shortcodes/withShortcodes.js +5 -12
  78. package/dist/esm/MarkdownControl/plugins/util.js +5 -12
  79. package/dist/esm/MarkdownControl/renderers.js +84 -91
  80. package/dist/esm/MarkdownPreview.js +14 -21
  81. package/dist/esm/index.js +10 -17
  82. package/dist/esm/regexHelper.js +6 -15
  83. package/dist/esm/schema.js +1 -7
  84. package/dist/esm/serializers/index.js +46 -57
  85. package/dist/esm/serializers/rehypePaperEmoji.js +1 -7
  86. package/dist/esm/serializers/remarkAllowHtmlEntities.js +1 -7
  87. package/dist/esm/serializers/remarkAssertParents.js +17 -23
  88. package/dist/esm/serializers/remarkEscapeMarkdownEntities.js +14 -20
  89. package/dist/esm/serializers/remarkImagesToText.js +1 -7
  90. package/dist/esm/serializers/remarkPaddedLinks.js +20 -26
  91. package/dist/esm/serializers/remarkRehypeShortcodes.js +12 -18
  92. package/dist/esm/serializers/remarkShortcodes.js +3 -11
  93. package/dist/esm/serializers/remarkSlate.js +18 -26
  94. package/dist/esm/serializers/remarkSquashReferences.js +13 -19
  95. package/dist/esm/serializers/remarkStripTrailingBreaks.js +3 -9
  96. package/dist/esm/serializers/remarkWrapHtml.js +3 -9
  97. package/dist/esm/serializers/slateRemark.js +35 -41
  98. package/dist/esm/styles.js +5 -12
  99. package/dist/esm/types.js +2 -8
  100. package/package.json +2 -2
  101. package/src/MarkdownControl/RawEditor.js +2 -1
  102. package/src/MarkdownControl/VisualEditor.js +2 -1
  103. package/src/MarkdownControl/index.js +4 -0
  104. package/src/MarkdownControl/plugins/html/withHtml.js +19 -0
@@ -1,20 +1,11 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = slateToRemark;
7
- var _omit2 = _interopRequireDefault(require("lodash/omit"));
8
- var _intersection2 = _interopRequireDefault(require("lodash/intersection"));
9
- var _map2 = _interopRequireDefault(require("lodash/map"));
10
- var _last2 = _interopRequireDefault(require("lodash/last"));
11
- var _without2 = _interopRequireDefault(require("lodash/without"));
12
- var _get4 = _interopRequireDefault(require("lodash/get"));
13
- var _unistBuilder = _interopRequireDefault(require("unist-builder"));
14
- var _mdastUtilToString = _interopRequireDefault(require("mdast-util-to-string"));
1
+ import _omit from "lodash/omit";
2
+ import _intersection from "lodash/intersection";
3
+ import _map from "lodash/map";
4
+ import _last from "lodash/last";
5
+ import _without from "lodash/without";
6
+ import _get from "lodash/get";
15
7
  const _excluded = ["lang", "code"],
16
8
  _excluded2 = ["url", "title", "alt"];
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
9
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
19
10
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
20
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; }
@@ -22,6 +13,9 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
22
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; }
23
14
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
24
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
+ import u from 'unist-builder';
17
+ import mdastToString from 'mdast-util-to-string';
18
+
25
19
  /**
26
20
  * Map of Slate node types to MDAST/Remark node types.
27
21
  */
@@ -62,7 +56,7 @@ const blockTypes = ['paragraph', 'quote', 'heading-one', 'heading-two', 'heading
62
56
  const inlineTypes = ['link', 'image', 'break'];
63
57
  const leadingWhitespaceExp = /^\s+\S/;
64
58
  const trailingWhitespaceExp = /(?!\S)\s+$/;
65
- function slateToRemark(value, {
59
+ export default function slateToRemark(value, {
66
60
  voidCodeBlock
67
61
  }) {
68
62
  /**
@@ -106,7 +100,7 @@ function slateToRemark(value, {
106
100
  case 'image':
107
101
  case 'break':
108
102
  {
109
- const data = (0, _omit2.default)(node.data, 'marks');
103
+ const data = _omit(node.data, 'marks');
110
104
  return _objectSpread(_objectSpread({}, node), {}, {
111
105
  data
112
106
  });
@@ -139,12 +133,12 @@ function slateToRemark(value, {
139
133
  }) => type !== 'code') : n.marks, delete newNode.code;
140
134
  return newNode;
141
135
  });
142
- const childMarks = (0, _map2.default)(nodesWithoutCode, getNodeMarks);
143
- return (0, _intersection2.default)(...childMarks);
136
+ const childMarks = _map(nodesWithoutCode, getNodeMarks);
137
+ return _intersection(...childMarks);
144
138
  }
145
139
  case 'break':
146
140
  case 'image':
147
- return (0, _map2.default)((0, _get4.default)(node, ['data', 'marks']), mark => mark.type);
141
+ return _map(_get(node, ['data', 'marks']), mark => mark.type);
148
142
  default:
149
143
  return getNodeMarkArray(node);
150
144
  }
@@ -154,7 +148,7 @@ function slateToRemark(value, {
154
148
  }
155
149
  function getSharedMarks(marks, node) {
156
150
  const nodeMarks = getNodeMarks(node);
157
- const sharedMarks = (0, _intersection2.default)(marks, nodeMarks);
151
+ const sharedMarks = _intersection(marks, nodeMarks);
158
152
  if (sharedMarks[0] === 'code') {
159
153
  return nodeMarks.length === 1 ? marks : [];
160
154
  }
@@ -167,7 +161,7 @@ function slateToRemark(value, {
167
161
  // If only the code mark is present, don't allow it to be shared with other
168
162
  // nodes.
169
163
  if (firstGroupMarks[0] === 'code' && firstGroupMarks.length > 1) {
170
- firstGroupMarks = [...(0, _without2.default)('firstGroupMarks', 'code'), 'code'];
164
+ firstGroupMarks = [..._without('firstGroupMarks', 'code'), 'code'];
171
165
  }
172
166
  let splitIndex = 1;
173
167
  if (firstGroupMarks.length > 0) {
@@ -237,7 +231,7 @@ function slateToRemark(value, {
237
231
  whitespace: leadingWhitespace,
238
232
  trimmedNode: leadingNode
239
233
  } = splitWhitespace(nodes[0]);
240
- const lastNode = nodes.length > 1 ? (0, _last2.default)(nodes) : leadingNode;
234
+ const lastNode = nodes.length > 1 ? _last(nodes) : leadingNode;
241
235
  const trailingSplitResult = splitWhitespace(lastNode, {
242
236
  trailing: true
243
237
  });
@@ -253,7 +247,7 @@ function slateToRemark(value, {
253
247
  };
254
248
  }
255
249
  function createText(text) {
256
- return text && (0, _unistBuilder.default)('html', text);
250
+ return text && u('html', text);
257
251
  }
258
252
  function isNodeInline(node) {
259
253
  return inlineTypes.includes(node.type);
@@ -273,7 +267,7 @@ function slateToRemark(value, {
273
267
  */
274
268
  if (markType === 'code') {
275
269
  const node = markNodes[0];
276
- convertedNodes.push((0, _unistBuilder.default)(markMap[markType], node.data, node.text));
270
+ convertedNodes.push(u(markMap[markType], node.data, node.text));
277
271
  } else if (!markType && markNodes.length === 1 && isNodeInline(nextNode)) {
278
272
  const node = markNodes[0];
279
273
  convertedNodes.push(convertInlineNode(node, convertInlineAndTextChildren(node.children)));
@@ -284,11 +278,11 @@ function slateToRemark(value, {
284
278
  centerNodes
285
279
  } = normalizeFlankingWhitespace(markNodes);
286
280
  const children = convertInlineAndTextChildren(centerNodes);
287
- const markNode = (0, _unistBuilder.default)(markMap[markType], children);
281
+ const markNode = u(markMap[markType], children);
288
282
 
289
283
  // Filter out empty marks, otherwise their output literally by
290
284
  // remark-stringify, eg. an empty bold node becomes "****"
291
- if ((0, _mdastUtilToString.default)(markNode) === '') {
285
+ if (mdastToString(markNode) === '') {
292
286
  remainingNodes = remainder;
293
287
  continue;
294
288
  }
@@ -301,7 +295,7 @@ function slateToRemark(value, {
301
295
  convertedNodes.push(convertInlineNode(nextNode));
302
296
  } else {
303
297
  remainingNodes.shift();
304
- convertedNodes.push((0, _unistBuilder.default)('html', nextNode.text));
298
+ convertedNodes.push(u('html', nextNode.text));
305
299
  }
306
300
  }
307
301
  return convertedNodes;
@@ -331,7 +325,7 @@ function slateToRemark(value, {
331
325
  case 'table-row':
332
326
  case 'table-cell':
333
327
  {
334
- return (0, _unistBuilder.default)(typeMap[node.type], children);
328
+ return u(typeMap[node.type], children);
335
329
  }
336
330
 
337
331
  /**
@@ -360,7 +354,7 @@ function slateToRemark(value, {
360
354
  const {
361
355
  data
362
356
  } = node;
363
- return (0, _unistBuilder.default)(typeMap[node.type], {
357
+ return u(typeMap[node.type], {
364
358
  data
365
359
  });
366
360
  }
@@ -391,10 +385,10 @@ function slateToRemark(value, {
391
385
  };
392
386
  const depthText = node.type.split('-')[1];
393
387
  const depth = depthMap[depthText];
394
- const mdastNode = (0, _unistBuilder.default)(typeMap[node.type], {
388
+ const mdastNode = u(typeMap[node.type], {
395
389
  depth
396
390
  }, children);
397
- if ((0, _mdastUtilToString.default)(mdastNode)) {
391
+ if (mdastToString(mdastNode)) {
398
392
  return mdastNode;
399
393
  }
400
394
  return;
@@ -412,14 +406,14 @@ function slateToRemark(value, {
412
406
  case 'code-block':
413
407
  {
414
408
  var _children$;
415
- const _get2 = (0, _get4.default)(node, 'data', {}),
409
+ const _get2 = _get(node, 'data', {}),
416
410
  {
417
411
  lang,
418
412
  code
419
413
  } = _get2,
420
414
  data = _objectWithoutProperties(_get2, _excluded);
421
415
  const value = voidCodeBlock ? code : (_children$ = children[0]) === null || _children$ === void 0 ? void 0 : _children$.value;
422
- return (0, _unistBuilder.default)(typeMap[node.type], {
416
+ return u(typeMap[node.type], {
423
417
  lang,
424
418
  data
425
419
  }, value || '');
@@ -440,9 +434,9 @@ function slateToRemark(value, {
440
434
  const ordered = node.type === 'numbered-list';
441
435
  const props = {
442
436
  ordered,
443
- start: (0, _get4.default)(node.data, 'start') || 1
437
+ start: _get(node.data, 'start') || 1
444
438
  };
445
- return (0, _unistBuilder.default)(typeMap[node.type], props, children);
439
+ return u(typeMap[node.type], props, children);
446
440
  }
447
441
 
448
442
  /**
@@ -452,7 +446,7 @@ function slateToRemark(value, {
452
446
  */
453
447
  case 'thematic-break':
454
448
  {
455
- return (0, _unistBuilder.default)(typeMap[node.type]);
449
+ return u(typeMap[node.type]);
456
450
  }
457
451
  }
458
452
  }
@@ -465,7 +459,7 @@ function slateToRemark(value, {
465
459
  */
466
460
  case 'break':
467
461
  {
468
- return (0, _unistBuilder.default)(typeMap[node.type]);
462
+ return u(typeMap[node.type]);
469
463
  }
470
464
 
471
465
  /**
@@ -479,7 +473,7 @@ function slateToRemark(value, {
479
473
  title,
480
474
  data
481
475
  } = node;
482
- return (0, _unistBuilder.default)(typeMap[node.type], _objectSpread({
476
+ return u(typeMap[node.type], _objectSpread({
483
477
  url: node.url,
484
478
  title
485
479
  }, data), children);
@@ -493,14 +487,14 @@ function slateToRemark(value, {
493
487
  */
494
488
  case 'image':
495
489
  {
496
- const _get3 = (0, _get4.default)(node, 'data', {}),
490
+ const _get3 = _get(node, 'data', {}),
497
491
  {
498
492
  url,
499
493
  title,
500
494
  alt
501
495
  } = _get3,
502
496
  data = _objectWithoutProperties(_get3, _excluded2);
503
- return (0, _unistBuilder.default)(typeMap[node.type], {
497
+ return u(typeMap[node.type], {
504
498
  url,
505
499
  title,
506
500
  alt,
@@ -1,16 +1,9 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.editorStyleVars = exports.EditorControlBar = void 0;
7
- var _base = _interopRequireDefault(require("@emotion/styled/base"));
8
- var _decapCmsUiDefault = require("decap-cms-ui-default");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- const editorStyleVars = exports.editorStyleVars = {
1
+ import _styled from "@emotion/styled/base";
2
+ import { zIndex } from 'decap-cms-ui-default';
3
+ export const editorStyleVars = {
11
4
  stickyDistanceBottom: '100px'
12
5
  };
13
- const EditorControlBar = exports.EditorControlBar = /*#__PURE__*/(0, _base.default)("div", {
6
+ export const EditorControlBar = /*#__PURE__*/_styled("div", {
14
7
  target: "ehaqqzm0",
15
8
  label: "EditorControlBar"
16
- })("z-index:", _decapCmsUiDefault.zIndex.zIndex200, ";position:sticky;top:0;margin-bottom:", editorStyleVars.stickyDistanceBottom, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHlsZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTzBDIiwiZmlsZSI6Ii4uLy4uL3NyYy9zdHlsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB6SW5kZXggfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmV4cG9ydCBjb25zdCBlZGl0b3JTdHlsZVZhcnMgPSB7XG4gIHN0aWNreURpc3RhbmNlQm90dG9tOiAnMTAwcHgnLFxufTtcblxuZXhwb3J0IGNvbnN0IEVkaXRvckNvbnRyb2xCYXIgPSBzdHlsZWQuZGl2YFxuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgyMDB9O1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206ICR7ZWRpdG9yU3R5bGVWYXJzLnN0aWNreURpc3RhbmNlQm90dG9tfTtcbmA7XG4iXX0= */"));
9
+ })("z-index:", zIndex.zIndex200, ";position:sticky;top:0;margin-bottom:", editorStyleVars.stickyDistanceBottom, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHlsZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTzBDIiwiZmlsZSI6Ii4uLy4uL3NyYy9zdHlsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB6SW5kZXggfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmV4cG9ydCBjb25zdCBlZGl0b3JTdHlsZVZhcnMgPSB7XG4gIHN0aWNreURpc3RhbmNlQm90dG9tOiAnMTAwcHgnLFxufTtcblxuZXhwb3J0IGNvbnN0IEVkaXRvckNvbnRyb2xCYXIgPSBzdHlsZWQuZGl2YFxuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgyMDB9O1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206ICR7ZWRpdG9yU3R5bGVWYXJzLnN0aWNreURpc3RhbmNlQm90dG9tfTtcbmA7XG4iXX0= */"));
package/dist/esm/types.js CHANGED
@@ -1,8 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SLATE_DEFAULT_BLOCK_TYPE = exports.SLATE_BLOCK_PARENT_TYPES = void 0;
7
- const SLATE_DEFAULT_BLOCK_TYPE = exports.SLATE_DEFAULT_BLOCK_TYPE = 'paragraph';
8
- const SLATE_BLOCK_PARENT_TYPES = exports.SLATE_BLOCK_PARENT_TYPES = ['list-item', 'quote'];
1
+ export const SLATE_DEFAULT_BLOCK_TYPE = 'paragraph';
2
+ export const SLATE_BLOCK_PARENT_TYPES = ['list-item', 'quote'];
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.2.0",
4
+ "version": "3.3.0",
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": "022dbe523d07bb8bc74970460cc82b259fde4041"
63
+ "gitHead": "e2165450e5963b2a8d76d4cf331319bf91f05d45"
64
64
  }
@@ -43,8 +43,9 @@ function RawEditor(props) {
43
43
  useEffect(() => {
44
44
  if (props.pendingFocus) {
45
45
  ReactEditor.focus(editor);
46
+ props.pendingFocus();
46
47
  }
47
- }, []);
48
+ }, [props.pendingFocus]);
48
49
 
49
50
  function handleToggleMode() {
50
51
  props.onMode('rich_text');
@@ -135,8 +135,9 @@ function Editor(props) {
135
135
  useEffect(() => {
136
136
  if (props.pendingFocus) {
137
137
  ReactEditor.focus(editor);
138
+ props.pendingFocus();
138
139
  }
139
- }, []);
140
+ }, [props.pendingFocus]);
140
141
 
141
142
  function handleMarkClick(format) {
142
143
  ReactEditor.focus(editor);
@@ -67,6 +67,10 @@ export default class MarkdownControl extends React.Component {
67
67
 
68
68
  getAllowedModes = () => this.props.field.get('modes', List(['rich_text', 'raw'])).toArray();
69
69
 
70
+ focus() {
71
+ this.setState({ pendingFocus: true });
72
+ }
73
+
70
74
  render() {
71
75
  const {
72
76
  onChange,
@@ -30,6 +30,11 @@ const TEXT_TAGS = {
30
30
  U: () => ({ underline: true }),
31
31
  };
32
32
 
33
+ const INLINE_STYLES = {
34
+ 'font-style': value => (value === 'italic' ? { italic: true } : {}),
35
+ 'font-weight': value => (value === 'bold' || parseInt(value, 10) >= 600 ? { bold: true } : {}),
36
+ };
37
+
33
38
  function deserialize(el) {
34
39
  if (el.nodeType === 3) {
35
40
  return el.textContent;
@@ -65,6 +70,20 @@ function deserialize(el) {
65
70
  return children.map(child => jsx('text', attrs, child));
66
71
  }
67
72
 
73
+ // Convert inline CSS on span elements generated by Google Docs
74
+ if (nodeName === 'SPAN') {
75
+ const attrs = {};
76
+ for (let i = 0; i < el.style.length; i++) {
77
+ const propertyName = el.style[i];
78
+ if (INLINE_STYLES[propertyName]) {
79
+ const propertyValue = el.style.getPropertyValue(propertyName);
80
+ const propertyStyle = INLINE_STYLES[propertyName](propertyValue);
81
+ Object.assign(attrs, propertyStyle);
82
+ }
83
+ }
84
+ return children.map(child => jsx('text', attrs, child));
85
+ }
86
+
68
87
  return children;
69
88
  }
70
89