@wordpress/block-editor 8.5.0 → 8.6.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 (274) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-alignment-control/ui.js +1 -1
  3. package/build/components/block-alignment-control/ui.js.map +1 -1
  4. package/build/components/block-content-overlay/index.js +13 -4
  5. package/build/components/block-content-overlay/index.js.map +1 -1
  6. package/build/components/block-list/block.native.js +3 -1
  7. package/build/components/block-list/block.native.js.map +1 -1
  8. package/build/components/block-lock/index.js +8 -0
  9. package/build/components/block-lock/index.js.map +1 -1
  10. package/build/components/block-lock/menu-item.js +5 -20
  11. package/build/components/block-lock/menu-item.js.map +1 -1
  12. package/build/components/block-lock/modal.js +33 -12
  13. package/build/components/block-lock/modal.js.map +1 -1
  14. package/build/components/block-lock/toolbar.js +7 -20
  15. package/build/components/block-lock/toolbar.js.map +1 -1
  16. package/build/components/block-lock/use-block-lock.js +50 -0
  17. package/build/components/block-lock/use-block-lock.js.map +1 -0
  18. package/build/components/block-mover/button.js +4 -4
  19. package/build/components/block-mover/button.js.map +1 -1
  20. package/build/components/block-mover/index.js +39 -65
  21. package/build/components/block-mover/index.js.map +1 -1
  22. package/build/components/block-pattern-setup/index.js +37 -22
  23. package/build/components/block-pattern-setup/index.js.map +1 -1
  24. package/build/components/block-pattern-setup/setup-toolbar.js +1 -1
  25. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  26. package/build/components/block-popover/inbetween.js +183 -0
  27. package/build/components/block-popover/inbetween.js.map +1 -0
  28. package/build/components/block-popover/index.js +82 -0
  29. package/build/components/block-popover/index.js.map +1 -0
  30. package/build/components/{block-tools → block-popover}/use-popover-scroll.js +4 -1
  31. package/build/components/block-popover/use-popover-scroll.js.map +1 -0
  32. package/build/components/block-preview/auto.js +6 -3
  33. package/build/components/block-preview/auto.js.map +1 -1
  34. package/build/components/block-preview/index.js +4 -2
  35. package/build/components/block-preview/index.js.map +1 -1
  36. package/build/components/block-styles/index.js +1 -10
  37. package/build/components/block-styles/index.js.map +1 -1
  38. package/build/components/block-switcher/index.js +7 -2
  39. package/build/components/block-switcher/index.js.map +1 -1
  40. package/build/components/block-tools/back-compat.js +2 -2
  41. package/build/components/block-tools/back-compat.js.map +1 -1
  42. package/build/components/block-tools/block-selection-button.js +4 -2
  43. package/build/components/block-tools/block-selection-button.js.map +1 -1
  44. package/build/components/block-tools/index.js +5 -5
  45. package/build/components/block-tools/index.js.map +1 -1
  46. package/build/components/block-tools/insertion-point.js +14 -121
  47. package/build/components/block-tools/insertion-point.js.map +1 -1
  48. package/build/components/block-tools/{block-popover.js → selected-block-popover.js} +25 -108
  49. package/build/components/block-tools/selected-block-popover.js.map +1 -0
  50. package/build/components/copy-handler/index.js +44 -9
  51. package/build/components/copy-handler/index.js.map +1 -1
  52. package/build/components/duotone-control/index.js +5 -1
  53. package/build/components/duotone-control/index.js.map +1 -1
  54. package/build/components/inserter/index.native.js +30 -8
  55. package/build/components/inserter/index.native.js.map +1 -1
  56. package/build/components/link-control/index.js +6 -7
  57. package/build/components/link-control/index.js.map +1 -1
  58. package/build/components/list-view/block-select-button.js +4 -10
  59. package/build/components/list-view/block-select-button.js.map +1 -1
  60. package/build/components/list-view/block.js +13 -2
  61. package/build/components/list-view/block.js.map +1 -1
  62. package/build/components/rich-text/index.js +0 -5
  63. package/build/components/rich-text/index.js.map +1 -1
  64. package/build/components/rich-text/index.native.js +0 -4
  65. package/build/components/rich-text/index.native.js.map +1 -1
  66. package/build/components/use-block-display-information/index.js +3 -1
  67. package/build/components/use-block-display-information/index.js.map +1 -1
  68. package/build/hooks/border.js +468 -44
  69. package/build/hooks/border.js.map +1 -1
  70. package/build/hooks/duotone.js +66 -16
  71. package/build/hooks/duotone.js.map +1 -1
  72. package/build/hooks/index.js +8 -2
  73. package/build/hooks/index.js.map +1 -1
  74. package/build/hooks/use-border-props.js +22 -32
  75. package/build/hooks/use-border-props.js.map +1 -1
  76. package/build/index.js +7 -0
  77. package/build/index.js.map +1 -1
  78. package/build/store/actions.js +36 -31
  79. package/build/store/actions.js.map +1 -1
  80. package/build/store/reducer.js +0 -26
  81. package/build/store/reducer.js.map +1 -1
  82. package/build/store/selectors.js +131 -6
  83. package/build/store/selectors.js.map +1 -1
  84. package/build/store/utils.js +27 -0
  85. package/build/store/utils.js.map +1 -0
  86. package/build-module/components/block-alignment-control/ui.js +2 -2
  87. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  88. package/build-module/components/block-content-overlay/index.js +13 -4
  89. package/build-module/components/block-content-overlay/index.js.map +1 -1
  90. package/build-module/components/block-list/block.native.js +3 -1
  91. package/build-module/components/block-list/block.native.js.map +1 -1
  92. package/build-module/components/block-lock/index.js +1 -0
  93. package/build-module/components/block-lock/index.js.map +1 -1
  94. package/build-module/components/block-lock/menu-item.js +4 -18
  95. package/build-module/components/block-lock/menu-item.js.map +1 -1
  96. package/build-module/components/block-lock/modal.js +31 -12
  97. package/build-module/components/block-lock/modal.js.map +1 -1
  98. package/build-module/components/block-lock/toolbar.js +6 -18
  99. package/build-module/components/block-lock/toolbar.js.map +1 -1
  100. package/build-module/components/block-lock/use-block-lock.js +41 -0
  101. package/build-module/components/block-lock/use-block-lock.js.map +1 -0
  102. package/build-module/components/block-mover/button.js +5 -5
  103. package/build-module/components/block-mover/button.js.map +1 -1
  104. package/build-module/components/block-mover/index.js +38 -63
  105. package/build-module/components/block-mover/index.js.map +1 -1
  106. package/build-module/components/block-pattern-setup/index.js +39 -24
  107. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  108. package/build-module/components/block-pattern-setup/setup-toolbar.js +1 -1
  109. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  110. package/build-module/components/block-popover/inbetween.js +165 -0
  111. package/build-module/components/block-popover/inbetween.js.map +1 -0
  112. package/build-module/components/block-popover/index.js +67 -0
  113. package/build-module/components/block-popover/index.js.map +1 -0
  114. package/build-module/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
  115. package/build-module/components/block-popover/use-popover-scroll.js.map +1 -0
  116. package/build-module/components/block-preview/auto.js +6 -3
  117. package/build-module/components/block-preview/auto.js.map +1 -1
  118. package/build-module/components/block-preview/index.js +4 -2
  119. package/build-module/components/block-preview/index.js.map +1 -1
  120. package/build-module/components/block-styles/index.js +1 -9
  121. package/build-module/components/block-styles/index.js.map +1 -1
  122. package/build-module/components/block-switcher/index.js +7 -2
  123. package/build-module/components/block-switcher/index.js.map +1 -1
  124. package/build-module/components/block-tools/back-compat.js +1 -1
  125. package/build-module/components/block-tools/back-compat.js.map +1 -1
  126. package/build-module/components/block-tools/block-selection-button.js +3 -2
  127. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  128. package/build-module/components/block-tools/index.js +3 -3
  129. package/build-module/components/block-tools/index.js.map +1 -1
  130. package/build-module/components/block-tools/insertion-point.js +16 -121
  131. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  132. package/build-module/components/block-tools/{block-popover.js → selected-block-popover.js} +25 -105
  133. package/build-module/components/block-tools/selected-block-popover.js.map +1 -0
  134. package/build-module/components/copy-handler/index.js +44 -9
  135. package/build-module/components/copy-handler/index.js.map +1 -1
  136. package/build-module/components/duotone-control/index.js +4 -1
  137. package/build-module/components/duotone-control/index.js.map +1 -1
  138. package/build-module/components/inserter/index.native.js +31 -10
  139. package/build-module/components/inserter/index.native.js.map +1 -1
  140. package/build-module/components/link-control/index.js +6 -7
  141. package/build-module/components/link-control/index.js.map +1 -1
  142. package/build-module/components/list-view/block-select-button.js +4 -9
  143. package/build-module/components/list-view/block-select-button.js.map +1 -1
  144. package/build-module/components/list-view/block.js +13 -2
  145. package/build-module/components/list-view/block.js.map +1 -1
  146. package/build-module/components/rich-text/index.js +0 -4
  147. package/build-module/components/rich-text/index.js.map +1 -1
  148. package/build-module/components/rich-text/index.native.js +0 -4
  149. package/build-module/components/rich-text/index.native.js.map +1 -1
  150. package/build-module/components/use-block-display-information/index.js +3 -1
  151. package/build-module/components/use-block-display-information/index.js.map +1 -1
  152. package/build-module/hooks/border.js +458 -44
  153. package/build-module/hooks/border.js.map +1 -1
  154. package/build-module/hooks/duotone.js +63 -16
  155. package/build-module/hooks/duotone.js.map +1 -1
  156. package/build-module/hooks/index.js +2 -1
  157. package/build-module/hooks/index.js.map +1 -1
  158. package/build-module/hooks/use-border-props.js +21 -30
  159. package/build-module/hooks/use-border-props.js.map +1 -1
  160. package/build-module/index.js +1 -1
  161. package/build-module/index.js.map +1 -1
  162. package/build-module/store/actions.js +19 -16
  163. package/build-module/store/actions.js.map +1 -1
  164. package/build-module/store/reducer.js +0 -24
  165. package/build-module/store/reducer.js.map +1 -1
  166. package/build-module/store/selectors.js +120 -5
  167. package/build-module/store/selectors.js.map +1 -1
  168. package/build-module/store/utils.js +20 -0
  169. package/build-module/store/utils.js.map +1 -0
  170. package/build-style/style-rtl.css +145 -272
  171. package/build-style/style.css +145 -272
  172. package/package.json +28 -28
  173. package/src/components/block-alignment-control/ui.js +2 -2
  174. package/src/components/block-content-overlay/index.js +19 -2
  175. package/src/components/block-list/block.native.js +2 -0
  176. package/src/components/block-lock/index.js +1 -0
  177. package/src/components/block-lock/menu-item.js +3 -23
  178. package/src/components/block-lock/modal.js +37 -13
  179. package/src/components/block-lock/style.scss +1 -2
  180. package/src/components/block-lock/toolbar.js +4 -21
  181. package/src/components/block-lock/use-block-lock.js +45 -0
  182. package/src/components/block-mover/button.js +5 -7
  183. package/src/components/block-mover/index.js +37 -60
  184. package/src/components/block-mover/stories/index.js +110 -0
  185. package/src/components/block-mover/style.scss +48 -138
  186. package/src/components/block-pattern-setup/index.js +84 -59
  187. package/src/components/block-pattern-setup/setup-toolbar.js +3 -1
  188. package/src/components/block-pattern-setup/style.scss +32 -26
  189. package/src/components/block-popover/README.md +41 -0
  190. package/src/components/block-popover/inbetween.js +180 -0
  191. package/src/components/block-popover/index.js +73 -0
  192. package/src/components/block-popover/style.scss +24 -0
  193. package/src/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
  194. package/src/components/block-preview/auto.js +10 -1
  195. package/src/components/block-preview/index.js +2 -0
  196. package/src/components/block-styles/index.js +1 -12
  197. package/src/components/block-switcher/index.js +13 -1
  198. package/src/components/block-switcher/style.scss +4 -4
  199. package/src/components/block-switcher/test/__snapshots__/index.js.snap +15 -13
  200. package/src/components/block-toolbar/style.scss +0 -12
  201. package/src/components/block-tools/back-compat.js +1 -1
  202. package/src/components/block-tools/block-selection-button.js +3 -1
  203. package/src/components/block-tools/index.js +6 -4
  204. package/src/components/block-tools/insertion-point.js +19 -152
  205. package/src/components/block-tools/{block-popover.js → selected-block-popover.js} +24 -116
  206. package/src/components/block-tools/style.scss +11 -123
  207. package/src/components/border-radius-control/style.scss +5 -2
  208. package/src/components/copy-handler/index.js +52 -10
  209. package/src/components/default-block-appender/style.scss +1 -2
  210. package/src/components/duotone-control/index.js +8 -1
  211. package/src/components/gradients/README.md +29 -0
  212. package/src/components/inserter/index.native.js +60 -25
  213. package/src/components/inserter/style.native.scss +24 -3
  214. package/src/components/link-control/index.js +5 -5
  215. package/src/components/list-view/block-select-button.js +2 -10
  216. package/src/components/list-view/block.js +16 -7
  217. package/src/components/navigable-toolbar/README.md +16 -0
  218. package/src/components/rich-text/index.js +0 -2
  219. package/src/components/rich-text/index.native.js +0 -4
  220. package/src/components/use-block-display-information/index.js +2 -0
  221. package/src/hooks/border.js +438 -72
  222. package/src/hooks/border.scss +48 -0
  223. package/src/hooks/duotone.js +98 -62
  224. package/src/hooks/index.js +2 -1
  225. package/src/hooks/use-border-props.js +15 -32
  226. package/src/index.js +1 -0
  227. package/src/store/actions.js +19 -15
  228. package/src/store/reducer.js +0 -21
  229. package/src/store/selectors.js +160 -5
  230. package/src/store/test/actions.js +0 -18
  231. package/src/store/test/reducer.js +0 -19
  232. package/src/store/test/selectors.js +0 -19
  233. package/src/store/utils.js +19 -0
  234. package/src/style.scss +1 -1
  235. package/build/components/block-mobile-toolbar/index.js +0 -42
  236. package/build/components/block-mobile-toolbar/index.js.map +0 -1
  237. package/build/components/block-tools/block-popover.js.map +0 -1
  238. package/build/components/block-tools/use-popover-scroll.js.map +0 -1
  239. package/build/components/list-view/appender.js +0 -93
  240. package/build/components/list-view/appender.js.map +0 -1
  241. package/build/components/list-view/list-item.js +0 -62
  242. package/build/components/list-view/list-item.js.map +0 -1
  243. package/build/components/rich-text/use-caret-in-format.js +0 -43
  244. package/build/components/rich-text/use-caret-in-format.js.map +0 -1
  245. package/build/hooks/border-color.js +0 -302
  246. package/build/hooks/border-color.js.map +0 -1
  247. package/build/hooks/border-style.js +0 -96
  248. package/build/hooks/border-style.js.map +0 -1
  249. package/build/hooks/border-width.js +0 -162
  250. package/build/hooks/border-width.js.map +0 -1
  251. package/build-module/components/block-mobile-toolbar/index.js +0 -31
  252. package/build-module/components/block-mobile-toolbar/index.js.map +0 -1
  253. package/build-module/components/block-tools/block-popover.js.map +0 -1
  254. package/build-module/components/block-tools/use-popover-scroll.js.map +0 -1
  255. package/build-module/components/list-view/appender.js +0 -76
  256. package/build-module/components/list-view/appender.js.map +0 -1
  257. package/build-module/components/list-view/list-item.js +0 -47
  258. package/build-module/components/list-view/list-item.js.map +0 -1
  259. package/build-module/components/rich-text/use-caret-in-format.js +0 -33
  260. package/build-module/components/rich-text/use-caret-in-format.js.map +0 -1
  261. package/build-module/hooks/border-color.js +0 -276
  262. package/build-module/hooks/border-color.js.map +0 -1
  263. package/build-module/hooks/border-style.js +0 -78
  264. package/build-module/hooks/border-style.js.map +0 -1
  265. package/build-module/hooks/border-width.js +0 -143
  266. package/build-module/hooks/border-width.js.map +0 -1
  267. package/src/components/block-mobile-toolbar/index.js +0 -24
  268. package/src/components/block-mobile-toolbar/style.scss +0 -29
  269. package/src/components/list-view/appender.js +0 -82
  270. package/src/components/list-view/list-item.js +0 -59
  271. package/src/components/rich-text/use-caret-in-format.js +0 -28
  272. package/src/hooks/border-color.js +0 -315
  273. package/src/hooks/border-style.js +0 -64
  274. package/src/hooks/border-width.js +0 -139
