@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
@@ -13,14 +13,11 @@ import {
13
13
  createContext,
14
14
  } from '@wordpress/element';
15
15
  import { useDispatch, useSelect } from '@wordpress/data';
16
- import { children as childrenSource } from '@wordpress/blocks';
17
- import { useInstanceId, useMergeRefs } from '@wordpress/compose';
16
+ import { useMergeRefs } from '@wordpress/compose';
18
17
  import {
19
18
  __unstableUseRichText as useRichText,
20
- __unstableCreateElement,
21
19
  removeFormat,
22
20
  } from '@wordpress/rich-text';
23
- import deprecated from '@wordpress/deprecated';
24
21
  import { Popover } from '@wordpress/components';
25
22
 
26
23
  /**
@@ -46,7 +43,7 @@ import { useFirefoxCompat } from './use-firefox-compat';
46
43
  import FormatEdit from './format-edit';
47
44
  import { getAllowedFormats } from './utils';
48
45
  import { Content } from './content';
49
- import RichTextMultiline from './multiline';
46
+ import { withDeprecations } from './with-deprecations';
50
47
 
51
48
  export const keyboardShortcutContext = createContext();
52
49
  export const inputEventContext = createContext();
@@ -387,47 +384,9 @@ export function RichTextWrapper(
387
384
  );
388
385
  }
389
386
 
390
- const ForwardedRichTextWrapper = forwardRef( RichTextWrapper );
391
-
392
- function RichTextSwitcher( props, ref ) {
393
- let value = props.value;
394
- let onChange = props.onChange;
395
-
396
- // Handle deprecated format.
397
- if ( Array.isArray( value ) ) {
398
- deprecated( 'wp.blockEditor.RichText value prop as children type', {
399
- since: '6.1',
400
- version: '6.3',
401
- alternative: 'value prop as string',
402
- link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/',
403
- } );
404
-
405
- value = childrenSource.toHTML( props.value );
406
- onChange = ( newValue ) =>
407
- props.onChange(
408
- childrenSource.fromDOM(
409
- __unstableCreateElement( document, newValue ).childNodes
410
- )
411
- );
412
- }
413
-
414
- const Component = props.multiline
415
- ? RichTextMultiline
416
- : ForwardedRichTextWrapper;
417
- const instanceId = useInstanceId( RichTextSwitcher );
418
-
419
- return (
420
- <Component
421
- { ...props }
422
- identifier={ props.identifier || instanceId }
423
- value={ value }
424
- onChange={ onChange }
425
- ref={ ref }
426
- />
427
- );
428
- }
429
-
430
- const ForwardedRichTextContainer = forwardRef( RichTextSwitcher );
387
+ const ForwardedRichTextContainer = withDeprecations(
388
+ forwardRef( RichTextWrapper )
389
+ );
431
390
 
432
391
  ForwardedRichTextContainer.Content = Content;
433
392
  ForwardedRichTextContainer.isEmpty = ( value ) => {
@@ -39,17 +39,17 @@ import FormatToolbarContainer from './format-toolbar-container';
39
39
  import { store as blockEditorStore } from '../../store';
40
40
  import {
41
41
  addActiveFormats,
42
- getMultilineTag,
43
42
  getAllowedFormats,
44
43
  createLinkInParagraph,
45
44
  } from './utils';
46
45
  import EmbedHandlerPicker from './embed-handler-picker';
47
46
  import { Content } from './content';
48
47
  import RichText from './native';
48
+ import { withDeprecations } from './with-deprecations';
49
49
 
50
50
  const classes = 'block-editor-rich-text__editable';
51
51
 
52
- function RichTextWrapper(
52
+ export function RichTextWrapper(
53
53
  {
54
54
  children,
55
55
  tagName,
@@ -58,7 +58,6 @@ function RichTextWrapper(
58
58
  value: originalValue,
59
59
  onChange: originalOnChange,
60
60
  isSelected: originalIsSelected,
61
- multiline,
62
61
  inlineToolbar,
63
62
  wrapperClassName,
64
63
  autocompleters,
@@ -80,7 +79,6 @@ function RichTextWrapper(
80
79
  disableLineBreaks,
81
80
  unstableOnFocus,
82
81
  __unstableAllowPrefixTransformations,
83
- __unstableMultilineRootTag,
84
82
  // Native props.
85
83
  __unstableMobileNoFocusOnMount,
86
84
  deleteEnter,
@@ -179,7 +177,6 @@ function RichTextWrapper(
179
177
  selectionChange,
180
178
  __unstableMarkAutomaticChange,
181
179
  } = useDispatch( blockEditorStore );
182
- const multilineTag = getMultilineTag( multiline );
183
180
  const adjustedAllowedFormats = getAllowedFormats( {
184
181
  allowedFormats,
185
182
  disableFormats,
@@ -223,7 +220,7 @@ function RichTextWrapper(
223
220
  // an intentional user interaction distinguishing between Backspace and
224
221
  // Delete to remove the empty field, but also to avoid merge & remove
225
222
  // causing destruction of two fields (merge, then removed merged).
226
- if ( onRemove && isEmpty( value ) && isReverse ) {
223
+ else if ( onRemove && isEmpty( value ) && isReverse ) {
227
224
  onRemove( ! isReverse );
228
225
  }
229
226
  },
@@ -261,10 +258,7 @@ function RichTextWrapper(
261
258
  if ( ! hasPastedBlocks || ! isEmpty( before ) ) {
262
259
  blocks.push(
263
260
  onSplit(
264
- toHTMLString( {
265
- value: before,
266
- multilineTag,
267
- } ),
261
+ toHTMLString( { value: before } ),
268
262
  ! isAfterOriginal
269
263
  )
270
264
  );
@@ -288,13 +282,7 @@ function RichTextWrapper(
288
282
  : ! onSplitMiddle || ! isEmpty( after )
289
283
  ) {
290
284
  blocks.push(
291
- onSplit(
292
- toHTMLString( {
293
- value: after,
294
- multilineTag,
295
- } ),
296
- isAfterOriginal
297
- )
285
+ onSplit( toHTMLString( { value: after } ), isAfterOriginal )
298
286
  );
299
287
  }
300
288
 
@@ -308,7 +296,7 @@ function RichTextWrapper(
308
296
 
309
297
  onReplace( blocks, indexToSelect, initialPosition );
310
298
  },
311
- [ onReplace, onSplit, multilineTag, onSplitMiddle ]
299
+ [ onReplace, onSplit, onSplitMiddle ]
312
300
  );
313
301
 
314
302
  const onEnter = useCallback(
@@ -370,7 +358,6 @@ function RichTextWrapper(
370
358
  onReplace,
371
359
  onSplit,
372
360
  __unstableMarkAutomaticChange,
373
- multiline,
374
361
  splitValue,
375
362
  onSplitAtEnd,
376
363
  ]
@@ -392,9 +379,6 @@ function RichTextWrapper(
392
379
  if ( isInternal ) {
393
380
  const pastedValue = create( {
394
381
  html,
395
- multilineTag,
396
- multilineWrapperTags:
397
- multilineTag === 'li' ? [ 'ul', 'ol' ] : undefined,
398
382
  preserveWhiteSpace,
399
383
  } );
400
384
  addActiveFormats( pastedValue, activeFormats );
@@ -496,7 +480,6 @@ function RichTextWrapper(
496
480
  onSplit,
497
481
  splitValue,
498
482
  __unstableEmbedURLOnPaste,
499
- multilineTag,
500
483
  preserveWhiteSpace,
501
484
  pastePlainText,
502
485
  ]
@@ -568,7 +551,6 @@ function RichTextWrapper(
568
551
  onPaste={ onPaste }
569
552
  __unstableIsSelected={ isSelected }
570
553
  __unstableInputRule={ inputRule }
571
- __unstableMultilineTag={ multilineTag }
572
554
  __unstableOnEnterFormattedText={ enterFormattedText }
573
555
  __unstableOnExitFormattedText={ exitFormattedText }
574
556
  __unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }
@@ -582,7 +564,6 @@ function RichTextWrapper(
582
564
  __unstableAllowPrefixTransformations={
583
565
  __unstableAllowPrefixTransformations
584
566
  }
585
- __unstableMultilineRootTag={ __unstableMultilineRootTag }
586
567
  // Native props.
587
568
  blockIsSelected={
588
569
  originalIsSelected !== undefined
@@ -675,7 +656,9 @@ function RichTextWrapper(
675
656
  );
676
657
  }
677
658
 
678
- const ForwardedRichTextContainer = forwardRef( RichTextWrapper );
659
+ const ForwardedRichTextContainer = withDeprecations(
660
+ forwardRef( RichTextWrapper )
661
+ );
679
662
 
680
663
  ForwardedRichTextContainer.Content = Content;
681
664
 
@@ -5,50 +5,43 @@ import { getColorObjectByAttributeValues } from '../../../components/colors';
5
5
 
6
6
  const FORMAT_TYPE = 'core/text-color';
7
7
  const REGEX_TO_MATCH = /^has-(.*)-color$/;
8
- const TAGS_TO_SEARCH = /\<mark/;
9
8
 
10
- export function getFormatColors( value, formats, colors ) {
11
- if ( value?.search( TAGS_TO_SEARCH ) !== -1 ) {
12
- const newFormats = formats.slice();
9
+ export function getFormatColors( formats, colors ) {
10
+ const newFormats = formats.slice();
13
11
 
14
- newFormats.forEach( ( format ) => {
15
- format.forEach( ( currentFormat ) => {
16
- if ( currentFormat?.type === FORMAT_TYPE ) {
17
- const className = currentFormat?.attributes?.class;
18
- currentFormat.attributes.style =
19
- currentFormat.attributes.style.replace( / /g, '' );
12
+ // We are looping through a sparse array where empty indices will be
13
+ // skipped.
14
+ newFormats.forEach( ( format ) => {
15
+ format.forEach( ( currentFormat ) => {
16
+ if ( currentFormat?.type === FORMAT_TYPE ) {
17
+ const className = currentFormat?.attributes?.class;
20
18
 
21
- className?.split( ' ' ).forEach( ( currentClass ) => {
22
- const match = currentClass.match( REGEX_TO_MATCH );
23
- if ( match ) {
24
- const [ , colorSlug ] =
25
- currentClass.match( REGEX_TO_MATCH );
26
- const colorObject = getColorObjectByAttributeValues(
27
- colors,
28
- colorSlug
29
- );
30
- const currentStyles =
31
- currentFormat?.attributes?.style;
32
- if (
33
- colorObject &&
34
- ( ! currentStyles ||
35
- currentStyles?.indexOf(
36
- colorObject.color
37
- ) === -1 )
38
- ) {
39
- currentFormat.attributes.style = [
40
- `color: ${ colorObject.color }`,
41
- currentStyles,
42
- ].join( ';' );
43
- }
19
+ className?.split( ' ' ).forEach( ( currentClass ) => {
20
+ const match = currentClass.match( REGEX_TO_MATCH );
21
+ if ( match ) {
22
+ const [ , colorSlug ] =
23
+ currentClass.match( REGEX_TO_MATCH );
24
+ const colorObject = getColorObjectByAttributeValues(
25
+ colors,
26
+ colorSlug
27
+ );
28
+ const currentStyles = currentFormat?.attributes?.style;
29
+ if (
30
+ colorObject &&
31
+ ( ! currentStyles ||
32
+ currentStyles?.indexOf( colorObject.color ) ===
33
+ -1 )
34
+ ) {
35
+ currentFormat.attributes.style = [
36
+ `color: ${ colorObject.color }`,
37
+ currentStyles,
38
+ ].join( ';' );
44
39
  }
45
- } );
46
- }
47
- } );
40
+ }
41
+ } );
42
+ }
48
43
  } );
44
+ } );
49
45
 
50
- return newFormats;
51
- }
52
-
53
- return formats;
46
+ return newFormats;
54
47
  }
@@ -105,27 +105,11 @@ const DEFAULT_FONT_SIZE = 16;
105
105
  const MIN_LINE_HEIGHT = 1;
106
106
 
107
107
  export class RichText extends Component {
108
- constructor( {
109
- value,
110
- selectionStart,
111
- selectionEnd,
112
- __unstableMultilineTag: multiline,
113
- } ) {
108
+ constructor( { value, selectionStart, selectionEnd } ) {
114
109
  super( ...arguments );
115
110
 
116
- this.isMultiline = false;
117
- if ( multiline === true || multiline === 'p' || multiline === 'li' ) {
118
- this.multilineTag = multiline === true ? 'p' : multiline;
119
- this.isMultiline = true;
120
- }
121
-
122
- if ( this.multilineTag === 'li' ) {
123
- this.multilineWrapperTags = [ 'ul', 'ol' ];
124
- }
125
-
126
111
  this.isIOS = Platform.OS === 'ios';
127
112
  this.createRecord = this.createRecord.bind( this );
128
- this.restoreParagraphTags = this.restoreParagraphTags.bind( this );
129
113
  this.onChangeFromAztec = this.onChangeFromAztec.bind( this );
130
114
  this.onKeyDown = this.onKeyDown.bind( this );
131
115
  this.handleEnter = this.handleEnter.bind( this );
@@ -196,7 +180,7 @@ export class RichText extends Component {
196
180
 
197
181
  const { formats, replacements, text } = currentValue;
198
182
  const { activeFormats } = this.state;
199
- const newFormats = getFormatColors( value, formats, colorPalette );
183
+ const newFormats = getFormatColors( formats, colorPalette );
200
184
 
201
185
  return {
202
186
  formats: newFormats,
@@ -223,8 +207,6 @@ export class RichText extends Component {
223
207
  ...create( {
224
208
  html: this.value,
225
209
  range: null,
226
- multilineTag: this.multilineTag,
227
- multilineWrapperTags: this.multilineWrapperTags,
228
210
  preserveWhiteSpace,
229
211
  } ),
230
212
  };
@@ -235,12 +217,7 @@ export class RichText extends Component {
235
217
 
236
218
  valueToFormat( value ) {
237
219
  // Remove the outer root tags.
238
- return this.removeRootTagsProducedByAztec(
239
- toHTMLString( {
240
- value,
241
- multilineTag: this.multilineTag,
242
- } )
243
- );
220
+ return this.removeRootTagsProducedByAztec( toHTMLString( { value } ) );
244
221
  }
245
222
 
246
223
  getActiveFormatNames( record ) {
@@ -357,31 +334,17 @@ export class RichText extends Component {
357
334
  const contentWithoutRootTag = this.removeRootTagsProducedByAztec(
358
335
  unescapeSpaces( event.nativeEvent.text )
359
336
  );
360
- let formattedContent = contentWithoutRootTag;
361
- if ( ! this.isIOS ) {
362
- formattedContent = this.restoreParagraphTags(
363
- contentWithoutRootTag,
364
- this.multilineTag
365
- );
366
- }
367
337
 
368
338
  this.debounceCreateUndoLevel();
369
- const refresh = this.value !== formattedContent;
370
- this.value = formattedContent;
339
+ const refresh = this.value !== contentWithoutRootTag;
340
+ this.value = contentWithoutRootTag;
371
341
 
372
342
  // We don't want to refresh if our goal is just to create a record.
373
343
  if ( refresh ) {
374
- this.props.onChange( formattedContent );
344
+ this.props.onChange( contentWithoutRootTag );
375
345
  }
376
346
  }
377
347
 
378
- restoreParagraphTags( value, tag ) {
379
- if ( tag === 'p' && ( ! value || ! value.startsWith( '<p>' ) ) ) {
380
- return '<p>' + value + '</p>';
381
- }
382
- return value;
383
- }
384
-
385
348
  /*
386
349
  * Handles any case where the content of the AztecRN instance has changed in size
387
350
  */
