@wordpress/block-editor 15.23.0 → 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 (363) hide show
  1. package/CHANGELOG.md +25 -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 +2 -3
  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/writing-mode-control/index.cjs +0 -1
  109. package/build/components/writing-mode-control/index.cjs.map +2 -2
  110. package/build/hooks/font-size.cjs +1 -2
  111. package/build/hooks/font-size.cjs.map +2 -2
  112. package/build/hooks/layout.cjs +5 -3
  113. package/build/hooks/layout.cjs.map +2 -2
  114. package/build/hooks/position.cjs +36 -16
  115. package/build/hooks/position.cjs.map +2 -2
  116. package/build/hooks/states.cjs +6 -9
  117. package/build/hooks/states.cjs.map +2 -2
  118. package/build/layouts/constrained.cjs +21 -21
  119. package/build/layouts/constrained.cjs.map +2 -2
  120. package/build/layouts/flex.cjs +0 -3
  121. package/build/layouts/flex.cjs.map +2 -2
  122. package/build/layouts/grid.cjs +51 -9
  123. package/build/layouts/grid.cjs.map +2 -2
  124. package/build/private-apis.cjs +4 -1
  125. package/build/private-apis.cjs.map +3 -3
  126. package/build/store/actions.cjs.map +2 -2
  127. package/build/store/private-keys.cjs +3 -0
  128. package/build/store/private-keys.cjs.map +2 -2
  129. package/build/store/private-selectors.cjs +72 -4
  130. package/build/store/private-selectors.cjs.map +2 -2
  131. package/build/store/selectors.cjs +13 -0
  132. package/build/store/selectors.cjs.map +2 -2
  133. package/build-module/autocompleters/block.mjs +10 -2
  134. package/build-module/autocompleters/block.mjs.map +2 -2
  135. package/build-module/components/background-image-control/index.mjs +0 -2
  136. package/build-module/components/background-image-control/index.mjs.map +2 -2
  137. package/build-module/components/block-inspector/edit-contents.mjs +4 -1
  138. package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
  139. package/build-module/components/block-inspector/index.mjs +2 -3
  140. package/build-module/components/block-inspector/index.mjs.map +2 -2
  141. package/build-module/components/block-list/block-invalid-warning.mjs +8 -19
  142. package/build-module/components/block-list/block-invalid-warning.mjs.map +2 -2
  143. package/build-module/components/block-styles/use-styles-for-block.mjs +2 -1
  144. package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
  145. package/build-module/components/block-title/use-block-display-title.mjs +7 -2
  146. package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
  147. package/build-module/components/block-toolbar/block-toolbar-icon.mjs +10 -14
  148. package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
  149. package/build-module/components/block-variation-transforms/index.mjs +0 -1
  150. package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
  151. package/build-module/components/child-layout-control/index.mjs +0 -2
  152. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  153. package/build-module/components/colors-gradients/control.mjs +5 -5
  154. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  155. package/build-module/components/date-format-picker/index.mjs +0 -1
  156. package/build-module/components/date-format-picker/index.mjs.map +2 -2
  157. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +1 -2
  158. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
  159. package/build-module/components/dimensions-tool/scale-tool.mjs +0 -1
  160. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  161. package/build-module/components/dimensions-tool/width-height-tool.mjs +2 -4
  162. package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
  163. package/build-module/components/font-appearance-control/index.mjs +6 -15
  164. package/build-module/components/font-appearance-control/index.mjs.map +2 -2
  165. package/build-module/components/font-family/index.mjs +6 -15
  166. package/build-module/components/font-family/index.mjs.map +2 -2
  167. package/build-module/components/font-sizes/font-size-picker.mjs +1 -2
  168. package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
  169. package/build-module/components/global-styles/border-panel.mjs +0 -1
  170. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  171. package/build-module/components/global-styles/dimensions-panel.mjs +0 -3
  172. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  173. package/build-module/components/global-styles/typography-panel.mjs +4 -10
  174. package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
  175. package/build-module/components/height-control/index.mjs +0 -2
  176. package/build-module/components/height-control/index.mjs.map +2 -2
  177. package/build-module/components/html-element-control/index.mjs +0 -1
  178. package/build-module/components/html-element-control/index.mjs.map +2 -2
  179. package/build-module/components/image-editor/index.mjs +5 -0
  180. package/build-module/components/image-editor/index.mjs.map +2 -2
  181. package/build-module/components/image-editor/zoom-dropdown.mjs +0 -1
  182. package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
  183. package/build-module/components/image-size-control/index.mjs +1 -3
  184. package/build-module/components/image-size-control/index.mjs.map +2 -2
  185. package/build-module/components/inner-content/index.mjs +82 -0
  186. package/build-module/components/inner-content/index.mjs.map +7 -0
  187. package/build-module/components/inserter/hooks/use-block-types-state.mjs +10 -2
  188. package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
  189. package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
  190. package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
  191. package/build-module/components/inserter/media-tab/media-list.mjs +3 -1
  192. package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
  193. package/build-module/components/inserter/media-tab/media-panel.mjs +227 -30
  194. package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
  195. package/build-module/components/inserter/media-tab/media-preview.mjs +33 -18
  196. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  197. package/build-module/components/inserter/media-tab/media-tab.mjs +27 -7
  198. package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
  199. package/build-module/components/inserter/mobile-tab-navigation.mjs +6 -1
  200. package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
  201. package/build-module/components/inserter/no-results.mjs +2 -2
  202. package/build-module/components/inserter/no-results.mjs.map +2 -2
  203. package/build-module/components/inserter/preview-panel.mjs +2 -1
  204. package/build-module/components/inserter/preview-panel.mjs.map +2 -2
  205. package/build-module/components/inserter-list-item/index.mjs +8 -2
  206. package/build-module/components/inserter-list-item/index.mjs.map +2 -2
  207. package/build-module/components/letter-spacing-control/index.mjs +0 -14
  208. package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
  209. package/build-module/components/line-height-control/index.mjs +7 -12
  210. package/build-module/components/line-height-control/index.mjs.map +2 -2
  211. package/build-module/components/list-view/block-select-button.mjs +90 -84
  212. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  213. package/build-module/components/list-view/block.mjs +51 -20
  214. package/build-module/components/list-view/block.mjs.map +2 -2
  215. package/build-module/components/list-view/expander.mjs +1 -1
  216. package/build-module/components/list-view/expander.mjs.map +2 -2
  217. package/build-module/components/list-view/use-list-view-client-ids.mjs +2 -2
  218. package/build-module/components/list-view/use-list-view-client-ids.mjs.map +2 -2
  219. package/build-module/components/observe-typing/index.mjs +4 -3
  220. package/build-module/components/observe-typing/index.mjs.map +2 -2
  221. package/build-module/components/preset-input-control/custom-value-controls.mjs +1 -3
  222. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  223. package/build-module/components/preset-input-control/index.mjs +1 -3
  224. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  225. package/build-module/components/resolution-tool/index.mjs +1 -2
  226. package/build-module/components/resolution-tool/index.mjs.map +2 -2
  227. package/build-module/components/text-alignment-control/index.mjs +0 -1
  228. package/build-module/components/text-alignment-control/index.mjs.map +2 -2
  229. package/build-module/components/text-decoration-control/index.mjs +0 -1
  230. package/build-module/components/text-decoration-control/index.mjs.map +2 -2
  231. package/build-module/components/text-indent-control/index.mjs +0 -8
  232. package/build-module/components/text-indent-control/index.mjs.map +2 -2
  233. package/build-module/components/text-transform-control/index.mjs +0 -1
  234. package/build-module/components/text-transform-control/index.mjs.map +2 -2
  235. package/build-module/components/use-block-display-information/index.mjs +10 -8
  236. package/build-module/components/use-block-display-information/index.mjs.map +2 -2
  237. package/build-module/components/use-on-block-drop/index.mjs +4 -7
  238. package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
  239. package/build-module/components/writing-mode-control/index.mjs +0 -1
  240. package/build-module/components/writing-mode-control/index.mjs.map +2 -2
  241. package/build-module/hooks/font-size.mjs +1 -2
  242. package/build-module/hooks/font-size.mjs.map +2 -2
  243. package/build-module/hooks/layout.mjs +4 -3
  244. package/build-module/hooks/layout.mjs.map +2 -2
  245. package/build-module/hooks/position.mjs +38 -18
  246. package/build-module/hooks/position.mjs.map +2 -2
  247. package/build-module/hooks/states.mjs +6 -9
  248. package/build-module/hooks/states.mjs.map +2 -2
  249. package/build-module/layouts/constrained.mjs +21 -21
  250. package/build-module/layouts/constrained.mjs.map +2 -2
  251. package/build-module/layouts/flex.mjs +0 -3
  252. package/build-module/layouts/flex.mjs.map +2 -2
  253. package/build-module/layouts/grid.mjs +52 -9
  254. package/build-module/layouts/grid.mjs.map +2 -2
  255. package/build-module/private-apis.mjs +5 -1
  256. package/build-module/private-apis.mjs.map +2 -2
  257. package/build-module/store/actions.mjs.map +2 -2
  258. package/build-module/store/private-keys.mjs +2 -0
  259. package/build-module/store/private-keys.mjs.map +2 -2
  260. package/build-module/store/private-selectors.mjs +71 -4
  261. package/build-module/store/private-selectors.mjs.map +2 -2
  262. package/build-module/store/selectors.mjs +13 -0
  263. package/build-module/store/selectors.mjs.map +2 -2
  264. package/build-style/content-rtl.css +11 -5
  265. package/build-style/content.css +11 -5
  266. package/build-style/style-rtl.css +113 -3
  267. package/build-style/style.css +113 -3
  268. package/package.json +43 -41
  269. package/src/autocompleters/block.js +10 -3
  270. package/src/autocompleters/test/block.js +53 -0
  271. package/src/components/background-image-control/index.js +0 -2
  272. package/src/components/block-inspector/edit-contents.js +5 -1
  273. package/src/components/block-inspector/index.js +3 -2
  274. package/src/components/block-list/block-invalid-warning.js +8 -19
  275. package/src/components/block-patterns-list/stories/index.story.jsx +1 -1
  276. package/src/components/block-styles/use-styles-for-block.js +1 -0
  277. package/src/components/block-title/use-block-display-title.js +7 -2
  278. package/src/components/block-toolbar/block-toolbar-icon.js +11 -16
  279. package/src/components/block-toolbar/test/block-toolbar-icon.js +32 -9
  280. package/src/components/block-variation-transforms/index.js +0 -1
  281. package/src/components/child-layout-control/index.js +0 -2
  282. package/src/components/color-palette/test/__snapshots__/control.js.snap +11 -106
  283. package/src/components/colors-gradients/control.js +4 -4
  284. package/src/components/colors-gradients/style.scss +2 -2
  285. package/src/components/date-format-picker/index.js +0 -1
  286. package/src/components/dimensions-tool/aspect-ratio-tool.js +0 -1
  287. package/src/components/dimensions-tool/scale-tool.js +0 -1
  288. package/src/components/dimensions-tool/width-height-tool.js +0 -2
  289. package/src/components/font-appearance-control/index.js +6 -19
  290. package/src/components/font-family/README.md +0 -9
  291. package/src/components/font-family/index.js +6 -19
  292. package/src/components/font-family/stories/index.story.jsx +0 -1
  293. package/src/components/font-sizes/font-size-picker.js +0 -1
  294. package/src/components/global-styles/border-panel.js +0 -1
  295. package/src/components/global-styles/dimensions-panel.js +0 -3
  296. package/src/components/global-styles/typography-panel.js +0 -6
  297. package/src/components/height-control/index.js +0 -2
  298. package/src/components/html-element-control/index.js +0 -1
  299. package/src/components/iframe/content.scss +3 -3
  300. package/src/components/image-editor/index.js +22 -0
  301. package/src/components/image-editor/zoom-dropdown.js +0 -1
  302. package/src/components/image-size-control/index.js +0 -2
  303. package/src/components/inner-content/index.js +119 -0
  304. package/src/components/inner-content/test/index.js +81 -0
  305. package/src/components/inserter/hooks/use-block-types-state.js +10 -2
  306. package/src/components/inserter/media-tab/hooks.js +59 -9
  307. package/src/components/inserter/media-tab/media-list.js +2 -0
  308. package/src/components/inserter/media-tab/media-panel.js +256 -17
  309. package/src/components/inserter/media-tab/media-preview.js +34 -17
  310. package/src/components/inserter/media-tab/media-tab.js +20 -2
  311. package/src/components/inserter/media-tab/test/hooks.js +204 -0
  312. package/src/components/inserter/mobile-tab-navigation.js +6 -1
  313. package/src/components/inserter/no-results.js +2 -2
  314. package/src/components/inserter/preview-panel.js +1 -0
  315. package/src/components/inserter/style.scss +110 -1
  316. package/src/components/inserter-list-item/index.js +8 -2
  317. package/src/components/letter-spacing-control/README.md +0 -8
  318. package/src/components/letter-spacing-control/index.js +5 -23
  319. package/src/components/letter-spacing-control/stories/index.story.jsx +0 -12
  320. package/src/components/line-height-control/README.md +0 -8
  321. package/src/components/line-height-control/index.js +7 -16
  322. package/src/components/line-height-control/stories/index.story.jsx +0 -1
  323. package/src/components/line-height-control/test/index.js +1 -7
  324. package/src/components/link-picker/test/index.js +3 -1
  325. package/src/components/list-view/block-select-button.js +5 -1
  326. package/src/components/list-view/block.js +57 -20
  327. package/src/components/list-view/expander.js +5 -1
  328. package/src/components/list-view/style.scss +19 -0
  329. package/src/components/list-view/use-list-view-client-ids.js +2 -2
  330. package/src/components/observe-typing/index.js +9 -4
  331. package/src/components/preset-input-control/custom-value-controls.js +0 -2
  332. package/src/components/preset-input-control/index.js +0 -2
  333. package/src/components/resolution-tool/index.js +0 -1
  334. package/src/components/responsive-block-control/test/index.js +1 -5
  335. package/src/components/text-alignment-control/index.js +0 -1
  336. package/src/components/text-decoration-control/index.js +0 -1
  337. package/src/components/text-indent-control/index.js +7 -16
  338. package/src/components/text-transform-control/index.js +0 -1
  339. package/src/components/use-block-display-information/index.js +9 -13
  340. package/src/components/use-block-display-information/test/index.js +47 -9
  341. package/src/components/use-on-block-drop/index.js +4 -7
  342. package/src/components/writing-mode-control/index.js +0 -1
  343. package/src/hooks/block-hooks.scss +15 -0
  344. package/src/hooks/font-size.js +0 -1
  345. package/src/hooks/layout.js +5 -4
  346. package/src/hooks/position.js +44 -23
  347. package/src/hooks/states.js +6 -12
  348. package/src/hooks/test/cross-origin-isolation.js +0 -4
  349. package/src/hooks/test/layout.js +75 -1
  350. package/src/layouts/constrained.js +51 -28
  351. package/src/layouts/flex.js +0 -3
  352. package/src/layouts/grid.js +59 -7
  353. package/src/layouts/test/constrained.js +91 -0
  354. package/src/layouts/test/grid.js +71 -0
  355. package/src/private-apis.js +4 -0
  356. package/src/store/actions.js +1 -0
  357. package/src/store/private-keys.js +1 -0
  358. package/src/store/private-selectors.js +141 -4
  359. package/src/store/selectors.js +41 -0
  360. package/src/store/test/private-selectors.js +422 -0
  361. package/src/store/test/reducer.js +11 -11
  362. package/src/store/test/selectors.js +133 -0
  363. package/src/style.scss +1 -0
