@wordpress/block-editor 15.22.1 → 16.0.1-next.v.202607070741.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 (379) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/build/autocompleters/block.cjs +10 -2
  3. package/build/autocompleters/block.cjs.map +2 -2
  4. package/build/components/background-image-control/index.cjs +0 -2
  5. package/build/components/background-image-control/index.cjs.map +2 -2
  6. package/build/components/block-inspector/edit-contents.cjs +3 -0
  7. package/build/components/block-inspector/edit-contents.cjs.map +3 -3
  8. package/build/components/block-inspector/index.cjs +18 -36
  9. package/build/components/block-inspector/index.cjs.map +2 -2
  10. package/build/components/block-list/block-invalid-warning.cjs +8 -19
  11. package/build/components/block-list/block-invalid-warning.cjs.map +2 -2
  12. package/build/components/block-styles/use-styles-for-block.cjs +2 -1
  13. package/build/components/block-styles/use-styles-for-block.cjs.map +2 -2
  14. package/build/components/block-title/use-block-display-title.cjs +7 -2
  15. package/build/components/block-title/use-block-display-title.cjs.map +2 -2
  16. package/build/components/block-toolbar/block-toolbar-icon.cjs +10 -14
  17. package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
  18. package/build/components/block-variation-transforms/index.cjs +0 -1
  19. package/build/components/block-variation-transforms/index.cjs.map +2 -2
  20. package/build/components/child-layout-control/index.cjs +0 -2
  21. package/build/components/child-layout-control/index.cjs.map +2 -2
  22. package/build/components/colors-gradients/control.cjs +5 -5
  23. package/build/components/colors-gradients/control.cjs.map +2 -2
  24. package/build/components/date-format-picker/index.cjs +0 -1
  25. package/build/components/date-format-picker/index.cjs.map +2 -2
  26. package/build/components/dimensions-tool/aspect-ratio-tool.cjs +1 -2
  27. package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +2 -2
  28. package/build/components/dimensions-tool/scale-tool.cjs +0 -1
  29. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  30. package/build/components/dimensions-tool/width-height-tool.cjs +2 -4
  31. package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
  32. package/build/components/font-appearance-control/index.cjs +6 -25
  33. package/build/components/font-appearance-control/index.cjs.map +3 -3
  34. package/build/components/font-family/index.cjs +6 -15
  35. package/build/components/font-family/index.cjs.map +3 -3
  36. package/build/components/font-sizes/font-size-picker.cjs +1 -2
  37. package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
  38. package/build/components/global-styles/border-panel.cjs +0 -1
  39. package/build/components/global-styles/border-panel.cjs.map +2 -2
  40. package/build/components/global-styles/dimensions-panel.cjs +0 -3
  41. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  42. package/build/components/global-styles/typography-panel.cjs +4 -10
  43. package/build/components/global-styles/typography-panel.cjs.map +2 -2
  44. package/build/components/height-control/index.cjs +0 -2
  45. package/build/components/height-control/index.cjs.map +2 -2
  46. package/build/components/html-element-control/index.cjs +0 -1
  47. package/build/components/html-element-control/index.cjs.map +2 -2
  48. package/build/components/image-editor/index.cjs +5 -0
  49. package/build/components/image-editor/index.cjs.map +3 -3
  50. package/build/components/image-editor/zoom-dropdown.cjs +0 -1
  51. package/build/components/image-editor/zoom-dropdown.cjs.map +2 -2
  52. package/build/components/image-size-control/index.cjs +1 -3
  53. package/build/components/image-size-control/index.cjs.map +2 -2
  54. package/build/components/inner-content/index.cjs +107 -0
  55. package/build/components/inner-content/index.cjs.map +7 -0
  56. package/build/components/inserter/hooks/use-block-types-state.cjs +10 -2
  57. package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
  58. package/build/components/inserter/media-tab/hooks.cjs +34 -6
  59. package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
  60. package/build/components/inserter/media-tab/media-list.cjs +3 -1
  61. package/build/components/inserter/media-tab/media-list.cjs.map +2 -2
  62. package/build/components/inserter/media-tab/media-panel.cjs +224 -27
  63. package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
  64. package/build/components/inserter/media-tab/media-preview.cjs +32 -17
  65. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  66. package/build/components/inserter/media-tab/media-tab.cjs +26 -6
  67. package/build/components/inserter/media-tab/media-tab.cjs.map +2 -2
  68. package/build/components/inserter/mobile-tab-navigation.cjs +6 -1
  69. package/build/components/inserter/mobile-tab-navigation.cjs.map +2 -2
  70. package/build/components/inserter/no-results.cjs +2 -2
  71. package/build/components/inserter/no-results.cjs.map +2 -2
  72. package/build/components/inserter/preview-panel.cjs +2 -1
  73. package/build/components/inserter/preview-panel.cjs.map +2 -2
  74. package/build/components/inserter-list-item/index.cjs +8 -2
  75. package/build/components/inserter-list-item/index.cjs.map +2 -2
  76. package/build/components/letter-spacing-control/index.cjs +0 -24
  77. package/build/components/letter-spacing-control/index.cjs.map +3 -3
  78. package/build/components/line-height-control/index.cjs +7 -22
  79. package/build/components/line-height-control/index.cjs.map +3 -3
  80. package/build/components/list-view/block-select-button.cjs +90 -84
  81. package/build/components/list-view/block-select-button.cjs.map +2 -2
  82. package/build/components/list-view/block.cjs +51 -20
  83. package/build/components/list-view/block.cjs.map +2 -2
  84. package/build/components/list-view/expander.cjs +1 -1
  85. package/build/components/list-view/expander.cjs.map +2 -2
  86. package/build/components/list-view/use-list-view-client-ids.cjs +2 -2
  87. package/build/components/list-view/use-list-view-client-ids.cjs.map +2 -2
  88. package/build/components/observe-typing/index.cjs +4 -3
  89. package/build/components/observe-typing/index.cjs.map +2 -2
  90. package/build/components/preset-input-control/custom-value-controls.cjs +1 -3
  91. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  92. package/build/components/preset-input-control/index.cjs +1 -3
  93. package/build/components/preset-input-control/index.cjs.map +2 -2
  94. package/build/components/resolution-tool/index.cjs +1 -2
  95. package/build/components/resolution-tool/index.cjs.map +2 -2
  96. package/build/components/text-alignment-control/index.cjs +0 -1
  97. package/build/components/text-alignment-control/index.cjs.map +2 -2
  98. package/build/components/text-decoration-control/index.cjs +0 -1
  99. package/build/components/text-decoration-control/index.cjs.map +2 -2
  100. package/build/components/text-indent-control/index.cjs +0 -8
  101. package/build/components/text-indent-control/index.cjs.map +2 -2
  102. package/build/components/text-transform-control/index.cjs +0 -1
  103. package/build/components/text-transform-control/index.cjs.map +2 -2
  104. package/build/components/use-block-display-information/index.cjs +10 -8
  105. package/build/components/use-block-display-information/index.cjs.map +2 -2
  106. package/build/components/use-on-block-drop/index.cjs +3 -7
  107. package/build/components/use-on-block-drop/index.cjs.map +2 -2
  108. package/build/components/use-resize-canvas/index.cjs +16 -53
  109. package/build/components/use-resize-canvas/index.cjs.map +3 -3
  110. package/build/components/writing-mode-control/index.cjs +0 -1
  111. package/build/components/writing-mode-control/index.cjs.map +2 -2
  112. package/build/hooks/font-size.cjs +1 -2
  113. package/build/hooks/font-size.cjs.map +2 -2
  114. package/build/hooks/layout.cjs +5 -3
  115. package/build/hooks/layout.cjs.map +2 -2
  116. package/build/hooks/position.cjs +36 -16
  117. package/build/hooks/position.cjs.map +2 -2
  118. package/build/hooks/states.cjs +10 -21
  119. package/build/hooks/states.cjs.map +2 -2
  120. package/build/layouts/constrained.cjs +21 -21
  121. package/build/layouts/constrained.cjs.map +2 -2
  122. package/build/layouts/flex.cjs +0 -3
  123. package/build/layouts/flex.cjs.map +2 -2
  124. package/build/layouts/grid.cjs +51 -9
  125. package/build/layouts/grid.cjs.map +2 -2
  126. package/build/private-apis.cjs +4 -2
  127. package/build/private-apis.cjs.map +3 -3
  128. package/build/store/actions.cjs.map +2 -2
  129. package/build/store/private-actions.cjs +16 -0
  130. package/build/store/private-actions.cjs.map +2 -2
  131. package/build/store/private-keys.cjs +3 -3
  132. package/build/store/private-keys.cjs.map +2 -2
  133. package/build/store/private-selectors.cjs +96 -10
  134. package/build/store/private-selectors.cjs.map +2 -2
  135. package/build/store/reducer.cjs +19 -3
  136. package/build/store/reducer.cjs.map +2 -2
  137. package/build/store/selectors.cjs +13 -0
  138. package/build/store/selectors.cjs.map +2 -2
  139. package/build-module/autocompleters/block.mjs +10 -2
  140. package/build-module/autocompleters/block.mjs.map +2 -2
  141. package/build-module/components/background-image-control/index.mjs +0 -2
  142. package/build-module/components/background-image-control/index.mjs.map +2 -2
  143. package/build-module/components/block-inspector/edit-contents.mjs +4 -1
  144. package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
  145. package/build-module/components/block-inspector/index.mjs +18 -36
  146. package/build-module/components/block-inspector/index.mjs.map +2 -2
  147. package/build-module/components/block-list/block-invalid-warning.mjs +8 -19
  148. package/build-module/components/block-list/block-invalid-warning.mjs.map +2 -2
  149. package/build-module/components/block-styles/use-styles-for-block.mjs +2 -1
  150. package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
  151. package/build-module/components/block-title/use-block-display-title.mjs +7 -2
  152. package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
  153. package/build-module/components/block-toolbar/block-toolbar-icon.mjs +10 -14
  154. package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
  155. package/build-module/components/block-variation-transforms/index.mjs +0 -1
  156. package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
  157. package/build-module/components/child-layout-control/index.mjs +0 -2
  158. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  159. package/build-module/components/colors-gradients/control.mjs +5 -5
  160. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  161. package/build-module/components/date-format-picker/index.mjs +0 -1
  162. package/build-module/components/date-format-picker/index.mjs.map +2 -2
  163. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +1 -2
  164. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
  165. package/build-module/components/dimensions-tool/scale-tool.mjs +0 -1
  166. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  167. package/build-module/components/dimensions-tool/width-height-tool.mjs +2 -4
  168. package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
  169. package/build-module/components/font-appearance-control/index.mjs +6 -15
  170. package/build-module/components/font-appearance-control/index.mjs.map +2 -2
  171. package/build-module/components/font-family/index.mjs +6 -15
  172. package/build-module/components/font-family/index.mjs.map +2 -2
  173. package/build-module/components/font-sizes/font-size-picker.mjs +1 -2
  174. package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
  175. package/build-module/components/global-styles/border-panel.mjs +0 -1
  176. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  177. package/build-module/components/global-styles/dimensions-panel.mjs +0 -3
  178. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  179. package/build-module/components/global-styles/typography-panel.mjs +4 -10
  180. package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
  181. package/build-module/components/height-control/index.mjs +0 -2
  182. package/build-module/components/height-control/index.mjs.map +2 -2
  183. package/build-module/components/html-element-control/index.mjs +0 -1
  184. package/build-module/components/html-element-control/index.mjs.map +2 -2
  185. package/build-module/components/image-editor/index.mjs +5 -0
  186. package/build-module/components/image-editor/index.mjs.map +2 -2
  187. package/build-module/components/image-editor/zoom-dropdown.mjs +0 -1
  188. package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
  189. package/build-module/components/image-size-control/index.mjs +1 -3
  190. package/build-module/components/image-size-control/index.mjs.map +2 -2
  191. package/build-module/components/inner-content/index.mjs +82 -0
  192. package/build-module/components/inner-content/index.mjs.map +7 -0
  193. package/build-module/components/inserter/hooks/use-block-types-state.mjs +10 -2
  194. package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
  195. package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
  196. package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
  197. package/build-module/components/inserter/media-tab/media-list.mjs +3 -1
  198. package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
  199. package/build-module/components/inserter/media-tab/media-panel.mjs +227 -30
  200. package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
  201. package/build-module/components/inserter/media-tab/media-preview.mjs +33 -18
  202. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  203. package/build-module/components/inserter/media-tab/media-tab.mjs +27 -7
  204. package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
  205. package/build-module/components/inserter/mobile-tab-navigation.mjs +6 -1
  206. package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
  207. package/build-module/components/inserter/no-results.mjs +2 -2
  208. package/build-module/components/inserter/no-results.mjs.map +2 -2
  209. package/build-module/components/inserter/preview-panel.mjs +2 -1
  210. package/build-module/components/inserter/preview-panel.mjs.map +2 -2
  211. package/build-module/components/inserter-list-item/index.mjs +8 -2
  212. package/build-module/components/inserter-list-item/index.mjs.map +2 -2
  213. package/build-module/components/letter-spacing-control/index.mjs +0 -14
  214. package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
  215. package/build-module/components/line-height-control/index.mjs +7 -12
  216. package/build-module/components/line-height-control/index.mjs.map +2 -2
  217. package/build-module/components/list-view/block-select-button.mjs +90 -84
  218. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  219. package/build-module/components/list-view/block.mjs +51 -20
  220. package/build-module/components/list-view/block.mjs.map +2 -2
  221. package/build-module/components/list-view/expander.mjs +1 -1
  222. package/build-module/components/list-view/expander.mjs.map +2 -2
  223. package/build-module/components/list-view/use-list-view-client-ids.mjs +2 -2
  224. package/build-module/components/list-view/use-list-view-client-ids.mjs.map +2 -2
  225. package/build-module/components/observe-typing/index.mjs +4 -3
  226. package/build-module/components/observe-typing/index.mjs.map +2 -2
  227. package/build-module/components/preset-input-control/custom-value-controls.mjs +1 -3
  228. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  229. package/build-module/components/preset-input-control/index.mjs +1 -3
  230. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  231. package/build-module/components/resolution-tool/index.mjs +1 -2
  232. package/build-module/components/resolution-tool/index.mjs.map +2 -2
  233. package/build-module/components/text-alignment-control/index.mjs +0 -1
  234. package/build-module/components/text-alignment-control/index.mjs.map +2 -2
  235. package/build-module/components/text-decoration-control/index.mjs +0 -1
  236. package/build-module/components/text-decoration-control/index.mjs.map +2 -2
  237. package/build-module/components/text-indent-control/index.mjs +0 -8
  238. package/build-module/components/text-indent-control/index.mjs.map +2 -2
  239. package/build-module/components/text-transform-control/index.mjs +0 -1
  240. package/build-module/components/text-transform-control/index.mjs.map +2 -2
  241. package/build-module/components/use-block-display-information/index.mjs +10 -8
  242. package/build-module/components/use-block-display-information/index.mjs.map +2 -2
  243. package/build-module/components/use-on-block-drop/index.mjs +4 -7
  244. package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
  245. package/build-module/components/use-resize-canvas/index.mjs +6 -53
  246. package/build-module/components/use-resize-canvas/index.mjs.map +2 -2
  247. package/build-module/components/writing-mode-control/index.mjs +0 -1
  248. package/build-module/components/writing-mode-control/index.mjs.map +2 -2
  249. package/build-module/hooks/font-size.mjs +1 -2
  250. package/build-module/hooks/font-size.mjs.map +2 -2
  251. package/build-module/hooks/layout.mjs +4 -3
  252. package/build-module/hooks/layout.mjs.map +2 -2
  253. package/build-module/hooks/position.mjs +38 -18
  254. package/build-module/hooks/position.mjs.map +2 -2
  255. package/build-module/hooks/states.mjs +10 -21
  256. package/build-module/hooks/states.mjs.map +2 -2
  257. package/build-module/layouts/constrained.mjs +21 -21
  258. package/build-module/layouts/constrained.mjs.map +2 -2
  259. package/build-module/layouts/flex.mjs +0 -3
  260. package/build-module/layouts/flex.mjs.map +2 -2
  261. package/build-module/layouts/grid.mjs +52 -9
  262. package/build-module/layouts/grid.mjs.map +2 -2
  263. package/build-module/private-apis.mjs +5 -3
  264. package/build-module/private-apis.mjs.map +2 -2
  265. package/build-module/store/actions.mjs.map +2 -2
  266. package/build-module/store/private-actions.mjs +14 -0
  267. package/build-module/store/private-actions.mjs.map +2 -2
  268. package/build-module/store/private-keys.mjs +2 -2
  269. package/build-module/store/private-keys.mjs.map +2 -2
  270. package/build-module/store/private-selectors.mjs +93 -10
  271. package/build-module/store/private-selectors.mjs.map +2 -2
  272. package/build-module/store/reducer.mjs +17 -3
  273. package/build-module/store/reducer.mjs.map +2 -2
  274. package/build-module/store/selectors.mjs +13 -0
  275. package/build-module/store/selectors.mjs.map +2 -2
  276. package/build-style/content-rtl.css +11 -5
  277. package/build-style/content.css +11 -5
  278. package/build-style/style-rtl.css +113 -3
  279. package/build-style/style.css +113 -3
  280. package/package.json +43 -41
  281. package/src/autocompleters/block.js +10 -3
  282. package/src/autocompleters/test/block.js +53 -0
  283. package/src/components/background-image-control/index.js +0 -2
  284. package/src/components/block-inspector/edit-contents.js +5 -1
  285. package/src/components/block-inspector/index.js +25 -44
  286. package/src/components/block-list/block-invalid-warning.js +8 -19
  287. package/src/components/block-patterns-list/stories/index.story.jsx +1 -1
  288. package/src/components/block-styles/use-styles-for-block.js +1 -0
  289. package/src/components/block-title/use-block-display-title.js +7 -2
  290. package/src/components/block-toolbar/block-toolbar-icon.js +11 -16
  291. package/src/components/block-toolbar/test/block-toolbar-icon.js +32 -9
  292. package/src/components/block-variation-transforms/index.js +0 -1
  293. package/src/components/child-layout-control/index.js +0 -2
  294. package/src/components/color-palette/test/__snapshots__/control.js.snap +11 -106
  295. package/src/components/colors-gradients/control.js +4 -4
  296. package/src/components/colors-gradients/style.scss +2 -2
  297. package/src/components/date-format-picker/index.js +0 -1
  298. package/src/components/dimensions-tool/aspect-ratio-tool.js +0 -1
  299. package/src/components/dimensions-tool/scale-tool.js +0 -1
  300. package/src/components/dimensions-tool/width-height-tool.js +0 -2
  301. package/src/components/font-appearance-control/index.js +6 -19
  302. package/src/components/font-family/README.md +0 -9
  303. package/src/components/font-family/index.js +6 -19
  304. package/src/components/font-family/stories/index.story.jsx +0 -1
  305. package/src/components/font-sizes/font-size-picker.js +0 -1
  306. package/src/components/global-styles/border-panel.js +0 -1
  307. package/src/components/global-styles/dimensions-panel.js +0 -3
  308. package/src/components/global-styles/typography-panel.js +0 -6
  309. package/src/components/height-control/index.js +0 -2
  310. package/src/components/html-element-control/index.js +0 -1
  311. package/src/components/iframe/content.scss +3 -3
  312. package/src/components/image-editor/index.js +22 -0
  313. package/src/components/image-editor/zoom-dropdown.js +0 -1
  314. package/src/components/image-size-control/index.js +0 -2
  315. package/src/components/inner-content/index.js +119 -0
  316. package/src/components/inner-content/test/index.js +81 -0
  317. package/src/components/inserter/hooks/use-block-types-state.js +10 -2
  318. package/src/components/inserter/media-tab/hooks.js +59 -9
  319. package/src/components/inserter/media-tab/media-list.js +2 -0
  320. package/src/components/inserter/media-tab/media-panel.js +256 -17
  321. package/src/components/inserter/media-tab/media-preview.js +34 -17
  322. package/src/components/inserter/media-tab/media-tab.js +20 -2
  323. package/src/components/inserter/media-tab/test/hooks.js +204 -0
  324. package/src/components/inserter/mobile-tab-navigation.js +6 -1
  325. package/src/components/inserter/no-results.js +2 -2
  326. package/src/components/inserter/preview-panel.js +1 -0
  327. package/src/components/inserter/style.scss +110 -1
  328. package/src/components/inserter-list-item/index.js +8 -2
  329. package/src/components/letter-spacing-control/README.md +0 -8
  330. package/src/components/letter-spacing-control/index.js +5 -23
  331. package/src/components/letter-spacing-control/stories/index.story.jsx +0 -12
  332. package/src/components/line-height-control/README.md +0 -8
  333. package/src/components/line-height-control/index.js +7 -16
  334. package/src/components/line-height-control/stories/index.story.jsx +0 -1
  335. package/src/components/line-height-control/test/index.js +1 -7
  336. package/src/components/link-picker/test/index.js +3 -1
  337. package/src/components/list-view/block-select-button.js +5 -1
  338. package/src/components/list-view/block.js +57 -20
  339. package/src/components/list-view/expander.js +5 -1
  340. package/src/components/list-view/style.scss +19 -0
  341. package/src/components/list-view/use-list-view-client-ids.js +2 -2
  342. package/src/components/observe-typing/index.js +9 -4
  343. package/src/components/preset-input-control/custom-value-controls.js +0 -2
  344. package/src/components/preset-input-control/index.js +0 -2
  345. package/src/components/resolution-tool/index.js +0 -1
  346. package/src/components/responsive-block-control/test/index.js +1 -5
  347. package/src/components/text-alignment-control/index.js +0 -1
  348. package/src/components/text-decoration-control/index.js +0 -1
  349. package/src/components/text-indent-control/index.js +7 -16
  350. package/src/components/text-transform-control/index.js +0 -1
  351. package/src/components/use-block-display-information/index.js +9 -13
  352. package/src/components/use-block-display-information/test/index.js +47 -9
  353. package/src/components/use-on-block-drop/index.js +4 -7
  354. package/src/components/use-resize-canvas/index.js +10 -71
  355. package/src/components/writing-mode-control/index.js +0 -1
  356. package/src/hooks/block-hooks.scss +15 -0
  357. package/src/hooks/font-size.js +0 -1
  358. package/src/hooks/layout.js +5 -4
  359. package/src/hooks/position.js +44 -23
  360. package/src/hooks/states.js +24 -26
  361. package/src/hooks/test/cross-origin-isolation.js +0 -4
  362. package/src/hooks/test/layout.js +75 -1
  363. package/src/layouts/constrained.js +51 -28
  364. package/src/layouts/flex.js +0 -3
  365. package/src/layouts/grid.js +59 -7
  366. package/src/layouts/test/constrained.js +91 -0
  367. package/src/layouts/test/grid.js +71 -0
  368. package/src/private-apis.js +4 -2
  369. package/src/store/actions.js +1 -0
  370. package/src/store/private-actions.js +31 -0
  371. package/src/store/private-keys.js +1 -1
  372. package/src/store/private-selectors.js +184 -11
  373. package/src/store/reducer.js +37 -2
  374. package/src/store/selectors.js +41 -0
  375. package/src/store/test/private-selectors.js +436 -10
  376. package/src/store/test/reducer.js +41 -13
  377. package/src/store/test/selectors.js +133 -0
  378. package/src/style.scss +1 -0
  379. package/src/components/use-resize-canvas/README.md +0 -37
