@wordpress/block-editor 14.5.0 → 14.7.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 (541) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +0 -8
  3. package/build/autocompleters/block.js +13 -5
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-canvas/index.js +10 -0
  6. package/build/components/block-canvas/index.js.map +1 -1
  7. package/build/components/block-card/index.js +2 -2
  8. package/build/components/block-card/index.js.map +1 -1
  9. package/build/components/block-full-height-alignment-control/index.js +1 -1
  10. package/build/components/block-full-height-alignment-control/index.js.map +1 -1
  11. package/build/components/block-list/block.js +15 -29
  12. package/build/components/block-list/block.js.map +1 -1
  13. package/build/components/block-list/block.native.js +1 -7
  14. package/build/components/block-list/block.native.js.map +1 -1
  15. package/build/components/block-list/index.js +5 -5
  16. package/build/components/block-list/index.js.map +1 -1
  17. package/build/components/block-list/use-block-props/index.js +1 -2
  18. package/build/components/block-list/use-block-props/index.js.map +1 -1
  19. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -3
  20. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -6
  22. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  23. package/build/components/block-list/use-in-between-inserter.js +1 -1
  24. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  25. package/build/components/block-patterns-list/index.js +23 -26
  26. package/build/components/block-patterns-list/index.js.map +1 -1
  27. package/build/components/block-patterns-paging/index.js +1 -1
  28. package/build/components/block-patterns-paging/index.js.map +1 -1
  29. package/build/components/block-popover/index.js +3 -46
  30. package/build/components/block-popover/index.js.map +1 -1
  31. package/build/components/block-preview/async.js +51 -0
  32. package/build/components/block-preview/async.js.map +1 -0
  33. package/build/components/block-preview/index.js +6 -3
  34. package/build/components/block-preview/index.js.map +1 -1
  35. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -0
  36. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  37. package/build/components/block-settings-menu/index.js +4 -3
  38. package/build/components/block-settings-menu/index.js.map +1 -1
  39. package/build/components/block-toolbar/change-design.js +119 -0
  40. package/build/components/block-toolbar/change-design.js.map +1 -0
  41. package/build/components/block-toolbar/index.js +19 -7
  42. package/build/components/block-toolbar/index.js.map +1 -1
  43. package/build/components/block-tools/index.js +16 -19
  44. package/build/components/block-tools/index.js.map +1 -1
  45. package/build/components/block-tools/insertion-point.js +4 -3
  46. package/build/components/block-tools/insertion-point.js.map +1 -1
  47. package/build/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  48. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  49. package/build/components/block-tools/use-show-block-tools.js +7 -10
  50. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  51. package/build/components/block-tools/zoom-out-mode-inserters.js +20 -29
  52. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  53. package/build/components/block-variation-transforms/index.js +2 -2
  54. package/build/components/block-variation-transforms/index.js.map +1 -1
  55. package/build/components/block-vertical-alignment-control/ui.js +6 -10
  56. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  57. package/build/components/border-radius-control/linked-button.js +7 -10
  58. package/build/components/border-radius-control/linked-button.js.map +1 -1
  59. package/build/components/collab/block-comment-icon-slot.js +18 -0
  60. package/build/components/collab/block-comment-icon-slot.js.map +1 -0
  61. package/build/components/collab/block-comment-icon-toolbar-slot.js +18 -0
  62. package/build/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
  63. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  64. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  65. package/build/components/convert-to-group-buttons/toolbar.js +4 -4
  66. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  67. package/build/components/global-styles/color-panel.js +1 -4
  68. package/build/components/global-styles/color-panel.js.map +1 -1
  69. package/build/components/global-styles/dimensions-panel.js +26 -14
  70. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  71. package/build/components/global-styles/use-global-styles-context.native.js +6 -0
  72. package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
  73. package/build/components/iframe/get-compatibility-styles.js +4 -4
  74. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  75. package/build/components/iframe/index.js +33 -22
  76. package/build/components/iframe/index.js.map +1 -1
  77. package/build/components/image-size-control/index.js +61 -20
  78. package/build/components/image-size-control/index.js.map +1 -1
  79. package/build/components/inner-blocks/index.js +9 -5
  80. package/build/components/inner-blocks/index.js.map +1 -1
  81. package/build/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  82. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  83. package/build/components/inserter/block-patterns-tab/index.js +1 -2
  84. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  85. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +5 -3
  86. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  87. package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  88. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  89. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +3 -0
  90. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  91. package/build/components/inserter/block-patterns-tab/utils.js +5 -1
  92. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  93. package/build/components/inserter/category-tabs/index.js +15 -2
  94. package/build/components/inserter/category-tabs/index.js.map +1 -1
  95. package/build/components/inserter/hooks/use-block-types-state.js +1 -1
  96. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  97. package/build/components/inserter/hooks/use-patterns-paging.js +0 -5
  98. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -1
  99. package/build/components/inserter/menu.js +4 -2
  100. package/build/components/inserter/menu.js.map +1 -1
  101. package/build/components/inserter/search-results.js +0 -2
  102. package/build/components/inserter/search-results.js.map +1 -1
  103. package/build/components/inserter-button/index.native.js +1 -1
  104. package/build/components/inserter-button/index.native.js.map +1 -1
  105. package/build/components/inspector-controls-tabs/index.js +0 -2
  106. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  107. package/build/components/inspector-controls-tabs/utils.js +3 -6
  108. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  109. package/build/components/link-control/link-preview.js +12 -9
  110. package/build/components/link-control/link-preview.js.map +1 -1
  111. package/build/components/list-view/appender.js +4 -3
  112. package/build/components/list-view/appender.js.map +1 -1
  113. package/build/components/list-view/branch.js +6 -5
  114. package/build/components/list-view/branch.js.map +1 -1
  115. package/build/components/list-view/index.js +1 -2
  116. package/build/components/list-view/index.js.map +1 -1
  117. package/build/components/media-placeholder/index.js +4 -4
  118. package/build/components/media-placeholder/index.js.map +1 -1
  119. package/build/components/provider/index.js +1 -1
  120. package/build/components/provider/index.js.map +1 -1
  121. package/build/components/rich-text/event-listeners/index.js +3 -1
  122. package/build/components/rich-text/event-listeners/index.js.map +1 -1
  123. package/build/components/rich-text/index.js +1 -1
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +2 -6
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/spacing-sizes-control/index.js +2 -2
  128. package/build/components/spacing-sizes-control/index.js.map +1 -1
  129. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -3
  130. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  131. package/build/components/spacing-sizes-control/linked-button.js +1 -5
  132. package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
  133. package/build/components/tabbed-sidebar/index.js +1 -1
  134. package/build/components/tabbed-sidebar/index.js.map +1 -1
  135. package/build/components/tool-selector/index.js +1 -4
  136. package/build/components/tool-selector/index.js.map +1 -1
  137. package/build/components/url-input/index.js +4 -2
  138. package/build/components/url-input/index.js.map +1 -1
  139. package/build/components/use-block-commands/index.js +6 -7
  140. package/build/components/use-block-commands/index.js.map +1 -1
  141. package/build/components/use-block-drop-zone/index.js +5 -5
  142. package/build/components/use-block-drop-zone/index.js.map +1 -1
  143. package/build/components/use-block-drop-zone/index.native.js +0 -1
  144. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  145. package/build/components/use-moving-animation/index.js +1 -3
  146. package/build/components/use-moving-animation/index.js.map +1 -1
  147. package/build/components/use-settings/index.js +1 -3
  148. package/build/components/use-settings/index.js.map +1 -1
  149. package/build/components/writing-flow/index.js +5 -3
  150. package/build/components/writing-flow/index.js.map +1 -1
  151. package/build/components/writing-flow/use-tab-nav.js +2 -3
  152. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  153. package/build/hooks/block-bindings.js +19 -8
  154. package/build/hooks/block-bindings.js.map +1 -1
  155. package/build/hooks/contrast-checker.js +0 -1
  156. package/build/hooks/contrast-checker.js.map +1 -1
  157. package/build/hooks/duotone.js +2 -2
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/font-family.js +1 -1
  160. package/build/hooks/font-family.js.map +1 -1
  161. package/build/hooks/style.js +4 -1
  162. package/build/hooks/style.js.map +1 -1
  163. package/build/hooks/supports.js +6 -6
  164. package/build/hooks/supports.js.map +1 -1
  165. package/build/hooks/typography.js +5 -5
  166. package/build/hooks/typography.js.map +1 -1
  167. package/build/hooks/use-zoom-out.js +13 -22
  168. package/build/hooks/use-zoom-out.js.map +1 -1
  169. package/build/hooks/utils.js +2 -2
  170. package/build/hooks/utils.js.map +1 -1
  171. package/build/index.js +0 -7
  172. package/build/index.js.map +1 -1
  173. package/build/lock-unlock.js.map +1 -1
  174. package/build/private-apis.js +6 -3
  175. package/build/private-apis.js.map +1 -1
  176. package/build/store/actions.js +2 -33
  177. package/build/store/actions.js.map +1 -1
  178. package/build/store/defaults.js +1 -1
  179. package/build/store/defaults.js.map +1 -1
  180. package/build/store/private-actions.js +57 -8
  181. package/build/store/private-actions.js.map +1 -1
  182. package/build/store/private-selectors.js +10 -22
  183. package/build/store/private-selectors.js.map +1 -1
  184. package/build/store/reducer.js +16 -6
  185. package/build/store/reducer.js.map +1 -1
  186. package/build/store/selectors.js +53 -15
  187. package/build/store/selectors.js.map +1 -1
  188. package/build/store/utils.js +5 -4
  189. package/build/store/utils.js.map +1 -1
  190. package/build/utils/dom.js +37 -17
  191. package/build/utils/dom.js.map +1 -1
  192. package/build/utils/get-font-styles-and-weights.js +1 -1
  193. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  194. package/build/utils/transform-styles/index.js +4 -3
  195. package/build/utils/transform-styles/index.js.map +1 -1
  196. package/build-module/autocompleters/block.js +14 -6
  197. package/build-module/autocompleters/block.js.map +1 -1
  198. package/build-module/components/block-canvas/index.js +11 -1
  199. package/build-module/components/block-canvas/index.js.map +1 -1
  200. package/build-module/components/block-card/index.js +3 -3
  201. package/build-module/components/block-card/index.js.map +1 -1
  202. package/build-module/components/block-full-height-alignment-control/index.js +1 -1
  203. package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
  204. package/build-module/components/block-list/block.js +16 -28
  205. package/build-module/components/block-list/block.js.map +1 -1
  206. package/build-module/components/block-list/block.native.js +1 -7
  207. package/build-module/components/block-list/block.native.js.map +1 -1
  208. package/build-module/components/block-list/index.js +5 -5
  209. package/build-module/components/block-list/index.js.map +1 -1
  210. package/build-module/components/block-list/use-block-props/index.js +1 -2
  211. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  212. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -3
  213. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  214. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -6
  215. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  216. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  217. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  218. package/build-module/components/block-patterns-list/index.js +23 -26
  219. package/build-module/components/block-patterns-list/index.js.map +1 -1
  220. package/build-module/components/block-patterns-paging/index.js +1 -1
  221. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  222. package/build-module/components/block-popover/index.js +4 -47
  223. package/build-module/components/block-popover/index.js.map +1 -1
  224. package/build-module/components/block-preview/async.js +44 -0
  225. package/build-module/components/block-preview/async.js.map +1 -0
  226. package/build-module/components/block-preview/index.js +6 -3
  227. package/build-module/components/block-preview/index.js.map +1 -1
  228. package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -0
  229. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  230. package/build-module/components/block-settings-menu/index.js +5 -4
  231. package/build-module/components/block-settings-menu/index.js.map +1 -1
  232. package/build-module/components/block-toolbar/change-design.js +111 -0
  233. package/build-module/components/block-toolbar/change-design.js.map +1 -0
  234. package/build-module/components/block-toolbar/index.js +19 -7
  235. package/build-module/components/block-toolbar/index.js.map +1 -1
  236. package/build-module/components/block-tools/index.js +17 -20
  237. package/build-module/components/block-tools/index.js.map +1 -1
  238. package/build-module/components/block-tools/insertion-point.js +4 -3
  239. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  240. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -2
  241. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  242. package/build-module/components/block-tools/use-show-block-tools.js +7 -10
  243. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  244. package/build-module/components/block-tools/zoom-out-mode-inserters.js +20 -29
  245. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  246. package/build-module/components/block-variation-transforms/index.js +2 -2
  247. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  248. package/build-module/components/block-vertical-alignment-control/ui.js +6 -10
  249. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  250. package/build-module/components/border-radius-control/linked-button.js +8 -11
  251. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  252. package/build-module/components/collab/block-comment-icon-slot.js +11 -0
  253. package/build-module/components/collab/block-comment-icon-slot.js.map +1 -0
  254. package/build-module/components/collab/block-comment-icon-toolbar-slot.js +11 -0
  255. package/build-module/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
  256. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  257. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  258. package/build-module/components/convert-to-group-buttons/toolbar.js +4 -4
  259. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  260. package/build-module/components/global-styles/color-panel.js +2 -5
  261. package/build-module/components/global-styles/color-panel.js.map +1 -1
  262. package/build-module/components/global-styles/dimensions-panel.js +26 -14
  263. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  264. package/build-module/components/global-styles/use-global-styles-context.native.js +6 -0
  265. package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
  266. package/build-module/components/iframe/get-compatibility-styles.js +4 -4
  267. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  268. package/build-module/components/iframe/index.js +33 -22
  269. package/build-module/components/iframe/index.js.map +1 -1
  270. package/build-module/components/image-size-control/index.js +62 -21
  271. package/build-module/components/image-size-control/index.js.map +1 -1
  272. package/build-module/components/inner-blocks/index.js +9 -5
  273. package/build-module/components/inner-blocks/index.js.map +1 -1
  274. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  275. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  276. package/build-module/components/inserter/block-patterns-tab/index.js +1 -2
  277. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  278. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +6 -4
  279. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  280. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  281. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  282. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +4 -1
  283. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  284. package/build-module/components/inserter/block-patterns-tab/utils.js +4 -0
  285. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  286. package/build-module/components/inserter/category-tabs/index.js +15 -2
  287. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  288. package/build-module/components/inserter/hooks/use-block-types-state.js +1 -1
  289. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  290. package/build-module/components/inserter/hooks/use-patterns-paging.js +1 -6
  291. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -1
  292. package/build-module/components/inserter/menu.js +5 -3
  293. package/build-module/components/inserter/menu.js.map +1 -1
  294. package/build-module/components/inserter/search-results.js +0 -2
  295. package/build-module/components/inserter/search-results.js.map +1 -1
  296. package/build-module/components/inserter-button/index.native.js +1 -1
  297. package/build-module/components/inserter-button/index.native.js.map +1 -1
  298. package/build-module/components/inspector-controls-tabs/index.js +0 -2
  299. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  300. package/build-module/components/inspector-controls-tabs/utils.js +3 -6
  301. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
  302. package/build-module/components/link-control/link-preview.js +13 -10
  303. package/build-module/components/link-control/link-preview.js.map +1 -1
  304. package/build-module/components/list-view/appender.js +4 -3
  305. package/build-module/components/list-view/appender.js.map +1 -1
  306. package/build-module/components/list-view/branch.js +7 -6
  307. package/build-module/components/list-view/branch.js.map +1 -1
  308. package/build-module/components/list-view/index.js +1 -2
  309. package/build-module/components/list-view/index.js.map +1 -1
  310. package/build-module/components/media-placeholder/index.js +4 -4
  311. package/build-module/components/media-placeholder/index.js.map +1 -1
  312. package/build-module/components/provider/index.js +1 -1
  313. package/build-module/components/provider/index.js.map +1 -1
  314. package/build-module/components/rich-text/event-listeners/index.js +4 -2
  315. package/build-module/components/rich-text/event-listeners/index.js.map +1 -1
  316. package/build-module/components/rich-text/index.js +1 -1
  317. package/build-module/components/rich-text/index.js.map +1 -1
  318. package/build-module/components/rich-text/index.native.js +2 -6
  319. package/build-module/components/rich-text/index.native.js.map +1 -1
  320. package/build-module/components/spacing-sizes-control/index.js +3 -3
  321. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  322. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  323. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  324. package/build-module/components/spacing-sizes-control/linked-button.js +2 -6
  325. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
  326. package/build-module/components/tabbed-sidebar/index.js +1 -1
  327. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  328. package/build-module/components/tool-selector/index.js +1 -4
  329. package/build-module/components/tool-selector/index.js.map +1 -1
  330. package/build-module/components/url-input/index.js +4 -2
  331. package/build-module/components/url-input/index.js.map +1 -1
  332. package/build-module/components/use-block-commands/index.js +5 -5
  333. package/build-module/components/use-block-commands/index.js.map +1 -1
  334. package/build-module/components/use-block-drop-zone/index.js +5 -5
  335. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  336. package/build-module/components/use-block-drop-zone/index.native.js +0 -1
  337. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  338. package/build-module/components/use-moving-animation/index.js +1 -3
  339. package/build-module/components/use-moving-animation/index.js.map +1 -1
  340. package/build-module/components/use-settings/index.js +1 -3
  341. package/build-module/components/use-settings/index.js.map +1 -1
  342. package/build-module/components/writing-flow/index.js +5 -3
  343. package/build-module/components/writing-flow/index.js.map +1 -1
  344. package/build-module/components/writing-flow/use-tab-nav.js +2 -3
  345. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  346. package/build-module/hooks/block-bindings.js +20 -9
  347. package/build-module/hooks/block-bindings.js.map +1 -1
  348. package/build-module/hooks/contrast-checker.js +0 -1
  349. package/build-module/hooks/contrast-checker.js.map +1 -1
  350. package/build-module/hooks/duotone.js +2 -2
  351. package/build-module/hooks/duotone.js.map +1 -1
  352. package/build-module/hooks/font-family.js +1 -1
  353. package/build-module/hooks/font-family.js.map +1 -1
  354. package/build-module/hooks/style.js +4 -1
  355. package/build-module/hooks/style.js.map +1 -1
  356. package/build-module/hooks/supports.js +6 -6
  357. package/build-module/hooks/supports.js.map +1 -1
  358. package/build-module/hooks/typography.js +5 -5
  359. package/build-module/hooks/typography.js.map +1 -1
  360. package/build-module/hooks/use-zoom-out.js +15 -23
  361. package/build-module/hooks/use-zoom-out.js.map +1 -1
  362. package/build-module/hooks/utils.js +2 -2
  363. package/build-module/hooks/utils.js.map +1 -1
  364. package/build-module/index.js +1 -1
  365. package/build-module/index.js.map +1 -1
  366. package/build-module/lock-unlock.js.map +1 -1
  367. package/build-module/private-apis.js +7 -5
  368. package/build-module/private-apis.js.map +1 -1
  369. package/build-module/store/actions.js +2 -33
  370. package/build-module/store/actions.js.map +1 -1
  371. package/build-module/store/defaults.js +1 -1
  372. package/build-module/store/defaults.js.map +1 -1
  373. package/build-module/store/private-actions.js +54 -7
  374. package/build-module/store/private-actions.js.map +1 -1
  375. package/build-module/store/private-selectors.js +10 -21
  376. package/build-module/store/private-selectors.js.map +1 -1
  377. package/build-module/store/reducer.js +16 -6
  378. package/build-module/store/reducer.js.map +1 -1
  379. package/build-module/store/selectors.js +54 -16
  380. package/build-module/store/selectors.js.map +1 -1
  381. package/build-module/store/utils.js +3 -3
  382. package/build-module/store/utils.js.map +1 -1
  383. package/build-module/utils/dom.js +35 -16
  384. package/build-module/utils/dom.js.map +1 -1
  385. package/build-module/utils/get-font-styles-and-weights.js +2 -2
  386. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  387. package/build-module/utils/transform-styles/index.js +3 -2
  388. package/build-module/utils/transform-styles/index.js.map +1 -1
  389. package/build-style/content-rtl.css +16 -10
  390. package/build-style/content.css +16 -10
  391. package/build-style/style-rtl.css +47 -25
  392. package/build-style/style.css +47 -25
  393. package/build-types/utils/dom.d.ts +7 -9
  394. package/build-types/utils/dom.d.ts.map +1 -1
  395. package/package.json +34 -32
  396. package/src/autocompleters/block.js +16 -7
  397. package/src/components/block-canvas/index.js +17 -1
  398. package/src/components/block-canvas/style.scss +3 -1
  399. package/src/components/block-card/index.js +3 -3
  400. package/src/components/block-full-height-alignment-control/index.js +1 -1
  401. package/src/components/block-inspector/style.scss +2 -7
  402. package/src/components/block-list/block.js +29 -50
  403. package/src/components/block-list/block.native.js +0 -4
  404. package/src/components/block-list/content.scss +1 -1
  405. package/src/components/block-list/index.js +4 -4
  406. package/src/components/block-list/use-block-props/index.js +0 -2
  407. package/src/components/block-list/use-block-props/use-focus-first-element.js +5 -3
  408. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +7 -20
  409. package/src/components/block-list/use-in-between-inserter.js +1 -1
  410. package/src/components/block-patterns-list/README.md +8 -8
  411. package/src/components/block-patterns-list/index.js +35 -51
  412. package/src/components/block-patterns-list/stories/fixtures.js +834 -0
  413. package/src/components/block-patterns-list/stories/index.story.js +64 -0
  414. package/src/components/block-patterns-list/style.scss +2 -0
  415. package/src/components/block-patterns-paging/index.js +1 -1
  416. package/src/components/block-popover/index.js +4 -66
  417. package/src/components/block-preview/async.js +43 -0
  418. package/src/components/block-preview/index.js +8 -3
  419. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  420. package/src/components/block-settings-menu/index.js +3 -0
  421. package/src/components/block-toolbar/change-design.js +127 -0
  422. package/src/components/block-toolbar/index.js +25 -8
  423. package/src/components/block-toolbar/style.scss +16 -0
  424. package/src/components/block-tools/index.js +30 -27
  425. package/src/components/block-tools/insertion-point.js +4 -3
  426. package/src/components/block-tools/style.scss +12 -20
  427. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -2
  428. package/src/components/block-tools/use-show-block-tools.js +3 -14
  429. package/src/components/block-tools/zoom-out-mode-inserters.js +25 -40
  430. package/src/components/block-variation-transforms/index.js +2 -2
  431. package/src/components/block-vertical-alignment-control/ui.js +11 -15
  432. package/src/components/border-radius-control/linked-button.js +9 -11
  433. package/src/components/collab/block-comment-icon-slot.js +12 -0
  434. package/src/components/collab/block-comment-icon-toolbar-slot.js +12 -0
  435. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  436. package/src/components/convert-to-group-buttons/toolbar.js +4 -4
  437. package/src/components/default-block-appender/content.scss +13 -19
  438. package/src/components/global-styles/color-panel.js +2 -10
  439. package/src/components/global-styles/dimensions-panel.js +22 -16
  440. package/src/components/global-styles/test/use-global-styles-context.native.js +1 -0
  441. package/src/components/global-styles/use-global-styles-context.native.js +6 -0
  442. package/src/components/iframe/content.scss +4 -9
  443. package/src/components/iframe/get-compatibility-styles.js +4 -9
  444. package/src/components/iframe/index.js +48 -34
  445. package/src/components/iframe/style.scss +2 -3
  446. package/src/components/image-size-control/index.js +74 -43
  447. package/src/components/image-size-control/test/index.js +5 -63
  448. package/src/components/inner-blocks/index.js +12 -6
  449. package/src/components/inserter/block-patterns-explorer/pattern-list.js +3 -6
  450. package/src/components/inserter/block-patterns-tab/index.js +0 -1
  451. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +10 -4
  452. package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  453. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +8 -0
  454. package/src/components/inserter/block-patterns-tab/utils.js +5 -0
  455. package/src/components/inserter/category-tabs/index.js +16 -2
  456. package/src/components/inserter/hooks/use-block-types-state.js +6 -1
  457. package/src/components/inserter/hooks/use-patterns-paging.js +1 -6
  458. package/src/components/inserter/menu.js +6 -4
  459. package/src/components/inserter/search-results.js +0 -6
  460. package/src/components/inserter/style.scss +13 -0
  461. package/src/components/inserter-button/index.native.js +1 -1
  462. package/src/components/inspector-controls-tabs/index.js +1 -6
  463. package/src/components/inspector-controls-tabs/utils.js +0 -3
  464. package/src/components/link-control/link-preview.js +15 -8
  465. package/src/components/link-control/test/index.js +63 -24
  466. package/src/components/list-view/appender.js +5 -6
  467. package/src/components/list-view/branch.js +8 -6
  468. package/src/components/list-view/index.js +1 -2
  469. package/src/components/media-placeholder/index.js +4 -4
  470. package/src/components/provider/index.js +1 -3
  471. package/src/components/provider/test/experimental-provider.js +43 -1
  472. package/src/components/rich-text/event-listeners/index.js +4 -2
  473. package/src/components/rich-text/index.js +8 -1
  474. package/src/components/rich-text/index.native.js +0 -2
  475. package/src/components/spacing-sizes-control/index.js +3 -3
  476. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  477. package/src/components/spacing-sizes-control/linked-button.js +2 -12
  478. package/src/components/tabbed-sidebar/index.js +1 -1
  479. package/src/components/tabbed-sidebar/style.scss +1 -1
  480. package/src/components/tool-selector/index.js +1 -5
  481. package/src/components/url-input/index.js +4 -5
  482. package/src/components/use-block-commands/index.js +245 -234
  483. package/src/components/use-block-drop-zone/index.js +5 -5
  484. package/src/components/use-block-drop-zone/index.native.js +0 -1
  485. package/src/components/use-moving-animation/index.js +0 -1
  486. package/src/components/use-settings/index.js +0 -1
  487. package/src/components/writing-flow/index.js +5 -3
  488. package/src/components/writing-flow/use-tab-nav.js +1 -2
  489. package/src/hooks/block-bindings.js +48 -31
  490. package/src/hooks/contrast-checker.js +0 -1
  491. package/src/hooks/duotone.js +2 -2
  492. package/src/hooks/font-family.js +1 -1
  493. package/src/hooks/style.js +7 -3
  494. package/src/hooks/supports.js +6 -6
  495. package/src/hooks/typography.js +5 -5
  496. package/src/hooks/use-zoom-out.js +14 -34
  497. package/src/hooks/utils.js +7 -2
  498. package/src/index.js +0 -1
  499. package/src/private-apis.js +6 -3
  500. package/src/store/actions.js +3 -52
  501. package/src/store/defaults.js +2 -1
  502. package/src/store/private-actions.js +71 -8
  503. package/src/store/private-selectors.js +14 -25
  504. package/src/store/reducer.js +25 -11
  505. package/src/store/selectors.js +116 -53
  506. package/src/store/test/actions.js +41 -0
  507. package/src/store/test/private-selectors.js +5 -0
  508. package/src/store/test/reducer.js +23 -0
  509. package/src/store/utils.js +12 -11
  510. package/src/utils/dom.js +42 -17
  511. package/src/utils/get-font-styles-and-weights.js +2 -2
  512. package/src/utils/test/dom.js +224 -0
  513. package/src/utils/transform-styles/index.js +3 -2
  514. package/tsconfig.json +1 -0
  515. package/tsconfig.tsbuildinfo +1 -1
  516. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -57
  517. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
  518. package/build/components/block-toolbar/shuffle.js +0 -110
  519. package/build/components/block-toolbar/shuffle.js.map +0 -1
  520. package/build/components/block-tools/zoom-out-popover.js +0 -58
  521. package/build/components/block-tools/zoom-out-popover.js.map +0 -1
  522. package/build/components/block-tools/zoom-out-toolbar.js +0 -132
  523. package/build/components/block-tools/zoom-out-toolbar.js.map +0 -1
  524. package/build/components/block-vertical-alignment-control/icons.js +0 -48
  525. package/build/components/block-vertical-alignment-control/icons.js.map +0 -1
  526. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -51
  527. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
  528. package/build-module/components/block-toolbar/shuffle.js +0 -103
  529. package/build-module/components/block-toolbar/shuffle.js.map +0 -1
  530. package/build-module/components/block-tools/zoom-out-popover.js +0 -49
  531. package/build-module/components/block-tools/zoom-out-popover.js.map +0 -1
  532. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -124
  533. package/build-module/components/block-tools/zoom-out-toolbar.js.map +0 -1
  534. package/build-module/components/block-vertical-alignment-control/icons.js +0 -41
  535. package/build-module/components/block-vertical-alignment-control/icons.js.map +0 -1
  536. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -65
  537. package/src/components/block-toolbar/shuffle.js +0 -111
  538. package/src/components/block-tools/zoom-out-popover.js +0 -47
  539. package/src/components/block-tools/zoom-out-toolbar.js +0 -135
  540. package/src/components/block-vertical-alignment-control/icons.js +0 -34
  541. /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
