@wordpress/block-editor 13.2.0 → 13.4.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 (538) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +0 -5
  3. package/build/components/alignment-control/ui.js +2 -2
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-alignment-control/ui.js +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.native.js +1 -1
  8. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js +12 -1
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-inspector/index.js +6 -3
  12. package/build/components/block-inspector/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +3 -1
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
  16. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-list/use-in-between-inserter.js +3 -2
  20. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  21. package/build/components/block-lock/modal.js +2 -0
  22. package/build/components/block-lock/modal.js.map +1 -1
  23. package/build/components/block-lock/toolbar.js +0 -1
  24. package/build/components/block-lock/toolbar.js.map +1 -1
  25. package/build/components/block-mover/button.js +1 -1
  26. package/build/components/block-mover/button.js.map +1 -1
  27. package/build/components/block-mover/index.js +1 -1
  28. package/build/components/block-mover/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
  30. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  31. package/build/components/block-patterns-paging/index.js +5 -7
  32. package/build/components/block-patterns-paging/index.js.map +1 -1
  33. package/build/components/block-quick-navigation/index.js +20 -17
  34. package/build/components/block-quick-navigation/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -0
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/modal.js +4 -12
  38. package/build/components/block-rename/modal.js.map +1 -1
  39. package/build/components/block-switcher/index.js +1 -1
  40. package/build/components/block-switcher/index.js.map +1 -1
  41. package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
  42. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  43. package/build/components/block-switcher/preview-block-popover.js +20 -17
  44. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  45. package/build/components/block-toolbar/shuffle.js +6 -2
  46. package/build/components/block-toolbar/shuffle.js.map +1 -1
  47. package/build/components/block-tools/block-selection-button.js +7 -58
  48. package/build/components/block-tools/block-selection-button.js.map +1 -1
  49. package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  50. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  51. package/build/components/block-tools/index.js +14 -1
  52. package/build/components/block-tools/index.js.map +1 -1
  53. package/build/components/block-tools/use-show-block-tools.js +9 -8
  54. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  55. package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
  56. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  57. package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
  58. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  59. package/build/components/block-tools/zoom-out-popover.js +58 -0
  60. package/build/components/block-tools/zoom-out-popover.js.map +1 -0
  61. package/build/components/block-tools/zoom-out-toolbar.js +138 -0
  62. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
  63. package/build/components/button-block-appender/index.js +3 -1
  64. package/build/components/button-block-appender/index.js.map +1 -1
  65. package/build/components/child-layout-control/index.js +26 -18
  66. package/build/components/child-layout-control/index.js.map +1 -1
  67. package/build/components/date-format-picker/index.js +1 -1
  68. package/build/components/date-format-picker/index.js.map +1 -1
  69. package/build/components/default-block-appender/index.js +7 -4
  70. package/build/components/default-block-appender/index.js.map +1 -1
  71. package/build/components/dimensions-tool/index.js +6 -4
  72. package/build/components/dimensions-tool/index.js.map +1 -1
  73. package/build/components/font-appearance-control/index.js +22 -62
  74. package/build/components/font-appearance-control/index.js.map +1 -1
  75. package/build/components/global-styles/background-panel.js +185 -116
  76. package/build/components/global-styles/background-panel.js.map +1 -1
  77. package/build/components/global-styles/border-panel.js +2 -1
  78. package/build/components/global-styles/border-panel.js.map +1 -1
  79. package/build/components/global-styles/color-panel.js +2 -1
  80. package/build/components/global-styles/color-panel.js.map +1 -1
  81. package/build/components/global-styles/dimensions-panel.js +2 -1
  82. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +2 -1
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/hooks.js +13 -1
  86. package/build/components/global-styles/hooks.js.map +1 -1
  87. package/build/components/global-styles/image-settings-panel.js +2 -1
  88. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  89. package/build/components/global-styles/typography-panel.js +45 -24
  90. package/build/components/global-styles/typography-panel.js.map +1 -1
  91. package/build/components/global-styles/typography-utils.js +121 -0
  92. package/build/components/global-styles/typography-utils.js.map +1 -1
  93. package/build/components/global-styles/use-global-styles-output.js +47 -13
  94. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  95. package/build/components/global-styles/utils.js +17 -7
  96. package/build/components/global-styles/utils.js.map +1 -1
  97. package/build/components/grid/grid-item-movers.js +90 -48
  98. package/build/components/grid/grid-item-movers.js.map +1 -1
  99. package/build/components/grid/grid-item-resizer.js +2 -2
  100. package/build/components/grid/grid-item-resizer.js.map +1 -1
  101. package/build/components/grid/grid-visualizer.js +117 -37
  102. package/build/components/grid/grid-visualizer.js.map +1 -1
  103. package/build/components/grid/use-grid-layout-sync.js +60 -41
  104. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  105. package/build/components/index.js +1 -9
  106. package/build/components/index.js.map +1 -1
  107. package/build/components/inner-blocks/index.js +2 -2
  108. package/build/components/inner-blocks/index.js.map +1 -1
  109. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  110. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  111. package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  112. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  113. package/build/components/inserter/media-tab/media-panel.js +1 -0
  114. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  115. package/build/components/inserter/menu.js +26 -4
  116. package/build/components/inserter/menu.js.map +1 -1
  117. package/build/components/inserter/preview-panel.js +20 -3
  118. package/build/components/inserter/preview-panel.js.map +1 -1
  119. package/build/components/inserter/quick-inserter.js +2 -1
  120. package/build/components/inserter/quick-inserter.js.map +1 -1
  121. package/build/components/inserter-draggable-blocks/index.js +10 -3
  122. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  123. package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
  124. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  125. package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
  126. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  127. package/build/components/link-control/link-preview.js +1 -1
  128. package/build/components/link-control/link-preview.js.map +1 -1
  129. package/build/components/list-view/block-select-button.js +2 -6
  130. package/build/components/list-view/block-select-button.js.map +1 -1
  131. package/build/components/list-view/block.js +2 -2
  132. package/build/components/list-view/block.js.map +1 -1
  133. package/build/components/list-view/utils.js +3 -1
  134. package/build/components/list-view/utils.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +19 -23
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/navigable-toolbar/index.js +3 -1
  138. package/build/components/navigable-toolbar/index.js.map +1 -1
  139. package/build/components/rich-text/format-toolbar/index.js +1 -1
  140. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  141. package/build/components/rich-text/index.js +1 -1
  142. package/build/components/rich-text/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  144. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build/components/tabbed-sidebar/index.js +66 -0
  146. package/build/components/tabbed-sidebar/index.js.map +1 -0
  147. package/build/components/url-popover/image-url-input-ui.js +3 -3
  148. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  149. package/build/components/url-popover/index.js +3 -0
  150. package/build/components/url-popover/index.js.map +1 -1
  151. package/build/hooks/background.js +26 -4
  152. package/build/hooks/background.js.map +1 -1
  153. package/build/hooks/block-hooks.js +11 -17
  154. package/build/hooks/block-hooks.js.map +1 -1
  155. package/build/hooks/block-style-variation.js +169 -4
  156. package/build/hooks/block-style-variation.js.map +1 -1
  157. package/build/hooks/duotone.js +16 -11
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/grid-visualizer.js +62 -0
  160. package/build/hooks/grid-visualizer.js.map +1 -0
  161. package/build/hooks/index.js +15 -2
  162. package/build/hooks/index.js.map +1 -1
  163. package/build/hooks/layout-child.js +47 -23
  164. package/build/hooks/layout-child.js.map +1 -1
  165. package/build/hooks/position.js +4 -15
  166. package/build/hooks/position.js.map +1 -1
  167. package/build/hooks/use-bindings-attributes.js +96 -55
  168. package/build/hooks/use-bindings-attributes.js.map +1 -1
  169. package/build/hooks/utils.js +2 -0
  170. package/build/hooks/utils.js.map +1 -1
  171. package/build/layouts/constrained.js +50 -4
  172. package/build/layouts/constrained.js.map +1 -1
  173. package/build/layouts/grid.js +92 -51
  174. package/build/layouts/grid.js.map +1 -1
  175. package/build/private-apis.js +6 -4
  176. package/build/private-apis.js.map +1 -1
  177. package/build/store/actions.js +18 -1
  178. package/build/store/actions.js.map +1 -1
  179. package/build/store/defaults.js +0 -2
  180. package/build/store/defaults.js.map +1 -1
  181. package/build/store/defaults.native.js +0 -3
  182. package/build/store/defaults.native.js.map +1 -1
  183. package/build/store/private-keys.js +2 -1
  184. package/build/store/private-keys.js.map +1 -1
  185. package/build/store/reducer.js +19 -1
  186. package/build/store/reducer.js.map +1 -1
  187. package/build/store/selectors.js +13 -1
  188. package/build/store/selectors.js.map +1 -1
  189. package/build/utils/format-font-style.js +45 -0
  190. package/build/utils/format-font-style.js.map +1 -0
  191. package/build/utils/format-font-weight.js +68 -0
  192. package/build/utils/format-font-weight.js.map +1 -0
  193. package/build/utils/get-editor-region.js +34 -0
  194. package/build/utils/get-editor-region.js.map +1 -0
  195. package/build/utils/get-font-styles-and-weights.js +167 -0
  196. package/build/utils/get-font-styles-and-weights.js.map +1 -0
  197. package/build/utils/pasting.js +5 -13
  198. package/build/utils/pasting.js.map +1 -1
  199. package/build-module/components/alignment-control/ui.js +2 -2
  200. package/build-module/components/alignment-control/ui.js.map +1 -1
  201. package/build-module/components/block-alignment-control/ui.js +1 -1
  202. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  203. package/build-module/components/block-alignment-control/ui.native.js +1 -1
  204. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  205. package/build-module/components/block-breadcrumb/index.js +12 -1
  206. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  207. package/build-module/components/block-inspector/index.js +6 -3
  208. package/build-module/components/block-inspector/index.js.map +1 -1
  209. package/build-module/components/block-list/use-block-props/index.js +3 -1
  210. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  211. package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
  212. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  213. package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
  214. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  215. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  216. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  217. package/build-module/components/block-lock/modal.js +2 -0
  218. package/build-module/components/block-lock/modal.js.map +1 -1
  219. package/build-module/components/block-lock/toolbar.js +0 -1
  220. package/build-module/components/block-lock/toolbar.js.map +1 -1
  221. package/build-module/components/block-mover/button.js +1 -1
  222. package/build-module/components/block-mover/button.js.map +1 -1
  223. package/build-module/components/block-mover/index.js +1 -1
  224. package/build-module/components/block-mover/index.js.map +1 -1
  225. package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
  226. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  227. package/build-module/components/block-patterns-paging/index.js +5 -7
  228. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  229. package/build-module/components/block-quick-navigation/index.js +20 -17
  230. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  231. package/build-module/components/block-removal-warning-modal/index.js +2 -0
  232. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  233. package/build-module/components/block-rename/modal.js +5 -13
  234. package/build-module/components/block-rename/modal.js.map +1 -1
  235. package/build-module/components/block-switcher/index.js +1 -1
  236. package/build-module/components/block-switcher/index.js.map +1 -1
  237. package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
  238. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  239. package/build-module/components/block-switcher/preview-block-popover.js +20 -17
  240. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  241. package/build-module/components/block-toolbar/shuffle.js +6 -2
  242. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  243. package/build-module/components/block-tools/block-selection-button.js +10 -61
  244. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  245. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  246. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  247. package/build-module/components/block-tools/index.js +14 -1
  248. package/build-module/components/block-tools/index.js.map +1 -1
  249. package/build-module/components/block-tools/use-show-block-tools.js +9 -8
  250. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  251. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
  252. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  253. package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
  254. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  255. package/build-module/components/block-tools/zoom-out-popover.js +49 -0
  256. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
  257. package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
  258. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
  259. package/build-module/components/button-block-appender/index.js +3 -1
  260. package/build-module/components/button-block-appender/index.js.map +1 -1
  261. package/build-module/components/child-layout-control/index.js +27 -19
  262. package/build-module/components/child-layout-control/index.js.map +1 -1
  263. package/build-module/components/date-format-picker/index.js +2 -2
  264. package/build-module/components/date-format-picker/index.js.map +1 -1
  265. package/build-module/components/default-block-appender/index.js +7 -4
  266. package/build-module/components/default-block-appender/index.js.map +1 -1
  267. package/build-module/components/dimensions-tool/index.js +6 -4
  268. package/build-module/components/dimensions-tool/index.js.map +1 -1
  269. package/build-module/components/font-appearance-control/index.js +24 -62
  270. package/build-module/components/font-appearance-control/index.js.map +1 -1
  271. package/build-module/components/global-styles/background-panel.js +188 -119
  272. package/build-module/components/global-styles/background-panel.js.map +1 -1
  273. package/build-module/components/global-styles/border-panel.js +3 -2
  274. package/build-module/components/global-styles/border-panel.js.map +1 -1
  275. package/build-module/components/global-styles/color-panel.js +3 -2
  276. package/build-module/components/global-styles/color-panel.js.map +1 -1
  277. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  278. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  279. package/build-module/components/global-styles/filters-panel.js +3 -2
  280. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  281. package/build-module/components/global-styles/hooks.js +13 -1
  282. package/build-module/components/global-styles/hooks.js.map +1 -1
  283. package/build-module/components/global-styles/image-settings-panel.js +3 -2
  284. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  285. package/build-module/components/global-styles/typography-panel.js +47 -26
  286. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  287. package/build-module/components/global-styles/typography-utils.js +117 -0
  288. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  289. package/build-module/components/global-styles/use-global-styles-output.js +47 -13
  290. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  291. package/build-module/components/global-styles/utils.js +15 -6
  292. package/build-module/components/global-styles/utils.js.map +1 -1
  293. package/build-module/components/grid/grid-item-movers.js +93 -50
  294. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  295. package/build-module/components/grid/grid-item-resizer.js +2 -2
  296. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  297. package/build-module/components/grid/grid-visualizer.js +118 -38
  298. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  299. package/build-module/components/grid/use-grid-layout-sync.js +61 -42
  300. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  301. package/build-module/components/index.js +0 -5
  302. package/build-module/components/index.js.map +1 -1
  303. package/build-module/components/inner-blocks/index.js +2 -2
  304. package/build-module/components/inner-blocks/index.js.map +1 -1
  305. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  306. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  307. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  308. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  309. package/build-module/components/inserter/media-tab/media-panel.js +1 -0
  310. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  311. package/build-module/components/inserter/menu.js +26 -4
  312. package/build-module/components/inserter/menu.js.map +1 -1
  313. package/build-module/components/inserter/preview-panel.js +20 -3
  314. package/build-module/components/inserter/preview-panel.js.map +1 -1
  315. package/build-module/components/inserter/quick-inserter.js +2 -1
  316. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  317. package/build-module/components/inserter-draggable-blocks/index.js +10 -3
  318. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  319. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
  320. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  321. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
  322. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  323. package/build-module/components/link-control/link-preview.js +1 -1
  324. package/build-module/components/link-control/link-preview.js.map +1 -1
  325. package/build-module/components/list-view/block-select-button.js +3 -7
  326. package/build-module/components/list-view/block-select-button.js.map +1 -1
  327. package/build-module/components/list-view/block.js +2 -2
  328. package/build-module/components/list-view/block.js.map +1 -1
  329. package/build-module/components/list-view/utils.js +3 -1
  330. package/build-module/components/list-view/utils.js.map +1 -1
  331. package/build-module/components/media-placeholder/index.js +19 -23
  332. package/build-module/components/media-placeholder/index.js.map +1 -1
  333. package/build-module/components/navigable-toolbar/index.js +3 -1
  334. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  335. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  336. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  337. package/build-module/components/rich-text/index.js +1 -1
  338. package/build-module/components/rich-text/index.js.map +1 -1
  339. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  340. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  341. package/build-module/components/tabbed-sidebar/index.js +60 -0
  342. package/build-module/components/tabbed-sidebar/index.js.map +1 -0
  343. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  344. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  345. package/build-module/components/url-popover/index.js +3 -0
  346. package/build-module/components/url-popover/index.js.map +1 -1
  347. package/build-module/hooks/background.js +26 -4
  348. package/build-module/hooks/background.js.map +1 -1
  349. package/build-module/hooks/block-hooks.js +11 -17
  350. package/build-module/hooks/block-hooks.js.map +1 -1
  351. package/build-module/hooks/block-style-variation.js +168 -4
  352. package/build-module/hooks/block-style-variation.js.map +1 -1
  353. package/build-module/hooks/duotone.js +16 -11
  354. package/build-module/hooks/duotone.js.map +1 -1
  355. package/build-module/hooks/grid-visualizer.js +61 -0
  356. package/build-module/hooks/grid-visualizer.js.map +1 -0
  357. package/build-module/hooks/index.js +3 -0
  358. package/build-module/hooks/index.js.map +1 -1
  359. package/build-module/hooks/layout-child.js +47 -23
  360. package/build-module/hooks/layout-child.js.map +1 -1
  361. package/build-module/hooks/position.js +4 -15
  362. package/build-module/hooks/position.js.map +1 -1
  363. package/build-module/hooks/use-bindings-attributes.js +96 -56
  364. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  365. package/build-module/hooks/utils.js +2 -0
  366. package/build-module/hooks/utils.js.map +1 -1
  367. package/build-module/layouts/constrained.js +50 -4
  368. package/build-module/layouts/constrained.js.map +1 -1
  369. package/build-module/layouts/grid.js +92 -51
  370. package/build-module/layouts/grid.js.map +1 -1
  371. package/build-module/private-apis.js +8 -6
  372. package/build-module/private-apis.js.map +1 -1
  373. package/build-module/store/actions.js +15 -0
  374. package/build-module/store/actions.js.map +1 -1
  375. package/build-module/store/defaults.js +0 -2
  376. package/build-module/store/defaults.js.map +1 -1
  377. package/build-module/store/defaults.native.js +0 -3
  378. package/build-module/store/defaults.native.js.map +1 -1
  379. package/build-module/store/private-keys.js +1 -0
  380. package/build-module/store/private-keys.js.map +1 -1
  381. package/build-module/store/reducer.js +18 -1
  382. package/build-module/store/reducer.js.map +1 -1
  383. package/build-module/store/selectors.js +10 -0
  384. package/build-module/store/selectors.js.map +1 -1
  385. package/build-module/utils/format-font-style.js +39 -0
  386. package/build-module/utils/format-font-style.js.map +1 -0
  387. package/build-module/utils/format-font-weight.js +62 -0
  388. package/build-module/utils/format-font-weight.js.map +1 -0
  389. package/build-module/utils/get-editor-region.js +28 -0
  390. package/build-module/utils/get-editor-region.js.map +1 -0
  391. package/build-module/utils/get-font-styles-and-weights.js +160 -0
  392. package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
  393. package/build-module/utils/pasting.js +5 -13
  394. package/build-module/utils/pasting.js.map +1 -1
  395. package/build-style/content-rtl.css +7 -6
  396. package/build-style/content.css +7 -6
  397. package/build-style/style-rtl.css +356 -181
  398. package/build-style/style.css +356 -181
  399. package/build-types/components/block-context/index.d.ts +2 -2
  400. package/build-types/components/block-context/index.d.ts.map +1 -1
  401. package/build-types/utils/dom.d.ts.map +1 -1
  402. package/package.json +32 -32
  403. package/src/components/alignment-control/ui.js +2 -2
  404. package/src/components/block-alignment-control/ui.js +1 -1
  405. package/src/components/block-alignment-control/ui.native.js +1 -1
  406. package/src/components/block-breadcrumb/index.js +16 -1
  407. package/src/components/block-context/README.md +4 -4
  408. package/src/components/block-inspector/index.js +8 -4
  409. package/src/components/block-list/content.scss +2 -16
  410. package/src/components/block-list/use-block-props/index.js +1 -1
  411. package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
  412. package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
  413. package/src/components/block-list/use-in-between-inserter.js +5 -1
  414. package/src/components/block-lock/modal.js +10 -2
  415. package/src/components/block-lock/style.scss +4 -8
  416. package/src/components/block-lock/toolbar.js +0 -1
  417. package/src/components/block-mover/button.js +1 -1
  418. package/src/components/block-mover/index.js +1 -1
  419. package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
  420. package/src/components/block-patterns-paging/index.js +8 -11
  421. package/src/components/block-patterns-paging/style.scss +0 -5
  422. package/src/components/block-quick-navigation/index.js +21 -28
  423. package/src/components/block-removal-warning-modal/index.js +10 -2
  424. package/src/components/block-rename/modal.js +2 -8
  425. package/src/components/block-switcher/index.js +1 -1
  426. package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
  427. package/src/components/block-switcher/preview-block-popover.js +20 -14
  428. package/src/components/block-switcher/style.scss +8 -17
  429. package/src/components/block-switcher/test/index.js +6 -6
  430. package/src/components/block-toolbar/shuffle.js +9 -1
  431. package/src/components/block-toolbar/style.scss +1 -11
  432. package/src/components/block-tools/block-selection-button.js +11 -83
  433. package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
  434. package/src/components/block-tools/index.js +21 -1
  435. package/src/components/block-tools/style.scss +23 -0
  436. package/src/components/block-tools/use-show-block-tools.js +21 -10
  437. package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
  438. package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
  439. package/src/components/block-tools/zoom-out-popover.js +50 -0
  440. package/src/components/block-tools/zoom-out-toolbar.js +140 -0
  441. package/src/components/button-block-appender/index.js +2 -1
  442. package/src/components/child-layout-control/index.js +41 -23
  443. package/src/components/date-format-picker/index.js +2 -2
  444. package/src/components/date-format-picker/style.scss +0 -9
  445. package/src/components/default-block-appender/index.js +11 -4
  446. package/src/components/dimensions-tool/index.js +97 -89
  447. package/src/components/font-appearance-control/index.js +24 -82
  448. package/src/components/font-appearance-control/style.scss +3 -5
  449. package/src/components/global-styles/background-panel.js +266 -167
  450. package/src/components/global-styles/border-panel.js +3 -2
  451. package/src/components/global-styles/color-panel.js +3 -2
  452. package/src/components/global-styles/dimensions-panel.js +3 -2
  453. package/src/components/global-styles/filters-panel.js +3 -2
  454. package/src/components/global-styles/hooks.js +14 -1
  455. package/src/components/global-styles/image-settings-panel.js +3 -2
  456. package/src/components/global-styles/style.scss +116 -19
  457. package/src/components/global-styles/test/typography-utils.js +594 -0
  458. package/src/components/global-styles/test/use-global-styles-output.js +3 -1
  459. package/src/components/global-styles/typography-panel.js +56 -27
  460. package/src/components/global-styles/typography-utils.js +159 -0
  461. package/src/components/global-styles/use-global-styles-output.js +45 -10
  462. package/src/components/global-styles/utils.js +17 -6
  463. package/src/components/grid/grid-item-movers.js +140 -86
  464. package/src/components/grid/grid-item-resizer.js +3 -2
  465. package/src/components/grid/grid-visualizer.js +172 -55
  466. package/src/components/grid/style.scss +157 -8
  467. package/src/components/grid/use-grid-layout-sync.js +88 -46
  468. package/src/components/iframe/content.scss +2 -1
  469. package/src/components/index.js +0 -5
  470. package/src/components/inner-blocks/index.js +6 -2
  471. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
  472. package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
  473. package/src/components/inserter/media-tab/media-panel.js +1 -0
  474. package/src/components/inserter/menu.js +47 -13
  475. package/src/components/inserter/preview-panel.js +27 -4
  476. package/src/components/inserter/quick-inserter.js +6 -1
  477. package/src/components/inserter/style.scss +58 -92
  478. package/src/components/inserter-draggable-blocks/index.js +11 -3
  479. package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
  480. package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
  481. package/src/components/inspector-controls-tabs/style.scss +0 -21
  482. package/src/components/link-control/link-preview.js +1 -1
  483. package/src/components/list-view/block-select-button.js +3 -13
  484. package/src/components/list-view/block.js +10 -3
  485. package/src/components/list-view/style.scss +2 -1
  486. package/src/components/list-view/utils.js +13 -2
  487. package/src/components/media-placeholder/index.js +22 -32
  488. package/src/components/navigable-toolbar/index.js +3 -1
  489. package/src/components/rich-text/format-toolbar/index.js +1 -1
  490. package/src/components/rich-text/index.js +1 -1
  491. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
  492. package/src/components/tabbed-sidebar/README.md +76 -0
  493. package/src/components/tabbed-sidebar/index.js +70 -0
  494. package/src/components/tabbed-sidebar/style.scss +53 -0
  495. package/src/components/url-popover/image-url-input-ui.js +3 -3
  496. package/src/components/url-popover/index.js +3 -0
  497. package/src/components/url-popover/style.scss +1 -0
  498. package/src/hooks/background.js +25 -10
  499. package/src/hooks/block-hooks.js +9 -16
  500. package/src/hooks/block-style-variation.js +202 -3
  501. package/src/hooks/duotone.js +16 -12
  502. package/src/hooks/grid-visualizer.js +62 -0
  503. package/src/hooks/index.js +3 -0
  504. package/src/hooks/layout-child.js +64 -39
  505. package/src/hooks/position.js +3 -20
  506. package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
  507. package/src/hooks/use-bindings-attributes.js +107 -63
  508. package/src/hooks/utils.js +2 -0
  509. package/src/layouts/constrained.js +53 -4
  510. package/src/layouts/grid.js +148 -51
  511. package/src/private-apis.js +12 -7
  512. package/src/store/actions.js +15 -0
  513. package/src/store/defaults.js +0 -2
  514. package/src/store/defaults.native.js +0 -3
  515. package/src/store/private-keys.js +1 -0
  516. package/src/store/reducer.js +18 -0
  517. package/src/store/selectors.js +10 -0
  518. package/src/style.scss +1 -1
  519. package/src/utils/format-font-style.js +40 -0
  520. package/src/utils/format-font-weight.js +63 -0
  521. package/src/utils/get-editor-region.js +31 -0
  522. package/src/utils/get-font-styles-and-weights.js +191 -0
  523. package/src/utils/pasting.js +5 -12
  524. package/src/utils/test/format-font-style.js +34 -0
  525. package/src/utils/test/format-font-weight.js +66 -0
  526. package/src/utils/test/get-font-styles-and-weights.js +513 -0
  527. package/tsconfig.tsbuildinfo +1 -1
  528. package/build/components/inserter/reusable-block-rename-hint.js +0 -71
  529. package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
  530. package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
  531. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  532. package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
  533. package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
  534. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
  535. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  536. package/src/components/inserter/reusable-block-rename-hint.js +0 -69
  537. package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
  538. package/src/hooks/position.scss +0 -18