@@ -469,14 +469,31 @@ $block-inserter-tabs-height: 44px;
469
469
  }
470
470
  }
471
471
 
472
+ // On mobile the media category renders inside a `Navigator.Screen`. The screen
473
+ // is a grid item the navigator aligns to the start (so it's content-height by
474
+ // default); stretch it to full height and make it a flex column so the panel
475
+ // below the back-button header fills the remaining space rather than overflowing.
476
+ .block-editor-inserter__media-mobile-screen {
477
+ display: flex;
478
+ flex-direction: column;
479
+ align-self: stretch;
480
+ }
481
+
472
482
  .block-editor-inserter__media-panel {
473
- min-height: 100%;
474
483
  padding: 0 $grid-unit-20;
475
484
  display: flex;
476
485
  flex-direction: column;
486
+ // Mobile: fill the height left below the screen's back-button header so the
487
+ // results scroll internally and the attach footer stays on-screen.
488
+ flex: 1;
489
+ min-height: 0;
477
490
 
478
491
  @include break-medium {
479
492
  padding: 0;
493
+ // Desktop: the panel lives in the absolutely-positioned category panel,
494
+ // so fill its height directly instead.
495
+ flex: 0 1 auto;
496
+ min-height: 100%;
480
497
  }
481
498
 
482
499
  .block-editor-inserter__media-panel-spinner {
@@ -494,6 +511,90 @@ $block-inserter-tabs-height: 44px;
494
511
  padding: $grid-unit-20 $grid-unit-30 $grid-unit-20;
495
512
  }
496
513
  }