@@ -5,6 +5,7 @@ import { __ } from '@wordpress/i18n';
5
5
  import {
6
6
  getBlockBindingsSource,
7
7
  getBlockBindingsSources,
8
+ getBlockType,
8
9
  } from '@wordpress/blocks';
9
10
  import {
10
11
  __experimentalItemGroup as ItemGroup,
@@ -29,10 +30,11 @@ import {
29
30
  import { unlock } from '../lock-unlock';
30
31
  import InspectorControls from '../components/inspector-controls';
31
32
  import BlockContext from '../components/block-context';
33
+ import { useBlockEditContext } from '../components/block-edit';
32
34
  import { useBlockBindingsUtils } from '../utils/block-bindings';
33
35
  import { store as blockEditorStore } from '../store';
34
36
 
35
- const { DropdownMenuV2 } = unlock( componentsPrivateApis );
37
+ const { Menu } = unlock( componentsPrivateApis );
36
38
 
37
39
  const EMPTY_OBJECT = {};
38
40
 
@@ -50,45 +52,60 @@ const useToolsPanelDropdownMenuProps = () => {
50
52
  };
51
53
 
52
54
  function BlockBindingsPanelDropdown( { fieldsList, attribute, binding } ) {
55
+ const { clientId } = useBlockEditContext();
53
56
  const registeredSources = getBlockBindingsSources();
54
57
  const { updateBlockBindings } = useBlockBindingsUtils();
55
58
  const currentKey = binding?.args?.key;
59
+ const attributeType = useSelect(
60
+ ( select ) => {
61
+ const { name: blockName } =
62
+ select( blockEditorStore ).getBlock( clientId );
63
+ const _attributeType =
64
+ getBlockType( blockName ).attributes?.[ attribute ]?.type;
65
+ return _attributeType === 'rich-text' ? 'string' : _attributeType;
66
+ },
67
+ [ clientId, attribute ]
68
+ );
56
69
  return (
57
70
  <>
58
71
  { Object.entries( fieldsList ).map( ( [ name, fields ], i ) => (
59
72
  <Fragment key={ name }>
60
- <DropdownMenuV2.Group>
73
+ <Menu.Group>
61
74
  { Object.keys( fieldsList ).length > 1 && (
62
- <DropdownMenuV2.GroupLabel>
75
+ <Menu.GroupLabel>
63
76
  { registeredSources[ name ].label }
64
- </DropdownMenuV2.GroupLabel>
77
+ </Menu.GroupLabel>
65
78
  ) }
66
- { Object.entries( fields ).map( ( [ key, args ] ) => (
67
- <DropdownMenuV2.RadioItem
68
- key={ key }
69
- onChange={ () =>
70
- updateBlockBindings( {
71
- [ attribute ]: {
72
- source: name,
73
- args: { key },
74
- },
75
- } )
76
- }
77
- name={ attribute + '-binding' }
78
- value={ key }
79
- checked={ key === currentKey }
80
- >
81
- <DropdownMenuV2.ItemLabel>
82
- { args?.label }
83
- </DropdownMenuV2.ItemLabel>
84
- <DropdownMenuV2.ItemHelpText>
85
- { args?.value }
86
- </DropdownMenuV2.ItemHelpText>
87
- </DropdownMenuV2.RadioItem>
88
- ) ) }
89
- </DropdownMenuV2.Group>
79
+ { Object.entries( fields )
80
+ .filter(
81
+ ( [ , args ] ) => args?.type === attributeType
82
+ )
83
+ .map( ( [ key, args ] ) => (
84
+ <Menu.RadioItem
85
+ key={ key }
86
+ onChange={ () =>
87
+ updateBlockBindings( {
88
+ [ attribute ]: {
89
+ source: name,
90
+ args: { key },
91
+ },
92
+ } )
93
+ }
94
+ name={ attribute + '-binding' }
95
+ value={ key }
96
+ checked={ key === currentKey }
97
+ >
98
+ <Menu.ItemLabel>
99
+ { args?.label }
100
+ </Menu.ItemLabel>
101
+ <Menu.ItemHelpText>
102
+ { args?.value }
103
+ </Menu.ItemHelpText>
104
+ </Menu.RadioItem>
105
+ ) ) }
106
+ </Menu.Group>
90
107
  { i !== Object.keys( fieldsList ).length - 1 && (
91
- <DropdownMenuV2.Separator />
108
+ <Menu.Separator />
92
109
  ) }
93
110
  </Fragment>
94
111
  ) ) }
@@ -158,7 +175,7 @@ function EditableBlockBindingsPanelItems( {
158
175
  } );
159
176
  } }
160
177
  >
161
- <DropdownMenuV2
178
+ <Menu
162
179
  placement={
163
180
  isMobile ? 'bottom-start' : 'left-start'
164
181
  }
@@ -178,7 +195,7 @@ function EditableBlockBindingsPanelItems( {
178
195
  attribute={ attribute }
179
196
  binding={ binding }
180
197
  />
181
- </DropdownMenuV2>
198
+ </Menu>
182
199
  </ToolsPanelItem>
183
200
  );
184
201
  } ) }
