@wordpress/block-editor 14.8.0 → 14.8.1-next.cd6172eb0.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 (249) hide show
  1. package/build/autocompleters/block.js +2 -4
  2. package/build/autocompleters/block.js.map +1 -1
  3. package/build/autocompleters/link.js +2 -4
  4. package/build/autocompleters/link.js.map +1 -1
  5. package/build/components/block-canvas/index.js +3 -6
  6. package/build/components/block-canvas/index.js.map +1 -1
  7. package/build/components/block-list/block.js +6 -5
  8. package/build/components/block-list/block.js.map +1 -1
  9. package/build/components/block-list/index.js +0 -1
  10. package/build/components/block-list/index.js.map +1 -1
  11. package/build/components/block-list/use-block-props/index.js +7 -2
  12. package/build/components/block-list/use-block-props/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +34 -0
  14. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -0
  15. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +98 -5
  16. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  17. package/build/components/block-patterns-list/index.js +13 -4
  18. package/build/components/block-patterns-list/index.js.map +1 -1
  19. package/build/components/block-popover/inbetween.js +4 -0
  20. package/build/components/block-popover/inbetween.js.map +1 -1
  21. package/build/components/block-settings-menu/block-settings-dropdown.js +7 -4
  22. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  23. package/build/components/block-settings-menu-controls/index.js +1 -1
  24. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  25. package/build/components/block-switcher/index.js +12 -22
  26. package/build/components/block-switcher/index.js.map +1 -1
  27. package/build/components/block-switcher/use-transformed-patterns.js +0 -1
  28. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  29. package/build/components/block-switcher/utils.js +0 -1
  30. package/build/components/block-switcher/utils.js.map +1 -1
  31. package/build/components/block-toolbar/index.js +7 -6
  32. package/build/components/block-toolbar/index.js.map +1 -1
  33. package/build/components/block-variation-transforms/index.js +0 -1
  34. package/build/components/block-variation-transforms/index.js.map +1 -1
  35. package/build/components/date-format-picker/index.js +0 -1
  36. package/build/components/date-format-picker/index.js.map +1 -1
  37. package/build/components/font-appearance-control/index.js +1 -0
  38. package/build/components/font-appearance-control/index.js.map +1 -1
  39. package/build/components/font-family/index.js +10 -0
  40. package/build/components/font-family/index.js.map +1 -1
  41. package/build/components/global-styles/dimensions-panel.js +17 -16
  42. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  43. package/build/components/global-styles/get-global-styles-changes.js +0 -1
  44. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  45. package/build/components/iframe/use-scale-canvas.js +68 -47
  46. package/build/components/iframe/use-scale-canvas.js.map +1 -1
  47. package/build/components/inserter/block-patterns-tab/index.js +0 -10
  48. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  49. package/build/components/inserter/menu.js +2 -1
  50. package/build/components/inserter/menu.js.map +1 -1
  51. package/build/components/inserter-draggable-blocks/index.js +19 -10
  52. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  53. package/build/components/letter-spacing-control/index.js +10 -0
  54. package/build/components/letter-spacing-control/index.js.map +1 -1
  55. package/build/components/line-height-control/index.js +1 -0
  56. package/build/components/line-height-control/index.js.map +1 -1
  57. package/build/components/media-placeholder/index.js +18 -18
  58. package/build/components/media-placeholder/index.js.map +1 -1
  59. package/build/components/observe-typing/index.js +0 -1
  60. package/build/components/observe-typing/index.js.map +1 -1
  61. package/build/components/recursion-provider/index.js +0 -1
  62. package/build/components/recursion-provider/index.js.map +1 -1
  63. package/build/components/rich-text/index.js +5 -1
  64. package/build/components/rich-text/index.js.map +1 -1
  65. package/build/components/rich-text/native/use-format-types.js +0 -1
  66. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  67. package/build/components/rich-text/use-format-types.js +0 -1
  68. package/build/components/rich-text/use-format-types.js.map +1 -1
  69. package/build/components/spacing-sizes-control/utils.js +0 -1
  70. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  71. package/build/components/typewriter/index.js +0 -1
  72. package/build/components/typewriter/index.js.map +1 -1
  73. package/build/components/use-block-drop-zone/index.js +11 -2
  74. package/build/components/use-block-drop-zone/index.js.map +1 -1
  75. package/build/components/use-moving-animation/index.js +15 -2
  76. package/build/components/use-moving-animation/index.js.map +1 -1
  77. package/build/components/use-resize-canvas/index.js +1 -1
  78. package/build/components/use-resize-canvas/index.js.map +1 -1
  79. package/build/components/writing-flow/use-drag-selection.js +11 -0
  80. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  81. package/build/components/writing-flow/use-tab-nav.js +6 -2
  82. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  83. package/build/hooks/block-bindings.js +4 -3
  84. package/build/hooks/block-bindings.js.map +1 -1
  85. package/build/hooks/gap.js +1 -1
  86. package/build/hooks/gap.js.map +1 -1
  87. package/build/hooks/generated-class-name.js +0 -1
  88. package/build/hooks/generated-class-name.js.map +1 -1
  89. package/build/store/private-selectors.js +1 -7
  90. package/build/store/private-selectors.js.map +1 -1
  91. package/build/store/reducer.js +478 -2
  92. package/build/store/reducer.js.map +1 -1
  93. package/build/store/selectors.js +12 -55
  94. package/build/store/selectors.js.map +1 -1
  95. package/build/utils/object.js +0 -1
  96. package/build/utils/object.js.map +1 -1
  97. package/build-module/autocompleters/block.js +2 -4
  98. package/build-module/autocompleters/block.js.map +1 -1
  99. package/build-module/autocompleters/link.js +2 -4
  100. package/build-module/autocompleters/link.js.map +1 -1
  101. package/build-module/components/block-canvas/index.js +3 -6
  102. package/build-module/components/block-canvas/index.js.map +1 -1
  103. package/build-module/components/block-list/block.js +8 -7
  104. package/build-module/components/block-list/block.js.map +1 -1
  105. package/build-module/components/block-list/index.js +0 -1
  106. package/build-module/components/block-list/index.js.map +1 -1
  107. package/build-module/components/block-list/use-block-props/index.js +7 -2
  108. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  109. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +28 -0
  110. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -0
  111. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +97 -5
  112. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  113. package/build-module/components/block-patterns-list/index.js +13 -4
  114. package/build-module/components/block-patterns-list/index.js.map +1 -1
  115. package/build-module/components/block-popover/inbetween.js +4 -0
  116. package/build-module/components/block-popover/inbetween.js.map +1 -1
  117. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -4
  118. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  119. package/build-module/components/block-settings-menu-controls/index.js +1 -1
  120. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  121. package/build-module/components/block-switcher/index.js +13 -23
  122. package/build-module/components/block-switcher/index.js.map +1 -1
  123. package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
  124. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  125. package/build-module/components/block-switcher/utils.js +0 -1
  126. package/build-module/components/block-switcher/utils.js.map +1 -1
  127. package/build-module/components/block-toolbar/index.js +7 -6
  128. package/build-module/components/block-toolbar/index.js.map +1 -1
  129. package/build-module/components/block-variation-transforms/index.js +0 -1
  130. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  131. package/build-module/components/date-format-picker/index.js +0 -1
  132. package/build-module/components/date-format-picker/index.js.map +1 -1
  133. package/build-module/components/font-appearance-control/index.js +1 -0
  134. package/build-module/components/font-appearance-control/index.js.map +1 -1
  135. package/build-module/components/font-family/index.js +10 -0
  136. package/build-module/components/font-family/index.js.map +1 -1
  137. package/build-module/components/global-styles/dimensions-panel.js +17 -16
  138. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  139. package/build-module/components/global-styles/get-global-styles-changes.js +0 -1
  140. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  141. package/build-module/components/iframe/use-scale-canvas.js +68 -47
  142. package/build-module/components/iframe/use-scale-canvas.js.map +1 -1
  143. package/build-module/components/inserter/block-patterns-tab/index.js +1 -11
  144. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  145. package/build-module/components/inserter/menu.js +2 -1
  146. package/build-module/components/inserter/menu.js.map +1 -1
  147. package/build-module/components/inserter-draggable-blocks/index.js +20 -11
  148. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  149. package/build-module/components/letter-spacing-control/index.js +9 -0
  150. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  151. package/build-module/components/line-height-control/index.js +1 -0
  152. package/build-module/components/line-height-control/index.js.map +1 -1
  153. package/build-module/components/media-placeholder/index.js +18 -18
  154. package/build-module/components/media-placeholder/index.js.map +1 -1
  155. package/build-module/components/observe-typing/index.js +0 -1
  156. package/build-module/components/observe-typing/index.js.map +1 -1
  157. package/build-module/components/recursion-provider/index.js +0 -1
  158. package/build-module/components/recursion-provider/index.js.map +1 -1
  159. package/build-module/components/rich-text/index.js +5 -1
  160. package/build-module/components/rich-text/index.js.map +1 -1
  161. package/build-module/components/rich-text/native/use-format-types.js +0 -1
  162. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  163. package/build-module/components/rich-text/use-format-types.js +0 -1
  164. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  165. package/build-module/components/spacing-sizes-control/utils.js +0 -1
  166. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  167. package/build-module/components/typewriter/index.js +0 -1
  168. package/build-module/components/typewriter/index.js.map +1 -1
  169. package/build-module/components/use-block-drop-zone/index.js +11 -2
  170. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  171. package/build-module/components/use-moving-animation/index.js +15 -2
  172. package/build-module/components/use-moving-animation/index.js.map +1 -1
  173. package/build-module/components/use-resize-canvas/index.js +1 -1
  174. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  175. package/build-module/components/writing-flow/use-drag-selection.js +11 -0
  176. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  177. package/build-module/components/writing-flow/use-tab-nav.js +6 -2
  178. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  179. package/build-module/hooks/block-bindings.js +4 -3
  180. package/build-module/hooks/block-bindings.js.map +1 -1
  181. package/build-module/hooks/gap.js +1 -1
  182. package/build-module/hooks/gap.js.map +1 -1
  183. package/build-module/hooks/generated-class-name.js +0 -1
  184. package/build-module/hooks/generated-class-name.js.map +1 -1
  185. package/build-module/store/private-selectors.js +1 -6
  186. package/build-module/store/private-selectors.js.map +1 -1
  187. package/build-module/store/reducer.js +479 -3
  188. package/build-module/store/reducer.js.map +1 -1
  189. package/build-module/store/selectors.js +12 -55
  190. package/build-module/store/selectors.js.map +1 -1
  191. package/build-module/utils/object.js +0 -1
  192. package/build-module/utils/object.js.map +1 -1
  193. package/build-style/content-rtl.css +17 -4
  194. package/build-style/content.css +17 -4
  195. package/build-style/style-rtl.css +21 -16
  196. package/build-style/style.css +21 -16
  197. package/package.json +32 -32
  198. package/src/autocompleters/block.js +2 -4
  199. package/src/autocompleters/link.js +2 -4
  200. package/src/components/alignment-control/stories/aliginment-toolbar.story.js +47 -0
  201. package/src/components/alignment-control/stories/index.story.js +51 -0
  202. package/src/components/alignment-control/test/__snapshots__/index.js.snap +5 -5
  203. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +4 -4
  204. package/src/components/block-canvas/index.js +3 -5
  205. package/src/components/block-draggable/content.scss +11 -5
  206. package/src/components/block-list/block.js +7 -13
  207. package/src/components/block-list/content.scss +6 -0
  208. package/src/components/block-list/use-block-props/index.js +7 -0
  209. package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +25 -0
  210. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +112 -8
  211. package/src/components/block-patterns-list/index.js +12 -1
  212. package/src/components/block-patterns-list/style.scss +16 -5
  213. package/src/components/block-popover/inbetween.js +4 -0
  214. package/src/components/block-settings-menu/block-settings-dropdown.js +6 -1
  215. package/src/components/block-settings-menu-controls/index.js +2 -1
  216. package/src/components/block-switcher/index.js +19 -21
  217. package/src/components/block-switcher/style.scss +0 -9
  218. package/src/components/block-title/test/index.js +2 -0
  219. package/src/components/block-toolbar/index.js +8 -6
  220. package/src/components/block-tools/style.scss +5 -0
  221. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
  222. package/src/components/font-appearance-control/index.js +1 -0
  223. package/src/components/font-family/index.js +10 -0
  224. package/src/components/font-family/style.scss +5 -0
  225. package/src/components/global-styles/dimensions-panel.js +16 -16
  226. package/src/components/iframe/content.scss +6 -1
  227. package/src/components/iframe/use-scale-canvas.js +103 -81
  228. package/src/components/inserter/block-patterns-tab/index.js +1 -17
  229. package/src/components/inserter/menu.js +8 -1
  230. package/src/components/inserter-draggable-blocks/index.js +19 -29
  231. package/src/components/letter-spacing-control/README.md +2 -1
  232. package/src/components/letter-spacing-control/index.js +17 -0
  233. package/src/components/line-height-control/index.js +1 -0
  234. package/src/components/media-placeholder/index.js +25 -28
  235. package/src/components/rich-text/index.js +5 -0
  236. package/src/components/use-block-drop-zone/index.js +18 -1
  237. package/src/components/use-moving-animation/index.js +15 -0
  238. package/src/components/use-resize-canvas/index.js +1 -1
  239. package/src/components/writing-flow/use-drag-selection.js +11 -0
  240. package/src/components/writing-flow/use-tab-nav.js +9 -6
  241. package/src/hooks/block-bindings.js +8 -4
  242. package/src/hooks/gap.js +1 -1
  243. package/src/store/private-selectors.js +2 -17
  244. package/src/store/reducer.js +639 -2
  245. package/src/store/selectors.js +19 -69
  246. package/src/store/test/private-selectors.js +1 -0
  247. package/src/store/test/reducer.js +849 -0
  248. package/src/store/test/selectors.js +4 -110
  249. package/src/style.scss +1 -0
