@wordpress/block-editor 15.21.0 → 15.22.1-next.v.202606191442.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 (554) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/build/components/block-card/index.cjs +4 -5
  3. package/build/components/block-card/index.cjs.map +2 -2
  4. package/build/components/block-compare/index.cjs +2 -2
  5. package/build/components/block-compare/index.cjs.map +2 -2
  6. package/build/components/block-inspector/index.cjs +3 -4
  7. package/build/components/block-inspector/index.cjs.map +2 -2
  8. package/build/components/block-mover/mover-description.cjs +6 -6
  9. package/build/components/block-mover/mover-description.cjs.map +1 -1
  10. package/build/components/block-patterns-list/index.cjs +1 -1
  11. package/build/components/block-patterns-list/index.cjs.map +2 -2
  12. package/build/components/block-patterns-paging/index.cjs +4 -4
  13. package/build/components/block-patterns-paging/index.cjs.map +2 -2
  14. package/build/components/block-popover/use-popover-scroll.cjs.map +1 -1
  15. package/build/components/block-quick-navigation/index.cjs +7 -5
  16. package/build/components/block-quick-navigation/index.cjs.map +2 -2
  17. package/build/components/block-switcher/block-transformations-menu.cjs +16 -15
  18. package/build/components/block-switcher/block-transformations-menu.cjs.map +2 -2
  19. package/build/components/block-switcher/index.cjs +4 -4
  20. package/build/components/block-switcher/index.cjs.map +2 -2
  21. package/build/components/block-toolbar/edit-section-button.cjs.map +1 -1
  22. package/build/components/block-tools/use-block-toolbar-popover-props.cjs +10 -4
  23. package/build/components/block-tools/use-block-toolbar-popover-props.cjs.map +2 -2
  24. package/build/components/child-layout-control/index.cjs +51 -19
  25. package/build/components/child-layout-control/index.cjs.map +2 -2
  26. package/build/components/dimensions-tool/index.cjs +4 -5
  27. package/build/components/dimensions-tool/index.cjs.map +2 -2
  28. package/build/components/dimensions-tool/scale-tool.cjs +1 -1
  29. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  30. package/build/components/global-styles/advanced-panel.cjs +23 -15
  31. package/build/components/global-styles/advanced-panel.cjs.map +2 -2
  32. package/build/components/global-styles/background-panel.cjs +2 -2
  33. package/build/components/global-styles/background-panel.cjs.map +2 -2
  34. package/build/components/global-styles/border-panel.cjs +2 -0
  35. package/build/components/global-styles/border-panel.cjs.map +2 -2
  36. package/build/components/global-styles/dimensions-panel.cjs +2 -2
  37. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  38. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  39. package/build/components/grid/grid-item-resizer.cjs.map +1 -1
  40. package/build/components/grid/grid-visualizer.cjs.map +1 -1
  41. package/build/components/iframe/index.cjs +6 -3
  42. package/build/components/iframe/index.cjs.map +3 -3
  43. package/build/components/image-editor/use-transform-image.cjs.map +1 -1
  44. package/build/components/inner-blocks/use-inner-block-template-sync.cjs +3 -1
  45. package/build/components/inner-blocks/use-inner-block-template-sync.cjs.map +2 -2
  46. package/build/components/inserter/get-appender-label.cjs.map +1 -1
  47. package/build/components/inserter/hooks/use-patterns-state.cjs +1 -1
  48. package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
  49. package/build/components/inserter/index.cjs +179 -220
  50. package/build/components/inserter/index.cjs.map +3 -3
  51. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  52. package/build/components/inserter/search-items.cjs.map +1 -1
  53. package/build/components/inserter/search-results.cjs +1 -1
  54. package/build/components/inserter/search-results.cjs.map +2 -2
  55. package/build/components/inspector-controls/fill.cjs +1 -3
  56. package/build/components/inspector-controls/fill.cjs.map +2 -2
  57. package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
  58. package/build/components/inspector-controls-tabs/styles-tab.cjs +1 -1
  59. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
  60. package/build/components/keyboard-shortcuts/index.cjs.map +1 -1
  61. package/build/components/line-height-control/index.cjs.map +1 -1
  62. package/build/components/link-control/index.cjs +1 -1
  63. package/build/components/link-control/index.cjs.map +1 -1
  64. package/build/components/link-control/normalize-url.cjs.map +1 -1
  65. package/build/components/list-view/block-select-button.cjs +10 -12
  66. package/build/components/list-view/block-select-button.cjs.map +2 -2
  67. package/build/components/list-view/block.cjs +2 -1
  68. package/build/components/list-view/block.cjs.map +2 -2
  69. package/build/components/list-view/utils.cjs.map +1 -1
  70. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  71. package/build/components/provider/index.cjs.map +1 -1
  72. package/build/components/provider/use-block-sync.cjs +11 -2
  73. package/build/components/provider/use-block-sync.cjs.map +2 -2
  74. package/build/components/rich-text/event-listeners/before-input-rules.cjs +5 -5
  75. package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
  76. package/build/components/rich-text/event-listeners/delete.cjs +4 -4
  77. package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
  78. package/build/components/rich-text/event-listeners/enter.cjs +7 -2
  79. package/build/components/rich-text/event-listeners/enter.cjs.map +2 -2
  80. package/build/components/rich-text/event-listeners/input-events.cjs +4 -4
  81. package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
  82. package/build/components/rich-text/event-listeners/input-rules.cjs +17 -4
  83. package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
  84. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +4 -4
  85. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
  86. package/build/components/rich-text/event-listeners/paste-handler.cjs.map +1 -1
  87. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +4 -4
  88. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
  89. package/build/components/rich-text/event-listeners/shortcuts.cjs +4 -4
  90. package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
  91. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +4 -4
  92. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
  93. package/build/components/rich-text/index.cjs +1 -23
  94. package/build/components/rich-text/index.cjs.map +2 -2
  95. package/build/components/rich-text/prevent-event-discovery.cjs +1 -1
  96. package/build/components/rich-text/prevent-event-discovery.cjs.map +1 -1
  97. package/build/components/use-block-commands/index.cjs +5 -5
  98. package/build/components/use-block-commands/index.cjs.map +2 -2
  99. package/build/components/writing-flow/use-tab-nav.cjs.map +1 -1
  100. package/build/hooks/anchor.cjs +12 -16
  101. package/build/hooks/anchor.cjs.map +2 -2
  102. package/build/hooks/background.cjs.map +1 -1
  103. package/build/hooks/block-fields/index.cjs +13 -2
  104. package/build/hooks/block-fields/index.cjs.map +2 -2
  105. package/build/hooks/border.cjs +0 -3
  106. package/build/hooks/border.cjs.map +2 -2
  107. package/build/hooks/color.cjs +1 -4
  108. package/build/hooks/color.cjs.map +2 -2
  109. package/build/hooks/dimensions.cjs +13 -5
  110. package/build/hooks/dimensions.cjs.map +2 -2
  111. package/build/hooks/fit-text.cjs +11 -0
  112. package/build/hooks/fit-text.cjs.map +2 -2
  113. package/build/hooks/layout-child.cjs +27 -2
  114. package/build/hooks/layout-child.cjs.map +2 -2
  115. package/build/hooks/list-view.cjs +10 -7
  116. package/build/hooks/list-view.cjs.map +2 -2
  117. package/build/hooks/position.cjs +19 -22
  118. package/build/hooks/position.cjs.map +2 -2
  119. package/build/hooks/spacing-visualizer.cjs.map +1 -1
  120. package/build/hooks/state-utils.cjs.map +1 -1
  121. package/build/hooks/style.cjs +42 -2
  122. package/build/hooks/style.cjs.map +2 -2
  123. package/build/hooks/supports.cjs +0 -7
  124. package/build/hooks/supports.cjs.map +2 -2
  125. package/build/private-apis.cjs +4 -0
  126. package/build/private-apis.cjs.map +2 -2
  127. package/build/store/actions.cjs +7 -3
  128. package/build/store/actions.cjs.map +2 -2
  129. package/build/store/private-actions.cjs +1 -2
  130. package/build/store/private-actions.cjs.map +2 -2
  131. package/build/store/private-selectors.cjs +42 -2
  132. package/build/store/private-selectors.cjs.map +2 -2
  133. package/build/store/reducer.cjs +14 -6
  134. package/build/store/reducer.cjs.map +2 -2
  135. package/build/store/selectors.cjs +60 -41
  136. package/build/store/selectors.cjs.map +2 -2
  137. package/build/utils/dom.cjs.map +1 -1
  138. package/build/utils/selection.cjs +1 -1
  139. package/build-module/components/block-card/index.mjs +5 -6
  140. package/build-module/components/block-card/index.mjs.map +2 -2
  141. package/build-module/components/block-compare/index.mjs +1 -1
  142. package/build-module/components/block-compare/index.mjs.map +2 -2
  143. package/build-module/components/block-inspector/index.mjs +3 -5
  144. package/build-module/components/block-inspector/index.mjs.map +2 -2
  145. package/build-module/components/block-mover/mover-description.mjs +6 -6
  146. package/build-module/components/block-mover/mover-description.mjs.map +1 -1
  147. package/build-module/components/block-patterns-list/index.mjs +1 -1
  148. package/build-module/components/block-patterns-list/index.mjs.map +2 -2
  149. package/build-module/components/block-patterns-paging/index.mjs +4 -4
  150. package/build-module/components/block-patterns-paging/index.mjs.map +2 -2
  151. package/build-module/components/block-popover/use-popover-scroll.mjs.map +1 -1
  152. package/build-module/components/block-quick-navigation/index.mjs +8 -6
  153. package/build-module/components/block-quick-navigation/index.mjs.map +2 -2
  154. package/build-module/components/block-switcher/block-transformations-menu.mjs +16 -15
  155. package/build-module/components/block-switcher/block-transformations-menu.mjs.map +2 -2
  156. package/build-module/components/block-switcher/index.mjs +4 -4
  157. package/build-module/components/block-switcher/index.mjs.map +2 -2
  158. package/build-module/components/block-toolbar/edit-section-button.mjs.map +1 -1
  159. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs +10 -4
  160. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs.map +2 -2
  161. package/build-module/components/child-layout-control/index.mjs +51 -19
  162. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  163. package/build-module/components/dimensions-tool/index.mjs +4 -5
  164. package/build-module/components/dimensions-tool/index.mjs.map +2 -2
  165. package/build-module/components/dimensions-tool/scale-tool.mjs +1 -1
  166. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  167. package/build-module/components/global-styles/advanced-panel.mjs +23 -15
  168. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  169. package/build-module/components/global-styles/background-panel.mjs +3 -3
  170. package/build-module/components/global-styles/background-panel.mjs.map +2 -2
  171. package/build-module/components/global-styles/border-panel.mjs +2 -0
  172. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  173. package/build-module/components/global-styles/dimensions-panel.mjs +3 -4
  174. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  175. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  176. package/build-module/components/grid/grid-item-resizer.mjs.map +1 -1
  177. package/build-module/components/grid/grid-visualizer.mjs.map +1 -1
  178. package/build-module/components/iframe/index.mjs +6 -3
  179. package/build-module/components/iframe/index.mjs.map +2 -2
  180. package/build-module/components/image-editor/use-transform-image.mjs.map +1 -1
  181. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs +3 -1
  182. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs.map +2 -2
  183. package/build-module/components/inserter/get-appender-label.mjs.map +1 -1
  184. package/build-module/components/inserter/hooks/use-patterns-state.mjs +1 -1
  185. package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
  186. package/build-module/components/inserter/index.mjs +185 -222
  187. package/build-module/components/inserter/index.mjs.map +3 -3
  188. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  189. package/build-module/components/inserter/search-items.mjs.map +1 -1
  190. package/build-module/components/inserter/search-results.mjs +1 -1
  191. package/build-module/components/inserter/search-results.mjs.map +2 -2
  192. package/build-module/components/inspector-controls/fill.mjs +1 -3
  193. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  194. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  195. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +1 -1
  196. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  197. package/build-module/components/keyboard-shortcuts/index.mjs.map +1 -1
  198. package/build-module/components/line-height-control/index.mjs.map +1 -1
  199. package/build-module/components/link-control/index.mjs +1 -1
  200. package/build-module/components/link-control/index.mjs.map +1 -1
  201. package/build-module/components/link-control/normalize-url.mjs.map +1 -1
  202. package/build-module/components/list-view/block-select-button.mjs +10 -12
  203. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  204. package/build-module/components/list-view/block.mjs +2 -1
  205. package/build-module/components/list-view/block.mjs.map +2 -2
  206. package/build-module/components/list-view/utils.mjs.map +1 -1
  207. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  208. package/build-module/components/provider/index.mjs.map +1 -1
  209. package/build-module/components/provider/use-block-sync.mjs +11 -2
  210. package/build-module/components/provider/use-block-sync.mjs.map +2 -2
  211. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +5 -5
  212. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
  213. package/build-module/components/rich-text/event-listeners/delete.mjs +4 -4
  214. package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
  215. package/build-module/components/rich-text/event-listeners/enter.mjs +7 -2
  216. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  217. package/build-module/components/rich-text/event-listeners/input-events.mjs +4 -4
  218. package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
  219. package/build-module/components/rich-text/event-listeners/input-rules.mjs +17 -4
  220. package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
  221. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +4 -4
  222. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
  223. package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +1 -1
  224. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +4 -4
  225. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
  226. package/build-module/components/rich-text/event-listeners/shortcuts.mjs +4 -4
  227. package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
  228. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +4 -4
  229. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
  230. package/build-module/components/rich-text/index.mjs +1 -23
  231. package/build-module/components/rich-text/index.mjs.map +2 -2
  232. package/build-module/components/rich-text/prevent-event-discovery.mjs +1 -1
  233. package/build-module/components/rich-text/prevent-event-discovery.mjs.map +1 -1
  234. package/build-module/components/use-block-commands/index.mjs +5 -5
  235. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  236. package/build-module/components/writing-flow/use-tab-nav.mjs.map +1 -1
  237. package/build-module/hooks/anchor.mjs +12 -16
  238. package/build-module/hooks/anchor.mjs.map +2 -2
  239. package/build-module/hooks/background.mjs.map +1 -1
  240. package/build-module/hooks/block-fields/index.mjs +13 -2
  241. package/build-module/hooks/block-fields/index.mjs.map +2 -2
  242. package/build-module/hooks/border.mjs +1 -4
  243. package/build-module/hooks/border.mjs.map +2 -2
  244. package/build-module/hooks/color.mjs +2 -5
  245. package/build-module/hooks/color.mjs.map +2 -2
  246. package/build-module/hooks/dimensions.mjs +13 -6
  247. package/build-module/hooks/dimensions.mjs.map +2 -2
  248. package/build-module/hooks/fit-text.mjs +11 -0
  249. package/build-module/hooks/fit-text.mjs.map +2 -2
  250. package/build-module/hooks/layout-child.mjs +27 -2
  251. package/build-module/hooks/layout-child.mjs.map +2 -2
  252. package/build-module/hooks/list-view.mjs +10 -7
  253. package/build-module/hooks/list-view.mjs.map +2 -2
  254. package/build-module/hooks/position.mjs +20 -23
  255. package/build-module/hooks/position.mjs.map +2 -2
  256. package/build-module/hooks/spacing-visualizer.mjs.map +1 -1
  257. package/build-module/hooks/state-utils.mjs.map +1 -1
  258. package/build-module/hooks/style.mjs +44 -3
  259. package/build-module/hooks/style.mjs.map +2 -2
  260. package/build-module/hooks/supports.mjs +0 -7
  261. package/build-module/hooks/supports.mjs.map +2 -2
  262. package/build-module/private-apis.mjs +8 -0
  263. package/build-module/private-apis.mjs.map +2 -2
  264. package/build-module/store/actions.mjs +7 -3
  265. package/build-module/store/actions.mjs.map +2 -2
  266. package/build-module/store/private-actions.mjs +1 -2
  267. package/build-module/store/private-actions.mjs.map +2 -2
  268. package/build-module/store/private-selectors.mjs +39 -1
  269. package/build-module/store/private-selectors.mjs.map +2 -2
  270. package/build-module/store/reducer.mjs +14 -6
  271. package/build-module/store/reducer.mjs.map +2 -2
  272. package/build-module/store/selectors.mjs +62 -42
  273. package/build-module/store/selectors.mjs.map +2 -2
  274. package/build-module/utils/dom.mjs.map +1 -1
  275. package/build-module/utils/selection.mjs +1 -1
  276. package/build-style/content-rtl.css +12 -0
  277. package/build-style/content.css +12 -0
  278. package/build-style/style-rtl.css +26 -8
  279. package/build-style/style.css +26 -8
  280. package/package.json +54 -46
  281. package/src/components/block-breadcrumb/README.md +2 -2
  282. package/src/components/block-card/index.js +7 -13
  283. package/src/components/block-compare/README.md +6 -6
  284. package/src/components/block-compare/index.js +1 -3
  285. package/src/components/block-inspector/index.js +2 -10
  286. package/src/components/block-patterns-list/index.js +1 -2
  287. package/src/components/block-preview/README.md +1 -1
  288. package/src/components/block-quick-navigation/index.js +7 -7
  289. package/src/components/block-switcher/block-transformations-menu.js +16 -18
  290. package/src/components/block-switcher/index.js +4 -4
  291. package/src/components/block-tools/use-block-toolbar-popover-props.js +10 -4
  292. package/src/components/block-types-list/README.md +0 -19
  293. package/src/components/child-layout-control/index.js +65 -20
  294. package/src/components/child-layout-control/test/index.js +64 -0
  295. package/src/components/dimensions-tool/index.js +4 -9
  296. package/src/components/dimensions-tool/scale-tool.js +1 -2
  297. package/src/components/dimensions-tool/test/index.js +89 -11
  298. package/src/components/global-styles/advanced-panel.js +5 -1
  299. package/src/components/global-styles/background-panel.js +3 -3
  300. package/src/components/global-styles/border-panel.js +2 -0
  301. package/src/components/global-styles/dimensions-panel.js +13 -15
  302. package/src/components/global-styles/shadow-panel-components.js +0 -1
  303. package/src/components/iframe/index.js +8 -3
  304. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -1
  305. package/src/components/inserter/hooks/use-patterns-state.js +1 -1
  306. package/src/components/inserter/index.js +257 -288
  307. package/src/components/inserter/media-tab/media-preview.js +0 -1
  308. package/src/components/inserter/search-results.js +1 -3
  309. package/src/components/inspector-controls/fill.js +6 -8
  310. package/src/components/inspector-controls-tabs/index.js +0 -1
  311. package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
  312. package/src/components/justify-content-control/README.md +1 -1
  313. package/src/components/list-view/block-select-button.js +9 -14
  314. package/src/components/list-view/block.js +1 -0
  315. package/src/components/media-placeholder/README.md +1 -29
  316. package/src/components/media-upload/README.md +0 -19
  317. package/src/components/preset-input-control/custom-value-controls.js +0 -1
  318. package/src/components/provider/test/use-block-sync.js +40 -0
  319. package/src/components/provider/use-block-sync.js +12 -2
  320. package/src/components/rich-text/event-listeners/before-input-rules.js +5 -4
  321. package/src/components/rich-text/event-listeners/delete.js +9 -4
  322. package/src/components/rich-text/event-listeners/enter.js +9 -2
  323. package/src/components/rich-text/event-listeners/input-events.js +13 -4
  324. package/src/components/rich-text/event-listeners/input-rules.js +20 -4
  325. package/src/components/rich-text/event-listeners/insert-replacement-text.js +9 -4
  326. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +9 -4
  327. package/src/components/rich-text/event-listeners/shortcuts.js +13 -4
  328. package/src/components/rich-text/event-listeners/undo-automatic-change.js +5 -4
  329. package/src/components/rich-text/index.js +1 -33
  330. package/src/components/unit-control/README.md +1 -1
  331. package/src/components/url-popover/README.md +1 -1
  332. package/src/components/use-block-commands/index.js +5 -5
  333. package/src/hooks/anchor.js +9 -17
  334. package/src/hooks/block-fields/index.js +27 -2
  335. package/src/hooks/border.js +1 -5
  336. package/src/hooks/color.js +1 -6
  337. package/src/hooks/dimensions.js +15 -8
  338. package/src/hooks/fit-text.js +16 -0
  339. package/src/hooks/layout-child.js +41 -2
  340. package/src/hooks/list-view.js +10 -11
  341. package/src/hooks/position.js +23 -27
  342. package/src/hooks/style.js +80 -2
  343. package/src/hooks/supports.js +0 -9
  344. package/src/hooks/test/dimensions.js +71 -0
  345. package/src/hooks/test/layout-child.js +165 -0
  346. package/src/hooks/test/style.js +126 -4
  347. package/src/private-apis.js +8 -0
  348. package/src/store/actions.js +13 -3
  349. package/src/store/private-actions.js +1 -4
  350. package/src/store/private-selectors.js +89 -0
  351. package/src/store/reducer.js +19 -7
  352. package/src/store/selectors.js +91 -53
  353. package/src/store/test/actions.js +21 -0
  354. package/src/store/test/private-selectors.js +138 -0
  355. package/src/store/test/reducer.js +46 -0
  356. package/src/store/test/selectors.js +77 -0
  357. package/build/components/media-upload-progress/constants.cjs +0 -46
  358. package/build/components/media-upload-progress/constants.cjs.map +0 -7
  359. package/build/components/rich-text/native/format-edit.cjs +0 -60
  360. package/build/components/rich-text/native/format-edit.cjs.map +0 -7
  361. package/build/components/rich-text/native/index.cjs +0 -28
  362. package/build/components/rich-text/native/index.cjs.map +0 -7
  363. package/build/components/rich-text/native/use-format-types.cjs +0 -139
  364. package/build/components/rich-text/native/use-format-types.cjs.map +0 -7
  365. package/build-module/components/media-upload-progress/constants.mjs +0 -16
  366. package/build-module/components/media-upload-progress/constants.mjs.map +0 -7
  367. package/build-module/components/rich-text/native/format-edit.mjs +0 -39
  368. package/build-module/components/rich-text/native/format-edit.mjs.map +0 -7
  369. package/build-module/components/rich-text/native/index.mjs +0 -7
  370. package/build-module/components/rich-text/native/index.mjs.map +0 -7
  371. package/build-module/components/rich-text/native/use-format-types.mjs +0 -114
  372. package/build-module/components/rich-text/native/use-format-types.mjs.map +0 -7
  373. package/src/components/audio-player/audio-url-parser.native.js +0 -20
  374. package/src/components/audio-player/index.native.js +0 -225
  375. package/src/components/audio-player/styles.native.scss +0 -114
  376. package/src/components/audio-player/test/audio-url-parser.native.js +0 -53
  377. package/src/components/block-alignment-control/test/index.native.js +0 -37
  378. package/src/components/block-alignment-control/ui.native.js +0 -86
  379. package/src/components/block-caption/README.md +0 -104
  380. package/src/components/block-caption/index.native.js +0 -89
  381. package/src/components/block-caption/styles.native.scss +0 -7
  382. package/src/components/block-controls/slot.native.js +0 -33
  383. package/src/components/block-draggable/draggable-chip.native.js +0 -49
  384. package/src/components/block-draggable/dropping-insertion-point.native.js +0 -181
  385. package/src/components/block-draggable/dropping-insertion-point.native.scss +0 -8
  386. package/src/components/block-draggable/index.native.js +0 -467
  387. package/src/components/block-draggable/style.native.scss +0 -19
  388. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +0 -73
  389. package/src/components/block-draggable/test/helpers.native.js +0 -182
  390. package/src/components/block-draggable/test/index.native.js +0 -419
  391. package/src/components/block-draggable/use-scroll-when-dragging.native.js +0 -135
  392. package/src/components/block-edit/edit.native.js +0 -49
  393. package/src/components/block-edit/test/edit.native.js +0 -65
  394. package/src/components/block-heading-level-dropdown/index.native.js +0 -68
  395. package/src/components/block-icon/index.native.js +0 -47
  396. package/src/components/block-icon/style.native.scss +0 -7
  397. package/src/components/block-list/block-crash-boundary.native.js +0 -43
  398. package/src/components/block-list/block-crash-warning.native.js +0 -21
  399. package/src/components/block-list/block-invalid-warning.native.js +0 -70
  400. package/src/components/block-list/block-list-context.native.js +0 -172
  401. package/src/components/block-list/block-list-item-cell.native.js +0 -62
  402. package/src/components/block-list/block-list-item.native.js +0 -209
  403. package/src/components/block-list/block-list-item.native.scss +0 -16
  404. package/src/components/block-list/block-outline.native.js +0 -77
  405. package/src/components/block-list/block-selection-button.native.js +0 -100
  406. package/src/components/block-list/block-selection-button.native.scss +0 -34
  407. package/src/components/block-list/block.native.js +0 -716
  408. package/src/components/block-list/block.native.scss +0 -62
  409. package/src/components/block-list/grid-item.native.js +0 -58
  410. package/src/components/block-list/index.native.js +0 -437
  411. package/src/components/block-list/insertion-point.native.js +0 -36
  412. package/src/components/block-list/style.native.scss +0 -117
  413. package/src/components/block-list/test/block-invalid-warning.native.js +0 -62
  414. package/src/components/block-list/test/block-list-context.native.js +0 -243
  415. package/src/components/block-list/test/block-outline.native.js +0 -255
  416. package/src/components/block-list/test/fixtures/block-list-context.native.js +0 -79
  417. package/src/components/block-list/test/index.native.js +0 -205
  418. package/src/components/block-list/use-block-props/index.native.js +0 -10
  419. package/src/components/block-list/use-scroll-upon-insertion.native.js +0 -52
  420. package/src/components/block-list-appender/index.native.js +0 -70
  421. package/src/components/block-list-appender/style.native.scss +0 -8
  422. package/src/components/block-media-update-progress/README.md +0 -100
  423. package/src/components/block-media-update-progress/index.native.js +0 -299
  424. package/src/components/block-media-update-progress/styles.native.scss +0 -9
  425. package/src/components/block-media-update-progress/test/index.native.js +0 -543
  426. package/src/components/block-mover/index.native.js +0 -193
  427. package/src/components/block-mover/mover-description.native.js +0 -155
  428. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -218
  429. package/src/components/block-mover/test/index.native.js +0 -186
  430. package/src/components/block-settings/button.native.js +0 -41
  431. package/src/components/block-settings/container.native.js +0 -91
  432. package/src/components/block-settings/container.native.scss +0 -4
  433. package/src/components/block-settings/index.native.js +0 -5
  434. package/src/components/block-styles/index.native.js +0 -94
  435. package/src/components/block-styles/preview.native.js +0 -109
  436. package/src/components/block-styles/style.native.scss +0 -64
  437. package/src/components/block-switcher/block-transformations-menu.native.js +0 -91
  438. package/src/components/block-toolbar/block-toolbar-menu.native.js +0 -477
  439. package/src/components/block-toolbar/index.native.js +0 -126
  440. package/src/components/block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap +0 -125
  441. package/src/components/block-toolbar/test/block-toolbar-menu.native.js +0 -405
  442. package/src/components/block-toolbar/test/index.native.js +0 -36
  443. package/src/components/block-types-list/index.native.js +0 -175
  444. package/src/components/block-types-list/style.native.scss +0 -25
  445. package/src/components/block-variation-picker/index.native.js +0 -107
  446. package/src/components/block-variation-picker/style.native.scss +0 -32
  447. package/src/components/button-block-appender/index.native.js +0 -92
  448. package/src/components/button-block-appender/styles.native.scss +0 -43
  449. package/src/components/caption/README.md +0 -44
  450. package/src/components/caption/index.native.js +0 -61
  451. package/src/components/colors-gradients/panel-color-gradient-settings.native.js +0 -59
  452. package/src/components/contrast-checker/index.native.js +0 -113
  453. package/src/components/contrast-checker/style.native.scss +0 -26
  454. package/src/components/convert-to-group-buttons/index.native.js +0 -79
  455. package/src/components/default-block-appender/index.native.js +0 -113
  456. package/src/components/default-block-appender/style.native.scss +0 -18
  457. package/src/components/floating-toolbar/floatingToolbar.android.scss +0 -4
  458. package/src/components/floating-toolbar/floatingToolbar.ios.scss +0 -3
  459. package/src/components/floating-toolbar/index.native.js +0 -141
  460. package/src/components/floating-toolbar/styles.native.scss +0 -43
  461. package/src/components/font-sizes/index.native.js +0 -7
  462. package/src/components/global-styles/color-panel.native.js +0 -207
  463. package/src/components/global-styles/test/use-global-styles-context.native.js +0 -435
  464. package/src/components/global-styles/use-global-styles-context.native.js +0 -592
  465. package/src/components/gradients/index.native.js +0 -2
  466. package/src/components/image-link-destinations/index.native.js +0 -152
  467. package/src/components/image-link-destinations/style.native.scss +0 -16
  468. package/src/components/index.native.js +0 -108
  469. package/src/components/inner-blocks/constants.native.js +0 -5
  470. package/src/components/inner-blocks/index.native.js +0 -221
  471. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +0 -124
  472. package/src/components/inserter/block-types-tab.native.js +0 -76
  473. package/src/components/inserter/hooks/use-block-type-impressions.native.js +0 -47
  474. package/src/components/inserter/hooks/use-clipboard-block.native.js +0 -40
  475. package/src/components/inserter/index.native.js +0 -424
  476. package/src/components/inserter/menu.native.js +0 -237
  477. package/src/components/inserter/no-results.native.js +0 -49
  478. package/src/components/inserter/reusable-blocks-tab.native.js +0 -45
  479. package/src/components/inserter/search-results.native.js +0 -67
  480. package/src/components/inserter/style.native.scss +0 -83
  481. package/src/components/inserter/tabs.native.js +0 -152
  482. package/src/components/inserter/test/__snapshots__/index.native.js.snap +0 -117
  483. package/src/components/inserter/test/fixtures/index.native.js +0 -12
  484. package/src/components/inserter/test/index.native.js +0 -273
  485. package/src/components/inserter/test/reusable-blocks-tab.native.js +0 -62
  486. package/src/components/inserter/test/utils.native.js +0 -37
  487. package/src/components/inserter/utils.native.js +0 -46
  488. package/src/components/inserter-button/index.native.js +0 -108
  489. package/src/components/inserter-button/style.native.scss +0 -72
  490. package/src/components/inspector-controls/fill.native.js +0 -62
  491. package/src/components/inspector-controls/slot.native.js +0 -35
  492. package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +0 -31
  493. package/src/components/line-height-control/index.native.js +0 -28
  494. package/src/components/media-placeholder/index.native.js +0 -258
  495. package/src/components/media-placeholder/styles.native.scss +0 -108
  496. package/src/components/media-replace-flow/index.native.js +0 -12
  497. package/src/components/media-upload/constants.native.js +0 -14
  498. package/src/components/media-upload/index.native.js +0 -356
  499. package/src/components/media-upload/style.native.scss +0 -4
  500. package/src/components/media-upload/test/index.native.js +0 -172
  501. package/src/components/media-upload-progress/README.md +0 -100
  502. package/src/components/media-upload-progress/constants.js +0 -6
  503. package/src/components/media-upload-progress/index.native.js +0 -233
  504. package/src/components/media-upload-progress/styles.native.scss +0 -15
  505. package/src/components/media-upload-progress/test/index.native.js +0 -220
  506. package/src/components/plain-text/index.native.js +0 -164
  507. package/src/components/plain-text/style.native.scss +0 -10
  508. package/src/components/provider/index.native.js +0 -32
  509. package/src/components/rich-text/embed-handler-picker.native.js +0 -65
  510. package/src/components/rich-text/file-paste-handler.native.js +0 -3
  511. package/src/components/rich-text/format-toolbar/index.native.js +0 -21
  512. package/src/components/rich-text/format-toolbar-container.native.js +0 -16
  513. package/src/components/rich-text/index.native.js +0 -701
  514. package/src/components/rich-text/input-event.native.js +0 -10
  515. package/src/components/rich-text/native/format-edit.js +0 -44
  516. package/src/components/rich-text/native/get-format-colors.native.js +0 -47
  517. package/src/components/rich-text/native/index.js +0 -1
  518. package/src/components/rich-text/native/index.native.js +0 -1389
  519. package/src/components/rich-text/native/style.native.scss +0 -28
  520. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +0 -79
  521. package/src/components/rich-text/native/test/index.native.js +0 -345
  522. package/src/components/rich-text/native/test/performance/rich-text.native.js +0 -44
  523. package/src/components/rich-text/native/toolbar-button-with-options.native.js +0 -61
  524. package/src/components/rich-text/native/use-format-types.js +0 -146
  525. package/src/components/rich-text/remove-browser-shortcuts.native.js +0 -1
  526. package/src/components/rich-text/shortcut.native.js +0 -10
  527. package/src/components/ungroup-button/README.md +0 -23
  528. package/src/components/ungroup-button/index.native.js +0 -77
  529. package/src/components/unsupported-block-details/index.native.js +0 -187
  530. package/src/components/unsupported-block-details/style.native.scss +0 -56
  531. package/src/components/url-input/index.native.js +0 -33
  532. package/src/components/use-block-drop-zone/index.native.js +0 -207
  533. package/src/components/use-on-block-drop/index.native.js +0 -115
  534. package/src/components/use-unsupported-block-editor/index.native.js +0 -59
  535. package/src/components/video-player/gridicon-play.native.js +0 -13
  536. package/src/components/video-player/index.native.js +0 -133
  537. package/src/components/video-player/styles.native.scss +0 -29
  538. package/src/components/warning/index.native.js +0 -64
  539. package/src/components/warning/style.native.scss +0 -47
  540. package/src/hooks/align.native.js +0 -49
  541. package/src/hooks/custom-class-name.native.js +0 -70
  542. package/src/hooks/index.native.js +0 -36
  543. package/src/hooks/layout.native.js +0 -23
  544. package/src/hooks/test/__snapshots__/align.native.js.snap +0 -73
  545. package/src/hooks/test/__snapshots__/anchor.native.js.snap +0 -7
  546. package/src/hooks/test/align.native.js +0 -134
  547. package/src/hooks/test/anchor.native.js +0 -32
  548. package/src/hooks/test/use-editor-wrapper-styles.native.js +0 -282
  549. package/src/hooks/typography.native.js +0 -60
  550. package/src/hooks/use-editor-wrapper-styles.native.js +0 -250
  551. package/src/hooks/use-editor-wrapper-styles.native.scss +0 -12
  552. package/src/index.native.js +0 -6
  553. package/src/private-apis.native.js +0 -21
  554. package/src/store/defaults.native.js +0 -23