@@ -295,26 +295,30 @@ function useDuotoneStyles( {
295
295
  return;
296
296
  }
297
297
 
298
- // Safari does not always update the duotone filter when the duotone colors
299
- // are changed. When using Safari, force the block element to be repainted by
300
- // the browser to ensure any changes are reflected visually. This logic matches
301
- // that used on the site frontend in `block-supports/duotone.php`.
298
+ // Safari does not always update the duotone filter when the duotone
299
+ // colors are changed. When using Safari, force the block element to be
300
+ // repainted by the browser to ensure any changes are reflected
301
+ // visually. This logic matches that used on the site frontend in
302
+ // `block-supports/duotone.php`.
302
303
  if ( blockElement && isSafari ) {
303
304
  const display = blockElement.style.display;
304
- // Switch to `inline-block` to force a repaint. In the editor, `inline-block`
305
- // is used instead of `none` to ensure that scroll position is not affected,
306
- // as `none` results in the editor scrolling to the top of the block.
305
+ // Switch to `inline-block` to force a repaint. In the editor,
306
+ // `inline-block` is used instead of `none` to ensure that scroll
307
+ // position is not affected, as `none` results in the editor
308
+ // scrolling to the top of the block.
307
309
  blockElement.style.display = 'inline-block';
308
- // Simply accessing el.offsetHeight flushes layout and style
309
- // changes in WebKit without having to wait for setTimeout.
310
+ // Simply accessing el.offsetHeight flushes layout and style changes
311
+ // in WebKit without having to wait for setTimeout.
310
312
  // eslint-disable-next-line no-unused-expressions
311
313
  blockElement.offsetHeight;
312
314
  blockElement.style.display = display;
313
315
  }
314
- }, [ isValidFilter, blockElement ] );
316
+ // `colors` must be a dependency so this effect runs when the colors
317
+ // change in Safari.
318
+ }, [ isValidFilter, blockElement, colors ] );
315
319
  }
