@wordpress/block-editor 12.5.0 → 12.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +2 -6
  3. package/build/autocompleters/block.js +6 -2
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-draggable/index.js +6 -3
  6. package/build/components/block-draggable/index.js.map +1 -1
  7. package/build/components/block-draggable/index.native.js +2 -2
  8. package/build/components/block-draggable/index.native.js.map +1 -1
  9. package/build/components/block-edit/edit.js +25 -13
  10. package/build/components/block-edit/edit.js.map +1 -1
  11. package/build/components/block-editing-mode/index.js +1 -1
  12. package/build/components/block-editing-mode/index.js.map +1 -1
  13. package/build/components/block-list/block-outline.native.js +14 -18
  14. package/build/components/block-list/block-outline.native.js.map +1 -1
  15. package/build/components/block-list/block.js +4 -2
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/block.native.js +21 -42
  18. package/build/components/block-list/block.native.js.map +1 -1
  19. package/build/components/block-list/index.js +2 -4
  20. package/build/components/block-list/index.js.map +1 -1
  21. package/build/components/block-mover/index.native.js +1 -1
  22. package/build/components/block-mover/index.native.js.map +1 -1
  23. package/build/components/block-parent-selector/index.js +6 -21
  24. package/build/components/block-parent-selector/index.js.map +1 -1
  25. package/build/components/block-preview/auto.js +6 -1
  26. package/build/components/block-preview/auto.js.map +1 -1
  27. package/build/components/block-removal-warning-modal/index.js +1 -4
  28. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  29. package/build/components/block-settings/button.native.js +2 -2
  30. package/build/components/block-settings/button.native.js.map +1 -1
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +3 -17
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +7 -5
  34. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
  35. package/build/components/block-toolbar/index.js +4 -33
  36. package/build/components/block-toolbar/index.js.map +1 -1
  37. package/build/components/block-toolbar/index.native.js +62 -3
  38. package/build/components/block-toolbar/index.native.js.map +1 -1
  39. package/build/components/block-toolbar/utils.js +56 -51
  40. package/build/components/block-toolbar/utils.js.map +1 -1
  41. package/build/components/block-tools/block-contextual-toolbar.js +4 -2
  42. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  43. package/build/components/block-variation-picker/index.native.js +10 -20
  44. package/build/components/block-variation-picker/index.native.js.map +1 -1
  45. package/build/components/colors-gradients/control.js +4 -2
  46. package/build/components/colors-gradients/control.js.map +1 -1
  47. package/build/components/editor-styles/index.js +2 -2
  48. package/build/components/editor-styles/index.js.map +1 -1
  49. package/build/components/font-sizes/fluid-utils.js +11 -11
  50. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  51. package/build/components/global-styles/behaviors-panel.js +66 -0
  52. package/build/components/global-styles/behaviors-panel.js.map +1 -0
  53. package/build/components/global-styles/color-panel.js +21 -15
  54. package/build/components/global-styles/color-panel.js.map +1 -1
  55. package/build/components/global-styles/dimensions-panel.js +13 -2
  56. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  57. package/build/components/global-styles/get-block-css-selector.js +4 -8
  58. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  59. package/build/components/global-styles/hooks.js +131 -27
  60. package/build/components/global-styles/hooks.js.map +1 -1
  61. package/build/components/global-styles/index.js +20 -0
  62. package/build/components/global-styles/index.js.map +1 -1
  63. package/build/components/global-styles/typography-panel.js +18 -3
  64. package/build/components/global-styles/typography-panel.js.map +1 -1
  65. package/build/components/global-styles/typography-utils.js +4 -4
  66. package/build/components/global-styles/typography-utils.js.map +1 -1
  67. package/build/components/global-styles/use-global-styles-output.js +12 -18
  68. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  69. package/build/components/global-styles/utils.js +7 -7
  70. package/build/components/global-styles/utils.js.map +1 -1
  71. package/build/components/iframe/index.js +36 -48
  72. package/build/components/iframe/index.js.map +1 -1
  73. package/build/components/iframe/use-compatibility-styles.js +5 -0
  74. package/build/components/iframe/use-compatibility-styles.js.map +1 -1
  75. package/build/components/index.js +1 -10
  76. package/build/components/index.js.map +1 -1
  77. package/build/components/inner-blocks/index.js +3 -1
  78. package/build/components/inner-blocks/index.js.map +1 -1
  79. package/build/components/inner-blocks/index.native.js +3 -1
  80. package/build/components/inner-blocks/index.native.js.map +1 -1
  81. package/build/components/inner-blocks/use-nested-settings-update.js +33 -7
  82. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  83. package/build/components/inserter/hooks/use-block-types-state.js +6 -2
  84. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  85. package/build/components/inserter/hooks/use-debounced-input.js +5 -7
  86. package/build/components/inserter/hooks/use-debounced-input.js.map +1 -1
  87. package/build/components/inserter/hooks/use-patterns-state.js +3 -2
  88. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  89. package/build/components/inserter/index.js +2 -4
  90. package/build/components/inserter/index.js.map +1 -1
  91. package/build/components/inserter/index.native.js +21 -32
  92. package/build/components/inserter/index.native.js.map +1 -1
  93. package/build/components/inserter/reusable-block-rename-hint.js +23 -3
  94. package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
  95. package/build/components/inserter/reusable-blocks-tab.js +3 -2
  96. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  97. package/build/components/inserter-list-item/index.js +1 -1
  98. package/build/components/inserter-list-item/index.js.map +1 -1
  99. package/build/components/link-control/index.js +51 -7
  100. package/build/components/link-control/index.js.map +1 -1
  101. package/build/components/link-control/link-preview.js +3 -3
  102. package/build/components/link-control/link-preview.js.map +1 -1
  103. package/build/components/link-control/search-item.js +1 -1
  104. package/build/components/link-control/search-item.js.map +1 -1
  105. package/build/components/list-view/use-list-view-client-ids.js +2 -2
  106. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  107. package/build/components/list-view/use-list-view-drop-zone.js +6 -1
  108. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  109. package/build/components/media-placeholder/index.native.js +65 -31
  110. package/build/components/media-placeholder/index.native.js.map +1 -1
  111. package/build/components/media-replace-flow/index.native.js +15 -3
  112. package/build/components/media-replace-flow/index.native.js.map +1 -1
  113. package/build/components/preview-options/index.js +2 -2
  114. package/build/components/preview-options/index.js.map +1 -1
  115. package/build/components/rich-text/content.js +0 -36
  116. package/build/components/rich-text/content.js.map +1 -1
  117. package/build/components/rich-text/format-edit.js +57 -28
  118. package/build/components/rich-text/format-edit.js.map +1 -1
  119. package/build/components/rich-text/get-rich-text-values.js +111 -0
  120. package/build/components/rich-text/get-rich-text-values.js.map +1 -0
  121. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
  122. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  123. package/build/components/spacing-sizes-control/input-controls/axial.js +6 -2
  124. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  125. package/build/components/spacing-sizes-control/input-controls/separated.js +5 -1
  126. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  127. package/build/components/spacing-sizes-control/input-controls/single.js +5 -1
  128. package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  129. package/build/components/spacing-sizes-control/utils.js +2 -2
  130. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  131. package/build/components/use-block-display-information/index.js +7 -3
  132. package/build/components/use-block-display-information/index.js.map +1 -1
  133. package/build/components/use-block-drop-zone/index.native.js +49 -8
  134. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  135. package/build/components/use-setting/index.js +5 -9
  136. package/build/components/use-setting/index.js.map +1 -1
  137. package/build/hooks/behaviors.js +5 -12
  138. package/build/hooks/behaviors.js.map +1 -1
  139. package/build/hooks/border.js +2 -1
  140. package/build/hooks/border.js.map +1 -1
  141. package/build/hooks/margin.js +1 -1
  142. package/build/hooks/margin.js.map +1 -1
  143. package/build/hooks/padding.js +1 -1
  144. package/build/hooks/padding.js.map +1 -1
  145. package/build/hooks/style.js +11 -2
  146. package/build/hooks/style.js.map +1 -1
  147. package/build/hooks/utils.js +1 -7
  148. package/build/hooks/utils.js.map +1 -1
  149. package/build/private-apis.js +10 -3
  150. package/build/private-apis.js.map +1 -1
  151. package/build/store/actions.js +3 -4
  152. package/build/store/actions.js.map +1 -1
  153. package/build/store/private-selectors.js +5 -6
  154. package/build/store/private-selectors.js.map +1 -1
  155. package/build/store/reducer.js +0 -1
  156. package/build/store/reducer.js.map +1 -1
  157. package/build/store/selectors.js +23 -79
  158. package/build/store/selectors.js.map +1 -1
  159. package/build/utils/object.js +38 -2
  160. package/build/utils/object.js.map +1 -1
  161. package/build-module/autocompleters/block.js +7 -3
  162. package/build-module/autocompleters/block.js.map +1 -1
  163. package/build-module/components/block-draggable/index.js +6 -3
  164. package/build-module/components/block-draggable/index.js.map +1 -1
  165. package/build-module/components/block-draggable/index.native.js +2 -2
  166. package/build-module/components/block-draggable/index.native.js.map +1 -1
  167. package/build-module/components/block-edit/edit.js +27 -10
  168. package/build-module/components/block-edit/edit.js.map +1 -1
  169. package/build-module/components/block-editing-mode/index.js +1 -1
  170. package/build-module/components/block-editing-mode/index.js.map +1 -1
  171. package/build-module/components/block-list/block-outline.native.js +14 -18
  172. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  173. package/build-module/components/block-list/block.js +4 -2
  174. package/build-module/components/block-list/block.js.map +1 -1
  175. package/build-module/components/block-list/block.native.js +24 -43
  176. package/build-module/components/block-list/block.native.js.map +1 -1
  177. package/build-module/components/block-list/index.js +2 -3
  178. package/build-module/components/block-list/index.js.map +1 -1
  179. package/build-module/components/block-mover/index.native.js +3 -3
  180. package/build-module/components/block-mover/index.native.js.map +1 -1
  181. package/build-module/components/block-parent-selector/index.js +7 -22
  182. package/build-module/components/block-parent-selector/index.js.map +1 -1
  183. package/build-module/components/block-preview/auto.js +6 -1
  184. package/build-module/components/block-preview/auto.js.map +1 -1
  185. package/build-module/components/block-removal-warning-modal/index.js +1 -4
  186. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  187. package/build-module/components/block-settings/button.native.js +3 -3
  188. package/build-module/components/block-settings/button.native.js.map +1 -1
  189. package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -18
  190. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  191. package/build-module/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +9 -7
  192. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
  193. package/build-module/components/block-toolbar/index.js +6 -35
  194. package/build-module/components/block-toolbar/index.js.map +1 -1
  195. package/build-module/components/block-toolbar/index.native.js +60 -4
  196. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  197. package/build-module/components/block-toolbar/utils.js +54 -49
  198. package/build-module/components/block-toolbar/utils.js.map +1 -1
  199. package/build-module/components/block-tools/block-contextual-toolbar.js +4 -2
  200. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  201. package/build-module/components/block-variation-picker/index.native.js +13 -23
  202. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  203. package/build-module/components/colors-gradients/control.js +3 -2
  204. package/build-module/components/colors-gradients/control.js.map +1 -1
  205. package/build-module/components/editor-styles/index.js +2 -2
  206. package/build-module/components/editor-styles/index.js.map +1 -1
  207. package/build-module/components/font-sizes/fluid-utils.js +11 -11
  208. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  209. package/build-module/components/global-styles/behaviors-panel.js +57 -0
  210. package/build-module/components/global-styles/behaviors-panel.js.map +1 -0
  211. package/build-module/components/global-styles/color-panel.js +21 -15
  212. package/build-module/components/global-styles/color-panel.js.map +1 -1
  213. package/build-module/components/global-styles/dimensions-panel.js +13 -2
  214. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  215. package/build-module/components/global-styles/get-block-css-selector.js +4 -8
  216. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  217. package/build-module/components/global-styles/hooks.js +127 -27
  218. package/build-module/components/global-styles/hooks.js.map +1 -1
  219. package/build-module/components/global-styles/index.js +2 -1
  220. package/build-module/components/global-styles/index.js.map +1 -1
  221. package/build-module/components/global-styles/typography-panel.js +18 -3
  222. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  223. package/build-module/components/global-styles/typography-utils.js +4 -4
  224. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  225. package/build-module/components/global-styles/use-global-styles-output.js +13 -18
  226. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  227. package/build-module/components/global-styles/utils.js +6 -6
  228. package/build-module/components/global-styles/utils.js.map +1 -1
  229. package/build-module/components/iframe/index.js +37 -49
  230. package/build-module/components/iframe/index.js.map +1 -1
  231. package/build-module/components/iframe/use-compatibility-styles.js +5 -0
  232. package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
  233. package/build-module/components/index.js +0 -5
  234. package/build-module/components/index.js.map +1 -1
  235. package/build-module/components/inner-blocks/index.js +3 -1
  236. package/build-module/components/inner-blocks/index.js.map +1 -1
  237. package/build-module/components/inner-blocks/index.native.js +3 -1
  238. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  239. package/build-module/components/inner-blocks/use-nested-settings-update.js +30 -7
  240. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  241. package/build-module/components/inserter/hooks/use-block-types-state.js +7 -3
  242. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  243. package/build-module/components/inserter/hooks/use-debounced-input.js +5 -7
  244. package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -1
  245. package/build-module/components/inserter/hooks/use-patterns-state.js +3 -2
  246. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  247. package/build-module/components/inserter/index.js +2 -4
  248. package/build-module/components/inserter/index.js.map +1 -1
  249. package/build-module/components/inserter/index.native.js +22 -33
  250. package/build-module/components/inserter/index.native.js.map +1 -1
  251. package/build-module/components/inserter/reusable-block-rename-hint.js +22 -3
  252. package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -1
  253. package/build-module/components/inserter/reusable-blocks-tab.js +3 -2
  254. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  255. package/build-module/components/inserter-list-item/index.js +1 -1
  256. package/build-module/components/inserter-list-item/index.js.map +1 -1
  257. package/build-module/components/link-control/index.js +49 -7
  258. package/build-module/components/link-control/index.js.map +1 -1
  259. package/build-module/components/link-control/link-preview.js +3 -3
  260. package/build-module/components/link-control/link-preview.js.map +1 -1
  261. package/build-module/components/link-control/search-item.js +1 -1
  262. package/build-module/components/link-control/search-item.js.map +1 -1
  263. package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
  264. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  265. package/build-module/components/list-view/use-list-view-drop-zone.js +6 -1
  266. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  267. package/build-module/components/media-placeholder/index.native.js +66 -33
  268. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  269. package/build-module/components/media-replace-flow/index.native.js +15 -3
  270. package/build-module/components/media-replace-flow/index.native.js.map +1 -1
  271. package/build-module/components/preview-options/index.js +2 -2
  272. package/build-module/components/preview-options/index.js.map +1 -1
  273. package/build-module/components/rich-text/content.js +1 -36
  274. package/build-module/components/rich-text/content.js.map +1 -1
  275. package/build-module/components/rich-text/format-edit.js +51 -26
  276. package/build-module/components/rich-text/format-edit.js.map +1 -1
  277. package/build-module/components/rich-text/get-rich-text-values.js +100 -0
  278. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -0
  279. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
  280. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  281. package/build-module/components/spacing-sizes-control/input-controls/axial.js +7 -3
  282. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  283. package/build-module/components/spacing-sizes-control/input-controls/separated.js +6 -2
  284. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  285. package/build-module/components/spacing-sizes-control/input-controls/single.js +6 -2
  286. package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  287. package/build-module/components/spacing-sizes-control/utils.js +2 -2
  288. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  289. package/build-module/components/use-block-display-information/index.js +7 -3
  290. package/build-module/components/use-block-display-information/index.js.map +1 -1
  291. package/build-module/components/use-block-drop-zone/index.native.js +50 -8
  292. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  293. package/build-module/components/use-setting/index.js +5 -9
  294. package/build-module/components/use-setting/index.js.map +1 -1
  295. package/build-module/hooks/behaviors.js +5 -12
  296. package/build-module/hooks/behaviors.js.map +1 -1
  297. package/build-module/hooks/border.js +2 -1
  298. package/build-module/hooks/border.js.map +1 -1
  299. package/build-module/hooks/margin.js +1 -1
  300. package/build-module/hooks/margin.js.map +1 -1
  301. package/build-module/hooks/padding.js +1 -1
  302. package/build-module/hooks/padding.js.map +1 -1
  303. package/build-module/hooks/style.js +11 -2
  304. package/build-module/hooks/style.js.map +1 -1
  305. package/build-module/hooks/utils.js +2 -7
  306. package/build-module/hooks/utils.js.map +1 -1
  307. package/build-module/private-apis.js +7 -2
  308. package/build-module/private-apis.js.map +1 -1
  309. package/build-module/store/actions.js +4 -5
  310. package/build-module/store/actions.js.map +1 -1
  311. package/build-module/store/private-selectors.js +3 -3
  312. package/build-module/store/private-selectors.js.map +1 -1
  313. package/build-module/store/reducer.js +0 -1
  314. package/build-module/store/reducer.js.map +1 -1
  315. package/build-module/store/selectors.js +20 -75
  316. package/build-module/store/selectors.js.map +1 -1
  317. package/build-module/utils/object.js +34 -2
  318. package/build-module/utils/object.js.map +1 -1
  319. package/build-style/content-rtl.css +2 -1
  320. package/build-style/content.css +2 -1
  321. package/build-style/style-rtl.css +25 -6
  322. package/build-style/style.css +25 -6
  323. package/package.json +32 -32
  324. package/src/autocompleters/block.js +21 -6
  325. package/src/components/block-controls/README.md +89 -0
  326. package/src/components/block-draggable/index.js +13 -4
  327. package/src/components/block-draggable/index.native.js +7 -3
  328. package/src/components/block-draggable/test/index.native.js +2 -57
  329. package/src/components/block-edit/edit.js +26 -9
  330. package/src/components/block-edit/test/edit.js +1 -1
  331. package/src/components/block-editing-mode/index.js +1 -1
  332. package/src/components/block-list/block-outline.native.js +26 -25
  333. package/src/components/block-list/block.js +6 -1
  334. package/src/components/block-list/block.native.js +24 -38
  335. package/src/components/block-list/block.native.scss +18 -40
  336. package/src/components/block-list/index.js +3 -6
  337. package/src/components/block-list/style.native.scss +3 -3
  338. package/src/components/block-list/test/block-invalid-warning.native.js +8 -1
  339. package/src/components/block-mover/index.native.js +3 -3
  340. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +40 -6
  341. package/src/components/block-parent-selector/index.js +30 -42
  342. package/src/components/block-preview/auto.js +8 -1
  343. package/src/components/block-preview/style.scss +2 -1
  344. package/src/components/block-removal-warning-modal/index.js +0 -3
  345. package/src/components/block-settings/button.native.js +12 -6
  346. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -13
  347. package/src/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +15 -10
  348. package/src/components/block-toolbar/index.js +36 -64
  349. package/src/components/block-toolbar/index.native.js +86 -6
  350. package/src/components/{block-mobile-toolbar/test/block-actions-menu.native.js → block-toolbar/test/block-toolbar-menu.native.js} +20 -54
  351. package/src/components/block-toolbar/test/index.native.js +42 -0
  352. package/src/components/block-toolbar/utils.js +57 -45
  353. package/src/components/block-tools/block-contextual-toolbar.js +43 -35
  354. package/src/components/block-tools/style.scss +17 -5
  355. package/src/components/block-variation-picker/index.native.js +52 -72
  356. package/src/components/button-block-appender/styles.native.scss +2 -2
  357. package/src/components/caption/README.md +49 -0
  358. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  359. package/src/components/colors-gradients/control.js +3 -2
  360. package/src/components/editor-styles/index.js +2 -2
  361. package/src/components/font-sizes/fluid-utils.js +17 -17
  362. package/src/components/font-sizes/test/fluid-utils.js +6 -6
  363. package/src/components/global-styles/behaviors-panel.js +71 -0
  364. package/src/components/global-styles/color-panel.js +23 -16
  365. package/src/components/global-styles/dimensions-panel.js +8 -2
  366. package/src/components/global-styles/get-block-css-selector.js +5 -9
  367. package/src/components/global-styles/hooks.js +134 -31
  368. package/src/components/global-styles/index.js +3 -0
  369. package/src/components/global-styles/test/typography-utils.js +6 -6
  370. package/src/components/global-styles/typography-panel.js +17 -5
  371. package/src/components/global-styles/typography-utils.js +4 -4
  372. package/src/components/global-styles/use-global-styles-output.js +36 -18
  373. package/src/components/global-styles/utils.js +17 -7
  374. package/src/components/iframe/index.js +30 -56
  375. package/src/components/iframe/use-compatibility-styles.js +5 -0
  376. package/src/components/index.js +0 -5
  377. package/src/components/inner-blocks/README.md +10 -0
  378. package/src/components/inner-blocks/index.js +4 -0
  379. package/src/components/inner-blocks/index.native.js +4 -0
  380. package/src/components/inner-blocks/use-nested-settings-update.js +32 -5
  381. package/src/components/inserter/hooks/use-block-types-state.js +15 -6
  382. package/src/components/inserter/hooks/use-debounced-input.js +8 -7
  383. package/src/components/inserter/hooks/use-patterns-state.js +2 -1
  384. package/src/components/inserter/index.js +2 -3
  385. package/src/components/inserter/index.native.js +17 -36
  386. package/src/components/inserter/reusable-block-rename-hint.js +18 -1
  387. package/src/components/inserter/reusable-blocks-tab.js +4 -1
  388. package/src/components/inserter/style.native.scss +10 -15
  389. package/src/components/inserter-list-item/index.js +3 -1
  390. package/src/components/link-control/README.md +12 -3
  391. package/src/components/link-control/index.js +47 -7
  392. package/src/components/link-control/link-preview.js +6 -4
  393. package/src/components/link-control/search-item.js +1 -1
  394. package/src/components/link-control/style.scss +11 -3
  395. package/src/components/link-control/test/index.js +28 -1
  396. package/src/components/list-view/use-list-view-client-ids.js +2 -2
  397. package/src/components/list-view/use-list-view-drop-zone.js +5 -1
  398. package/src/components/media-placeholder/index.native.js +108 -59
  399. package/src/components/media-placeholder/styles.native.scss +59 -24
  400. package/src/components/media-replace-flow/index.native.js +12 -3
  401. package/src/components/media-upload/test/index.native.js +1 -0
  402. package/src/components/preview-options/README.md +18 -17
  403. package/src/components/preview-options/index.js +2 -2
  404. package/src/components/rich-text/content.js +1 -46
  405. package/src/components/rich-text/format-edit.js +62 -38
  406. package/src/components/rich-text/get-rich-text-values.js +99 -0
  407. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
  408. package/src/components/spacing-sizes-control/input-controls/axial.js +17 -2
  409. package/src/components/spacing-sizes-control/input-controls/separated.js +17 -2
  410. package/src/components/spacing-sizes-control/input-controls/single.js +12 -2
  411. package/src/components/spacing-sizes-control/test/utils.js +9 -1
  412. package/src/components/spacing-sizes-control/utils.js +2 -2
  413. package/src/components/text-transform-control/README.md +44 -0
  414. package/src/components/use-block-display-information/index.js +12 -5
  415. package/src/components/use-block-drop-zone/index.native.js +65 -28
  416. package/src/components/use-setting/index.js +8 -8
  417. package/src/hooks/behaviors.js +10 -16
  418. package/src/hooks/border.js +2 -1
  419. package/src/hooks/margin.js +4 -1
  420. package/src/hooks/padding.js +4 -1
  421. package/src/hooks/style.js +7 -3
  422. package/src/hooks/utils.js +5 -7
  423. package/src/private-apis.js +9 -1
  424. package/src/store/actions.js +23 -30
  425. package/src/store/private-selectors.js +3 -6
  426. package/src/store/reducer.js +0 -1
  427. package/src/store/selectors.js +36 -85
  428. package/src/store/test/actions.js +3 -0
  429. package/src/store/test/private-selectors.js +5 -5
  430. package/src/store/test/reducer.js +14 -7
  431. package/src/store/test/selectors.js +8 -7
  432. package/src/utils/object.js +32 -2
  433. package/src/utils/test/object.js +36 -0
  434. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
  435. package/build/components/block-mobile-toolbar/index.native.js +0 -135
  436. package/build/components/block-mobile-toolbar/index.native.js.map +0 -1
  437. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
  438. package/build-module/components/block-mobile-toolbar/index.native.js +0 -116
  439. package/build-module/components/block-mobile-toolbar/index.native.js.map +0 -1
  440. package/src/components/block-mobile-toolbar/index.native.js +0 -127
  441. package/src/components/block-mobile-toolbar/style.native.scss +0 -16
  442. /package/src/components/{block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap → block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap} +0 -0
