@wordpress/block-editor 10.5.0 → 11.1.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 (716) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +2 -1
  3. package/build/autocompleters/block.js +2 -6
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/autocompleters/link.js +2 -0
  6. package/build/autocompleters/link.js.map +1 -1
  7. package/build/components/alignment-control/ui.js +1 -7
  8. package/build/components/alignment-control/ui.js.map +1 -1
  9. package/build/components/block-alignment-control/use-available-alignments.js +4 -3
  10. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  11. package/build/components/block-card/index.js +51 -3
  12. package/build/components/block-card/index.js.map +1 -1
  13. package/build/components/block-draggable/index.native.js +46 -39
  14. package/build/components/block-draggable/index.native.js.map +1 -1
  15. package/build/components/block-edit/edit.js +4 -3
  16. package/build/components/block-edit/edit.js.map +1 -1
  17. package/build/components/block-edit/edit.native.js +4 -7
  18. package/build/components/block-edit/edit.native.js.map +1 -1
  19. package/build/components/block-icon/index.js +4 -2
  20. package/build/components/block-icon/index.js.map +1 -1
  21. package/build/components/block-inspector/index.js +90 -37
  22. package/build/components/block-inspector/index.js.map +1 -1
  23. package/build/components/block-list/block-list-context.native.js +5 -8
  24. package/build/components/block-list/block-list-context.native.js.map +1 -1
  25. package/build/components/block-list/block.js +55 -24
  26. package/build/components/block-list/block.js.map +1 -1
  27. package/build/components/block-list/block.native.js +61 -28
  28. package/build/components/block-list/block.native.js.map +1 -1
  29. package/build/components/block-list-appender/index.js +46 -34
  30. package/build/components/block-list-appender/index.js.map +1 -1
  31. package/build/components/block-list-appender/index.native.js +39 -34
  32. package/build/components/block-list-appender/index.native.js.map +1 -1
  33. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +30 -22
  34. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  35. package/build/components/block-mobile-toolbar/index.native.js +1 -1
  36. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  37. package/build/components/block-pattern-setup/index.js +16 -8
  38. package/build/components/block-pattern-setup/index.js.map +1 -1
  39. package/build/components/block-patterns-list/index.js +33 -11
  40. package/build/components/block-patterns-list/index.js.map +1 -1
  41. package/build/components/block-preview/auto.js +9 -3
  42. package/build/components/block-preview/auto.js.map +1 -1
  43. package/build/components/block-preview/index.js +5 -9
  44. package/build/components/block-preview/index.js.map +1 -1
  45. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -2
  46. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  47. package/build/components/block-styles/index.native.js +1 -3
  48. package/build/components/block-styles/index.native.js.map +1 -1
  49. package/build/components/block-styles/utils.js +7 -10
  50. package/build/components/block-styles/utils.js.map +1 -1
  51. package/build/components/block-toolbar/index.js +5 -1
  52. package/build/components/block-toolbar/index.js.map +1 -1
  53. package/build/components/block-toolbar/index.native.js +6 -8
  54. package/build/components/block-toolbar/index.native.js.map +1 -1
  55. package/build/components/block-tools/insertion-point.js +8 -49
  56. package/build/components/block-tools/insertion-point.js.map +1 -1
  57. package/build/components/block-tools/selected-block-popover.js +1 -3
  58. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  59. package/build/components/block-variation-picker/index.js +2 -3
  60. package/build/components/block-variation-picker/index.js.map +1 -1
  61. package/build/components/colors/utils.js +2 -6
  62. package/build/components/colors/utils.js.map +1 -1
  63. package/build/components/colors-gradients/control.js +0 -3
  64. package/build/components/colors-gradients/control.js.map +1 -1
  65. package/build/components/colors-gradients/dropdown.js +0 -2
  66. package/build/components/colors-gradients/dropdown.js.map +1 -1
  67. package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -19
  68. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  69. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -3
  70. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  71. package/build/components/copy-handler/index.js +37 -9
  72. package/build/components/copy-handler/index.js.map +1 -1
  73. package/build/components/font-sizes/fluid-utils.js +5 -2
  74. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  75. package/build/components/font-sizes/utils.js +10 -4
  76. package/build/components/font-sizes/utils.js.map +1 -1
  77. package/build/components/font-sizes/with-font-sizes.js +11 -6
  78. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  79. package/build/components/gradients/use-gradient.js +2 -8
  80. package/build/components/gradients/use-gradient.js.map +1 -1
  81. package/build/components/height-control/index.js +115 -0
  82. package/build/components/height-control/index.js.map +1 -0
  83. package/build/components/iframe/index.js +22 -101
  84. package/build/components/iframe/index.js.map +1 -1
  85. package/build/components/iframe/use-compatibility-styles.js +93 -0
  86. package/build/components/iframe/use-compatibility-styles.js.map +1 -0
  87. package/build/components/image-editor/use-save-image.js +2 -0
  88. package/build/components/image-editor/use-save-image.js.map +1 -1
  89. package/build/components/image-editor/zoom-dropdown.js +1 -0
  90. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  91. package/build/components/index.js +9 -0
  92. package/build/components/index.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +25 -7
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/use-inner-block-template-sync.js +25 -10
  96. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  97. package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  98. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab.js +25 -46
  100. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  101. package/build/components/inserter/block-types-tab.js +3 -1
  102. package/build/components/inserter/block-types-tab.js.map +1 -1
  103. package/build/components/inserter/hooks/use-debounced-input.js +27 -0
  104. package/build/components/inserter/hooks/use-debounced-input.js.map +1 -0
  105. package/build/components/inserter/hooks/use-insertion-point.js +4 -3
  106. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  107. package/build/components/inserter/index.js +20 -6
  108. package/build/components/inserter/index.js.map +1 -1
  109. package/build/components/inserter/index.native.js +3 -4
  110. package/build/components/inserter/index.native.js.map +1 -1
  111. package/build/components/inserter/media-tab/hooks.js +106 -0
  112. package/build/components/inserter/media-tab/hooks.js.map +1 -0
  113. package/build/components/inserter/media-tab/index.js +32 -0
  114. package/build/components/inserter/media-tab/index.js.map +1 -0
  115. package/build/components/inserter/media-tab/media-list.js +100 -0
  116. package/build/components/inserter/media-tab/media-list.js.map +1 -0
  117. package/build/components/inserter/media-tab/media-panel.js +96 -0
  118. package/build/components/inserter/media-tab/media-panel.js.map +1 -0
  119. package/build/components/inserter/media-tab/media-tab.js +120 -0
  120. package/build/components/inserter/media-tab/media-tab.js.map +1 -0
  121. package/build/components/inserter/media-tab/utils.js +54 -0
  122. package/build/components/inserter/media-tab/utils.js.map +1 -0
  123. package/build/components/inserter/menu.js +35 -12
  124. package/build/components/inserter/menu.js.map +1 -1
  125. package/build/components/inserter/mobile-tab-navigation.js +70 -0
  126. package/build/components/inserter/mobile-tab-navigation.js.map +1 -0
  127. package/build/components/inserter/quick-inserter.js +7 -3
  128. package/build/components/inserter/quick-inserter.js.map +1 -1
  129. package/build/components/inserter/search-items.js +15 -14
  130. package/build/components/inserter/search-items.js.map +1 -1
  131. package/build/components/inserter/search-results.js +7 -3
  132. package/build/components/inserter/search-results.js.map +1 -1
  133. package/build/components/inserter/tabs.js +16 -2
  134. package/build/components/inserter/tabs.js.map +1 -1
  135. package/build/components/inserter-list-item/index.js +4 -1
  136. package/build/components/inserter-list-item/index.js.map +1 -1
  137. package/build/components/inspector-controls/groups.js +2 -0
  138. package/build/components/inspector-controls/groups.js.map +1 -1
  139. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +46 -0
  140. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  141. package/build/components/inspector-controls-tabs/index.js +71 -0
  142. package/build/components/inspector-controls-tabs/index.js.map +1 -0
  143. package/build/components/inspector-controls-tabs/settings-tab.js +28 -0
  144. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  145. package/build/components/inspector-controls-tabs/styles-tab.js +61 -0
  146. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  147. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +97 -0
  148. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  149. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +18 -0
  150. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  151. package/build/components/inspector-controls-tabs/utils.js +37 -0
  152. package/build/components/inspector-controls-tabs/utils.js.map +1 -0
  153. package/build/components/link-control/index.js +1 -0
  154. package/build/components/link-control/index.js.map +1 -1
  155. package/build/components/link-control/search-input.js +0 -1
  156. package/build/components/link-control/search-input.js.map +1 -1
  157. package/build/components/link-control/use-internal-input-value.js +3 -3
  158. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  159. package/build/components/list-view/block-select-button.js +1 -1
  160. package/build/components/list-view/block-select-button.js.map +1 -1
  161. package/build/components/list-view/block.js +5 -2
  162. package/build/components/list-view/block.js.map +1 -1
  163. package/build/components/list-view/branch.js +13 -12
  164. package/build/components/list-view/branch.js.map +1 -1
  165. package/build/components/media-upload/index.native.js +2 -3
  166. package/build/components/media-upload/index.native.js.map +1 -1
  167. package/build/components/off-canvas-editor/appender.js +99 -0
  168. package/build/components/off-canvas-editor/appender.js.map +1 -0
  169. package/build/components/off-canvas-editor/block-edit-button.js +50 -0
  170. package/build/components/off-canvas-editor/block-edit-button.js.map +1 -0
  171. package/build/components/off-canvas-editor/block-select-button.js +3 -2
  172. package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
  173. package/build/components/off-canvas-editor/block.js +82 -38
  174. package/build/components/off-canvas-editor/block.js.map +1 -1
  175. package/build/components/off-canvas-editor/branch.js +3 -5
  176. package/build/components/off-canvas-editor/branch.js.map +1 -1
  177. package/build/components/off-canvas-editor/index.js +24 -11
  178. package/build/components/off-canvas-editor/index.js.map +1 -1
  179. package/build/components/off-canvas-editor/leaf.js +1 -1
  180. package/build/components/off-canvas-editor/leaf.js.map +1 -1
  181. package/build/components/off-canvas-editor/link-ui.js +185 -0
  182. package/build/components/off-canvas-editor/link-ui.js.map +1 -0
  183. package/build/components/off-canvas-editor/update-attributes.js +108 -0
  184. package/build/components/off-canvas-editor/update-attributes.js.map +1 -0
  185. package/build/components/off-canvas-editor/use-inserted-block.js +58 -0
  186. package/build/components/off-canvas-editor/use-inserted-block.js.map +1 -0
  187. package/build/components/responsive-block-control/label.js.map +1 -1
  188. package/build/components/rich-text/format-edit.js +12 -10
  189. package/build/components/rich-text/format-edit.js.map +1 -1
  190. package/build/components/rich-text/format-toolbar/index.js +8 -4
  191. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  192. package/build/components/rich-text/index.js +3 -3
  193. package/build/components/rich-text/index.js.map +1 -1
  194. package/build/components/rich-text/index.native.js +0 -2
  195. package/build/components/rich-text/index.native.js.map +1 -1
  196. package/build/components/rich-text/use-insert-replacement-text.js +43 -0
  197. package/build/components/rich-text/use-insert-replacement-text.js.map +1 -0
  198. package/build/components/rich-text/use-paste-handler.js +21 -12
  199. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  200. package/build/components/rich-text/use-undo-automatic-change.js +9 -1
  201. package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
  202. package/build/components/rich-text/utils.js +1 -19
  203. package/build/components/rich-text/utils.js.map +1 -1
  204. package/build/components/spacing-sizes-control/index.js +0 -1
  205. package/build/components/spacing-sizes-control/index.js.map +1 -1
  206. package/build/components/spacing-sizes-control/spacing-input-control.js +12 -3
  207. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  208. package/build/components/spacing-sizes-control/utils.js +1 -1
  209. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  210. package/build/components/typewriter/index.js +1 -1
  211. package/build/components/typewriter/index.js.map +1 -1
  212. package/build/components/ungroup-button/index.native.js +4 -2
  213. package/build/components/ungroup-button/index.native.js.map +1 -1
  214. package/build/components/url-input/index.js +46 -43
  215. package/build/components/url-input/index.js.map +1 -1
  216. package/build/components/url-popover/image-url-input-ui.js +2 -2
  217. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  218. package/build/components/use-block-display-information/index.js +8 -4
  219. package/build/components/use-block-display-information/index.js.map +1 -1
  220. package/build/components/use-setting/index.js +9 -1
  221. package/build/components/use-setting/index.js.map +1 -1
  222. package/build/components/writing-flow/index.js +1 -1
  223. package/build/components/writing-flow/index.js.map +1 -1
  224. package/build/hooks/border.js +0 -1
  225. package/build/hooks/border.js.map +1 -1
  226. package/build/hooks/child-layout.js +209 -0
  227. package/build/hooks/child-layout.js.map +1 -0
  228. package/build/hooks/color-panel.js +0 -1
  229. package/build/hooks/color-panel.js.map +1 -1
  230. package/build/hooks/color.js +1 -2
  231. package/build/hooks/color.js.map +1 -1
  232. package/build/hooks/content-lock-ui.js +1 -1
  233. package/build/hooks/content-lock-ui.js.map +1 -1
  234. package/build/hooks/dimensions.js +25 -7
  235. package/build/hooks/dimensions.js.map +1 -1
  236. package/build/hooks/font-family.js +4 -4
  237. package/build/hooks/font-family.js.map +1 -1
  238. package/build/hooks/font-size.js +5 -3
  239. package/build/hooks/font-size.js.map +1 -1
  240. package/build/hooks/layout.js +57 -1
  241. package/build/hooks/layout.js.map +1 -1
  242. package/build/hooks/min-height.js +4 -10
  243. package/build/hooks/min-height.js.map +1 -1
  244. package/build/hooks/use-typography-props.js +11 -8
  245. package/build/hooks/use-typography-props.js.map +1 -1
  246. package/build/store/reducer.js +411 -274
  247. package/build/store/reducer.js.map +1 -1
  248. package/build/store/selectors.js +58 -48
  249. package/build/store/selectors.js.map +1 -1
  250. package/build/utils/pasting.js +6 -11
  251. package/build/utils/pasting.js.map +1 -1
  252. package/build/utils/sorting.js +63 -0
  253. package/build/utils/sorting.js.map +1 -0
  254. package/build-module/autocompleters/block.js +2 -6
  255. package/build-module/autocompleters/block.js.map +1 -1
  256. package/build-module/autocompleters/link.js +2 -0
  257. package/build-module/autocompleters/link.js.map +1 -1
  258. package/build-module/components/alignment-control/ui.js +1 -6
  259. package/build-module/components/alignment-control/ui.js.map +1 -1
  260. package/build-module/components/block-alignment-control/use-available-alignments.js +4 -3
  261. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  262. package/build-module/components/block-card/index.js +45 -3
  263. package/build-module/components/block-card/index.js.map +1 -1
  264. package/build-module/components/block-draggable/index.native.js +40 -31
  265. package/build-module/components/block-draggable/index.native.js.map +1 -1
  266. package/build-module/components/block-edit/edit.js +4 -2
  267. package/build-module/components/block-edit/edit.js.map +1 -1
  268. package/build-module/components/block-edit/edit.native.js +4 -6
  269. package/build-module/components/block-edit/edit.native.js.map +1 -1
  270. package/build-module/components/block-icon/index.js +4 -2
  271. package/build-module/components/block-icon/index.js.map +1 -1
  272. package/build-module/components/block-inspector/index.js +87 -34
  273. package/build-module/components/block-inspector/index.js.map +1 -1
  274. package/build-module/components/block-list/block-list-context.native.js +5 -8
  275. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  276. package/build-module/components/block-list/block.js +55 -25
  277. package/build-module/components/block-list/block.js.map +1 -1
  278. package/build-module/components/block-list/block.native.js +61 -28
  279. package/build-module/components/block-list/block.native.js.map +1 -1
  280. package/build-module/components/block-list-appender/index.js +46 -34
  281. package/build-module/components/block-list-appender/index.js.map +1 -1
  282. package/build-module/components/block-list-appender/index.native.js +39 -32
  283. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  284. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +31 -24
  285. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  286. package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
  287. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  288. package/build-module/components/block-pattern-setup/index.js +16 -8
  289. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  290. package/build-module/components/block-patterns-list/index.js +35 -13
  291. package/build-module/components/block-patterns-list/index.js.map +1 -1
  292. package/build-module/components/block-preview/auto.js +9 -3
  293. package/build-module/components/block-preview/auto.js.map +1 -1
  294. package/build-module/components/block-preview/index.js +5 -8
  295. package/build-module/components/block-preview/index.js.map +1 -1
  296. package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -2
  297. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  298. package/build-module/components/block-styles/index.native.js +1 -2
  299. package/build-module/components/block-styles/index.native.js.map +1 -1
  300. package/build-module/components/block-styles/utils.js +7 -9
  301. package/build-module/components/block-styles/utils.js.map +1 -1
  302. package/build-module/components/block-toolbar/index.js +6 -2
  303. package/build-module/components/block-toolbar/index.js.map +1 -1
  304. package/build-module/components/block-toolbar/index.native.js +6 -8
  305. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  306. package/build-module/components/block-tools/insertion-point.js +8 -49
  307. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  308. package/build-module/components/block-tools/selected-block-popover.js +1 -2
  309. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  310. package/build-module/components/block-variation-picker/index.js +2 -3
  311. package/build-module/components/block-variation-picker/index.js.map +1 -1
  312. package/build-module/components/colors/utils.js +3 -7
  313. package/build-module/components/colors/utils.js.map +1 -1
  314. package/build-module/components/colors-gradients/control.js +0 -3
  315. package/build-module/components/colors-gradients/control.js.map +1 -1
  316. package/build-module/components/colors-gradients/dropdown.js +0 -2
  317. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  318. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +4 -19
  319. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  320. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
  321. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  322. package/build-module/components/copy-handler/index.js +38 -10
  323. package/build-module/components/copy-handler/index.js.map +1 -1
  324. package/build-module/components/font-sizes/fluid-utils.js +5 -2
  325. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  326. package/build-module/components/font-sizes/utils.js +11 -5
  327. package/build-module/components/font-sizes/utils.js.map +1 -1
  328. package/build-module/components/font-sizes/with-font-sizes.js +12 -7
  329. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  330. package/build-module/components/gradients/use-gradient.js +2 -7
  331. package/build-module/components/gradients/use-gradient.js.map +1 -1
  332. package/build-module/components/height-control/index.js +103 -0
  333. package/build-module/components/height-control/index.js.map +1 -0
  334. package/build-module/components/iframe/index.js +21 -101
  335. package/build-module/components/iframe/index.js.map +1 -1
  336. package/build-module/components/iframe/use-compatibility-styles.js +85 -0
  337. package/build-module/components/iframe/use-compatibility-styles.js.map +1 -0
  338. package/build-module/components/image-editor/use-save-image.js +2 -0
  339. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  340. package/build-module/components/image-editor/zoom-dropdown.js +1 -0
  341. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  342. package/build-module/components/index.js +1 -0
  343. package/build-module/components/index.js.map +1 -1
  344. package/build-module/components/inner-blocks/index.js +27 -9
  345. package/build-module/components/inner-blocks/index.js.map +1 -1
  346. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +23 -10
  347. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  348. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  349. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  350. package/build-module/components/inserter/block-patterns-tab.js +27 -49
  351. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  352. package/build-module/components/inserter/block-types-tab.js +3 -2
  353. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  354. package/build-module/components/inserter/hooks/use-debounced-input.js +18 -0
  355. package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -0
  356. package/build-module/components/inserter/hooks/use-insertion-point.js +4 -3
  357. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  358. package/build-module/components/inserter/index.js +20 -6
  359. package/build-module/components/inserter/index.js.map +1 -1
  360. package/build-module/components/inserter/index.native.js +3 -5
  361. package/build-module/components/inserter/index.native.js.map +1 -1
  362. package/build-module/components/inserter/media-tab/hooks.js +92 -0
  363. package/build-module/components/inserter/media-tab/hooks.js.map +1 -0
  364. package/build-module/components/inserter/media-tab/index.js +4 -0
  365. package/build-module/components/inserter/media-tab/index.js.map +1 -0
  366. package/build-module/components/inserter/media-tab/media-list.js +86 -0
  367. package/build-module/components/inserter/media-tab/media-list.js.map +1 -0
  368. package/build-module/components/inserter/media-tab/media-panel.js +77 -0
  369. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -0
  370. package/build-module/components/inserter/media-tab/media-tab.js +100 -0
  371. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -0
  372. package/build-module/components/inserter/media-tab/utils.js +45 -0
  373. package/build-module/components/inserter/media-tab/utils.js.map +1 -0
  374. package/build-module/components/inserter/menu.js +33 -12
  375. package/build-module/components/inserter/menu.js.map +1 -1
  376. package/build-module/components/inserter/mobile-tab-navigation.js +61 -0
  377. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -0
  378. package/build-module/components/inserter/quick-inserter.js +7 -3
  379. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  380. package/build-module/components/inserter/search-items.js +15 -13
  381. package/build-module/components/inserter/search-items.js.map +1 -1
  382. package/build-module/components/inserter/search-results.js +7 -4
  383. package/build-module/components/inserter/search-results.js.map +1 -1
  384. package/build-module/components/inserter/tabs.js +15 -2
  385. package/build-module/components/inserter/tabs.js.map +1 -1
  386. package/build-module/components/inserter-list-item/index.js +5 -2
  387. package/build-module/components/inserter-list-item/index.js.map +1 -1
  388. package/build-module/components/inspector-controls/groups.js +2 -0
  389. package/build-module/components/inspector-controls/groups.js.map +1 -1
  390. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +32 -0
  391. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  392. package/build-module/components/inspector-controls-tabs/index.js +56 -0
  393. package/build-module/components/inspector-controls-tabs/index.js.map +1 -0
  394. package/build-module/components/inspector-controls-tabs/settings-tab.js +17 -0
  395. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  396. package/build-module/components/inspector-controls-tabs/styles-tab.js +46 -0
  397. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  398. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +81 -0
  399. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  400. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +8 -0
  401. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  402. package/build-module/components/inspector-controls-tabs/utils.js +26 -0
  403. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -0
  404. package/build-module/components/link-control/index.js +1 -0
  405. package/build-module/components/link-control/index.js.map +1 -1
  406. package/build-module/components/link-control/search-input.js +0 -1
  407. package/build-module/components/link-control/search-input.js.map +1 -1
  408. package/build-module/components/link-control/use-internal-input-value.js +3 -3
  409. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  410. package/build-module/components/list-view/block-select-button.js +1 -1
  411. package/build-module/components/list-view/block-select-button.js.map +1 -1
  412. package/build-module/components/list-view/block.js +5 -2
  413. package/build-module/components/list-view/block.js.map +1 -1
  414. package/build-module/components/list-view/branch.js +12 -11
  415. package/build-module/components/list-view/branch.js.map +1 -1
  416. package/build-module/components/media-upload/index.native.js +2 -4
  417. package/build-module/components/media-upload/index.native.js.map +1 -1
  418. package/build-module/components/off-canvas-editor/appender.js +83 -0
  419. package/build-module/components/off-canvas-editor/appender.js.map +1 -0
  420. package/build-module/components/off-canvas-editor/block-edit-button.js +35 -0
  421. package/build-module/components/off-canvas-editor/block-edit-button.js.map +1 -0
  422. package/build-module/components/off-canvas-editor/block-select-button.js +3 -2
  423. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
  424. package/build-module/components/off-canvas-editor/block.js +83 -41
  425. package/build-module/components/off-canvas-editor/block.js.map +1 -1
  426. package/build-module/components/off-canvas-editor/branch.js +3 -4
  427. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  428. package/build-module/components/off-canvas-editor/index.js +24 -12
  429. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  430. package/build-module/components/off-canvas-editor/leaf.js +1 -1
  431. package/build-module/components/off-canvas-editor/leaf.js.map +1 -1
  432. package/build-module/components/off-canvas-editor/link-ui.js +165 -0
  433. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -0
  434. package/build-module/components/off-canvas-editor/update-attributes.js +97 -0
  435. package/build-module/components/off-canvas-editor/update-attributes.js.map +1 -0
  436. package/build-module/components/off-canvas-editor/use-inserted-block.js +47 -0
  437. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +1 -0
  438. package/build-module/components/responsive-block-control/label.js +1 -2
  439. package/build-module/components/responsive-block-control/label.js.map +1 -1
  440. package/build-module/components/rich-text/format-edit.js +12 -9
  441. package/build-module/components/rich-text/format-edit.js.map +1 -1
  442. package/build-module/components/rich-text/format-toolbar/index.js +6 -2
  443. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  444. package/build-module/components/rich-text/index.js +2 -3
  445. package/build-module/components/rich-text/index.js.map +1 -1
  446. package/build-module/components/rich-text/index.native.js +0 -2
  447. package/build-module/components/rich-text/index.native.js.map +1 -1
  448. package/build-module/components/rich-text/use-insert-replacement-text.js +33 -0
  449. package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -0
  450. package/build-module/components/rich-text/use-paste-handler.js +22 -12
  451. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  452. package/build-module/components/rich-text/use-undo-automatic-change.js +9 -1
  453. package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
  454. package/build-module/components/rich-text/utils.js +1 -16
  455. package/build-module/components/rich-text/utils.js.map +1 -1
  456. package/build-module/components/spacing-sizes-control/index.js +0 -1
  457. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  458. package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -3
  459. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  460. package/build-module/components/spacing-sizes-control/utils.js +1 -1
  461. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  462. package/build-module/components/typewriter/index.js +1 -1
  463. package/build-module/components/typewriter/index.js.map +1 -1
  464. package/build-module/components/ungroup-button/index.native.js +3 -2
  465. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  466. package/build-module/components/url-input/index.js +46 -43
  467. package/build-module/components/url-input/index.js.map +1 -1
  468. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  469. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  470. package/build-module/components/use-block-display-information/index.js +9 -5
  471. package/build-module/components/use-block-display-information/index.js.map +1 -1
  472. package/build-module/components/use-setting/index.js +8 -1
  473. package/build-module/components/use-setting/index.js.map +1 -1
  474. package/build-module/components/writing-flow/index.js +1 -1
  475. package/build-module/components/writing-flow/index.js.map +1 -1
  476. package/build-module/hooks/border.js +0 -1
  477. package/build-module/hooks/border.js.map +1 -1
  478. package/build-module/hooks/child-layout.js +189 -0
  479. package/build-module/hooks/child-layout.js.map +1 -0
  480. package/build-module/hooks/color-panel.js +0 -1
  481. package/build-module/hooks/color-panel.js.map +1 -1
  482. package/build-module/hooks/color.js +1 -2
  483. package/build-module/hooks/color.js.map +1 -1
  484. package/build-module/hooks/content-lock-ui.js +1 -1
  485. package/build-module/hooks/content-lock-ui.js.map +1 -1
  486. package/build-module/hooks/dimensions.js +25 -8
  487. package/build-module/hooks/dimensions.js.map +1 -1
  488. package/build-module/hooks/font-family.js +5 -5
  489. package/build-module/hooks/font-family.js.map +1 -1
  490. package/build-module/hooks/font-size.js +5 -3
  491. package/build-module/hooks/font-size.js.map +1 -1
  492. package/build-module/hooks/layout.js +55 -0
  493. package/build-module/hooks/layout.js.map +1 -1
  494. package/build-module/hooks/min-height.js +3 -9
  495. package/build-module/hooks/min-height.js.map +1 -1
  496. package/build-module/hooks/use-typography-props.js +11 -8
  497. package/build-module/hooks/use-typography-props.js.map +1 -1
  498. package/build-module/store/reducer.js +409 -274
  499. package/build-module/store/reducer.js.map +1 -1
  500. package/build-module/store/selectors.js +55 -48
  501. package/build-module/store/selectors.js.map +1 -1
  502. package/build-module/utils/pasting.js +6 -10
  503. package/build-module/utils/pasting.js.map +1 -1
  504. package/build-module/utils/sorting.js +56 -0
  505. package/build-module/utils/sorting.js.map +1 -0
  506. package/build-style/content-rtl.css +701 -0
  507. package/build-style/content.css +701 -0
  508. package/build-style/default-editor-styles-rtl.css +17 -3
  509. package/build-style/default-editor-styles.css +17 -3
  510. package/build-style/style-rtl.css +313 -665
  511. package/build-style/style.css +313 -665
  512. package/package.json +32 -30
  513. package/src/autocompleters/block.js +2 -6
  514. package/src/autocompleters/link.js +2 -0
  515. package/src/components/alignment-control/test/index.js +6 -1
  516. package/src/components/alignment-control/ui.js +1 -7
  517. package/src/components/block-alignment-control/test/index.js +6 -1
  518. package/src/components/block-alignment-control/use-available-alignments.js +4 -3
  519. package/src/components/block-card/index.js +46 -2
  520. package/src/components/block-card/style.scss +4 -0
  521. package/src/components/block-content-overlay/{style.scss → content.scss} +7 -1
  522. package/src/components/block-draggable/content.scss +20 -0
  523. package/src/components/block-draggable/index.native.js +54 -40
  524. package/src/components/block-draggable/style.scss +0 -21
  525. package/src/components/block-draggable/test/helpers.native.js +7 -9
  526. package/src/components/block-draggable/test/index.native.js +35 -45
  527. package/src/components/block-edit/edit.js +5 -2
  528. package/src/components/block-edit/edit.native.js +5 -6
  529. package/src/components/block-icon/index.js +4 -2
  530. package/src/components/block-icon/test/index.js +9 -5
  531. package/src/components/block-inspector/index.js +173 -85
  532. package/src/components/block-inspector/style.scss +16 -1
  533. package/src/components/block-list/block-list-context.native.js +5 -8
  534. package/src/components/block-list/block.js +74 -23
  535. package/src/components/block-list/block.native.js +78 -23
  536. package/src/components/block-list/{style.scss → content.scss} +1 -15
  537. package/src/components/block-list-appender/{style.scss → content.scss} +0 -0
  538. package/src/components/block-list-appender/index.js +65 -54
  539. package/src/components/block-list-appender/index.native.js +45 -34
  540. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +42 -28
  541. package/src/components/block-mobile-toolbar/index.native.js +1 -1
  542. package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +125 -0
  543. package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +439 -0
  544. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +42 -2
  545. package/src/components/block-mover/test/index.native.js +157 -1
  546. package/src/components/block-pattern-setup/index.js +17 -7
  547. package/src/components/block-pattern-setup/style.scss +29 -1
  548. package/src/components/block-patterns-list/index.js +47 -24
  549. package/src/components/block-preview/README.md +15 -10
  550. package/src/components/block-preview/auto.js +7 -1
  551. package/src/components/block-preview/content.scss +4 -0
  552. package/src/components/block-preview/index.js +7 -12
  553. package/src/components/block-preview/style.scss +0 -7
  554. package/src/components/block-preview/test/index.js +18 -35
  555. package/src/components/block-selection-clearer/test/index.js +12 -12
  556. package/src/components/block-settings-menu/block-settings-dropdown.js +32 -20
  557. package/src/components/block-styles/index.native.js +1 -2
  558. package/src/components/block-styles/utils.js +5 -7
  559. package/src/components/block-switcher/test/index.js +6 -1
  560. package/src/components/block-toolbar/index.js +12 -5
  561. package/src/components/block-toolbar/index.native.js +8 -11
  562. package/src/components/block-toolbar/style.scss +10 -0
  563. package/src/components/block-tools/insertion-point.js +3 -47
  564. package/src/components/block-tools/selected-block-popover.js +1 -3
  565. package/src/components/block-tools/style.scss +12 -5
  566. package/src/components/block-variation-picker/index.js +6 -5
  567. package/src/components/block-vertical-alignment-control/test/index.js +6 -1
  568. package/src/components/colors/test/with-colors.js +2 -0
  569. package/src/components/colors/utils.js +5 -3
  570. package/src/components/colors-gradients/control.js +0 -7
  571. package/src/components/colors-gradients/dropdown.js +0 -2
  572. package/src/components/colors-gradients/panel-color-gradient-settings.js +4 -22
  573. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
  574. package/src/components/copy-handler/index.js +53 -7
  575. package/src/components/default-block-appender/{style.scss → content.scss} +0 -0
  576. package/src/components/default-block-appender/test/index.js +2 -0
  577. package/src/components/font-sizes/fluid-utils.js +7 -1
  578. package/src/components/font-sizes/utils.js +5 -3
  579. package/src/components/font-sizes/with-font-sizes.js +4 -4
  580. package/src/components/gradients/use-gradient.js +2 -7
  581. package/src/components/height-control/index.js +123 -0
  582. package/src/components/height-control/stories/index.js +21 -0
  583. package/src/components/height-control/style.scss +5 -0
  584. package/src/components/iframe/index.js +33 -121
  585. package/src/components/iframe/use-compatibility-styles.js +95 -0
  586. package/src/components/image-editor/use-save-image.js +2 -0
  587. package/src/components/image-editor/zoom-dropdown.js +1 -0
  588. package/src/components/image-size-control/test/index.js +147 -79
  589. package/src/components/index.js +1 -0
  590. package/src/components/inner-blocks/{style.scss → content.scss} +0 -0
  591. package/src/components/inner-blocks/index.js +26 -7
  592. package/src/components/inner-blocks/use-inner-block-template-sync.js +28 -10
  593. package/src/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  594. package/src/components/inserter/block-patterns-tab.js +28 -71
  595. package/src/components/inserter/block-types-tab.js +3 -2
  596. package/src/components/inserter/hooks/use-debounced-input.js +17 -0
  597. package/src/components/inserter/hooks/use-insertion-point.js +3 -2
  598. package/src/components/inserter/index.js +24 -3
  599. package/src/components/inserter/index.native.js +1 -1
  600. package/src/components/inserter/media-tab/hooks.js +89 -0
  601. package/src/components/inserter/media-tab/index.js +3 -0
  602. package/src/components/inserter/media-tab/media-list.js +93 -0
  603. package/src/components/inserter/media-tab/media-panel.js +83 -0
  604. package/src/components/inserter/media-tab/media-tab.js +135 -0
  605. package/src/components/inserter/media-tab/utils.js +37 -0
  606. package/src/components/inserter/menu.js +55 -13
  607. package/src/components/inserter/mobile-tab-navigation.js +85 -0
  608. package/src/components/inserter/quick-inserter.js +4 -0
  609. package/src/components/inserter/search-items.js +1 -2
  610. package/src/components/inserter/search-results.js +5 -2
  611. package/src/components/inserter/stories/index.js +1 -1
  612. package/src/components/inserter/stories/{fixtures.js → utils/fixtures.js} +0 -0
  613. package/src/components/inserter/style.scss +176 -11
  614. package/src/components/inserter/tabs.js +12 -1
  615. package/src/components/inserter-list-item/index.js +11 -1
  616. package/src/components/inserter-list-item/style.scss +26 -0
  617. package/src/components/inspector-controls/groups.js +2 -0
  618. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +37 -0
  619. package/src/components/inspector-controls-tabs/index.js +62 -0
  620. package/src/components/inspector-controls-tabs/settings-tab.js +18 -0
  621. package/src/components/inspector-controls-tabs/styles-tab.js +51 -0
  622. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +89 -0
  623. package/src/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +9 -0
  624. package/src/components/inspector-controls-tabs/utils.js +28 -0
  625. package/src/components/line-height-control/test/index.js +5 -5
  626. package/src/components/link-control/README.md +1 -1
  627. package/src/components/link-control/index.js +1 -0
  628. package/src/components/link-control/search-input.js +0 -1
  629. package/src/components/link-control/test/index.js +204 -403
  630. package/src/components/link-control/use-internal-input-value.js +3 -3
  631. package/src/components/list-view/block-select-button.js +1 -1
  632. package/src/components/list-view/block.js +3 -0
  633. package/src/components/list-view/branch.js +10 -8
  634. package/src/components/list-view/style.scss +21 -16
  635. package/src/components/media-placeholder/{style.scss → content.scss} +0 -0
  636. package/src/components/media-replace-flow/test/index.js +39 -9
  637. package/src/components/media-upload/test/index.native.js +2 -0
  638. package/src/components/off-canvas-editor/appender.js +98 -0
  639. package/src/components/off-canvas-editor/block-edit-button.js +27 -0
  640. package/src/components/off-canvas-editor/block-select-button.js +6 -2
  641. package/src/components/off-canvas-editor/block.js +160 -77
  642. package/src/components/off-canvas-editor/branch.js +3 -5
  643. package/src/components/off-canvas-editor/index.js +68 -33
  644. package/src/components/off-canvas-editor/leaf.js +5 -1
  645. package/src/components/off-canvas-editor/link-ui.js +166 -0
  646. package/src/components/off-canvas-editor/style.scss +19 -386
  647. package/src/components/off-canvas-editor/test/use-inserted-block.js +108 -0
  648. package/src/components/off-canvas-editor/update-attributes.js +99 -0
  649. package/src/components/off-canvas-editor/use-inserted-block.js +47 -0
  650. package/src/components/plain-text/{style.scss → content.scss} +0 -0
  651. package/src/components/recursion-provider/test/index.js +27 -29
  652. package/src/components/responsive-block-control/label.js +2 -3
  653. package/src/components/responsive-block-control/test/index.js +4 -2
  654. package/src/components/rich-text/content.scss +42 -0
  655. package/src/components/rich-text/format-edit.js +6 -10
  656. package/src/components/rich-text/format-toolbar/index.js +6 -4
  657. package/src/components/rich-text/index.js +3 -2
  658. package/src/components/rich-text/index.native.js +0 -2
  659. package/src/components/rich-text/style.scss +0 -43
  660. package/src/components/rich-text/use-insert-replacement-text.js +31 -0
  661. package/src/components/rich-text/use-paste-handler.js +33 -14
  662. package/src/components/rich-text/use-undo-automatic-change.js +7 -1
  663. package/src/components/rich-text/utils.js +2 -21
  664. package/src/components/spacing-sizes-control/index.js +0 -1
  665. package/src/components/spacing-sizes-control/spacing-input-control.js +9 -0
  666. package/src/components/spacing-sizes-control/utils.js +1 -1
  667. package/src/components/typewriter/index.js +3 -1
  668. package/src/components/ungroup-button/index.native.js +6 -2
  669. package/src/components/url-input/index.js +57 -73
  670. package/src/components/url-input/test/button.js +2 -0
  671. package/src/components/url-popover/image-url-input-ui.js +5 -4
  672. package/src/components/url-popover/test/__snapshots__/index.js.snap +8 -6
  673. package/src/components/url-popover/test/index.js +37 -9
  674. package/src/components/use-block-display-information/index.js +14 -5
  675. package/src/components/use-setting/index.js +13 -1
  676. package/src/components/use-setting/test/index.js +99 -0
  677. package/src/components/warning/test/index.js +2 -0
  678. package/src/components/writing-flow/index.js +1 -1
  679. package/src/content.scss +10 -0
  680. package/src/hooks/border.js +0 -1
  681. package/src/hooks/child-layout.js +190 -0
  682. package/src/hooks/color-panel.js +0 -1
  683. package/src/hooks/color.js +0 -2
  684. package/src/hooks/content-lock-ui.js +1 -1
  685. package/src/hooks/dimensions.js +45 -7
  686. package/src/hooks/font-family.js +3 -5
  687. package/src/hooks/font-size.js +13 -4
  688. package/src/hooks/layout.js +60 -0
  689. package/src/hooks/min-height.js +2 -19
  690. package/src/hooks/test/use-typography-props.js +26 -0
  691. package/src/hooks/use-typography-props.js +15 -7
  692. package/src/store/reducer.js +471 -428
  693. package/src/store/selectors.js +57 -59
  694. package/src/store/test/performance.js +71 -0
  695. package/src/store/test/reducer.js +623 -491
  696. package/src/store/test/selectors.js +1820 -1306
  697. package/src/style.scss +4 -7
  698. package/src/utils/pasting.js +3 -9
  699. package/src/utils/sorting.js +54 -0
  700. package/src/utils/test/sorting.js +49 -0
  701. package/tsconfig.tsbuildinfo +1 -1
  702. package/build/components/block-preview/live.js +0 -30
  703. package/build/components/block-preview/live.js.map +0 -1
  704. package/build/components/colors-gradients/use-common-single-multiple-selects.js +0 -21
  705. package/build/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
  706. package/build/components/rich-text/file-paste-handler.js +0 -21
  707. package/build/components/rich-text/file-paste-handler.js.map +0 -1
  708. package/build-module/components/block-preview/live.js +0 -20
  709. package/build-module/components/block-preview/live.js.map +0 -1
  710. package/build-module/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
  711. package/build-module/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
  712. package/build-module/components/rich-text/file-paste-handler.js +0 -13
  713. package/build-module/components/rich-text/file-paste-handler.js.map +0 -1
  714. package/src/components/block-preview/live.js +0 -19
  715. package/src/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
  716. package/src/components/rich-text/file-paste-handler.js +0 -13