@@ -21,7 +21,6 @@ export default function BlockColorContrastChecker( { clientId } ) {
21
21
 
22
22
  // There are so many things that can change the color of a block
23
23
  // So we perform this check on every render.
24
- // eslint-disable-next-line react-hooks/exhaustive-deps
25
24
  useEffect( () => {
26
25
  if ( ! blockEl ) {
27
26
  return;
@@ -302,12 +302,12 @@ function useDuotoneStyles( {
302
302
  // `inline-block` is used instead of `none` to ensure that scroll
303
303
  // position is not affected, as `none` results in the editor
304
304
  // scrolling to the top of the block.
305
- blockElement.style.display = 'inline-block';
305
+ blockElement.style.setProperty( 'display', 'inline-block' );
306
306
  // Simply accessing el.offsetHeight flushes layout and style changes
307
307
  // in WebKit without having to wait for setTimeout.
308
308
  // eslint-disable-next-line no-unused-expressions
309
309
  blockElement.offsetHeight;
310
- blockElement.style.display = display;
310
+ blockElement.style.setProperty( 'display', display );
311
311
  }
312
312
  // `colors` must be a dependency so this effect runs when the colors
313
313
  // change in Safari.
@@ -13,7 +13,7 @@ import { shouldSkipSerialization } from './utils';
13
13
  import { TYPOGRAPHY_SUPPORT_KEY } from './typography';
14
14
  import { unlock } from '../lock-unlock';
15
15
 
16
- export const FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';
16
+ export const FONT_FAMILY_SUPPORT_KEY = 'typography.fontFamily';
17
17
  const { kebabCase } = unlock( componentsPrivateApis );
18
18
 
19
19
  /**
@@ -376,10 +376,14 @@ const elementTypes = [
376
376
  },
377
377
  ];
378
378
 
379
+ // Used for generating the instance ID
380
+ const STYLE_BLOCK_PROPS_REFERENCE = {};
381
+
379
382
  function useBlockProps( { name, style } ) {
380
- const blockElementsContainerIdentifier = `wp-elements-${ useInstanceId(
381
- useBlockProps
382
- ) }`;
383
+ const blockElementsContainerIdentifier = useInstanceId(
384
+ STYLE_BLOCK_PROPS_REFERENCE,
385
+ 'wp-elements'
386
+ );
383
387
 
384
388
  const baseElementSelector = `.${ blockElementsContainerIdentifier }`;
385
389
  const blockElementStyles = style?.elements;
@@ -9,17 +9,17 @@ const ALIGN_WIDE_SUPPORT_KEY = 'alignWide';
9
9
  const BORDER_SUPPORT_KEY = '__experimentalBorder';
10
10
  const COLOR_SUPPORT_KEY = 'color';
11
11
  const CUSTOM_CLASS_NAME_SUPPORT_KEY = 'customClassName';
12
- const FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';
12
+ const FONT_FAMILY_SUPPORT_KEY = 'typography.fontFamily';
13
13
  const FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';
14
14
  const LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight';
15
15
  /**
16
16
  * Key within block settings' support array indicating support for font style.
17
17
  */
18
- const FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';
18
+ const FONT_STYLE_SUPPORT_KEY = 'typography.fontStyle';
19
19
  /**
20
20
  * Key within block settings' support array indicating support for font weight.
21
21
  */
22
- const FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';
22
+ const FONT_WEIGHT_SUPPORT_KEY = 'typography.fontWeight';
23
23
  /**
24
24
  * Key within block settings' supports array indicating support for text
25
25
  * align e.g. settings found in `block.json`.
@@ -34,7 +34,7 @@ const TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns';
34
34
  * Key within block settings' supports array indicating support for text
35
35
  * decorations e.g. settings found in `block.json`.
36
36
  */
37
- const TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration';
37
+ const TEXT_DECORATION_SUPPORT_KEY = 'typography.textDecoration';
38
38
  /**
39
39
  * Key within block settings' supports array indicating support for writing mode
40
40
  * e.g. settings found in `block.json`.
@@ -44,13 +44,13 @@ const WRITING_MODE_SUPPORT_KEY = 'typography.__experimentalWritingMode';
44
44
  * Key within block settings' supports array indicating support for text
45
45
  * transforms e.g. settings found in `block.json`.
46
46
  */
47
- const TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';
47
+ const TEXT_TRANSFORM_SUPPORT_KEY = 'typography.textTransform';
48
48
 
49
49
  /**
50
50
  * Key within block settings' supports array indicating support for letter-spacing
51
51
  * e.g. settings found in `block.json`.
52
52
  */
53
- const LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';
53
+ const LETTER_SPACING_SUPPORT_KEY = 'typography.letterSpacing';
54
54
  const LAYOUT_SUPPORT_KEY = 'layout';
55
55
  const TYPOGRAPHY_SUPPORT_KEYS = [
56
56
  LINE_HEIGHT_SUPPORT_KEY,
@@ -27,12 +27,12 @@ function omit( object, keys ) {
27
27
  );
28
28
  }
29
29
 
30
- const LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';
31
- const TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';
32
- const TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration';
30
+ const LETTER_SPACING_SUPPORT_KEY = 'typography.letterSpacing';
31
+ const TEXT_TRANSFORM_SUPPORT_KEY = 'typography.textTransform';
32
+ const TEXT_DECORATION_SUPPORT_KEY = 'typography.textDecoration';
33
33
  const TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns';
34
- const FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';
35
- const FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';
34
+ const FONT_STYLE_SUPPORT_KEY = 'typography.fontStyle';
35
+ const FONT_WEIGHT_SUPPORT_KEY = 'typography.fontWeight';
36
36
  const WRITING_MODE_SUPPORT_KEY = 'typography.__experimentalWritingMode';
37
37
  export const TYPOGRAPHY_SUPPORT_KEY = 'typography';
38
38
  export const TYPOGRAPHY_SUPPORT_KEYS = [
@@ -2,62 +2,42 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useSelect, useDispatch } from '@wordpress/data';
5
- import { useEffect, useRef } from '@wordpress/element';
5
+ import { useEffect } from '@wordpress/element';
6
6
 
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
10
  import { store as blockEditorStore } from '../store';
11
11
  import { unlock } from '../lock-unlock';
12
+
12
13
  /**
13
14
  * A hook used to set the editor mode to zoomed out mode, invoking the hook sets the mode.
14
15
  *
15
16
  * @param {boolean} zoomOut If we should enter into zoomOut mode or not
16
17
  */
17
18
  export function useZoomOut( zoomOut = true ) {
18
- const { __unstableSetEditorMode, setZoomLevel } = unlock(
19
+ const { setZoomLevel, resetZoomLevel } = unlock(
19
20
  useDispatch( blockEditorStore )
20
21
  );
21
- const { __unstableGetEditorMode } = unlock( useSelect( blockEditorStore ) );
22
-
23
- const originalEditingModeRef = useRef( null );
24
- const mode = __unstableGetEditorMode();
22
+ const { isZoomOut } = unlock( useSelect( blockEditorStore ) );
25
23
 
26
24
  useEffect( () => {
27
- // Only set this on mount so we know what to return to when we unmount.
28
- if ( ! originalEditingModeRef.current ) {
29
- originalEditingModeRef.current = mode;
30
- }
25
+ const isZoomOutOnMount = isZoomOut();
31
26
 
32
27
  return () => {
33
- // We need to use __unstableGetEditorMode() here and not `mode`, as mode may not update on unmount
34
- if (
35
- __unstableGetEditorMode() === 'zoom-out' &&
36
- __unstableGetEditorMode() !== originalEditingModeRef.current
37
- ) {
38
- __unstableSetEditorMode( originalEditingModeRef.current );
39
- setZoomLevel( 100 );
28
+ if ( isZoomOutOnMount ) {
29
+ setZoomLevel( 'auto-scaled' );
30
+ } else {
31
+ resetZoomLevel();
40
32
  }
41
33
  };
42
34
  }, [] );
43
35
 
44
- // The effect opens the zoom-out view if we want it open and it's not currently in zoom-out mode.
45
36
  useEffect( () => {
46
- if ( zoomOut && mode !== 'zoom-out' ) {
47
- __unstableSetEditorMode( 'zoom-out' );
48
- setZoomLevel( 50 );
49
- } else if (
50
- ! zoomOut &&
51
- __unstableGetEditorMode() === 'zoom-out' &&
52
- originalEditingModeRef.current !== mode
53
- ) {
54
- __unstableSetEditorMode( originalEditingModeRef.current );
55
- setZoomLevel( 100 );
37
+ if ( zoomOut ) {
38
+ setZoomLevel( 'auto-scaled' );
39
+ } else {
40
+ resetZoomLevel();
56
41
  }
57
- }, [
58
- __unstableGetEditorMode,
59
- __unstableSetEditorMode,
60
- zoomOut,
61
- setZoomLevel,
62
- ] ); // Mode is deliberately excluded from the dependencies so that the effect does not run when mode changes.
42
+ }, [ zoomOut, setZoomLevel, resetZoomLevel ] );
63
43
  }
@@ -562,8 +562,13 @@ export function createBlockEditFilter( features ) {
562
562
  addFilter( 'editor.BlockEdit', 'core/editor/hooks', withBlockEditHooks );
563
563
  }
564
564
 
565
- function BlockProps( { index, useBlockProps, setAllWrapperProps, ...props } ) {
566
- const wrapperProps = useBlockProps( props );
565
+ function BlockProps( {
566
+ index,
567
+ useBlockProps: hook,
568
+ setAllWrapperProps,
569
+ ...props
570
+ } ) {
571
+ const wrapperProps = hook( props );
567
572
  const setWrapperProps = ( next ) =>
568
573
  setAllWrapperProps( ( prev ) => {
569
574
  const nextAll = [ ...prev ];
package/src/index.js CHANGED
@@ -13,7 +13,6 @@ export {
13
13
  getGapCSSValue as __experimentalGetGapCSSValue,
14
14
  getShadowClassesAndStyles as __experimentalGetShadowClassesAndStyles,
15
15
  useCachedTruthy,
16
- useZoomOut,
17
16
  useStyleOverride,
18
17
  } from './hooks';
19
18
  export * from './components';
@@ -24,6 +24,7 @@ import {
24
24
  useLayoutClasses,
25
25
  useLayoutStyles,
26
26
  __unstableBlockStyleVariationOverridesWithConfig,
27
+ useZoomOut,
27
28
  } from './hooks';
28
29
  import DimensionsTool from './components/dimensions-tool';
29
30
  import ResolutionTool from './components/resolution-tool';
@@ -32,7 +33,6 @@ import { usesContextKey } from './components/rich-text/format-edit';
32
33
  import { ExperimentalBlockCanvas } from './components/block-canvas';
33
34
  import { getDuotoneFilter } from './components/duotone/utils';
34
35
  import { useFlashEditableBlocks } from './components/use-flash-editable-blocks';
35
- import { useZoomOutModeExit } from './components/block-list/use-block-props/use-zoom-out-mode-exit';
36
36
  import {
37
37
  selectBlockPatternsKey,
38
38
  reusableBlocksSelectKey,
@@ -48,7 +48,8 @@ import { PrivatePublishDateTimePicker } from './components/publish-date-time-pic
48
48
  import useSpacingSizes from './components/spacing-sizes-control/hooks/use-spacing-sizes';
49
49
  import useBlockDisplayTitle from './components/block-title/use-block-display-title';
50
50
  import TabbedSidebar from './components/tabbed-sidebar';
51
-
51
+ import __unstableCommentIconFill from './components/collab/block-comment-icon-slot';
52
+ import __unstableCommentIconToolbarFill from './components/collab/block-comment-icon-toolbar-slot';
52
53
  /**
53
54
  * Private @wordpress/block-editor APIs.
54
55
  */
@@ -79,7 +80,7 @@ lock( privateApis, {
79
80
  TextAlignmentControl,
80
81
  usesContextKey,
81
82
  useFlashEditableBlocks,
82
- useZoomOutModeExit,
83
+ useZoomOut,
83
84
  globalStylesDataKey,
84
85
  globalStylesLinksDataKey,
85
86
  selectBlockPatternsKey,
@@ -94,4 +95,6 @@ lock( privateApis, {
94
95
  __unstableBlockStyleVariationOverridesWithConfig,
95
96
  setBackgroundStyleDefaults,
96
97
  sectionRootClientIdKey,
98
+ __unstableCommentIconFill,
99
+ __unstableCommentIconToolbarFill,
97
100
  } );
@@ -1669,62 +1669,13 @@ export const setNavigationMode =
1669
1669
  */
1670
1670
  export const __unstableSetEditorMode =
1671
1671
  ( mode ) =>
1672
- ( { dispatch, select, registry } ) => {
1673
- // When switching to zoom-out mode, we need to select the parent section
1674
- if ( mode === 'zoom-out' ) {
1675
- const firstSelectedClientId = select.getBlockSelectionStart();
1676
-
1677
- const sectionRootClientId = select.getSectionRootClientId();
1678
-
1679
- if ( firstSelectedClientId ) {
1680
- let sectionClientId;
1681
-
1682
- if ( sectionRootClientId ) {
1683
- const sectionClientIds =
1684
- select.getBlockOrder( sectionRootClientId );
1685
-
1686
- // If the selected block is a section block, use it.
1687
- if ( sectionClientIds?.includes( firstSelectedClientId ) ) {
1688
- sectionClientId = firstSelectedClientId;
1689
- } else {
1690
- // If the selected block is not a section block, find
1691
- // the parent section that contains the selected block.
1692
- sectionClientId = select
1693
- .getBlockParents( firstSelectedClientId )
1694
- .find( ( parent ) =>
1695
- sectionClientIds.includes( parent )
1696
- );
1697
- }
1698
- } else {
1699
- sectionClientId = select.getBlockHierarchyRootClientId(
1700
- firstSelectedClientId
1701
- );
1702
- }
1703
-
1704
- if ( sectionClientId ) {
1705
- dispatch.selectBlock( sectionClientId );
1706
- } else {
1707
- dispatch.clearSelectedBlock();
1708
- }
1709
- }
1710
- }
1711
-
1672
+ ( { registry } ) => {
1712
1673
  registry.dispatch( preferencesStore ).set( 'core', 'editorTool', mode );
1713
1674
 
1714
1675
  if ( mode === 'navigation' ) {
1715
- speak(
1716
- __(
1717
- 'You are currently in navigation mode. Navigate blocks using the Tab key and Arrow keys. Use Left and Right Arrow keys to move between nesting levels. To exit navigation mode and edit the selected block, press Enter.'
1718
- )
1719
- );
1676
+ speak( __( 'You are currently in Write mode.' ) );
1720
1677
  } else if ( mode === 'edit' ) {
1721
- speak(
1722
- __(
1723
- 'You are currently in edit mode. To return to the navigation mode, press Escape.'
1724
- )
1725
- );
1726
- } else if ( mode === 'zoom-out' ) {
1727
- speak( __( 'You are currently in zoom-out mode.' ) );
1678
+ speak( __( 'You are currently in Design mode.' ) );
1728
1679
  }
1729
1680
  };
1730
1681
 
@@ -167,7 +167,8 @@ export const SETTINGS_DEFAULTS = {
167
167
  __mobileEnablePageTemplates: false,
168
168
  __experimentalBlockPatterns: [],
169
169
  __experimentalBlockPatternCategories: [],
170
- __unstableIsPreviewMode: false,
170
+
171
+ isPreviewMode: false,
171
172
 
172
173
  // These settings will be completely revamped in the future.
173
174
  // The goal is to evolve this into an API which will instruct
@@ -2,6 +2,9 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { Platform } from '@wordpress/element';
5
+ import deprecated from '@wordpress/deprecated';
6
+ import { speak } from '@wordpress/a11y';
7
+ import { __ } from '@wordpress/i18n';
5
8
 
6
9
  /**
7
10
  * Internal dependencies
@@ -39,14 +42,32 @@ export function __experimentalUpdateSettings(
39
42
  settings,
40
43
  { stripExperimentalSettings = false, reset = false } = {}
41
44
  ) {
42
- let cleanSettings = settings;
45
+ let incomingSettings = settings;
46
+
47
+ if ( Object.hasOwn( incomingSettings, '__unstableIsPreviewMode' ) ) {
48
+ deprecated(
49
+ "__unstableIsPreviewMode argument in wp.data.dispatch('core/block-editor').updateSettings",
50
+ {
51
+ since: '6.8',
52
+ alternative: 'isPreviewMode',
53
+ }
54
+ );
55
+
56
+ incomingSettings = { ...incomingSettings };
57
+ incomingSettings.isPreviewMode =
58
+ incomingSettings.__unstableIsPreviewMode;
59
+ delete incomingSettings.__unstableIsPreviewMode;
60
+ }
61
+
62
+ let cleanSettings = incomingSettings;
63
+
43
64
  // There are no plugins in the mobile apps, so there is no
44
65
  // need to strip the experimental settings:
45
66
  if ( stripExperimentalSettings && Platform.OS === 'web' ) {
46
67
  cleanSettings = {};
47
- for ( const key in settings ) {
68
+ for ( const key in incomingSettings ) {
48
69
  if ( ! privateSettings.includes( key ) ) {
49
- cleanSettings[ key ] = settings[ key ];
70
+ cleanSettings[ key ] = incomingSettings[ key ];
50
71
  }
51
72
  }
52
73
  }
@@ -404,12 +425,54 @@ export const modifyContentLockBlock =
404
425
  * @param {number} zoom the new zoom level
405
426
  * @return {Object} Action object.
406
427
  */
407
- export function setZoomLevel( zoom = 100 ) {
408
- return {
409
- type: 'SET_ZOOM_LEVEL',
410
- zoom,
428
+ export const setZoomLevel =
429
+ ( zoom = 100 ) =>
430
+ ( { select, dispatch } ) => {
431
+ // When switching to zoom-out mode, we need to select the parent section
432
+ if ( zoom !== 100 ) {
433
+ const firstSelectedClientId = select.getBlockSelectionStart();
434
+ const sectionRootClientId = select.getSectionRootClientId();
435
+
436
+ if ( firstSelectedClientId ) {
437
+ let sectionClientId;
438
+
439
+ if ( sectionRootClientId ) {
440
+ const sectionClientIds =
441
+ select.getBlockOrder( sectionRootClientId );
442
+
443
+ // If the selected block is a section block, use it.
444
+ if ( sectionClientIds?.includes( firstSelectedClientId ) ) {
445
+ sectionClientId = firstSelectedClientId;
446
+ } else {
447
+ // If the selected block is not a section block, find
448
+ // the parent section that contains the selected block.
449
+ sectionClientId = select
450
+ .getBlockParents( firstSelectedClientId )
451
+ .find( ( parent ) =>
452
+ sectionClientIds.includes( parent )
453
+ );
454
+ }
455
+ } else {
456
+ sectionClientId = select.getBlockHierarchyRootClientId(
457
+ firstSelectedClientId
458
+ );
459
+ }
460
+
461
+ if ( sectionClientId ) {
462
+ dispatch.selectBlock( sectionClientId );
463
+ } else {
464
+ dispatch.clearSelectedBlock();
465
+ }
466
+
467
+ speak( __( 'You are currently in zoom-out mode.' ) );
468
+ }
469
+ }
470
+
471
+ dispatch( {
472
+ type: 'SET_ZOOM_LEVEL',
473
+ zoom,
474
+ } );
411
475
  };
412
- }
413
476
 
414
477
  /**
415
478
  * Resets the Zoom state.
@@ -109,16 +109,16 @@ function getEnabledClientIdsTreeUnmemoized( state, rootClientId ) {
109
109
  *
110
110
  * @return {Object[]} Tree of block objects with only clientID and innerBlocks set.
111
111
  */
112
- export const getEnabledClientIdsTree = createSelector(
113
- getEnabledClientIdsTreeUnmemoized,
114
- ( state ) => [
112
+ export const getEnabledClientIdsTree = createRegistrySelector( ( select ) =>
113
+ createSelector( getEnabledClientIdsTreeUnmemoized, ( state ) => [
115
114
  state.blocks.order,
116
115
  state.blockEditingModes,
117
116
  state.settings.templateLock,
118
117
  state.blockListSettings,
119
- state.editorMode,
118
+ select( STORE_NAME ).__unstableGetEditorMode( state ),
119
+ state.zoomLevel,
120
120
  getSectionRootClientId( state ),
121
- ]
121
+ ] )
122
122
  );
123
123
 
124
124
  /**
@@ -316,7 +316,7 @@ export const hasAllowedPatterns = createRegistrySelector( ( select ) =>
316
316
  },
317
317
  ( state, rootClientId ) => [
318
318
  ...getAllPatternsDependants( select )( state ),
319
- ...getInsertBlockTypeDependants( state, rootClientId ),
319
+ ...getInsertBlockTypeDependants( select )( state, rootClientId ),
320
320
  ]
321
321
  )
322
322
  );
@@ -571,17 +571,6 @@ export const getBlockStyles = createSelector(
571
571
  ]
572
572
  );
573
573
 
574
- /**
575
- * Returns whether zoom out mode is enabled.
576
- *
577
- * @param {Object} state Editor state.
578
- *
579
- * @return {boolean} Is zoom out mode enabled.
580
- */
581
- export function isZoomOutMode( state ) {
582
- return state.editorMode === 'zoom-out';
583
- }
584
-
585
574
  /**
586
575
  * Retrieves the client ID of the block which contains the blocks
587
576
  * acting as "sections" in the editor. This is typically the "main content"
@@ -596,23 +585,23 @@ export function getSectionRootClientId( state ) {
596
585
  }
597
586
 
598
587
  /**
599
- * Returns the zoom out state.
588
+ * Returns whether the editor is considered zoomed out.
600
589
  *
601
590
  * @param {Object} state Global application state.
602
- * @return {boolean} The zoom out state.
591
+ * @return {boolean} Whether the editor is zoomed.
603
592
  */
604
- export function getZoomLevel( state ) {
605
- return state.zoomLevel;
593
+ export function isZoomOut( state ) {
594
+ return state.zoomLevel === 'auto-scaled' || state.zoomLevel < 100;
606
595
  }
607
596
 
608
597
  /**
609
- * Returns whether the editor is considered zoomed out.
598
+ * Returns whether the zoom level.
610
599
  *
611
600
  * @param {Object} state Global application state.
612
- * @return {boolean} Whether the editor is zoomed.
601
+ * @return {number|"auto-scaled"} Zoom level.
613
602
  */
614
- export function isZoomOut( state ) {
615
- return getZoomLevel( state ) < 100;
603
+ export function getZoomLevel( state ) {
604
+ return state.zoomLevel;
616
605
  }
617
606
 
618
607
  /**