@@ -3000,14 +3000,6 @@ export function __unstableIsWithinBlockOverlay( state, clientId ) {
3000
3000
  return false;
3001
3001
  }
3002
3002
 
3003
- function isWithinBlock( state, clientId, parentClientId ) {
3004
- let parent = state.blocks.parents.get( clientId );
3005
- while ( !! parent && parent !== parentClientId ) {
3006
- parent = state.blocks.parents.get( parent );
3007
- }
3008
- return parent === parentClientId;
3009
- }
3010
-
3011
3003
  /**
3012
3004
  * @typedef {import('../components/block-editing-mode').BlockEditingMode} BlockEditingMode
3013
3005
  */
@@ -3049,68 +3041,26 @@ export const getBlockEditingMode = createRegistrySelector(
3049
3041
  clientId = '';
3050
3042
  }
3051
3043
 
3052
- // In zoom-out mode, override the behavior set by
3053
- // __unstableSetBlockEditingMode to only allow editing the top-level
3054
- // sections.
3055
- if ( isZoomOut( state ) ) {
3056
- const sectionRootClientId = getSectionRootClientId( state );
3057
-
3058
- if ( clientId === '' /* ROOT_CONTAINER_CLIENT_ID */ ) {
3059
- return sectionRootClientId ? 'disabled' : 'contentOnly';
3060
- }
3061
- if ( clientId === sectionRootClientId ) {
3062
- return 'contentOnly';
3063
- }
3064
- const sectionsClientIds = getBlockOrder(
3065
- state,
3066
- sectionRootClientId
3067
- );
3068
-
3069
- // Sections are always contentOnly.
3070
- if ( sectionsClientIds?.includes( clientId ) ) {
3071
- return 'contentOnly';
3072
- }
3073
-
3074
- return 'disabled';
3044
+ const isNavMode = isNavigationMode( state );
3045
+
3046
+ // If the editor is currently not in navigation mode, check if the clientId
3047
+ // has an editing mode set in the regular derived map.
3048
+ // There may be an editing mode set here for synced patterns or in zoomed out
3049
+ // mode.
3050
+ if (
3051
+ ! isNavMode &&
3052
+ state.derivedBlockEditingModes?.has( clientId )
3053
+ ) {
3054
+ return state.derivedBlockEditingModes.get( clientId );
3075
3055
  }
3076
3056
 
3077
- const editorMode = __unstableGetEditorMode( state );
3078
- if ( editorMode === 'navigation' ) {
3079
- const sectionRootClientId = getSectionRootClientId( state );
3080
-
3081
- // The root section is "default mode"
3082
- if ( clientId === sectionRootClientId ) {
3083
- return 'default';
3084
- }
3085
-
3086
- // Sections should always be contentOnly in navigation mode.
3087
- const sectionsClientIds = getBlockOrder(
3088
- state,
3089
- sectionRootClientId
3090
- );
3091
- if ( sectionsClientIds.includes( clientId ) ) {
3092
- return 'contentOnly';
3093
- }
3094
-
3095
- // Blocks outside sections should be disabled.
3096
- const isWithinSectionRoot = isWithinBlock(
3097
- state,
3098
- clientId,
3099
- sectionRootClientId
3100
- );
3101
- if ( ! isWithinSectionRoot ) {
3102
- return 'disabled';
3103
- }
3104
-
3105
- // The rest of the blocks depend on whether they are content blocks or not.
3106
- // This "flattens" the sections tree.
3107
- const name = getBlockName( state, clientId );
3108
- const { hasContentRoleAttribute } = unlock(
3109
- select( blocksStore )
3110
- );
3111
- const isContent = hasContentRoleAttribute( name );
3112
-
3113
- return isContent ? 'contentOnly' : 'disabled';
3057
+ // If the editor *is* in navigation mode, the block editing mode states
3058
+ // are stored in the derivedNavModeBlockEditingModes map.
3059
+ if (
3060
+ isNavMode &&
3061
+ state.derivedNavModeBlockEditingModes?.has( clientId )
3062
+ ) {
3063
+ return state.derivedNavModeBlockEditingModes.get( clientId );
3114
3064
  }
3115
3065
 
3116
3066
  // In normal mode, consider that an explicitely set editing mode takes over.
@@ -3120,7 +3070,7 @@ export const getBlockEditingMode = createRegistrySelector(
3120
3070
  }
3121
3071
 
3122
3072
  // In normal mode, top level is default mode.
3123
- if ( ! clientId ) {
3073
+ if ( clientId === '' ) {
3124
3074
  return 'default';
3125
3075
  }
3126
3076
 
@@ -129,6 +129,7 @@ describe( 'private selectors', () => {
129
129
  getBlockEditingMode.registry = {
130
130
  select: jest.fn( () => ( {
131
131
  hasContentRoleAttribute,
132
+ get,
132
133
  } ) ),
133
134
  };
134
135
  __unstableGetEditorMode.registry = {