514
+
515
+ // The empty state grows to fill, alongside `-results`/`-spinner`, so the
516
+ // attach footer below stays pinned to the bottom in every state.
517
+ .block-editor-inserter__no-results {
518
+ flex-grow: 1;
519
+ }
520
+
521
+ .block-editor-inserter__media-panel-attach {
522
+ // Match the padding (and so the height) of the "Open Media Library"
523
+ // footer button in the adjacent column, so the two line up.
524
+ &.components-button {
525
+ justify-content: center;
526
+ padding: $grid-unit-20;
527
+ }
528
+ // Balanced breathing room above and below the footer button.
529
+ // `flex-shrink: 0` keeps it full height as a flex child rather than
530
+ // collapsing to its content.
531
+ flex-shrink: 0;
532
+ margin-top: $grid-unit-20;
533
+ margin-bottom: $grid-unit-20;
534
+ @include break-medium() {
535
+ margin-left: $grid-unit-30;
536
+ margin-right: $grid-unit-30;
537
+ }
538
+ }
539
+
540
+ .block-editor-inserter__media-panel-results {
541
+ // Take over the scroll host role the media list had when it was a direct
542
+ // flex child of the panel: grow to fill and constrain height
543
+ // (`min-height: 0` lets the inner list's `overflow-y: auto` engage).
544
+ display: flex;
545
+ flex-direction: column;
546
+ flex-grow: 1;
547
+ min-height: 0;
548
+
549
+ // While an attach/detach refetch is in flight, dim the existing grid (and
550
+ // gently pulse it) rather than clearing it or blocking it with a spinner.
551
+ // Mirrors the DataViews "refreshing" treatment; the delayed `is-loading`
552
+ // class (see `useDelayedLoading`) means quick refetches show nothing.
553
+ &.is-loading .block-editor-inserter__media-list {
554
+ opacity: 0.5;
555
+ pointer-events: none;
556
+
557
+ @media not ( prefers-reduced-motion ) {
558
+ opacity: 1;
559
+ animation: inserter-media-panel-pulse 1s ease-in-out infinite;
560
+ }
561
+ }
562
+ }
563
+
564
+ // When the attach footer is present it supplies the breathing room beneath
565
+ // the grid, so drop the list's own bottom padding — otherwise scrolling to
566
+ // the end leaves a doubled gap before the footer.
567
+ &.has-attach-footer .block-editor-inserter__media-list {
568
+ padding-bottom: 0;
569
+ }
570
+ }
571
+
572
+ @keyframes inserter-media-panel-pulse {
573
+ 0%,
574
+ 100% {
575
+ opacity: 1;
576
+ }
577
+ 50% {
578
+ opacity: 0.5;
579
+ }
580
+ }
581
+
582
+ .block-editor-inserter__media-panel-detach-modal {
583
+ // Render above the ellipsis dropdown (a `.components-popover`) it opens from,
584
+ // which otherwise stacks over the modal. Matches other dropdown-triggered
585
+ // modals (e.g. block rename).
586
+ z-index: z-index(".block-editor-inserter__media-panel-detach-modal");
587
+
588
+ p {
589
+ margin-top: 0;
590
+ }
591
+ }
592
+
593
+ .block-editor-inserter__media-panel-detach-actions {
594
+ display: flex;
595
+ justify-content: flex-end;
596
+ gap: $grid-unit-10;
597
+ margin-top: $grid-unit-20;
497
598
  }