@@ -7,11 +7,13 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.__experimentalGetGlobalBlocksByName = exports.__experimentalGetDirectInsertBlock = exports.__experimentalGetBlockListSettingsForBlocks = exports.__experimentalGetAllowedPatterns = exports.__experimentalGetAllowedBlocks = exports.__experimentalGetActiveBlockIdByBlockNames = void 0;
9
9
  exports.__experimentalGetLastBlockAttributeChanges = __experimentalGetLastBlockAttributeChanges;
10
- exports.__unstableGetClientIdsTree = exports.__unstableGetClientIdWithClientIdsTree = exports.__unstableGetBlockWithoutInnerBlocks = exports.__experimentalGetReusableBlockTitle = exports.__experimentalGetPatternsByBlockTypes = exports.__experimentalGetPatternTransformItems = exports.__experimentalGetParsedPattern = void 0;
10
+ exports.__unstableGetSelectedBlocksWithPartialSelection = exports.__unstableGetClientIdsTree = exports.__unstableGetClientIdWithClientIdsTree = exports.__unstableGetBlockWithoutInnerBlocks = exports.__experimentalGetReusableBlockTitle = exports.__experimentalGetPatternsByBlockTypes = exports.__experimentalGetPatternTransformItems = exports.__experimentalGetParsedPattern = void 0;
11
11
  exports.__unstableIsFullySelected = __unstableIsFullySelected;
