@wordpress/block-editor 13.2.0 → 13.3.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 (367) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +0 -1
  3. package/build/components/block-breadcrumb/index.js +12 -1
  4. package/build/components/block-breadcrumb/index.js.map +1 -1
  5. package/build/components/block-lock/toolbar.js +0 -1
  6. package/build/components/block-lock/toolbar.js.map +1 -1
  7. package/build/components/block-mover/button.js +1 -1
  8. package/build/components/block-mover/button.js.map +1 -1
  9. package/build/components/block-mover/index.js +1 -1
  10. package/build/components/block-mover/index.js.map +1 -1
  11. package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
  12. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  13. package/build/components/block-patterns-paging/index.js +5 -7
  14. package/build/components/block-patterns-paging/index.js.map +1 -1
  15. package/build/components/block-quick-navigation/index.js +20 -17
  16. package/build/components/block-quick-navigation/index.js.map +1 -1
  17. package/build/components/block-rename/modal.js +4 -12
  18. package/build/components/block-rename/modal.js.map +1 -1
  19. package/build/components/block-toolbar/shuffle.js +1 -0
  20. package/build/components/block-toolbar/shuffle.js.map +1 -1
  21. package/build/components/block-tools/block-selection-button.js +7 -58
  22. package/build/components/block-tools/block-selection-button.js.map +1 -1
  23. package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  24. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  25. package/build/components/block-tools/index.js +14 -1
  26. package/build/components/block-tools/index.js.map +1 -1
  27. package/build/components/block-tools/use-show-block-tools.js +4 -2
  28. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  29. package/build/components/block-tools/zoom-out-mode-inserters.js +5 -4
  30. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  31. package/build/components/block-tools/zoom-out-popover.js +57 -0
  32. package/build/components/block-tools/zoom-out-popover.js.map +1 -0
  33. package/build/components/block-tools/zoom-out-toolbar.js +138 -0
  34. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
  35. package/build/components/button-block-appender/index.js +3 -1
  36. package/build/components/button-block-appender/index.js.map +1 -1
  37. package/build/components/child-layout-control/index.js +26 -18
  38. package/build/components/child-layout-control/index.js.map +1 -1
  39. package/build/components/date-format-picker/index.js +10 -1
  40. package/build/components/date-format-picker/index.js.map +1 -1
  41. package/build/components/dimensions-tool/index.js +6 -4
  42. package/build/components/dimensions-tool/index.js.map +1 -1
  43. package/build/components/font-appearance-control/index.js +26 -61
  44. package/build/components/font-appearance-control/index.js.map +1 -1
  45. package/build/components/global-styles/background-panel.js +178 -116
  46. package/build/components/global-styles/background-panel.js.map +1 -1
  47. package/build/components/global-styles/border-panel.js +2 -1
  48. package/build/components/global-styles/border-panel.js.map +1 -1
  49. package/build/components/global-styles/color-panel.js +2 -1
  50. package/build/components/global-styles/color-panel.js.map +1 -1
  51. package/build/components/global-styles/dimensions-panel.js +2 -1
  52. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  53. package/build/components/global-styles/filters-panel.js +2 -1
  54. package/build/components/global-styles/filters-panel.js.map +1 -1
  55. package/build/components/global-styles/hooks.js +8 -0
  56. package/build/components/global-styles/hooks.js.map +1 -1
  57. package/build/components/global-styles/image-settings-panel.js +2 -1
  58. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  59. package/build/components/global-styles/typography-panel.js +50 -12
  60. package/build/components/global-styles/typography-panel.js.map +1 -1
  61. package/build/components/global-styles/typography-utils.js +50 -0
  62. package/build/components/global-styles/typography-utils.js.map +1 -1
  63. package/build/components/global-styles/use-global-styles-output.js +23 -8
  64. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  65. package/build/components/global-styles/utils.js +17 -7
  66. package/build/components/global-styles/utils.js.map +1 -1
  67. package/build/components/grid/grid-item-movers.js +11 -14
  68. package/build/components/grid/grid-item-movers.js.map +1 -1
  69. package/build/components/grid/grid-item-resizer.js +2 -2
  70. package/build/components/grid/grid-item-resizer.js.map +1 -1
  71. package/build/components/grid/grid-visualizer.js +116 -36
  72. package/build/components/grid/grid-visualizer.js.map +1 -1
  73. package/build/components/grid/use-grid-layout-sync.js +29 -22
  74. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  75. package/build/components/inner-blocks/index.js +1 -1
  76. package/build/components/inner-blocks/index.js.map +1 -1
  77. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  78. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  79. package/build/components/inserter/menu.js +26 -4
  80. package/build/components/inserter/menu.js.map +1 -1
  81. package/build/components/inserter/quick-inserter.js +2 -1
  82. package/build/components/inserter/quick-inserter.js.map +1 -1
  83. package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
  84. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  85. package/build/components/link-control/link-preview.js +1 -1
  86. package/build/components/link-control/link-preview.js.map +1 -1
  87. package/build/components/media-placeholder/index.js +19 -23
  88. package/build/components/media-placeholder/index.js.map +1 -1
  89. package/build/components/navigable-toolbar/index.js +3 -1
  90. package/build/components/navigable-toolbar/index.js.map +1 -1
  91. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -1
  92. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  93. package/build/components/tabbed-sidebar/index.js +66 -0
  94. package/build/components/tabbed-sidebar/index.js.map +1 -0
  95. package/build/components/url-popover/index.js +3 -0
  96. package/build/components/url-popover/index.js.map +1 -1
  97. package/build/hooks/background.js +26 -4
  98. package/build/hooks/background.js.map +1 -1
  99. package/build/hooks/block-hooks.js +11 -17
  100. package/build/hooks/block-hooks.js.map +1 -1
  101. package/build/hooks/block-style-variation.js +169 -4
  102. package/build/hooks/block-style-variation.js.map +1 -1
  103. package/build/hooks/duotone.js +16 -11
  104. package/build/hooks/duotone.js.map +1 -1
  105. package/build/hooks/grid-visualizer.js +65 -0
  106. package/build/hooks/grid-visualizer.js.map +1 -0
  107. package/build/hooks/index.js +15 -2
  108. package/build/hooks/index.js.map +1 -1
  109. package/build/hooks/layout-child.js +39 -22
  110. package/build/hooks/layout-child.js.map +1 -1
  111. package/build/hooks/position.js +2 -9
  112. package/build/hooks/position.js.map +1 -1
  113. package/build/hooks/use-bindings-attributes.js +16 -6
  114. package/build/hooks/use-bindings-attributes.js.map +1 -1
  115. package/build/hooks/utils.js +2 -0
  116. package/build/hooks/utils.js.map +1 -1
  117. package/build/layouts/constrained.js +44 -2
  118. package/build/layouts/constrained.js.map +1 -1
  119. package/build/layouts/grid.js +90 -51
  120. package/build/layouts/grid.js.map +1 -1
  121. package/build/private-apis.js +6 -1
  122. package/build/private-apis.js.map +1 -1
  123. package/build/store/defaults.js +0 -2
  124. package/build/store/defaults.js.map +1 -1
  125. package/build/store/defaults.native.js +0 -3
  126. package/build/store/defaults.native.js.map +1 -1
  127. package/build/store/private-keys.js +2 -1
  128. package/build/store/private-keys.js.map +1 -1
  129. package/build/utils/format-font-style.js +45 -0
  130. package/build/utils/format-font-style.js.map +1 -0
  131. package/build/utils/format-font-weight.js +68 -0
  132. package/build/utils/format-font-weight.js.map +1 -0
  133. package/build/utils/get-editor-region.js +34 -0
  134. package/build/utils/get-editor-region.js.map +1 -0
  135. package/build/utils/get-font-styles-and-weights.js +167 -0
  136. package/build/utils/get-font-styles-and-weights.js.map +1 -0
  137. package/build/utils/pasting.js +5 -13
  138. package/build/utils/pasting.js.map +1 -1
  139. package/build-module/components/block-breadcrumb/index.js +12 -1
  140. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  141. package/build-module/components/block-lock/toolbar.js +0 -1
  142. package/build-module/components/block-lock/toolbar.js.map +1 -1
  143. package/build-module/components/block-mover/button.js +1 -1
  144. package/build-module/components/block-mover/button.js.map +1 -1
  145. package/build-module/components/block-mover/index.js +1 -1
  146. package/build-module/components/block-mover/index.js.map +1 -1
  147. package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
  148. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  149. package/build-module/components/block-patterns-paging/index.js +5 -7
  150. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  151. package/build-module/components/block-quick-navigation/index.js +20 -17
  152. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  153. package/build-module/components/block-rename/modal.js +5 -13
  154. package/build-module/components/block-rename/modal.js.map +1 -1
  155. package/build-module/components/block-toolbar/shuffle.js +1 -0
  156. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  157. package/build-module/components/block-tools/block-selection-button.js +10 -61
  158. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  159. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  160. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  161. package/build-module/components/block-tools/index.js +14 -1
  162. package/build-module/components/block-tools/index.js.map +1 -1
  163. package/build-module/components/block-tools/use-show-block-tools.js +4 -2
  164. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  165. package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -4
  166. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  167. package/build-module/components/block-tools/zoom-out-popover.js +48 -0
  168. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
  169. package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
  170. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
  171. package/build-module/components/button-block-appender/index.js +3 -1
  172. package/build-module/components/button-block-appender/index.js.map +1 -1
  173. package/build-module/components/child-layout-control/index.js +27 -19
  174. package/build-module/components/child-layout-control/index.js.map +1 -1
  175. package/build-module/components/date-format-picker/index.js +11 -3
  176. package/build-module/components/date-format-picker/index.js.map +1 -1
  177. package/build-module/components/dimensions-tool/index.js +6 -4
  178. package/build-module/components/dimensions-tool/index.js.map +1 -1
  179. package/build-module/components/font-appearance-control/index.js +28 -63
  180. package/build-module/components/font-appearance-control/index.js.map +1 -1
  181. package/build-module/components/global-styles/background-panel.js +181 -119
  182. package/build-module/components/global-styles/background-panel.js.map +1 -1
  183. package/build-module/components/global-styles/border-panel.js +3 -2
  184. package/build-module/components/global-styles/border-panel.js.map +1 -1
  185. package/build-module/components/global-styles/color-panel.js +3 -2
  186. package/build-module/components/global-styles/color-panel.js.map +1 -1
  187. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  188. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  189. package/build-module/components/global-styles/filters-panel.js +3 -2
  190. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  191. package/build-module/components/global-styles/hooks.js +8 -0
  192. package/build-module/components/global-styles/hooks.js.map +1 -1
  193. package/build-module/components/global-styles/image-settings-panel.js +3 -2
  194. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  195. package/build-module/components/global-styles/typography-panel.js +52 -14
  196. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  197. package/build-module/components/global-styles/typography-utils.js +48 -0
  198. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  199. package/build-module/components/global-styles/use-global-styles-output.js +23 -8
  200. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  201. package/build-module/components/global-styles/utils.js +15 -6
  202. package/build-module/components/global-styles/utils.js.map +1 -1
  203. package/build-module/components/grid/grid-item-movers.js +11 -14
  204. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  205. package/build-module/components/grid/grid-item-resizer.js +2 -2
  206. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  207. package/build-module/components/grid/grid-visualizer.js +117 -37
  208. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  209. package/build-module/components/grid/use-grid-layout-sync.js +29 -22
  210. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  211. package/build-module/components/inner-blocks/index.js +1 -1
  212. package/build-module/components/inner-blocks/index.js.map +1 -1
  213. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  214. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  215. package/build-module/components/inserter/menu.js +26 -4
  216. package/build-module/components/inserter/menu.js.map +1 -1
  217. package/build-module/components/inserter/quick-inserter.js +2 -1
  218. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  219. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
  220. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  221. package/build-module/components/link-control/link-preview.js +1 -1
  222. package/build-module/components/link-control/link-preview.js.map +1 -1
  223. package/build-module/components/media-placeholder/index.js +19 -23
  224. package/build-module/components/media-placeholder/index.js.map +1 -1
  225. package/build-module/components/navigable-toolbar/index.js +3 -1
  226. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  227. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -1
  228. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  229. package/build-module/components/tabbed-sidebar/index.js +60 -0
  230. package/build-module/components/tabbed-sidebar/index.js.map +1 -0
  231. package/build-module/components/url-popover/index.js +3 -0
  232. package/build-module/components/url-popover/index.js.map +1 -1
  233. package/build-module/hooks/background.js +26 -4
  234. package/build-module/hooks/background.js.map +1 -1
  235. package/build-module/hooks/block-hooks.js +11 -17
  236. package/build-module/hooks/block-hooks.js.map +1 -1
  237. package/build-module/hooks/block-style-variation.js +168 -4
  238. package/build-module/hooks/block-style-variation.js.map +1 -1
  239. package/build-module/hooks/duotone.js +16 -11
  240. package/build-module/hooks/duotone.js.map +1 -1
  241. package/build-module/hooks/grid-visualizer.js +64 -0
  242. package/build-module/hooks/grid-visualizer.js.map +1 -0
  243. package/build-module/hooks/index.js +3 -0
  244. package/build-module/hooks/index.js.map +1 -1
  245. package/build-module/hooks/layout-child.js +39 -22
  246. package/build-module/hooks/layout-child.js.map +1 -1
  247. package/build-module/hooks/position.js +2 -9
  248. package/build-module/hooks/position.js.map +1 -1
  249. package/build-module/hooks/use-bindings-attributes.js +16 -6
  250. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  251. package/build-module/hooks/utils.js +2 -0
  252. package/build-module/hooks/utils.js.map +1 -1
  253. package/build-module/layouts/constrained.js +44 -2
  254. package/build-module/layouts/constrained.js.map +1 -1
  255. package/build-module/layouts/grid.js +90 -51
  256. package/build-module/layouts/grid.js.map +1 -1
  257. package/build-module/private-apis.js +8 -3
  258. package/build-module/private-apis.js.map +1 -1
  259. package/build-module/store/defaults.js +0 -2
  260. package/build-module/store/defaults.js.map +1 -1
  261. package/build-module/store/defaults.native.js +0 -3
  262. package/build-module/store/defaults.native.js.map +1 -1
  263. package/build-module/store/private-keys.js +1 -0
  264. package/build-module/store/private-keys.js.map +1 -1
  265. package/build-module/utils/format-font-style.js +39 -0
  266. package/build-module/utils/format-font-style.js.map +1 -0
  267. package/build-module/utils/format-font-weight.js +62 -0
  268. package/build-module/utils/format-font-weight.js.map +1 -0
  269. package/build-module/utils/get-editor-region.js +28 -0
  270. package/build-module/utils/get-editor-region.js.map +1 -0
  271. package/build-module/utils/get-font-styles-and-weights.js +160 -0
  272. package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
  273. package/build-module/utils/pasting.js +5 -13
  274. package/build-module/utils/pasting.js.map +1 -1
  275. package/build-style/content-rtl.css +1 -0
  276. package/build-style/content.css +1 -0
  277. package/build-style/style-rtl.css +207 -96
  278. package/build-style/style.css +207 -96
  279. package/package.json +32 -32
  280. package/src/components/block-breadcrumb/index.js +16 -1
  281. package/src/components/block-lock/toolbar.js +0 -1
  282. package/src/components/block-mover/button.js +1 -1
  283. package/src/components/block-mover/index.js +1 -1
  284. package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
  285. package/src/components/block-patterns-paging/index.js +8 -11
  286. package/src/components/block-patterns-paging/style.scss +18 -0
  287. package/src/components/block-quick-navigation/index.js +21 -28
  288. package/src/components/block-rename/modal.js +2 -8
  289. package/src/components/block-switcher/test/index.js +6 -6
  290. package/src/components/block-toolbar/shuffle.js +1 -0
  291. package/src/components/block-toolbar/style.scss +1 -11
  292. package/src/components/block-tools/block-selection-button.js +11 -83
  293. package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
  294. package/src/components/block-tools/index.js +21 -1
  295. package/src/components/block-tools/style.scss +15 -0
  296. package/src/components/block-tools/use-show-block-tools.js +14 -6
  297. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -4
  298. package/src/components/block-tools/zoom-out-popover.js +49 -0
  299. package/src/components/block-tools/zoom-out-toolbar.js +140 -0
  300. package/src/components/button-block-appender/index.js +2 -1
  301. package/src/components/child-layout-control/index.js +41 -23
  302. package/src/components/date-format-picker/index.js +10 -1
  303. package/src/components/date-format-picker/style.scss +0 -9
  304. package/src/components/dimensions-tool/index.js +97 -89
  305. package/src/components/font-appearance-control/index.js +29 -83
  306. package/src/components/font-appearance-control/style.scss +3 -5
  307. package/src/components/global-styles/background-panel.js +249 -170
  308. package/src/components/global-styles/border-panel.js +3 -2
  309. package/src/components/global-styles/color-panel.js +3 -2
  310. package/src/components/global-styles/dimensions-panel.js +3 -2
  311. package/src/components/global-styles/filters-panel.js +3 -2
  312. package/src/components/global-styles/hooks.js +9 -0
  313. package/src/components/global-styles/image-settings-panel.js +3 -2
  314. package/src/components/global-styles/style.scss +105 -20
  315. package/src/components/global-styles/test/typography-utils.js +269 -0
  316. package/src/components/global-styles/typography-panel.js +49 -12
  317. package/src/components/global-styles/typography-utils.js +63 -0
  318. package/src/components/global-styles/use-global-styles-output.js +23 -8
  319. package/src/components/global-styles/utils.js +17 -6
  320. package/src/components/grid/grid-item-movers.js +11 -27
  321. package/src/components/grid/grid-item-resizer.js +3 -2
  322. package/src/components/grid/grid-visualizer.js +171 -54
  323. package/src/components/grid/style.scss +43 -8
  324. package/src/components/grid/use-grid-layout-sync.js +31 -28
  325. package/src/components/iframe/content.scss +1 -0
  326. package/src/components/inner-blocks/index.js +2 -1
  327. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
  328. package/src/components/inserter/menu.js +47 -13
  329. package/src/components/inserter/quick-inserter.js +6 -1
  330. package/src/components/inserter/style.scss +1 -49
  331. package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
  332. package/src/components/link-control/link-preview.js +1 -1
  333. package/src/components/media-placeholder/index.js +22 -32
  334. package/src/components/navigable-toolbar/index.js +3 -1
  335. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +6 -1
  336. package/src/components/tabbed-sidebar/README.md +76 -0
  337. package/src/components/tabbed-sidebar/index.js +70 -0
  338. package/src/components/tabbed-sidebar/style.scss +53 -0
  339. package/src/components/url-popover/index.js +3 -0
  340. package/src/hooks/background.js +25 -10
  341. package/src/hooks/block-hooks.js +9 -16
  342. package/src/hooks/block-style-variation.js +202 -3
  343. package/src/hooks/duotone.js +16 -12
  344. package/src/hooks/grid-visualizer.js +64 -0
  345. package/src/hooks/index.js +3 -0
  346. package/src/hooks/layout-child.js +53 -37
  347. package/src/hooks/position.js +3 -10
  348. package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
  349. package/src/hooks/use-bindings-attributes.js +18 -4
  350. package/src/hooks/utils.js +2 -0
  351. package/src/layouts/constrained.js +43 -2
  352. package/src/layouts/grid.js +146 -51
  353. package/src/private-apis.js +12 -1
  354. package/src/store/defaults.js +0 -2
  355. package/src/store/defaults.native.js +0 -3
  356. package/src/store/private-keys.js +1 -0
  357. package/src/style.scss +1 -1
  358. package/src/utils/format-font-style.js +40 -0
  359. package/src/utils/format-font-weight.js +63 -0
  360. package/src/utils/get-editor-region.js +31 -0
  361. package/src/utils/get-font-styles-and-weights.js +191 -0
  362. package/src/utils/pasting.js +5 -12
  363. package/src/utils/test/format-font-style.js +34 -0
  364. package/src/utils/test/format-font-weight.js +66 -0
  365. package/src/utils/test/get-font-styles-and-weights.js +513 -0
  366. package/tsconfig.tsbuildinfo +1 -1
  367. package/src/hooks/position.scss +0 -18