@@ -650,6 +613,40 @@ export class RichText extends Component {
650
613
  return shouldDrop;
651
614
  }
652
615
 
616
+ /**
617
+ * Determines whether the text input should receive focus after an update.
618
+ * For cases where a RichText with a value is merged with an empty one.
619
+ *
620
+ * @param {Object} prevProps - The previous props of the component.
621
+ * @return {boolean} True if the text input should receive focus, false otherwise.
622
+ */
623
+ shouldFocusTextInputAfterMerge( prevProps ) {
624
+ const {
625
+ __unstableIsSelected: isSelected,
626
+ blockIsSelected,
627
+ selectionStart,
628
+ selectionEnd,
629
+ __unstableMobileNoFocusOnMount,
630
+ } = this.props;
631
+
632
+ const {
633
+ __unstableIsSelected: prevIsSelected,
634
+ blockIsSelected: prevBlockIsSelected,
635
+ } = prevProps;
636
+
637
+ const noSelectionValues =
638
+ selectionStart === undefined && selectionEnd === undefined;
639
+ const textInputWasNotFocused = ! prevIsSelected && ! isSelected;
640
+
641
+ return (
642
+ ! __unstableMobileNoFocusOnMount &&
643
+ noSelectionValues &&
644
+ textInputWasNotFocused &&
645
+ ! prevBlockIsSelected &&
646
+ blockIsSelected
647
+ );
648
+ }
649
+
653
650
  onSelectionChangeFromAztec( start, end, text, event ) {
654
651
  if ( this.shouldDropEventFromAztec( event, 'onSelectionChange' ) ) {
655
652
  return;
@@ -705,8 +702,6 @@ export class RichText extends Component {
705
702
  if ( Array.isArray( value ) ) {
706
703
  return create( {
707
704
  html: childrenBlock.toHTML( value ),
708
- multilineTag: this.multilineTag,
709
- multilineWrapperTags: this.multilineWrapperTags,
710
705
  preserveWhiteSpace,
711
706
  } );
712
707
  }
@@ -714,8 +709,6 @@ export class RichText extends Component {
714
709
  if ( this.props.format === 'string' ) {
715
710
  return create( {
716
711
  html: value,
717
- multilineTag: this.multilineTag,
718
- multilineWrapperTags: this.multilineWrapperTags,
719
712
  preserveWhiteSpace,
720
713
  } );
721
714
  }
@@ -843,9 +836,8 @@ export class RichText extends Component {
843
836
  if ( this.props.value !== this.value ) {
844
837
  this.value = this.props.value;
845
838
  }
846
- const { __unstableIsSelected: isSelected } = this.props;
847
-
848
839
  const { __unstableIsSelected: prevIsSelected } = prevProps;
840
+ const { __unstableIsSelected: isSelected } = this.props;
849
841
 
850
842
  if ( isSelected && ! prevIsSelected ) {
851
843
  this._editor.focus();
@@ -855,6 +847,16 @@ export class RichText extends Component {
855
847
  this.props.selectionStart || 0,
856
848
  this.props.selectionEnd || 0
857
849
  );
850
+ } else if ( this.shouldFocusTextInputAfterMerge( prevProps ) ) {
851
+ // Since this is happening when merging blocks, the selection should be at the last character position.
852
+ // As a fallback the internal selectionEnd value is used.
853
+ const lastCharacterPosition =
854
+ this.value?.length ?? this.selectionEnd;
855
+ this._editor.focus();
856
+ this.props.onSelectionChange(
857
+ lastCharacterPosition,
858
+ lastCharacterPosition
859
+ );
858
860
  } else if ( ! isSelected && prevIsSelected ) {
859
861
  this._editor.blur();
860
862
  }
@@ -1280,7 +1282,7 @@ export class RichText extends Component {
1280
1282
  fontWeight={ this.props.fontWeight }
1281
1283
  fontStyle={ this.props.fontStyle }
1282
1284
  disableEditingMenu={ disableEditingMenu }
1283
- isMultiline={ this.isMultiline }
1285
+ isMultiline={ false }
1284
1286
  textAlign={ this.props.textAlign }
1285
1287
  { ...( this.isIOS ? { maxWidth } : {} ) }
1286
1288
  minWidth={ minWidth }
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { useRef } from '@wordpress/element';
5
5
  import { useRefEffect } from '@wordpress/compose';
6
- import { insert, toHTMLString } from '@wordpress/rich-text';
6
+ import { insert, isCollapsed, toHTMLString } from '@wordpress/rich-text';
7
7
  import { getBlockTransforms, findTransform } from '@wordpress/blocks';
8
8
  import { useDispatch } from '@wordpress/data';
9
9
 
@@ -28,7 +28,12 @@ function findSelection( blocks ) {
28
28
  if ( attributeKey ) {
29
29
  blocks[ i ].attributes[ attributeKey ] = blocks[ i ].attributes[
30
30
  attributeKey
31
- ].replace( START_OF_SELECTED_AREA, '' );
31
+ ]
32
+ // To do: refactor this to use rich text's selection instead, so
33
+ // we no longer have to use on this hack inserting a special
34
+ // character.
35
+ .toString()
36
+ .replace( START_OF_SELECTED_AREA, '' );
32
37
  return [ blocks[ i ].clientId, attributeKey, 0, 0 ];
33
38
  }
34
39
 
@@ -42,6 +47,34 @@ function findSelection( blocks ) {
42
47
  return [];
43
48
  }
44
49
 
50
+ /**
51
+ * An input rule that replaces two spaces with an en space, and an en space
52
+ * followed by a space with an em space.
53
+ *
54
+ * @param {Object} value Value to replace spaces in.
55
+ *
56
+ * @return {Object} Value with spaces replaced.
57
+ */
58
+ function replacePrecedingSpaces( value ) {
59
+ if ( ! isCollapsed( value ) ) {
60
+ return value;
61
+ }
62
+
63
+ const { text, start } = value;
64
+ const lastTwoCharacters = text.slice( start - 2, start );
65
+
66
+ // Replace two spaces with an em space.
67
+ if ( lastTwoCharacters === ' ' ) {
68
+ return insert( value, '\u2002', start - 2, start );
69
+ }
70
+ // Replace an en space followed by a space with an em space.
71
+ else if ( lastTwoCharacters === '\u2002 ' ) {
72
+ return insert( value, '\u2003', start - 2, start );
73
+ }
74
+
75
+ return value;
76
+ }
77
+
45
78
  export function useInputRules( props ) {
46
79
  const {
47
80
  __unstableMarkLastChangeAsPersistent,
@@ -122,7 +155,7 @@ export function useInputRules( props ) {
122
155
 
123
156
  return accumlator;
124
157
  },
125
- preventEventDiscovery( value )
158
+ preventEventDiscovery( replacePrecedingSpaces( value ) )
126
159
  );
127
160
 
128
161
  if ( transformed !== value ) {
@@ -0,0 +1,51 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { forwardRef } from '@wordpress/element';
5
+ import { children as childrenSource } from '@wordpress/blocks';
6
+ import { useInstanceId } from '@wordpress/compose';
7
+ import { __unstableCreateElement } from '@wordpress/rich-text';
8
+ import deprecated from '@wordpress/deprecated';
9
+
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ import RichTextMultiline from './multiline';
14
+
15
+ export function withDeprecations( Component ) {
16
+ return forwardRef( ( props, ref ) => {
17
+ let value = props.value;
18
+ let onChange = props.onChange;
19
+
20
+ // Handle deprecated format.
21
+ if ( Array.isArray( value ) ) {
22
+ deprecated( 'wp.blockEditor.RichText value prop as children type', {
23
+ since: '6.1',
24
+ version: '6.3',
25
+ alternative: 'value prop as string',
26
+ link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/',
27
+ } );
28
+
29
+ value = childrenSource.toHTML( props.value );
30
+ onChange = ( newValue ) =>
31
+ props.onChange(
32
+ childrenSource.fromDOM(
33
+ __unstableCreateElement( document, newValue ).childNodes
34
+ )
35
+ );
36
+ }
37
+
38
+ const NewComponent = props.multiline ? RichTextMultiline : Component;
39
+ const instanceId = useInstanceId( NewComponent );
40
+
41
+ return (
42
+ <NewComponent
43
+ { ...props }
44
+ identifier={ props.identifier || instanceId }
45
+ value={ value }
46
+ onChange={ onChange }
47
+ ref={ ref }
48
+ />
49
+ );
50
+ } );
51
+ }
@@ -139,7 +139,7 @@ export default function SpacingInputControl( {
139
139
  useMemo(
140
140
  () => parseQuantityAndUnitFromRawValue( currentValue ),
141
141
  [ currentValue ]
142
- )[ 1 ] || units[ 0 ].value;
142
+ )[ 1 ] || units[ 0 ]?.value;
143
143
 
144
144
  const setInitialValue = () => {
145
145
  if ( value === undefined ) {