@@ -22,7 +22,6 @@ import {
22
22
  import { SPACE, ENTER } from '@wordpress/keycodes';
23
23
  import { useSelect } from '@wordpress/data';
24
24
 
25
- // eslint-disable-next-line @wordpress/use-recommended-components -- `Tooltip` is not yet on the recommended `@wordpress/ui` allow-list; landing as a migration step ahead of the wider rollout.
26
25
  import { Tooltip } from '@wordpress/ui';
27
26
 
28
27
  /**
@@ -36,7 +35,6 @@ import { useBlockLock } from '../block-lock';
36
35
  import useListViewImages from './use-list-view-images';
37
36
  import { store as blockEditorStore } from '../../store';
38
37
  import { unlock } from '../../lock-unlock';
39
- import { getBlockVisibilityLabel } from '../block-visibility';
40
38
 
41
39
  const { Badge: WCBadge } = unlock( componentsPrivateApis );
42
40
 
@@ -55,6 +53,7 @@ function ListViewBlockSelectButton(
55
53
  draggable,
56
54
  isExpanded,
57
55
  ariaDescribedBy,
56
+ visibilityLabel,
58
57
  },
59
58
  ref
60
59
  ) {
@@ -64,14 +63,10 @@ function ListViewBlockSelectButton(
64
63
  context: 'list-view',
65
64
  } );
66
65
  const { isLocked } = useBlockLock( clientId );
67
- const { hasPatternName, blockVisibility } = useSelect(
66
+ const hasPatternName = useSelect(
68
67
  ( select ) => {
69
68
  const { getBlockAttributes } = unlock( select( blockEditorStore ) );
70
- const attributes = getBlockAttributes( clientId );
71
- return {
72
- hasPatternName: !! attributes?.metadata?.patternName,
73
- blockVisibility: attributes?.metadata?.blockVisibility,
74
- };
69
+ return !! getBlockAttributes( clientId )?.metadata?.patternName;
75
70
  },
76
71
  [ clientId ]
77
72
  );
@@ -80,9 +75,6 @@ function ListViewBlockSelectButton(
80
75
  const isSticky = blockInformation?.positionType === 'sticky';
81
76
  const images = useListViewImages( { clientId, isExpanded } );
82
77
 
83
- // Determine visibility label from blockVisibility metadata
84
- const visibilityLabel = getBlockVisibilityLabel( blockVisibility );
85
-
86
78
  // The `href` attribute triggers the browser's native HTML drag operations.
87
79
  // When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.
88
80
  // We need to clear any HTML drag data to prevent `pasteHandler` from firing
@@ -166,9 +158,12 @@ function ListViewBlockSelectButton(
166
158
  </span>
167
159
  ) : null }
168
160
  { !! visibilityLabel && (
169
- // TODO: `visibilityLabel` is not exposed to
170
- // assistive technology the trigger is
171
- // `aria-hidden`, so the label is sighted-hover-only.
161
+ // The tooltip below is a sighted-hover affordance for
162
+ // the (decorative) visibility icon. The same
163
+ // `visibilityLabel` is exposed to assistive technology
164
+ // via the row's `aria-describedby`, which references the
165
+ // hidden `AriaReferencedText` rendered by the parent
166
+ // `ListViewBlock`.
172
167
  <Tooltip.Root>
173
168
  <Tooltip.Trigger
174
169
  render={
@@ -630,6 +630,7 @@ function ListViewBlock( {
630
630
  isExpanded={ canEditBlock ? isExpanded : undefined }
631
631
  selectedClientIds={ selectedClientIds }
632
632
  ariaDescribedBy={ descriptionId }
633
+ visibilityLabel={ blockVisibilityDescription }
633
634
  />
634
635
  <AriaReferencedText id={ descriptionId }>
635
636
  { [
@@ -38,7 +38,6 @@ This property is similar to the `allowedTypes` property. The difference is the f
38
38
 
39
39
  - Type: `String`
40
40
  - Required: No
41
- - Platform: Web
42
41
 
43
42
  ### addToGallery
44
43
 
@@ -48,7 +47,6 @@ If false the gallery media modal opens in the edit mode where the user can edit
48
47
  - Type: `Boolean`
49
48
  - Required: No
50
49
  - Default: `false`
51
- - Platform: Web
52
50
 
53
51
  ### allowedTypes
54
52
 
@@ -60,16 +58,6 @@ This property is similar to the `accept` property. The difference is the format
60
58
 
61
59
  - Type: `Array`
62
60
  - Required: No
63
- - Platform: Web | Mobile
64
-
65
- ### autoOpenMediaUpload
66
-
67
- If true, the MediaUpload component auto-opens the picker of the respective platform.
68
-
69
- - Type: `Boolean`
70
- - Required: No
71
- - Default: `false`
72
- - Platform: Mobile
73
61
 
74
62
  ### className
75
63
 
@@ -77,7 +65,6 @@ Class name added to the placeholder.
77
65
 
78
66
  - Type: `String`
79
67
  - Required: No
80
- - Platform: Web
81
68
 
82
69
  ### disableDropZone
83
70
 
@@ -102,7 +89,6 @@ Icon to display left of the title. When passed as a `String`, the icon will be r
102
89
 
103
90
  - Type: `String|Component`
104
91
  - Required: No
105
- - Platform: Web | Mobile
106
92
 
107
93
  ### isAppender
108
94
 
@@ -112,7 +98,6 @@ If false the default placeholder style is used.
112
98
  - Type: `Boolean`
113
99
  - Required: No
114
100
  - Default: `false`
115
- - Platform: Web | Mobile
116
101
 
117
102
  ### disableMediaButtons
118
103
 
@@ -121,7 +106,6 @@ If true, only the Drop Zone will be rendered. No UI controls to upload the media
121
106
  - Type: `Boolean`
122
107
  - Required: No
123
108
  - Default: `false`
124
- - Platform: Web | Mobile
125
109
 
126
110
  ### labels
127
111
 
@@ -129,7 +113,6 @@ An object that can contain a `title` and `instructions` properties. These proper
129
113
 
130
114
  - Type: `Object`
131
115
  - Required: No
132
- - Platform: Web | Mobile
133
116
 
134
117
  ### multiple
135
118
 
@@ -138,7 +121,6 @@ Whether to allow multiple selection of files or not. This property will also acc
138
121
  - Type: `Boolean|String`
139
122
  - Required: No
140
123
  - Default: `false`
141
- - Platform: Web
142
124
 
143
125
  ### mediaPreview
144
126
 
@@ -146,7 +128,6 @@ The component is rendered as a preview in the placeholder.
146
128
 
147
129
  - Type: `Component`
148
130
  - Required: No
149
- - Platform: Web
150
131
 
151
132
  ### onError
152
133
 
@@ -154,7 +135,6 @@ Callback called when an upload error happens.
154
135
 
155
136
  - Type: `Function`
156
137
  - Required: No
157
- - Platform: Web
158
138
 
159
139
  ### onFilesPreUpload
160
140
 
@@ -164,7 +144,6 @@ It receives an array with the files to upload before to the final process. It me
164
144
  - Type: `Function`
165
145
  - Required: No
166
146
  - Default: `Function` noop
167
- - Platform: Web
168
147
 
169
148
  ### onSelect
170
149
 
@@ -173,12 +152,8 @@ The call back receives an array with the new files. Each element of the collecti
173
152
 
174
153
  - Type: `Function`
175
154
  - Required: Yes
176
- - Platform: Web | Mobile
177
-
178
- The argument of the callback is an object containing the following properties:
179
155
 
180
- - Web: `{ url, alt, id, link, caption, sizes, media_details }`
181
- - Mobile: `{ id, url }`
156
+ The argument of the callback is an object containing the following properties: `{ url, alt, id, link, caption, sizes, media_details }`.
182
157
 
183
158
  ### value
184
159
 
@@ -186,7 +161,6 @@ An object or an array of objects that contain media ID (`id` property) to be sel
186
161
 
187
162
  - Type: `Object|Array`
188
163
  - Required: No
189
- - Platform: Web
190
164
 
191
165
  ### onSelectURL
192
166
 
@@ -194,7 +168,6 @@ Callback called when urls can be configured. No media insertion from url will be
194
168
 
195
169
  - Type: `Function`
196
170
  - Required: No
197
- - Platform: Web
198
171
 
199
172
  ### handleUpload
200
173
 
@@ -203,7 +176,6 @@ When the value is set to `false` or returned as `false`, the handling of the upl
203
176
  - Type: `Boolean|Function`
204
177
  - Required: No
205
178
  - Default: `true`
206
- - Platform: Web
207
179
 
208
180
  ## Extend
209
181
 
@@ -62,7 +62,6 @@ If allowedTypes is unset all mime types should be allowed.
62
62
 
63
63
  - Type: `Array`
64
64
  - Required: No
65
- - Platform: Web | Mobile
66
65
 
67
66
  ### mode
68
67
 
@@ -71,7 +70,6 @@ Value of Frame content default mode like 'browse', 'upload' etc.
71
70
  - Type: `String`
72
71
  - Required: No
73
72
  - Default: false
74
- - Platform: Web
75
73
 
76
74
  ### multiple
77
75
 
@@ -80,7 +78,6 @@ Whether to allow multiple selection of files or not. This property will also acc
80
78
  - Type: `Boolean|String`
81
79
  - Required: No
82
80
  - Default: false
83
- - Platform: Web
84
81
 
85
82
  ### value
86
83
 
@@ -88,7 +85,6 @@ Media ID (or media IDs if multiple is true) to be selected by default when openi
88
85
 
89
86
  - Type: `Number|Array`
90
87
  - Required: No
91
- - Platform: Web
92
88
 
93
89
  ### onClose
94
90
 
@@ -109,7 +105,6 @@ The `image.sizes.full` resolution does always exist. Other defined sizes are onl
109
105
 
110
106
  - Type: `Function`
111
107
  - Required: Yes
112
- - Platform: Web | Mobile
113
108
 
114
109
  ### title
115
110
 
@@ -118,7 +113,6 @@ Title displayed in the media modal.
118
113
  - Type: `String`
119
114
  - Required: No
120
115
  - Default: `Select or Upload Media`
121
- - Platform: Web
122
116
 
123
117
  ### modalClass
124
118
 
@@ -126,7 +120,6 @@ CSS class added to the media modal frame.
126
120
 
127
121
  - Type: `String`
128
122
  - Required: No
129
- - Platform: Web
130
123
 
131
124
  ### addToGallery
132
125
 
@@ -137,16 +130,6 @@ Only applies if `gallery === true`.
137
130
  - Type: `Boolean`
138
131
  - Required: No
139
132
  - Default: `false`
140
- - Platform: Web
141
-
142
- ### autoOpen
143
-
144
- If true, the picker of the respective platform auto-opens.
145
-
146
- - Type: `Boolean`
147
- - Required: No
148
- - Default: `false`
149
- - Platform: Mobile
150
133
 
151
134
  ### gallery
152
135
 
@@ -155,7 +138,6 @@ If true, the component will initiate all the states required to represent a gall
155
138
  - Type: `Boolean`
156
139
  - Required: No
157
140
  - Default: `false`
158
- - Platform: Web
159
141
 
160
142
  ## render
161
143
 
@@ -163,7 +145,6 @@ A callback invoked to render the Button opening the media library.
163
145
 
164
146
  - Type: `Function`
165
147
  - Required: Yes
166
- - Platform: Web | Mobile
167
148
 
168
149
  The first argument of the callback is an object containing the following properties:
169
150
 
@@ -6,7 +6,6 @@ import {
6
6
  __experimentalUnitControl as UnitControl,
7
7
  } from '@wordpress/components';
8
8
 
9
- // eslint-disable-next-line @wordpress/use-recommended-components -- `Tooltip` is not yet on the recommended `@wordpress/ui` allow-list; landing as a migration step ahead of the wider rollout.
10
9
  import { Tooltip } from '@wordpress/ui';
11
10
 
12
11
  /**
@@ -277,6 +277,46 @@ describe( 'useBlockSync hook', () => {
277
277
  expect( onChange ).not.toHaveBeenCalled();
278
278
  } );
279
279
 
280
+ it( 'passes undoIgnore when a non-persistent block change ignores history', async () => {
281
+ const onChange = jest.fn();
282
+ const onInput = jest.fn();
283
+ const value1 = [
284
+ { clientId: 'a', innerBlocks: [], attributes: { foo: 1 } },
285
+ ];
286
+ let registry;
287
+ const setRegistry = ( reg ) => {
288
+ registry = reg;
289
+ };
290
+ render(
291
+ <TestWrapper
292
+ setRegistry={ setRegistry }
293
+ value={ value1 }
294
+ onChange={ onChange }
295
+ onInput={ onInput }
296
+ />
297
+ );
298
+ onChange.mockClear();
299
+ onInput.mockClear();
300
+
301
+ registry
302
+ .dispatch( blockEditorStore )
303
+ .__unstableMarkNextChangeAsNotPersistent( {
304
+ history: 'ignore',
305
+ } );
306
+ registry
307
+ .dispatch( blockEditorStore )
308
+ .updateBlockAttributes( 'a', { foo: 2 } );
309
+
310
+ expect( onInput ).toHaveBeenCalledWith(
311
+ [ { clientId: 'a', innerBlocks: [], attributes: { foo: 2 } } ],
312
+ expect.objectContaining( {
313
+ selection: expect.any( Object ),
314
+ undoIgnore: true,
315
+ } )
316
+ );
317
+ expect( onChange ).not.toHaveBeenCalled();
318
+ } );
319
+
280
320
  it( 'calls onChange if a persistent change occurs', async () => {
281
321
  const onChange = jest.fn();
282
322
  const onInput = jest.fn();
@@ -342,6 +342,7 @@ export default function useBlockSync( {
342
342
  const {
343
343
  getSelectedBlocksInitialCaretPosition,
344
344
  isLastBlockChangePersistent,
345
+ __unstableGetLastBlockChangeHistoryMode,
345
346
  __unstableIsLastBlockChangeIgnored,
346
347
  areInnerBlocksControlled,
347
348
  getBlockParents,
@@ -349,6 +350,7 @@ export default function useBlockSync( {
349
350
 
350
351
  let blocks = getBlocks( clientId );
351
352
  let isPersistent = isLastBlockChangePersistent();
353
+ let blockHistoryMode = __unstableGetLastBlockChangeHistoryMode();
352
354
  let previousAreBlocksDifferent = false;
353
355
  let prevSelectionStart = getSelectionStart();
354
356
  let prevSelectionEnd = getSelectionEnd();
@@ -367,6 +369,8 @@ export default function useBlockSync( {
367
369
  }
368
370
 
369
371
  const newIsPersistent = isLastBlockChangePersistent();
372
+ const newBlockHistoryMode =
373
+ __unstableGetLastBlockChangeHistoryMode();
370
374
  const newBlocks = getBlocks( clientId );
371
375
  const areBlocksDifferent = newBlocks !== blocks;
372
376
  blocks = newBlocks;
@@ -377,6 +381,7 @@ export default function useBlockSync( {
377
381
  ) {
378
382
  pendingChangesRef.current.incoming = null;
379
383
  isPersistent = newIsPersistent;
384
+ blockHistoryMode = newBlockHistoryMode;
380
385
  return;
381
386
  }
382
387
 
@@ -409,6 +414,7 @@ export default function useBlockSync( {
409
414
  registry.batch( () => {
410
415
  if ( blocksChanged ) {
411
416
  isPersistent = newIsPersistent;
417
+ blockHistoryMode = newBlockHistoryMode;
412
418
 
413
419
  // For inner block controllers (clientId is set), restore external IDs
414
420
  // before passing blocks to the parent.
@@ -438,9 +444,13 @@ export default function useBlockSync( {
438
444
  const updateParent = isPersistent
439
445
  ? onChangeRef.current
440
446
  : onInputRef.current;
441
- updateParent( blocksForParent, {
447
+ const updateOptions = {
442
448
  selection: selectionForParent,
443
- } );
449
+ };
450
+ if ( blockHistoryMode === 'ignore' ) {
451
+ updateOptions.undoIgnore = true;
452
+ }
453
+ updateParent( blocksForParent, updateOptions );
444
454
  }
445
455
 
446
456
  if (
@@ -3,11 +3,15 @@
3
3
  */
4
4
  import { insert, isCollapsed } from '@wordpress/rich-text';
5
5
  import { applyFilters } from '@wordpress/hooks';
6
+ import { privateApis as composePrivateApis } from '@wordpress/compose';
6
7
 
7
8
  /**
8
9
  * Internal dependencies
9
10
  */
10
11
  import { store as blockEditorStore } from '../../../store';
12
+ import { unlock } from '../../../lock-unlock';
13
+
14
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
11
15
 
12
16
  /**
13
17
  * When typing over a selection, the selection will we wrapped by a matching
@@ -85,8 +89,5 @@ export default ( props ) => ( element ) => {
85
89
  event.preventDefault();
86
90
  }
87
91
 
88
- element.addEventListener( 'beforeinput', onInput );
89
- return () => {
90
- element.removeEventListener( 'beforeinput', onInput );
91
- };
92
+ return subscribeDelegatedListener( element, 'beforeinput', onInput, true );
92
93
  };
@@ -3,6 +3,14 @@
3
3
  */
4
4
  import { DELETE, BACKSPACE } from '@wordpress/keycodes';
5
5
  import { isCollapsed, isEmpty } from '@wordpress/rich-text';
6
+ import { privateApis as composePrivateApis } from '@wordpress/compose';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import { unlock } from '../../../lock-unlock';
12
+
13
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
6
14
 
7
15
  export default ( props ) => ( element ) => {
8
16
  function onKeyDown( event ) {
@@ -46,8 +54,5 @@ export default ( props ) => ( element ) => {
46
54
  }
47
55
  }
48
56
 
49
- element.addEventListener( 'keydown', onKeyDown );
50
- return () => {
51
- element.removeEventListener( 'keydown', onKeyDown );
52
- };
57
+ return subscribeDelegatedListener( element, 'keydown', onKeyDown );
53
58
  };
@@ -88,9 +88,16 @@ export default ( props ) => ( element ) => {
88
88
  'keydown',
89
89
  onKeyDown
90
90
  );
91
- element.addEventListener( 'keydown', onKeyDownDeprecated );
91
+ // Capture phase so this runs before ancestor (writing flow) bubble
92
+ // handlers, matching the timing of the previous raw element listener.
93
+ const unsubscribeKeyDownDeprecated = subscribeDelegatedListener(
94
+ element,
95
+ 'keydown',
96
+ onKeyDownDeprecated,
97
+ true
98
+ );
92
99
  return () => {
93
100
  unsubscribeKeyDown();
94
- element.removeEventListener( 'keydown', onKeyDownDeprecated );
101
+ unsubscribeKeyDownDeprecated();
95
102
  };
96
103
  };
