@wordpress/block-editor 14.3.3 → 14.4.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 (418) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +46 -0
  3. package/build/autocompleters/link.js +2 -1
  4. package/build/autocompleters/link.js.map +1 -1
  5. package/build/components/block-actions/index.js +1 -13
  6. package/build/components/block-actions/index.js.map +1 -1
  7. package/build/components/block-inspector/index.js +56 -75
  8. package/build/components/block-inspector/index.js.map +1 -1
  9. package/build/components/block-list/block.js +5 -19
  10. package/build/components/block-list/block.js.map +1 -1
  11. package/build/components/block-list/index.js +5 -8
  12. package/build/components/block-list/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +3 -11
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
  16. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  17. package/build/components/block-list/use-in-between-inserter.js +5 -3
  18. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  19. package/build/components/block-list/zoom-out-separator.js +14 -6
  20. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  21. package/build/components/block-navigation/dropdown.js +2 -4
  22. package/build/components/block-navigation/dropdown.js.map +1 -1
  23. package/build/components/block-parent-selector/index.js +13 -10
  24. package/build/components/block-parent-selector/index.js.map +1 -1
  25. package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
  26. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  27. package/build/components/block-patterns-paging/index.js +11 -13
  28. package/build/components/block-patterns-paging/index.js.map +1 -1
  29. package/build/components/block-quick-navigation/index.js +2 -4
  30. package/build/components/block-quick-navigation/index.js.map +1 -1
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-settings-menu-controls/index.js +1 -6
  34. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  35. package/build/components/block-switcher/index.js +17 -14
  36. package/build/components/block-switcher/index.js.map +1 -1
  37. package/build/components/block-toolbar/index.js +16 -19
  38. package/build/components/block-toolbar/index.js.map +1 -1
  39. package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
  40. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  41. package/build/components/block-tools/index.js +8 -11
  42. package/build/components/block-tools/index.js.map +1 -1
  43. package/build/components/block-tools/insertion-point.js +1 -4
  44. package/build/components/block-tools/insertion-point.js.map +1 -1
  45. package/build/components/block-tools/use-show-block-tools.js +2 -5
  46. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  47. package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  48. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  49. package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
  50. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  51. package/build/components/block-tools/zoom-out-toolbar.js +2 -12
  52. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  53. package/build/components/block-variation-picker/index.js +2 -4
  54. package/build/components/block-variation-picker/index.js.map +1 -1
  55. package/build/components/block-variation-transforms/index.js +3 -4
  56. package/build/components/block-variation-transforms/index.js.map +1 -1
  57. package/build/components/button-block-appender/index.js +2 -4
  58. package/build/components/button-block-appender/index.js.map +1 -1
  59. package/build/components/colors-gradients/dropdown.js +2 -4
  60. package/build/components/colors-gradients/dropdown.js.map +1 -1
  61. package/build/components/global-styles/border-panel.js +1 -1
  62. package/build/components/global-styles/border-panel.js.map +1 -1
  63. package/build/components/global-styles/color-panel.js +2 -4
  64. package/build/components/global-styles/color-panel.js.map +1 -1
  65. package/build/components/global-styles/dimensions-panel.js +3 -3
  66. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  67. package/build/components/global-styles/filters-panel.js +2 -4
  68. package/build/components/global-styles/filters-panel.js.map +1 -1
  69. package/build/components/global-styles/shadow-panel-components.js +24 -29
  70. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  71. package/build/components/inner-blocks/index.js +1 -9
  72. package/build/components/inner-blocks/index.js.map +1 -1
  73. package/build/components/inserter/block-types-tab.js +1 -1
  74. package/build/components/inserter/block-types-tab.js.map +1 -1
  75. package/build/components/inserter/hooks/use-block-types-state.js +24 -5
  76. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  77. package/build/components/inserter/hooks/use-insertion-point.js +22 -12
  78. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  79. package/build/components/inserter/hooks/use-patterns-state.js +23 -10
  80. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  81. package/build/components/inserter/media-tab/media-preview.js +35 -13
  82. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  83. package/build/components/inserter/menu.js +2 -2
  84. package/build/components/inserter/menu.js.map +1 -1
  85. package/build/components/inserter/mobile-tab-navigation.js +5 -5
  86. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  87. package/build/components/inserter/quick-inserter.js +4 -4
  88. package/build/components/inserter/quick-inserter.js.map +1 -1
  89. package/build/components/inspector-controls-tabs/index.js +11 -8
  90. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  91. package/build/components/inspector-popover-header/index.js +4 -8
  92. package/build/components/inspector-popover-header/index.js.map +1 -1
  93. package/build/components/link-control/index.js +5 -10
  94. package/build/components/link-control/index.js.map +1 -1
  95. package/build/components/link-control/settings-drawer.js +2 -4
  96. package/build/components/link-control/settings-drawer.js.map +1 -1
  97. package/build/components/list-view/block-contents.js +1 -25
  98. package/build/components/list-view/block-contents.js.map +1 -1
  99. package/build/components/list-view/block-select-button.js +1 -4
  100. package/build/components/list-view/block-select-button.js.map +1 -1
  101. package/build/components/media-placeholder/index.js +29 -43
  102. package/build/components/media-placeholder/index.js.map +1 -1
  103. package/build/components/rich-text/index.js +4 -8
  104. package/build/components/rich-text/index.js.map +1 -1
  105. package/build/components/skip-to-selected-block/index.js +2 -4
  106. package/build/components/skip-to-selected-block/index.js.map +1 -1
  107. package/build/components/tool-selector/index.js +13 -12
  108. package/build/components/tool-selector/index.js.map +1 -1
  109. package/build/components/url-input/button.js +14 -16
  110. package/build/components/url-input/button.js.map +1 -1
  111. package/build/components/url-input/index.js +2 -4
  112. package/build/components/url-input/index.js.map +1 -1
  113. package/build/components/use-block-commands/index.js +0 -61
  114. package/build/components/use-block-commands/index.js.map +1 -1
  115. package/build/components/writing-flow/use-tab-nav.js +2 -25
  116. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  117. package/build/hooks/block-bindings.js +6 -13
  118. package/build/hooks/block-bindings.js.map +1 -1
  119. package/build/hooks/duotone.js +4 -1
  120. package/build/hooks/duotone.js.map +1 -1
  121. package/build/hooks/layout-child.js +3 -1
  122. package/build/hooks/layout-child.js.map +1 -1
  123. package/build/hooks/position.js +3 -2
  124. package/build/hooks/position.js.map +1 -1
  125. package/build/hooks/use-bindings-attributes.js +5 -4
  126. package/build/hooks/use-bindings-attributes.js.map +1 -1
  127. package/build/layouts/flex.js +6 -38
  128. package/build/layouts/flex.js.map +1 -1
  129. package/build/private-apis.js +0 -2
  130. package/build/private-apis.js.map +1 -1
  131. package/build/store/actions.js +13 -14
  132. package/build/store/actions.js.map +1 -1
  133. package/build/store/private-actions.js +15 -0
  134. package/build/store/private-actions.js.map +1 -1
  135. package/build/store/private-selectors.js +104 -7
  136. package/build/store/private-selectors.js.map +1 -1
  137. package/build/store/reducer.js +22 -26
  138. package/build/store/reducer.js.map +1 -1
  139. package/build/store/selectors.js +127 -56
  140. package/build/store/selectors.js.map +1 -1
  141. package/build/store/utils.js +4 -3
  142. package/build/store/utils.js.map +1 -1
  143. package/build/utils/block-bindings.js +50 -0
  144. package/build/utils/block-bindings.js.map +1 -1
  145. package/build/utils/index.js +7 -0
  146. package/build/utils/index.js.map +1 -1
  147. package/build-module/autocompleters/link.js +2 -1
  148. package/build-module/autocompleters/link.js.map +1 -1
  149. package/build-module/components/block-actions/index.js +1 -13
  150. package/build-module/components/block-actions/index.js.map +1 -1
  151. package/build-module/components/block-inspector/index.js +57 -76
  152. package/build-module/components/block-inspector/index.js.map +1 -1
  153. package/build-module/components/block-list/block.js +5 -19
  154. package/build-module/components/block-list/block.js.map +1 -1
  155. package/build-module/components/block-list/index.js +5 -8
  156. package/build-module/components/block-list/index.js.map +1 -1
  157. package/build-module/components/block-list/use-block-props/index.js +3 -11
  158. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  159. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
  160. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  161. package/build-module/components/block-list/use-in-between-inserter.js +5 -3
  162. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  163. package/build-module/components/block-list/zoom-out-separator.js +14 -6
  164. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  165. package/build-module/components/block-navigation/dropdown.js +2 -4
  166. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  167. package/build-module/components/block-parent-selector/index.js +13 -10
  168. package/build-module/components/block-parent-selector/index.js.map +1 -1
  169. package/build-module/components/block-pattern-setup/setup-toolbar.js +10 -20
  170. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  171. package/build-module/components/block-patterns-paging/index.js +11 -13
  172. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  173. package/build-module/components/block-quick-navigation/index.js +2 -4
  174. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  175. package/build-module/components/block-settings-menu/block-settings-dropdown.js +79 -76
  176. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  177. package/build-module/components/block-settings-menu-controls/index.js +2 -7
  178. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  179. package/build-module/components/block-switcher/index.js +17 -14
  180. package/build-module/components/block-switcher/index.js.map +1 -1
  181. package/build-module/components/block-toolbar/index.js +17 -20
  182. package/build-module/components/block-toolbar/index.js.map +1 -1
  183. package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
  184. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  185. package/build-module/components/block-tools/index.js +8 -11
  186. package/build-module/components/block-tools/index.js.map +1 -1
  187. package/build-module/components/block-tools/insertion-point.js +1 -4
  188. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  189. package/build-module/components/block-tools/use-show-block-tools.js +2 -5
  190. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  191. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  192. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  193. package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
  194. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  195. package/build-module/components/block-tools/zoom-out-toolbar.js +2 -12
  196. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  197. package/build-module/components/block-variation-picker/index.js +2 -4
  198. package/build-module/components/block-variation-picker/index.js.map +1 -1
  199. package/build-module/components/block-variation-transforms/index.js +3 -4
  200. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  201. package/build-module/components/button-block-appender/index.js +2 -4
  202. package/build-module/components/button-block-appender/index.js.map +1 -1
  203. package/build-module/components/colors-gradients/dropdown.js +2 -4
  204. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  205. package/build-module/components/global-styles/border-panel.js +1 -1
  206. package/build-module/components/global-styles/border-panel.js.map +1 -1
  207. package/build-module/components/global-styles/color-panel.js +2 -4
  208. package/build-module/components/global-styles/color-panel.js.map +1 -1
  209. package/build-module/components/global-styles/dimensions-panel.js +1 -1
  210. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  211. package/build-module/components/global-styles/filters-panel.js +2 -4
  212. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  213. package/build-module/components/global-styles/shadow-panel-components.js +25 -30
  214. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  215. package/build-module/components/inner-blocks/index.js +1 -9
  216. package/build-module/components/inner-blocks/index.js.map +1 -1
  217. package/build-module/components/inserter/block-types-tab.js +1 -1
  218. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  219. package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
  220. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  221. package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
  222. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  223. package/build-module/components/inserter/hooks/use-patterns-state.js +23 -10
  224. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  225. package/build-module/components/inserter/media-tab/media-preview.js +35 -13
  226. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  227. package/build-module/components/inserter/menu.js +2 -2
  228. package/build-module/components/inserter/menu.js.map +1 -1
  229. package/build-module/components/inserter/mobile-tab-navigation.js +6 -6
  230. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  231. package/build-module/components/inserter/quick-inserter.js +4 -4
  232. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  233. package/build-module/components/inspector-controls-tabs/index.js +12 -9
  234. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  235. package/build-module/components/inspector-popover-header/index.js +4 -8
  236. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  237. package/build-module/components/link-control/index.js +5 -10
  238. package/build-module/components/link-control/index.js.map +1 -1
  239. package/build-module/components/link-control/settings-drawer.js +2 -4
  240. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  241. package/build-module/components/list-view/block-contents.js +1 -25
  242. package/build-module/components/list-view/block-contents.js.map +1 -1
  243. package/build-module/components/list-view/block-select-button.js +2 -5
  244. package/build-module/components/list-view/block-select-button.js.map +1 -1
  245. package/build-module/components/media-placeholder/index.js +30 -44
  246. package/build-module/components/media-placeholder/index.js.map +1 -1
  247. package/build-module/components/rich-text/index.js +4 -8
  248. package/build-module/components/rich-text/index.js.map +1 -1
  249. package/build-module/components/skip-to-selected-block/index.js +2 -4
  250. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  251. package/build-module/components/tool-selector/index.js +13 -12
  252. package/build-module/components/tool-selector/index.js.map +1 -1
  253. package/build-module/components/url-input/button.js +15 -17
  254. package/build-module/components/url-input/button.js.map +1 -1
  255. package/build-module/components/url-input/index.js +2 -4
  256. package/build-module/components/url-input/index.js.map +1 -1
  257. package/build-module/components/use-block-commands/index.js +1 -62
  258. package/build-module/components/use-block-commands/index.js.map +1 -1
  259. package/build-module/components/writing-flow/use-tab-nav.js +3 -26
  260. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  261. package/build-module/hooks/block-bindings.js +6 -13
  262. package/build-module/hooks/block-bindings.js.map +1 -1
  263. package/build-module/hooks/duotone.js +4 -1
  264. package/build-module/hooks/duotone.js.map +1 -1
  265. package/build-module/hooks/layout-child.js +4 -1
  266. package/build-module/hooks/layout-child.js.map +1 -1
  267. package/build-module/hooks/position.js +4 -1
  268. package/build-module/hooks/position.js.map +1 -1
  269. package/build-module/hooks/use-bindings-attributes.js +5 -4
  270. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  271. package/build-module/layouts/flex.js +7 -39
  272. package/build-module/layouts/flex.js.map +1 -1
  273. package/build-module/private-apis.js +0 -2
  274. package/build-module/private-apis.js.map +1 -1
  275. package/build-module/store/actions.js +12 -12
  276. package/build-module/store/actions.js.map +1 -1
  277. package/build-module/store/private-actions.js +14 -0
  278. package/build-module/store/private-actions.js.map +1 -1
  279. package/build-module/store/private-selectors.js +98 -7
  280. package/build-module/store/private-selectors.js.map +1 -1
  281. package/build-module/store/reducer.js +21 -25
  282. package/build-module/store/reducer.js.map +1 -1
  283. package/build-module/store/selectors.js +129 -58
  284. package/build-module/store/selectors.js.map +1 -1
  285. package/build-module/store/utils.js +3 -2
  286. package/build-module/store/utils.js.map +1 -1
  287. package/build-module/utils/block-bindings.js +50 -0
  288. package/build-module/utils/block-bindings.js.map +1 -1
  289. package/build-module/utils/index.js +1 -0
  290. package/build-module/utils/index.js.map +1 -1
  291. package/build-style/content-rtl.css +16 -70
  292. package/build-style/content.css +16 -70
  293. package/build-style/default-editor-styles-rtl.css +10 -1
  294. package/build-style/default-editor-styles.css +10 -1
  295. package/build-style/style-rtl.css +51 -149
  296. package/build-style/style.css +51 -149
  297. package/package.json +32 -32
  298. package/src/autocompleters/link.js +2 -1
  299. package/src/components/block-actions/index.js +1 -13
  300. package/src/components/block-draggable/style.scss +2 -2
  301. package/src/components/block-inspector/index.js +79 -95
  302. package/src/components/block-inspector/style.scss +2 -0
  303. package/src/components/block-list/block.js +7 -28
  304. package/src/components/block-list/content.scss +1 -61
  305. package/src/components/block-list/index.js +21 -29
  306. package/src/components/block-list/use-block-props/index.js +3 -10
  307. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +19 -11
  308. package/src/components/block-list/use-in-between-inserter.js +5 -2
  309. package/src/components/block-list/zoom-out-separator.js +24 -8
  310. package/src/components/block-navigation/dropdown.js +1 -2
  311. package/src/components/block-parent-selector/index.js +13 -10
  312. package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
  313. package/src/components/block-patterns-paging/index.js +8 -7
  314. package/src/components/block-patterns-paging/style.scss +10 -27
  315. package/src/components/block-quick-navigation/index.js +1 -2
  316. package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
  317. package/src/components/block-settings-menu-controls/index.js +0 -15
  318. package/src/components/block-switcher/index.js +37 -30
  319. package/src/components/block-toolbar/index.js +22 -34
  320. package/src/components/block-toolbar/style.scss +10 -1
  321. package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
  322. package/src/components/block-tools/index.js +7 -16
  323. package/src/components/block-tools/insertion-point.js +1 -4
  324. package/src/components/block-tools/style.scss +3 -88
  325. package/src/components/block-tools/use-show-block-tools.js +2 -12
  326. package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
  327. package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
  328. package/src/components/block-tools/zoom-out-toolbar.js +2 -13
  329. package/src/components/block-variation-picker/index.js +1 -2
  330. package/src/components/block-variation-transforms/index.js +2 -2
  331. package/src/components/button-block-appender/content.scss +0 -5
  332. package/src/components/button-block-appender/index.js +1 -2
  333. package/src/components/colors-gradients/dropdown.js +1 -5
  334. package/src/components/font-family/README.md +5 -1
  335. package/src/components/global-styles/border-panel.js +1 -1
  336. package/src/components/global-styles/color-panel.js +1 -5
  337. package/src/components/global-styles/dimensions-panel.js +1 -1
  338. package/src/components/global-styles/filters-panel.js +1 -2
  339. package/src/components/global-styles/shadow-panel-components.js +28 -33
  340. package/src/components/global-styles/style.scss +5 -0
  341. package/src/components/inner-blocks/index.js +1 -16
  342. package/src/components/inserter/block-types-tab.js +1 -1
  343. package/src/components/inserter/hooks/use-block-types-state.js +34 -14
  344. package/src/components/inserter/hooks/use-insertion-point.js +35 -13
  345. package/src/components/inserter/hooks/use-patterns-state.js +46 -9
  346. package/src/components/inserter/media-tab/media-preview.js +38 -12
  347. package/src/components/inserter/menu.js +2 -2
  348. package/src/components/inserter/mobile-tab-navigation.js +10 -13
  349. package/src/components/inserter/quick-inserter.js +5 -4
  350. package/src/components/inserter/style.scss +0 -28
  351. package/src/components/inspector-controls-tabs/index.js +21 -20
  352. package/src/components/inspector-controls-tabs/style.scss +2 -6
  353. package/src/components/inspector-popover-header/index.js +2 -4
  354. package/src/components/inspector-popover-header/style.scss +0 -13
  355. package/src/components/link-control/index.js +2 -5
  356. package/src/components/link-control/settings-drawer.js +1 -2
  357. package/src/components/list-view/block-contents.js +1 -28
  358. package/src/components/list-view/block-select-button.js +2 -5
  359. package/src/components/list-view/style.scss +18 -14
  360. package/src/components/media-placeholder/content.scss +3 -19
  361. package/src/components/media-placeholder/index.js +23 -29
  362. package/src/components/rich-text/index.js +4 -13
  363. package/src/components/skip-to-selected-block/index.js +1 -2
  364. package/src/components/skip-to-selected-block/style.scss +0 -9
  365. package/src/components/tool-selector/index.js +14 -9
  366. package/src/components/tool-selector/style.scss +5 -0
  367. package/src/components/url-input/button.js +16 -12
  368. package/src/components/url-input/index.js +1 -2
  369. package/src/components/url-input/style.scss +0 -6
  370. package/src/components/use-block-commands/index.js +0 -58
  371. package/src/components/writing-flow/use-tab-nav.js +4 -36
  372. package/src/content.scss +0 -1
  373. package/src/hooks/block-bindings.js +9 -10
  374. package/src/hooks/duotone.js +4 -1
  375. package/src/hooks/layout-child.js +4 -1
  376. package/src/hooks/position.js +4 -1
  377. package/src/hooks/use-bindings-attributes.js +66 -63
  378. package/src/layouts/flex.js +10 -53
  379. package/src/private-apis.js +0 -2
  380. package/src/store/actions.js +14 -13
  381. package/src/store/private-actions.js +14 -0
  382. package/src/store/private-selectors.js +120 -16
  383. package/src/store/reducer.js +22 -28
  384. package/src/store/selectors.js +203 -114
  385. package/src/store/test/private-actions.js +15 -0
  386. package/src/store/test/private-selectors.js +34 -0
  387. package/src/store/test/reducer.js +40 -4
  388. package/src/store/test/selectors.js +183 -20
  389. package/src/store/utils.js +4 -2
  390. package/src/utils/block-bindings.js +49 -0
  391. package/src/utils/index.js +1 -0
  392. package/build/components/block-controls/use-has-block-controls.js +0 -43
  393. package/build/components/block-controls/use-has-block-controls.js.map +0 -1
  394. package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
  395. package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  396. package/build/components/block-tools/block-selection-button.js +0 -259
  397. package/build/components/block-tools/block-selection-button.js.map +0 -1
  398. package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
  399. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  400. package/build/components/inserter/tabs.js +0 -78
  401. package/build/components/inserter/tabs.js.map +0 -1
  402. package/build-module/components/block-controls/use-has-block-controls.js +0 -34
  403. package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
  404. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
  405. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  406. package/build-module/components/block-tools/block-selection-button.js +0 -254
  407. package/build-module/components/block-tools/block-selection-button.js.map +0 -1
  408. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
  409. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  410. package/build-module/components/inserter/tabs.js +0 -72
  411. package/build-module/components/inserter/tabs.js.map +0 -1
  412. package/src/components/block-controls/use-has-block-controls.js +0 -35
  413. package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
  414. package/src/components/block-tools/block-selection-button.js +0 -302
  415. package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
  416. package/src/components/inner-blocks/content.scss +0 -13
  417. package/src/components/inserter/tabs.js +0 -78
  418. package/src/components/inserter/test/block-types-tab.native.js +0 -67
