@wordpress/block-editor 12.14.0 → 12.16.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 (664) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +10 -5
  3. package/build/components/block-canvas/index.js +22 -6
  4. package/build/components/block-canvas/index.js.map +1 -1
  5. package/build/components/block-card/index.js +1 -1
  6. package/build/components/block-card/index.js.map +1 -1
  7. package/build/components/block-controls/hook.js +3 -23
  8. package/build/components/block-controls/hook.js.map +1 -1
  9. package/build/components/block-edit/context.js +5 -1
  10. package/build/components/block-edit/context.js.map +1 -1
  11. package/build/components/block-edit/index.js +18 -9
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-info-slot-fill/index.js +3 -4
  14. package/build/components/block-info-slot-fill/index.js.map +1 -1
  15. package/build/components/block-list/block.js +28 -9
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/block.native.js +16 -5
  18. package/build/components/block-list/block.native.js.map +1 -1
  19. package/build/components/block-list/use-block-props/index.js +61 -18
  20. package/build/components/block-list/use-block-props/index.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  22. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  23. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  24. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  27. package/build/components/block-parent-selector/index.js +1 -1
  28. package/build/components/block-parent-selector/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/index.js +25 -16
  30. package/build/components/block-pattern-setup/index.js.map +1 -1
  31. package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
  32. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  33. package/build/components/block-patterns-list/index.js +37 -20
  34. package/build/components/block-patterns-list/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -9
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/index.js +28 -0
  38. package/build/components/block-rename/index.js.map +1 -0
  39. package/build/components/block-rename/is-empty-string.js +10 -0
  40. package/build/components/block-rename/is-empty-string.js.map +1 -0
  41. package/build/components/block-rename/modal.js +90 -0
  42. package/build/components/block-rename/modal.js.map +1 -0
  43. package/build/components/block-rename/rename-control.js +74 -0
  44. package/build/components/block-rename/rename-control.js.map +1 -0
  45. package/build/components/block-rename/use-block-rename.js +17 -0
  46. package/build/components/block-rename/use-block-rename.js.map +1 -0
  47. package/build/components/block-settings/container.native.js +6 -4
  48. package/build/components/block-settings/container.native.js.map +1 -1
  49. package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
  50. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  51. package/build/components/block-settings-menu-controls/index.js +7 -0
  52. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  53. package/build/components/block-styles/index.js +1 -1
  54. package/build/components/block-styles/index.js.map +1 -1
  55. package/build/components/block-styles/index.native.js +3 -2
  56. package/build/components/block-styles/index.native.js.map +1 -1
  57. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  58. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +89 -27
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  62. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  63. package/build/components/block-tools/block-toolbar-popover.js +86 -0
  64. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  65. package/build/components/block-tools/index.js +27 -24
  66. package/build/components/block-tools/index.js.map +1 -1
  67. package/build/components/block-types-list/index.js +6 -2
  68. package/build/components/block-types-list/index.js.map +1 -1
  69. package/build/components/block-types-list/index.native.js +4 -3
  70. package/build/components/block-types-list/index.native.js.map +1 -1
  71. package/build/components/block-variation-picker/index.native.js +2 -1
  72. package/build/components/block-variation-picker/index.native.js.map +1 -1
  73. package/build/components/colors-gradients/control.js +28 -17
  74. package/build/components/colors-gradients/control.js.map +1 -1
  75. package/build/components/date-format-picker/index.js +8 -1
  76. package/build/components/date-format-picker/index.js.map +1 -1
  77. package/build/components/duotone-control/index.js +1 -4
  78. package/build/components/duotone-control/index.js.map +1 -1
  79. package/build/components/global-styles/advanced-panel.js +1 -1
  80. package/build/components/global-styles/advanced-panel.js.map +1 -1
  81. package/build/components/global-styles/color-panel.js +22 -20
  82. package/build/components/global-styles/color-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +9 -3
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/typography-panel.js +20 -31
  86. package/build/components/global-styles/typography-panel.js.map +1 -1
  87. package/build/components/image-link-destinations/index.native.js +118 -0
  88. package/build/components/image-link-destinations/index.native.js.map +1 -0
  89. package/build/components/image-size-control/index.js +0 -5
  90. package/build/components/image-size-control/index.js.map +1 -1
  91. package/build/components/index.native.js +8 -0
  92. package/build/components/index.native.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +3 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
  96. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  97. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  98. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  100. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  101. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  102. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  103. package/build/components/inserter/block-patterns-tab/utils.js +3 -4
  104. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  105. package/build/components/inserter/hooks/use-patterns-state.js +2 -1
  106. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  107. package/build/components/inserter/media-tab/media-panel.js +2 -2
  108. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  109. package/build/components/inserter/menu.js +14 -7
  110. package/build/components/inserter/menu.js.map +1 -1
  111. package/build/components/inserter/preview-panel.js +2 -2
  112. package/build/components/inserter/preview-panel.js.map +1 -1
  113. package/build/components/inserter-button/index.native.js +98 -0
  114. package/build/components/inserter-button/index.native.js.map +1 -0
  115. package/build/components/inserter-button/sparkles.js +23 -0
  116. package/build/components/inserter-button/sparkles.js.map +1 -0
  117. package/build/components/inserter-draggable-blocks/index.js +8 -4
  118. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  119. package/build/components/inserter-listbox/index.js +11 -6
  120. package/build/components/inserter-listbox/index.js.map +1 -1
  121. package/build/components/inserter-listbox/item.js +24 -23
  122. package/build/components/inserter-listbox/item.js.map +1 -1
  123. package/build/components/inserter-listbox/row.js +5 -5
  124. package/build/components/inserter-listbox/row.js.map +1 -1
  125. package/build/components/inspector-controls/fill.js +3 -3
  126. package/build/components/inspector-controls/fill.js.map +1 -1
  127. package/build/components/inspector-controls/fill.native.js +3 -3
  128. package/build/components/inspector-controls/fill.native.js.map +1 -1
  129. package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
  130. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  131. package/build/components/navigable-toolbar/index.js +2 -2
  132. package/build/components/navigable-toolbar/index.js.map +1 -1
  133. package/build/components/preview-options/index.js +6 -60
  134. package/build/components/preview-options/index.js.map +1 -1
  135. package/build/components/rich-text/content.js +26 -23
  136. package/build/components/rich-text/content.js.map +1 -1
  137. package/build/components/rich-text/get-rich-text-values.js +2 -1
  138. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  139. package/build/components/rich-text/index.js +2 -30
  140. package/build/components/rich-text/index.js.map +1 -1
  141. package/build/components/rich-text/index.native.js +10 -17
  142. package/build/components/rich-text/index.native.js.map +1 -1
  143. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  144. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  145. package/build/components/rich-text/native/index.native.js +41 -37
  146. package/build/components/rich-text/native/index.native.js.map +1 -1
  147. package/build/components/rich-text/use-input-rules.js +35 -2
  148. package/build/components/rich-text/use-input-rules.js.map +1 -1
  149. package/build/components/rich-text/with-deprecations.js +50 -0
  150. package/build/components/rich-text/with-deprecations.js.map +1 -0
  151. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  152. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  153. package/build/components/use-block-drop-zone/index.js +74 -9
  154. package/build/components/use-block-drop-zone/index.js.map +1 -1
  155. package/build/components/use-moving-animation/index.js +2 -1
  156. package/build/components/use-moving-animation/index.js.map +1 -1
  157. package/build/components/use-on-block-drop/index.js +1 -1
  158. package/build/components/use-on-block-drop/index.js.map +1 -1
  159. package/build/components/use-resize-canvas/index.js +4 -1
  160. package/build/components/use-resize-canvas/index.js.map +1 -1
  161. package/build/components/use-settings/index.js +16 -2
  162. package/build/components/use-settings/index.js.map +1 -1
  163. package/build/hooks/align.js +20 -68
  164. package/build/hooks/align.js.map +1 -1
  165. package/build/hooks/align.native.js +11 -1
  166. package/build/hooks/align.native.js.map +1 -1
  167. package/build/hooks/anchor.js +13 -29
  168. package/build/hooks/anchor.js.map +1 -1
  169. package/build/hooks/background.js +28 -31
  170. package/build/hooks/background.js.map +1 -1
  171. package/build/hooks/block-hooks.js +24 -32
  172. package/build/hooks/block-hooks.js.map +1 -1
  173. package/build/hooks/block-renaming.js +38 -0
  174. package/build/hooks/block-renaming.js.map +1 -1
  175. package/build/hooks/border.js +58 -80
  176. package/build/hooks/border.js.map +1 -1
  177. package/build/hooks/color.js +76 -89
  178. package/build/hooks/color.js.map +1 -1
  179. package/build/hooks/content-lock-ui.js +29 -29
  180. package/build/hooks/content-lock-ui.js.map +1 -1
  181. package/build/hooks/custom-class-name.js +12 -29
  182. package/build/hooks/custom-class-name.js.map +1 -1
  183. package/build/hooks/custom-fields.js +64 -73
  184. package/build/hooks/custom-fields.js.map +1 -1
  185. package/build/hooks/dimensions.js +21 -17
  186. package/build/hooks/dimensions.js.map +1 -1
  187. package/build/hooks/duotone.js +31 -61
  188. package/build/hooks/duotone.js.map +1 -1
  189. package/build/hooks/font-family.js +16 -25
  190. package/build/hooks/font-family.js.map +1 -1
  191. package/build/hooks/font-size.js +51 -119
  192. package/build/hooks/font-size.js.map +1 -1
  193. package/build/hooks/index.js +25 -15
  194. package/build/hooks/index.js.map +1 -1
  195. package/build/hooks/index.native.js +10 -3
  196. package/build/hooks/index.native.js.map +1 -1
  197. package/build/hooks/layout-child.js +68 -0
  198. package/build/hooks/layout-child.js.map +1 -0
  199. package/build/hooks/layout.js +29 -108
  200. package/build/hooks/layout.js.map +1 -1
  201. package/build/hooks/padding.js +2 -2
  202. package/build/hooks/padding.js.map +1 -1
  203. package/build/hooks/position.js +40 -62
  204. package/build/hooks/position.js.map +1 -1
  205. package/build/hooks/style.js +51 -88
  206. package/build/hooks/style.js.map +1 -1
  207. package/build/hooks/typography.js +34 -14
  208. package/build/hooks/typography.js.map +1 -1
  209. package/build/hooks/utils.js +154 -7
  210. package/build/hooks/utils.js.map +1 -1
  211. package/build/layouts/constrained.js +4 -3
  212. package/build/layouts/constrained.js.map +1 -1
  213. package/build/private-apis.js +0 -2
  214. package/build/private-apis.js.map +1 -1
  215. package/build/store/private-actions.js +8 -0
  216. package/build/store/private-actions.js.map +1 -1
  217. package/build/store/private-selectors.js +34 -0
  218. package/build/store/private-selectors.js.map +1 -1
  219. package/build/store/reducer.js +8 -0
  220. package/build/store/reducer.js.map +1 -1
  221. package/build/store/selectors.js +10 -58
  222. package/build/store/selectors.js.map +1 -1
  223. package/build/store/utils.js +66 -0
  224. package/build/store/utils.js.map +1 -0
  225. package/build/utils/object.js +21 -61
  226. package/build/utils/object.js.map +1 -1
  227. package/build/utils/selection.js +9 -1
  228. package/build/utils/selection.js.map +1 -1
  229. package/build/utils/transform-styles/index.js +26 -6
  230. package/build/utils/transform-styles/index.js.map +1 -1
  231. package/build-module/components/block-canvas/index.js +23 -7
  232. package/build-module/components/block-canvas/index.js.map +1 -1
  233. package/build-module/components/block-card/index.js +1 -1
  234. package/build-module/components/block-card/index.js.map +1 -1
  235. package/build-module/components/block-controls/hook.js +4 -24
  236. package/build-module/components/block-controls/hook.js.map +1 -1
  237. package/build-module/components/block-edit/context.js +2 -0
  238. package/build-module/components/block-edit/context.js.map +1 -1
  239. package/build-module/components/block-edit/index.js +19 -10
  240. package/build-module/components/block-edit/index.js.map +1 -1
  241. package/build-module/components/block-info-slot-fill/index.js +3 -3
  242. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  243. package/build-module/components/block-list/block.js +29 -10
  244. package/build-module/components/block-list/block.js.map +1 -1
  245. package/build-module/components/block-list/block.native.js +16 -5
  246. package/build-module/components/block-list/block.native.js.map +1 -1
  247. package/build-module/components/block-list/use-block-props/index.js +62 -19
  248. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  249. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  250. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  251. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  252. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  253. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  254. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  255. package/build-module/components/block-parent-selector/index.js +1 -1
  256. package/build-module/components/block-parent-selector/index.js.map +1 -1
  257. package/build-module/components/block-pattern-setup/index.js +24 -15
  258. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  259. package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
  260. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  261. package/build-module/components/block-patterns-list/index.js +37 -20
  262. package/build-module/components/block-patterns-list/index.js.map +1 -1
  263. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  264. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  265. package/build-module/components/block-rename/index.js +4 -0
  266. package/build-module/components/block-rename/index.js.map +1 -0
  267. package/build-module/components/block-rename/is-empty-string.js +4 -0
  268. package/build-module/components/block-rename/is-empty-string.js.map +1 -0
  269. package/build-module/components/block-rename/modal.js +82 -0
  270. package/build-module/components/block-rename/modal.js.map +1 -0
  271. package/build-module/components/block-rename/rename-control.js +66 -0
  272. package/build-module/components/block-rename/rename-control.js.map +1 -0
  273. package/build-module/components/block-rename/use-block-rename.js +10 -0
  274. package/build-module/components/block-rename/use-block-rename.js.map +1 -0
  275. package/build-module/components/block-settings/container.native.js +4 -2
  276. package/build-module/components/block-settings/container.native.js.map +1 -1
  277. package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
  278. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  279. package/build-module/components/block-settings-menu-controls/index.js +7 -0
  280. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  281. package/build-module/components/block-styles/index.js +1 -1
  282. package/build-module/components/block-styles/index.js.map +1 -1
  283. package/build-module/components/block-styles/index.native.js +3 -2
  284. package/build-module/components/block-styles/index.native.js.map +1 -1
  285. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  286. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  287. package/build-module/components/block-toolbar/index.js +88 -25
  288. package/build-module/components/block-toolbar/index.js.map +1 -1
  289. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  290. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  291. package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
  292. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  293. package/build-module/components/block-tools/index.js +27 -24
  294. package/build-module/components/block-tools/index.js.map +1 -1
  295. package/build-module/components/block-types-list/index.js +6 -2
  296. package/build-module/components/block-types-list/index.js.map +1 -1
  297. package/build-module/components/block-types-list/index.native.js +2 -1
  298. package/build-module/components/block-types-list/index.native.js.map +1 -1
  299. package/build-module/components/block-variation-picker/index.native.js +2 -1
  300. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  301. package/build-module/components/colors-gradients/control.js +29 -18
  302. package/build-module/components/colors-gradients/control.js.map +1 -1
  303. package/build-module/components/date-format-picker/index.js +8 -1
  304. package/build-module/components/date-format-picker/index.js.map +1 -1
  305. package/build-module/components/duotone-control/index.js +1 -4
  306. package/build-module/components/duotone-control/index.js.map +1 -1
  307. package/build-module/components/global-styles/advanced-panel.js +1 -1
  308. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  309. package/build-module/components/global-styles/color-panel.js +23 -21
  310. package/build-module/components/global-styles/color-panel.js.map +1 -1
  311. package/build-module/components/global-styles/filters-panel.js +10 -4
  312. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  313. package/build-module/components/global-styles/typography-panel.js +20 -31
  314. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  315. package/build-module/components/image-link-destinations/index.native.js +109 -0
  316. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  317. package/build-module/components/image-size-control/index.js +0 -5
  318. package/build-module/components/image-size-control/index.js.map +1 -1
  319. package/build-module/components/index.native.js +1 -0
  320. package/build-module/components/index.native.js.map +1 -1
  321. package/build-module/components/inner-blocks/index.js +3 -1
  322. package/build-module/components/inner-blocks/index.js.map +1 -1
  323. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
  324. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  325. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  326. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  327. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
  328. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  329. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +2 -2
  330. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  331. package/build-module/components/inserter/block-patterns-tab/utils.js +3 -4
  332. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  333. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
  334. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  335. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  336. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  337. package/build-module/components/inserter/menu.js +14 -7
  338. package/build-module/components/inserter/menu.js.map +1 -1
  339. package/build-module/components/inserter/preview-panel.js +2 -2
  340. package/build-module/components/inserter/preview-panel.js.map +1 -1
  341. package/build-module/components/inserter-button/index.native.js +89 -0
  342. package/build-module/components/inserter-button/index.native.js.map +1 -0
  343. package/build-module/components/inserter-button/sparkles.js +15 -0
  344. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  345. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  346. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  347. package/build-module/components/inserter-listbox/index.js +13 -8
  348. package/build-module/components/inserter-listbox/index.js.map +1 -1
  349. package/build-module/components/inserter-listbox/item.js +25 -23
  350. package/build-module/components/inserter-listbox/item.js.map +1 -1
  351. package/build-module/components/inserter-listbox/row.js +6 -5
  352. package/build-module/components/inserter-listbox/row.js.map +1 -1
  353. package/build-module/components/inspector-controls/fill.js +3 -3
  354. package/build-module/components/inspector-controls/fill.js.map +1 -1
  355. package/build-module/components/inspector-controls/fill.native.js +3 -3
  356. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  357. package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
  358. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  359. package/build-module/components/navigable-toolbar/index.js +2 -2
  360. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  361. package/build-module/components/preview-options/index.js +6 -60
  362. package/build-module/components/preview-options/index.js.map +1 -1
  363. package/build-module/components/rich-text/content.js +25 -21
  364. package/build-module/components/rich-text/content.js.map +1 -1
  365. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  366. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  367. package/build-module/components/rich-text/index.js +4 -32
  368. package/build-module/components/rich-text/index.js.map +1 -1
  369. package/build-module/components/rich-text/index.native.js +11 -19
  370. package/build-module/components/rich-text/index.native.js.map +1 -1
  371. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  372. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  373. package/build-module/components/rich-text/native/index.native.js +41 -37
  374. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  375. package/build-module/components/rich-text/use-input-rules.js +36 -3
  376. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  377. package/build-module/components/rich-text/with-deprecations.js +42 -0
  378. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  379. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  380. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  381. package/build-module/components/use-block-drop-zone/index.js +73 -9
  382. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  383. package/build-module/components/use-moving-animation/index.js +2 -1
  384. package/build-module/components/use-moving-animation/index.js.map +1 -1
  385. package/build-module/components/use-on-block-drop/index.js +1 -1
  386. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  387. package/build-module/components/use-resize-canvas/index.js +4 -1
  388. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  389. package/build-module/components/use-settings/index.js +15 -3
  390. package/build-module/components/use-settings/index.js.map +1 -1
  391. package/build-module/hooks/align.js +19 -66
  392. package/build-module/hooks/align.js.map +1 -1
  393. package/build-module/hooks/align.native.js +1 -0
  394. package/build-module/hooks/align.native.js.map +1 -1
  395. package/build-module/hooks/anchor.js +11 -26
  396. package/build-module/hooks/anchor.js.map +1 -1
  397. package/build-module/hooks/background.js +26 -28
  398. package/build-module/hooks/background.js.map +1 -1
  399. package/build-module/hooks/block-hooks.js +22 -30
  400. package/build-module/hooks/block-hooks.js.map +1 -1
  401. package/build-module/hooks/block-renaming.js +36 -0
  402. package/build-module/hooks/block-renaming.js.map +1 -1
  403. package/build-module/hooks/border.js +57 -78
  404. package/build-module/hooks/border.js.map +1 -1
  405. package/build-module/hooks/color.js +74 -86
  406. package/build-module/hooks/color.js.map +1 -1
  407. package/build-module/hooks/content-lock-ui.js +27 -27
  408. package/build-module/hooks/content-lock-ui.js.map +1 -1
  409. package/build-module/hooks/custom-class-name.js +11 -27
  410. package/build-module/hooks/custom-class-name.js.map +1 -1
  411. package/build-module/hooks/custom-fields.js +60 -74
  412. package/build-module/hooks/custom-fields.js.map +1 -1
  413. package/build-module/hooks/dimensions.js +21 -16
  414. package/build-module/hooks/dimensions.js.map +1 -1
  415. package/build-module/hooks/duotone.js +30 -61
  416. package/build-module/hooks/duotone.js.map +1 -1
  417. package/build-module/hooks/font-family.js +14 -23
  418. package/build-module/hooks/font-family.js.map +1 -1
  419. package/build-module/hooks/font-size.js +49 -119
  420. package/build-module/hooks/font-size.js.map +1 -1
  421. package/build-module/hooks/index.js +18 -15
  422. package/build-module/hooks/index.js.map +1 -1
  423. package/build-module/hooks/index.native.js +5 -3
  424. package/build-module/hooks/index.native.js.map +1 -1
  425. package/build-module/hooks/layout-child.js +60 -0
  426. package/build-module/hooks/layout-child.js.map +1 -0
  427. package/build-module/hooks/layout.js +26 -105
  428. package/build-module/hooks/layout.js.map +1 -1
  429. package/build-module/hooks/padding.js +2 -2
  430. package/build-module/hooks/padding.js.map +1 -1
  431. package/build-module/hooks/position.js +38 -59
  432. package/build-module/hooks/position.js.map +1 -1
  433. package/build-module/hooks/style.js +51 -84
  434. package/build-module/hooks/style.js.map +1 -1
  435. package/build-module/hooks/typography.js +33 -12
  436. package/build-module/hooks/typography.js.map +1 -1
  437. package/build-module/hooks/utils.js +149 -6
  438. package/build-module/hooks/utils.js.map +1 -1
  439. package/build-module/layouts/constrained.js +4 -3
  440. package/build-module/layouts/constrained.js.map +1 -1
  441. package/build-module/private-apis.js +0 -2
  442. package/build-module/private-apis.js.map +1 -1
  443. package/build-module/store/private-actions.js +7 -0
  444. package/build-module/store/private-actions.js.map +1 -1
  445. package/build-module/store/private-selectors.js +33 -1
  446. package/build-module/store/private-selectors.js.map +1 -1
  447. package/build-module/store/reducer.js +8 -0
  448. package/build-module/store/reducer.js.map +1 -1
  449. package/build-module/store/selectors.js +3 -51
  450. package/build-module/store/selectors.js.map +1 -1
  451. package/build-module/store/utils.js +56 -0
  452. package/build-module/store/utils.js.map +1 -0
  453. package/build-module/utils/object.js +21 -60
  454. package/build-module/utils/object.js.map +1 -1
  455. package/build-module/utils/selection.js +9 -1
  456. package/build-module/utils/selection.js.map +1 -1
  457. package/build-module/utils/transform-styles/index.js +24 -7
  458. package/build-module/utils/transform-styles/index.js.map +1 -1
  459. package/build-style/content-rtl.css +6 -6
  460. package/build-style/content.css +6 -6
  461. package/build-style/style-rtl.css +123 -298
  462. package/build-style/style.css +123 -298
  463. package/package.json +31 -31
  464. package/src/components/block-canvas/index.js +31 -17
  465. package/src/components/block-caption/README.md +2 -2
  466. package/src/components/block-card/index.js +5 -3
  467. package/src/components/block-card/style.scss +7 -3
  468. package/src/components/block-controls/hook.js +8 -30
  469. package/src/components/block-controls/test/index.js +3 -3
  470. package/src/components/block-edit/context.js +3 -0
  471. package/src/components/block-edit/index.js +36 -10
  472. package/src/components/block-info-slot-fill/index.js +6 -3
  473. package/src/components/block-inspector/style.scss +0 -4
  474. package/src/components/block-list/block.js +39 -5
  475. package/src/components/block-list/block.native.js +20 -4
  476. package/src/components/block-list/use-block-props/index.js +74 -21
  477. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  478. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  479. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  480. package/src/components/block-parent-selector/index.js +1 -1
  481. package/src/components/block-pattern-setup/index.js +38 -22
  482. package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
  483. package/src/components/block-pattern-setup/style.scss +4 -1
  484. package/src/components/block-patterns-list/README.md +4 -4
  485. package/src/components/block-patterns-list/index.js +61 -35
  486. package/src/components/block-patterns-list/style.scss +7 -0
  487. package/src/components/block-removal-warning-modal/index.js +7 -14
  488. package/src/components/block-rename/index.js +3 -0
  489. package/src/components/block-rename/is-empty-string.js +3 -0
  490. package/src/components/block-rename/modal.js +121 -0
  491. package/src/components/block-rename/rename-control.js +80 -0
  492. package/src/components/block-rename/use-block-rename.js +10 -0
  493. package/src/components/block-settings/container.native.js +3 -5
  494. package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
  495. package/src/components/block-settings-menu-controls/index.js +9 -0
  496. package/src/components/block-styles/index.js +1 -1
  497. package/src/components/block-styles/index.native.js +4 -2
  498. package/src/components/block-styles/style.scss +0 -11
  499. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  500. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
  501. package/src/components/block-toolbar/index.js +180 -95
  502. package/src/components/block-toolbar/style.scss +50 -66
  503. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  504. package/src/components/block-tools/block-toolbar-popover.js +90 -0
  505. package/src/components/block-tools/index.js +42 -29
  506. package/src/components/block-tools/style.scss +60 -172
  507. package/src/components/block-types-list/index.js +5 -4
  508. package/src/components/block-types-list/index.native.js +2 -1
  509. package/src/components/block-variation-picker/index.native.js +1 -1
  510. package/src/components/button-block-appender/content.scss +2 -2
  511. package/src/components/colors-gradients/control.js +49 -30
  512. package/src/components/colors-gradients/style.scss +0 -7
  513. package/src/components/date-format-picker/index.js +7 -0
  514. package/src/components/duotone-control/index.js +2 -5
  515. package/src/components/duotone-control/style.scss +1 -6
  516. package/src/components/editable-text/README.md +0 -36
  517. package/src/components/global-styles/advanced-panel.js +1 -1
  518. package/src/components/global-styles/color-panel.js +34 -25
  519. package/src/components/global-styles/filters-panel.js +8 -4
  520. package/src/components/global-styles/typography-panel.js +23 -43
  521. package/src/components/image-link-destinations/index.native.js +152 -0
  522. package/src/components/image-link-destinations/style.native.scss +16 -0
  523. package/src/components/image-size-control/index.js +0 -6
  524. package/src/components/index.native.js +1 -0
  525. package/src/components/inner-blocks/README.md +13 -2
  526. package/src/components/inner-blocks/index.js +6 -2
  527. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
  528. package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
  529. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
  530. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
  531. package/src/components/inserter/block-patterns-tab/utils.js +6 -4
  532. package/src/components/inserter/hooks/use-patterns-state.js +3 -1
  533. package/src/components/inserter/media-tab/media-panel.js +1 -1
  534. package/src/components/inserter/menu.js +16 -8
  535. package/src/components/inserter/preview-panel.js +2 -2
  536. package/src/components/inserter/style.scss +15 -17
  537. package/src/components/inserter-button/README.md +62 -0
  538. package/src/components/inserter-button/index.native.js +116 -0
  539. package/src/components/inserter-button/sparkles.js +15 -0
  540. package/src/components/inserter-button/style.native.scss +72 -0
  541. package/src/components/inserter-draggable-blocks/index.js +18 -5
  542. package/src/components/inserter-listbox/index.js +11 -7
  543. package/src/components/inserter-listbox/item.js +11 -12
  544. package/src/components/inserter-listbox/row.js +6 -12
  545. package/src/components/inspector-controls/fill.js +6 -3
  546. package/src/components/inspector-controls/fill.native.js +6 -3
  547. package/src/components/link-control/style.scss +1 -1
  548. package/src/components/link-control/test/index.js +1 -1
  549. package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
  550. package/src/components/navigable-toolbar/README.md +2 -0
  551. package/src/components/navigable-toolbar/index.js +2 -2
  552. package/src/components/plain-text/README.md +0 -28
  553. package/src/components/preview-options/index.js +6 -84
  554. package/src/components/rich-text/README.md +0 -58
  555. package/src/components/rich-text/content.js +27 -20
  556. package/src/components/rich-text/get-rich-text-values.js +6 -1
  557. package/src/components/rich-text/index.js +5 -46
  558. package/src/components/rich-text/index.native.js +9 -26
  559. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  560. package/src/components/rich-text/native/index.native.js +52 -50
  561. package/src/components/rich-text/use-input-rules.js +36 -3
  562. package/src/components/rich-text/with-deprecations.js +51 -0
  563. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  564. package/src/components/url-input/README.md +1 -74
  565. package/src/components/use-block-drop-zone/index.js +118 -15
  566. package/src/components/use-moving-animation/index.js +1 -1
  567. package/src/components/use-on-block-drop/index.js +2 -1
  568. package/src/components/use-resize-canvas/README.md +3 -3
  569. package/src/components/use-resize-canvas/index.js +4 -1
  570. package/src/components/use-settings/index.js +17 -3
  571. package/src/components/use-settings/test/index.js +1 -1
  572. package/src/hooks/align.js +15 -76
  573. package/src/hooks/align.native.js +1 -0
  574. package/src/hooks/anchor.js +13 -33
  575. package/src/hooks/background.js +28 -23
  576. package/src/hooks/block-hooks.js +22 -51
  577. package/src/hooks/block-renaming.js +33 -0
  578. package/src/hooks/border.js +67 -118
  579. package/src/hooks/color.js +100 -132
  580. package/src/hooks/content-lock-ui.js +110 -122
  581. package/src/hooks/custom-class-name.js +8 -40
  582. package/src/hooks/custom-fields.js +70 -94
  583. package/src/hooks/dimensions.js +20 -16
  584. package/src/hooks/duotone.js +70 -127
  585. package/src/hooks/font-family.js +10 -29
  586. package/src/hooks/font-size.js +66 -162
  587. package/src/hooks/index.js +42 -15
  588. package/src/hooks/index.native.js +6 -3
  589. package/src/hooks/layout-child.js +53 -0
  590. package/src/hooks/layout.js +25 -110
  591. package/src/hooks/padding.js +2 -2
  592. package/src/hooks/position.js +50 -90
  593. package/src/hooks/style.js +117 -187
  594. package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
  595. package/src/hooks/test/align.js +1 -178
  596. package/src/hooks/typography.js +20 -16
  597. package/src/hooks/utils.js +187 -6
  598. package/src/layouts/constrained.js +57 -50
  599. package/src/private-apis.js +0 -2
  600. package/src/store/private-actions.js +8 -0
  601. package/src/store/private-selectors.js +45 -0
  602. package/src/store/reducer.js +8 -0
  603. package/src/store/selectors.js +5 -67
  604. package/src/store/utils.js +74 -0
  605. package/src/style.scss +1 -3
  606. package/src/utils/object.js +18 -69
  607. package/src/utils/selection.js +9 -2
  608. package/src/utils/test/transform-styles.js +49 -0
  609. package/src/utils/transform-styles/index.js +39 -13
  610. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  611. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  612. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  613. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  614. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  615. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  616. package/build/components/block-tools/back-compat.js +0 -45
  617. package/build/components/block-tools/back-compat.js.map +0 -1
  618. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  619. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  620. package/build/components/block-tools/selected-block-tools.js +0 -113
  621. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  622. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  623. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  624. package/build/components/use-display-block-controls/index.js +0 -39
  625. package/build/components/use-display-block-controls/index.js.map +0 -1
  626. package/build/components/use-display-block-controls/index.native.js +0 -39
  627. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  628. package/build/hooks/block-rename-ui.js +0 -167
  629. package/build/hooks/block-rename-ui.js.map +0 -1
  630. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  631. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  632. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  633. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  634. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  635. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  636. package/build-module/components/block-tools/back-compat.js +0 -35
  637. package/build-module/components/block-tools/back-compat.js.map +0 -1
  638. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  639. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  640. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  641. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  642. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  643. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  644. package/build-module/components/use-display-block-controls/index.js +0 -32
  645. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  646. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  647. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  648. package/build-module/hooks/block-rename-ui.js +0 -159
  649. package/build-module/hooks/block-rename-ui.js.map +0 -1
  650. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  651. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  652. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  653. package/src/components/block-parent-selector/style.scss +0 -11
  654. package/src/components/block-tools/back-compat.js +0 -35
  655. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  656. package/src/components/block-tools/selected-block-tools.js +0 -127
  657. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  658. package/src/components/preview-options/README.md +0 -94
  659. package/src/components/preview-options/style.scss +0 -64
  660. package/src/components/use-display-block-controls/index.js +0 -36
  661. package/src/components/use-display-block-controls/index.native.js +0 -37
  662. package/src/hooks/block-rename-ui.js +0 -228
  663. package/src/hooks/test/color.js +0 -112
  664. /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