12
12
  exports.__unstableIsLastBlockChangeIgnored = __unstableIsLastBlockChangeIgnored;
13
+ exports.__unstableIsSelectionCollapsed = __unstableIsSelectionCollapsed;
13
14
  exports.__unstableIsSelectionMergeable = __unstableIsSelectionMergeable;
14
15
  exports.areInnerBlocksControlled = areInnerBlocksControlled;
16
+ exports.canEditBlock = canEditBlock;
15
17
  exports.canInsertBlockType = void 0;
16
18
  exports.canInsertBlocks = canInsertBlocks;
17
19
  exports.canLockBlockType = canLockBlockType;
@@ -98,6 +100,12 @@ var _icons = require("@wordpress/icons");
98
100
 
99
101
  var _i18n = require("@wordpress/i18n");
100
102
 
103
+ var _richText = require("@wordpress/rich-text");
104
+
105
+ var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
106
+
107
+ var _utils = require("./utils");
108
+
101
109
  /**
102
110
  * External dependencies
103
111
  */
@@ -106,6 +114,10 @@ var _i18n = require("@wordpress/i18n");
106
114
  * WordPress dependencies
107
115
  */
108
116
 
117
+ /**
118
+ * Internal dependencies
119
+ */
120
+
109
121
  /**
110
122
  * A block selection object.
111
123
  *
@@ -999,6 +1011,20 @@ function __unstableIsFullySelected(state) {
999
1011
  const selectionFocus = getSelectionEnd(state);
1000
1012
  return !selectionAnchor.attributeKey && !selectionFocus.attributeKey && typeof selectionAnchor.offset === 'undefined' && typeof selectionFocus.offset === 'undefined';
1001
1013
  }
1014
+ /**
1015
+ * Returns true if the selection is collapsed.
1016
+ *
1017
+ * @param {Object} state Editor state.
1018
+ *
1019
+ * @return {boolean} Whether the selection is collapsed.
1020
+ */
1021
+
1022
+
1023
+ function __unstableIsSelectionCollapsed(state) {
1024
+ const selectionAnchor = getSelectionStart(state);
1025
+ const selectionFocus = getSelectionEnd(state);
1026
+ return !!selectionAnchor && !!selectionFocus && selectionAnchor.clientId === selectionFocus.clientId && selectionAnchor.attributeKey === selectionFocus.attributeKey && selectionAnchor.offset === selectionFocus.offset;
1027
+ }
1002
1028
  /**
1003
1029
  * Check whether the selection is mergeable.
1004
1030
  *
@@ -1051,6 +1077,76 @@ function __unstableIsSelectionMergeable(state, isForward) {
1051
1077
  const blocksToMerge = (0, _blocks.switchToBlockType)(blockToMerge, targetBlock.name);
1052
1078
  return blocksToMerge && blocksToMerge.length;
1053
1079
  }
1080
+ /**
1081
+ * Get partial selected blocks with their content updated
1082
+ * based on the selection.
1083
+ *
1084
+ * @param {Object} state Editor state.
1085
+ *
1086
+ * @return {Object[]} Updated partial selected blocks.
1087
+ */
1088
+
1089
+
1090
+ const __unstableGetSelectedBlocksWithPartialSelection = state => {
1091
+ const selectionAnchor = getSelectionStart(state);
1092
+ const selectionFocus = getSelectionEnd(state);
1093
+
1094
+ if (selectionAnchor.clientId === selectionFocus.clientId) {
1095
+ return EMPTY_ARRAY;
1096
+ } // Can't split if the selection is not set.
1097
+
1098
+
1099
+ if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') {
1100
+ return EMPTY_ARRAY;
1101
+ }
1102
+
1103
+ const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId);
1104
+ const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); // It's not splittable if the selection doesn't start and end in the same
1105
+ // block list. Maybe in the future it should be allowed.
1106
+
1107
+ if (anchorRootClientId !== focusRootClientId) {
1108
+ return EMPTY_ARRAY;
1109
+ }
1110
+
1111
+ const blockOrder = getBlockOrder(state, anchorRootClientId);
1112
+ const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId);
1113
+ const focusIndex = blockOrder.indexOf(selectionFocus.clientId); // Reassign selection start and end based on order.
1114
+
1115
+ const [selectionStart, selectionEnd] = anchorIndex > focusIndex ? [selectionFocus, selectionAnchor] : [selectionAnchor, selectionFocus];
1116
+ const blockA = getBlock(state, selectionStart.clientId);
1117
+ const blockAType = (0, _blocks.getBlockType)(blockA.name);
1118
+ const blockB = getBlock(state, selectionEnd.clientId);
1119
+ const blockBType = (0, _blocks.getBlockType)(blockB.name);
1120
+ const htmlA = blockA.attributes[selectionStart.attributeKey];
1121
+ const htmlB = blockB.attributes[selectionEnd.attributeKey];
1122
+ const attributeDefinitionA = blockAType.attributes[selectionStart.attributeKey];
1123
+ const attributeDefinitionB = blockBType.attributes[selectionEnd.attributeKey];
1124
+ let valueA = (0, _richText.create)({
1125
+ html: htmlA,
1126
+ ...(0, _utils.mapRichTextSettings)(attributeDefinitionA)
1127
+ });
1128
+ let valueB = (0, _richText.create)({
1129
+ html: htmlB,
1130
+ ...(0, _utils.mapRichTextSettings)(attributeDefinitionB)
1131
+ });
1132
+ valueA = (0, _richText.remove)(valueA, 0, selectionStart.offset);
1133
+ valueB = (0, _richText.remove)(valueB, selectionEnd.offset, valueB.text.length);
1134
+ return [{ ...blockA,
1135
+ attributes: { ...blockA.attributes,
1136
+ [selectionStart.attributeKey]: (0, _richText.toHTMLString)({
1137
+ value: valueA,
1138
+ ...(0, _utils.mapRichTextSettings)(attributeDefinitionA)
1139
+ })
1140
+ }
1141
+ }, { ...blockB,
1142
+ attributes: { ...blockB.attributes,
1143
+ [selectionEnd.attributeKey]: (0, _richText.toHTMLString)({
1144
+ value: valueB,
1145
+ ...(0, _utils.mapRichTextSettings)(attributeDefinitionB)
1146
+ })
1147
+ }
1148
+ }];
1149
+ };
1054
1150
  /**
1055
1151
  * Returns an array containing all block client IDs in the editor in the order
1056
1152
  * they appear. Optionally accepts a root client ID of the block list for which
@@ -1063,6 +1159,8 @@ function __unstableIsSelectionMergeable(state, isForward) {
1063
1159
  */