@@ -1,3 +1,15 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { privateApis as composePrivateApis } from '@wordpress/compose';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { unlock } from '../../../lock-unlock';
10
+
11
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
12
+
1
13
  export default ( props ) => ( element ) => {
2
14
  const { inputEvents } = props.current;
3
15
  function onInput( event ) {
@@ -6,8 +18,5 @@ export default ( props ) => ( element ) => {
6
18
  }
7
19
  }
8
20
 
9
- element.addEventListener( 'input', onInput );
10
- return () => {
11
- element.removeEventListener( 'input', onInput );
12
- };
21
+ return subscribeDelegatedListener( element, 'input', onInput );
13
22
  };
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { insert, toHTMLString } from '@wordpress/rich-text';
5
5
  import { getBlockTransforms, findTransform } from '@wordpress/blocks';
6
+ import { privateApis as composePrivateApis } from '@wordpress/compose';
6
7
 
7
8
  /**
8
9
  * Internal dependencies
@@ -13,6 +14,9 @@ import {
13
14
  retrieveSelectedAttribute,
14
15
  START_OF_SELECTED_AREA,
15
16
  } from '../../../utils/selection';
17
+ import { unlock } from '../../../lock-unlock';
18
+
19
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
16
20
 
17
21
  export function findSelection( blocks ) {
18
22
  let i = blocks.length;
@@ -154,10 +158,22 @@ export default ( props ) => ( element ) => {
154
158
  }
155
159
  }
156
160
 
157
- element.addEventListener( 'input', onInput );
158
- element.addEventListener( 'compositionend', onInput );
161
+ // Capture phase so these run before ancestor (writing flow) bubble
162
+ // handlers, matching the timing of the previous raw element listeners.
163
+ const unsubscribeInput = subscribeDelegatedListener(
164
+ element,
165
+ 'input',
166
+ onInput,
167
+ true
168
+ );
169
+ const unsubscribeCompositionEnd = subscribeDelegatedListener(
170
+ element,
171
+ 'compositionend',
172
+ onInput,
173
+ true
174
+ );
159
175
  return () => {
160
- element.removeEventListener( 'input', onInput );
161
- element.removeEventListener( 'compositionend', onInput );
176
+ unsubscribeInput();
177
+ unsubscribeCompositionEnd();
162
178
  };
163
179
  };
@@ -1,7 +1,15 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { privateApis as composePrivateApis } from '@wordpress/compose';
5
+
1
6
  /**
2
7
  * Internal dependencies
3
8
  */
