@wordpress/block-editor 12.14.0 → 12.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +10 -5
  3. package/build/components/block-canvas/index.js +22 -6
  4. package/build/components/block-canvas/index.js.map +1 -1
  5. package/build/components/block-card/index.js +1 -1
  6. package/build/components/block-card/index.js.map +1 -1
  7. package/build/components/block-controls/hook.js +3 -23
  8. package/build/components/block-controls/hook.js.map +1 -1
  9. package/build/components/block-edit/context.js +5 -1
  10. package/build/components/block-edit/context.js.map +1 -1
  11. package/build/components/block-edit/index.js +18 -9
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-info-slot-fill/index.js +3 -4
  14. package/build/components/block-info-slot-fill/index.js.map +1 -1
  15. package/build/components/block-list/block.js +28 -9
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/block.native.js +16 -5
  18. package/build/components/block-list/block.native.js.map +1 -1
  19. package/build/components/block-list/use-block-props/index.js +61 -18
  20. package/build/components/block-list/use-block-props/index.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  22. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  23. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  24. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  27. package/build/components/block-parent-selector/index.js +1 -1
  28. package/build/components/block-parent-selector/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/index.js +25 -16
  30. package/build/components/block-pattern-setup/index.js.map +1 -1
  31. package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
  32. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  33. package/build/components/block-patterns-list/index.js +37 -20
  34. package/build/components/block-patterns-list/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -9
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/index.js +28 -0
  38. package/build/components/block-rename/index.js.map +1 -0
  39. package/build/components/block-rename/is-empty-string.js +10 -0
  40. package/build/components/block-rename/is-empty-string.js.map +1 -0
  41. package/build/components/block-rename/modal.js +90 -0
  42. package/build/components/block-rename/modal.js.map +1 -0
  43. package/build/components/block-rename/rename-control.js +74 -0
  44. package/build/components/block-rename/rename-control.js.map +1 -0
  45. package/build/components/block-rename/use-block-rename.js +17 -0
  46. package/build/components/block-rename/use-block-rename.js.map +1 -0
  47. package/build/components/block-settings/container.native.js +6 -4
  48. package/build/components/block-settings/container.native.js.map +1 -1
  49. package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
  50. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  51. package/build/components/block-settings-menu-controls/index.js +7 -0
  52. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  53. package/build/components/block-styles/index.js +1 -1
  54. package/build/components/block-styles/index.js.map +1 -1
  55. package/build/components/block-styles/index.native.js +3 -2
  56. package/build/components/block-styles/index.native.js.map +1 -1
  57. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  58. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +89 -27
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  62. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  63. package/build/components/block-tools/block-toolbar-popover.js +86 -0
  64. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  65. package/build/components/block-tools/index.js +27 -24
  66. package/build/components/block-tools/index.js.map +1 -1
  67. package/build/components/block-types-list/index.js +6 -2
  68. package/build/components/block-types-list/index.js.map +1 -1
  69. package/build/components/block-types-list/index.native.js +4 -3
  70. package/build/components/block-types-list/index.native.js.map +1 -1
  71. package/build/components/block-variation-picker/index.native.js +2 -1
  72. package/build/components/block-variation-picker/index.native.js.map +1 -1
  73. package/build/components/colors-gradients/control.js +28 -17
  74. package/build/components/colors-gradients/control.js.map +1 -1
  75. package/build/components/date-format-picker/index.js +8 -1
  76. package/build/components/date-format-picker/index.js.map +1 -1
  77. package/build/components/duotone-control/index.js +1 -4
  78. package/build/components/duotone-control/index.js.map +1 -1
  79. package/build/components/global-styles/advanced-panel.js +1 -1
  80. package/build/components/global-styles/advanced-panel.js.map +1 -1
  81. package/build/components/global-styles/color-panel.js +22 -20
  82. package/build/components/global-styles/color-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +9 -3
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/typography-panel.js +20 -31
  86. package/build/components/global-styles/typography-panel.js.map +1 -1
  87. package/build/components/image-link-destinations/index.native.js +118 -0
  88. package/build/components/image-link-destinations/index.native.js.map +1 -0
  89. package/build/components/image-size-control/index.js +0 -5
  90. package/build/components/image-size-control/index.js.map +1 -1
  91. package/build/components/index.native.js +8 -0
  92. package/build/components/index.native.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +3 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
  96. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  97. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  98. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  100. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  101. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  102. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  103. package/build/components/inserter/block-patterns-tab/utils.js +3 -4
  104. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  105. package/build/components/inserter/hooks/use-patterns-state.js +2 -1
  106. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  107. package/build/components/inserter/media-tab/media-panel.js +2 -2
  108. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  109. package/build/components/inserter/menu.js +14 -7
  110. package/build/components/inserter/menu.js.map +1 -1
  111. package/build/components/inserter/preview-panel.js +2 -2
  112. package/build/components/inserter/preview-panel.js.map +1 -1
  113. package/build/components/inserter-button/index.native.js +98 -0
  114. package/build/components/inserter-button/index.native.js.map +1 -0
  115. package/build/components/inserter-button/sparkles.js +23 -0
  116. package/build/components/inserter-button/sparkles.js.map +1 -0
  117. package/build/components/inserter-draggable-blocks/index.js +8 -4
  118. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  119. package/build/components/inserter-listbox/index.js +11 -6
  120. package/build/components/inserter-listbox/index.js.map +1 -1
  121. package/build/components/inserter-listbox/item.js +24 -23
  122. package/build/components/inserter-listbox/item.js.map +1 -1
  123. package/build/components/inserter-listbox/row.js +5 -5
  124. package/build/components/inserter-listbox/row.js.map +1 -1
  125. package/build/components/inspector-controls/fill.js +3 -3
  126. package/build/components/inspector-controls/fill.js.map +1 -1
  127. package/build/components/inspector-controls/fill.native.js +3 -3
  128. package/build/components/inspector-controls/fill.native.js.map +1 -1
  129. package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
  130. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  131. package/build/components/navigable-toolbar/index.js +2 -2
  132. package/build/components/navigable-toolbar/index.js.map +1 -1
  133. package/build/components/preview-options/index.js +6 -60
  134. package/build/components/preview-options/index.js.map +1 -1
  135. package/build/components/rich-text/content.js +26 -23
  136. package/build/components/rich-text/content.js.map +1 -1
  137. package/build/components/rich-text/get-rich-text-values.js +2 -1
  138. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  139. package/build/components/rich-text/index.js +2 -30
  140. package/build/components/rich-text/index.js.map +1 -1
  141. package/build/components/rich-text/index.native.js +10 -17
  142. package/build/components/rich-text/index.native.js.map +1 -1
  143. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  144. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  145. package/build/components/rich-text/native/index.native.js +41 -37
  146. package/build/components/rich-text/native/index.native.js.map +1 -1
  147. package/build/components/rich-text/use-input-rules.js +35 -2
  148. package/build/components/rich-text/use-input-rules.js.map +1 -1
  149. package/build/components/rich-text/with-deprecations.js +50 -0
  150. package/build/components/rich-text/with-deprecations.js.map +1 -0
  151. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  152. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  153. package/build/components/use-block-drop-zone/index.js +74 -9
  154. package/build/components/use-block-drop-zone/index.js.map +1 -1
  155. package/build/components/use-moving-animation/index.js +2 -1
  156. package/build/components/use-moving-animation/index.js.map +1 -1
  157. package/build/components/use-on-block-drop/index.js +1 -1
  158. package/build/components/use-on-block-drop/index.js.map +1 -1
  159. package/build/components/use-resize-canvas/index.js +4 -1
  160. package/build/components/use-resize-canvas/index.js.map +1 -1
  161. package/build/components/use-settings/index.js +16 -2
  162. package/build/components/use-settings/index.js.map +1 -1
  163. package/build/hooks/align.js +20 -68
  164. package/build/hooks/align.js.map +1 -1
  165. package/build/hooks/align.native.js +11 -1
  166. package/build/hooks/align.native.js.map +1 -1
  167. package/build/hooks/anchor.js +13 -29
  168. package/build/hooks/anchor.js.map +1 -1
  169. package/build/hooks/background.js +28 -31
  170. package/build/hooks/background.js.map +1 -1
  171. package/build/hooks/block-hooks.js +24 -32
  172. package/build/hooks/block-hooks.js.map +1 -1
  173. package/build/hooks/block-renaming.js +38 -0
  174. package/build/hooks/block-renaming.js.map +1 -1
  175. package/build/hooks/border.js +58 -80
  176. package/build/hooks/border.js.map +1 -1
  177. package/build/hooks/color.js +76 -89
  178. package/build/hooks/color.js.map +1 -1
  179. package/build/hooks/content-lock-ui.js +29 -29
  180. package/build/hooks/content-lock-ui.js.map +1 -1
  181. package/build/hooks/custom-class-name.js +12 -29
  182. package/build/hooks/custom-class-name.js.map +1 -1
  183. package/build/hooks/custom-fields.js +64 -73
  184. package/build/hooks/custom-fields.js.map +1 -1
  185. package/build/hooks/dimensions.js +21 -17
  186. package/build/hooks/dimensions.js.map +1 -1
  187. package/build/hooks/duotone.js +31 -61
  188. package/build/hooks/duotone.js.map +1 -1
  189. package/build/hooks/font-family.js +16 -25
  190. package/build/hooks/font-family.js.map +1 -1
  191. package/build/hooks/font-size.js +51 -119
  192. package/build/hooks/font-size.js.map +1 -1
  193. package/build/hooks/index.js +25 -15
  194. package/build/hooks/index.js.map +1 -1
  195. package/build/hooks/index.native.js +10 -3
  196. package/build/hooks/index.native.js.map +1 -1
  197. package/build/hooks/layout-child.js +68 -0
  198. package/build/hooks/layout-child.js.map +1 -0
  199. package/build/hooks/layout.js +29 -108
  200. package/build/hooks/layout.js.map +1 -1
  201. package/build/hooks/padding.js +2 -2
  202. package/build/hooks/padding.js.map +1 -1
  203. package/build/hooks/position.js +40 -62
  204. package/build/hooks/position.js.map +1 -1
  205. package/build/hooks/style.js +51 -88
  206. package/build/hooks/style.js.map +1 -1
  207. package/build/hooks/typography.js +34 -14
  208. package/build/hooks/typography.js.map +1 -1
  209. package/build/hooks/utils.js +154 -7
  210. package/build/hooks/utils.js.map +1 -1
  211. package/build/layouts/constrained.js +4 -3
  212. package/build/layouts/constrained.js.map +1 -1
  213. package/build/private-apis.js +0 -2
  214. package/build/private-apis.js.map +1 -1
  215. package/build/store/private-actions.js +8 -0
  216. package/build/store/private-actions.js.map +1 -1
  217. package/build/store/private-selectors.js +34 -0
  218. package/build/store/private-selectors.js.map +1 -1
  219. package/build/store/reducer.js +8 -0
  220. package/build/store/reducer.js.map +1 -1
  221. package/build/store/selectors.js +10 -58
  222. package/build/store/selectors.js.map +1 -1
  223. package/build/store/utils.js +66 -0
  224. package/build/store/utils.js.map +1 -0
  225. package/build/utils/object.js +21 -61
  226. package/build/utils/object.js.map +1 -1
  227. package/build/utils/selection.js +9 -1
  228. package/build/utils/selection.js.map +1 -1
  229. package/build/utils/transform-styles/index.js +26 -6
  230. package/build/utils/transform-styles/index.js.map +1 -1
  231. package/build-module/components/block-canvas/index.js +23 -7
  232. package/build-module/components/block-canvas/index.js.map +1 -1
  233. package/build-module/components/block-card/index.js +1 -1
  234. package/build-module/components/block-card/index.js.map +1 -1
  235. package/build-module/components/block-controls/hook.js +4 -24
  236. package/build-module/components/block-controls/hook.js.map +1 -1
  237. package/build-module/components/block-edit/context.js +2 -0
  238. package/build-module/components/block-edit/context.js.map +1 -1
  239. package/build-module/components/block-edit/index.js +19 -10
  240. package/build-module/components/block-edit/index.js.map +1 -1
  241. package/build-module/components/block-info-slot-fill/index.js +3 -3
  242. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  243. package/build-module/components/block-list/block.js +29 -10
  244. package/build-module/components/block-list/block.js.map +1 -1
  245. package/build-module/components/block-list/block.native.js +16 -5
  246. package/build-module/components/block-list/block.native.js.map +1 -1
  247. package/build-module/components/block-list/use-block-props/index.js +62 -19
  248. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  249. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  250. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  251. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  252. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  253. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  254. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  255. package/build-module/components/block-parent-selector/index.js +1 -1
  256. package/build-module/components/block-parent-selector/index.js.map +1 -1
  257. package/build-module/components/block-pattern-setup/index.js +24 -15
  258. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  259. package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
  260. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  261. package/build-module/components/block-patterns-list/index.js +37 -20
  262. package/build-module/components/block-patterns-list/index.js.map +1 -1
  263. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  264. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  265. package/build-module/components/block-rename/index.js +4 -0
  266. package/build-module/components/block-rename/index.js.map +1 -0
  267. package/build-module/components/block-rename/is-empty-string.js +4 -0
  268. package/build-module/components/block-rename/is-empty-string.js.map +1 -0
  269. package/build-module/components/block-rename/modal.js +82 -0
  270. package/build-module/components/block-rename/modal.js.map +1 -0
  271. package/build-module/components/block-rename/rename-control.js +66 -0
  272. package/build-module/components/block-rename/rename-control.js.map +1 -0
  273. package/build-module/components/block-rename/use-block-rename.js +10 -0
  274. package/build-module/components/block-rename/use-block-rename.js.map +1 -0
  275. package/build-module/components/block-settings/container.native.js +4 -2
  276. package/build-module/components/block-settings/container.native.js.map +1 -1
  277. package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
  278. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  279. package/build-module/components/block-settings-menu-controls/index.js +7 -0
  280. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  281. package/build-module/components/block-styles/index.js +1 -1
  282. package/build-module/components/block-styles/index.js.map +1 -1
  283. package/build-module/components/block-styles/index.native.js +3 -2
  284. package/build-module/components/block-styles/index.native.js.map +1 -1
  285. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  286. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  287. package/build-module/components/block-toolbar/index.js +88 -25
  288. package/build-module/components/block-toolbar/index.js.map +1 -1
  289. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  290. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  291. package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
  292. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  293. package/build-module/components/block-tools/index.js +27 -24
  294. package/build-module/components/block-tools/index.js.map +1 -1
  295. package/build-module/components/block-types-list/index.js +6 -2
  296. package/build-module/components/block-types-list/index.js.map +1 -1
  297. package/build-module/components/block-types-list/index.native.js +2 -1
  298. package/build-module/components/block-types-list/index.native.js.map +1 -1
  299. package/build-module/components/block-variation-picker/index.native.js +2 -1
  300. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  301. package/build-module/components/colors-gradients/control.js +29 -18
  302. package/build-module/components/colors-gradients/control.js.map +1 -1
  303. package/build-module/components/date-format-picker/index.js +8 -1
  304. package/build-module/components/date-format-picker/index.js.map +1 -1
  305. package/build-module/components/duotone-control/index.js +1 -4
  306. package/build-module/components/duotone-control/index.js.map +1 -1
  307. package/build-module/components/global-styles/advanced-panel.js +1 -1
  308. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  309. package/build-module/components/global-styles/color-panel.js +23 -21
  310. package/build-module/components/global-styles/color-panel.js.map +1 -1
  311. package/build-module/components/global-styles/filters-panel.js +10 -4
  312. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  313. package/build-module/components/global-styles/typography-panel.js +20 -31
  314. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  315. package/build-module/components/image-link-destinations/index.native.js +109 -0
  316. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  317. package/build-module/components/image-size-control/index.js +0 -5
  318. package/build-module/components/image-size-control/index.js.map +1 -1
  319. package/build-module/components/index.native.js +1 -0
  320. package/build-module/components/index.native.js.map +1 -1
  321. package/build-module/components/inner-blocks/index.js +3 -1
  322. package/build-module/components/inner-blocks/index.js.map +1 -1
  323. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
  324. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  325. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  326. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  327. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
  328. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  329. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +2 -2
  330. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  331. package/build-module/components/inserter/block-patterns-tab/utils.js +3 -4
  332. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  333. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
  334. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  335. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  336. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  337. package/build-module/components/inserter/menu.js +14 -7
  338. package/build-module/components/inserter/menu.js.map +1 -1
  339. package/build-module/components/inserter/preview-panel.js +2 -2
  340. package/build-module/components/inserter/preview-panel.js.map +1 -1
  341. package/build-module/components/inserter-button/index.native.js +89 -0
  342. package/build-module/components/inserter-button/index.native.js.map +1 -0
  343. package/build-module/components/inserter-button/sparkles.js +15 -0
  344. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  345. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  346. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  347. package/build-module/components/inserter-listbox/index.js +13 -8
  348. package/build-module/components/inserter-listbox/index.js.map +1 -1
  349. package/build-module/components/inserter-listbox/item.js +25 -23
  350. package/build-module/components/inserter-listbox/item.js.map +1 -1
  351. package/build-module/components/inserter-listbox/row.js +6 -5
  352. package/build-module/components/inserter-listbox/row.js.map +1 -1
  353. package/build-module/components/inspector-controls/fill.js +3 -3
  354. package/build-module/components/inspector-controls/fill.js.map +1 -1
  355. package/build-module/components/inspector-controls/fill.native.js +3 -3
  356. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  357. package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
  358. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  359. package/build-module/components/navigable-toolbar/index.js +2 -2
  360. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  361. package/build-module/components/preview-options/index.js +6 -60
  362. package/build-module/components/preview-options/index.js.map +1 -1
  363. package/build-module/components/rich-text/content.js +25 -21
  364. package/build-module/components/rich-text/content.js.map +1 -1
  365. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  366. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  367. package/build-module/components/rich-text/index.js +4 -32
  368. package/build-module/components/rich-text/index.js.map +1 -1
  369. package/build-module/components/rich-text/index.native.js +11 -19
  370. package/build-module/components/rich-text/index.native.js.map +1 -1
  371. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  372. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  373. package/build-module/components/rich-text/native/index.native.js +41 -37
  374. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  375. package/build-module/components/rich-text/use-input-rules.js +36 -3
  376. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  377. package/build-module/components/rich-text/with-deprecations.js +42 -0
  378. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  379. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  380. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  381. package/build-module/components/use-block-drop-zone/index.js +73 -9
  382. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  383. package/build-module/components/use-moving-animation/index.js +2 -1
  384. package/build-module/components/use-moving-animation/index.js.map +1 -1
  385. package/build-module/components/use-on-block-drop/index.js +1 -1
  386. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  387. package/build-module/components/use-resize-canvas/index.js +4 -1
  388. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  389. package/build-module/components/use-settings/index.js +15 -3
  390. package/build-module/components/use-settings/index.js.map +1 -1
  391. package/build-module/hooks/align.js +19 -66
  392. package/build-module/hooks/align.js.map +1 -1
  393. package/build-module/hooks/align.native.js +1 -0
  394. package/build-module/hooks/align.native.js.map +1 -1
  395. package/build-module/hooks/anchor.js +11 -26
  396. package/build-module/hooks/anchor.js.map +1 -1
  397. package/build-module/hooks/background.js +26 -28
  398. package/build-module/hooks/background.js.map +1 -1
  399. package/build-module/hooks/block-hooks.js +22 -30
  400. package/build-module/hooks/block-hooks.js.map +1 -1
  401. package/build-module/hooks/block-renaming.js +36 -0
  402. package/build-module/hooks/block-renaming.js.map +1 -1
  403. package/build-module/hooks/border.js +57 -78
  404. package/build-module/hooks/border.js.map +1 -1
  405. package/build-module/hooks/color.js +74 -86
  406. package/build-module/hooks/color.js.map +1 -1
  407. package/build-module/hooks/content-lock-ui.js +27 -27
  408. package/build-module/hooks/content-lock-ui.js.map +1 -1
  409. package/build-module/hooks/custom-class-name.js +11 -27
  410. package/build-module/hooks/custom-class-name.js.map +1 -1
  411. package/build-module/hooks/custom-fields.js +60 -74
  412. package/build-module/hooks/custom-fields.js.map +1 -1
  413. package/build-module/hooks/dimensions.js +21 -16
  414. package/build-module/hooks/dimensions.js.map +1 -1
  415. package/build-module/hooks/duotone.js +30 -61
  416. package/build-module/hooks/duotone.js.map +1 -1
  417. package/build-module/hooks/font-family.js +14 -23
  418. package/build-module/hooks/font-family.js.map +1 -1
  419. package/build-module/hooks/font-size.js +49 -119
  420. package/build-module/hooks/font-size.js.map +1 -1
  421. package/build-module/hooks/index.js +18 -15
  422. package/build-module/hooks/index.js.map +1 -1
  423. package/build-module/hooks/index.native.js +5 -3
  424. package/build-module/hooks/index.native.js.map +1 -1
  425. package/build-module/hooks/layout-child.js +60 -0
  426. package/build-module/hooks/layout-child.js.map +1 -0
  427. package/build-module/hooks/layout.js +26 -105
  428. package/build-module/hooks/layout.js.map +1 -1
  429. package/build-module/hooks/padding.js +2 -2
  430. package/build-module/hooks/padding.js.map +1 -1
  431. package/build-module/hooks/position.js +38 -59
  432. package/build-module/hooks/position.js.map +1 -1
  433. package/build-module/hooks/style.js +51 -84
  434. package/build-module/hooks/style.js.map +1 -1
  435. package/build-module/hooks/typography.js +33 -12
  436. package/build-module/hooks/typography.js.map +1 -1
  437. package/build-module/hooks/utils.js +149 -6
  438. package/build-module/hooks/utils.js.map +1 -1
  439. package/build-module/layouts/constrained.js +4 -3
  440. package/build-module/layouts/constrained.js.map +1 -1
  441. package/build-module/private-apis.js +0 -2
  442. package/build-module/private-apis.js.map +1 -1
  443. package/build-module/store/private-actions.js +7 -0
  444. package/build-module/store/private-actions.js.map +1 -1
  445. package/build-module/store/private-selectors.js +33 -1
  446. package/build-module/store/private-selectors.js.map +1 -1
  447. package/build-module/store/reducer.js +8 -0
  448. package/build-module/store/reducer.js.map +1 -1
  449. package/build-module/store/selectors.js +3 -51
  450. package/build-module/store/selectors.js.map +1 -1
  451. package/build-module/store/utils.js +56 -0
  452. package/build-module/store/utils.js.map +1 -0
  453. package/build-module/utils/object.js +21 -60
  454. package/build-module/utils/object.js.map +1 -1
  455. package/build-module/utils/selection.js +9 -1
  456. package/build-module/utils/selection.js.map +1 -1
  457. package/build-module/utils/transform-styles/index.js +24 -7
  458. package/build-module/utils/transform-styles/index.js.map +1 -1
  459. package/build-style/content-rtl.css +6 -6
  460. package/build-style/content.css +6 -6
  461. package/build-style/style-rtl.css +123 -298
  462. package/build-style/style.css +123 -298
  463. package/package.json +31 -31
  464. package/src/components/block-canvas/index.js +31 -17
  465. package/src/components/block-caption/README.md +2 -2
  466. package/src/components/block-card/index.js +5 -3
  467. package/src/components/block-card/style.scss +7 -3
  468. package/src/components/block-controls/hook.js +8 -30
  469. package/src/components/block-controls/test/index.js +3 -3
  470. package/src/components/block-edit/context.js +3 -0
  471. package/src/components/block-edit/index.js +36 -10
  472. package/src/components/block-info-slot-fill/index.js +6 -3
  473. package/src/components/block-inspector/style.scss +0 -4
  474. package/src/components/block-list/block.js +39 -5
  475. package/src/components/block-list/block.native.js +20 -4
  476. package/src/components/block-list/use-block-props/index.js +74 -21
  477. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  478. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  479. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  480. package/src/components/block-parent-selector/index.js +1 -1
  481. package/src/components/block-pattern-setup/index.js +38 -22
  482. package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
  483. package/src/components/block-pattern-setup/style.scss +4 -1
  484. package/src/components/block-patterns-list/README.md +4 -4
  485. package/src/components/block-patterns-list/index.js +61 -35
  486. package/src/components/block-patterns-list/style.scss +7 -0
  487. package/src/components/block-removal-warning-modal/index.js +7 -14
  488. package/src/components/block-rename/index.js +3 -0
  489. package/src/components/block-rename/is-empty-string.js +3 -0
  490. package/src/components/block-rename/modal.js +121 -0
  491. package/src/components/block-rename/rename-control.js +80 -0
  492. package/src/components/block-rename/use-block-rename.js +10 -0
  493. package/src/components/block-settings/container.native.js +3 -5
  494. package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
  495. package/src/components/block-settings-menu-controls/index.js +9 -0
  496. package/src/components/block-styles/index.js +1 -1
  497. package/src/components/block-styles/index.native.js +4 -2
  498. package/src/components/block-styles/style.scss +0 -11
  499. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  500. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
  501. package/src/components/block-toolbar/index.js +180 -95
  502. package/src/components/block-toolbar/style.scss +50 -66
  503. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  504. package/src/components/block-tools/block-toolbar-popover.js +90 -0
  505. package/src/components/block-tools/index.js +42 -29
  506. package/src/components/block-tools/style.scss +60 -172
  507. package/src/components/block-types-list/index.js +5 -4
  508. package/src/components/block-types-list/index.native.js +2 -1
  509. package/src/components/block-variation-picker/index.native.js +1 -1
  510. package/src/components/button-block-appender/content.scss +2 -2
  511. package/src/components/colors-gradients/control.js +49 -30
  512. package/src/components/colors-gradients/style.scss +0 -7
  513. package/src/components/date-format-picker/index.js +7 -0
  514. package/src/components/duotone-control/index.js +2 -5
  515. package/src/components/duotone-control/style.scss +1 -6
  516. package/src/components/editable-text/README.md +0 -36
  517. package/src/components/global-styles/advanced-panel.js +1 -1
  518. package/src/components/global-styles/color-panel.js +34 -25
  519. package/src/components/global-styles/filters-panel.js +8 -4
  520. package/src/components/global-styles/typography-panel.js +23 -43
  521. package/src/components/image-link-destinations/index.native.js +152 -0
  522. package/src/components/image-link-destinations/style.native.scss +16 -0
  523. package/src/components/image-size-control/index.js +0 -6
  524. package/src/components/index.native.js +1 -0
  525. package/src/components/inner-blocks/README.md +13 -2
  526. package/src/components/inner-blocks/index.js +6 -2
  527. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
  528. package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
  529. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
  530. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
  531. package/src/components/inserter/block-patterns-tab/utils.js +6 -4
  532. package/src/components/inserter/hooks/use-patterns-state.js +3 -1
  533. package/src/components/inserter/media-tab/media-panel.js +1 -1
  534. package/src/components/inserter/menu.js +16 -8
  535. package/src/components/inserter/preview-panel.js +2 -2
  536. package/src/components/inserter/style.scss +15 -17
  537. package/src/components/inserter-button/README.md +62 -0
  538. package/src/components/inserter-button/index.native.js +116 -0
  539. package/src/components/inserter-button/sparkles.js +15 -0
  540. package/src/components/inserter-button/style.native.scss +72 -0
  541. package/src/components/inserter-draggable-blocks/index.js +18 -5
  542. package/src/components/inserter-listbox/index.js +11 -7
  543. package/src/components/inserter-listbox/item.js +11 -12
  544. package/src/components/inserter-listbox/row.js +6 -12
  545. package/src/components/inspector-controls/fill.js +6 -3
  546. package/src/components/inspector-controls/fill.native.js +6 -3
  547. package/src/components/link-control/style.scss +1 -1
  548. package/src/components/link-control/test/index.js +1 -1
  549. package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
  550. package/src/components/navigable-toolbar/README.md +2 -0
  551. package/src/components/navigable-toolbar/index.js +2 -2
  552. package/src/components/plain-text/README.md +0 -28
  553. package/src/components/preview-options/index.js +6 -84
  554. package/src/components/rich-text/README.md +0 -58
  555. package/src/components/rich-text/content.js +27 -20
  556. package/src/components/rich-text/get-rich-text-values.js +6 -1
  557. package/src/components/rich-text/index.js +5 -46
  558. package/src/components/rich-text/index.native.js +9 -26
  559. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  560. package/src/components/rich-text/native/index.native.js +52 -50
  561. package/src/components/rich-text/use-input-rules.js +36 -3
  562. package/src/components/rich-text/with-deprecations.js +51 -0
  563. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  564. package/src/components/url-input/README.md +1 -74
  565. package/src/components/use-block-drop-zone/index.js +118 -15
  566. package/src/components/use-moving-animation/index.js +1 -1
  567. package/src/components/use-on-block-drop/index.js +2 -1
  568. package/src/components/use-resize-canvas/README.md +3 -3
  569. package/src/components/use-resize-canvas/index.js +4 -1
  570. package/src/components/use-settings/index.js +17 -3
  571. package/src/components/use-settings/test/index.js +1 -1
  572. package/src/hooks/align.js +15 -76
  573. package/src/hooks/align.native.js +1 -0
  574. package/src/hooks/anchor.js +13 -33
  575. package/src/hooks/background.js +28 -23
  576. package/src/hooks/block-hooks.js +22 -51
  577. package/src/hooks/block-renaming.js +33 -0
  578. package/src/hooks/border.js +67 -118
  579. package/src/hooks/color.js +100 -132
  580. package/src/hooks/content-lock-ui.js +110 -122
  581. package/src/hooks/custom-class-name.js +8 -40
  582. package/src/hooks/custom-fields.js +70 -94
  583. package/src/hooks/dimensions.js +20 -16
  584. package/src/hooks/duotone.js +70 -127
  585. package/src/hooks/font-family.js +10 -29
  586. package/src/hooks/font-size.js +66 -162
  587. package/src/hooks/index.js +42 -15
  588. package/src/hooks/index.native.js +6 -3
  589. package/src/hooks/layout-child.js +53 -0
  590. package/src/hooks/layout.js +25 -110
  591. package/src/hooks/padding.js +2 -2
  592. package/src/hooks/position.js +50 -90
  593. package/src/hooks/style.js +117 -187
  594. package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
  595. package/src/hooks/test/align.js +1 -178
  596. package/src/hooks/typography.js +20 -16
  597. package/src/hooks/utils.js +187 -6
  598. package/src/layouts/constrained.js +57 -50
  599. package/src/private-apis.js +0 -2
  600. package/src/store/private-actions.js +8 -0
  601. package/src/store/private-selectors.js +45 -0
  602. package/src/store/reducer.js +8 -0
  603. package/src/store/selectors.js +5 -67
  604. package/src/store/utils.js +74 -0
  605. package/src/style.scss +1 -3
  606. package/src/utils/object.js +18 -69
  607. package/src/utils/selection.js +9 -2
  608. package/src/utils/test/transform-styles.js +49 -0
  609. package/src/utils/transform-styles/index.js +39 -13
  610. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  611. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  612. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  613. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  614. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  615. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  616. package/build/components/block-tools/back-compat.js +0 -45
  617. package/build/components/block-tools/back-compat.js.map +0 -1
  618. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  619. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  620. package/build/components/block-tools/selected-block-tools.js +0 -113
  621. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  622. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  623. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  624. package/build/components/use-display-block-controls/index.js +0 -39
  625. package/build/components/use-display-block-controls/index.js.map +0 -1
  626. package/build/components/use-display-block-controls/index.native.js +0 -39
  627. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  628. package/build/hooks/block-rename-ui.js +0 -167
  629. package/build/hooks/block-rename-ui.js.map +0 -1
  630. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  631. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  632. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  633. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  634. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  635. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  636. package/build-module/components/block-tools/back-compat.js +0 -35
  637. package/build-module/components/block-tools/back-compat.js.map +0 -1
  638. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  639. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  640. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  641. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  642. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  643. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  644. package/build-module/components/use-display-block-controls/index.js +0 -32
  645. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  646. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  647. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  648. package/build-module/hooks/block-rename-ui.js +0 -159
  649. package/build-module/hooks/block-rename-ui.js.map +0 -1
  650. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  651. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  652. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  653. package/src/components/block-parent-selector/style.scss +0 -11
  654. package/src/components/block-tools/back-compat.js +0 -35
  655. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  656. package/src/components/block-tools/selected-block-tools.js +0 -127
  657. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  658. package/src/components/preview-options/README.md +0 -94
  659. package/src/components/preview-options/style.scss +0 -64
  660. package/src/components/use-display-block-controls/index.js +0 -36
  661. package/src/components/use-display-block-controls/index.native.js +0 -37
  662. package/src/hooks/block-rename-ui.js +0 -228
  663. package/src/hooks/test/color.js +0 -112
  664. /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