@@ -7,12 +7,13 @@ exports.getAllPatternsDependants = exports.checkAllowListRecursive = exports.che
7
7
  exports.getGrammar = getGrammar;
8
8
  exports.getInsertBlockTypeDependants = getInsertBlockTypeDependants;
9
9
  exports.getParsedPattern = getParsedPattern;
10
- exports.withRootClientIdOptionKey = void 0;
10
+ exports.isFiltered = void 0;
11
11
  var _blocks = require("@wordpress/blocks");
12
12
  var _blockSerializationDefaultParser = require("@wordpress/block-serialization-default-parser");
13
13
  var _privateKeys = require("./private-keys");
14
14
  var _lockUnlock = require("../lock-unlock");
15
15
  var _constants = require("./constants");
16
+ var _privateSelectors = require("./private-selectors");
16
17
  /**
17
18
  * WordPress dependencies
18
19
  */
@@ -21,7 +22,7 @@ var _constants = require("./constants");
21
22
  * Internal dependencies
22
23
  */
23
24
 
24
- const withRootClientIdOptionKey = exports.withRootClientIdOptionKey = Symbol('withRootClientId');
25
+ const isFiltered = exports.isFiltered = Symbol('isFiltered');
25
26
  const parsedPatternCache = new WeakMap();
26
27
  const grammarMapCache = new WeakMap();