4
9
  import { store as blockEditorStore } from '../../../store';
10
+ import { unlock } from '../../../lock-unlock';
11
+
12
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
5
13
 
6
14
  /**
7
15
  * When the browser is about to auto correct, add an undo level so the user can
@@ -21,8 +29,5 @@ export default ( props ) => ( element ) => {
21
29
  .__unstableMarkLastChangeAsPersistent();
22
30
  }
23
31
 
24
- element.addEventListener( 'beforeinput', onInput );
25
- return () => {
26
- element.removeEventListener( 'beforeinput', onInput );
27
- };
32
+ return subscribeDelegatedListener( element, 'beforeinput', onInput );
28
33
  };
@@ -2,6 +2,14 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { isKeyboardEvent } from '@wordpress/keycodes';
5
+ import { privateApis as composePrivateApis } from '@wordpress/compose';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { unlock } from '../../../lock-unlock';
11
+
12
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
5
13
 
6
14
  /**
7
15
  * Hook to prevent default behaviors for key combinations otherwise handled
@@ -17,8 +25,5 @@ export default () => ( node ) => {
17
25
  event.preventDefault();
18
26
  }
19
27
  }
20
- node.addEventListener( 'keydown', onKeydown );
21
- return () => {
22
- node.removeEventListener( 'keydown', onKeydown );
23
- };
28
+ return subscribeDelegatedListener( node, 'keydown', onKeydown, true );
24
29
  };
@@ -1,3 +1,15 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { privateApis as composePrivateApis } from '@wordpress/compose';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { unlock } from '../../../lock-unlock';
10
+
11
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
12
+
1
13
  export default ( props ) => ( element ) => {
2
14
  const { keyboardShortcuts } = props.current;
3
15
  function onKeyDown( event ) {
@@ -6,8 +18,5 @@ export default ( props ) => ( element ) => {
6
18
  }
7
19
  }
8
20
 
9
- element.addEventListener( 'keydown', onKeyDown );
10
- return () => {
11
- element.removeEventListener( 'keydown', onKeyDown );
12
- };
21
+ return subscribeDelegatedListener( element, 'keydown', onKeyDown, true );
13
22
  };
@@ -2,11 +2,15 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { BACKSPACE, ESCAPE } from '@wordpress/keycodes';
5
+ import { privateApis as composePrivateApis } from '@wordpress/compose';
5
6
 
6
7
  /**
7
8
  * Internal dependencies
8
9
  */
9
10
  import { store as blockEditorStore } from '../../../store';
11
+ import { unlock } from '../../../lock-unlock';
12
+
13
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
10
14
 
11
15
  export default ( props ) => ( element ) => {
12
16
  function onKeyDown( event ) {
@@ -38,8 +42,5 @@ export default ( props ) => ( element ) => {
38
42
  __experimentalUndo();
39
43
  }
40
44
 
41
- element.addEventListener( 'keydown', onKeyDown );
42
- return () => {
43
- element.removeEventListener( 'keydown', onKeyDown );
44
- };
45
+ return subscribeDelegatedListener( element, 'keydown', onKeyDown );
45
46
  };