@@ -26,25 +26,22 @@ import { cleanEmptyObject, useStyleOverride } from './utils';
26
26
  import { unlock } from '../lock-unlock';
27
27
  import { store as blockEditorStore } from '../store';
28
28
 
29
- const { CustomSelectControl } = unlock( componentsPrivateApis );
29
+ const { CustomSelectControlV2Legacy: CustomSelectControl } = unlock(
30
+ componentsPrivateApis
31
+ );
30
32
 
31
33
  const POSITION_SUPPORT_KEY = 'position';
32
34
 
33
- const OPTION_CLASSNAME =
34
- 'block-editor-hooks__position-selection__select-control__option';
35
-
36
35
  const DEFAULT_OPTION = {
37
36
  key: 'default',
38
37
  value: '',
39
38
  name: __( 'Default' ),
40
- className: OPTION_CLASSNAME,
41
39
  };
42
40
 
43
41
  const STICKY_OPTION = {
44
42
  key: 'sticky',
45
43
  value: 'sticky',
46
44
  name: _x( 'Sticky', 'Name for the value of the CSS position property' ),
47
- className: OPTION_CLASSNAME,
48
45
  __experimentalHint: __(
49
46
  'The block will stick to the top of the window instead of scrolling.'
50
47
  ),
@@ -54,7 +51,6 @@ const FIXED_OPTION = {
54
51
  key: 'fixed',
55
52
  value: 'fixed',
56
53
  name: _x( 'Fixed', 'Name for the value of the CSS position property' ),
57
- className: OPTION_CLASSNAME,
58
54
  __experimentalHint: __(
59
55
  'The block will not move when the page is scrolled.'
60
56
  ),
@@ -283,13 +279,11 @@ export function PositionPanelPure( {
283
279
  options.length > 1 ? (
284
280
  <InspectorControls group="position">
285
281
  <BaseControl
286
- className="block-editor-hooks__position-selection"
287
282
  __nextHasNoMarginBottom
288
283
  help={ stickyHelpText }
289
284
  >
290
285
  <CustomSelectControl
291
286
  __next40pxDefaultSize
292
- className="block-editor-hooks__position-selection__select-control"
293
287
  label={ __( 'Position' ) }
294
288
  hideLabelFromVision
295
289
  describedBy={ sprintf(
@@ -299,7 +293,6 @@ export function PositionPanelPure( {
299
293
  ) }
300
294
  options={ options }
301
295
  value={ selectedOption }
302
- __experimentalShowSelectedHint
303
296
  onChange={ ( { selectedItem } ) => {
304
297
  onChangeType( selectedItem.value );
305
298
  } }
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { getVariationStylesWithRefValues } from '../block-style-variation';
5
+
6
+ describe( 'getVariationStylesWithRefValues', () => {
7
+ it( 'should resolve ref values correctly', () => {
8
+ const globalStyles = {
9
+ styles: {
10
+ color: { background: 'red' },
11
+ blocks: {
12
+ 'core/heading': {
13
+ color: { text: 'blue' },
14
+ },
15
+ 'core/group': {
16
+ variations: {
17
+ custom: {
18
+ color: {
19
+ text: { ref: 'styles.does-not-exist' },
20
+ background: {
21
+ ref: 'styles.color.background',
22
+ },
23
+ },
24
+ blocks: {
25
+ 'core/heading': {
26
+ color: {
27
+ text: {
28
+ ref: 'styles.blocks.core/heading.color.text',
29
+ },
30
+ background: { ref: '' },
31
+ },
32
+ },
33
+ },
34
+ elements: {
35
+ link: {
36
+ color: {
37
+ text: {
38
+ ref: 'styles.elements.link.color.text',
39
+ },
40
+ background: { ref: undefined },
41
+ },
42
+ ':hover': {
43
+ color: {
44
+ text: {
45
+ ref: 'styles.elements.link.:hover.color.text',
46
+ },
47
+ },
48
+ },
49
+ },
50
+ },
51
+ },
52
+ },
53
+ },
54
+ },
55
+ elements: {
56
+ link: {
57
+ color: { text: 'green' },
58
+ ':hover': {
59
+ color: { text: 'yellow' },
60
+ },
61
+ },
62
+ },
63
+ },
64
+ };
65
+
66
+ expect(
67
+ getVariationStylesWithRefValues(
68
+ globalStyles,
69
+ 'core/group',
70
+ 'custom'
71
+ )
72
+ ).toEqual( {
73
+ color: { background: 'red' },
74
+ blocks: {
75
+ 'core/heading': {
76
+ color: { text: 'blue' },
77
+ },
78
+ },
79
+ elements: {
80
+ link: {
81
+ color: {
82
+ text: 'green',
83
+ },
84
+ ':hover': {
85
+ color: { text: 'yellow' },
86
+ },
87
+ },
88
+ },
89
+ } );
90
+ } );
91
+ } );
@@ -97,6 +97,7 @@ export const withBlockBindingSupport = createHigherOrderComponent(
97
97
  unlock( select( blocksStore ) ).getAllBlockBindingsSources()
98
98
  );
99
99
  const { name, clientId, context } = props;
100
+ const hasParentPattern = !! props.context[ 'pattern/overrides' ];
100
101
  const hasPatternOverridesDefaultBinding =
101
102
  props.attributes.metadata?.bindings?.[ DEFAULT_ATTRIBUTE ]
102
103
  ?.source === 'core/pattern-overrides';
@@ -108,6 +109,11 @@ export const withBlockBindingSupport = createHigherOrderComponent(
108
109
  ),
109
110
  [ props.attributes.metadata?.bindings, name ]
110
111
  );
112
+
113
+ // While this hook doesn't directly call any selectors, `useSelect` is
114
+ // used purposely here to ensure `boundAttributes` is updated whenever
115
+ // there are attribute updates.
116
+ // `source.getValues` may also call a selector via `registry.select`.
111
117
  const boundAttributes = useSelect( () => {
112
118
  if ( ! bindings ) {
113
119
  return;
@@ -216,13 +222,20 @@ export const withBlockBindingSupport = createHigherOrderComponent(
216
222
  }
217
223
  }
218
224
 
219
- // Only apply normal attribute updates to blocks
220
- // that have partial bindings. Currently this is
221
- // only skipped for pattern overrides sources.
222
225
  if (
223
- ! hasPatternOverridesDefaultBinding &&
226
+ // Don't update non-connected attributes if the block is using pattern overrides
227
+ // and the editing is happening while overriding the pattern (not editing the original).
228
+ ! (
229
+ hasPatternOverridesDefaultBinding &&
230
+ hasParentPattern
231
+ ) &&
224
232
  Object.keys( keptAttributes ).length
225
233
  ) {
234
+ // Don't update caption and href until they are supported.
235
+ if ( hasPatternOverridesDefaultBinding ) {
236
+ delete keptAttributes?.caption;
237
+ delete keptAttributes?.href;
238
+ }
226
239
  setAttributes( keptAttributes );
227
240
  }
228
241
  } );
@@ -236,6 +249,7 @@ export const withBlockBindingSupport = createHigherOrderComponent(
236
249
  setAttributes,
237
250
  sources,
238
251
  hasPatternOverridesDefaultBinding,
252
+ hasParentPattern,
239
253
  ]
240
254
  );
241
255
 
@@ -140,6 +140,7 @@ export function useStyleOverride( {
140
140
  css,
141
141
  assets,
142
142
  __unstableType,
143
+ variation,
143
144
  clientId,
144
145
  } = {} ) {
145
146
  const { setStyleOverride, deleteStyleOverride } = unlock(
@@ -159,6 +160,7 @@ export function useStyleOverride( {
159
160
  css,
160
161
  assets,
161
162
  __unstableType,
163
+ variation,
162
164
  clientId,
163
165
  };
164
166
  // Batch updates to style overrides to avoid triggering cascading renders
@@ -24,6 +24,7 @@ import { getCSSRules } from '@wordpress/style-engine';
24
24
  import { useSettings } from '../components/use-settings';
25
25
  import { appendSelectors, getBlockGapCSS, getAlignmentsInfo } from './utils';
26
26
  import { getGapCSSValue } from '../hooks/gap';
27
+ import { BlockControls, JustifyContentControl } from '../components';
27
28
  import { shouldSkipSerialization } from '../hooks/utils';
28
29
  import { LAYOUT_DEFINITIONS } from './definitions';
29
30
 
@@ -146,8 +147,24 @@ export default {
146
147
  </>
147
148
  );
148
149
  },
149
- toolBarControls: function DefaultLayoutToolbarControls() {
150
- return null;
150
+ toolBarControls: function DefaultLayoutToolbarControls( {
151
+ layout = {},
152
+ onChange,
153
+ layoutBlockSupport,
154
+ } ) {
155
+ const { allowJustification = true } = layoutBlockSupport;
156
+
157
+ if ( ! allowJustification ) {
158
+ return null;
159
+ }
160
+ return (
161
+ <BlockControls group="block" __experimentalShareWithChildBlocks>
162
+ <DefaultLayoutJustifyContentControl
163
+ layout={ layout }
164
+ onChange={ onChange }
165
+ />
166
+ </BlockControls>
167
+ );
151
168
  },
152
169
  getLayoutStyle: function getLayoutStyle( {
153
170
  selector,
@@ -278,3 +295,27 @@ export default {
278
295
  return alignments;
279
296
  },
280
297
  };
298
+
299
+ const POPOVER_PROPS = {
300
+ placement: 'bottom-start',
301
+ };
302
+
303
+ function DefaultLayoutJustifyContentControl( { layout, onChange } ) {
304
+ const { justifyContent = 'center' } = layout;
305
+ const onJustificationChange = ( value ) => {
306
+ onChange( {
307
+ ...layout,
308
+ justifyContent: value,
309
+ } );
310
+ };
311
+ const allowedControls = [ 'left', 'center', 'right' ];
312
+
313
+ return (
314
+ <JustifyContentControl
315
+ allowedControls={ allowedControls }
316
+ value={ justifyContent }
317
+ onChange={ onJustificationChange }
318
+ popoverProps={ POPOVER_PROPS }
319
+ />
320
+ );
321
+ }
@@ -23,7 +23,6 @@ import { appendSelectors, getBlockGapCSS } from './utils';
23
23
  import { getGapCSSValue } from '../hooks/gap';
24
24
  import { shouldSkipSerialization } from '../hooks/utils';
25
25
  import { LAYOUT_DEFINITIONS } from './definitions';
26
- import { GridVisualizer, useGridLayoutSync } from '../components/grid';
27
26
 
28
27
  const RANGE_CONTROL_MAX_VALUES = {
29
28
  px: 600,
@@ -71,19 +70,28 @@ export default {
71
70
  layoutBlockSupport = {},
72
71
  } ) {
73
72
  const { allowSizingOnChildren = false } = layoutBlockSupport;
73
+
74
+ // In the experiment we want to also show column control in Auto mode, and
75
+ // the minimum width control in Manual mode.
76
+ const showColumnsControl =
77
+ window.__experimentalEnableGridInteractivity || layout?.columnCount;
78
+ const showMinWidthControl =
79
+ window.__experimentalEnableGridInteractivity ||
80
+ ! layout?.columnCount;
74
81
  return (
75
82
  <>
76
83
  <GridLayoutTypeControl
77
84
  layout={ layout }
78
85
  onChange={ onChange }
79
86
  />
80
- { layout?.columnCount ? (
87
+ { showColumnsControl && (
81
88
  <GridLayoutColumnsAndRowsControl
82
89
  layout={ layout }
83
90
  onChange={ onChange }
84
91
  allowSizingOnChildren={ allowSizingOnChildren }
85
92
  />
86
- ) : (
93
+ ) }
94
+ { showMinWidthControl && (
87
95
  <GridLayoutMinimumWidthControl
88
96
  layout={ layout }
89
97
  onChange={ onChange }
@@ -92,15 +100,8 @@ export default {
92
100
  </>
93
101
  );
94
102
  },
95
- toolBarControls: function GridLayoutToolbarControls( { clientId } ) {
96
- return (
97
- <>
98
- { window.__experimentalEnableGridInteractivity && (
99
- <GridLayoutSync clientId={ clientId } />
100
- ) }
101
- <GridVisualizer clientId={ clientId } />
102
- </>
103
- );
103
+ toolBarControls: function GridLayoutToolbarControls() {
104
+ return null;
104
105
  },
105
106
  getLayoutStyle: function getLayoutStyle( {
106
107
  selector,
@@ -111,11 +112,28 @@ export default {
111
112
  layoutDefinitions = LAYOUT_DEFINITIONS,
112
113
  } ) {
113
114
  const {
114
- minimumColumnWidth = '12rem',
115
+ minimumColumnWidth = null,
115
116
  columnCount = null,
116
117
  rowCount = null,
117
118
  } = layout;
118
119
 
120
+ // Check that the grid layout attributes are of the correct type, so that we don't accidentally
121
+ // write code that stores a string attribute instead of a number.
122
+ if ( process.env.NODE_ENV === 'development' ) {
123
+ if (
124
+ minimumColumnWidth &&
125
+ typeof minimumColumnWidth !== 'string'
126
+ ) {
127
+ throw new Error( 'minimumColumnWidth must be a string' );
128
+ }
129
+ if ( columnCount && typeof columnCount !== 'number' ) {
130
+ throw new Error( 'columnCount must be a number' );
131
+ }
132
+ if ( rowCount && typeof rowCount !== 'number' ) {
133
+ throw new Error( 'rowCount must be a number' );
134
+ }
135
+ }
136
+
119
137
  // If a block's block.json skips serialization for spacing or spacing.blockGap,
120
138
  // don't apply the user-defined value to the styles.
121
139
  const blockGapValue =
@@ -127,18 +145,33 @@ export default {
127
145
  let output = '';
128
146
  const rules = [];
129
147
 
130
- if ( columnCount ) {
148
+ if ( minimumColumnWidth && columnCount > 0 ) {
149
+ const maxValue = `max(${ minimumColumnWidth }, ( 100% - (${
150
+ blockGapValue || '1.2rem'
151
+ }*${ columnCount - 1 }) ) / ${ columnCount })`;
152
+ rules.push(
153
+ `grid-template-columns: repeat(auto-fill, minmax(${ maxValue }, 1fr))`,
154
+ `container-type: inline-size`
155
+ );
156
+ if ( rowCount ) {
157
+ rules.push(
158
+ `grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`
159
+ );
160
+ }
161
+ } else if ( columnCount ) {
131
162
  rules.push(
132
163
  `grid-template-columns: repeat(${ columnCount }, minmax(0, 1fr))`
133
164
  );
134
165
  if ( rowCount ) {
135
166
  rules.push(
136
- `grid-template-rows: repeat(${ rowCount }, minmax(0, 1fr))`
167
+ `grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`
137
168
  );
138
169
  }
139
- } else if ( minimumColumnWidth ) {
170
+ } else {
140
171
  rules.push(
141
- `grid-template-columns: repeat(auto-fill, minmax(min(${ minimumColumnWidth }, 100%), 1fr))`,
172
+ `grid-template-columns: repeat(auto-fill, minmax(min(${
173
+ minimumColumnWidth || '12rem'
174
+ }, 100%), 1fr))`,
142
175
  'container-type: inline-size'
143
176
  );
144
177
  }
@@ -172,8 +205,11 @@ export default {
172
205
 
173
206
  // Enables setting minimum width of grid items.
174
207
  function GridLayoutMinimumWidthControl( { layout, onChange } ) {
175
- const { minimumColumnWidth: value = '12rem' } = layout;
176
- const [ quantity, unit ] = parseQuantityAndUnitFromRawValue( value );
208
+ const { minimumColumnWidth, columnCount, isManualPlacement } = layout;
209
+ const defaultValue = isManualPlacement || columnCount ? null : '12rem';
210
+ const value = minimumColumnWidth || defaultValue;
211
+ const [ quantity, unit = 'rem' ] =
212
+ parseQuantityAndUnitFromRawValue( value );
177
213
 
178
214
  const handleSliderChange = ( next ) => {
179
215
  onChange( {
@@ -214,7 +250,8 @@ function GridLayoutMinimumWidthControl( { layout, onChange } ) {
214
250
  onChange={ ( newValue ) => {
215
251
  onChange( {
216
252
  ...layout,
217
- minimumColumnWidth: newValue,
253
+ minimumColumnWidth:
254
+ newValue === '' ? undefined : newValue,
218
255
  } );
219
256
  } }
220
257
  onUnitChange={ handleUnitChange }
@@ -228,7 +265,7 @@ function GridLayoutMinimumWidthControl( { layout, onChange } ) {
228
265
  <FlexItem isBlock>
229
266
  <RangeControl
230
267
  onChange={ handleSliderChange }
231
- value={ quantity }
268
+ value={ quantity || 0 }
232
269
  min={ 0 }
233
270
  max={ RANGE_CONTROL_MAX_VALUES[ unit ] || 600 }
234
271
  withInputField={ false }
@@ -247,57 +284,97 @@ function GridLayoutColumnsAndRowsControl( {
247
284
  onChange,
248
285
  allowSizingOnChildren,
249
286
  } ) {
250
- const { columnCount = 3, rowCount } = layout;
287
+ // If the grid interactivity experiment is enabled, allow unsetting the column count.
288
+ const defaultColumnCount = window.__experimentalEnableGridInteractivity
289
+ ? undefined
290
+ : 3;
291
+ const {
292
+ columnCount = defaultColumnCount,
293
+ rowCount,
294
+ isManualPlacement,
295
+ } = layout;
251
296
 
252
297
  return (
253
298
  <>
254
299
  <fieldset>
300
+ { ( ! window.__experimentalEnableGridInteractivity ||
301
+ ! isManualPlacement ) && (
302
+ <BaseControl.VisualLabel as="legend">
303
+ { __( 'Columns' ) }
304
+ </BaseControl.VisualLabel>
305
+ ) }
255
306
  <Flex gap={ 4 }>
256
307
  <FlexItem isBlock>
257
308
  <NumberControl
258
309
  size="__unstable-large"
259
310
  onChange={ ( value ) => {
260
- /**
261
- * If the input is cleared, avoid switching
262
- * back to "Auto" by setting a value of "1".
263
- */
264
- const validValue = value !== '' ? value : '1';
265
- onChange( {
266
- ...layout,
267
- columnCount: validValue,
268
- } );
311
+ if (
312
+ window.__experimentalEnableGridInteractivity
313
+ ) {
314
+ // Allow unsetting the column count when in auto mode.
315
+ const defaultNewColumnCount =
316
+ isManualPlacement ? 1 : undefined;
317
+ const newColumnCount =
318
+ value === ''
319
+ ? defaultNewColumnCount
320
+ : parseInt( value, 10 );
321
+ onChange( {
322
+ ...layout,
323
+ columnCount: newColumnCount,
324
+ } );
325
+ } else {
326
+ // Don't allow unsetting the column count.
327
+ const newColumnCount =
328
+ value === ''
329
+ ? 1
330
+ : parseInt( value, 10 );
331
+ onChange( {
332
+ ...layout,
333
+ columnCount: newColumnCount,
334
+ } );
335
+ }
269
336
  } }
270
337
  value={ columnCount }
271
- min={ 1 }
338
+ min={ 0 }
272
339
  label={ __( 'Columns' ) }
340
+ hideLabelFromVision={
341
+ ! window.__experimentalEnableGridInteractivity ||
342
+ ! isManualPlacement
343
+ }
273
344
  />
274
345
  </FlexItem>
275
346
 
276
347
  <FlexItem isBlock>
277
348
  { window.__experimentalEnableGridInteractivity &&
278
- allowSizingOnChildren ? (
349
+ allowSizingOnChildren &&
350
+ isManualPlacement ? (
279
351
  <NumberControl
280
352
  size="__unstable-large"
281
353
  onChange={ ( value ) => {
354
+ // Don't allow unsetting the row count.
355
+ const newRowCount =
356
+ value === ''
357
+ ? 1
358
+ : parseInt( value, 10 );
282
359
  onChange( {
283
360
  ...layout,
284
- rowCount: value,
361
+ rowCount: newRowCount,
285
362
  } );
286
363
  } }
287
364
  value={ rowCount }
288
- min={ 1 }
365
+ min={ 0 }
289
366
  label={ __( 'Rows' ) }
290
367
  />
291
368
  ) : (
292
369
  <RangeControl
293
- value={ parseInt( columnCount, 10 ) } // RangeControl can't deal with strings.
370
+ value={ columnCount ?? 0 }
294
371
  onChange={ ( value ) =>
295
372
  onChange( {
296
373
  ...layout,
297
374
  columnCount: value,
298
375
  } )
299
376
  }
300
- min={ 1 }
377
+ min={ 0 }
301
378
  max={ 16 }
302
379
  withInputField={ false }
303
380
  label={ __( 'Columns' ) }
@@ -313,7 +390,8 @@ function GridLayoutColumnsAndRowsControl( {
313
390
 
314
391
  // Enables switching between grid types
315
392
  function GridLayoutTypeControl( { layout, onChange } ) {
316
- const { columnCount, minimumColumnWidth } = layout;
393
+ const { columnCount, rowCount, minimumColumnWidth, isManualPlacement } =
394
+ layout;
317
395
 
318
396
  /**
319
397
  * When switching, temporarily save any custom values set on the
@@ -322,41 +400,62 @@ function GridLayoutTypeControl( { layout, onChange } ) {
322
400
  const [ tempColumnCount, setTempColumnCount ] = useState(
323
401
  columnCount || 3
324
402
  );
403
+ const [ tempRowCount, setTempRowCount ] = useState( rowCount );
325
404
  const [ tempMinimumColumnWidth, setTempMinimumColumnWidth ] = useState(
326
405
  minimumColumnWidth || '12rem'
327
406
  );
328
407
 
329
- const isManual = !! columnCount ? 'manual' : 'auto';
408
+ const gridPlacement =
409
+ isManualPlacement ||
410
+ ( !! columnCount && ! window.__experimentalEnableGridInteractivity )
411
+ ? 'manual'
412
+ : 'auto';
330
413
 
331
414
  const onChangeType = ( value ) => {
332
415
  if ( value === 'manual' ) {
333
416
  setTempMinimumColumnWidth( minimumColumnWidth || '12rem' );
334
417
  } else {
335
418
  setTempColumnCount( columnCount || 3 );
419
+ setTempRowCount( rowCount );
336
420
  }
337
421
  onChange( {
338
422
  ...layout,
339
423
  columnCount: value === 'manual' ? tempColumnCount : null,
424
+ rowCount:
425
+ value === 'manual' &&
426
+ window.__experimentalEnableGridInteractivity
427
+ ? tempRowCount
428
+ : undefined,
429
+ isManualPlacement:
430
+ value === 'manual' &&
431
+ window.__experimentalEnableGridInteractivity
432
+ ? true
433
+ : undefined,
340
434
  minimumColumnWidth:
341
435
  value === 'auto' ? tempMinimumColumnWidth : null,
342
436
  } );
343
437
  };
344
438
 
439
+ const helpText =
440
+ gridPlacement === 'manual'
441
+ ? __(
442
+ 'Grid items can be manually placed in any position on the grid.'
443
+ )
444
+ : __(
445
+ 'Grid items are placed automatically depending on their order.'
446
+ );
447
+
345
448
  return (
346
449
  <ToggleGroupControl
347
450
  __nextHasNoMarginBottom
348
451
  label={ __( 'Grid item position' ) }
349
- value={ isManual }
452
+ value={ gridPlacement }
350
453
  onChange={ onChangeType }
351
454
  isBlock
352
455
  help={
353
- isManual === 'manual'
354
- ? __(
355
- 'Grid items can be manually placed in any position on the grid.'
356
- )
357
- : __(
358
- 'Grid items are placed automatically depending on their order.'
359
- )
456
+ window.__experimentalEnableGridInteractivity
457
+ ? helpText
458
+ : undefined
360
459
  }
361
460
  >
362
461
  <ToggleGroupControlOption
@@ -372,7 +471,3 @@ function GridLayoutTypeControl( { layout, onChange } ) {
372
471
  </ToggleGroupControl>
373
472
  );
374
473
  }
375
-
376
- function GridLayoutSync( props ) {
377
- useGridLayoutSync( props );
378
- }
@@ -20,7 +20,12 @@ import { cleanEmptyObject, useStyleOverride } from './hooks/utils';
20
20
  import BlockQuickNavigation from './components/block-quick-navigation';
21
21
  import { LayoutStyle } from './components/block-list/layout';
22
22
  import { BlockRemovalWarningModal } from './components/block-removal-warning-modal';
23
- import { useLayoutClasses, useLayoutStyles } from './hooks';
23
+ import {
24
+ setBackgroundStyleDefaults,
25
+ useLayoutClasses,
26
+ useLayoutStyles,
27
+ __unstableBlockStyleVariationOverridesWithConfig,
28
+ } from './hooks';
24
29
  import DimensionsTool from './components/dimensions-tool';
25
30
  import ResolutionTool from './components/resolution-tool';
26
31
  import TextAlignmentControl from './components/text-alignment-control';
@@ -36,6 +41,7 @@ import {
36
41
  selectBlockPatternsKey,
37
42
  reusableBlocksSelectKey,
38
43
  globalStylesDataKey,
44
+ globalStylesLinksDataKey,
39
45
  } from './store/private-keys';
40
46
  import { requiresWrapperOnCopy } from './components/writing-flow/utils';
41
47
  import { PrivateRichText } from './components/rich-text/';
@@ -44,6 +50,7 @@ import { PrivateInserterLibrary } from './components/inserter/library';
44
50
  import { PrivatePublishDateTimePicker } from './components/publish-date-time-picker';
45
51
  import useSpacingSizes from './components/spacing-sizes-control/hooks/use-spacing-sizes';
46
52
  import useBlockDisplayTitle from './components/block-title/use-block-display-title';
53
+ import TabbedSidebar from './components/tabbed-sidebar';
47
54
 
48
55
  /**
49
56
  * Private @wordpress/block-editor APIs.
@@ -73,12 +80,14 @@ lock( privateApis, {
73
80
  useLayoutStyles,
74
81
  DimensionsTool,
75
82
  ResolutionTool,
83
+ TabbedSidebar,
76
84
  TextAlignmentControl,
77
85
  ReusableBlocksRenameHint,
78
86
  useReusableBlocksRenameHint,
79
87
  usesContextKey,
80
88
  useFlashEditableBlocks,
81
89
  globalStylesDataKey,
90
+ globalStylesLinksDataKey,
82
91
  selectBlockPatternsKey,
83
92
  requiresWrapperOnCopy,
84
93
  PrivateRichText,
@@ -88,4 +97,6 @@ lock( privateApis, {
88
97
  PrivatePublishDateTimePicker,
89
98
  useSpacingSizes,
90
99
  useBlockDisplayTitle,
100
+ __unstableBlockStyleVariationOverridesWithConfig,
101
+ setBackgroundStyleDefaults,
91
102
  } );