1064
1160
 
1065
1161
 
1162
+ exports.__unstableGetSelectedBlocksWithPartialSelection = __unstableGetSelectedBlocksWithPartialSelection;
1163
+
1066
1164
  function getBlockOrder(state, rootClientId) {
1067
1165
  return state.blocks.order[rootClientId || ''] || EMPTY_ARRAY;
1068
1166
  }
@@ -1278,14 +1376,18 @@ function isAncestorBeingDragged(state, clientId) {
1278
1376
  /**
1279
1377
  * Returns true if the caret is within formatted text, or false otherwise.
1280
1378
  *
1281
- * @param {Object} state Global application state.
1379
+ * @deprecated
1282
1380
  *
1283
1381
  * @return {boolean} Whether the caret is within formatted text.
1284
1382
  */
1285
1383
 
1286
1384
 
1287
- function isCaretWithinFormattedText(state) {
1288
- return state.isCaretWithinFormattedText;
1385
+ function isCaretWithinFormattedText() {
1386
+ (0, _deprecated.default)('wp.data.select( "core/block-editor" ).isCaretWithinFormattedText', {
1387
+ since: '6.1',
1388
+ version: '6.3'
1389
+ });
1390
+ return false;
1289
1391
  }
1290
1392
  /**
1291
1393
  * Returns the insertion point, the index at which the new inserted block would
@@ -1549,7 +1651,7 @@ function canRemoveBlock(state, clientId) {
1549
1651
  const {
1550
1652
  lock
1551
1653
  } = attributes;
1552
- const parentIsLocked = !!getTemplateLock(state, rootClientId); // If we don't have a lock on the blockType level, we differ to the parent templateLock.
1654
+ const parentIsLocked = !!getTemplateLock(state, rootClientId); // If we don't have a lock on the blockType level, we defer to the parent templateLock.
1553
1655
 
1554
1656
  if (lock === undefined || (lock === null || lock === void 0 ? void 0 : lock.remove) === undefined) {
1555
1657
  return !parentIsLocked;
@@ -1595,7 +1697,7 @@ function canMoveBlock(state, clientId) {
1595
1697
  const {
1596
1698
  lock
1597
1699
  } = attributes;
1598
- const parentIsLocked = getTemplateLock(state, rootClientId) === 'all'; // If we don't have a lock on the blockType level, we differ to the parent templateLock.
1700
+ const parentIsLocked = getTemplateLock(state, rootClientId) === 'all'; // If we don't have a lock on the blockType level, we defer to the parent templateLock.
1599
1701
 
1600
1702
  if (lock === undefined || (lock === null || lock === void 0 ? void 0 : lock.move) === undefined) {
1601
1703
  return !parentIsLocked;
@@ -1619,6 +1721,29 @@ function canMoveBlocks(state, clientIds) {
1619
1721
  let rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1620
1722
  return clientIds.every(clientId => canMoveBlock(state, clientId, rootClientId));
1621
1723
  }
1724
+ /**
1725
+ * Determines if the given block is allowed to be edited.
1726
+ *
1727
+ * @param {Object} state Editor state.
1728
+ * @param {string} clientId The block client Id.
1729
+ *
1730
+ * @return {boolean} Whether the given block is allowed to be edited.
1731
+ */
1732
+
1733
+
1734
+ function canEditBlock(state, clientId) {
1735
+ const attributes = getBlockAttributes(state, clientId);
1736
+
1737
+ if (attributes === null) {
1738
+ return true;
1739
+ }
1740
+
1741
+ const {
1742
+ lock
1743
+ } = attributes; // When the edit is true, we cannot edit the block.
1744
+
1745
+ return !(lock !== null && lock !== void 0 && lock.edit);
1746
+ }
1622
1747
  /**
1623
1748
  * Determines if the given block type can be locked/unlocked by a user.
1624
1749
  *