@@ -11,7 +11,6 @@ import {
11
11
  createPortal,
12
12
  forwardRef,
13
13
  useMemo,
14
- useReducer,
15
14
  useEffect,
16
15
  } from '@wordpress/element';
17
16
  import { __ } from '@wordpress/i18n';
@@ -78,29 +77,6 @@ function bubbleEvents( doc ) {
78
77
  }
79
78
  }
80
79
 
81
- function useParsedAssets( html ) {
82
- return useMemo( () => {
83
- const doc = document.implementation.createHTMLDocument( '' );
84
- doc.body.innerHTML = html;
85
- return Array.from( doc.body.children );
86
- }, [ html ] );
87
- }
88
-
89
- async function loadScript( head, { id, src } ) {
90
- return new Promise( ( resolve, reject ) => {
91
- const script = head.ownerDocument.createElement( 'script' );
92
- script.id = id;
93
- if ( src ) {
94
- script.src = src;
95
- script.onload = () => resolve();
96
- script.onerror = () => reject();
97
- } else {
98
- resolve();
99
- }
100
- head.appendChild( script );
101
- } );
102
- }
103
-
104
80
  function Iframe( {
105
81
  contentRef,
106
82
  children,
@@ -112,21 +88,25 @@ function Iframe( {
112
88
  forwardedRef: ref,
113
89
  ...props
114
90
  } ) {
115
- const assets = useSelect(
116
- ( select ) =>
117
- select( blockEditorStore ).getSettings().__unstableResolvedAssets,
118
- []
119
- );
120
- const [ , forceRender ] = useReducer( () => ( {} ) );
91
+ const { resolvedAssets, isPreviewMode } = useSelect( ( select ) => {
92
+ const settings = select( blockEditorStore ).getSettings();
93
+ return {
94
+ resolvedAssets: settings.__unstableResolvedAssets,
95
+ isPreviewMode: settings.__unstableIsPreviewMode,
96
+ };
97
+ }, [] );
98
+ const { styles = '', scripts = '' } = resolvedAssets;
121
99
  const [ iframeDocument, setIframeDocument ] = useState();
122
100
  const [ bodyClasses, setBodyClasses ] = useState( [] );
123
101
  const compatStyles = useCompatibilityStyles();
124
- const scripts = useParsedAssets( assets?.scripts );
125
102
  const clearerRef = useBlockSelectionClearer();
126
103
  const [ before, writingFlowRef, after ] = useWritingFlow();
127
104
  const [ contentResizeListener, { height: contentHeight } ] =
128
105
  useResizeObserver();
129
106
  const setRef = useRefEffect( ( node ) => {
107
+ node._load = () => {
108
+ setIframeDocument( node.contentDocument );
109
+ };
130
110
  let iFrameDocument;
131
111
  // Prevent the default browser action for files dropped outside of dropzones.
132
112
  function preventFileDropDefault( event ) {
@@ -138,7 +118,6 @@ function Iframe( {
138
118
  iFrameDocument = contentDocument;
139
119
 
140
120
  bubbleEvents( contentDocument );
141
- setIframeDocument( contentDocument );
142
121
  clearerRef( documentElement );
143
122
 
144
123
  // Ideally ALL classes that are added through get_body_class should
@@ -154,7 +133,6 @@ function Iframe( {
154
133
  );
155
134
 
156
135
  contentDocument.dir = ownerDocument.dir;
157
- documentElement.removeChild( contentDocument.body );
158
136
 
159
137
  for ( const compatStyle of compatStyles ) {
160
138
  if ( contentDocument.getElementById( compatStyle.id ) ) {
@@ -165,11 +143,13 @@ function Iframe( {
165
143
  compatStyle.cloneNode( true )
166
144
  );
167
145
 
168
- // eslint-disable-next-line no-console
169
- console.warn(
170
- `${ compatStyle.id } was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe.`,
171
- compatStyle
172
- );
146
+ if ( ! isPreviewMode ) {
147
+ // eslint-disable-next-line no-console
148
+ console.warn(
149
+ `${ compatStyle.id } was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe.`,
150
+ compatStyle
151
+ );
152
+ }
173
153
  }
174
154
 
175
155
  iFrameDocument.addEventListener(
@@ -199,35 +179,29 @@ function Iframe( {
199
179
  };
200
180
  }, [] );
201
181
 
202
- const headRef = useRefEffect( ( element ) => {
203
- scripts
204
- .reduce(
205
- ( promise, script ) =>
206
- promise.then( () => loadScript( element, script ) ),
207
- Promise.resolve()
208
- )
209
- .finally( () => {
210
- // When script are loaded, re-render blocks to allow them
211
- // to initialise.
212
- forceRender();
213
- } );
214
- }, [] );
215
182
  const disabledRef = useDisabled( { isDisabled: ! readonly } );
216
183
  const bodyRef = useMergeRefs( [
217
184
  contentRef,
218
185
  clearerRef,
219
186
  writingFlowRef,
220
187
  disabledRef,
221
- headRef,
222
188
  ] );
223
189
 
224
190
  // Correct doctype is required to enable rendering in standards
225
191
  // mode. Also preload the styles to avoid a flash of unstyled
226
192
  // content.
227
- const html =
228
- '<!doctype html>' +
229
- '<style>html{height:auto!important;min-height:100%;}body{margin:0}</style>' +
230
- ( assets?.styles ?? '' );
193
+ const html = `<!doctype html>
194
+ <html>
195
+ <head>
196
+ <script>window.frameElement._load()</script>
197
+ <style>html{height:auto!important;min-height:100%;}body{margin:0}</style>
198
+ ${ styles }
199
+ ${ scripts }
200
+ </head>
201
+ <body>
202
+ <script>document.currentScript.parentElement.remove()</script>
203
+ </body>
204
+ </html>`;
231
205
 
232
206
  const [ src, cleanup ] = useMemo( () => {
233
207
  const _src = URL.createObjectURL(
@@ -45,6 +45,11 @@ export function useCompatibilityStyles() {
45
45
  return accumulator;
46
46
  }
47
47
 
48
+ // Don't try to add styles without ID. Styles enqueued via the WP dependency system will always have IDs.
49
+ if ( ! ownerNode.id ) {
50
+ return accumulator;
51
+ }
52
+
48
53
  function matchFromRules( _cssRules ) {
49
54
  return Array.from( _cssRules ).find(
50
55
  ( {
@@ -165,8 +165,3 @@ export { default as __experimentalInspectorPopoverHeader } from './inspector-pop
165
165
 
166
166
  export { default as BlockEditorProvider } from './provider';
167
167
  export { default as useSetting } from './use-setting';
168
-
169
- /*
170
- * The following rename hint component can be removed in 6.4.
171
- */
172
- export { default as ReusableBlocksRenameHint } from './inserter/reusable-block-rename-hint';
@@ -185,3 +185,13 @@ For example, a button block, deeply nested in several levels of block `X` that u
185
185
 
186
186
  - **Type:** `Array`
187
187
  - **Default:** - `undefined`. Determines which block types should be shown in the block inserter. For example, when inserting a block within the Navigation block we specify `core/navigation-link` and `core/navigation-link/page` as these are the most commonly used inner blocks. `prioritizedInserterBlocks` takes an array of the form {blockName}/{variationName}, where {variationName} is optional.
188
+
189
+ ### `defaultBlock`
190
+
191
+ - **Type:** `Array`
192
+ - **Default:** - `undefined`. Determines which block type should be inserted by default and any attributes that should be set by default when the block is inserted. Takes an array in the form of `[ blockname, {blockAttributes} ]`.
193
+
194
+ ### `directInsert`
195
+
196
+ - **Type:** `Boolean`
197
+ - **Default:** - `undefined`. Determines whether the default block should be inserted directly into the InnerBlocks area by the block appender.
@@ -46,6 +46,8 @@ function UncontrolledInnerBlocks( props ) {
46
46
  clientId,
47
47
  allowedBlocks,
48
48
  prioritizedInserterBlocks,
49
+ defaultBlock,
50
+ directInsert,
49
51
  __experimentalDefaultBlock,
50
52
  __experimentalDirectInsert,
51
53
  template,
@@ -64,6 +66,8 @@ function UncontrolledInnerBlocks( props ) {
64
66
  clientId,
65
67
  allowedBlocks,
66
68
  prioritizedInserterBlocks,
69
+ defaultBlock,
70
+ directInsert,
67
71
  __experimentalDefaultBlock,
68
72
  __experimentalDirectInsert,
69
73
  templateLock,
@@ -73,6 +73,8 @@ function UncontrolledInnerBlocks( props ) {
73
73
  clientId,
74
74
  allowedBlocks,
75
75
  prioritizedInserterBlocks,
76
+ defaultBlock,
77
+ directInsert,
76
78
  __experimentalDefaultBlock,
77
79
  __experimentalDirectInsert,
78
80
  template,
@@ -103,6 +105,8 @@ function UncontrolledInnerBlocks( props ) {
103
105
  clientId,
104
106
  allowedBlocks,
105
107
  prioritizedInserterBlocks,
108
+ defaultBlock,
109
+ directInsert,
106
110
  __experimentalDefaultBlock,
107
111
  __experimentalDirectInsert,
108
112
  templateLock,
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { useLayoutEffect, useMemo } from '@wordpress/element';
5
5
  import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
6
+ import deprecated from '@wordpress/deprecated';
6
7
 
7
8
  /**
8
9
  * Internal dependencies
@@ -25,9 +26,13 @@ const pendingSettingsUpdates = new WeakMap();
25
26
  * @param {string[]} allowedBlocks An array of block names which are permitted
26
27
  * in inner blocks.
27
28
  * @param {string[]} prioritizedInserterBlocks Block names and/or block variations to be prioritized in the inserter, in the format {blockName}/{variationName}.
28
- * @param {?WPDirectInsertBlock} __experimentalDefaultBlock The default block to insert: [ blockName, { blockAttributes } ].
29
- * @param {?Function|boolean} __experimentalDirectInsert If a default block should be inserted directly by the
30
- * appender.
29
+ * @param {?WPDirectInsertBlock} defaultBlock The default block to insert: [ blockName, { blockAttributes } ].
30
+ * @param {?Function|boolean} directInsert If a default block should be inserted directly by the appender.
31
+ *
32
+ * @param {?WPDirectInsertBlock} __experimentalDefaultBlock A deprecated prop for the default block to insert: [ blockName, { blockAttributes } ]. Use `defaultBlock` instead.
33
+ *
34
+ * @param {?Function|boolean} __experimentalDirectInsert A deprecated prop for whether a default block should be inserted directly by the appender. Use `directInsert` instead.
35
+ *
31
36
  * @param {string} [templateLock] The template lock specified for the inner
32
37
  * blocks component. (e.g. "all")
33
38
  * @param {boolean} captureToolbars Whether or children toolbars should be shown
@@ -41,6 +46,8 @@ export default function useNestedSettingsUpdate(
41
46
  clientId,
42
47
  allowedBlocks,
43
48
  prioritizedInserterBlocks,
49
+ defaultBlock,
50
+ directInsert,
44
51
  __experimentalDefaultBlock,
45
52
  __experimentalDirectInsert,
46
53
  templateLock,
@@ -108,11 +115,29 @@ export default function useNestedSettingsUpdate(
108
115
  }
109
116
 
110
117
  if ( __experimentalDefaultBlock !== undefined ) {
111
- newSettings.__experimentalDefaultBlock = __experimentalDefaultBlock;
118
+ deprecated( '__experimentalDefaultBlock', {
119
+ alternative: 'defaultBlock',
120
+ since: '6.3',
121
+ version: '6.4',
122
+ } );
123
+ newSettings.defaultBlock = __experimentalDefaultBlock;
124
+ }
125
+
126
+ if ( defaultBlock !== undefined ) {
127
+ newSettings.defaultBlock = defaultBlock;
112
128
  }
113
129
 
114
130
  if ( __experimentalDirectInsert !== undefined ) {
115
- newSettings.__experimentalDirectInsert = __experimentalDirectInsert;
131
+ deprecated( '__experimentalDirectInsert', {
132
+ alternative: 'directInsert',
133
+ since: '6.3',
134
+ version: '6.4',
135
+ } );
136
+ newSettings.directInsert = __experimentalDirectInsert;
137
+ }
138
+
139
+ if ( directInsert !== undefined ) {
140
+ newSettings.directInsert = directInsert;
116
141
  }
117
142
 
118
143
  // Batch updates to block list settings to avoid triggering cascading renders
@@ -144,6 +169,8 @@ export default function useNestedSettingsUpdate(
144
169
  _allowedBlocks,
145
170
  _prioritizedInserterBlocks,
146
171
  _templateLock,
172
+ defaultBlock,
173
+ directInsert,
147
174
  __experimentalDefaultBlock,
148
175
  __experimentalDirectInsert,
149
176
  captureToolbars,
@@ -5,6 +5,7 @@ import {
5
5
  createBlock,
6
6
  createBlocksFromInnerBlocksTemplate,
7
7
  store as blocksStore,
8
+ parse,
8
9
  } from '@wordpress/blocks';
9
10
  import { useSelect } from '@wordpress/data';
10
11
  import { useCallback } from '@wordpress/element';
@@ -37,12 +38,20 @@ const useBlockTypesState = ( rootClientId, onInsert ) => {
37
38
  );
38
39
 
39
40
  const onSelectItem = useCallback(
40
- ( { name, initialAttributes, innerBlocks }, shouldFocusBlock ) => {
41
- const insertedBlock = createBlock(
42
- name,
43
- initialAttributes,
44
- createBlocksFromInnerBlocksTemplate( innerBlocks )
45
- );
41
+ (
42
+ { name, initialAttributes, innerBlocks, syncStatus, content },
43
+ shouldFocusBlock
44
+ ) => {
45
+ const insertedBlock =
46
+ syncStatus === 'unsynced'
47
+ ? parse( content, {
48
+ __unstableSkipMigrationLogs: true,
49
+ } )
50
+ : createBlock(
51
+ name,
52
+ initialAttributes,
53
+ createBlocksFromInnerBlocksTemplate( innerBlocks )
54
+ );
46
55
 
47
56
  onInsert( insertedBlock, undefined, shouldFocusBlock );
48
57
  },
@@ -6,12 +6,13 @@ import { useDebounce } from '@wordpress/compose';
6
6
 
7
7
  export default function useDebouncedInput( defaultValue = '' ) {
8
8
  const [ input, setInput ] = useState( defaultValue );
9
- const [ debounced, setter ] = useState( defaultValue );
10
- const setDebounced = useDebounce( setter, 250 );
9
+ const [ debouncedInput, setDebouncedState ] = useState( defaultValue );
10
+
11
+ const setDebouncedInput = useDebounce( setDebouncedState, 250 );
12
+
11
13
  useEffect( () => {
12
- if ( debounced !== input ) {
13
- setDebounced( input );
14
- }
15
- }, [ debounced, input ] );
16
- return [ input, setInput, debounced ];
14
+ setDebouncedInput( input );
15
+ }, [ input ] );
16
+
17
+ return [ input, setInput, debouncedInput ];
17
18
  }
@@ -15,7 +15,7 @@ import { store as blockEditorStore } from '../../../store';
15
15
  const CUSTOM_CATEGORY = {
16
16
  name: 'custom',
17
17
  label: __( 'My patterns' ),
18
- description: __( 'Custom patterns add by site users' ),
18
+ description: __( 'Custom patterns added by site users' ),
19
19
  };
20
20
 
21
21
  /**
@@ -61,6 +61,7 @@ const usePatternsState = ( onInsert, rootClientId ) => {
61
61
  ),
62
62
  {
63
63
  type: 'snackbar',
64
+ id: 'block-pattern-inserted-notice',
64
65
  }
65
66
  );
66
67
  },
@@ -231,7 +231,7 @@ export const ComposedPrivateInserter = compose( [
231
231
  getBlockRootClientId,
232
232
  hasInserterItems,
233
233
  getAllowedBlocks,
234
- __experimentalGetDirectInsertBlock,
234
+ getDirectInsertBlock,
235
235
  getSettings,
236
236
  } = select( blockEditorStore );
237
237
 
@@ -243,8 +243,7 @@ export const ComposedPrivateInserter = compose( [
243
243
  const allowedBlocks = getAllowedBlocks( rootClientId );
244
244
 
245
245
  const directInsertBlock =
246
- shouldDirectInsert &&
247
- __experimentalGetDirectInsertBlock( rootClientId );
246
+ shouldDirectInsert && getDirectInsertBlock( rootClientId );
248
247
 
249
248
  const settings = getSettings();
250
249
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { AccessibilityInfo, Platform, Text } from 'react-native';
4
+ import { AccessibilityInfo, Platform } from 'react-native';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -35,33 +35,17 @@ const VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;
35
35
  const defaultRenderToggle = ( {
36
36
  onToggle,
37
37
  disabled,
38
- style,
39
- containerStyle,
38
+ iconStyle,
39
+ buttonStyle,
40
40
  onLongPress,
41
- useExpandedMode,
42
41
  } ) => {
43
- // The "expanded mode" refers to the editor's appearance when no blocks
44
- // are currently selected. The "add block" button has a separate style
45
- // for the "expanded mode", which are added via the below "expandedModeViewProps"
46
- // and "expandedModeViewText" variables.
47
- const expandedModeViewProps = useExpandedMode && {
48
- icon: <Icon icon={ plus } style={ style } />,
49
- customContainerStyles: containerStyle,
50
- fixedRatio: false,
51
- };
52
- const expandedModeViewText = (
53
- <Text style={ styles[ 'inserter-menu__add-block-button-text' ] }>
54
- { __( 'Add blocks' ) }
55
- </Text>
56
- );
57
-
58
42
  return (
59
43
  <ToolbarButton
60
44
  title={ _x(
61
45
  'Add block',
62
46
  'Generic label for block inserter button'
63
47
  ) }
64
- icon={ <Icon icon={ plusCircleFilled } style={ style } /> }
48
+ icon={ <Icon icon={ plus } style={ iconStyle } /> }
65
49
  onClick={ onToggle }
66
50
  extraProps={ {
67
51
  hint: __( 'Double tap to add a block' ),
@@ -69,12 +53,12 @@ const defaultRenderToggle = ( {
69
53
  // usually required for components. See: https://github.com/WordPress/gutenberg/pull/18832#issuecomment-561411389.
70
54
  testID: 'add-block-button',
71
55
  onLongPress,
56
+ hitSlop: { top: 10, bottom: 10, left: 10, right: 10 },
72
57
  } }
73
58
  isDisabled={ disabled }
74
- { ...expandedModeViewProps }
75
- >
76
- { useExpandedMode && expandedModeViewText }
77
- </ToolbarButton>
59
+ customContainerStyles={ buttonStyle }
60
+ fixedRatio={ false }
61
+ />
78
62
  );
79
63
  };
80
64
 
@@ -249,23 +233,21 @@ export class Inserter extends Component {
249
233
  renderToggle = defaultRenderToggle,
250
234
  getStylesFromColorScheme,
251
235
  showSeparator,
252
- useExpandedMode,
253
236
  } = this.props;
254
237
  if ( showSeparator && isOpen ) {
255
238
  return <BlockInsertionPoint />;
256
239
  }
257
- const style = useExpandedMode
258
- ? styles[ 'inserter-menu__add-block-button-icon--expanded' ]
259
- : getStylesFromColorScheme(
260
- styles[ 'inserter-menu__add-block-button-icon' ],
261
- styles[ 'inserter-menu__add-block-button-icon--dark' ]
262
- );
263
-
264
- const containerStyle = getStylesFromColorScheme(
240
+
241
+ const buttonStyle = getStylesFromColorScheme(
265
242
  styles[ 'inserter-menu__add-block-button' ],
266
243
  styles[ 'inserter-menu__add-block-button--dark' ]
267
244
  );
268
245
 
246
+ const iconStyle = getStylesFromColorScheme(
247
+ styles[ 'inserter-menu__add-block-button-icon' ],
248
+ styles[ 'inserter-menu__add-block-button-icon--dark' ]
249
+ );
250
+
269
251
  const onPress = () => {
270
252
  this.setState(
271
253
  {
@@ -301,10 +283,9 @@ export class Inserter extends Component {
301
283
  onToggle: onPress,
302
284
  isOpen,
303
285
  disabled,
304
- style,
305
- containerStyle,
286
+ iconStyle,
287
+ buttonStyle,
306
288
  onLongPress,
307
- useExpandedMode,
308
289
  } ) }
309
290
  <Picker
310
291
  ref={ ( instance ) => ( this.picker = instance ) }
@@ -10,7 +10,24 @@ import { close } from '@wordpress/icons';
10
10
  import { store as preferencesStore } from '@wordpress/preferences';
11
11
 
12
12
  const PREFERENCE_NAME = 'isResuableBlocksrRenameHintVisible';
13
+ /*
14
+ * This hook was added in 6.3 to help users with the transition from Reusable blocks to Patterns.
15
+ * It is only exported for use in the reusable-blocks package as well as block-editor.
16
+ * It will be removed in 6.4. and should not be used in any new code.
17
+ */
18
+ export function useReusableBlocksRenameHint() {
19
+ return useSelect(
20
+ ( select ) =>
21
+ select( preferencesStore ).get( 'core', PREFERENCE_NAME ) ?? true,
22
+ []
23
+ );
24
+ }
13
25
 
26
+ /*
27
+ * This component was added in 6.3 to help users with the transition from Reusable blocks to Patterns.
28
+ * It is only exported for use in the reusable-blocks package as well as block-editor.
29
+ * It will be removed in 6.4. and should not be used in any new code.
30
+ */
14
31
  export default function ReusableBlocksRenameHint() {
15
32
  const isReusableBlocksRenameHint = useSelect(
16
33
  ( select ) =>
@@ -29,7 +46,7 @@ export default function ReusableBlocksRenameHint() {
29
46
  <div ref={ ref } className="reusable-blocks-menu-items__rename-hint">
30
47
  <div className="reusable-blocks-menu-items__rename-hint-content">
31
48
  { __(
32
- 'Reusable blocks are now called patterns. A synced pattern will behave in exactly the same way as a reusable block.'
49
+ 'Reusable blocks are now synced patterns. A synced pattern will behave in exactly the same way as a reusable block.'
33
50
  ) }
34
51
  </div>
35
52
  <Button
@@ -22,7 +22,10 @@ function ReusableBlocksList( { onHover, onInsert, rootClientId } ) {
22
22
  );
23
23
 
24
24
  const filteredItems = useMemo( () => {
25
- return items.filter( ( { category } ) => category === 'reusable' );
25
+ return items.filter(
26
+ ( { category, syncStatus } ) =>
27
+ category === 'reusable' && syncStatus !== 'unsynced'
28
+ );
26
29
  }, [ items ] );
27
30
 
28
31
  if ( filteredItems.length === 0 ) {
@@ -1,26 +1,21 @@
1
1
  /** @format */
2
-
3
- .inserter-menu__add-block-button-icon {
4
- color: $blue-50;
2
+ .inserter-menu__add-block-button {
3
+ border-radius: 2px;
4
+ background-color: $black;
5
+ margin: 9px $grid-unit-20 10px $grid-unit-20;
6
+ padding: 0;
5
7
  }
6
8
 
7
- .inserter-menu__add-block-button-icon--dark {
8
- color: $blue-30;
9
+ .inserter-menu__add-block-button--dark {
10
+ background-color: $white;
9
11
  }
10
12
 
11
- .inserter-menu__add-block-button-icon--expanded {
13
+ .inserter-menu__add-block-button-icon {
12
14
  color: $white;
13
15
  }
14
16
 
15
- .inserter-menu__add-block-button {
16
- border-radius: 22px;
17
- background-color: $blue-50;
18
- margin: 8px;
19
- padding: 6px 16px 6px 12px;
20
- }
21
-
22
- .inserter-menu__add-block-button--dark {
23
- background-color: $blue-30;
17
+ .inserter-menu__add-block-button-icon--dark {
18
+ color: $black;
24
19
  }
25
20
 
26
21
  .inserter-menu__add-block-button-text {
@@ -49,7 +49,9 @@ function InserterListItem( {
49
49
  ];
50
50
  }, [ item.name, item.initialAttributes, item.initialAttributes ] );
51
51
 
52
- const isSynced = isReusableBlock( item ) || isTemplatePart( item );
52
+ const isSynced =
53
+ ( isReusableBlock( item ) && item.syncStatus !== 'unsynced' ) ||
54
+ isTemplatePart( item );
53
55
 
54
56
  return (
55
57
  <InserterDraggableBlocks
@@ -15,6 +15,16 @@ The distinction between the two components is perhaps best summarized by the fol
15
15
  - `<URLInput>` - an input for presenting and managing selection behaviors associated with choosing a URL, optionally from a pool of available candidates.
16
16
  - `<LinkControl>` - includes the features of `<URLInput>`, plus additional UI and behaviors to control how this URL applies to the concept of a "link". This includes link "settings" (eg: "opens in new tab", etc) and dynamic, "on the fly" link creation capabilities.
17
17
 
18
+ ## Persistent "Advanced" (settings) toggle state
19
+
20
+ By default the link "settings" are hidden and can be toggled open/closed by way of a button labelled `Advanced` in the UI.
21
+
22
+ In some circumstances if may be desirable to persist the toggle state of this portion of the UI so that it remains in the last state triggered by user interaction.
23
+
24
+ For example, once the user has toggled the UI to "open", then it may remain open across all links on the site until such time as the user toggles the UI back again.
25
+
26
+ Consumers who which to take advantage of this functionality should ensure that their block editor environment utilizes the [`@wordpress/preferences`](packages/preferences/README.md) package. By default the `<LinkControl>` component will attempt to persist the state of UI to a setting named `linkControlSettingsDrawer` with a scope of `core/block-editor`. If the preferences package is not available then local state is used and the setting will not be persisted.
27
+
18
28
  ## Search Suggestions
19
29
 
20
30
  When creating links the `LinkControl` component will handle two kinds of input from users:
@@ -69,9 +79,7 @@ An array of settings objects associated with a link (for example: a setting to d
69
79
  To disable settings, pass in an empty array. for example:
70
80
 
71
81
  ```jsx
72
- <LinkControl
73
- settings={ [] }
74
- />
82
+ <LinkControl settings={ [] } />
75
83
  ```
76
84
 
77
85
  ### onChange
@@ -192,6 +200,7 @@ A `suggestion` should have the following shape:
192
200
  )}
193
201
  />
194
202
  ```
203
+
195
204
  ### renderControlBottom
196
205
 
197
206
  - Type: `Function`