27
28
  function parsePattern(pattern) {
@@ -101,6 +102,6 @@ const getAllPatternsDependants = select => state => {
101
102
  };
102
103
  exports.getAllPatternsDependants = getAllPatternsDependants;
103
104
  function getInsertBlockTypeDependants(state, rootClientId) {
104
- return [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockEditingModes];
105
+ return [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockEditingModes, state.editorMode, (0, _privateSelectors.getSectionRootClientId)(state)];
105
106
  }
106
107
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_blockSerializationDefaultParser","_privateKeys","_lockUnlock","_constants","withRootClientIdOptionKey","exports","Symbol","parsedPatternCache","WeakMap","grammarMapCache","parsePattern","pattern","blocks","parse","content","__unstableSkipMigrationLogs","length","attributes","metadata","categories","patternName","name","title","getParsedPattern","parsedPattern","get","set","getGrammar","grammarMap","grammarParse","filter","block","blockName","checkAllowList","list","item","defaultResult","Array","isArray","includes","checkAllowListRecursive","allowedBlockTypes","blocksQueue","shift","isAllowed","innerBlocks","forEach","innerBlock","push","getAllPatternsDependants","select","state","settings","__experimentalBlockPatterns","__experimentalUserPatternCategories","__experimentalReusableBlocks","selectBlockPatternsKey","blockPatterns","unlock","STORE_NAME","getReusableBlocks","getInsertBlockTypeDependants","rootClientId","blockListSettings","byClientId","templateLock","blockEditingModes"],"sources":["@wordpress/block-editor/src/store/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { parse as grammarParse } from '@wordpress/block-serialization-default-parser';\n\n/**\n * Internal dependencies\n */\nimport { selectBlockPatternsKey } from './private-keys';\nimport { unlock } from '../lock-unlock';\nimport { STORE_NAME } from './constants';\n\nexport const withRootClientIdOptionKey = Symbol( 'withRootClientId' );\n\nconst parsedPatternCache = new WeakMap();\nconst grammarMapCache = new WeakMap();\n\nfunction parsePattern( pattern ) {\n\tconst blocks = parse( pattern.content, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} );\n\tif ( blocks.length === 1 ) {\n\t\tblocks[ 0 ].attributes = {\n\t\t\t...blocks[ 0 ].attributes,\n\t\t\tmetadata: {\n\t\t\t\t...( blocks[ 0 ].attributes.metadata || {} ),\n\t\t\t\tcategories: pattern.categories,\n\t\t\t\tpatternName: pattern.name,\n\t\t\t\tname: blocks[ 0 ].attributes.metadata?.name || pattern.title,\n\t\t\t},\n\t\t};\n\t}\n\treturn {\n\t\t...pattern,\n\t\tblocks,\n\t};\n}\n\nexport function getParsedPattern( pattern ) {\n\tlet parsedPattern = parsedPatternCache.get( pattern );\n\tif ( ! parsedPattern ) {\n\t\tparsedPattern = parsePattern( pattern );\n\t\tparsedPatternCache.set( pattern, parsedPattern );\n\t}\n\treturn parsedPattern;\n}\n\nexport function getGrammar( pattern ) {\n\tlet grammarMap = grammarMapCache.get( pattern );\n\tif ( ! grammarMap ) {\n\t\tgrammarMap = grammarParse( pattern.content );\n\t\t// Block names are null only at the top level for whitespace.\n\t\tgrammarMap = grammarMap.filter( ( block ) => block.blockName !== null );\n\t\tgrammarMapCache.set( pattern, grammarMap );\n\t}\n\treturn grammarMap;\n}\n\nexport const checkAllowList = ( list, item, defaultResult = null ) => {\n\tif ( typeof list === 'boolean' ) {\n\t\treturn list;\n\t}\n\tif ( Array.isArray( list ) ) {\n\t\t// TODO: when there is a canonical way to detect that we are editing a post\n\t\t// the following check should be changed to something like:\n\t\t// if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null )\n\t\tif ( list.includes( 'core/post-content' ) && item === null ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn list.includes( item );\n\t}\n\treturn defaultResult;\n};\n\nexport const checkAllowListRecursive = ( blocks, allowedBlockTypes ) => {\n\tif ( typeof allowedBlockTypes === 'boolean' ) {\n\t\treturn allowedBlockTypes;\n\t}\n\n\tconst blocksQueue = [ ...blocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\n\t\tconst isAllowed = checkAllowList(\n\t\t\tallowedBlockTypes,\n\t\t\tblock.name || block.blockName,\n\t\t\ttrue\n\t\t);\n\t\tif ( ! isAllowed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\n\treturn true;\n};\n\nexport const getAllPatternsDependants = ( select ) => ( state ) => {\n\treturn [\n\t\tstate.settings.__experimentalBlockPatterns,\n\t\tstate.settings.__experimentalUserPatternCategories,\n\t\tstate.settings.__experimentalReusableBlocks,\n\t\tstate.settings[ selectBlockPatternsKey ]?.( select ),\n\t\tstate.blockPatterns,\n\t\tunlock( select( STORE_NAME ) ).getReusableBlocks(),\n\t];\n};\n\nexport function getInsertBlockTypeDependants( state, rootClientId ) {\n\treturn [\n\t\tstate.blockListSettings[ rootClientId ],\n\t\tstate.blocks.byClientId.get( rootClientId ),\n\t\tstate.settings.allowedBlockTypes,\n\t\tstate.settings.templateLock,\n\t\tstate.blockEditingModes,\n\t];\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_blockSerializationDefaultParser","_privateKeys","_lockUnlock","_constants","_privateSelectors","isFiltered","exports","Symbol","parsedPatternCache","WeakMap","grammarMapCache","parsePattern","pattern","blocks","parse","content","__unstableSkipMigrationLogs","length","attributes","metadata","categories","patternName","name","title","getParsedPattern","parsedPattern","get","set","getGrammar","grammarMap","grammarParse","filter","block","blockName","checkAllowList","list","item","defaultResult","Array","isArray","includes","checkAllowListRecursive","allowedBlockTypes","blocksQueue","shift","isAllowed","innerBlocks","forEach","innerBlock","push","getAllPatternsDependants","select","state","settings","__experimentalBlockPatterns","__experimentalUserPatternCategories","__experimentalReusableBlocks","selectBlockPatternsKey","blockPatterns","unlock","STORE_NAME","getReusableBlocks","getInsertBlockTypeDependants","rootClientId","blockListSettings","byClientId","templateLock","blockEditingModes","editorMode","getSectionRootClientId"],"sources":["@wordpress/block-editor/src/store/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { parse as grammarParse } from '@wordpress/block-serialization-default-parser';\n\n/**\n * Internal dependencies\n */\nimport { selectBlockPatternsKey } from './private-keys';\nimport { unlock } from '../lock-unlock';\nimport { STORE_NAME } from './constants';\nimport { getSectionRootClientId } from './private-selectors';\n\nexport const isFiltered = Symbol( 'isFiltered' );\nconst parsedPatternCache = new WeakMap();\nconst grammarMapCache = new WeakMap();\n\nfunction parsePattern( pattern ) {\n\tconst blocks = parse( pattern.content, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} );\n\tif ( blocks.length === 1 ) {\n\t\tblocks[ 0 ].attributes = {\n\t\t\t...blocks[ 0 ].attributes,\n\t\t\tmetadata: {\n\t\t\t\t...( blocks[ 0 ].attributes.metadata || {} ),\n\t\t\t\tcategories: pattern.categories,\n\t\t\t\tpatternName: pattern.name,\n\t\t\t\tname: blocks[ 0 ].attributes.metadata?.name || pattern.title,\n\t\t\t},\n\t\t};\n\t}\n\treturn {\n\t\t...pattern,\n\t\tblocks,\n\t};\n}\n\nexport function getParsedPattern( pattern ) {\n\tlet parsedPattern = parsedPatternCache.get( pattern );\n\tif ( ! parsedPattern ) {\n\t\tparsedPattern = parsePattern( pattern );\n\t\tparsedPatternCache.set( pattern, parsedPattern );\n\t}\n\treturn parsedPattern;\n}\n\nexport function getGrammar( pattern ) {\n\tlet grammarMap = grammarMapCache.get( pattern );\n\tif ( ! grammarMap ) {\n\t\tgrammarMap = grammarParse( pattern.content );\n\t\t// Block names are null only at the top level for whitespace.\n\t\tgrammarMap = grammarMap.filter( ( block ) => block.blockName !== null );\n\t\tgrammarMapCache.set( pattern, grammarMap );\n\t}\n\treturn grammarMap;\n}\n\nexport const checkAllowList = ( list, item, defaultResult = null ) => {\n\tif ( typeof list === 'boolean' ) {\n\t\treturn list;\n\t}\n\tif ( Array.isArray( list ) ) {\n\t\t// TODO: when there is a canonical way to detect that we are editing a post\n\t\t// the following check should be changed to something like:\n\t\t// if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null )\n\t\tif ( list.includes( 'core/post-content' ) && item === null ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn list.includes( item );\n\t}\n\treturn defaultResult;\n};\n\nexport const checkAllowListRecursive = ( blocks, allowedBlockTypes ) => {\n\tif ( typeof allowedBlockTypes === 'boolean' ) {\n\t\treturn allowedBlockTypes;\n\t}\n\n\tconst blocksQueue = [ ...blocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\n\t\tconst isAllowed = checkAllowList(\n\t\t\tallowedBlockTypes,\n\t\t\tblock.name || block.blockName,\n\t\t\ttrue\n\t\t);\n\t\tif ( ! isAllowed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\n\treturn true;\n};\n\nexport const getAllPatternsDependants = ( select ) => ( state ) => {\n\treturn [\n\t\tstate.settings.__experimentalBlockPatterns,\n\t\tstate.settings.__experimentalUserPatternCategories,\n\t\tstate.settings.__experimentalReusableBlocks,\n\t\tstate.settings[ selectBlockPatternsKey ]?.( select ),\n\t\tstate.blockPatterns,\n\t\tunlock( select( STORE_NAME ) ).getReusableBlocks(),\n\t];\n};\n\nexport function getInsertBlockTypeDependants( state, rootClientId ) {\n\treturn [\n\t\tstate.blockListSettings[ rootClientId ],\n\t\tstate.blocks.byClientId.get( rootClientId ),\n\t\tstate.settings.allowedBlockTypes,\n\t\tstate.settings.templateLock,\n\t\tstate.blockEditingModes,\n\t\tstate.editorMode,\n\t\tgetSectionRootClientId( state ),\n\t];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -18,6 +18,56 @@ var _blockEdit = require("../components/block-edit");
18
18
  function isObjectEmpty(object) {
19
19
  return !object || Object.keys(object).length === 0;
20
20
  }
21
+
22
+ /**
23
+ * Contains utils to update the block `bindings` metadata.
24
+ *
25
+ * @typedef {Object} WPBlockBindingsUtils
26
+ *
27
+ * @property {Function} updateBlockBindings Updates the value of the bindings connected to block attributes.
28
+ * @property {Function} removeAllBlockBindings Removes the bindings property of the `metadata` attribute.
29
+ */
30
+
31
+ /**
32
+ * Retrieves the existing utils needed to update the block `bindings` metadata.
33
+ * They can be used to create, modify, or remove connections from the existing block attributes.
34
+ *
35
+ * It contains the following utils:
36
+ * - `updateBlockBindings`: Updates the value of the bindings connected to block attributes. It can be used to remove a specific binding by setting the value to `undefined`.
37
+ * - `removeAllBlockBindings`: Removes the bindings property of the `metadata` attribute.
38
+ *
39
+ * @since 6.7.0 Introduced in WordPress core.
40
+ *
41
+ * @return {?WPBlockBindingsUtils} Object containing the block bindings utils.
42
+ *
43
+ * @example
44
+ * ```js
45
+ * import { useBlockBindingsUtils } from '@wordpress/block-editor'
46
+ * const { updateBlockBindings, removeAllBlockBindings } = useBlockBindingsUtils();
47
+ *
48
+ * // Update url and alt attributes.
49
+ * updateBlockBindings( {
50
+ * url: {
51
+ * source: 'core/post-meta',
52
+ * args: {
53
+ * key: 'url_custom_field',
54
+ * },
55
+ * },
56
+ * alt: {
57
+ * source: 'core/post-meta',
58
+ * args: {
59
+ * key: 'text_custom_field',
60
+ * },
61
+ * },
62
+ * } );
63
+ *
64
+ * // Remove binding from url attribute.
65
+ * updateBlockBindings( { url: undefined } );
66
+ *
67
+ * // Remove bindings from all attributes.
68
+ * removeAllBlockBindings();
69
+ * ```
70
+ */
21
71
  function useBlockBindingsUtils() {
22
72
  const {
23
73
  clientId
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_store","_blockEdit","isObjectEmpty","object","Object","keys","length","useBlockBindingsUtils","clientId","useBlockEditContext","updateBlockAttributes","useDispatch","blockEditorStore","getBlockAttributes","useRegistry","select","updateBlockBindings","bindings","metadata","currentBindings","newBindings","entries","forEach","attribute","binding","newMetadata","undefined","removeAllBlockBindings"],"sources":["@wordpress/block-editor/src/utils/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useBlockEditContext } from '../components/block-edit';\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\nexport function useBlockBindingsUtils() {\n\tconst { clientId } = useBlockEditContext();\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { getBlockAttributes } = useRegistry().select( blockEditorStore );\n\n\t/**\n\t * Updates the value of the bindings connected to block attributes.\n\t * It removes the binding when the new value is `undefined`.\n\t *\n\t * @param {Object} bindings Bindings including the attributes to update and the new object.\n\t * @param {string} bindings.source The source name to connect to.\n\t * @param {Object} [bindings.args] Object containing the arguments needed by the source.\n\t *\n\t * @example\n\t * ```js\n\t * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n\t *\n\t * const { updateBlockBindings } = useBlockBindingsUtils();\n\t * updateBlockBindings( {\n\t * url: {\n\t * source: 'core/post-meta',\n\t * args: {\n\t * key: 'url_custom_field',\n\t * },\n\t * \t },\n\t * alt: {\n\t * source: 'core/post-meta',\n\t * args: {\n\t * key: 'text_custom_field',\n\t * },\n\t * \t }\n\t * } );\n\t * ```\n\t */\n\tconst updateBlockBindings = ( bindings ) => {\n\t\tconst { metadata: { bindings: currentBindings, ...metadata } = {} } =\n\t\t\tgetBlockAttributes( clientId );\n\t\tconst newBindings = { ...currentBindings };\n\n\t\tObject.entries( bindings ).forEach( ( [ attribute, binding ] ) => {\n\t\t\tif ( ! binding && newBindings[ attribute ] ) {\n\t\t\t\tdelete newBindings[ attribute ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnewBindings[ attribute ] = binding;\n\t\t} );\n\n\t\tconst newMetadata = {\n\t\t\t...metadata,\n\t\t\tbindings: newBindings,\n\t\t};\n\n\t\tif ( isObjectEmpty( newMetadata.bindings ) ) {\n\t\t\tdelete newMetadata.bindings;\n\t\t}\n\n\t\tupdateBlockAttributes( clientId, {\n\t\t\tmetadata: isObjectEmpty( newMetadata ) ? undefined : newMetadata,\n\t\t} );\n\t};\n\n\t/**\n\t * Removes the bindings property of the `metadata` attribute.\n\t *\n\t * @example\n\t * ```js\n\t * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n\t *\n\t * const { removeAllBlockBindings } = useBlockBindingsUtils();\n\t * removeAllBlockBindings();\n\t * ```\n\t */\n\tconst removeAllBlockBindings = () => {\n\t\tconst { metadata: { bindings, ...metadata } = {} } =\n\t\t\tgetBlockAttributes( clientId );\n\t\tupdateBlockAttributes( clientId, {\n\t\t\tmetadata: isObjectEmpty( metadata ) ? undefined : metadata,\n\t\t} );\n\t};\n\n\treturn { updateBlockBindings, removeAllBlockBindings };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIA,SAASG,aAAaA,CAAEC,MAAM,EAAG;EAChC,OAAO,CAAEA,MAAM,IAAIC,MAAM,CAACC,IAAI,CAAEF,MAAO,CAAC,CAACG,MAAM,KAAK,CAAC;AACtD;AAEO,SAASC,qBAAqBA,CAAA,EAAG;EACvC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,8BAAmB,EAAC,CAAC;EAC1C,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EACjE,MAAM;IAAEC;EAAmB,CAAC,GAAG,IAAAC,iBAAW,EAAC,CAAC,CAACC,MAAM,CAAEH,YAAiB,CAAC;;EAEvE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMI,mBAAmB,GAAKC,QAAQ,IAAM;IAC3C,MAAM;MAAEC,QAAQ,EAAE;QAAED,QAAQ,EAAEE,eAAe;QAAE,GAAGD;MAAS,CAAC,GAAG,CAAC;IAAE,CAAC,GAClEL,kBAAkB,CAAEL,QAAS,CAAC;IAC/B,MAAMY,WAAW,GAAG;MAAE,GAAGD;IAAgB,CAAC;IAE1Cf,MAAM,CAACiB,OAAO,CAAEJ,QAAS,CAAC,CAACK,OAAO,CAAE,CAAE,CAAEC,SAAS,EAAEC,OAAO,CAAE,KAAM;MACjE,IAAK,CAAEA,OAAO,IAAIJ,WAAW,CAAEG,SAAS,CAAE,EAAG;QAC5C,OAAOH,WAAW,CAAEG,SAAS,CAAE;QAC/B;MACD;MACAH,WAAW,CAAEG,SAAS,CAAE,GAAGC,OAAO;IACnC,CAAE,CAAC;IAEH,MAAMC,WAAW,GAAG;MACnB,GAAGP,QAAQ;MACXD,QAAQ,EAAEG;IACX,CAAC;IAED,IAAKlB,aAAa,CAAEuB,WAAW,CAACR,QAAS,CAAC,EAAG;MAC5C,OAAOQ,WAAW,CAACR,QAAQ;IAC5B;IAEAP,qBAAqB,CAAEF,QAAQ,EAAE;MAChCU,QAAQ,EAAEhB,aAAa,CAAEuB,WAAY,CAAC,GAAGC,SAAS,GAAGD;IACtD,CAAE,CAAC;EACJ,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAME,sBAAsB,GAAGA,CAAA,KAAM;IACpC,MAAM;MAAET,QAAQ,EAAE;QAAED,QAAQ;QAAE,GAAGC;MAAS,CAAC,GAAG,CAAC;IAAE,CAAC,GACjDL,kBAAkB,CAAEL,QAAS,CAAC;IAC/BE,qBAAqB,CAAEF,QAAQ,EAAE;MAChCU,QAAQ,EAAEhB,aAAa,CAAEgB,QAAS,CAAC,GAAGQ,SAAS,GAAGR;IACnD,CAAE,CAAC;EACJ,CAAC;EAED,OAAO;IAAEF,mBAAmB;IAAEW;EAAuB,CAAC;AACvD","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_store","_blockEdit","isObjectEmpty","object","Object","keys","length","useBlockBindingsUtils","clientId","useBlockEditContext","updateBlockAttributes","useDispatch","blockEditorStore","getBlockAttributes","useRegistry","select","updateBlockBindings","bindings","metadata","currentBindings","newBindings","entries","forEach","attribute","binding","newMetadata","undefined","removeAllBlockBindings"],"sources":["@wordpress/block-editor/src/utils/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useBlockEditContext } from '../components/block-edit';\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Contains utils to update the block `bindings` metadata.\n *\n * @typedef {Object} WPBlockBindingsUtils\n *\n * @property {Function} updateBlockBindings Updates the value of the bindings connected to block attributes.\n * @property {Function} removeAllBlockBindings Removes the bindings property of the `metadata` attribute.\n */\n\n/**\n * Retrieves the existing utils needed to update the block `bindings` metadata.\n * They can be used to create, modify, or remove connections from the existing block attributes.\n *\n * It contains the following utils:\n * - `updateBlockBindings`: Updates the value of the bindings connected to block attributes. It can be used to remove a specific binding by setting the value to `undefined`.\n * - `removeAllBlockBindings`: Removes the bindings property of the `metadata` attribute.\n *\n * @since 6.7.0 Introduced in WordPress core.\n *\n * @return {?WPBlockBindingsUtils} Object containing the block bindings utils.\n *\n * @example\n * ```js\n * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n * const { updateBlockBindings, removeAllBlockBindings } = useBlockBindingsUtils();\n *\n * // Update url and alt attributes.\n * updateBlockBindings( {\n * url: {\n * source: 'core/post-meta',\n * args: {\n * key: 'url_custom_field',\n * },\n * },\n * alt: {\n * source: 'core/post-meta',\n * args: {\n * key: 'text_custom_field',\n * },\n * },\n * } );\n *\n * // Remove binding from url attribute.\n * updateBlockBindings( { url: undefined } );\n *\n * // Remove bindings from all attributes.\n * removeAllBlockBindings();\n * ```\n */\nexport function useBlockBindingsUtils() {\n\tconst { clientId } = useBlockEditContext();\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { getBlockAttributes } = useRegistry().select( blockEditorStore );\n\n\t/**\n\t * Updates the value of the bindings connected to block attributes.\n\t * It removes the binding when the new value is `undefined`.\n\t *\n\t * @param {Object} bindings Bindings including the attributes to update and the new object.\n\t * @param {string} bindings.source The source name to connect to.\n\t * @param {Object} [bindings.args] Object containing the arguments needed by the source.\n\t *\n\t * @example\n\t * ```js\n\t * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n\t *\n\t * const { updateBlockBindings } = useBlockBindingsUtils();\n\t * updateBlockBindings( {\n\t * url: {\n\t * source: 'core/post-meta',\n\t * args: {\n\t * key: 'url_custom_field',\n\t * },\n\t * \t },\n\t * alt: {\n\t * source: 'core/post-meta',\n\t * args: {\n\t * key: 'text_custom_field',\n\t * },\n\t * \t }\n\t * } );\n\t * ```\n\t */\n\tconst updateBlockBindings = ( bindings ) => {\n\t\tconst { metadata: { bindings: currentBindings, ...metadata } = {} } =\n\t\t\tgetBlockAttributes( clientId );\n\t\tconst newBindings = { ...currentBindings };\n\n\t\tObject.entries( bindings ).forEach( ( [ attribute, binding ] ) => {\n\t\t\tif ( ! binding && newBindings[ attribute ] ) {\n\t\t\t\tdelete newBindings[ attribute ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnewBindings[ attribute ] = binding;\n\t\t} );\n\n\t\tconst newMetadata = {\n\t\t\t...metadata,\n\t\t\tbindings: newBindings,\n\t\t};\n\n\t\tif ( isObjectEmpty( newMetadata.bindings ) ) {\n\t\t\tdelete newMetadata.bindings;\n\t\t}\n\n\t\tupdateBlockAttributes( clientId, {\n\t\t\tmetadata: isObjectEmpty( newMetadata ) ? undefined : newMetadata,\n\t\t} );\n\t};\n\n\t/**\n\t * Removes the bindings property of the `metadata` attribute.\n\t *\n\t * @example\n\t * ```js\n\t * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n\t *\n\t * const { removeAllBlockBindings } = useBlockBindingsUtils();\n\t * removeAllBlockBindings();\n\t * ```\n\t */\n\tconst removeAllBlockBindings = () => {\n\t\tconst { metadata: { bindings, ...metadata } = {} } =\n\t\t\tgetBlockAttributes( clientId );\n\t\tupdateBlockAttributes( clientId, {\n\t\t\tmetadata: isObjectEmpty( metadata ) ? undefined : metadata,\n\t\t} );\n\t};\n\n\treturn { updateBlockBindings, removeAllBlockBindings };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIA,SAASG,aAAaA,CAAEC,MAAM,EAAG;EAChC,OAAO,CAAEA,MAAM,IAAIC,MAAM,CAACC,IAAI,CAAEF,MAAO,CAAC,CAACG,MAAM,KAAK,CAAC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAAA,EAAG;EACvC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,8BAAmB,EAAC,CAAC;EAC1C,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EACjE,MAAM;IAAEC;EAAmB,CAAC,GAAG,IAAAC,iBAAW,EAAC,CAAC,CAACC,MAAM,CAAEH,YAAiB,CAAC;;EAEvE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMI,mBAAmB,GAAKC,QAAQ,IAAM;IAC3C,MAAM;MAAEC,QAAQ,EAAE;QAAED,QAAQ,EAAEE,eAAe;QAAE,GAAGD;MAAS,CAAC,GAAG,CAAC;IAAE,CAAC,GAClEL,kBAAkB,CAAEL,QAAS,CAAC;IAC/B,MAAMY,WAAW,GAAG;MAAE,GAAGD;IAAgB,CAAC;IAE1Cf,MAAM,CAACiB,OAAO,CAAEJ,QAAS,CAAC,CAACK,OAAO,CAAE,CAAE,CAAEC,SAAS,EAAEC,OAAO,CAAE,KAAM;MACjE,IAAK,CAAEA,OAAO,IAAIJ,WAAW,CAAEG,SAAS,CAAE,EAAG;QAC5C,OAAOH,WAAW,CAAEG,SAAS,CAAE;QAC/B;MACD;MACAH,WAAW,CAAEG,SAAS,CAAE,GAAGC,OAAO;IACnC,CAAE,CAAC;IAEH,MAAMC,WAAW,GAAG;MACnB,GAAGP,QAAQ;MACXD,QAAQ,EAAEG;IACX,CAAC;IAED,IAAKlB,aAAa,CAAEuB,WAAW,CAACR,QAAS,CAAC,EAAG;MAC5C,OAAOQ,WAAW,CAACR,QAAQ;IAC5B;IAEAP,qBAAqB,CAAEF,QAAQ,EAAE;MAChCU,QAAQ,EAAEhB,aAAa,CAAEuB,WAAY,CAAC,GAAGC,SAAS,GAAGD;IACtD,CAAE,CAAC;EACJ,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAME,sBAAsB,GAAGA,CAAA,KAAM;IACpC,MAAM;MAAET,QAAQ,EAAE;QAAED,QAAQ;QAAE,GAAGC;MAAS,CAAC,GAAG,CAAC;IAAE,CAAC,GACjDL,kBAAkB,CAAEL,QAAS,CAAC;IAC/BE,qBAAqB,CAAEF,QAAQ,EAAE;MAChCU,QAAQ,EAAEhB,aAAa,CAAEgB,QAAS,CAAC,GAAGQ,SAAS,GAAGR;IACnD,CAAE,CAAC;EACJ,CAAC;EAED,OAAO;IAAEF,mBAAmB;IAAEW;EAAuB,CAAC;AACvD","ignoreList":[]}
@@ -16,6 +16,13 @@ Object.defineProperty(exports, "transformStyles", {
16
16
  return _transformStyles.default;
17
17
  }
18
18
  });
19
+ Object.defineProperty(exports, "useBlockBindingsUtils", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _blockBindings.useBlockBindingsUtils;
23
+ }
24
+ });
19
25
  var _transformStyles = _interopRequireDefault(require("./transform-styles"));
20
26
  var _getPxFromCssUnit = _interopRequireDefault(require("./get-px-from-css-unit"));
27
+ var _blockBindings = require("./block-bindings");
21
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_transformStyles","_interopRequireDefault","require","_getPxFromCssUnit"],"sources":["@wordpress/block-editor/src/utils/index.js"],"sourcesContent":["export { default as transformStyles } from './transform-styles';\nexport { default as getPxFromCssUnit } from './get-px-from-css-unit';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_transformStyles","_interopRequireDefault","require","_getPxFromCssUnit","_blockBindings"],"sources":["@wordpress/block-editor/src/utils/index.js"],"sourcesContent":["export { default as transformStyles } from './transform-styles';\nexport { default as getPxFromCssUnit } from './get-px-from-css-unit';\nexport { useBlockBindingsUtils } from './block-bindings';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA","ignoreList":[]}
@@ -6,6 +6,7 @@
6
6
  import apiFetch from '@wordpress/api-fetch';
7
7
  import { addQueryArgs } from '@wordpress/url';
8
8
  import { Icon, page, post } from '@wordpress/icons';
9
+ import { decodeEntities } from '@wordpress/html-entities';
9
10
  import { jsx as _jsx } from "react/jsx-runtime";
10
11
  import { Fragment as _Fragment } from "react/jsx-runtime";
11
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -43,7 +44,7 @@ function createLinkCompleter() {
43
44
  return /*#__PURE__*/_jsxs(_Fragment, {
44
45
  children: [/*#__PURE__*/_jsx(Icon, {
45
46
  icon: item.subtype === 'page' ? page : post
46
- }, "icon"), item.title]
47
+ }, "icon"), decodeEntities(item.title)]
47
48
  });
48
49
  },
49
50
  getOptionCompletion(item) {
@@ -1 +1 @@
1
- {"version":3,"names":["apiFetch","addQueryArgs","Icon","page","post","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SHOWN_SUGGESTIONS","createLinkCompleter","name","className","triggerPrefix","options","letters","path","per_page","search","type","order_by","filter","option","title","getOptionKeywords","item","expansionWords","split","getOptionLabel","children","icon","subtype","getOptionCompletion","href","url"],"sources":["@wordpress/block-editor/src/autocompleters/link.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Icon, page, post } from '@wordpress/icons';\n\nconst SHOWN_SUGGESTIONS = 10;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a suggestion list for links to posts or pages.\n *\n * @return {WPCompleter} A links completer.\n */\nfunction createLinkCompleter() {\n\treturn {\n\t\tname: 'links',\n\t\tclassName: 'block-editor-autocompleters__link',\n\t\ttriggerPrefix: '[[',\n\t\toptions: async ( letters ) => {\n\t\t\tlet options = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/wp/v2/search', {\n\t\t\t\t\tper_page: SHOWN_SUGGESTIONS,\n\t\t\t\t\tsearch: letters,\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\torder_by: 'menu_order',\n\t\t\t\t} ),\n\t\t\t} );\n\n\t\t\toptions = options.filter( ( option ) => option.title !== '' );\n\n\t\t\treturn options;\n\t\t},\n\t\tgetOptionKeywords( item ) {\n\t\t\tconst expansionWords = item.title.split( /\\s+/ );\n\t\t\treturn [ ...expansionWords ];\n\t\t},\n\t\tgetOptionLabel( item ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\ticon={ item.subtype === 'page' ? page : post }\n\t\t\t\t\t/>\n\t\t\t\t\t{ item.title }\n\t\t\t\t</>\n\t\t\t);\n\t\t},\n\t\tgetOptionCompletion( item ) {\n\t\t\treturn <a href={ item.url }>{ item.title }</a>;\n\t\t},\n\t};\n}\n\n/**\n * Creates a suggestion list for links to posts or pages..\n *\n * @return {WPCompleter} A link completer.\n */\nexport default createLinkCompleter();\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,QAAQ,MAAM,sBAAsB;AAC3C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,IAAI,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEpD,MAAMC,iBAAiB,GAAG,EAAE;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAAA,EAAG;EAC9B,OAAO;IACNC,IAAI,EAAE,OAAO;IACbC,SAAS,EAAE,mCAAmC;IAC9CC,aAAa,EAAE,IAAI;IACnBC,OAAO,EAAE,MAAQC,OAAO,IAAM;MAC7B,IAAID,OAAO,GAAG,MAAMhB,QAAQ,CAAE;QAC7BkB,IAAI,EAAEjB,YAAY,CAAE,eAAe,EAAE;UACpCkB,QAAQ,EAAER,iBAAiB;UAC3BS,MAAM,EAAEH,OAAO;UACfI,IAAI,EAAE,MAAM;UACZC,QAAQ,EAAE;QACX,CAAE;MACH,CAAE,CAAC;MAEHN,OAAO,GAAGA,OAAO,CAACO,MAAM,CAAIC,MAAM,IAAMA,MAAM,CAACC,KAAK,KAAK,EAAG,CAAC;MAE7D,OAAOT,OAAO;IACf,CAAC;IACDU,iBAAiBA,CAAEC,IAAI,EAAG;MACzB,MAAMC,cAAc,GAAGD,IAAI,CAACF,KAAK,CAACI,KAAK,CAAE,KAAM,CAAC;MAChD,OAAO,CAAE,GAAGD,cAAc,CAAE;IAC7B,CAAC;IACDE,cAAcA,CAAEH,IAAI,EAAG;MACtB,oBACCjB,KAAA,CAAAF,SAAA;QAAAuB,QAAA,gBACCzB,IAAA,CAACJ,IAAI;UAEJ8B,IAAI,EAAGL,IAAI,CAACM,OAAO,KAAK,MAAM,GAAG9B,IAAI,GAAGC;QAAM,GAD1C,MAEJ,CAAC,EACAuB,IAAI,CAACF,KAAK;MAAA,CACX,CAAC;IAEL,CAAC;IACDS,mBAAmBA,CAAEP,IAAI,EAAG;MAC3B,oBAAOrB,IAAA;QAAG6B,IAAI,EAAGR,IAAI,CAACS,GAAK;QAAAL,QAAA,EAAGJ,IAAI,CAACF;MAAK,CAAK,CAAC;IAC/C;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAeb,mBAAmB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["apiFetch","addQueryArgs","Icon","page","post","decodeEntities","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SHOWN_SUGGESTIONS","createLinkCompleter","name","className","triggerPrefix","options","letters","path","per_page","search","type","order_by","filter","option","title","getOptionKeywords","item","expansionWords","split","getOptionLabel","children","icon","subtype","getOptionCompletion","href","url"],"sources":["@wordpress/block-editor/src/autocompleters/link.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Icon, page, post } from '@wordpress/icons';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst SHOWN_SUGGESTIONS = 10;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a suggestion list for links to posts or pages.\n *\n * @return {WPCompleter} A links completer.\n */\nfunction createLinkCompleter() {\n\treturn {\n\t\tname: 'links',\n\t\tclassName: 'block-editor-autocompleters__link',\n\t\ttriggerPrefix: '[[',\n\t\toptions: async ( letters ) => {\n\t\t\tlet options = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/wp/v2/search', {\n\t\t\t\t\tper_page: SHOWN_SUGGESTIONS,\n\t\t\t\t\tsearch: letters,\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\torder_by: 'menu_order',\n\t\t\t\t} ),\n\t\t\t} );\n\n\t\t\toptions = options.filter( ( option ) => option.title !== '' );\n\n\t\t\treturn options;\n\t\t},\n\t\tgetOptionKeywords( item ) {\n\t\t\tconst expansionWords = item.title.split( /\\s+/ );\n\t\t\treturn [ ...expansionWords ];\n\t\t},\n\t\tgetOptionLabel( item ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\ticon={ item.subtype === 'page' ? page : post }\n\t\t\t\t\t/>\n\t\t\t\t\t{ decodeEntities( item.title ) }\n\t\t\t\t</>\n\t\t\t);\n\t\t},\n\t\tgetOptionCompletion( item ) {\n\t\t\treturn <a href={ item.url }>{ item.title }</a>;\n\t\t},\n\t};\n}\n\n/**\n * Creates a suggestion list for links to posts or pages..\n *\n * @return {WPCompleter} A link completer.\n */\nexport default createLinkCompleter();\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,QAAQ,MAAM,sBAAsB;AAC3C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,IAAI,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,cAAc,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE1D,MAAMC,iBAAiB,GAAG,EAAE;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAAA,EAAG;EAC9B,OAAO;IACNC,IAAI,EAAE,OAAO;IACbC,SAAS,EAAE,mCAAmC;IAC9CC,aAAa,EAAE,IAAI;IACnBC,OAAO,EAAE,MAAQC,OAAO,IAAM;MAC7B,IAAID,OAAO,GAAG,MAAMjB,QAAQ,CAAE;QAC7BmB,IAAI,EAAElB,YAAY,CAAE,eAAe,EAAE;UACpCmB,QAAQ,EAAER,iBAAiB;UAC3BS,MAAM,EAAEH,OAAO;UACfI,IAAI,EAAE,MAAM;UACZC,QAAQ,EAAE;QACX,CAAE;MACH,CAAE,CAAC;MAEHN,OAAO,GAAGA,OAAO,CAACO,MAAM,CAAIC,MAAM,IAAMA,MAAM,CAACC,KAAK,KAAK,EAAG,CAAC;MAE7D,OAAOT,OAAO;IACf,CAAC;IACDU,iBAAiBA,CAAEC,IAAI,EAAG;MACzB,MAAMC,cAAc,GAAGD,IAAI,CAACF,KAAK,CAACI,KAAK,CAAE,KAAM,CAAC;MAChD,OAAO,CAAE,GAAGD,cAAc,CAAE;IAC7B,CAAC;IACDE,cAAcA,CAAEH,IAAI,EAAG;MACtB,oBACCjB,KAAA,CAAAF,SAAA;QAAAuB,QAAA,gBACCzB,IAAA,CAACL,IAAI;UAEJ+B,IAAI,EAAGL,IAAI,CAACM,OAAO,KAAK,MAAM,GAAG/B,IAAI,GAAGC;QAAM,GAD1C,MAEJ,CAAC,EACAC,cAAc,CAAEuB,IAAI,CAACF,KAAM,CAAC;MAAA,CAC7B,CAAC;IAEL,CAAC;IACDS,mBAAmBA,CAAEP,IAAI,EAAG;MAC3B,oBAAOrB,IAAA;QAAG6B,IAAI,EAAGR,IAAI,CAACS,GAAK;QAAAL,QAAA,EAAGJ,IAAI,CAACF;MAAK,CAAK,CAAC;IAC/C;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAeb,mBAAmB,CAAC,CAAC","ignoreList":[]}
@@ -25,7 +25,6 @@ export default function BlockActions({
25
25
  getBlockRootClientId,
26
26
  getBlocksByClientId,
27
27
  getDirectInsertBlock,
28
- canMoveBlocks,
29
28
  canRemoveBlocks
30
29
  } = select(blockEditorStore);
31
30
  const blocks = getBlocksByClientId(clientIds);
@@ -33,7 +32,6 @@ export default function BlockActions({
33
32
  const canInsertDefaultBlock = canInsertBlockType(getDefaultBlockName(), rootClientId);
34
33
  const directInsertBlock = rootClientId ? getDirectInsertBlock(rootClientId) : null;
35
34
  return {
36
- canMove: canMoveBlocks(clientIds),
37
35
  canRemove: canRemoveBlocks(clientIds),
38
36
  canInsertBlock: canInsertDefaultBlock || !!directInsertBlock,
39
37
  canCopyStyles: blocks.every(block => {
@@ -49,7 +47,6 @@ export default function BlockActions({
49
47
  getBlocks
50
48
  } = useSelect(blockEditorStore);
51
49
  const {
52
- canMove,
53
50
  canRemove,
54
51
  canInsertBlock,
55
52
  canCopyStyles,
@@ -61,10 +58,7 @@ export default function BlockActions({
61
58
  duplicateBlocks,
62
59
  insertAfterBlock,
63
60
  insertBeforeBlock,
64
- flashBlock,
65
- setBlockMovingClientId,
66
- setNavigationMode,
67
- selectBlock
61
+ flashBlock
68
62
  } = useDispatch(blockEditorStore);
69
63
  const notifyCopy = useNotifyCopy();
70
64
  const pasteStyles = usePasteStyles();
@@ -72,7 +66,6 @@ export default function BlockActions({
72
66
  canCopyStyles,
73
67
  canDuplicate,
74
68
  canInsertBlock,
75
- canMove,
76
69
  canRemove,
77
70
  onDuplicate() {
78
71
  return duplicateBlocks(clientIds, updateSelection);
@@ -86,11 +79,6 @@ export default function BlockActions({
86
79
  onInsertAfter() {
87
80
  insertAfterBlock(clientIds[clientIds.length - 1]);
88
81
  },
89
- onMoveTo() {
90
- setNavigationMode(true);
91
- selectBlock(clientIds[0]);
92
- setBlockMovingClientId(clientIds[0]);
93
- },
94
82
  onGroup() {
95
83
  if (!clientIds.length) {
96
84
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","useSelect","hasBlockSupport","switchToBlockType","store","blocksStore","useNotifyCopy","usePasteStyles","blockEditorStore","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","getDefaultBlockName","getGroupingBlockName","selected","select","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","getDirectInsertBlock","canMoveBlocks","canRemoveBlocks","blocks","rootClientId","canInsertDefaultBlock","directInsertBlock","canMove","canRemove","canInsertBlock","canCopyStyles","every","block","name","canDuplicate","getBlocks","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","setBlockMovingClientId","setNavigationMode","selectBlock","notifyCopy","pasteStyles","onDuplicate","onRemove","onInsertBefore","onInsertAfter","length","onMoveTo","onGroup","groupingBlockName","newBlocks","onUngroup","innerBlocks","onCopy","onPasteStyles"],"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport usePasteStyles from '../use-paste-styles';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetDirectInsertBlock,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\t\t\tgetDefaultBlockName(),\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\tconst directInsertBlock = rootClientId\n\t\t\t\t? getDirectInsertBlock( rootClientId )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds ),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\tcanInsertBlock: canInsertDefaultBlock || !! directInsertBlock,\n\t\t\t\tcanCopyStyles: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t( hasBlockSupport( block.name, 'color' ) ||\n\t\t\t\t\t\t\thasBlockSupport( block.name, 'typography' ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\tcanDuplicate: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\t\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, getDefaultBlockName ]\n\t);\n\tconst { getBlocksByClientId, getBlocks } = useSelect( blockEditorStore );\n\n\tconst { canMove, canRemove, canInsertBlock, canCopyStyles, canDuplicate } =\n\t\tselected;\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\tconst pasteStyles = usePasteStyles();\n\n\treturn children( {\n\t\tcanCopyStyles,\n\t\tcanDuplicate,\n\t\tcanInsertBlock,\n\t\tcanMove,\n\t\tcanRemove,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t},\n\t\tonMoveTo() {\n\t\t\tsetNavigationMode( true );\n\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\tgetBlocksByClientId( clientIds ),\n\t\t\t\tgroupingBlockName\n\t\t\t);\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = getBlocks( clientIds[ 0 ] );\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tif ( clientIds.length === 1 ) {\n\t\t\t\tflashBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t\tnotifyCopy( 'copy', clientIds );\n\t\t},\n\t\tasync onPasteStyles() {\n\t\t\tawait pasteStyles( getBlocksByClientId( clientIds ) );\n\t\t},\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useDispatch","useSelect","hasBlockSupport","switchToBlockType","store","blocksStore","useNotifyCopy","usePasteStyles","blockEditorStore","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","getDefaultBlockName","getGroupingBlockName","selected","select","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","getDirectInsertBlock","canRemoveBlocks","blocks","rootClientId","canInsertDefaultBlock","directInsertBlock","canRemove","canInsertBlock","canCopyStyles","every","block","name","canDuplicate","getBlocks","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","notifyCopy","pasteStyles","onDuplicate","onRemove","onInsertBefore","onInsertAfter","length","onGroup","groupingBlockName","newBlocks","onUngroup","innerBlocks","onCopy","onPasteStyles"],"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport usePasteStyles from '../use-paste-styles';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetDirectInsertBlock,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\t\t\tgetDefaultBlockName(),\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\tconst directInsertBlock = rootClientId\n\t\t\t\t? getDirectInsertBlock( rootClientId )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\tcanInsertBlock: canInsertDefaultBlock || !! directInsertBlock,\n\t\t\t\tcanCopyStyles: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t( hasBlockSupport( block.name, 'color' ) ||\n\t\t\t\t\t\t\thasBlockSupport( block.name, 'typography' ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\tcanDuplicate: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\t\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, getDefaultBlockName ]\n\t);\n\tconst { getBlocksByClientId, getBlocks } = useSelect( blockEditorStore );\n\n\tconst { canRemove, canInsertBlock, canCopyStyles, canDuplicate } = selected;\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\tconst pasteStyles = usePasteStyles();\n\n\treturn children( {\n\t\tcanCopyStyles,\n\t\tcanDuplicate,\n\t\tcanInsertBlock,\n\t\tcanRemove,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\tgetBlocksByClientId( clientIds ),\n\t\t\t\tgroupingBlockName\n\t\t\t);\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = getBlocks( clientIds[ 0 ] );\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tif ( clientIds.length === 1 ) {\n\t\t\t\tflashBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t\tnotifyCopy( 'copy', clientIds );\n\t\t},\n\t\tasync onPasteStyles() {\n\t\t\tawait pasteStyles( getBlocksByClientId( clientIds ) );\n\t\t},\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -27,8 +27,8 @@ import BlockQuickNavigation from '../block-quick-navigation';
27
27
  import { useBorderPanelLabel } from '../../hooks/border';
28
28
  import { unlock } from '../../lock-unlock';
29
29
  import { jsx as _jsx } from "react/jsx-runtime";
30
- import { jsxs as _jsxs } from "react/jsx-runtime";
31
30
  import { Fragment as _Fragment } from "react/jsx-runtime";
31
+ import { jsxs as _jsxs } from "react/jsx-runtime";
32
32
  function BlockStylesPanel({
33
33
  clientId
34
34
  }) {
@@ -39,42 +39,6 @@ function BlockStylesPanel({
39
39
  })
40
40
  });
41
41
  }
42
- function BlockInspectorLockedBlocks({
43
- topLevelLockedBlock
44
- }) {
45
- const contentClientIds = useSelect(select => {
46
- const {
47
- getClientIdsOfDescendants,
48
- getBlockName,
49
- getBlockEditingMode
50
- } = select(blockEditorStore);
51
- return getClientIdsOfDescendants(topLevelLockedBlock).filter(clientId => getBlockName(clientId) !== 'core/list-item' && getBlockEditingMode(clientId) === 'contentOnly');
52
- }, [topLevelLockedBlock]);
53
- const hasBlockStyles = useSelect(select => {
54
- const {
55
- getBlockName
56
- } = select(blockEditorStore);
57
- const {
58
- getBlockStyles
59
- } = select(blocksStore);
60
- return !!getBlockStyles(getBlockName(topLevelLockedBlock))?.length;
61
- }, [topLevelLockedBlock]);
62
- const blockInformation = useBlockDisplayInformation(topLevelLockedBlock);
63
- return /*#__PURE__*/_jsxs("div", {
64
- className: "block-editor-block-inspector",
65
- children: [/*#__PURE__*/_jsx(BlockCard, {
66
- ...blockInformation,
67
- className: blockInformation.isSynced && 'is-synced'
68
- }), /*#__PURE__*/_jsx(BlockInfo.Slot, {}), hasBlockStyles && /*#__PURE__*/_jsx(BlockStylesPanel, {
69
- clientId: topLevelLockedBlock
70
- }), contentClientIds.length > 0 && /*#__PURE__*/_jsx(PanelBody, {
71
- title: __('Content'),
72
- children: /*#__PURE__*/_jsx(BlockQuickNavigation, {
73
- clientIds: contentClientIds
74
- })
75
- })]
76
- });
77
- }
78
42
  const BlockInspector = ({
79
43
  showNoBlockSelectedMessage = true
80
44
  }) => {
@@ -83,24 +47,25 @@ const BlockInspector = ({
83
47
  selectedBlockName,
84
48
  selectedBlockClientId,
85
49
  blockType,
86
- topLevelLockedBlock
50
+ isSectionBlock
87
51
  } = useSelect(select => {
88
52
  const {
89
53
  getSelectedBlockClientId,
90
54
  getSelectedBlockCount,
91
55
  getBlockName,
92
- getContentLockingParent,
93
- getTemplateLock
56
+ getParentSectionBlock,
57
+ isSectionBlock: _isSectionBlock
94
58
  } = unlock(select(blockEditorStore));
95
59
  const _selectedBlockClientId = getSelectedBlockClientId();
96
- const _selectedBlockName = _selectedBlockClientId && getBlockName(_selectedBlockClientId);
60
+ const renderedBlockClientId = getParentSectionBlock(_selectedBlockClientId) || getSelectedBlockClientId();
61
+ const _selectedBlockName = renderedBlockClientId && getBlockName(renderedBlockClientId);
97
62
  const _blockType = _selectedBlockName && getBlockType(_selectedBlockName);
98
63
  return {
99
64
  count: getSelectedBlockCount(),
100
- selectedBlockClientId: _selectedBlockClientId,
65
+ selectedBlockClientId: renderedBlockClientId,
101
66
  selectedBlockName: _selectedBlockName,
102
67
  blockType: _blockType,
103
- topLevelLockedBlock: getContentLockingParent(_selectedBlockClientId) || (getTemplateLock(_selectedBlockClientId) === 'contentOnly' || _selectedBlockName === 'core/block' ? _selectedBlockClientId : undefined)
68
+ isSectionBlock: _isSectionBlock(renderedBlockClientId)
104
69
  };
105
70
  }, []);
106
71
  const availableTabs = useInspectorControlsTabs(blockType?.name);
@@ -116,7 +81,7 @@ const BlockInspector = ({
116
81
  const borderPanelLabel = useBorderPanelLabel({
117
82
  blockName: selectedBlockName
118
83
  });
119
- if (count > 1) {
84
+ if (count > 1 && !isSectionBlock) {
120
85
  return /*#__PURE__*/_jsxs("div", {
121
86
  className: "block-editor-block-inspector",
122
87
  children: [/*#__PURE__*/_jsx(MultiSelectionInspector, {}), showTabs ? /*#__PURE__*/_jsx(InspectorControlsTabs, {
@@ -159,11 +124,6 @@ const BlockInspector = ({
159
124
  }
160
125
  return null;
161
126
  }
162
- if (topLevelLockedBlock) {
163
- return /*#__PURE__*/_jsx(BlockInspectorLockedBlocks, {
164
- topLevelLockedBlock: topLevelLockedBlock
165
- });
166
- }
167
127
  return /*#__PURE__*/_jsx(BlockInspectorSingleBlockWrapper, {
168
128
  animate: blockInspectorAnimationSettings,
169
129
  wrapper: children => /*#__PURE__*/_jsx(AnimatedContainer, {
@@ -173,7 +133,8 @@ const BlockInspector = ({
173
133
  }),
174
134
  children: /*#__PURE__*/_jsx(BlockInspectorSingleBlock, {
175
135
  clientId: selectedBlockClientId,
176
- blockName: blockType.name
136
+ blockName: blockType.name,
137
+ isSectionBlock: isSectionBlock
177
138
  })
178
139
  });
179
140
  };
@@ -208,10 +169,11 @@ const AnimatedContainer = ({
208
169
  };
209
170
  const BlockInspectorSingleBlock = ({
210
171
  clientId,
211
- blockName
172
+ blockName,
173
+ isSectionBlock
212
174
  }) => {
213
175
  const availableTabs = useInspectorControlsTabs(blockName);
214
- const showTabs = availableTabs?.length > 1;
176
+ const showTabs = !isSectionBlock && availableTabs?.length > 1;
215
177
  const hasBlockStyles = useSelect(select => {
216
178
  const {
217
179
  getBlockStyles
@@ -223,6 +185,18 @@ const BlockInspectorSingleBlock = ({
223
185
  const borderPanelLabel = useBorderPanelLabel({
224
186
  blockName
225
187
  });
188
+ const contentClientIds = useSelect(select => {
189
+ // Avoid unnecessary subscription.
190
+ if (!isSectionBlock) {
191
+ return;
192
+ }
193
+ const {
194
+ getClientIdsOfDescendants,
195
+ getBlockName,
196
+ getBlockEditingMode
197
+ } = select(blockEditorStore);
198
+ return getClientIdsOfDescendants(clientId).filter(current => getBlockName(current) !== 'core/list-item' && getBlockEditingMode(current) === 'contentOnly');
199
+ }, [isSectionBlock, clientId]);
226
200
  return /*#__PURE__*/_jsxs("div", {
227
201
  className: "block-editor-block-inspector",
228
202
  children: [/*#__PURE__*/_jsx(BlockCard, {
@@ -238,30 +212,37 @@ const BlockInspectorSingleBlock = ({
238
212
  }), !showTabs && /*#__PURE__*/_jsxs(_Fragment, {
239
213
  children: [hasBlockStyles && /*#__PURE__*/_jsx(BlockStylesPanel, {
240
214
  clientId: clientId
241
- }), /*#__PURE__*/_jsx(InspectorControls.Slot, {}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
242
- group: "list"
243
- }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
244
- group: "color",
245
- label: __('Color'),
246
- className: "color-block-support-panel__inner-wrapper"
247
- }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
248
- group: "background",
249
- label: __('Background image')
250
- }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
251
- group: "typography",
252
- label: __('Typography')
253
- }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
254
- group: "dimensions",
255
- label: __('Dimensions')
256
- }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
257
- group: "border",
258
- label: borderPanelLabel
259
- }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
260
- group: "styles"
261
- }), /*#__PURE__*/_jsx(PositionControls, {}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
262
- group: "bindings"
263
- }), /*#__PURE__*/_jsx("div", {
264
- children: /*#__PURE__*/_jsx(AdvancedControls, {})
215
+ }), contentClientIds && contentClientIds?.length > 0 && /*#__PURE__*/_jsx(PanelBody, {
216
+ title: __('Content'),
217
+ children: /*#__PURE__*/_jsx(BlockQuickNavigation, {
218
+ clientIds: contentClientIds
219
+ })
220
+ }), !isSectionBlock && /*#__PURE__*/_jsxs(_Fragment, {
221
+ children: [/*#__PURE__*/_jsx(InspectorControls.Slot, {}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
222
+ group: "list"
223
+ }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
224
+ group: "color",
225
+ label: __('Color'),
226
+ className: "color-block-support-panel__inner-wrapper"
227
+ }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
228
+ group: "background",
229
+ label: __('Background image')
230
+ }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
231
+ group: "typography",
232
+ label: __('Typography')
233
+ }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
234
+ group: "dimensions",
235
+ label: __('Dimensions')
236
+ }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
237
+ group: "border",
238
+ label: borderPanelLabel
239
+ }), /*#__PURE__*/_jsx(InspectorControls.Slot, {
240
+ group: "styles"
241
+ }), /*#__PURE__*/_jsx(PositionControls, {}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
242
+ group: "bindings"
243
+ }), /*#__PURE__*/_jsx("div", {
244
+ children: /*#__PURE__*/_jsx(AdvancedControls, {})
245
+ })]
265
246
  })]
266
247
  }), /*#__PURE__*/_jsx(SkipToSelectedBlock, {}, "back")]
267
248
  });