@@ -4,7 +4,6 @@
4
4
  import { addFilter } from '@wordpress/hooks';
5
5
  import { hasBlockSupport } from '@wordpress/blocks';
6
6
  import TokenList from '@wordpress/token-list';
7
- import { createHigherOrderComponent } from '@wordpress/compose';
8
7
  import { select } from '@wordpress/data';
9
8
 
10
9
  /**
@@ -59,19 +58,23 @@ function addAttributes( settings ) {
59
58
  /**
60
59
  * Override props assigned to save component to inject font size.
61
60
  *
62
- * @param {Object} props Additional props applied to save element.
63
- * @param {Object} blockType Block type.
64
- * @param {Object} attributes Block attributes.
61
+ * @param {Object} props Additional props applied to save element.
62
+ * @param {Object} blockNameOrType Block type.
63
+ * @param {Object} attributes Block attributes.
65
64
  *
66
65
  * @return {Object} Filtered props applied to save element.
67
66
  */
68
- function addSaveProps( props, blockType, attributes ) {
69
- if ( ! hasBlockSupport( blockType, FONT_SIZE_SUPPORT_KEY ) ) {
67
+ function addSaveProps( props, blockNameOrType, attributes ) {
68
+ if ( ! hasBlockSupport( blockNameOrType, FONT_SIZE_SUPPORT_KEY ) ) {
70
69
  return props;
71
70
  }
72
71
 
73
72
  if (
74
- shouldSkipSerialization( blockType, TYPOGRAPHY_SUPPORT_KEY, 'fontSize' )
73
+ shouldSkipSerialization(
74
+ blockNameOrType,
75
+ TYPOGRAPHY_SUPPORT_KEY,
76
+ 'fontSize'
77
+ )
75
78
  ) {
76
79
  return props;
77
80
  }
@@ -85,31 +88,6 @@ function addSaveProps( props, blockType, attributes ) {
85
88
  return props;
86
89
  }
87
90
 
88
- /**
89
- * Filters registered block settings to expand the block edit wrapper
90
- * by applying the desired styles and classnames.
91
- *
92
- * @param {Object} settings Original block settings.
93
- *
94
- * @return {Object} Filtered block settings.
95
- */
96
- function addEditProps( settings ) {
97
- if ( ! hasBlockSupport( settings, FONT_SIZE_SUPPORT_KEY ) ) {
98
- return settings;
99
- }
100
-
101
- const existingGetEditWrapperProps = settings.getEditWrapperProps;
102
- settings.getEditWrapperProps = ( attributes ) => {
103
- let props = {};
104
- if ( existingGetEditWrapperProps ) {
105
- props = existingGetEditWrapperProps( attributes );
106
- }
107
- return addSaveProps( props, settings, attributes );
108
- };
109
-
110
- return settings;
111
- }
112
-
113
91
  /**
114
92
  * Inspector control panel containing the font size related configuration
115
93
  *
@@ -175,62 +153,69 @@ export function useIsFontSizeDisabled( { name: blockName } = {} ) {
175
153
  );
176
154
  }
177
155
 
178
- /**
179
- * Add inline styles for font sizes.
180
- * Ideally, this is not needed and themes load the font-size classes on the
181
- * editor.
182
- *
183
- * @param {Function} BlockListBlock Original component.
184
- *
185
- * @return {Function} Wrapped component.
186
- */
187
- const withFontSizeInlineStyles = createHigherOrderComponent(
188
- ( BlockListBlock ) => ( props ) => {
189
- const [ fontSizes ] = useSettings( 'typography.fontSizes' );
190
- const {
191
- name: blockName,
192
- attributes: { fontSize, style },
193
- wrapperProps,
194
- } = props;
156
+ function useBlockProps( { name, fontSize, style } ) {
157
+ const [ fontSizes ] = useSettings( 'typography.fontSizes' );
195
158
 
196
- // Only add inline styles if the block supports font sizes,
197
- // doesn't skip serialization of font sizes,
198
- // doesn't already have an inline font size,
199
- // and does have a class to extract the font size from.
200
- if (
201
- ! hasBlockSupport( blockName, FONT_SIZE_SUPPORT_KEY ) ||
202
- shouldSkipSerialization(
203
- blockName,
204
- TYPOGRAPHY_SUPPORT_KEY,
205
- 'fontSize'
206
- ) ||
207
- ! fontSize ||
208
- style?.typography?.fontSize
209
- ) {
210
- return <BlockListBlock { ...props } />;
211
- }
159
+ // Only add inline styles if the block supports font sizes,
160
+ // doesn't skip serialization of font sizes,
161
+ // doesn't already have an inline font size,
162
+ // and does have a class to extract the font size from.
163
+ if (
164
+ ! hasBlockSupport( name, FONT_SIZE_SUPPORT_KEY ) ||
165
+ shouldSkipSerialization( name, TYPOGRAPHY_SUPPORT_KEY, 'fontSize' ) ||
166
+ ! fontSize
167
+ ) {
168
+ return;
169
+ }
212
170
 
213
- const fontSizeValue = getFontSize(
214
- fontSizes,
215
- fontSize,
216
- style?.typography?.fontSize
217
- ).size;
171
+ let props = {};
218
172
 
219
- const newProps = {
220
- ...props,
221
- wrapperProps: {
222
- ...wrapperProps,
223
- style: {
224
- fontSize: fontSizeValue,
225
- ...wrapperProps?.style,
226
- },
173
+ if ( ! style?.typography?.fontSize ) {
174
+ props = {
175
+ style: {
176
+ fontSize: getFontSize(
177
+ fontSizes,
178
+ fontSize,
179
+ style?.typography?.fontSize
180
+ ).size,
227
181
  },
228
182
  };
183
+ }
184
+
185
+ // TODO: This sucks! We should be using useSetting( 'typography.fluid' )
186
+ // or even useSelect( blockEditorStore ). We can't do either here
187
+ // because getEditWrapperProps is a plain JavaScript function called by
188
+ // BlockListBlock and not a React component rendered within
189
+ // BlockListContext.Provider. If we set fontSize using editor.
190
+ // BlockListBlock instead of using getEditWrapperProps then the value is
191
+ // clobbered when the core/style/addEditProps filter runs.
192
+
193
+ // TODO: We can do the thing above now.
194
+ const fluidTypographySettings = getFluidTypographyOptionsFromSettings(
195
+ select( blockEditorStore ).getSettings().__experimentalFeatures
196
+ );
197
+
198
+ if ( fontSize ) {
199
+ props = {
200
+ style: {
201
+ fontSize: getTypographyFontSizeValue(
202
+ { size: fontSize },
203
+ fluidTypographySettings
204
+ ),
205
+ },
206
+ };
207
+ }
229
208
 
230
- return <BlockListBlock { ...newProps } />;
209
+ return addSaveProps( props, name, { fontSize } );
210
+ }
211
+
212
+ export default {
213
+ useBlockProps,
214
+ attributeKeys: [ 'fontSize', 'style' ],
215
+ hasSupport( name ) {
216
+ return hasBlockSupport( name, FONT_SIZE_SUPPORT_KEY );
231
217
  },
232
- 'withFontSizeInlineStyles'
233
- );
218
+ };
234
219
 
235
220
  const MIGRATION_PATHS = {
236
221
  fontSize: [ [ 'fontSize' ], [ 'style', 'typography', 'fontSize' ] ],
@@ -254,70 +239,6 @@ function addTransforms( result, source, index, results ) {
254
239
  );
255
240
  }
256
241
 
257
- /**
258
- * Allow custom font sizes to appear fluid when fluid typography is enabled at
259
- * the theme level.
260
- *
261
- * Adds a custom getEditWrapperProps() callback to all block types that support
262
- * font sizes. Then, if fluid typography is enabled, this callback will swap any
263
- * custom font size in style.fontSize with a fluid font size (i.e. one that uses
264
- * clamp()).
265
- *
266
- * It's important that this hook runs after 'core/style/addEditProps' sets
267
- * style.fontSize as otherwise fontSize will be overwritten.
268
- *
269
- * @param {Object} blockType Block settings object.
270
- */
271
- function addEditPropsForFluidCustomFontSizes( blockType ) {
272
- if (
273
- ! hasBlockSupport( blockType, FONT_SIZE_SUPPORT_KEY ) ||
274
- shouldSkipSerialization( blockType, TYPOGRAPHY_SUPPORT_KEY, 'fontSize' )
275
- ) {
276
- return blockType;
277
- }
278
-
279
- const existingGetEditWrapperProps = blockType.getEditWrapperProps;
280
-
281
- blockType.getEditWrapperProps = ( attributes ) => {
282
- const wrapperProps = existingGetEditWrapperProps
283
- ? existingGetEditWrapperProps( attributes )
284
- : {};
285
-
286
- const fontSize = wrapperProps?.style?.fontSize;
287
-
288
- // TODO: This sucks! We should be using useSetting( 'typography.fluid' )
289
- // or even useSelect( blockEditorStore ). We can't do either here
290
- // because getEditWrapperProps is a plain JavaScript function called by
291
- // BlockListBlock and not a React component rendered within
292
- // BlockListContext.Provider. If we set fontSize using editor.
293
- // BlockListBlock instead of using getEditWrapperProps then the value is
294
- // clobbered when the core/style/addEditProps filter runs.
295
- const fluidTypographySettings = getFluidTypographyOptionsFromSettings(
296
- select( blockEditorStore ).getSettings().__experimentalFeatures
297
- );
298
- const newFontSize = fontSize
299
- ? getTypographyFontSizeValue(
300
- { size: fontSize },
301
- fluidTypographySettings
302
- )
303
- : null;
304
-
305
- if ( newFontSize === null ) {
306
- return wrapperProps;
307
- }
308
-
309
- return {
310
- ...wrapperProps,
311
- style: {
312
- ...wrapperProps?.style,
313
- fontSize: newFontSize,
314
- },
315
- };
316
- };
317
-
318
- return blockType;
319
- }
320
-
321
242
  addFilter(
322
243
  'blocks.registerBlockType',
323
244
  'core/font/addAttribute',
@@ -330,25 +251,8 @@ addFilter(
330
251
  addSaveProps
331
252
  );
332
253
 
333
- addFilter( 'blocks.registerBlockType', 'core/font/addEditProps', addEditProps );
334
-
335
- addFilter(
336
- 'editor.BlockListBlock',
337
- 'core/font-size/with-font-size-inline-styles',
338
- withFontSizeInlineStyles
339
- );
340
-
341
254
  addFilter(
342
255
  'blocks.switchToBlockType.transformedBlock',
343
256
  'core/font-size/addTransforms',
344
257
  addTransforms
345
258
  );
346
-
347
- addFilter(
348
- 'blocks.registerBlockType',
349
- 'core/font-size/addEditPropsForFluidCustomFontSizes',
350
- addEditPropsForFluidCustomFontSizes,
351
- // Run after 'core/style/addEditProps' so that the style object has already
352
- // been translated into inline CSS.
353
- 11
354
- );
@@ -1,28 +1,55 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
+ import { createBlockEditFilter, createBlockListBlockFilter } from './utils';
4
5
  import './compat';
5
- import './align';
6
+ import align from './align';
6
7
  import './lock';
7
- import './anchor';
8
+ import anchor from './anchor';
8
9
  import './aria-label';
9
- import './custom-class-name';
10
+ import customClassName from './custom-class-name';
10
11
  import './generated-class-name';
11
- import './style';
12
+ import style from './style';
12
13
  import './settings';
13
- import './color';
14
- import './duotone';
15
- import './font-family';
16
- import './font-size';
17
- import './border';
18
- import './position';
19
- import './layout';
14
+ import color from './color';
15
+ import duotone from './duotone';
16
+ import fontFamily from './font-family';
17
+ import fontSize from './font-size';
18
+ import border from './border';
19
+ import position from './position';
20
+ import layout from './layout';
21
+ import childLayout from './layout-child';
20
22
  import './content-lock-ui';
21
23
  import './metadata';
22
- import './custom-fields';
23
- import './block-hooks';
24
- import './block-renaming';
25
- import './block-rename-ui';
24
+ import customFields from './custom-fields';
25
+ import blockHooks from './block-hooks';
26
+ import blockRenaming from './block-renaming';
27
+
28
+ createBlockEditFilter(
29
+ [
30
+ align,
31
+ anchor,
32
+ customClassName,
33
+ style,
34
+ duotone,
35
+ position,
36
+ layout,
37
+ window.__experimentalConnections ? customFields : null,
38
+ blockHooks,
39
+ blockRenaming,
40
+ ].filter( Boolean )
41
+ );
42
+ createBlockListBlockFilter( [
43
+ align,
44
+ style,
45
+ color,
46
+ duotone,
47
+ fontFamily,
48
+ fontSize,
49
+ border,
50
+ position,
51
+ childLayout,
52
+ ] );
26
53
 
27
54
  export { useCustomSides } from './dimensions';
28
55
  export { useLayoutClasses, useLayoutStyles } from './layout';
@@ -1,16 +1,19 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
+ import { createBlockEditFilter } from './utils';
4
5
  import './compat';
5
- import './align';
6
- import './anchor';
6
+ import align from './align';
7
+ import anchor from './anchor';
7
8
  import './custom-class-name';
8
9
  import './generated-class-name';
9
- import './style';
10
+ import style from './style';
10
11
  import './color';
11
12
  import './font-size';
12
13
  import './layout';
13
14
 
15
+ createBlockEditFilter( [ align, anchor, style ] );
16
+
14
17
  export { getBorderClassesAndStyles, useBorderProps } from './use-border-props';
15
18
  export { getColorClassesAndStyles, useColorProps } from './use-color-props';
16
19
  export { getSpacingClassesAndStyles } from './use-spacing-props';
@@ -0,0 +1,53 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useInstanceId } from '@wordpress/compose';
5
+ import { useSelect } from '@wordpress/data';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { store as blockEditorStore } from '../store';
11
+ import { useStyleOverride } from './utils';
12
+
13
+ function useBlockPropsChildLayoutStyles( { style } ) {
14
+ const shouldRenderChildLayoutStyles = useSelect( ( select ) => {
15
+ return ! select( blockEditorStore ).getSettings().disableLayoutStyles;
16
+ } );
17
+ const layout = style?.layout ?? {};
18
+ const { selfStretch, flexSize } = layout;
19
+ const id = useInstanceId( useBlockPropsChildLayoutStyles );
20
+ const selector = `.wp-container-content-${ id }`;
21
+
22
+ let css = '';
23
+ if ( shouldRenderChildLayoutStyles ) {
24
+ if ( selfStretch === 'fixed' && flexSize ) {
25
+ css = `${ selector } {
26
+ flex-basis: ${ flexSize };
27
+ box-sizing: border-box;
28
+ }`;
29
+ } else if ( selfStretch === 'fill' ) {
30
+ css = `${ selector } {
31
+ flex-grow: 1;
32
+ }`;
33
+ }
34
+ }
35
+
36
+ useStyleOverride( { css } );
37
+
38
+ // Only attach a container class if there is generated CSS to be attached.
39
+ if ( ! css ) {
40
+ return;
41
+ }
42
+
43
+ // Attach a `wp-container-content` id-based classname.
44
+ return { className: `wp-container-content-${ id }` };
45
+ }
46
+
47
+ export default {
48
+ useBlockProps: useBlockPropsChildLayoutStyles,
49
+ attributeKeys: [ 'style' ],
50
+ hasSupport() {
51
+ return true;
52
+ },
53
+ };
@@ -133,13 +133,11 @@ export function useLayoutStyles( blockAttributes = {}, blockName, selector ) {
133
133
  return css;
134
134
  }
135
135
 
136
- function LayoutPanel( { setAttributes, attributes, name: blockName } ) {
136
+ function LayoutPanelPure( { layout, setAttributes, name: blockName } ) {
137
137
  const settings = useBlockSettings( blockName );
138
- const {
139
- layout: { allowEditing: allowEditingSetting },
140
- } = settings;
141
-
142
- const { layout } = attributes;
138
+ // Block settings come from theme.json under settings.[blockName].
139
+ const { layout: layoutSettings } = settings;
140
+ // Layout comes from block attributes.
143
141
  const [ defaultThemeLayout ] = useSettings( 'layout' );
144
142
  const { themeSupportsLayout } = useSelect( ( select ) => {
145
143
  const { getSettings } = select( blockEditorStore );
@@ -153,17 +151,22 @@ function LayoutPanel( { setAttributes, attributes, name: blockName } ) {
153
151
  return null;
154
152
  }
155
153
 
154
+ // Layout block support comes from the block's block.json.
156
155
  const layoutBlockSupport = getBlockSupport(
157
156
  blockName,
158
157
  layoutBlockSupportKey,
159
158
  {}
160
159
  );
160
+ const blockSupportAndThemeSettings = {
161
+ ...layoutSettings,
162
+ ...layoutBlockSupport,
163
+ };
161
164
  const {
162
165
  allowSwitching,
163
- allowEditing = allowEditingSetting ?? true,
166
+ allowEditing = true,
164
167
  allowInheriting = true,
165
168
  default: defaultBlockLayout,
166
- } = layoutBlockSupport;
169
+ } = blockSupportAndThemeSettings;
167
170
 
168
171
  if ( ! allowEditing ) {
169
172
  return null;
@@ -260,14 +263,14 @@ function LayoutPanel( { setAttributes, attributes, name: blockName } ) {
260
263
  <layoutType.inspectorControls
261
264
  layout={ usedLayout }
262
265
  onChange={ onChangeLayout }
263
- layoutBlockSupport={ layoutBlockSupport }
266
+ layoutBlockSupport={ blockSupportAndThemeSettings }
264
267
  />
265
268
  ) }
266
269
  { constrainedType && displayControlsForLegacyLayouts && (
267
270
  <constrainedType.inspectorControls
268
271
  layout={ usedLayout }
269
272
  onChange={ onChangeLayout }
270
- layoutBlockSupport={ layoutBlockSupport }
273
+ layoutBlockSupport={ blockSupportAndThemeSettings }
271
274
  />
272
275
  ) }
273
276
  </PanelBody>
@@ -283,6 +286,15 @@ function LayoutPanel( { setAttributes, attributes, name: blockName } ) {
283
286
  );
284
287
  }
285
288
 
289
+ export default {
290
+ shareWithChildBlocks: true,
291
+ edit: LayoutPanelPure,
292
+ attributeKeys: [ 'layout' ],
293
+ hasSupport( name ) {
294
+ return hasLayoutBlockSupport( name );
295
+ },
296
+ };
297
+
286
298
  function LayoutTypeSwitcher( { type, onChange } ) {
287
299
  return (
288
300
  <ButtonGroup>
@@ -324,25 +336,6 @@ export function addAttribute( settings ) {
324
336
  return settings;
325
337
  }
326
338
 
327
- /**
328
- * Override the default edit UI to include layout controls
329
- *
330
- * @param {Function} BlockEdit Original component.
331
- *
332
- * @return {Function} Wrapped component.
333
- */
334
- export const withLayoutControls = createHigherOrderComponent(
335
- ( BlockEdit ) => ( props ) => {
336
- const supportLayout = hasLayoutBlockSupport( props.name );
337
-
338
- return [
339
- supportLayout && <LayoutPanel key="layout" { ...props } />,
340
- <BlockEdit key="edit" { ...props } />,
341
- ];
342
- },
343
- 'withLayoutControls'
344
- );
345
-
346
339
  function BlockWithLayoutStyles( { block: BlockListBlock, props } ) {
347
340
  const { name, attributes } = props;
348
341
  const id = useInstanceId( BlockListBlock );
@@ -355,8 +348,9 @@ function BlockWithLayoutStyles( { block: BlockListBlock, props } ) {
355
348
  : layout || defaultBlockLayout || {};
356
349
  const layoutClasses = useLayoutClasses( attributes, name );
357
350
 
351
+ const selectorPrefix = `wp-container-${ kebabCase( name ) }-layout-`;
358
352
  // Higher specificity to override defaults from theme.json.
359
- const selector = `.wp-container-${ id }.wp-container-${ id }`;
353
+ const selector = `.${ selectorPrefix }${ id }.${ selectorPrefix }${ id }`;
360
354
  const [ blockGapSupport ] = useSettings( 'spacing.blockGap' );
361
355
  const hasBlockGapSupport = blockGapSupport !== null;
362
356
 
@@ -374,7 +368,7 @@ function BlockWithLayoutStyles( { block: BlockListBlock, props } ) {
374
368
  // Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`.
375
369
  const layoutClassNames = classnames(
376
370
  {
377
- [ `wp-container-${ id }` ]: !! css, // Only attach a container class if there is generated CSS to be attached.
371
+ [ `${ selectorPrefix }${ id }` ]: !! css, // Only attach a container class if there is generated CSS to be attached.
378
372
  },
379
373
  layoutClasses
380
374
  );
@@ -423,75 +417,6 @@ export const withLayoutStyles = createHigherOrderComponent(
423
417
  'withLayoutStyles'
424
418
  );
425
419
 
426
- function BlockWithChildLayoutStyles( { block: BlockListBlock, props } ) {
427
- const layout = props.attributes.style?.layout ?? {};
428
- const { selfStretch, flexSize } = layout;
429
-
430
- const id = useInstanceId( BlockListBlock );
431
- const selector = `.wp-container-content-${ id }`;
432
-
433
- let css = '';
434
- if ( selfStretch === 'fixed' && flexSize ) {
435
- css = `${ selector } {
436
- flex-basis: ${ flexSize };
437
- box-sizing: border-box;
438
- }`;
439
- } else if ( selfStretch === 'fill' ) {
440
- css = `${ selector } {
441
- flex-grow: 1;
442
- }`;
443
- }
444
-
445
- // Attach a `wp-container-content` id-based classname.
446
- const className = classnames( props.className, {
447
- [ `wp-container-content-${ id }` ]: !! css, // Only attach a container class if there is generated CSS to be attached.
448
- } );
449
-
450
- useStyleOverride( { css } );
451
-
452
- return <BlockListBlock { ...props } className={ className } />;
453
- }
454
-
455
- /**
456
- * Override the default block element to add the child layout styles.
457
- *
458
- * @param {Function} BlockListBlock Original component.
459
- *
460
- * @return {Function} Wrapped component.
461
- */
462
- export const withChildLayoutStyles = createHigherOrderComponent(
463
- ( BlockListBlock ) => ( props ) => {
464
- const layout = props.attributes.style?.layout ?? {};
465
- const { selfStretch, flexSize } = layout;
466
- const hasChildLayout = selfStretch || flexSize;
467
-
468
- const shouldRenderChildLayoutStyles = useSelect(
469
- ( select ) => {
470
- // The callback returns early to avoid block editor subscription.
471
- if ( ! hasChildLayout ) {
472
- return false;
473
- }
474
-
475
- return ! select( blockEditorStore ).getSettings()
476
- .disableLayoutStyles;
477
- },
478
- [ hasChildLayout ]
479
- );
480
-
481
- if ( ! shouldRenderChildLayoutStyles ) {
482
- return <BlockListBlock { ...props } />;
483
- }
484
-
485
- return (
486
- <BlockWithChildLayoutStyles
487
- block={ BlockListBlock }
488
- props={ props }
489
- />
490
- );
491
- },
492
- 'withChildLayoutStyles'
493
- );
494
-
495
420
  addFilter(
496
421
  'blocks.registerBlockType',
497
422
  'core/layout/addAttribute',
@@ -502,13 +427,3 @@ addFilter(
502
427
  'core/editor/layout/with-layout-styles',
503
428
  withLayoutStyles
504
429
  );
505
- addFilter(
506
- 'editor.BlockListBlock',
507
- 'core/editor/layout/with-child-layout-styles',
508
- withChildLayoutStyles
509
- );
510
- addFilter(
511
- 'editor.BlockEdit',
512
- 'core/editor/layout/with-inspector-controls',
513
- withLayoutControls
514
- );
@@ -16,11 +16,11 @@ function getComputedCSS( element, property ) {
16
16
  .getPropertyValue( property );
17
17
  }
18
18
 
19
- export function PaddingVisualizer( { clientId, attributes, forceShow } ) {
19
+ export function PaddingVisualizer( { clientId, value, forceShow } ) {
20
20
  const blockElement = useBlockElement( clientId );
21
21
  const [ style, setStyle ] = useState();
22
22
 
23
- const padding = attributes?.style?.spacing?.padding;
23
+ const padding = value?.spacing?.padding;
24
24
 
25
25
  useEffect( () => {
26
26
  if (