316
320
 
317
- function useBlockProps( { name, style } ) {
321
+ function useBlockProps( { clientId, name, style } ) {
318
322
  const id = useInstanceId( useBlockProps );
319
323
  const selector = useMemo( () => {
320
324
  const blockType = getBlockType( name );
@@ -362,7 +366,7 @@ function useBlockProps( { name, style } ) {
362
366
  const shouldRender = selector && attribute;
363
367
 
364
368
  useDuotoneStyles( {
365
- clientId: id,
369
+ clientId,
366
370
  id: filterClass,
367
371
  selector,
368
372
  attribute,
@@ -0,0 +1,62 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { createHigherOrderComponent } from '@wordpress/compose';
5
+ import { addFilter } from '@wordpress/hooks';
6
+ import { useSelect } from '@wordpress/data';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import { GridVisualizer, useGridLayoutSync } from '../components/grid';
12
+ import { store as blockEditorStore } from '../store';
13
+
14
+ function GridLayoutSync( props ) {
15
+ useGridLayoutSync( props );
16
+ }
17
+
18
+ function GridTools( { clientId, layout } ) {
19
+ const { isSelected, isDragging } = useSelect( ( select ) => {
20
+ const { isBlockSelected, isDraggingBlocks } =
21
+ select( blockEditorStore );
22
+
23
+ return {
24
+ isSelected: isBlockSelected( clientId ),
25
+ isDragging: isDraggingBlocks(),
26
+ };
27
+ } );
28
+
29
+ return (
30
+ <>
31
+ <GridLayoutSync clientId={ clientId } />
32
+ { ( isSelected || isDragging ) && (
33
+ <GridVisualizer clientId={ clientId } parentLayout={ layout } />
34
+ ) }
35
+ </>
36
+ );
37
+ }
38
+
39
+ const addGridVisualizerToBlockEdit = createHigherOrderComponent(
40
+ ( BlockEdit ) => ( props ) => {
41
+ if ( props.attributes.layout?.type !== 'grid' ) {
42
+ return <BlockEdit key="edit" { ...props } />;
43
+ }
44
+
45
+ return (
46
+ <>
47
+ <GridTools
48
+ clientId={ props.clientId }
49
+ layout={ props.attributes.layout }
50
+ />
51
+ <BlockEdit key="edit" { ...props } />
52
+ </>
53
+ );
54
+ },
55
+ 'addGridVisualizerToBlockEdit'
56
+ );
57
+
58
+ addFilter(
59
+ 'editor.BlockEdit',
60
+ 'core/editor/grid-visualizer',
61
+ addGridVisualizerToBlockEdit
62
+ );
@@ -33,6 +33,7 @@ import blockHooks from './block-hooks';
33
33
  import blockBindingsPanel from './block-bindings';
34
34
  import './block-renaming';
35
35
  import './use-bindings-attributes';
36
+ import './grid-visualizer';
36
37
 
37
38
  createBlockEditFilter(
38
39
  [
@@ -87,4 +88,6 @@ export { getSpacingClassesAndStyles } from './use-spacing-props';
87
88
  export { getTypographyClassesAndStyles } from './use-typography-props';
88
89
  export { getGapCSSValue } from './gap';
89
90
  export { useCachedTruthy } from './use-cached-truthy';
91
+ export { setBackgroundStyleDefaults } from './background';
90
92
  export { useZoomOut } from './use-zoom-out';
93
+ export { __unstableBlockStyleVariationOverridesWithConfig } from './block-style-variation';
@@ -35,6 +35,23 @@ function useBlockPropsChildLayoutStyles( { style } ) {
35
35
  const id = useInstanceId( useBlockPropsChildLayoutStyles );
36
36
  const selector = `.wp-container-content-${ id }`;
37
37
 
38
+ // Check that the grid layout attributes are of the correct type, so that we don't accidentally
39
+ // write code that stores a string attribute instead of a number.
40
+ if ( process.env.NODE_ENV === 'development' ) {
41
+ if ( columnStart && typeof columnStart !== 'number' ) {
42
+ throw new Error( 'columnStart must be a number' );
43
+ }
44
+ if ( rowStart && typeof rowStart !== 'number' ) {
45
+ throw new Error( 'rowStart must be a number' );
46
+ }
47
+ if ( columnSpan && typeof columnSpan !== 'number' ) {
48
+ throw new Error( 'columnSpan must be a number' );
49
+ }
50
+ if ( rowSpan && typeof rowSpan !== 'number' ) {
51
+ throw new Error( 'rowSpan must be a number' );
52
+ }
53
+ }
54
+
38
55
  let css = '';
39
56
  if ( shouldRenderChildLayoutStyles ) {
40
57
  if ( selfStretch === 'fixed' && flexSize ) {
@@ -59,6 +76,19 @@ function useBlockPropsChildLayoutStyles( { style } ) {
59
76
  grid-column: span ${ columnSpan };
60
77
  }`;
61
78
  }
79
+ if ( rowStart && rowSpan ) {
80
+ css += `${ selector } {
81
+ grid-row: ${ rowStart } / span ${ rowSpan };
82
+ }`;
83
+ } else if ( rowStart ) {
84
+ css += `${ selector } {
85
+ grid-row: ${ rowStart };
86
+ }`;
87
+ } else if ( rowSpan ) {
88
+ css += `${ selector } {
89
+ grid-row: span ${ rowSpan };
90
+ }`;
91
+ }
62
92
  /**
63
93
  * If minimumColumnWidth is set on the parent, or if no
64
94
  * columnCount is set, the grid is responsive so a
@@ -68,16 +98,6 @@ function useBlockPropsChildLayoutStyles( { style } ) {
68
98
  ( columnSpan || columnStart ) &&
69
99
  ( minimumColumnWidth || ! columnCount )
70
100
  ) {
71
- // Check if columnSpan and columnStart are numbers so Math.max doesn't break.
72
- const columnSpanNumber = columnSpan ? parseInt( columnSpan ) : null;
73
- const columnStartNumber = columnStart
74
- ? parseInt( columnStart )
75
- : null;
76
- const highestNumber = Math.max(
77
- columnSpanNumber,
78
- columnStartNumber
79
- );
80
-
81
101
  let parentColumnValue = parseFloat( minimumColumnWidth );
82
102
  /**
83
103
  * 12rem is the default minimumColumnWidth value.
@@ -99,32 +119,38 @@ function useBlockPropsChildLayoutStyles( { style } ) {
99
119
  parentColumnUnit = 'rem';
100
120
  }
101
121
 
122
+ let numColsToBreakAt = 2;
123
+
124
+ if ( columnSpan && columnStart ) {
125
+ numColsToBreakAt = columnSpan + columnStart - 1;
126
+ } else if ( columnSpan ) {
127
+ numColsToBreakAt = columnSpan;
128
+ } else {
129
+ numColsToBreakAt = columnStart;
130
+ }
131
+
102
132
  const defaultGapValue = parentColumnUnit === 'px' ? 24 : 1.5;
103
133
  const containerQueryValue =
104
- highestNumber * parentColumnValue +
105
- ( highestNumber - 1 ) * defaultGapValue;
134
+ numColsToBreakAt * parentColumnValue +
135
+ ( numColsToBreakAt - 1 ) * defaultGapValue;
136
+ // For blocks that only span one column, we want to remove any rowStart values as
137
+ // the container reduces in size, so that blocks are still arranged in markup order.
138
+ const minimumContainerQueryValue =
139
+ parentColumnValue * 2 + defaultGapValue - 1;
106
140
  // If a span is set we want to preserve it as long as possible, otherwise we just reset the value.
107
- const gridColumnValue = columnSpan ? '1/-1' : 'auto';
141
+ const gridColumnValue =
142
+ columnSpan && columnSpan > 1 ? '1/-1' : 'auto';
108
143
 
109
- css += `@container (max-width: ${ containerQueryValue }${ parentColumnUnit }) {
144
+ css += `@container (max-width: ${ Math.max(
145
+ containerQueryValue,
146
+ minimumContainerQueryValue
147
+ ) }${ parentColumnUnit }) {
110
148
  ${ selector } {
111
149
  grid-column: ${ gridColumnValue };
150
+ grid-row: auto;
112
151
  }
113
152
  }`;
114
153
  }
115
- if ( rowStart && rowSpan ) {
116
- css += `${ selector } {
117
- grid-row: ${ rowStart } / span ${ rowSpan };
118
- }`;
119
- } else if ( rowStart ) {
120
- css += `${ selector } {
121
- grid-row: ${ rowStart };
122
- }`;
123
- } else if ( rowSpan ) {
124
- css += `${ selector } {
125
- grid-row: span ${ rowSpan };
126
- }`;
127
- }
128
154
  }
129
155
 
130
156
  useStyleOverride( { css } );
@@ -143,7 +169,7 @@ function ChildLayoutControlsPure( { clientId, style, setAttributes } ) {
143
169
  const {
144
170
  type: parentLayoutType = 'default',
145
171
  allowSizingOnChildren = false,
146
- columnCount,
172
+ isManualPlacement,
147
173
  } = parentLayout;
148
174
 
149
175
  const rootClientId = useSelect(
@@ -160,8 +186,6 @@ function ChildLayoutControlsPure( { clientId, style, setAttributes } ) {
160
186
  return null;
161
187
  }
162
188
 
163
- const isManualGrid = !! columnCount;
164
-
165
189
  function updateLayout( layout ) {
166
190
  setAttributes( {
167
191
  style: {
@@ -190,15 +214,16 @@ function ChildLayoutControlsPure( { clientId, style, setAttributes } ) {
190
214
  parentLayout={ parentLayout }
191
215
  />
192
216
  ) }
193
- { isManualGrid && window.__experimentalEnableGridInteractivity && (
194
- <GridItemMovers
195
- layout={ style?.layout }
196
- parentLayout={ parentLayout }
197
- onChange={ updateLayout }
198
- gridClientId={ rootClientId }
199
- blockClientId={ clientId }
200
- />
201
- ) }
217
+ { isManualPlacement &&
218
+ window.__experimentalEnableGridInteractivity && (
219
+ <GridItemMovers
220
+ layout={ style?.layout }
221
+ parentLayout={ parentLayout }
222
+ onChange={ updateLayout }
223
+ gridClientId={ rootClientId }
224
+ blockClientId={ clientId }
225
+ />
226
+ ) }
202
227
  </>
203
228
  );
204
229
  }
@@ -8,10 +8,7 @@ import clsx from 'clsx';
8
8
  */
9
9
  import { __, _x, sprintf } from '@wordpress/i18n';
10
10
  import { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';
11
- import {
12
- BaseControl,
13
- privateApis as componentsPrivateApis,
14
- } from '@wordpress/components';
11
+ import { BaseControl, CustomSelectControl } from '@wordpress/components';
15
12
  import { useInstanceId } from '@wordpress/compose';
16
13
  import { useSelect } from '@wordpress/data';
17
14
  import { useMemo, Platform } from '@wordpress/element';
@@ -23,29 +20,21 @@ import { useSettings } from '../components/use-settings';
23
20
  import InspectorControls from '../components/inspector-controls';
24
21
  import useBlockDisplayInformation from '../components/use-block-display-information';
25
22
  import { cleanEmptyObject, useStyleOverride } from './utils';
26
- import { unlock } from '../lock-unlock';
27
23
  import { store as blockEditorStore } from '../store';
28
24
 
29
- const { CustomSelectControl } = unlock( componentsPrivateApis );
30
-
31
25
  const POSITION_SUPPORT_KEY = 'position';
32
26
 
33
- const OPTION_CLASSNAME =
34
- 'block-editor-hooks__position-selection__select-control__option';
35
-
36
27
  const DEFAULT_OPTION = {
37
28
  key: 'default',
38
29
  value: '',
39
30
  name: __( 'Default' ),
40
- className: OPTION_CLASSNAME,
41
31
  };
42
32
 
43
33
  const STICKY_OPTION = {
44
34
  key: 'sticky',
45
35
  value: 'sticky',
46
36
  name: _x( 'Sticky', 'Name for the value of the CSS position property' ),
47
- className: OPTION_CLASSNAME,
48
- __experimentalHint: __(
37
+ hint: __(
49
38
  'The block will stick to the top of the window instead of scrolling.'
50
39
  ),
51
40
  };
@@ -54,10 +43,7 @@ const FIXED_OPTION = {
54
43
  key: 'fixed',
55
44
  value: 'fixed',
56
45
  name: _x( 'Fixed', 'Name for the value of the CSS position property' ),
57
- className: OPTION_CLASSNAME,
58
- __experimentalHint: __(
59
- 'The block will not move when the page is scrolled.'
60
- ),
46
+ hint: __( 'The block will not move when the page is scrolled.' ),
61
47
  };
62
48
 
63
49
  const POSITION_SIDES = [ 'top', 'right', 'bottom', 'left' ];
@@ -283,13 +269,11 @@ export function PositionPanelPure( {
283
269
  options.length > 1 ? (
284
270
  <InspectorControls group="position">
285
271
  <BaseControl
286
- className="block-editor-hooks__position-selection"
287
272
  __nextHasNoMarginBottom
288
273
  help={ stickyHelpText }
289
274
  >
290
275
  <CustomSelectControl
291
276
  __next40pxDefaultSize
292
- className="block-editor-hooks__position-selection__select-control"
293
277
  label={ __( 'Position' ) }
294
278
  hideLabelFromVision
295
279
  describedBy={ sprintf(
@@ -299,7 +283,6 @@ export function PositionPanelPure( {
299
283
  ) }
300
284
  options={ options }
301
285
  value={ selectedOption }
302
- __experimentalShowSelectedHint
303
286
  onChange={ ( { selectedItem } ) => {
304
287
  onChangeType( selectedItem.value );
305
288
  } }
@@ -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
+ } );