@@ -93,11 +93,13 @@ describe( 'BlockDraggable', () => {
93
93
  it( 'enables drag mode when unselected', async () =>
94
94
  withReanimatedTimer( async () => {
95
95
  const screen = await initializeWithBlocksLayouts( BLOCKS );
96
- const { getByLabelText } = screen;
97
96
 
98
97
  // Start dragging from block's content
98
+ const [ paragraphBlock ] = screen.getAllByLabelText(
99
+ /Paragraph Block\. Row 1/
100
+ );
99
101
  fireLongPress(
100
- getByLabelText( /Paragraph Block\. Row 1/ ),
102
+ paragraphBlock,
101
103
  'draggable-trigger-content'
102
104
  );
103
105
  expect( getDraggableChip( screen ) ).toBeVisible();
@@ -112,12 +114,12 @@ describe( 'BlockDraggable', () => {
112
114
  it( 'enables drag mode when selected', async () =>
113
115
  withReanimatedTimer( async () => {
114
116
  const screen = await initializeWithBlocksLayouts( BLOCKS );
115
- const { getByLabelText } = screen;
117
+
116
118
  const blockDraggableWrapper = getByGestureTestId(
117
119
  'block-draggable-wrapper'
118
120
  );
119
121
 
120
- const paragraphBlock = getByLabelText(
122
+ const [ paragraphBlock ] = screen.getAllByLabelText(
121
123
  /Paragraph Block\. Row 1/
122
124
  );
123
125
  fireEvent.press( paragraphBlock );
@@ -146,9 +148,8 @@ describe( 'BlockDraggable', () => {
146
148
  it( 'does not enable drag mode when selected and editing text', async () =>
147
149
  withReanimatedTimer( async () => {
148
150
  const screen = await initializeWithBlocksLayouts( BLOCKS );
149
- const { getByLabelText } = screen;
150
151
 
151
- const paragraphBlock = getByLabelText(
152
+ const [ paragraphBlock ] = screen.getAllByLabelText(
152
153
  /Paragraph Block\. Row 1/
153
154
  );
154
155
 
@@ -178,13 +179,12 @@ describe( 'BlockDraggable', () => {
178
179
  it( 'finishes editing text and enables drag mode when long-pressing over a different block', async () =>
179
180
  withReanimatedTimer( async () => {
180
181
  const screen = await initializeWithBlocksLayouts( BLOCKS );
181
- const { getByLabelText } = screen;
182
182
 
183
- const paragraphBlock = getByLabelText(
183
+ const [ paragraphBlock ] = screen.getAllByLabelText(
184
184
  /Paragraph Block\. Row 1/
185
185
  );
186
- const spacerBlock =
187
- getByLabelText( /Spacer Block\. Row 3/ );
186
+ const [ spacerBlock ] =
187
+ screen.getAllByLabelText( /Spacer Block\. Row 3/ );
188
188
 
189
189
  // Select Paragraph block and start editing text
190
190
  fireEvent.press( paragraphBlock );
@@ -208,12 +208,11 @@ describe( 'BlockDraggable', () => {
208
208
  it( 'enables drag mode when unselected', async () =>
209
209
  withReanimatedTimer( async () => {
210
210
  const screen = await initializeWithBlocksLayouts( BLOCKS );
211
- const { getAllByLabelText } = screen;
212
211
 
213
212
  // We select the first Image block as the Gallery block
214
213
  // also contains Image blocks.
215
- const imageBlock =
216
- getAllByLabelText( /Image Block\. Row 2/ )[ 0 ];
214
+ const [ imageBlock ] =
215
+ screen.getAllByLabelText( /Image Block\. Row 2/ );
217
216
  // Start dragging from block's content
218
217
  fireLongPress( imageBlock, 'draggable-trigger-content' );
219
218
  expect( getDraggableChip( screen ) ).toBeVisible();
@@ -228,15 +227,14 @@ describe( 'BlockDraggable', () => {
228
227
  it( 'enables drag mode when selected', async () =>
229
228
  withReanimatedTimer( async () => {
230
229
  const screen = await initializeWithBlocksLayouts( BLOCKS );
231
- const { getAllByLabelText } = screen;
232
230
  const blockDraggableWrapper = getByGestureTestId(
233
231
  'block-draggable-wrapper'
234
232
  );
235
233
 
236
234
  // We select the first Image block as the Gallery block
237
235
  // also contains Image blocks.
238
- const imageBlock =
239
- getAllByLabelText( /Image Block\. Row 2/ )[ 0 ];
236
+ const [ imageBlock ] =
237
+ screen.getAllByLabelText( /Image Block\. Row 2/ );
240
238
  fireEvent.press( imageBlock );
241
239
 
242
240
  // Start dragging from block's content
@@ -262,15 +260,15 @@ describe( 'BlockDraggable', () => {
262
260
  it( 'enables drag mode when unselected', async () =>
263
261
  withReanimatedTimer( async () => {
264
262
  const screen = await initializeWithBlocksLayouts( BLOCKS );
265
- const { getByLabelText } = screen;
266
263
 
267
264
  // Start dragging from block's content, specifically the first
268
265
  // trigger index, which corresponds to the Gallery block content.
269
- fireLongPress(
270
- getByLabelText( /Gallery Block\. Row 4/ ),
271
- 'draggable-trigger-content',
272
- { triggerIndex: 0 }
266
+ const [ galleryBlock ] = screen.getAllByLabelText(
267
+ /Gallery Block\. Row 4/
273
268
  );
269
+ fireLongPress( galleryBlock, 'draggable-trigger-content', {
270
+ triggerIndex: 0,
271
+ } );
274
272
  expect( getDraggableChip( screen ) ).toBeVisible();
275
273
 
276
274
  // "firePanGesture" finishes the dragging gesture
@@ -283,12 +281,11 @@ describe( 'BlockDraggable', () => {
283
281
  it( 'enables drag mode when selected', async () =>
284
282
  withReanimatedTimer( async () => {
285
283
  const screen = await initializeWithBlocksLayouts( BLOCKS );
286
- const { getByLabelText } = screen;
287
284
  const blockDraggableWrapper = getByGestureTestId(
288
285
  'block-draggable-wrapper'
289
286
  );
290
287
 
291
- const galleryBlock = getByLabelText(
288
+ const [ galleryBlock ] = screen.getAllByLabelText(
292
289
  /Gallery Block\. Row 4/
293
290
  );
294
291
  await waitForStoreResolvers( () =>
@@ -319,16 +316,15 @@ describe( 'BlockDraggable', () => {
319
316
  it( 'enables drag mode when nested block is selected', async () =>
320
317
  withReanimatedTimer( async () => {
321
318
  const screen = await initializeWithBlocksLayouts( BLOCKS );
322
- const { getByLabelText } = screen;
323
319
  const blockDraggableWrapper = getByGestureTestId(
324
320
  'block-draggable-wrapper'
325
321
  );
326
322
 
327
- const galleryBlock = getByLabelText(
323
+ const [ galleryBlock ] = screen.getAllByLabelText(
328
324
  /Gallery Block\. Row 4/
329
325
  );
330
- const galleryItem =
331
- within( galleryBlock ).getByLabelText(
326
+ const [ galleryItem ] =
327
+ within( galleryBlock ).getAllByLabelText(
332
328
  /Image Block\. Row 2/
333
329
  );
334
330
  fireEvent.press( galleryBlock );
@@ -361,13 +357,11 @@ describe( 'BlockDraggable', () => {
361
357
  it( 'enables drag mode when unselected', async () =>
362
358
  withReanimatedTimer( async () => {
363
359
  const screen = await initializeWithBlocksLayouts( BLOCKS );
364
- const { getByLabelText } = screen;
365
360
 
366
361
  // Start dragging from block's content
367
- fireLongPress(
368
- getByLabelText( /Spacer Block\. Row 3/ ),
369
- 'draggable-trigger-content'
370
- );
362
+ const [ spacerBlock ] =
363
+ screen.getAllByLabelText( /Spacer Block\. Row 3/ );
364
+ fireLongPress( spacerBlock, 'draggable-trigger-content' );
371
365
  expect( getDraggableChip( screen ) ).toBeVisible();
372
366
 
373
367
  // "firePanGesture" finishes the dragging gesture
@@ -380,13 +374,12 @@ describe( 'BlockDraggable', () => {
380
374
  it( 'enables drag mode when selected', async () =>
381
375
  withReanimatedTimer( async () => {
382
376
  const screen = await initializeWithBlocksLayouts( BLOCKS );
383
- const { getByLabelText } = screen;
384
377
  const blockDraggableWrapper = getByGestureTestId(
385
378
  'block-draggable-wrapper'
386
379
  );
387
380
 
388
- const spacerBlock =
389
- getByLabelText( /Spacer Block\. Row 3/ );
381
+ const [ spacerBlock ] =
382
+ screen.getAllByLabelText( /Spacer Block\. Row 3/ );
390
383
  await waitForStoreResolvers( () =>
391
384
  fireEvent.press( spacerBlock )
392
385
  );
@@ -413,9 +406,7 @@ describe( 'BlockDraggable', () => {
413
406
 
414
407
  it( 'moves blocks', async () =>
415
408
  withReanimatedTimer( async () => {
416
- const { getByLabelText } = await initializeWithBlocksLayouts(
417
- BLOCKS
418
- );
409
+ const screen = await initializeWithBlocksLayouts( BLOCKS );
419
410
  const blockDraggableWrapper = getByGestureTestId(
420
411
  'block-draggable-wrapper'
421
412
  );
@@ -423,10 +414,10 @@ describe( 'BlockDraggable', () => {
423
414
  expect( getEditorHtml() ).toMatchSnapshot( 'Initial order' );
424
415
 
425
416
  // Move Paragraph block from first to second position
426
- fireLongPress(
427
- getByLabelText( /Paragraph Block\. Row 1/ ),
428
- 'draggable-trigger-content'
417
+ const [ paragraphBlock ] = screen.getAllByLabelText(
418
+ /Paragraph Block\. Row 1/
429
419
  );
420
+ fireLongPress( paragraphBlock, 'draggable-trigger-content' );
430
421
  firePanGesture( blockDraggableWrapper, [
431
422
  {
432
423
  id: TOUCH_EVENT_ID,
@@ -453,10 +444,9 @@ describe( 'BlockDraggable', () => {
453
444
  );
454
445
 
455
446
  // Move Spacer block from third to first position
456
- fireLongPress(
457
- getByLabelText( /Spacer Block\. Row 3/ ),
458
- 'draggable-trigger-content'
459
- );
447
+ const [ spacerBlock ] =
448
+ screen.getAllByLabelText( /Spacer Block\. Row 3/ );
449
+ fireLongPress( spacerBlock, 'draggable-trigger-content' );
460
450
  firePanGesture( blockDraggableWrapper, [
461
451
  {
462
452
  id: TOUCH_EVENT_ID,
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { pick } from 'lodash';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -38,7 +37,11 @@ export const Edit = ( props ) => {
38
37
  // Assign context values using the block type's declared context needs.
39
38
  const context = useMemo( () => {
40
39
  return blockType && blockType.usesContext
41
- ? pick( blockContext, blockType.usesContext )
40
+ ? Object.fromEntries(
41
+ Object.entries( blockContext ).filter( ( [ key ] ) =>
42
+ blockType.usesContext.includes( key )
43
+ )
44
+ )
42
45
  : DEFAULT_BLOCK_CONTEXT;
43
46
  }, [ blockType, blockContext ] );
44
47
 
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { pick } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -34,7 +29,11 @@ export const Edit = ( props ) => {
34
29
  // Assign context values using the block type's declared context needs.
35
30
  const context = useMemo( () => {
36
31
  return blockType && blockType.usesContext
37
- ? pick( blockContext, blockType.usesContext )
32
+ ? Object.fromEntries(
33
+ Object.entries( blockContext ).filter( ( [ key ] ) =>
34
+ blockType.usesContext.includes( key )
35
+ )
36
+ )
38
37
  : DEFAULT_BLOCK_CONTEXT;
39
38
  }, [ blockType, blockContext ] );
40
39
 
@@ -10,14 +10,16 @@ import { Icon } from '@wordpress/components';
10
10
  import { blockDefault } from '@wordpress/icons';
11
11
  import { memo } from '@wordpress/element';
12
12
 
13
- function BlockIcon( { icon, showColors = false, className } ) {
13
+ function BlockIcon( { icon, showColors = false, className, context } ) {
14
14
  if ( icon?.src === 'block-default' ) {
15
15
  icon = {
16
16
  src: blockDefault,
17
17
  };
18
18
  }
19
19
 
20
- const renderedIcon = <Icon icon={ icon && icon.src ? icon.src : icon } />;
20
+ const renderedIcon = (
21
+ <Icon icon={ icon && icon.src ? icon.src : icon } context={ context } />
22
+ );
21
23
  const style = showColors
22
24
  ? {
23
25
  backgroundColor: icon && icon.background,
@@ -13,6 +13,10 @@ import { image } from '@wordpress/icons';
13
13
  */
14
14
  import BlockIcon from '../';
15
15
 
16
+ function getIconWrapper( container ) {
17
+ return container.firstChild;
18
+ }
19
+
16
20
  describe( 'BlockIcon', () => {
17
21
  it( 'renders a Icon', () => {
18
22
  const { container } = render( <BlockIcon icon={ image } /> );
@@ -23,13 +27,13 @@ describe( 'BlockIcon', () => {
23
27
  it( 'renders a span without the has-colors classname', () => {
24
28
  const { container } = render( <BlockIcon icon={ image } /> );
25
29
 
26
- expect( container.firstChild ).not.toHaveClass( 'has-colors' );
30
+ expect( getIconWrapper( container ) ).not.toHaveClass( 'has-colors' );
27
31
  } );
28
32
 
29
33
  it( 'renders a span with the has-colors classname', () => {
30
34
  const { container } = render( <BlockIcon icon={ image } showColors /> );
31
35
 
32
- expect( container.firstChild ).toHaveClass( 'has-colors' );
36
+ expect( getIconWrapper( container ) ).toHaveClass( 'has-colors' );
33
37
  } );
34
38
 
35
39
  it( 'supports adding a className to the wrapper', () => {
@@ -37,7 +41,7 @@ describe( 'BlockIcon', () => {
37
41
  <BlockIcon icon={ image } className="foo-bar" />
38
42
  );
39
43
 
40
- expect( container.firstChild ).toHaveClass( 'foo-bar' );
44
+ expect( getIconWrapper( container ) ).toHaveClass( 'foo-bar' );
41
45
  } );
42
46
 
43
47
  it( 'skips adding background and foreground styles when colors are not enabled', () => {
@@ -51,7 +55,7 @@ describe( 'BlockIcon', () => {
51
55
  />
52
56
  );
53
57
 
54
- expect( container.firstChild ).not.toHaveAttribute( 'style' );
58
+ expect( getIconWrapper( container ) ).not.toHaveAttribute( 'style' );
55
59
  } );
56
60
 
57
61
  it( 'adds background and foreground styles when colors are enabled', () => {
@@ -66,7 +70,7 @@ describe( 'BlockIcon', () => {
66
70
  />
67
71
  );
68
72
 
69
- expect( container.firstChild ).toHaveStyle( {
73
+ expect( getIconWrapper( container ) ).toHaveStyle( {
70
74
  backgroundColor: 'white',
71
75
  color: 'black',
72
76
  } );
@@ -9,12 +9,12 @@ import {
9
9
  store as blocksStore,
10
10
  } from '@wordpress/blocks';
11
11
  import {
12
- PanelBody,
13
- __experimentalUseSlotFills as useSlotFills,
14
12
  FlexItem,
13
+ PanelBody,
15
14
  __experimentalHStack as HStack,
16
15
  __experimentalVStack as VStack,
17
16
  Button,
17
+ __unstableMotion as motion,
18
18
  } from '@wordpress/components';
19
19
  import { useSelect, useDispatch } from '@wordpress/data';
20
20
  import { useMemo, useCallback } from '@wordpress/element';
@@ -24,20 +24,20 @@ import { useMemo, useCallback } from '@wordpress/element';
24
24
  */
25
25
  import SkipToSelectedBlock from '../skip-to-selected-block';
26
26
  import BlockCard from '../block-card';
27
- import {
28
- default as InspectorControls,
29
- InspectorAdvancedControls,
30
- } from '../inspector-controls';
31
- import BlockStyles from '../block-styles';
32
27
  import MultiSelectionInspector from '../multi-selection-inspector';
33
- import DefaultStylePicker from '../default-style-picker';
34
28
  import BlockVariationTransforms from '../block-variation-transforms';
35
29
  import useBlockDisplayInformation from '../use-block-display-information';
36
30
  import { store as blockEditorStore } from '../../store';
37
31
  import BlockIcon from '../block-icon';
32
+ import BlockStyles from '../block-styles';
33
+ import DefaultStylePicker from '../default-style-picker';
34
+ import { default as InspectorControls } from '../inspector-controls';
35
+ import { default as InspectorControlsTabs } from '../inspector-controls-tabs';
36
+ import useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';
37
+ import AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';
38
38
 
39
39
  function useContentBlocks( blockTypes, block ) {
40
- const contenBlocksObjectAux = useMemo( () => {
40
+ const contentBlocksObjectAux = useMemo( () => {
41
41
  return blockTypes.reduce( ( result, blockType ) => {
42
42
  if (
43
43
  blockType.name !== 'core/list-item' &&
@@ -53,7 +53,7 @@ function useContentBlocks( blockTypes, block ) {
53
53
  }, [ blockTypes ] );
54
54
  const isContentBlock = useCallback(
55
55
  ( blockName ) => {
56
- return !! contenBlocksObjectAux[ blockName ];
56
+ return !! contentBlocksObjectAux[ blockName ];
57
57
  },
58
58
  [ blockTypes ]
59
59
  );
@@ -108,7 +108,10 @@ function BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {
108
108
  const contentBlocks = useContentBlocks( blockTypes, block );
109
109
  return (
110
110
  <div className="block-editor-block-inspector">
111
- <BlockCard { ...blockInformation } />
111
+ <BlockCard
112
+ { ...blockInformation }
113
+ className={ blockInformation.isSynced && 'is-synced' }
114
+ />
112
115
  <BlockVariationTransforms blockClientId={ topLevelLockedBlock } />
113
116
  <VStack
114
117
  spacing={ 1 }
@@ -166,28 +169,55 @@ const BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {
166
169
  };
167
170
  }, [] );
168
171
 
172
+ const availableTabs = useInspectorControlsTabs( blockType?.name );
173
+ const showTabs = availableTabs?.length > 1;
174
+
175
+ const isOffCanvasNavigationEditorEnabled =
176
+ window?.__experimentalEnableOffCanvasNavigationEditor === true;
177
+
178
+ const blockInspectorAnimationSettings = useSelect(
179
+ ( select ) => {
180
+ if ( isOffCanvasNavigationEditorEnabled ) {
181
+ const globalBlockInspectorAnimationSettings =
182
+ select( blockEditorStore ).getSettings()
183
+ .__experimentalBlockInspectorAnimation;
184
+ return globalBlockInspectorAnimationSettings?.[
185
+ blockType.name
186
+ ];
187
+ }
188
+ return null;
189
+ },
190
+ [ selectedBlockClientId, isOffCanvasNavigationEditorEnabled, blockType ]
191
+ );
192
+
169
193
  if ( count > 1 ) {
170
194
  return (
171
195
  <div className="block-editor-block-inspector">
172
196
  <MultiSelectionInspector />
173
- <InspectorControls.Slot />
174
- <InspectorControls.Slot
175
- __experimentalGroup="color"
176
- label={ __( 'Color' ) }
177
- className="color-block-support-panel__inner-wrapper"
178
- />
179
- <InspectorControls.Slot
180
- __experimentalGroup="typography"
181
- label={ __( 'Typography' ) }
182
- />
183
- <InspectorControls.Slot
184
- __experimentalGroup="dimensions"
185
- label={ __( 'Dimensions' ) }
186
- />
187
- <InspectorControls.Slot
188
- __experimentalGroup="border"
189
- label={ __( 'Border' ) }
190
- />
197
+ { showTabs ? (
198
+ <InspectorControlsTabs tabs={ availableTabs } />
199
+ ) : (
200
+ <>
201
+ <InspectorControls.Slot />
202
+ <InspectorControls.Slot
203
+ __experimentalGroup="color"
204
+ label={ __( 'Color' ) }
205
+ className="color-block-support-panel__inner-wrapper"
206
+ />
207
+ <InspectorControls.Slot
208
+ __experimentalGroup="typography"
209
+ label={ __( 'Typography' ) }
210
+ />
211
+ <InspectorControls.Slot
212
+ __experimentalGroup="dimensions"
213
+ label={ __( 'Dimensions' ) }
214
+ />
215
+ <InspectorControls.Slot
216
+ __experimentalGroup="border"
217
+ label={ __( 'Border' ) }
218
+ />
219
+ </>
220
+ ) }
191
221
  </div>
192
222
  );
193
223
  }
@@ -220,15 +250,72 @@ const BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {
220
250
  />
221
251
  );
222
252
  }
253
+
223
254
  return (
224
- <BlockInspectorSingleBlock
225
- clientId={ selectedBlockClientId }
226
- blockName={ blockType.name }
227
- />
255
+ <BlockInspectorSingleBlockWrapper
256
+ animate={
257
+ isOffCanvasNavigationEditorEnabled &&
258
+ blockInspectorAnimationSettings
259
+ }
260
+ wrapper={ ( children ) => (
261
+ <AnimatedContainer
262
+ blockInspectorAnimationSettings={
263
+ blockInspectorAnimationSettings
264
+ }
265
+ selectedBlockClientId={ selectedBlockClientId }
266
+ >
267
+ { children }
268
+ </AnimatedContainer>
269
+ ) }
270
+ >
271
+ <BlockInspectorSingleBlock
272
+ clientId={ selectedBlockClientId }
273
+ blockName={ blockType.name }
274
+ />
275
+ </BlockInspectorSingleBlockWrapper>
276
+ );
277
+ };
278
+
279
+ const BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {
280
+ return animate ? wrapper( children ) : children;
281
+ };
282
+
283
+ const AnimatedContainer = ( {
284
+ blockInspectorAnimationSettings,
285
+ selectedBlockClientId,
286
+ children,
287
+ } ) => {
288
+ const animationOrigin =
289
+ blockInspectorAnimationSettings &&
290
+ blockInspectorAnimationSettings.enterDirection === 'leftToRight'
291
+ ? -50
292
+ : 50;
293
+
294
+ return (
295
+ <motion.div
296
+ animate={ {
297
+ x: 0,
298
+ opacity: 1,
299
+ transition: {
300
+ ease: 'easeInOut',
301
+ duration: 0.14,
302
+ },
303
+ } }
304
+ initial={ {
305
+ x: animationOrigin,
306
+ opacity: 0,
307
+ } }
308
+ key={ selectedBlockClientId }
309
+ >
310
+ { children }
311
+ </motion.div>
228
312
  );
229
313
  };
230
314
 
231
315
  const BlockInspectorSingleBlock = ( { clientId, blockName } ) => {
316
+ const availableTabs = useInspectorControlsTabs( blockName );
317
+ const showTabs = availableTabs?.length > 1;
318
+
232
319
  const hasBlockStyles = useSelect(
233
320
  ( select ) => {
234
321
  const { getBlockStyles } = select( blocksStore );
@@ -238,67 +325,68 @@ const BlockInspectorSingleBlock = ( { clientId, blockName } ) => {
238
325
  [ blockName ]
239
326
  );
240
327
  const blockInformation = useBlockDisplayInformation( clientId );
328
+
241
329
  return (
242
330
  <div className="block-editor-block-inspector">
243
- <BlockCard { ...blockInformation } />
331
+ <BlockCard
332
+ { ...blockInformation }
333
+ className={ blockInformation.isSynced && 'is-synced' }
334
+ />
244
335
  <BlockVariationTransforms blockClientId={ clientId } />
245
- { hasBlockStyles && (
246
- <div>
247
- <PanelBody title={ __( 'Styles' ) }>
248
- <BlockStyles clientId={ clientId } />
249
- { hasBlockSupport(
250
- blockName,
251
- 'defaultStylePicker',
252
- true
253
- ) && <DefaultStylePicker blockName={ blockName } /> }
254
- </PanelBody>
255
- </div>
336
+ { showTabs && (
337
+ <InspectorControlsTabs
338
+ hasBlockStyles={ hasBlockStyles }
339
+ clientId={ clientId }
340
+ blockName={ blockName }
341
+ tabs={ availableTabs }
342
+ />
343
+ ) }
344
+ { ! showTabs && (
345
+ <>
346
+ { hasBlockStyles && (
347
+ <div>
348
+ <PanelBody title={ __( 'Styles' ) }>
349
+ <BlockStyles clientId={ clientId } />
350
+ { hasBlockSupport(
351
+ blockName,
352
+ 'defaultStylePicker',
353
+ true
354
+ ) && (
355
+ <DefaultStylePicker
356
+ blockName={ blockName }
357
+ />
358
+ ) }
359
+ </PanelBody>
360
+ </div>
361
+ ) }
362
+ <InspectorControls.Slot />
363
+ <InspectorControls.Slot
364
+ __experimentalGroup="color"
365
+ label={ __( 'Color' ) }
366
+ className="color-block-support-panel__inner-wrapper"
367
+ />
368
+ <InspectorControls.Slot
369
+ __experimentalGroup="typography"
370
+ label={ __( 'Typography' ) }
371
+ />
372
+ <InspectorControls.Slot
373
+ __experimentalGroup="dimensions"
374
+ label={ __( 'Dimensions' ) }
375
+ />
376
+ <InspectorControls.Slot
377
+ __experimentalGroup="border"
378
+ label={ __( 'Border' ) }
379
+ />
380
+ <div>
381
+ <AdvancedControls />
382
+ </div>
383
+ </>
256
384
  ) }
257
- <InspectorControls.Slot />
258
- <InspectorControls.Slot
259
- __experimentalGroup="color"
260
- label={ __( 'Color' ) }
261
- className="color-block-support-panel__inner-wrapper"
262
- />
263
- <InspectorControls.Slot
264
- __experimentalGroup="typography"
265
- label={ __( 'Typography' ) }
266
- />
267
- <InspectorControls.Slot
268
- __experimentalGroup="dimensions"
269
- label={ __( 'Dimensions' ) }
270
- />
271
- <InspectorControls.Slot
272
- __experimentalGroup="border"
273
- label={ __( 'Border' ) }
274
- />
275
- <div>
276
- <AdvancedControls />
277
- </div>
278
385
  <SkipToSelectedBlock key="back" />
279
386
  </div>
280
387
  );
281
388
  };
282
389
 
283
- const AdvancedControls = () => {
284
- const fills = useSlotFills( InspectorAdvancedControls.slotName );
285
- const hasFills = Boolean( fills && fills.length );
286
-
287
- if ( ! hasFills ) {
288
- return null;
289
- }
290
-
291
- return (
292
- <PanelBody
293
- className="block-editor-block-inspector__advanced"
294
- title={ __( 'Advanced' ) }
295
- initialOpen={ false }
296
- >
297
- <InspectorControls.Slot __experimentalGroup="advanced" />
298
- </PanelBody>
299
- );
300
- };
301
-
302
390
  /**
303
391
  * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md
304
392
  */