@@ -8,7 +8,7 @@ import { TouchableWithoutFeedback, View } from 'react-native';
8
8
  */
9
9
  import { __, sprintf } from '@wordpress/i18n';
10
10
  import { useState } from '@wordpress/element';
11
- import { useDispatch, useSelect } from '@wordpress/data';
11
+ import { useSelect } from '@wordpress/data';
12
12
 
13
13
  /**
14
14
  * Internal dependencies
@@ -18,54 +18,71 @@ import UnsupportedBlockDetails from '../unsupported-block-details';
18
18
  import { store as blockEditorStore } from '../../store';
19
19
  import { MAX_NESTING_DEPTH } from './constants';
20
20
  import useUnsupportedBlockEditor from '../use-unsupported-block-editor';
21
+ import {
22
+ useConvertToGroupButtons,
23
+ useConvertToGroupButtonProps,
24
+ } from '../convert-to-group-buttons';
25
+
26
+ const EMPTY_ARRAY = [];
21
27
 
22
28
  const WarningMaxDepthExceeded = ( { clientId } ) => {
23
29
  const [ showDetails, setShowDetails ] = useState( false );
24
30
 
25
- const { isSelected, innerBlocks } = useSelect(
26
- ( select ) => {
27
- const { getBlock, isBlockSelected } = select( blockEditorStore );
28
- return {
29
- innerBlocks: getBlock( clientId )?.innerBlocks || [],
30
- isSelected: isBlockSelected( clientId ),
31
- };
32
- },
31
+ const isSelected = useSelect(
32
+ ( select ) => select( blockEditorStore ).isBlockSelected( clientId ),
33
33
  [ clientId ]
34
34
  );
35
- const { replaceBlocks } = useDispatch( blockEditorStore );
35
+
36
+ // We rely on the logic related to the Group/Ungroup buttons used in the block options to
37
+ // determine whether to use the Ungroup action.
38
+ const convertToGroupButtonProps = useConvertToGroupButtonProps( [
39
+ clientId,
40
+ ] );
41
+ const { isUngroupable } = convertToGroupButtonProps;
42
+ const convertToGroupButtons = useConvertToGroupButtons( {
43
+ ...convertToGroupButtonProps,
44
+ } );
45
+ const onUngroup = convertToGroupButtons.ungroup.onSelect;
36
46
 
37
47
  const {
38
48
  isUnsupportedBlockEditorSupported,
39
49
  canEnableUnsupportedBlockEditor,
40
50
  } = useUnsupportedBlockEditor( clientId );
41
51
 
42
- const onUngroup = () => {
43
- if ( ! innerBlocks.length ) {
44
- return;
45
- }
46
-
47
- replaceBlocks( clientId, innerBlocks );
48
- };
49
-
50
- let description;
51
- // When UBE can't be used, the description mentions using the web browser to edit the block.
52
+ /* translators: Warning related to having blocks deeply nested. %d: The deepest nesting level. */
53
+ const descriptionFormat = __(
54
+ 'Blocks nested deeper than %d levels may not render properly in the mobile editor.'
55
+ );
56
+ let description = sprintf( descriptionFormat, MAX_NESTING_DEPTH );
52
57
  if (
53
58
  ! isUnsupportedBlockEditorSupported &&
54
59
  ! canEnableUnsupportedBlockEditor
55
60
  ) {
56
- /* translators: Warning related to having blocks deeply nested. %d: The deepest nesting level. */
57
- const descriptionFormat = __(
58
- 'Blocks nested deeper than %d levels may not render properly in the mobile editor. For this reason, we recommend flattening the content by ungrouping the block or editing the block using your web browser.'
59
- );
60
- description = sprintf( descriptionFormat, MAX_NESTING_DEPTH );
61
+ // When UBE can't be used, the description mentions using the web browser to edit the block.
62
+ description +=
63
+ ' ' +
64
+ /* translators: Recommendation included in a warning related to having blocks deeply nested. */
65
+ __(
66
+ 'For this reason, we recommend editing the block using your web browser.'
67
+ );
61
68
  }