@@ -79,7 +79,6 @@ export default function WidthHeightTool( {
79
79
  min={ 0 }
80
80
  value={ width }
81
81
  onChange={ onDimensionChange( 'width' ) }
82
- size="__unstable-large"
83
82
  />
84
83
  </ToolsPanelItem>
85
84
  <ToolsPanelItem
@@ -98,7 +97,6 @@ export default function WidthHeightTool( {
98
97
  min={ 0 }
99
98
  value={ height }
100
99
  onChange={ onDimensionChange( 'height' ) }
101
- size="__unstable-large"
102
100
  />
103
101
  </ToolsPanelItem>
104
102
  </>
@@ -2,7 +2,6 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { CustomSelectControl } from '@wordpress/components';
5
- import deprecated from '@wordpress/deprecated';
6
5
  import { useMemo } from '@wordpress/element';
7
6
  import { __, sprintf } from '@wordpress/i18n';
8
7
 
@@ -40,8 +39,12 @@ const getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {
40
39
  */
41
40
  export default function FontAppearanceControl( props ) {
42
41
  const {
43
- /** Start opting into the larger default height that will become the default size in a future version. */
44
- __next40pxDefaultSize = false,
42
+ /**
43
+ * Start opting into the larger default height that will become the default size in a future version.
44
+ *
45
+ * @deprecated Default behavior since WordPress 7.1. Prop can be safely removed.
46
+ */
47
+ __next40pxDefaultSize: _next40pxDefaultSize,
45
48
  onChange,
46
49
  hasFontStyles = true,
47
50
  hasFontWeights = true,
@@ -148,27 +151,11 @@ export default function FontAppearanceControl( props ) {
148
151
  );
149
152
  };
150
153
 
151
- if (
152
- ! __next40pxDefaultSize &&
153
- ( otherProps.size === undefined || otherProps.size === 'default' )
154
- ) {
155
- deprecated(
156
- `36px default size for wp.blockEditor.__experimentalFontAppearanceControl`,
157
- {
158
- since: '6.8',
159
- version: '7.1',
160
- hint: 'Set the `__next40pxDefaultSize` prop to true to start opting into the new default size, which will become the default in a future version.',
161
- }
162
- );
163
- }
164
-
165
154
  return (
166
155
  hasStylesOrWeights && (
167
156
  <CustomSelectControl
168
157
  { ...otherProps }
169
158
  className="components-font-appearance-control"
170
- __next40pxDefaultSize={ __next40pxDefaultSize }
171
- __shouldNotWarnDeprecated36pxSize
172
159
  label={ label }
173
160
  describedBy={ getDescribedBy() }
174
161
  options={ selectOptions }
@@ -28,7 +28,6 @@ const MyFontFamilyControl = () => {
28
28
  onChange={ ( newFontFamily ) => {
29
29
  setFontFamily( newFontFamily );
30
30
  } }
31
- __next40pxDefaultSize
32
31
  />
33
32
  );
34
33
  };
@@ -74,11 +73,3 @@ The current font family value.
74
73
  - Default: ''
75
74
 
76
75
  The rest of the props are passed down to the underlying `<SelectControl />` instance.
77
-
78
- #### `__next40pxDefaultSize`
79
-
80
- - Type: `boolean`
81
- - Required: No
82
- - Default: `false`
83
-
84
- Start opting into the larger default height that will become the default size in a future version.
@@ -7,7 +7,6 @@ import clsx from 'clsx';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { CustomSelectControl } from '@wordpress/components';
10
- import deprecated from '@wordpress/deprecated';
11
10
  import { __ } from '@wordpress/i18n';
12
11
 
13
12
  /**
@@ -16,8 +15,12 @@ import { __ } from '@wordpress/i18n';
16
15
  import { useSettings } from '../use-settings';
17
16
 
18
17
  export default function FontFamilyControl( {
19
- /** Start opting into the larger default height that will become the default size in a future version. */
20
- __next40pxDefaultSize = false,
18
+ /**
19
+ * Start opting into the larger default height that will become the default size in a future version.
20
+ *
21
+ * @deprecated Default behavior since WordPress 7.1. Prop can be safely removed.
22
+ */
23
+ __next40pxDefaultSize: _next40pxDefaultSize,
21
24
  value = '',
22
25
  onChange,
23
26
  fontFamilies,
@@ -45,26 +48,10 @@ export default function FontFamilyControl( {
45
48
  } ) ),
46
49
  ];
47
50
 
48
- if (
49
- ! __next40pxDefaultSize &&
50
- ( props.size === undefined || props.size === 'default' )
51
- ) {
52
- deprecated(
53
- `36px default size for wp.blockEditor.__experimentalFontFamilyControl`,
54
- {
55
- since: '6.8',
56
- version: '7.1',
57
- hint: 'Set the `__next40pxDefaultSize` prop to true to start opting into the new default size, which will become the default in a future version.',
58
- }
59
- );
60
- }
61
-
62
51
  const selectedValue =
63
52
  options.find( ( option ) => option.key === value ) ?? '';
64
53
  return (
65
54
  <CustomSelectControl
66
- __next40pxDefaultSize={ __next40pxDefaultSize }
67
- __shouldNotWarnDeprecated36pxSize
68
55
  label={ __( 'Font' ) }
69
56
  value={ selectedValue }
70
57
  onChange={ ( { selectedItem } ) => onChange( selectedItem.key ) }
@@ -49,6 +49,5 @@ export const Default = {
49
49
  slug: 'system-font',
50
50
  },
51
51
  ],
52
- __next40pxDefaultSize: true,
53
52
  },
54
53
  };
@@ -19,7 +19,6 @@ function FontSizePicker( props ) {
19
19
  { ...props }
20
20
  fontSizes={ fontSizes }
21
21
  disableCustomFontSizes={ ! customFontSize }
22
- __next40pxDefaultSize
23
22
  />
24
23
  );
25
24
  }
@@ -279,7 +279,6 @@ export default function BorderPanel( {
279
279
  popoverPlacement="left-start"
280
280
  value={ border }
281
281
  __experimentalIsRenderedInSidebar
282
- size="__unstable-large"
283
282
  hideLabelFromVision={ ! hasShadowControl }
284
283
  label={ __( 'Border' ) }
285
284
  />
@@ -544,7 +544,6 @@ export default function DimensionsPanel( {
544
544
  panelId={ panelId }
545
545
  >
546
546
  <UnitControl
547
- __next40pxDefaultSize
548
547
  label={ __( 'Content width' ) }
549
548
  labelPosition="top"
550
549
  value={ contentSizeValue || '' }
@@ -571,7 +570,6 @@ export default function DimensionsPanel( {
571
570
  panelId={ panelId }
572
571
  >
573
572
  <UnitControl
574
- __next40pxDefaultSize
575
573
  label={ __( 'Wide width' ) }
576
574
  labelPosition="top"
577
575
  value={ wideSizeValue || '' }
@@ -710,7 +708,6 @@ export default function DimensionsPanel( {
710
708
  />
711
709
  ) : (
712
710
  <UnitControl
713
- __next40pxDefaultSize
714
711
  label={ __( 'Block spacing' ) }
715
712
  min={ 0 }
716
713
  onChange={ setGapValue }
@@ -605,7 +605,6 @@ export default function TypographyPanel( {
605
605
  fontFamilies={ fontFamilies }
606
606
  value={ fontFamily }
607
607
  onChange={ setFontFamily }
608
- size="__unstable-large"
609
608
  />
610
609
  </ToolsPanelItem>
611
610
  ) }
@@ -625,7 +624,6 @@ export default function TypographyPanel( {
625
624
  disableCustomFontSizes={ disableCustomFontSizes }
626
625
  withReset={ false }
627
626
  withSlider
628
- size="__unstable-large"
629
627
  />
630
628
  </ToolsPanelItem>
631
629
  ) }
@@ -646,7 +644,6 @@ export default function TypographyPanel( {
646
644
  hasFontStyles={ hasFontStyles }
647
645
  hasFontWeights={ hasFontWeights }
648
646
  fontFamilyFaces={ fontFamilyFaces }
649
- size="__unstable-large"
650
647
  />
651
648
  </ToolsPanelItem>
652
649
  ) }
@@ -663,7 +660,6 @@ export default function TypographyPanel( {
663
660
  __unstableInputWidth="auto"
664
661
  value={ lineHeight }
665
662
  onChange={ setLineHeight }
666
- size="__unstable-large"
667
663
  />
668
664
  </ToolsPanelItem>
669
665
  ) }
@@ -679,7 +675,6 @@ export default function TypographyPanel( {
679
675
  <LetterSpacingControl
680
676
  value={ letterSpacing }
681
677
  onChange={ setLetterSpacing }
682
- size="__unstable-large"
683
678
  __unstableInputWidth="auto"
684
679
  />
685
680
  </ToolsPanelItem>
@@ -695,7 +690,6 @@ export default function TypographyPanel( {
695
690
  <TextIndentControl
696
691
  value={ textIndent }
697
692
  onChange={ setTextIndentValue }
698
- size="__unstable-large"
699
693
  __unstableInputWidth="auto"
700
694
  withSlider
701
695
  hasBottomMargin={ isGlobalStyles }
@@ -164,7 +164,6 @@ export default function HeightControl( {
164
164
  onChange={ onChange }
165
165
  onUnitChange={ handleUnitChange }
166
166
  min={ 0 }
167
- size="__unstable-large"
168
167
  label={ label }
169
168
  hideLabelFromVision
170
169
  />
@@ -172,7 +171,6 @@ export default function HeightControl( {
172
171
  <FlexItem isBlock>
173
172
  <Spacer marginX={ 2 } marginBottom={ 0 }>
174
173
  <RangeControl
175
- __next40pxDefaultSize
176
174
  value={ customRangeValue }
177
175
  min={ 0 }
178
176
  max={
@@ -88,7 +88,6 @@ export default function HTMLElementControl( {
88
88
  return (
89
89
  <VStack spacing={ 2 } className="block-editor-html-element-control">
90
90
  <SelectControl
91
- __next40pxDefaultSize
92
91
  label={ __( 'HTML element' ) }
93
92
  options={ modifiedOptions }
94
93
  value={ tagName }
@@ -18,8 +18,8 @@
18
18
  }
19
19
 
20
20
  &.zoom-out-animation {
21
- $scroll-top: var(--wp-block-editor-iframe-zoom-out-scroll-top, 0);
22
- $scroll-top-next: var(--wp-block-editor-iframe-zoom-out-scroll-top-next, 0);
21
+ $scroll-top: var(--wp-block-editor-iframe-zoom-out-scroll-top, 0px);
22
+ $scroll-top-next: var(--wp-block-editor-iframe-zoom-out-scroll-top-next, 0px);
23
23
  $overflow-behavior: var(--wp-block-editor-iframe-zoom-out-overflow-behavior, scroll);
24
24
 
25
25
  position: fixed;
@@ -34,7 +34,7 @@
34
34
 
35
35
  &.is-zoomed-out {
36
36
  $scale: var(--wp-block-editor-iframe-zoom-out-scale, 1);
37
- $frame-size: var(--wp-block-editor-iframe-zoom-out-frame-size, 0);
37
+ $frame-size: var(--wp-block-editor-iframe-zoom-out-frame-size, 0px);
38
38
  $inner-height: var(--wp-block-editor-iframe-zoom-out-inner-height);
39
39
  $content-height: var(--wp-block-editor-iframe-zoom-out-content-height);
40
40
  $scale-container-width: var(--wp-block-editor-iframe-zoom-out-scale-container-width);
@@ -2,6 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { ToolbarGroup, ToolbarItem } from '@wordpress/components';
5
+ import deprecated from '@wordpress/deprecated';
5
6
  import { ImageCropperProvider } from '@wordpress/image-cropper';
6
7
 
7
8
  /**
@@ -15,6 +16,22 @@ import ZoomDropdown from './zoom-dropdown';
15
16
  import RotationButton from './rotation-button';
16
17
  import FormControls from './form-controls';
17
18
 
19
+ /**
20
+ * @deprecated since 7.1. The Media Editor modal is now the default crop
21
+ * experience for core blocks. This component (exported as
22
+ * `__experimentalImageEditor`) will be removed in a future major release.
23
+ *
24
+ * @param {Object} root0 Component props.
25
+ * @param {number} root0.id Media attachment ID.
26
+ * @param {string} root0.url Media URL.
27
+ * @param {number} root0.width Rendered image width.
28
+ * @param {number} root0.height Rendered image height.
29
+ * @param {number} root0.naturalHeight Natural image height.
30
+ * @param {number} root0.naturalWidth Natural image width.
31
+ * @param {Function} root0.onSaveImage Callback to save image attributes.
32
+ * @param {Function} root0.onFinishEditing Callback when editing finishes.
33
+ * @param {Object} root0.borderProps Border classes and styles.
34
+ */
18
35
  export default function ImageEditor( {
19
36
  id,
20
37
  url,
@@ -26,6 +43,11 @@ export default function ImageEditor( {
26
43
  onFinishEditing,
27
44
  borderProps,
28
45
  } ) {
46
+ deprecated( 'wp.blockEditor.__experimentalImageEditor', {
47
+ since: '7.1',
48
+ hint: 'The Media Editor modal is now the default crop experience for core blocks. This component will be removed in a future major release.',
49
+ } );
50
+
29
51
  return (
30
52
  <ImageCropperProvider>
31
53
  <ImageEditingProvider
@@ -34,7 +34,6 @@ export default function ZoomDropdown() {
34
34
  renderContent={ () => (
35
35
  <DropdownContentWrapper paddingSize="medium">
36
36
  <RangeControl
37
- __next40pxDefaultSize
38
37
  label={ __( 'Zoom' ) }
39
38
  min={ MIN_ZOOM }
40
39
  max={ MAX_ZOOM }
@@ -96,7 +96,6 @@ export default function ImageSizeControl( {
96
96
  options={ imageSizeOptions }
97
97
  onChange={ onChangeImage }
98
98
  help={ imageSizeHelp }
99
- size="__unstable-large"
100
99
  />
101
100
  ) }
102
101
  { isResizable && (
@@ -127,7 +126,6 @@ export default function ImageSizeControl( {
127
126
  onChange={ handleUpdateDimensions }
128
127
  value={ selectedValue }
129
128
  isBlock
130
- __next40pxDefaultSize
131
129
  >
132
130
  { IMAGE_SIZE_PRESETS.map( ( scale ) => {
133
131
  return (
@@ -0,0 +1,119 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import {
5
+ createPortal,
6
+ useLayoutEffect,
7
+ useMemo,
8
+ useRef,
9
+ useState,
10
+ } from '@wordpress/element';
11
+ import { AsyncModeProvider, useSelect } from '@wordpress/data';
12
+ import { safeHTML } from '@wordpress/dom';
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+ import { store as blockEditorStore } from '../../store';
18
+ import BlockListBlock from '../block-list/block';
19
+ import { LayoutProvider } from '../block-list/layout';
20
+
21
+ const SLOT_TAG_NAME = 'wp-inner-block-slot';
22
+
23
+ // The static markup surrounding the inner blocks is arbitrary HTML the block
24
+ // editor doesn't manage, so it provides no layout context: no alignments are
25
+ // available to the inner blocks.
26
+ const LAYOUT = { type: 'default', alignments: [] };
27
+
28
+ /**
29
+ * Renders the static HTML fragments of a block with the `innerContent`
30
+ * support, mounting each inner block at the position of its `null`
31
+ * placeholder within the static markup.
32
+ *
33
+ * Unlike `InnerBlocks`, the rendered blocks are not a contiguous list: they
34
+ * live at arbitrary positions inside markup the block editor doesn't manage.
35
+ * The static fragments are sanitized with `safeHTML` before being injected
36
+ * into the canvas — the same treatment block save content receives elsewhere
37
+ * in the editor — and the inner blocks are portalled into placeholder
38
+ * elements. Inner blocks are locked: they can be edited in place but not
39
+ * moved, removed, or added to.
40
+ *
41
+ * @param {Object} props Component props.
42
+ * @param {string} props.clientId Client ID of the block whose inner content
43
+ * should be rendered.
44
+ */
45
+ export default function InnerContent( { clientId } ) {
46
+ const { innerContent, order, selectedClientIds } = useSelect(
47
+ ( select ) => {
48
+ const { getBlock, getBlockOrder, getSelectedBlockClientIds } =
49
+ select( blockEditorStore );
50
+ return {
51
+ innerContent: getBlock( clientId )?.innerContent,
52
+ order: getBlockOrder( clientId ),
53
+ selectedClientIds: getSelectedBlockClientIds(),
54
+ };
55
+ },
56
+ [ clientId ]
57
+ );
58
+ const html = useMemo( () => {
59
+ let slotIndex = 0;
60
+ return ( innerContent ?? [] )
61
+ .map( ( item ) =>
62
+ item === null
63
+ ? `<${ SLOT_TAG_NAME } data-slot-index="${ slotIndex++ }" style="display: contents"></${ SLOT_TAG_NAME }>`
64
+ : item
65
+ )
66
+ .join( '' );
67
+ }, [ innerContent ] );
68
+
69
+ const containerRef = useRef();
70
+ const [ slots, setSlots ] = useState( [] );
71
+
72
+ useLayoutEffect( () => {
73
+ const container = containerRef.current;
74
+
75
+ // Sanitize before injecting into the canvas: `safeHTML` removes
76
+ // `<script>` elements and inline event handlers, matching how block
77
+ // save content is rendered elsewhere in the editor.
78
+ container.innerHTML = safeHTML( html );
79
+
80
+ setSlots(
81
+ Array.from( container.querySelectorAll( SLOT_TAG_NAME ) ).sort(
82
+ ( a, b ) =>
83
+ Number( a.dataset.slotIndex ) -
84
+ Number( b.dataset.slotIndex )
85
+ )
86
+ );
87
+ }, [ html ] );
88
+
89
+ return (
90
+ <LayoutProvider value={ LAYOUT }>
91
+ <div
92
+ ref={ containerRef }
93
+ className="block-editor-inner-content"
94
+ style={ { display: 'contents' } }
95
+ />
96
+ { order.map( ( childClientId, index ) =>
97
+ slots[ index ]
98
+ ? createPortal(
99
+ // Render the selected block synchronously, as the block list does.
100
+ <AsyncModeProvider
101
+ value={
102
+ ! selectedClientIds.includes(
103
+ childClientId
104
+ )
105
+ }
106
+ >
107
+ <BlockListBlock
108
+ rootClientId={ clientId }
109
+ clientId={ childClientId }
110
+ />
111
+ </AsyncModeProvider>,
112
+ slots[ index ],
113
+ childClientId
114
+ )
115
+ : null
116
+ ) }
117
+ </LayoutProvider>
118
+ );
119
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { render } from '@testing-library/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import {
10
+ createBlock,
11
+ registerBlockType,
12
+ unregisterBlockType,
13
+ } from '@wordpress/blocks';
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+ import InnerContent from '../';
19
+ import { BlockEditorProvider } from '../../provider';
20
+
21
+ const BLOCK_NAME = 'core/html';
22
+
23
+ // These tests inspect the raw injected DOM to verify the static markup is
24
+ // sanitized before being added to the editor canvas, so direct node access is
25
+ // intentional.
26
+ /* eslint-disable testing-library/no-node-access, testing-library/no-container, testing-library/render-result-naming-convention */
27
+
28
+ function renderWithInnerContent( innerContent ) {
29
+ const block = createBlock( BLOCK_NAME, {}, [], innerContent );
30
+ const { container } = render(
31
+ <BlockEditorProvider value={ [ block ] }>
32
+ <InnerContent clientId={ block.clientId } />
33
+ </BlockEditorProvider>
34
+ );
35
+ return container.querySelector( '.block-editor-inner-content' );
36
+ }
37
+
38
+ describe( 'InnerContent', () => {
39
+ beforeAll( () => {
40
+ registerBlockType( BLOCK_NAME, {
41
+ apiVersion: 3,
42
+ title: 'Custom HTML',
43
+ category: 'text',
44
+ save: () => null,
45
+ } );
46
+ } );
47
+
48
+ afterAll( () => {
49
+ unregisterBlockType( BLOCK_NAME );
50
+ } );
51
+
52
+ it( 'renders the static fragments into the canvas', () => {
53
+ const root = renderWithInnerContent( [
54
+ '<div class="banner"><h1>Static heading</h1></div>',
55
+ ] );
56
+
57
+ expect( root.querySelector( 'h1' ) ).toHaveTextContent(
58
+ 'Static heading'
59
+ );
60
+ } );
61
+
62
+ it( 'strips script elements from the static fragments', () => {
63
+ const root = renderWithInnerContent( [
64
+ '<div><script>window.__innerContentRan = true;</script>Safe</div>',
65
+ ] );
66
+
67
+ expect( root.querySelector( 'script' ) ).toBeNull();
68
+ expect( root ).toHaveTextContent( 'Safe' );
69
+ } );
70
+
71
+ it( 'strips inline event handlers from the static fragments', () => {
72
+ const root = renderWithInnerContent( [
73
+ '<button onclick="alert(1)">Click</button>',
74
+ ] );
75
+
76
+ expect( root.querySelector( '[onclick]' ) ).toBeNull();
77
+ expect( root.querySelector( 'button' ) ).toHaveTextContent( 'Click' );
78
+ } );
79
+ } );
80
+
81
+ /* eslint-enable testing-library/no-node-access, testing-library/no-container, testing-library/render-result-naming-convention */
@@ -54,7 +54,14 @@ const useBlockTypesState = ( rootClientId, onInsert, isQuick ) => {
54
54
 
55
55
  const onSelectItem = useCallback(
56
56
  (
57
- { name, initialAttributes, innerBlocks, syncStatus, content },
57
+ {
58
+ name,
59
+ initialAttributes,
60
+ innerBlocks,
61
+ innerContent,
62
+ syncStatus,
63
+ content,
64
+ },
58
65
  shouldFocusBlock
59
66
  ) => {
60
67
  const destinationClientId = getClosestAllowedInsertionPoint(
@@ -85,7 +92,8 @@ const useBlockTypesState = ( rootClientId, onInsert, isQuick ) => {
85
92
  : createBlock(
86
93
  name,
87
94
  initialAttributes,
88
- createBlocksFromInnerBlocksTemplate( innerBlocks )
95
+ createBlocksFromInnerBlocksTemplate( innerBlocks ),
96
+ innerContent
89
97
  );
90
98
  onInsert(
91
99
  insertedBlock,