498
599
 
499
600
  .block-editor-inserter__media-list__list-item {
@@ -513,7 +614,15 @@ $block-inserter-tabs-height: 44px;
513
614
  .block-editor-inserter__media-list__item-preview > * {
514
615
  outline-color: rgba($black, 0.3);
515
616
  }
617
+ }
516
618
 
619
+ // Reveal the per-item options button on hover, and — so keyboard users can
620
+ // reach it — whenever focus is within the item (e.g. its preview is
621
+ // focused). The button is `display: none` by default, which can never
622
+ // receive focus, so without `:focus-within` the detach/report action is
623
+ // unreachable by keyboard.
624
+ &.is-hovered,
625
+ &:focus-within {
517
626
  .block-editor-inserter__media-list__item-preview-options > button {
518
627
  display: block;
519
628
  }
@@ -44,10 +44,16 @@ function InserterListItem( {
44
44
  createBlock(
45
45
  item.name,
46
46
  item.initialAttributes,
47
- createBlocksFromInnerBlocksTemplate( item.innerBlocks )
47
+ createBlocksFromInnerBlocksTemplate( item.innerBlocks ),
48
+ item.innerContent
48
49
  ),
49
50
  ],
50
- [ item.name, item.initialAttributes, item.innerBlocks ]
51
+ [
52
+ item.name,
53
+ item.initialAttributes,
54
+ item.innerBlocks,
55
+ item.innerContent,
56
+ ]
51
57
  );
52
58
 
53
59
  const isSynced =
@@ -19,7 +19,6 @@ const MyLetterSpacingControl = () => (
19
19
  value={ value }
20
20
  onChange={ onChange }
21
21
  __unstableInputWidth="auto"
22
- __next40pxDefaultSize
23
22
  />
24
23
  );
25
24
  ```
@@ -46,13 +45,6 @@ A callback function invoked when the value is changed.
46
45
 
47
46
  Input width to pass through to inner UnitControl. Should be a valid CSS value.
48
47
 
49
- #### `__next40pxDefaultSize`
50
-
51
- - **Type:** `boolean`
52
- - **Default:** `false`
53
-
54
- Start opting into the larger default height that will become the default size in a future version.
55
-
56
48
  ## Related components
57
49
 
58
50
  Block Editor components are components that can be used to compose the UI of your block editor. Thus, they can only be used under a [`BlockEditorProvider`](https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/provider/README.md) in the components tree.
@@ -5,7 +5,6 @@ import {
5
5
  __experimentalUnitControl as UnitControl,
6
6
  __experimentalUseCustomUnits as useCustomUnits,
7
7
  } from '@wordpress/components';
8
- import deprecated from '@wordpress/deprecated';
9
8
  import { __ } from '@wordpress/i18n';
10
9
 
11
10
  /**
@@ -16,16 +15,15 @@ import { useSettings } from '../../components/use-settings';
16
15
  /**
17
16
  * Control for letter-spacing.
18
17
  *
19
- * @param {Object} props Component props.
20
- * @param {boolean} props.__next40pxDefaultSize Start opting into the larger default height that will become the default size in a future version.
21
- * @param {string} props.value Currently selected letter-spacing.
22
- * @param {Function} props.onChange Handles change in letter-spacing selection.
23
- * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value.
18
+ * @param {Object} props Component props.
19
+ * @param {boolean} [props.__next40pxDefaultSize] Start opting into the larger default height that will become the default size in a future version.
20
+ * @param {string} props.value Currently selected letter-spacing.
21
+ * @param {Function} props.onChange Handles change in letter-spacing selection.
22
+ * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value.
24
23
  *
25
24
  * @return {Element} Letter-spacing control.
26
25
  */
27
26
  export default function LetterSpacingControl( {
28
- __next40pxDefaultSize = false,
29
27
  value,
30
28
  onChange,
31
29
  __unstableInputWidth = '60px',
@@ -37,24 +35,8 @@ export default function LetterSpacingControl( {
37
35
  defaultValues: { px: 2, em: 0.2, rem: 0.2 },
38
36
  } );
39
37
 
40
- if (
41
- ! __next40pxDefaultSize &&
42
- ( otherProps.size === undefined || otherProps.size === 'default' )
43
- ) {
44
- deprecated(
45
- `36px default size for wp.blockEditor.__experimentalLetterSpacingControl`,
46
- {
47
- since: '6.8',
48
- version: '7.1',
49
- hint: 'Set the `__next40pxDefaultSize` prop to true to start opting into the new default size, which will become the default in a future version.',
50
- }
51
- );
52
- }
53
-
54
38
  return (
55
39
  <UnitControl
56
- __next40pxDefaultSize={ __next40pxDefaultSize }
57
- __shouldNotWarnDeprecated36pxSize
58
40
  { ...otherProps }
59
41
  label={ __( 'Letter spacing' ) }
60
42
  value={ value }
@@ -46,24 +46,12 @@ const meta = {
46
46
  defaultValue: { summary: '60px' },
47
47
  },
48
48
  },
49
- __next40pxDefaultSize: {
50
- control: 'boolean',
51
- description:
52
- 'Start opting into the larger default height that will become the default size in a future version.',
53
- table: {
54
- type: { summary: 'boolean' },
55
- defaultValue: { summary: 'false' },
56
- },
57
- },
58
49
  },
59
50
  };
60
51
 
61
52
  export default meta;
62
53
 
63
54
  export const Default = {
64
- args: {
65
- __next40pxDefaultSize: true,
66
- },
67
55
  render: function Template( { onChange, ...args } ) {
68
56
  const [ value, setValue ] = useState( '' );
69
57
  return (
@@ -18,7 +18,6 @@ const MyLineHeightControl = () => (
18
18
  <LineHeightControl
19
19
  value={ lineHeight }
20
20
  onChange={ onChange }
21
- __next40pxDefaultSize
22
21
  />
23
22
  );
24
23
  ```
@@ -37,13 +36,6 @@ The value of the line height.
37
36
 
38
37
  A callback function that handles the application of the line height value.
39
38
 
40
- #### `__next40pxDefaultSize`
41
-
42
- - **Type:** `boolean`
43
- - **Default:** `false`
44
-
45
- Start opting into the larger default height that will become the default size in a future version.
46
-
47
39
  ## Related components
48
40
 
49
41
  Block Editor components are components that can be used to compose the UI of your block editor. Thus, they can only be used under a [`BlockEditorProvider`](https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/provider/README.md) in the components tree.
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import { __experimentalNumberControl as NumberControl } from '@wordpress/components';
6
- import deprecated from '@wordpress/deprecated';
7
6
 
8
7
  /**
9
8
  * Internal dependencies
@@ -17,8 +16,12 @@ import {
17
16
  } from './utils';
18
17
 
19
18
  const LineHeightControl = ( {
20
- /** Start opting into the larger default height that will become the default size in a future version. */
21
- __next40pxDefaultSize = false,
19
+ /**
20
+ * Start opting into the larger default height that will become the default size in a future version.
21
+ *
22
+ * @deprecated Default behavior since WordPress 7.1. Prop can be safely removed.
23
+ */
24
+ __next40pxDefaultSize: _next40pxDefaultSize,
22
25
  value: lineHeight,
23
26
  onChange,
24
27
  __unstableInputWidth = '60px',
@@ -90,23 +93,11 @@ const LineHeightControl = ( {
90
93
  onChange( `${ nextValue }` );
91
94
  };
92
95
 
93
- if (
94
- ! __next40pxDefaultSize &&
95
- ( otherProps.size === undefined || otherProps.size === 'default' )
96
- ) {
97
- deprecated( `36px default size for wp.blockEditor.LineHeightControl`, {
98
- since: '6.8',
99
- version: '7.1',
100
- hint: 'Set the `__next40pxDefaultSize` prop to true to start opting into the new default size, which will become the default in a future version.',
101
- } );
102
- }
103
-
104
96
  return (
105
97
  <div className="block-editor-line-height-control">
106
98
  <NumberControl
107
99
  { ...otherProps }
108
- __shouldNotWarnDeprecated36pxSize
109
- __next40pxDefaultSize={ __next40pxDefaultSize }
100
+ __next40pxDefaultSize
110
101
  __unstableInputWidth={ __unstableInputWidth }
111
102
  __unstableStateReducer={ stateReducer }
112
103
  onChange={ handleOnChange }
@@ -22,7 +22,6 @@ const Template = ( props ) => {
22
22
 
23
23
  export const Default = Template.bind( {} );
24
24
  Default.args = {
25
- __next40pxDefaultSize: true,
26
25
  __unstableInputWidth: '100px',
27
26
  };
28
27
 
@@ -19,13 +19,7 @@ const SPIN = STEP * SPIN_FACTOR;
19
19
 
20
20
  const ControlledLineHeightControl = () => {
21
21
  const [ value, setValue ] = useState();
22
- return (
23
- <LineHeightControl
24
- value={ value }
25
- onChange={ setValue }
26
- __next40pxDefaultSize
27
- />
28
- );
22
+ return <LineHeightControl value={ value } onChange={ setValue } />;
29
23
  };
30
24
 
31
25
  describe( 'LineHeightControl', () => {
@@ -141,7 +141,9 @@ describe( 'LinkPicker', () => {
141
141
  );
142
142
 
143
143
  const button = screen.getByRole( 'button' );
144
- const image = within( button ).getByRole( 'img', { hidden: true } );
144
+ const image = within( button ).getByRole( 'presentation', {
145
+ hidden: true,
146
+ } );
145
147
 
146
148
  expect( image ).toHaveAttribute(
147
149
  'src',
@@ -46,6 +46,7 @@ function ListViewBlockSelectButton(
46
46
  isExpanded,
47
47
  ariaDescribedBy,
48
48
  visibilityLabel,
49
+ isDisabled = false,
49
50
  },
50
51
  ref
51
52
  ) {
@@ -79,6 +80,8 @@ function ListViewBlockSelectButton(
79
80
  }
80
81
 
81
82
  return (
83
+ // Disabled list view items intentionally omit href so TreeGrid skips them.
84
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
82
85
  <a
83
86
  className={ clsx(
84
87
  'block-editor-list-view-block-select-button',
@@ -94,7 +97,8 @@ function ListViewBlockSelectButton(
94
97
  onDragStart={ onDragStartHandler }
95
98
  onDragEnd={ onDragEnd }
96
99
  draggable={ draggable }
97
- href={ `#block-${ clientId }` }
100
+ href={ isDisabled ? undefined : `#block-${ clientId }` }
101
+ aria-disabled={ isDisabled ? true : undefined }
98
102
  aria-describedby={ ariaDescribedBy }
99
103
  aria-expanded={ isExpanded }
100
104
  >
@@ -98,6 +98,7 @@ function ListViewBlock( {
98
98
  insertAfterBlock,
99
99
  insertBeforeBlock,
100
100
  showViewportModal,
101
+ stopEditingContentOnlySection,
101
102
  } = unlock( useDispatch( blockEditorStore ) );
102
103
 
103
104
  const debouncedToggleBlockHighlight = useDebounce(
@@ -125,21 +126,36 @@ function ListViewBlock( {
125
126
 
126
127
  const pasteStyles = usePasteStyles();
127
128
 
128
- const { block, blockName, allowRightClickOverrides } = useSelect(
129
+ const {
130
+ block,
131
+ blockName,
132
+ blockEditingMode,
133
+ allowRightClickOverrides,
134
+ editedSection,
135
+ } = useSelect(
129
136
  ( select ) => {
130
- const { getBlock, getBlockName, getSettings } = unlock(
131
- select( blockEditorStore )
132
- );
137
+ const {
138
+ getBlock,
139
+ getBlockName,
140
+ getBlockEditingMode: getBlockEditingModeForClientId,
141
+ getSettings,
142
+ getEditedContentOnlySection,
143
+ } = unlock( select( blockEditorStore ) );
133
144
 
134
145
  return {
135
146
  block: getBlock( clientId ),
136
147
  blockName: getBlockName( clientId ),
148
+ blockEditingMode: getBlockEditingModeForClientId( clientId ),
137
149
  allowRightClickOverrides:
138
150
  getSettings().allowRightClickOverrides,
151
+ editedSection: getEditedContentOnlySection(),
139
152
  };
140
153
  },
141
154
  [ clientId ]
142
155
  );
156
+
157
+ const isDisabled = blockEditingMode === 'disabled';
158
+
143
159
  const { canRename } = useBlockRename( blockName );
144
160
 
145
161
  const showBlockActions =
@@ -202,6 +218,13 @@ function ListViewBlock( {
202
218
  return;
203
219
  }
204
220
 
221
+ if ( editedSection && isMatch( 'core/block-editor/unselect', event ) ) {
222
+ event.stopPropagation();
223
+ event.preventDefault();
224
+ stopEditingContentOnlySection();
225
+ return;
226
+ }
227
+
205
228
  const isDeleteKey = [ BACKSPACE, DELETE ].includes( event.keyCode );
206
229
 
207
230
  // If multiple blocks are selected, deselect all blocks when the user
@@ -539,7 +562,8 @@ function ListViewBlock( {
539
562
  );
540
563
 
541
564
  const hasSiblings = siblingBlockCount > 0;
542
- const hasRenderedMovers = showBlockMovers && hasSiblings;
565
+ const canShowBlockActions = showBlockActions && ! isDisabled;
566
+ const hasRenderedMovers = showBlockMovers && hasSiblings && ! isDisabled;
543
567
  const moverCellClassName = clsx(
544
568
  'block-editor-list-view-block__mover-cell',
545
569
  { 'is-visible': isHovered || isSelected }
@@ -553,7 +577,7 @@ function ListViewBlock( {
553
577
  let colSpan;
554
578
  if ( hasRenderedMovers ) {
555
579
  colSpan = 2;
556
- } else if ( ! showBlockActions ) {
580
+ } else if ( ! canShowBlockActions ) {
557
581
  colSpan = 3;
558
582
  }
559
583
 
@@ -566,12 +590,13 @@ function ListViewBlock( {
566
590
  'is-dragging': isDragged,
567
591
  'has-single-cell': ! showBlockActions,
568
592
  'is-synced': blockInformation?.isSynced,
569
- 'is-draggable': canMoveBlock,
593
+ 'is-draggable': canMoveBlock && ! isDisabled,
570
594
  'is-displacement-normal': displacement === 'normal',
571
595
  'is-displacement-up': displacement === 'up',
572
596
  'is-displacement-down': displacement === 'down',
573
597
  'is-after-dragged-blocks': isAfterDraggedBlocks,
574
598
  'is-nesting': isNesting,
599
+ 'is-disabled': isDisabled,
575
600
  } );
576
601
 
577
602
  // Only include all selected blocks if the currently clicked on block
@@ -582,19 +607,28 @@ function ListViewBlock( {
582
607
  ? selectedClientIds
583
608
  : [ clientId ];
584
609
 
585
- // Detect if there is a block in the canvas currently being edited and multi-selection is not happening.
586
- const currentlyEditingBlockInCanvas =
587
- isSelected && selectedClientIds.length === 1;
610
+ const getListViewBlockTabIndex = ( rovingTabIndex ) => {
611
+ if ( isDisabled ) {
612
+ return -1;
613
+ }
614
+
615
+ // Detect if there is a block in the canvas currently being edited and multi-selection is not happening.
616
+ if ( isSelected && selectedClientIds.length === 1 ) {
617
+ return 0;
618
+ }
619
+
620
+ return rovingTabIndex;
621
+ };
588
622
 
589
623
  return (
590
624
  <ListViewLeaf
591
625
  className={ classes }
592
626
  isDragged={ isDragged }
593
627
  onKeyDown={ onKeyDown }
594
- onMouseEnter={ onMouseEnter }
595
- onMouseLeave={ onMouseLeave }
596
- onFocus={ onMouseEnter }
597
- onBlur={ onMouseLeave }
628
+ onMouseEnter={ isDisabled ? undefined : onMouseEnter }
629
+ onMouseLeave={ isDisabled ? undefined : onMouseLeave }
630
+ onFocus={ isDisabled ? undefined : onMouseEnter }
631
+ onBlur={ isDisabled ? undefined : onMouseLeave }
598
632
  level={ level }
599
633
  position={ position }
600
634
  rowCount={ rowCount }
@@ -615,22 +649,25 @@ function ListViewBlock( {
615
649
  <ListViewBlockContents
616
650
  block={ block }
617
651
  onClick={ selectEditorBlock }
618
- onContextMenu={ onContextMenu }
652
+ onContextMenu={
653
+ isDisabled ? undefined : onContextMenu
654
+ }
619
655
  onMouseDown={ onMouseDown }
620
- onToggleExpanded={ toggleExpanded }
656
+ onToggleExpanded={
657
+ isDisabled ? undefined : toggleExpanded
658
+ }
621
659
  isSelected={ isSelected }
622
660
  position={ position }
623
661
  siblingBlockCount={ siblingBlockCount }
624
662
  level={ level }
625
663
  ref={ ref }
626
- tabIndex={
627
- currentlyEditingBlockInCanvas ? 0 : tabIndex
628
- }
664
+ tabIndex={ getListViewBlockTabIndex( tabIndex ) }
629
665
  onFocus={ onFocus }
630
666
  isExpanded={ canEditBlock ? isExpanded : undefined }
631
667
  selectedClientIds={ selectedClientIds }
632
668
  ariaDescribedBy={ descriptionId }
633
669
  visibilityLabel={ blockVisibilityDescription }
670
+ isDisabled={ isDisabled }
634
671
  />
635
672
  <AriaReferencedText id={ descriptionId }>
636
673
  { [
@@ -676,7 +713,7 @@ function ListViewBlock( {
676
713
  </>
677
714
  ) }
678
715
 
679
- { showBlockActions && BlockSettingsMenu && (
716
+ { canShowBlockActions && BlockSettingsMenu && (
680
717
  <TreeGridCell
681
718
  className={ listViewBlockSettingsClassName }
682
719
  aria-selected={ !! isSelected }
@@ -15,7 +15,11 @@ export default function ListViewExpander( { onClick } ) {
15
15
  // For the current tree grid implementation, please do not try to make this a button.
16
16
  <span
17
17
  className="block-editor-list-view__expander"
18
- onClick={ ( event ) => onClick( event, { forceToggle: true } ) }
18
+ onClick={
19
+ onClick
20
+ ? ( event ) => onClick( event, { forceToggle: true } )
21
+ : undefined
22
+ }
19
23
  aria-hidden="true"
20
24
  data-testid="list-view-expander"
21
25
  >
@@ -447,6 +447,25 @@
447
447
  box-shadow: 0 0 0 $radius-small var(--wp-admin-theme-color);
448
448
  }
449
449
  }
450
+
451
+ &.is-disabled {
452
+ opacity: 0.2;
453
+ @media not ( prefers-reduced-motion ) {
454
+ transition: opacity 0.1s linear;
455
+ }
456
+
457
+ &:hover {
458
+ opacity: 0.2;
459
+ }
460
+
461
+ .block-editor-list-view__expander {
462
+ cursor: default;
463
+ }
464
+
465
+ .block-editor-list-view-block-select-button:hover {
466
+ color: inherit;
467
+ }
468
+ }
450
469
  }
451
470
 
452
471
  // First level of indentation is aria-level 2, max indent is 8.
@@ -16,14 +16,14 @@ export default function useListViewClientIds( { blocks, rootClientId } ) {
16
16
  const {
17
17
  getDraggedBlockClientIds,
18
18
  getSelectedBlockClientIds,
19
- getEnabledClientIdsTree,
19
+ getListViewClientIdsTree,
20
20
  } = unlock( select( blockEditorStore ) );
21
21
 
22
22
  return {
23
23
  selectedClientIds: getSelectedBlockClientIds(),
24
24
  draggedClientIds: getDraggedBlockClientIds(),
25
25
  clientIdsTree:
26
- blocks ?? getEnabledClientIdsTree( rootClientId ),
26
+ blocks ?? getListViewClientIdsTree( rootClientId ),
27
27
  };
28
28
  },
29
29
  [ blocks, rootClientId ]
@@ -129,6 +129,12 @@ export function useTypingObserver() {
129
129
  if ( isTyping ) {
130
130
  let timerId;
131
131
 
132
+ // Capture the window reference while the node is still
133
+ // attached. Reusing the reference we held at mount keeps the
134
+ // cleanup and the handlers working against the same window
135
+ // we set things up on.
136
+ const { defaultView } = node.ownerDocument;
137
+
132
138
  /**
133
139
  * Stops typing when focus transitions to a non-text field element.
134
140
  *
@@ -141,7 +147,7 @@ export function useTypingObserver() {
141
147
  // before the keydown event, wait until after current stack
142
148
  // before evaluating whether typing is to be stopped. Otherwise,
143
149
  // typing will re-start.
144
- timerId = node.ownerDocument.defaultView.setTimeout( () => {
150
+ timerId = defaultView.setTimeout( () => {
145
151
  if ( ! isTextField( target ) ) {
146
152
  stopTyping();
147
153
  }
@@ -168,8 +174,7 @@ export function useTypingObserver() {
168
174
  * uncollapsed (shift) selection.
169
175
  */
170
176
  function stopTypingOnSelectionUncollapse() {
171
- const selection =
172
- node.ownerDocument.defaultView.getSelection();
177
+ const selection = defaultView.getSelection();
173
178
  if ( ! selection.isCollapsed ) {
174
179
  stopTyping();
175
180
  }
@@ -184,7 +189,7 @@ export function useTypingObserver() {
184
189
  );
185
190
 
186
191
  return () => {
187
- node.ownerDocument.defaultView.clearTimeout( timerId );
192
+ defaultView.clearTimeout( timerId );
188
193
  node.removeEventListener(
189
194
  'focus',
190
195
  stopTypingOnNonTextField
@@ -71,7 +71,6 @@ export default function CustomValueControls( {
71
71
  onFocus={ onMouseOver }
72
72
  onMouseOut={ onMouseOut }
73
73
  onMouseOver={ onMouseOver }
74
- size="__unstable-large"
75
74
  units={ units }
76
75
  value={ [ parsedQuantity, computedUnit ].join( '' ) }
77
76
  placeholder={ allPlaceholder }
@@ -126,7 +125,6 @@ export default function CustomValueControls( {
126
125
  step={ step }
127
126
  value={ parsedQuantity }
128
127
  withInputField={ false }
129
- __next40pxDefaultSize
130
128
  />
131
129
  </>
132
130
  );