62
69
  // Otherwise, the description mentions using the web editor (i.e. UBE).
63
70
  else {
64
- /* translators: Warning related to having blocks deeply nested. %d: The deepest nesting level. */
65
- const descriptionFormat = __(
66
- 'Blocks nested deeper than %d levels may not render properly in the mobile editor. For this reason, we recommend flattening the content by ungrouping the block or editing the block using the web editor.'
67
- );
68
- description = sprintf( descriptionFormat, MAX_NESTING_DEPTH );
71
+ description +=
72
+ ' ' +
73
+ /* translators: Recommendation included in a warning related to having blocks deeply nested. */
74
+ __(
75
+ 'For this reason, we recommend editing the block using the web editor.'
76
+ );
77
+ }
78
+ // If the block can be flattened, we also suggest to ungroup the block.
79
+ if ( isUngroupable ) {
80
+ description +=
81
+ ' ' +
82
+ /* translators: Alternative option included in a warning related to having blocks deeply nested. */
83
+ __(
84
+ 'Alternatively, you can flatten the content by ungrouping the block.'
85
+ );
69
86
  }
70
87
 
71
88
  return (
@@ -88,9 +105,16 @@ const WarningMaxDepthExceeded = ( { clientId } ) => {
88
105
  onCloseSheet={ () => setShowDetails( false ) }
89
106
  title={ __( 'Deeply nested block' ) }
90
107
  description={ description }
91
- customActions={ [
92
- { label: __( 'Ungroup block' ), onPress: onUngroup },
93
- ] }
108
+ customActions={
109
+ isUngroupable
110
+ ? [
111
+ {
112
+ label: __( 'Ungroup block' ),
113
+ onPress: onUngroup,
114
+ },
115
+ ]
116
+ : EMPTY_ARRAY
117
+ }
94
118
  />
95
119
  </View>
96
120
  </TouchableWithoutFeedback>
@@ -18,6 +18,7 @@ import { searchItems } from '../search-items';
18
18
  import BlockPatternsPaging from '../../block-patterns-paging';
19
19
  import usePatternsPaging from '../hooks/use-patterns-paging';
20
20
  import {
21
+ PATTERN_TYPES,
21
22
  allPatternsCategory,
22
23
  myPatternsCategory,
23
24
  } from '../block-patterns-tab/utils';
@@ -70,7 +71,10 @@ function PatternList( { searchValue, selectedCategory, patternCategories } ) {
70
71
  if ( selectedCategory === allPatternsCategory.name ) {
71
72
  return true;
72
73
  }
73
- if ( selectedCategory === myPatternsCategory.name && pattern.id ) {
74
+ if (
75
+ selectedCategory === myPatternsCategory.name &&
76
+ pattern.type === PATTERN_TYPES.user
77
+ ) {
74
78
  return true;
75
79
  }
76
80
  if ( selectedCategory === 'uncategorized' ) {
@@ -22,7 +22,7 @@ import {
22
22
  * Internal dependencies
23
23
  */
24
24
  import usePatternsState from '../hooks/use-patterns-state';
25
- import BlockPatternList from '../../block-patterns-list';
25
+ import BlockPatternsList from '../../block-patterns-list';
26
26
  import usePatternsPaging from '../hooks/use-patterns-paging';
27
27
  import { PatternsFilter } from './patterns-filter';
28
28
  import { usePatternCategories } from './use-pattern-categories';
@@ -30,6 +30,7 @@ import {
30
30
  isPatternFiltered,
31
31
  allPatternsCategory,
32
32
  myPatternsCategory,
33
+ PATTERN_TYPES,
33
34
  } from './utils';
34
35
 
35
36
  const noop = () => {};
@@ -69,7 +70,10 @@ export function PatternCategoryPreviews( {
69
70
  if ( category.name === allPatternsCategory.name ) {
70
71
  return true;
71
72
  }
72
- if ( category.name === myPatternsCategory.name && pattern.id ) {
73
+ if (
74
+ category.name === myPatternsCategory.name &&
75
+ pattern.type === PATTERN_TYPES.user
76
+ ) {
73
77
  return true;
74
78
  }
75
79
  if ( category.name !== 'uncategorized' ) {
@@ -155,7 +159,7 @@ export function PatternCategoryPreviews( {
155
159
  </VStack>
156
160
 
157
161
  { currentCategoryPatterns.length > 0 && (
158
- <BlockPatternList
162
+ <BlockPatternsList
159
163
  ref={ scrollContainerRef }
160
164
  shownPatterns={ pagingProps.categoryPatternsAsyncList }
161
165
  blockPatterns={ pagingProps.categoryPatterns }
@@ -14,6 +14,7 @@ import {
14
14
  isPatternFiltered,
15
15
  allPatternsCategory,
16
16
  myPatternsCategory,
17
+ PATTERN_TYPES,
17
18
  } from './utils';
18
19
 
19
20
  export function usePatternCategories( rootClientId, sourceFilter = 'all' ) {
@@ -69,7 +70,11 @@ export function usePatternCategories( rootClientId, sourceFilter = 'all' ) {
69
70
  label: _x( 'Uncategorized' ),
70
71
  } );
71
72
  }
72
- if ( filteredPatterns.some( ( pattern ) => pattern.id ) ) {
73
+ if (
74
+ filteredPatterns.some(
75
+ ( pattern ) => pattern.type === PATTERN_TYPES.user
76
+ )
77
+ ) {
73
78
  categories.unshift( myPatternsCategory );
74
79
  }
75
80
  if ( filteredPatterns.length > 0 ) {
@@ -21,7 +21,7 @@ export const SYNC_TYPES = {
21
21
 
22
22
  export const allPatternsCategory = {
23
23
  name: 'allPatterns',
24
- label: __( 'All patterns' ),
24
+ label: __( 'All' ),
25
25
  };
26
26
 
27
27
  export const myPatternsCategory = {
@@ -53,9 +53,11 @@ export function isPatternFiltered( pattern, sourceFilter, syncFilter ) {
53
53
  return true;
54
54
  }
55
55
 
56
- // If user source selected, filter out theme patterns. Any pattern without
57
- // an id wasn't created by a user.
58
- if ( sourceFilter === PATTERN_TYPES.user && ! pattern.id ) {
56
+ // If user source selected, filter out theme patterns.
57
+ if (
58
+ sourceFilter === PATTERN_TYPES.user &&
59
+ pattern.type !== PATTERN_TYPES.user
60
+ ) {
59
61
  return true;
60
62
  }
61
63
 
@@ -11,6 +11,7 @@ import { store as noticesStore } from '@wordpress/notices';
11
11
  * Internal dependencies
12
12
  */
13
13
  import { store as blockEditorStore } from '../../../store';
14
+ import { PATTERN_TYPES } from '../block-patterns-tab/utils';
14
15
 
15
16
  /**
16
17
  * Retrieves the block patterns inserter state.
@@ -57,7 +58,8 @@ const usePatternsState = ( onInsert, rootClientId ) => {
57
58
  const onClickPattern = useCallback(
58
59
  ( pattern, blocks ) => {
59
60
  const patternBlocks =
60
- pattern.id && pattern.syncStatus !== 'unsynced'
61
+ pattern.type === PATTERN_TYPES.user &&
62
+ pattern.syncStatus !== 'unsynced'
61
63
  ? [ createBlock( 'core/block', { ref: pattern.id } ) ]
62
64
  : blocks;
63
65
  onInsert(
@@ -5,12 +5,12 @@ import { useRef, useEffect } from '@wordpress/element';
5
5
  import { Spinner, SearchControl } from '@wordpress/components';
6
6
  import { focus } from '@wordpress/dom';
7
7
  import { __ } from '@wordpress/i18n';
8
+ import { useDebouncedInput } from '@wordpress/compose';
8
9
 
9
10
  /**
10
11
  * Internal dependencies
11
12
  */
12
13
  import MediaList from './media-list';
13
- import useDebouncedInput from '../hooks/use-debounced-input';
14
14
  import { useMediaResults } from './hooks';
15
15
  import InserterNoResults from '../no-results';
16
16
 
@@ -14,13 +14,15 @@ import {
14
14
  useImperativeHandle,
15
15
  useRef,
16
16
  } from '@wordpress/element';
17
- import { VisuallyHidden, SearchControl } from '@wordpress/components';
17
+ import { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';
18
18
  import { __ } from '@wordpress/i18n';
19
19
  import { useSelect } from '@wordpress/data';
20
+ import { useDebouncedInput } from '@wordpress/compose';
20
21
 
21
22
  /**
22
23
  * Internal dependencies
23
24
  */
25
+ import { unlock } from '../../lock-unlock';
24
26
  import Tips from './tips';
25
27
  import InserterPreviewPanel from './preview-panel';
26
28
  import BlockTypesTab from './block-types-tab';
@@ -28,7 +30,6 @@ import BlockPatternsTab from './block-patterns-tab';
28
30
  import { PatternCategoryPreviewPanel } from './block-patterns-tab/pattern-category-preview-panel';
29
31
  import { MediaTab, MediaCategoryDialog, useMediaCategories } from './media-tab';
30
32
  import InserterSearchResults from './search-results';
31
- import useDebouncedInput from './hooks/use-debounced-input';
32
33
  import useInsertionPoint from './hooks/use-insertion-point';
33
34
  import InserterTabs from './tabs';
34
35
  import { store as blockEditorStore } from '../../store';
@@ -68,12 +69,11 @@ function InserterMenu(
68
69
  } );
69
70
  const { showPatterns, inserterItems } = useSelect(
70
71
  ( select ) => {
71
- const { __experimentalGetAllowedPatterns, getInserterItems } =
72
- select( blockEditorStore );
72
+ const { hasAllowedPatterns, getInserterItems } = unlock(
73
+ select( blockEditorStore )
74
+ );
73
75
  return {
74
- showPatterns: !! __experimentalGetAllowedPatterns(
75
- destinationRootClientId
76
- ).length,
76
+ showPatterns: hasAllowedPatterns( destinationRootClientId ),
77
77
  inserterItems: getInserterItems( destinationRootClientId ),
78
78
  };
79
79
  },
@@ -293,7 +293,15 @@ function InserterMenu(
293
293
  />
294
294
  ) }
295
295
  { showInserterHelpPanel && hoveredItem && (
296
- <InserterPreviewPanel item={ hoveredItem } />
296
+ <Popover
297
+ className="block-editor-inserter__preview-container__popover"
298
+ placement="right-start"
299
+ offset={ 16 }
300
+ focusOnMount={ false }
301
+ animate={ false }
302
+ >
303
+ <InserterPreviewPanel item={ hoveredItem } />
304
+ </Popover>
297
305
  ) }
298
306
  { showPatternPanel && (
299
307
  <PatternCategoryPreviewPanel
@@ -40,13 +40,13 @@ function InserterPreviewPanel( { item } ) {
40
40
  blocks={ blocks }
41
41
  viewportWidth={ example?.viewportWidth ?? 500 }
42
42
  additionalStyles={ [
43
- { css: 'body { padding: 16px; }' },
43
+ { css: 'body { padding: 24px; }' },
44
44
  ] }
45
45
  />
46
46
  </div>
47
47
  ) : (
48
48
  <div className="block-editor-inserter__preview-content-missing">
49
- { __( 'No Preview Available.' ) }
49
+ { __( 'No preview available.' ) }
50
50
  </div>
51
51
  ) }
52
52
  </div>
@@ -214,15 +214,14 @@ $block-inserter-tabs-height: 44px;
214
214
  }
215
215
  }
216
216
 
217
+ .block-editor-inserter__preview-container__popover {
218
+ top: $grid-unit-20 !important;
219
+ }
220
+
217
221
  .block-editor-inserter__preview-container {
218
222
  display: none;
219
- width: 300px;
220
- background: $white;
221
- border-radius: $radius-block-ui;
222
- border: $border-width solid $gray-300;
223
- position: absolute;
224
- top: $grid-unit-20;
225
- left: calc(100% + #{$grid-unit-20});
223
+ width: $sidebar-width;
224
+ padding: $grid-unit-20;
226
225
  max-height: calc(100% - #{$grid-unit-40});
227
226
  overflow-y: hidden;
228
227
 
@@ -230,12 +229,14 @@ $block-inserter-tabs-height: 44px;
230
229
  display: block;
231
230
  }
232
231
 
233
- .block-editor-block-card {
234
- padding: $grid-unit-20;
232
+ .block-editor-block-preview__container {
233
+ height: 100%;
235
234
  }
236
235
 
237
- .block-editor-block-card__title {
238
- font-size: $default-font-size;
236
+ .block-editor-block-card {
237
+ padding-left: 0;
238
+ padding-right: 0;
239
+ padding-bottom: $grid-unit-05;
239
240
  }
240
241
  }
241
242
 
@@ -271,15 +272,11 @@ $block-inserter-tabs-height: 44px;
271
272
  }
272
273
  }
273
274
 
274
- .block-editor-inserter__block-patterns-tabs-container,
275
- .block-editor-block-patterns-explorer__sidebar {
275
+ .block-editor-inserter__block-patterns-tabs-container {
276
276
  height: 100%;
277
277
  nav {
278
278
  height: 100%;
279
279
  }
280
- .block-editor-block-patterns__source-filter select.components-select-control__input {
281
- height: 40px;
282
- }
283
280
  }
284
281
 
285
282
  .block-editor-inserter__block-patterns-tabs {
@@ -366,6 +363,7 @@ $block-inserter-tabs-height: 44px;
366
363
  min-height: $grid-unit-60 * 3;
367
364
  color: $gray-700;
368
365
  background: $gray-100;
366
+ border-radius: $radius-block-ui;
369
367
  }
370
368
 
371
369
  .block-editor-inserter__tips {
@@ -447,7 +445,7 @@ $block-inserter-tabs-height: 44px;
447
445
  .block-editor-block-patterns-explorer {
448
446
  &__sidebar {
449
447
  position: absolute;
450
- top: $header-height + $grid-unit-20;
448
+ top: $header-height + $grid-unit-15;
451
449
  left: 0;
452
450
  bottom: 0;
453
451
  width: $sidebar-width;
@@ -0,0 +1,62 @@
1
+ # InserterButton
2
+
3
+ InserterButton is a type of button component.
4
+
5
+ ## Usage
6
+
7
+ ```jsx
8
+ function render() {
9
+ return (
10
+ <View>
11
+ <Text>Some rendered content here</Text>
12
+ <InserterButton
13
+ item={ { title: 'Short Text', icon: <SVG></SVG> } }
14
+ onSelect={ function ( item ) {
15
+ console.log( 'selected' );
16
+ } }
17
+ />
18
+ </View>
19
+ );
20
+ }
21
+ ```
22
+
23
+ _Note:_
24
+
25
+ ## Props
26
+
27
+ ### `maxWidth`
28
+
29
+ - **Type:** `String`
30
+ - **Default:** `undefined`
31
+
32
+ The max-width of the button.
33
+
34
+ ### `itemWidth`
35
+
36
+ - **Type:** `String`
37
+ - **Default:** `undefined`
38
+
39
+ The button width.
40
+
41
+ ### `onSelect`
42
+
43
+ - **Type:** `Function`
44
+ - **Required** `true`
45
+
46
+ The function that is called once the InserterButton has been selected.
47
+
48
+ ### `item`
49
+
50
+ - **Type:** `Object`
51
+ - **Required** `true`
52
+
53
+ The object that gets selected.
54
+
55
+ ## Examples
56
+
57
+ <InserterButton
58
+ item={ item }
59
+ itemWidth={ itemWidth }
60
+ maxWidth={ maxWidth }
61
+ onSelect={ onSelect }
62
+ />
@@ -0,0 +1,116 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { View, TouchableHighlight, Text } from 'react-native';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { Component } from '@wordpress/element';
10
+ import { Icon } from '@wordpress/components';
11
+ import { withPreferredColorScheme } from '@wordpress/compose';
12
+ import { __, sprintf } from '@wordpress/i18n';
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+ import { BlockIcon } from '../block-icon';
18
+ import styles from './style.scss';
19
+ import sparkles from './sparkles';
20
+ class MenuItem extends Component {
21
+ constructor() {
22
+ super( ...arguments );
23
+
24
+ this.onPress = this.onPress.bind( this );
25
+ }
26
+
27
+ onPress() {
28
+ const { onSelect, item } = this.props;
29
+ onSelect( item );
30
+ }
31
+
32
+ render() {
33
+ const { getStylesFromColorScheme, item, itemWidth, maxWidth } =
34
+ this.props;
35
+
36
+ const modalIconWrapperStyle = getStylesFromColorScheme(
37
+ styles.modalIconWrapper,
38
+ styles.modalIconWrapperDark
39
+ );
40
+ const modalIconStyle = styles.modalIcon;
41
+ const modalItemLabelStyle = getStylesFromColorScheme(
42
+ styles.modalItemLabel,
43
+ styles.modalItemLabelDark
44
+ );
45
+
46
+ const clipboardBlockStyles = getStylesFromColorScheme(
47
+ styles.clipboardBlock,
48
+ styles.clipboardBlockDark
49
+ );
50
+
51
+ const isClipboardBlock = item.id === 'clipboard';
52
+ const blockTitle = isClipboardBlock ? __( 'Copied block' ) : item.title;
53
+ const blockIsNew = item.isNew === true;
54
+ const accessibilityLabelFormat = blockIsNew
55
+ ? // translators: Newly available block name. %s: The localized block name
56
+ __( '%s block, newly available' )
57
+ : // translators: Block name. %s: The localized block name
58
+ __( '%s block' );
59
+ const accessibilityLabel = sprintf(
60
+ accessibilityLabelFormat,
61
+ item.title
62
+ );
63
+
64
+ return (
65
+ <TouchableHighlight
66
+ style={ [
67
+ styles.touchableArea,
68
+ item.isDisabled ? styles.disabled : null,
69
+ ] }
70
+ underlayColor="transparent"
71
+ activeOpacity={ 0.5 }
72
+ accessibilityRole="button"
73
+ accessibilityLabel={ accessibilityLabel }
74
+ onPress={ this.onPress }
75
+ disabled={ item.isDisabled }
76
+ >
77
+ <View style={ [ styles.modalItem, { width: maxWidth } ] }>
78
+ <View
79
+ style={ [
80
+ modalIconWrapperStyle,
81
+ itemWidth && {
82
+ width: itemWidth,
83
+ },
84
+ isClipboardBlock && clipboardBlockStyles,
85
+ ] }
86
+ >
87
+ { blockIsNew && (
88
+ <Icon
89
+ icon={ sparkles }
90
+ style={ styles.newIndicator }
91
+ />
92
+ ) }
93
+ <View style={ modalIconStyle }>
94
+ <BlockIcon
95
+ icon={ item.icon }
96
+ size={ modalIconStyle.width }
97
+ />
98
+ </View>
99
+ </View>
100
+ <Text numberOfLines={ 3 } style={ modalItemLabelStyle }>
101
+ { blockTitle }
102
+ </Text>
103
+ </View>
104
+ </TouchableHighlight>
105
+ );
106
+ }
107
+ }
108
+
109
+ const InserterButton = withPreferredColorScheme( MenuItem );
110
+
111
+ InserterButton.Styles = {
112
+ modalItem: styles.modalItem,
113
+ modalIconWrapper: styles.modalIconWrapper,
114
+ };
115
+
116
+ export default InserterButton;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { SVG, Path } from '@wordpress/components';
5
+
6
+ const sparkles = (
7
+ <SVG viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
8
+ <Path
9
+ d="M10 11c-1.588-.479-4-.91-4-.91s2-.241 4-.454c1.8-.191 3.365-.502 4-3.181C14.635 3.775 15 1 15 1s.365 2.775 1 5.455c.635 2.679 2 2.969 4 3.181 2 .213 4 .455 4 .455s-2.412.43-4 .909c-1.588.479-3 1-4 4.546-.746 2.643-.893 4.948-1 5.454-.107-.506-.167-2.5-1-5.454C13 12 11.588 11.479 10 11zM7.333 3.5C6.803 3.333 6 3.182 6 3.182s.667-.085 1.333-.16c.6-.066 1.122-.175 1.334-1.113C8.878.971 9 0 9 0s.122.971.333 1.91c.212.937.667 1.038 1.334 1.113.666.074 1.333.159 1.333.159s-.804.15-1.333.318c-.53.167-1 .35-1.334 1.59C9.085 6.017 9.036 6.824 9 7c-.036-.177-.056-.875-.333-1.91-.334-1.24-.804-1.423-1.334-1.59zM2.444 18C1.474 17.713 0 17.454 0 17.454s1.222-.145 2.444-.272c1.1-.115 2.057-.302 2.445-1.91C5.277 13.666 5.5 12 5.5 12s.223 1.665.611 3.273c.388 1.607 1.222 1.781 2.445 1.909 1.222.127 2.444.273 2.444.273s-1.474.258-2.444.545c-.971.287-1.834.6-2.445 2.727-.456 1.586-.546 2.97-.611 3.273-.065-.304-.102-1.5-.611-3.273C4.278 18.6 3.415 18.287 2.444 18z"
10
+ fill="#F0C930"
11
+ />
12
+ </SVG>
13
+ );
14
+
15
+ export default sparkles;
@@ -0,0 +1,72 @@
1
+ /** @format */
2
+ .touchableArea {
3
+ border-radius: 8px 8px 8px 8px;
4
+ }
5
+
6
+ .disabled {
7
+ opacity: 0.3;
8
+ }
9
+
10
+ .modalIconWrapper {
11
+ width: 104px;
12
+ height: 64px;
13
+ background-color: $gray-light; //#f3f6f8
14
+ border-radius: 8px 8px 8px 8px;
15
+ justify-content: center;
16
+ align-items: center;
17
+ }
18
+
19
+ .modalIconWrapperDark {
20
+ background-color: rgba($white, 0.07);
21
+ }
22
+
23
+ .newIndicator {
24
+ height: 22;
25
+ left: 6;
26
+ position: absolute;
27
+ top: 6;
28
+ width: 22;
29
+ }
30
+
31
+ .modalIcon {
32
+ width: 32px;
33
+ height: 32px;
34
+ justify-content: center;
35
+ align-items: center;
36
+ }
37
+
38
+ .modalItemLabel {
39
+ background-color: transparent;
40
+ padding-left: 2;
41
+ padding-right: 2;
42
+ padding-top: 4;
43
+ padding-bottom: 0;
44
+ justify-content: center;
45
+ text-align: center;
46
+ font-size: 12;
47
+ color: $gray-dark;
48
+ }
49
+
50
+ .modalItemLabelDark {
51
+ color: $white;
52
+ }
53
+
54
+ .clipboardBlock {
55
+ background-color: transparent;
56
+ border-width: 1px;
57
+ border-color: $light-gray-400;
58
+ }
59
+
60
+ .clipboardBlockDark {
61
+ border-color: $gray-70;
62
+ }
63
+
64
+ .modalItem {
65
+ flex-direction: column;
66
+ justify-content: flex-start;
67
+ align-items: center;
68
+ padding-left: $grid-unit-20 * 0.5;
69
+ padding-right: $grid-unit-20 * 0.5;
70
+ padding-top: 0;
71
+ padding-bottom: 0;
72
+ }