@wordpress/block-editor 16.0.1-next.v.202607070741.0 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (679) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/README.md +8 -0
  3. package/build/components/alignment-control/ui.cjs +2 -4
  4. package/build/components/alignment-control/ui.cjs.map +2 -2
  5. package/build/components/background-image-control/index.cjs +40 -10
  6. package/build/components/background-image-control/index.cjs.map +2 -2
  7. package/build/components/block-alignment-control/ui.cjs +5 -3
  8. package/build/components/block-alignment-control/ui.cjs.map +2 -2
  9. package/build/components/block-canvas/index.cjs +6 -1
  10. package/build/components/block-canvas/index.cjs.map +2 -2
  11. package/build/components/block-controls/groups.cjs +3 -1
  12. package/build/components/block-controls/groups.cjs.map +2 -2
  13. package/build/components/block-edit/edit.cjs +10 -18
  14. package/build/components/block-edit/edit.cjs.map +2 -2
  15. package/build/components/block-inspector/index.cjs +73 -46
  16. package/build/components/block-inspector/index.cjs.map +2 -2
  17. package/build/components/block-list/block-html.cjs +4 -1
  18. package/build/components/block-list/block-html.cjs.map +2 -2
  19. package/build/components/block-list/block.cjs +9 -3
  20. package/build/components/block-list/block.cjs.map +3 -3
  21. package/build/components/block-list/index.cjs +1 -3
  22. package/build/components/block-list/index.cjs.map +2 -2
  23. package/build/components/block-list/use-block-props/index.cjs +7 -2
  24. package/build/components/block-list/use-block-props/index.cjs.map +2 -2
  25. package/build/components/block-list/use-block-props/use-focus-first-element.cjs +9 -4
  26. package/build/components/block-list/use-block-props/use-focus-first-element.cjs.map +2 -2
  27. package/build/components/block-list/use-block-props/use-focus-handler.cjs +11 -4
  28. package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
  29. package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs +48 -0
  30. package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs.map +7 -0
  31. package/build/components/block-parent-selector/index.cjs +2 -2
  32. package/build/components/block-parent-selector/index.cjs.map +2 -2
  33. package/build/components/block-toolbar/index.cjs +43 -24
  34. package/build/components/block-toolbar/index.cjs.map +2 -2
  35. package/build/components/block-toolbar/switch-section-style.cjs +4 -2
  36. package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
  37. package/build/components/block-tools/empty-block-inserter.cjs +2 -7
  38. package/build/components/block-tools/empty-block-inserter.cjs.map +2 -2
  39. package/build/components/block-tools/index.cjs +7 -2
  40. package/build/components/block-tools/index.cjs.map +2 -2
  41. package/build/components/block-vertical-alignment-control/ui.cjs +3 -5
  42. package/build/components/block-vertical-alignment-control/ui.cjs.map +2 -2
  43. package/build/components/block-visibility/modal.cjs +20 -6
  44. package/build/components/block-visibility/modal.cjs.map +2 -2
  45. package/build/components/block-visibility/use-block-visibility.cjs +16 -6
  46. package/build/components/block-visibility/use-block-visibility.cjs.map +3 -3
  47. package/build/components/block-visibility/utils.cjs +15 -2
  48. package/build/components/block-visibility/utils.cjs.map +3 -3
  49. package/build/components/block-visibility/viewport-menu-item.cjs +7 -1
  50. package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
  51. package/build/components/block-visibility/viewport-toolbar.cjs +5 -0
  52. package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
  53. package/build/components/block-visibility/viewport-visibility-info.cjs +5 -1
  54. package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
  55. package/build/components/border-radius-control/utils.cjs +8 -58
  56. package/build/components/border-radius-control/utils.cjs.map +2 -2
  57. package/build/components/child-layout-control/index.cjs +0 -4
  58. package/build/components/child-layout-control/index.cjs.map +2 -2
  59. package/build/components/colors-gradients/control.cjs +5 -3
  60. package/build/components/colors-gradients/control.cjs.map +2 -2
  61. package/build/components/dimension-control/index.cjs +30 -20
  62. package/build/components/dimension-control/index.cjs.map +3 -3
  63. package/build/components/dimensions-tool/aspect-ratio-tool.cjs +9 -2
  64. package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
  65. package/build/components/editor-styles/index.cjs +9 -1
  66. package/build/components/editor-styles/index.cjs.map +2 -2
  67. package/build/components/global-styles/background-panel.cjs +66 -25
  68. package/build/components/global-styles/background-panel.cjs.map +3 -3
  69. package/build/components/global-styles/border-panel.cjs +153 -55
  70. package/build/components/global-styles/border-panel.cjs.map +3 -3
  71. package/build/components/global-styles/color-gradient-dropdown-item.cjs +46 -14
  72. package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +3 -3
  73. package/build/components/global-styles/color-panel.cjs +63 -17
  74. package/build/components/global-styles/color-panel.cjs.map +2 -2
  75. package/build/components/global-styles/dimensions-panel.cjs +242 -64
  76. package/build/components/global-styles/dimensions-panel.cjs.map +3 -3
  77. package/build/components/global-styles/filters-panel.cjs +59 -20
  78. package/build/components/global-styles/filters-panel.cjs.map +3 -3
  79. package/build/components/global-styles/hooks.cjs +4 -1
  80. package/build/components/global-styles/hooks.cjs.map +2 -2
  81. package/build/components/global-styles/inheritance/index.cjs +142 -0
  82. package/build/components/global-styles/inheritance/index.cjs.map +7 -0
  83. package/build/components/global-styles/inherited-value-context.cjs +173 -0
  84. package/build/components/global-styles/inherited-value-context.cjs.map +7 -0
  85. package/build/components/global-styles/shadow-panel-components.cjs +38 -20
  86. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  87. package/build/components/global-styles/state-control-badges.cjs +39 -3
  88. package/build/components/global-styles/state-control-badges.cjs.map +2 -2
  89. package/build/components/global-styles/state-control.cjs +1 -1
  90. package/build/components/global-styles/state-control.cjs.map +2 -2
  91. package/build/components/global-styles/typography-panel.cjs +271 -79
  92. package/build/components/global-styles/typography-panel.cjs.map +3 -3
  93. package/build/components/image-size-control/index.cjs +2 -4
  94. package/build/components/image-size-control/index.cjs.map +2 -2
  95. package/build/components/inserter/media-tab/hooks.cjs +33 -6
  96. package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
  97. package/build/components/inserter/media-tab/media-panel.cjs +78 -16
  98. package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
  99. package/build/components/inspector-controls-tabs/styles-tab.cjs +10 -1
  100. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
  101. package/build/components/keyboard-shortcuts/index.cjs +19 -11
  102. package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
  103. package/build/components/line-height-control/index.cjs +1 -2
  104. package/build/components/line-height-control/index.cjs.map +2 -2
  105. package/build/components/link-control/index.cjs +3 -1
  106. package/build/components/link-control/index.cjs.map +2 -2
  107. package/build/components/list-view/block.cjs +13 -4
  108. package/build/components/list-view/block.cjs.map +2 -2
  109. package/build/components/media-placeholder/index.cjs +0 -1
  110. package/build/components/media-placeholder/index.cjs.map +2 -2
  111. package/build/components/preset-input-control/index.cjs +2 -1
  112. package/build/components/preset-input-control/index.cjs.map +2 -2
  113. package/build/components/provider/block-refs-provider.cjs +8 -2
  114. package/build/components/provider/block-refs-provider.cjs.map +2 -2
  115. package/build/components/provider/index.cjs +1 -1
  116. package/build/components/provider/index.cjs.map +2 -2
  117. package/build/components/provider/use-block-sync.cjs +18 -6
  118. package/build/components/provider/use-block-sync.cjs.map +2 -2
  119. package/build/components/provider/use-media-upload-settings.cjs +3 -1
  120. package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
  121. package/build/components/rich-text/event-listeners/before-input-rules.cjs +3 -4
  122. package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
  123. package/build/components/rich-text/event-listeners/delete.cjs +2 -3
  124. package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
  125. package/build/components/rich-text/event-listeners/enter.cjs +3 -2
  126. package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
  127. package/build/components/rich-text/event-listeners/input-events.cjs +3 -3
  128. package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
  129. package/build/components/rich-text/event-listeners/input-rules.cjs +3 -4
  130. package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
  131. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +3 -3
  132. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
  133. package/build/components/rich-text/event-listeners/paste-handler.cjs +2 -1
  134. package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
  135. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +3 -3
  136. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
  137. package/build/components/rich-text/event-listeners/shortcuts.cjs +3 -3
  138. package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
  139. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +3 -3
  140. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
  141. package/build/components/rich-text/index.cjs +76 -17
  142. package/build/components/rich-text/index.cjs.map +2 -2
  143. package/build/components/spacing-sizes-control/utils.cjs +6 -19
  144. package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
  145. package/build/components/text-indent-control/index.cjs +8 -2
  146. package/build/components/text-indent-control/index.cjs.map +2 -2
  147. package/build/components/typewriter/index.cjs +129 -136
  148. package/build/components/typewriter/index.cjs.map +3 -3
  149. package/build/components/url-input/index.cjs +303 -344
  150. package/build/components/url-input/index.cjs.map +3 -3
  151. package/build/components/use-block-commands/index.cjs +21 -17
  152. package/build/components/use-block-commands/index.cjs.map +2 -2
  153. package/build/components/use-on-block-drop/index.cjs +1 -1
  154. package/build/components/use-on-block-drop/index.cjs.map +2 -2
  155. package/build/components/writing-flow/index.cjs +14 -1
  156. package/build/components/writing-flow/index.cjs.map +3 -3
  157. package/build/components/writing-flow/use-arrow-nav.cjs +42 -6
  158. package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
  159. package/build/components/writing-flow/use-click-selection.cjs +29 -3
  160. package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
  161. package/build/components/writing-flow/use-clipboard-handler.cjs +4 -1
  162. package/build/components/writing-flow/use-clipboard-handler.cjs.map +2 -2
  163. package/build/components/writing-flow/use-drag-selection.cjs +3 -8
  164. package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
  165. package/build/components/writing-flow/use-editable-root-event-handlers.cjs +179 -0
  166. package/build/components/writing-flow/use-editable-root-event-handlers.cjs.map +7 -0
  167. package/build/components/writing-flow/use-editable-root.cjs +75 -0
  168. package/build/components/writing-flow/use-editable-root.cjs.map +7 -0
  169. package/build/components/writing-flow/use-home-end.cjs +64 -0
  170. package/build/components/writing-flow/use-home-end.cjs.map +7 -0
  171. package/build/components/writing-flow/use-input.cjs +15 -5
  172. package/build/components/writing-flow/use-input.cjs.map +2 -2
  173. package/build/components/writing-flow/use-multi-selection.cjs +2 -2
  174. package/build/components/writing-flow/use-multi-selection.cjs.map +2 -2
  175. package/build/components/writing-flow/use-select-all.cjs +14 -2
  176. package/build/components/writing-flow/use-select-all.cjs.map +2 -2
  177. package/build/components/writing-flow/use-selection-observer.cjs +132 -22
  178. package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
  179. package/build/components/writing-flow/utils.cjs +28 -2
  180. package/build/components/writing-flow/utils.cjs.map +2 -2
  181. package/build/hooks/background.cjs +14 -10
  182. package/build/hooks/background.cjs.map +2 -2
  183. package/build/hooks/block-fields/rich-text/index.cjs +2 -3
  184. package/build/hooks/block-fields/rich-text/index.cjs.map +3 -3
  185. package/build/hooks/block-style-variation.cjs +4 -45
  186. package/build/hooks/block-style-variation.cjs.map +3 -3
  187. package/build/hooks/border.cjs +19 -4
  188. package/build/hooks/border.cjs.map +2 -2
  189. package/build/hooks/custom-css.cjs +6 -2
  190. package/build/hooks/custom-css.cjs.map +2 -2
  191. package/build/hooks/dimensions.cjs +15 -4
  192. package/build/hooks/dimensions.cjs.map +2 -2
  193. package/build/hooks/duotone.cjs +26 -14
  194. package/build/hooks/duotone.cjs.map +3 -3
  195. package/build/hooks/elements.cjs +15 -5
  196. package/build/hooks/elements.cjs.map +2 -2
  197. package/build/hooks/grid-visualizer.cjs +5 -3
  198. package/build/hooks/grid-visualizer.cjs.map +2 -2
  199. package/build/hooks/layout-child.cjs +22 -12
  200. package/build/hooks/layout-child.cjs.map +3 -3
  201. package/build/hooks/layout.cjs +28 -13
  202. package/build/hooks/layout.cjs.map +3 -3
  203. package/build/hooks/line-height.cjs +1 -2
  204. package/build/hooks/line-height.cjs.map +2 -2
  205. package/build/hooks/states.cjs +27 -7
  206. package/build/hooks/states.cjs.map +3 -3
  207. package/build/hooks/style.cjs +31 -9
  208. package/build/hooks/style.cjs.map +3 -3
  209. package/build/hooks/text-align.cjs +36 -6
  210. package/build/hooks/text-align.cjs.map +3 -3
  211. package/build/hooks/typography.cjs +14 -5
  212. package/build/hooks/typography.cjs.map +2 -2
  213. package/build/layouts/constrained.cjs +14 -6
  214. package/build/layouts/constrained.cjs.map +2 -2
  215. package/build/layouts/flex.cjs +27 -19
  216. package/build/layouts/flex.cjs.map +2 -2
  217. package/build/layouts/grid.cjs +0 -2
  218. package/build/layouts/grid.cjs.map +2 -2
  219. package/build/private-apis.cjs +9 -5
  220. package/build/private-apis.cjs.map +3 -3
  221. package/build/store/actions.cjs +11 -6
  222. package/build/store/actions.cjs.map +2 -2
  223. package/build/store/private-selectors.cjs +41 -3
  224. package/build/store/private-selectors.cjs.map +3 -3
  225. package/build/store/reducer.cjs +6 -6
  226. package/build/store/reducer.cjs.map +2 -2
  227. package/build/store/selectors.cjs +23 -0
  228. package/build/store/selectors.cjs.map +2 -2
  229. package/build/utils/block-bindings.cjs +29 -0
  230. package/build/utils/block-bindings.cjs.map +2 -2
  231. package/build/utils/dom.cjs +14 -0
  232. package/build/utils/dom.cjs.map +2 -2
  233. package/build/{components/rich-text/input-event.cjs → utils/native-undo.cjs} +29 -24
  234. package/build/utils/native-undo.cjs.map +7 -0
  235. package/build-module/components/alignment-control/ui.mjs +2 -4
  236. package/build-module/components/alignment-control/ui.mjs.map +2 -2
  237. package/build-module/components/background-image-control/index.mjs +43 -10
  238. package/build-module/components/background-image-control/index.mjs.map +2 -2
  239. package/build-module/components/block-alignment-control/ui.mjs +5 -3
  240. package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
  241. package/build-module/components/block-canvas/index.mjs +7 -2
  242. package/build-module/components/block-canvas/index.mjs.map +2 -2
  243. package/build-module/components/block-controls/groups.mjs +3 -1
  244. package/build-module/components/block-controls/groups.mjs.map +2 -2
  245. package/build-module/components/block-edit/edit.mjs +11 -18
  246. package/build-module/components/block-edit/edit.mjs.map +2 -2
  247. package/build-module/components/block-inspector/index.mjs +74 -46
  248. package/build-module/components/block-inspector/index.mjs.map +2 -2
  249. package/build-module/components/block-list/block-html.mjs +4 -1
  250. package/build-module/components/block-list/block-html.mjs.map +2 -2
  251. package/build-module/components/block-list/block.mjs +9 -3
  252. package/build-module/components/block-list/block.mjs.map +3 -3
  253. package/build-module/components/block-list/index.mjs +1 -3
  254. package/build-module/components/block-list/index.mjs.map +2 -2
  255. package/build-module/components/block-list/use-block-props/index.mjs +7 -2
  256. package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
  257. package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs +9 -4
  258. package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs.map +2 -2
  259. package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +11 -4
  260. package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
  261. package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs +28 -0
  262. package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs.map +7 -0
  263. package/build-module/components/block-parent-selector/index.mjs +2 -2
  264. package/build-module/components/block-parent-selector/index.mjs.map +2 -2
  265. package/build-module/components/block-toolbar/index.mjs +43 -24
  266. package/build-module/components/block-toolbar/index.mjs.map +2 -2
  267. package/build-module/components/block-toolbar/switch-section-style.mjs +4 -2
  268. package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
  269. package/build-module/components/block-tools/empty-block-inserter.mjs +2 -7
  270. package/build-module/components/block-tools/empty-block-inserter.mjs.map +2 -2
  271. package/build-module/components/block-tools/index.mjs +7 -2
  272. package/build-module/components/block-tools/index.mjs.map +2 -2
  273. package/build-module/components/block-vertical-alignment-control/ui.mjs +4 -6
  274. package/build-module/components/block-vertical-alignment-control/ui.mjs.map +2 -2
  275. package/build-module/components/block-visibility/modal.mjs +22 -10
  276. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  277. package/build-module/components/block-visibility/use-block-visibility.mjs +17 -7
  278. package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
  279. package/build-module/components/block-visibility/utils.mjs +18 -3
  280. package/build-module/components/block-visibility/utils.mjs.map +2 -2
  281. package/build-module/components/block-visibility/viewport-menu-item.mjs +7 -1
  282. package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
  283. package/build-module/components/block-visibility/viewport-toolbar.mjs +5 -0
  284. package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
  285. package/build-module/components/block-visibility/viewport-visibility-info.mjs +5 -1
  286. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
  287. package/build-module/components/border-radius-control/utils.mjs +11 -53
  288. package/build-module/components/border-radius-control/utils.mjs.map +2 -2
  289. package/build-module/components/child-layout-control/index.mjs +0 -4
  290. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  291. package/build-module/components/colors-gradients/control.mjs +5 -3
  292. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  293. package/build-module/components/dimension-control/index.mjs +30 -20
  294. package/build-module/components/dimension-control/index.mjs.map +2 -2
  295. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +10 -6
  296. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
  297. package/build-module/components/editor-styles/index.mjs +9 -1
  298. package/build-module/components/editor-styles/index.mjs.map +2 -2
  299. package/build-module/components/global-styles/background-panel.mjs +71 -29
  300. package/build-module/components/global-styles/background-panel.mjs.map +2 -2
  301. package/build-module/components/global-styles/border-panel.mjs +157 -56
  302. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  303. package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +51 -15
  304. package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
  305. package/build-module/components/global-styles/color-panel.mjs +63 -17
  306. package/build-module/components/global-styles/color-panel.mjs.map +2 -2
  307. package/build-module/components/global-styles/dimensions-panel.mjs +248 -66
  308. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  309. package/build-module/components/global-styles/filters-panel.mjs +64 -21
  310. package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
  311. package/build-module/components/global-styles/hooks.mjs +4 -1
  312. package/build-module/components/global-styles/hooks.mjs.map +2 -2
  313. package/build-module/components/global-styles/inheritance/index.mjs +108 -0
  314. package/build-module/components/global-styles/inheritance/index.mjs.map +7 -0
  315. package/build-module/components/global-styles/inherited-value-context.mjs +141 -0
  316. package/build-module/components/global-styles/inherited-value-context.mjs.map +7 -0
  317. package/build-module/components/global-styles/shadow-panel-components.mjs +38 -20
  318. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  319. package/build-module/components/global-styles/state-control-badges.mjs +41 -5
  320. package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
  321. package/build-module/components/global-styles/state-control.mjs +1 -1
  322. package/build-module/components/global-styles/state-control.mjs.map +2 -2
  323. package/build-module/components/global-styles/typography-panel.mjs +276 -80
  324. package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
  325. package/build-module/components/image-size-control/index.mjs +2 -4
  326. package/build-module/components/image-size-control/index.mjs.map +2 -2
  327. package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
  328. package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
  329. package/build-module/components/inserter/media-tab/media-panel.mjs +86 -18
  330. package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
  331. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +6 -1
  332. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  333. package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
  334. package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
  335. package/build-module/components/line-height-control/index.mjs +1 -2
  336. package/build-module/components/line-height-control/index.mjs.map +2 -2
  337. package/build-module/components/link-control/index.mjs +4 -2
  338. package/build-module/components/link-control/index.mjs.map +2 -2
  339. package/build-module/components/list-view/block.mjs +13 -4
  340. package/build-module/components/list-view/block.mjs.map +2 -2
  341. package/build-module/components/media-placeholder/index.mjs +0 -1
  342. package/build-module/components/media-placeholder/index.mjs.map +2 -2
  343. package/build-module/components/preset-input-control/index.mjs +2 -1
  344. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  345. package/build-module/components/provider/block-refs-provider.mjs +8 -2
  346. package/build-module/components/provider/block-refs-provider.mjs.map +2 -2
  347. package/build-module/components/provider/index.mjs +1 -1
  348. package/build-module/components/provider/index.mjs.map +2 -2
  349. package/build-module/components/provider/use-block-sync.mjs +18 -6
  350. package/build-module/components/provider/use-block-sync.mjs.map +2 -2
  351. package/build-module/components/provider/use-media-upload-settings.mjs +3 -1
  352. package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
  353. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +8 -5
  354. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
  355. package/build-module/components/rich-text/event-listeners/delete.mjs +7 -4
  356. package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
  357. package/build-module/components/rich-text/event-listeners/enter.mjs +8 -3
  358. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  359. package/build-module/components/rich-text/event-listeners/input-events.mjs +3 -3
  360. package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
  361. package/build-module/components/rich-text/event-listeners/input-rules.mjs +8 -5
  362. package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
  363. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +3 -3
  364. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
  365. package/build-module/components/rich-text/event-listeners/paste-handler.mjs +8 -2
  366. package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
  367. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +3 -3
  368. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
  369. package/build-module/components/rich-text/event-listeners/shortcuts.mjs +3 -3
  370. package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
  371. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +3 -3
  372. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
  373. package/build-module/components/rich-text/index.mjs +79 -14
  374. package/build-module/components/rich-text/index.mjs.map +2 -2
  375. package/build-module/components/spacing-sizes-control/utils.mjs +6 -18
  376. package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
  377. package/build-module/components/text-indent-control/index.mjs +8 -2
  378. package/build-module/components/text-indent-control/index.mjs.map +2 -2
  379. package/build-module/components/typewriter/index.mjs +129 -136
  380. package/build-module/components/typewriter/index.mjs.map +2 -2
  381. package/build-module/components/url-input/index.mjs +306 -353
  382. package/build-module/components/url-input/index.mjs.map +2 -2
  383. package/build-module/components/use-block-commands/index.mjs +21 -17
  384. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  385. package/build-module/components/use-on-block-drop/index.mjs +2 -2
  386. package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
  387. package/build-module/components/writing-flow/index.mjs +14 -1
  388. package/build-module/components/writing-flow/index.mjs.map +2 -2
  389. package/build-module/components/writing-flow/use-arrow-nav.mjs +43 -7
  390. package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
  391. package/build-module/components/writing-flow/use-click-selection.mjs +29 -3
  392. package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
  393. package/build-module/components/writing-flow/use-clipboard-handler.mjs +5 -2
  394. package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
  395. package/build-module/components/writing-flow/use-drag-selection.mjs +1 -6
  396. package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
  397. package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs +154 -0
  398. package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs.map +7 -0
  399. package/build-module/components/writing-flow/use-editable-root.mjs +54 -0
  400. package/build-module/components/writing-flow/use-editable-root.mjs.map +7 -0
  401. package/build-module/components/writing-flow/use-home-end.mjs +43 -0
  402. package/build-module/components/writing-flow/use-home-end.mjs.map +7 -0
  403. package/build-module/components/writing-flow/use-input.mjs +15 -5
  404. package/build-module/components/writing-flow/use-input.mjs.map +2 -2
  405. package/build-module/components/writing-flow/use-multi-selection.mjs +2 -2
  406. package/build-module/components/writing-flow/use-multi-selection.mjs.map +2 -2
  407. package/build-module/components/writing-flow/use-select-all.mjs +19 -3
  408. package/build-module/components/writing-flow/use-select-all.mjs.map +2 -2
  409. package/build-module/components/writing-flow/use-selection-observer.mjs +134 -21
  410. package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
  411. package/build-module/components/writing-flow/utils.mjs +26 -1
  412. package/build-module/components/writing-flow/utils.mjs.map +2 -2
  413. package/build-module/hooks/background.mjs +14 -10
  414. package/build-module/hooks/background.mjs.map +2 -2
  415. package/build-module/hooks/block-fields/rich-text/index.mjs +2 -6
  416. package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
  417. package/build-module/hooks/block-style-variation.mjs +8 -44
  418. package/build-module/hooks/block-style-variation.mjs.map +2 -2
  419. package/build-module/hooks/border.mjs +19 -4
  420. package/build-module/hooks/border.mjs.map +2 -2
  421. package/build-module/hooks/custom-css.mjs +7 -3
  422. package/build-module/hooks/custom-css.mjs.map +2 -2
  423. package/build-module/hooks/dimensions.mjs +15 -4
  424. package/build-module/hooks/dimensions.mjs.map +2 -2
  425. package/build-module/hooks/duotone.mjs +20 -9
  426. package/build-module/hooks/duotone.mjs.map +2 -2
  427. package/build-module/hooks/elements.mjs +15 -5
  428. package/build-module/hooks/elements.mjs.map +2 -2
  429. package/build-module/hooks/grid-visualizer.mjs +5 -3
  430. package/build-module/hooks/grid-visualizer.mjs.map +2 -2
  431. package/build-module/hooks/layout-child.mjs +22 -12
  432. package/build-module/hooks/layout-child.mjs.map +2 -2
  433. package/build-module/hooks/layout.mjs +28 -13
  434. package/build-module/hooks/layout.mjs.map +2 -2
  435. package/build-module/hooks/line-height.mjs +1 -2
  436. package/build-module/hooks/line-height.mjs.map +2 -2
  437. package/build-module/hooks/states.mjs +27 -7
  438. package/build-module/hooks/states.mjs.map +2 -2
  439. package/build-module/hooks/style.mjs +40 -11
  440. package/build-module/hooks/style.mjs.map +2 -2
  441. package/build-module/hooks/text-align.mjs +39 -10
  442. package/build-module/hooks/text-align.mjs.map +2 -2
  443. package/build-module/hooks/typography.mjs +14 -5
  444. package/build-module/hooks/typography.mjs.map +2 -2
  445. package/build-module/layouts/constrained.mjs +14 -6
  446. package/build-module/layouts/constrained.mjs.map +2 -2
  447. package/build-module/layouts/flex.mjs +27 -19
  448. package/build-module/layouts/flex.mjs.map +2 -2
  449. package/build-module/layouts/grid.mjs +0 -2
  450. package/build-module/layouts/grid.mjs.map +2 -2
  451. package/build-module/private-apis.mjs +7 -3
  452. package/build-module/private-apis.mjs.map +2 -2
  453. package/build-module/store/actions.mjs +12 -7
  454. package/build-module/store/actions.mjs.map +2 -2
  455. package/build-module/store/private-selectors.mjs +42 -3
  456. package/build-module/store/private-selectors.mjs.map +2 -2
  457. package/build-module/store/reducer.mjs +6 -6
  458. package/build-module/store/reducer.mjs.map +2 -2
  459. package/build-module/store/selectors.mjs +23 -0
  460. package/build-module/store/selectors.mjs.map +2 -2
  461. package/build-module/utils/block-bindings.mjs +28 -0
  462. package/build-module/utils/block-bindings.mjs.map +2 -2
  463. package/build-module/utils/dom.mjs +13 -0
  464. package/build-module/utils/dom.mjs.map +2 -2
  465. package/build-module/utils/native-undo.mjs +29 -0
  466. package/build-module/utils/native-undo.mjs.map +7 -0
  467. package/build-style/content-rtl.css +14 -27
  468. package/build-style/content.css +14 -27
  469. package/build-style/default-editor-styles-rtl.css +1 -1
  470. package/build-style/default-editor-styles.css +1 -1
  471. package/build-style/style-rtl.css +191 -61
  472. package/build-style/style.css +191 -61
  473. package/build-types/components/block-context/index.d.ts +7 -0
  474. package/build-types/components/block-context/index.d.ts.map +1 -1
  475. package/build-types/utils/block-bindings.d.ts +19 -0
  476. package/build-types/utils/block-bindings.d.ts.map +1 -1
  477. package/build-types/utils/dom.d.ts +11 -0
  478. package/build-types/utils/dom.d.ts.map +1 -1
  479. package/build-types/utils/get-px-from-css-unit.d.ts +2 -2
  480. package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -1
  481. package/build-types/utils/pasting.d.ts +1 -1
  482. package/build-types/utils/pasting.d.ts.map +1 -1
  483. package/package.json +43 -44
  484. package/src/components/alignment-control/test/__snapshots__/index.js.snap +1 -1
  485. package/src/components/alignment-control/ui.js +2 -4
  486. package/src/components/background-image-control/index.js +74 -37
  487. package/src/components/background-image-control/style.scss +13 -4
  488. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +3 -3
  489. package/src/components/block-alignment-control/test/index.js +1 -1
  490. package/src/components/block-alignment-control/ui.js +4 -2
  491. package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +1 -1
  492. package/src/components/block-canvas/index.js +9 -2
  493. package/src/components/block-card/style.scss +1 -1
  494. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
  495. package/src/components/block-controls/groups.js +2 -0
  496. package/src/components/block-edit/edit.js +13 -31
  497. package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -1
  498. package/src/components/block-inspector/index.js +60 -31
  499. package/src/components/block-list/block-html.js +5 -0
  500. package/src/components/block-list/block.js +6 -0
  501. package/src/components/block-list/content.scss +1 -11
  502. package/src/components/block-list/index.js +0 -2
  503. package/src/components/block-list/use-block-props/index.js +7 -1
  504. package/src/components/block-list/use-block-props/use-focus-first-element.js +23 -4
  505. package/src/components/block-list/use-block-props/use-focus-handler.js +35 -9
  506. package/src/components/block-list/use-block-props/use-register-block-event-handlers.js +45 -0
  507. package/src/components/block-lock/style.scss +1 -1
  508. package/src/components/block-manager/style.scss +1 -1
  509. package/src/components/block-navigation/style.scss +1 -1
  510. package/src/components/block-parent-selector/index.js +5 -2
  511. package/src/components/block-quick-navigation/style.scss +1 -3
  512. package/src/components/block-styles/style.scss +2 -2
  513. package/src/components/block-toolbar/index.js +41 -18
  514. package/src/components/block-toolbar/switch-section-style.js +5 -2
  515. package/src/components/block-tools/empty-block-inserter.js +3 -7
  516. package/src/components/block-tools/index.js +7 -0
  517. package/src/components/block-types-list/style.scss +0 -1
  518. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
  519. package/src/components/block-vertical-alignment-control/test/index.js +18 -2
  520. package/src/components/block-vertical-alignment-control/ui.js +3 -5
  521. package/src/components/block-visibility/modal.js +24 -10
  522. package/src/components/block-visibility/style.scss +1 -1
  523. package/src/components/block-visibility/test/use-block-visibility.js +128 -35
  524. package/src/components/block-visibility/test/utils.js +11 -0
  525. package/src/components/block-visibility/use-block-visibility.js +33 -11
  526. package/src/components/block-visibility/utils.js +31 -6
  527. package/src/components/block-visibility/viewport-menu-item.js +10 -1
  528. package/src/components/block-visibility/viewport-toolbar.js +6 -0
  529. package/src/components/block-visibility/viewport-visibility-info.js +5 -1
  530. package/src/components/border-radius-control/test/utils.js +0 -41
  531. package/src/components/border-radius-control/utils.js +16 -107
  532. package/src/components/button-block-appender/content.scss +7 -9
  533. package/src/components/child-layout-control/index.js +0 -4
  534. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -3
  535. package/src/components/colors-gradients/control.js +6 -3
  536. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +1 -1
  537. package/src/components/dimension-control/index.js +13 -1
  538. package/src/components/dimensions-tool/aspect-ratio-tool.js +13 -6
  539. package/src/components/editor-styles/index.js +16 -1
  540. package/src/components/font-family/stories/index.story.jsx +1 -1
  541. package/src/components/global-styles/background-panel.js +107 -34
  542. package/src/components/global-styles/border-panel.js +219 -48
  543. package/src/components/global-styles/color-gradient-dropdown-item.js +93 -28
  544. package/src/components/global-styles/color-panel.js +92 -11
  545. package/src/components/global-styles/dimensions-panel.js +422 -71
  546. package/src/components/global-styles/filters-panel.js +88 -28
  547. package/src/components/global-styles/hooks.js +8 -1
  548. package/src/components/global-styles/inheritance/index.js +204 -0
  549. package/src/components/global-styles/inheritance/style.scss +184 -0
  550. package/src/components/global-styles/inheritance/test/index.js +281 -0
  551. package/src/components/global-styles/inherited-value-context.js +271 -0
  552. package/src/components/global-styles/shadow-panel-components.js +48 -26
  553. package/src/components/global-styles/state-control-badges.js +45 -6
  554. package/src/components/global-styles/state-control.js +2 -2
  555. package/src/components/global-styles/style.scss +5 -0
  556. package/src/components/global-styles/test/background-panel.js +338 -1
  557. package/src/components/global-styles/test/border-panel.js +441 -0
  558. package/src/components/global-styles/test/color-panel.js +182 -2
  559. package/src/components/global-styles/test/dimensions-panel.js +753 -0
  560. package/src/components/global-styles/test/filters-panel.js +194 -0
  561. package/src/components/global-styles/test/inherited-value-context-core.js +98 -0
  562. package/src/components/global-styles/test/inherited-value-context.js +454 -0
  563. package/src/components/global-styles/test/state-control-badges.js +65 -0
  564. package/src/components/global-styles/test/typography-panel-core.js +185 -0
  565. package/src/components/global-styles/test/typography-panel.js +849 -12
  566. package/src/components/global-styles/typography-panel.js +449 -101
  567. package/src/components/image-editor/style.scss +33 -0
  568. package/src/components/image-size-control/index.js +0 -2
  569. package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
  570. package/src/components/inserter/media-tab/hooks.js +55 -7
  571. package/src/components/inserter/media-tab/media-panel.js +117 -21
  572. package/src/components/inserter/media-tab/test/hooks.js +63 -0
  573. package/src/components/inserter/media-tab/test/media-panel.js +127 -0
  574. package/src/components/inserter/style.scss +19 -16
  575. package/src/components/inserter-list-item/style.scss +0 -15
  576. package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
  577. package/src/components/keyboard-shortcuts/index.js +28 -11
  578. package/src/components/line-height-control/index.js +1 -2
  579. package/src/components/link-control/index.js +7 -2
  580. package/src/components/link-control/style.scss +2 -2
  581. package/src/components/link-control/test/index.js +6 -6
  582. package/src/components/link-picker/style.scss +1 -2
  583. package/src/components/list-view/block.js +13 -4
  584. package/src/components/list-view/style.scss +4 -5
  585. package/src/components/media-placeholder/index.js +0 -1
  586. package/src/components/multi-selection-inspector/style.scss +1 -1
  587. package/src/components/preset-input-control/index.js +4 -1
  588. package/src/components/provider/block-refs-provider.js +12 -2
  589. package/src/components/provider/index.js +2 -2
  590. package/src/components/provider/use-block-sync.js +18 -6
  591. package/src/components/provider/use-media-upload-settings.js +2 -0
  592. package/src/components/responsive-block-control/style.scss +1 -1
  593. package/src/components/rich-text/event-listeners/before-input-rules.js +8 -5
  594. package/src/components/rich-text/event-listeners/delete.js +7 -4
  595. package/src/components/rich-text/event-listeners/enter.js +10 -4
  596. package/src/components/rich-text/event-listeners/input-events.js +4 -3
  597. package/src/components/rich-text/event-listeners/input-rules.js +8 -5
  598. package/src/components/rich-text/event-listeners/insert-replacement-text.js +4 -3
  599. package/src/components/rich-text/event-listeners/paste-handler.js +15 -3
  600. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +4 -3
  601. package/src/components/rich-text/event-listeners/shortcuts.js +4 -3
  602. package/src/components/rich-text/event-listeners/undo-automatic-change.js +4 -3
  603. package/src/components/rich-text/index.js +116 -26
  604. package/src/components/skip-to-selected-block/style.scss +1 -1
  605. package/src/components/spacing-sizes-control/test/utils.js +16 -5
  606. package/src/components/spacing-sizes-control/utils.js +11 -28
  607. package/src/components/text-indent-control/index.js +8 -0
  608. package/src/components/typewriter/index.js +228 -224
  609. package/src/components/url-input/index.js +363 -431
  610. package/src/components/url-input/test/index.js +592 -0
  611. package/src/components/use-block-commands/index.js +27 -17
  612. package/src/components/use-on-block-drop/index.js +2 -2
  613. package/src/components/warning/test/__snapshots__/index.js.snap +1 -1
  614. package/src/components/writing-flow/index.js +17 -1
  615. package/src/components/writing-flow/use-arrow-nav.js +90 -13
  616. package/src/components/writing-flow/use-click-selection.js +55 -5
  617. package/src/components/writing-flow/use-clipboard-handler.js +5 -2
  618. package/src/components/writing-flow/use-drag-selection.js +1 -14
  619. package/src/components/writing-flow/use-editable-root-event-handlers.js +266 -0
  620. package/src/components/writing-flow/use-editable-root.js +112 -0
  621. package/src/components/writing-flow/use-home-end.js +71 -0
  622. package/src/components/writing-flow/use-input.js +25 -8
  623. package/src/components/writing-flow/use-multi-selection.js +2 -3
  624. package/src/components/writing-flow/use-select-all.js +33 -3
  625. package/src/components/writing-flow/use-selection-observer.js +218 -42
  626. package/src/components/writing-flow/utils.js +62 -0
  627. package/src/hooks/background.js +27 -24
  628. package/src/hooks/block-fields/link/styles.scss +1 -6
  629. package/src/hooks/block-fields/media/styles.scss +1 -6
  630. package/src/hooks/block-fields/rich-text/index.js +6 -9
  631. package/src/hooks/block-fields/rich-text/styles.scss +1 -1
  632. package/src/hooks/block-style-variation.js +8 -74
  633. package/src/hooks/border.js +19 -4
  634. package/src/hooks/custom-css.js +15 -6
  635. package/src/hooks/dimensions.js +17 -4
  636. package/src/hooks/duotone.js +26 -8
  637. package/src/hooks/elements.js +14 -4
  638. package/src/hooks/grid-visualizer.js +40 -36
  639. package/src/hooks/layout-child.js +19 -9
  640. package/src/hooks/layout.js +48 -31
  641. package/src/hooks/line-height.js +0 -1
  642. package/src/hooks/states.js +38 -9
  643. package/src/hooks/style.js +67 -17
  644. package/src/hooks/test/inherited-value-wiring.js +411 -0
  645. package/src/hooks/test/preset-round-trip.js +456 -0
  646. package/src/hooks/test/style.js +29 -0
  647. package/src/hooks/test/text-align.js +34 -1
  648. package/src/hooks/text-align.js +41 -10
  649. package/src/hooks/typography.js +35 -24
  650. package/src/layouts/constrained.js +5 -1
  651. package/src/layouts/flex.js +5 -1
  652. package/src/layouts/grid.js +0 -2
  653. package/src/private-apis.js +11 -2
  654. package/src/store/actions.js +53 -19
  655. package/src/store/private-selectors.js +82 -6
  656. package/src/store/reducer.js +9 -9
  657. package/src/store/selectors.js +56 -8
  658. package/src/store/test/actions.js +1 -1
  659. package/src/store/test/private-selectors.js +271 -1
  660. package/src/style.scss +2 -0
  661. package/src/utils/block-bindings.ts +50 -0
  662. package/src/utils/dom.ts +33 -0
  663. package/src/utils/native-undo.js +56 -0
  664. package/src/utils/test/block-bindings.js +181 -0
  665. package/build/components/duotone/utils.cjs +0 -87
  666. package/build/components/duotone/utils.cjs.map +0 -7
  667. package/build/components/rich-text/input-event.cjs.map +0 -7
  668. package/build/components/rich-text/shortcut.cjs +0 -51
  669. package/build/components/rich-text/shortcut.cjs.map +0 -7
  670. package/build-module/components/duotone/utils.mjs +0 -59
  671. package/build-module/components/duotone/utils.mjs.map +0 -7
  672. package/build-module/components/rich-text/input-event.mjs +0 -25
  673. package/build-module/components/rich-text/input-event.mjs.map +0 -7
  674. package/build-module/components/rich-text/shortcut.mjs +0 -26
  675. package/build-module/components/rich-text/shortcut.mjs.map +0 -7
  676. package/src/components/duotone/utils.js +0 -90
  677. package/src/components/rich-text/input-event.js +0 -31
  678. package/src/components/rich-text/shortcut.js +0 -32
  679. package/src/hooks/test/get-variation-styles-with-ref-values.js +0 -91
@@ -4,17 +4,22 @@
4
4
  import { getBlockTypes, store as blocksStore } from '@wordpress/blocks';
5
5
  import { useSelect } from '@wordpress/data';
6
6
  import { useMemo } from '@wordpress/element';
7
- import { toStyles, getBlockSelectors } from '@wordpress/global-styles-engine';
7
+ import {
8
+ toStyles,
9
+ getBlockSelectors,
10
+ privateApis as globalStylesEnginePrivateApis,
11
+ } from '@wordpress/global-styles-engine';
8
12
 
9
13
  /**
10
14
  * Internal dependencies
11
15
  */
12
16
  import { usePrivateStyleOverride } from './utils';
13
- import { getValueFromObjectPath } from '../utils/object';
14
17
  import { store as blockEditorStore } from '../store';
15
18
  import { globalStylesDataKey } from '../store/private-keys';
16
19
  import { unlock } from '../lock-unlock';
17
20
 
21
+ const { getVariationStyle } = unlock( globalStylesEnginePrivateApis );
22
+
18
23
  const VARIATION_PREFIX = 'is-style-';
19
24
 
20
25
  function getVariationMatches( className ) {
@@ -175,77 +180,6 @@ export function BlockStyleVariationOverridesWithConfig( { config } ) {
175
180
  );
176
181
  }
177
182
 
178
- /**
179
- * Retrieves any variation styles data and resolves any referenced values.
180
- *
181
- * @param {Object} globalStyles A complete global styles object, containing settings and styles.
182
- * @param {string} name The name of the desired block type.
183
- * @param {variation} variation The of the block style variation to retrieve data for.
184
- *
185
- * @return {Object|undefined} The global styles data for the specified variation.
186
- */
187
- export function getVariationStylesWithRefValues(
188
- globalStyles,
189
- name,
190
- variation
191
- ) {
192
- if ( ! globalStyles?.styles?.blocks?.[ name ]?.variations?.[ variation ] ) {
193
- return;
194
- }
195
-
196
- // Helper to recursively look for `ref` values to resolve.
197
- const replaceRefs = ( variationStyles ) => {
198
- Object.keys( variationStyles ).forEach( ( key ) => {
199
- const value = variationStyles[ key ];
200
-
201
- // Only process objects.
202
- if ( typeof value === 'object' && value !== null ) {
203
- // Process `ref` value if present.
204
- if ( value.ref !== undefined ) {
205
- if (
206
- typeof value.ref !== 'string' ||
207
- value.ref.trim() === ''
208
- ) {
209
- // Remove invalid ref.
210
- delete variationStyles[ key ];
211
- } else {
212
- // Resolve `ref` value.
213
- const refValue = getValueFromObjectPath(
214
- globalStyles,
215
- value.ref
216
- );
217
-
218
- if ( refValue ) {
219
- variationStyles[ key ] = refValue;
220
- } else {
221
- delete variationStyles[ key ];
222
- }
223
- }
224
- } else {
225
- // Recursively resolve `ref` values in nested objects.
226
- replaceRefs( value );
227
-
228
- // After recursion, if value is empty due to explicitly
229
- // `undefined` ref value, remove it.
230
- if ( Object.keys( value ).length === 0 ) {
231
- delete variationStyles[ key ];
232
- }
233
- }
234
- }
235
- } );
236
- };
237
-
238
- // Deep clone variation node to avoid mutating it within global styles and losing refs.
239
- const styles = JSON.parse(
240
- JSON.stringify(
241
- globalStyles.styles.blocks[ name ].variations[ variation ]
242
- )
243
- );
244
- replaceRefs( styles );
245
-
246
- return styles;
247
- }
248
-
249
183
  function useBlockStyleVariation( name, variation, clientId ) {
250
184
  const { globalSettings, globalStyles } = useSelect( ( select ) => {
251
185
  const settings = select( blockEditorStore ).getSettings();
@@ -256,7 +190,7 @@ function useBlockStyleVariation( name, variation, clientId ) {
256
190
  }, [] );
257
191
 
258
192
  return useMemo( () => {
259
- const variationStyles = getVariationStylesWithRefValues(
193
+ const variationStyles = getVariationStyle(
260
194
  {
261
195
  settings: globalSettings,
262
196
  styles: globalStyles,
@@ -29,6 +29,7 @@ import {
29
29
  useHasBorderPanelControls,
30
30
  BorderPanel as StylesBorderPanel,
31
31
  } from '../components/global-styles';
32
+ import { useResolvedStyle } from '../components/global-styles/inherited-value-context';
32
33
  import { store as blockEditorStore } from '../store';
33
34
  import {
34
35
  getStyleForState,
@@ -149,19 +150,32 @@ function BordersInspectorControl( { label, children, resetAllFilter } ) {
149
150
  export function BorderPanel( { clientId, name, setAttributes, settings } ) {
150
151
  const selectedState = useBlockStyleState();
151
152
  const isEnabled = useHasBorderPanel( settings );
152
- const { style, borderColor } = useSelect(
153
+ const { style, borderColor, className } = useSelect(
153
154
  ( select ) => {
154
155
  // Early return to avoid subscription when disabled
155
156
  if ( ! isEnabled ) {
156
157
  return {};
157
158
  }
158
- const { style: _style, borderColor: _borderColor } =
159
- select( blockEditorStore ).getBlockAttributes( clientId ) || {};
160
- return { style: _style, borderColor: _borderColor };
159
+ const {
160
+ style: _style,
161
+ borderColor: _borderColor,
162
+ className: _className,
163
+ } = select( blockEditorStore ).getBlockAttributes( clientId ) || {};
164
+ return {
165
+ style: _style,
166
+ borderColor: _borderColor,
167
+ className: _className,
168
+ };
161
169
  },
162
170
  [ clientId, isEnabled ]
163
171
  );
164
172
 
173
+ const { value: inheritedValue } = useResolvedStyle(
174
+ name,
175
+ className,
176
+ selectedState
177
+ );
178
+
165
179
  const isStateSelected = ! isDefaultBlockStyleState( selectedState );
166
180
 
167
181
  const value = useMemo( () => {
@@ -204,6 +218,7 @@ export function BorderPanel( { clientId, name, setAttributes, settings } ) {
204
218
  value={ value }
205
219
  onChange={ onChange }
206
220
  defaultControls={ defaultControls }
221
+ inheritedValue={ inheritedValue }
207
222
  />
208
223
  );
209
224
  }
@@ -10,7 +10,7 @@ import InspectorControls from '../components/inspector-controls';
10
10
  import AdvancedPanel, {
11
11
  validateCSS,
12
12
  } from '../components/global-styles/advanced-panel';
13
- import { cleanEmptyObject, useStyleOverride } from './utils';
13
+ import { cleanEmptyObject, usePrivateStyleOverride } from './utils';
14
14
  import { store as blockEditorStore } from '../store';
15
15
 
16
16
  // Stable reference for useInstanceId.
@@ -96,11 +96,12 @@ function CustomCSSEdit( { clientId, name, setAttributes } ) {
96
96
  * Hook to handle custom CSS for a block in the editor.
97
97
  * Generates a unique class and applies scoped CSS via style override.
98
98
  *
99
- * @param {Object} props Block props.
100
- * @param {Object} props.style Block style attribute.
99
+ * @param {Object} props Block props.
100
+ * @param {Object} props.style Block style attribute.
101
+ * @param {string} props.clientId Block client ID.
101
102
  * @return {Object} Block props including className for custom CSS scoping.
102
103
  */
103
- function useBlockProps( { style } ) {
104
+ function useBlockProps( { style, clientId } ) {
104
105
  const customCSS = style?.css;
105
106
 
106
107
  // Validate CSS is non-empty and passes validation checks.
@@ -150,8 +151,16 @@ function useBlockProps( { style } ) {
150
151
  return processCSSNesting( customCSS, customCSSSelector );
151
152
  }, [ customCSS, customCSSSelector, isValidCSS ] );
152
153
 
153
- // Inject the CSS via style override.
154
- useStyleOverride( { css: transformedCSS } );
154
+ // Inject the CSS via style override. The type makes EditorStyles print
155
+ // it after all other overrides (e.g. block style variations), matching
156
+ // the front end where the custom CSS stylesheet is printed last. The
157
+ // clientId keeps custom CSS overrides in block order relative to each
158
+ // other, which is the order they print in on the front end.
159
+ usePrivateStyleOverride( {
160
+ css: transformedCSS,
161
+ clientId,
162
+ __unstableType: 'custom-css',
163
+ } );
155
164
 
156
165
  // Only add the class if there's valid custom CSS.
157
166
  if ( ! isValidCSS ) {
@@ -19,6 +19,7 @@ import {
19
19
  DimensionsPanel as StylesDimensionsPanel,
20
20
  useHasDimensionsPanel,
21
21
  } from '../components/global-styles';
22
+ import { useResolvedStyle } from '../components/global-styles/inherited-value-context';
22
23
  import { MarginVisualizer, PaddingVisualizer } from './spacing-visualizer';
23
24
  import { store as blockEditorStore } from '../store';
24
25
  import { unlock } from '../lock-unlock';
@@ -78,17 +79,28 @@ export function DimensionsPanel( { clientId, name, setAttributes, settings } ) {
78
79
  const selectedState = useBlockStyleState();
79
80
  const isStateSelected = ! isDefaultBlockStyleState( selectedState );
80
81
  const isEnabled = useHasDimensionsPanel( settings, selectedState );
81
- const style = useSelect(
82
+ const { style, className } = useSelect(
82
83
  ( select ) => {
83
84
  // Early return to avoid subscription when disabled
84
85
  if ( ! isEnabled ) {
85
- return undefined;
86
+ return {};
86
87
  }
87
- return select( blockEditorStore ).getBlockAttributes( clientId )
88
- ?.style;
88
+ const attributes =
89
+ select( blockEditorStore ).getBlockAttributes( clientId ) || {};
90
+ return {
91
+ style: attributes.style,
92
+ className: attributes.className,
93
+ };
89
94
  },
90
95
  [ clientId, isEnabled ]
91
96
  );
97
+
98
+ const { value: inheritedValue } = useResolvedStyle(
99
+ name,
100
+ className,
101
+ selectedState
102
+ );
103
+
92
104
  const [ visualizedProperty, setVisualizedProperty ] = useVisualizer();
93
105
  const value = isStateSelected
94
106
  ? getStyleForState( style, selectedState )
@@ -139,6 +151,7 @@ export function DimensionsPanel( { clientId, name, setAttributes, settings } ) {
139
151
  onVisualize={
140
152
  isStateSelected ? undefined : setVisualizedProperty
141
153
  }
154
+ inheritedValue={ inheritedValue }
142
155
  />
143
156
  { ! isStateSelected &&
144
157
  !! settings?.spacing?.padding &&
@@ -15,7 +15,11 @@ import {
15
15
  import { useInstanceId } from '@wordpress/compose';
16
16
  import { addFilter } from '@wordpress/hooks';
17
17
  import { useMemo, useEffect } from '@wordpress/element';
18
- import { getBlockSelector } from '@wordpress/global-styles-engine';
18
+ import { useSelect } from '@wordpress/data';
19
+ import {
20
+ getBlockSelector,
21
+ privateApis as globalStylesEnginePrivateApis,
22
+ } from '@wordpress/global-styles-engine';
19
23
 
20
24
  /**
21
25
  * Internal dependencies
@@ -26,20 +30,21 @@ import {
26
30
  __experimentalDuotoneControl as DuotoneControl,
27
31
  useSettings,
28
32
  } from '../components';
29
- import {
30
- getDuotoneFilter,
31
- getDuotoneStylesheet,
32
- getDuotoneUnsetStylesheet,
33
- } from '../components/duotone/utils';
34
33
  import { scopeSelector } from '../components/global-styles/utils';
35
34
  import {
36
35
  cleanEmptyObject,
37
36
  useBlockSettings,
38
37
  usePrivateStyleOverride,
39
38
  } from './utils';
39
+ import { unlock } from '../lock-unlock';
40
40
  import { default as StylesFiltersPanel } from '../components/global-styles/filters-panel';
41
+ import { useResolvedStyle } from '../components/global-styles/inherited-value-context';
41
42
  import { useBlockEditingMode } from '../components/block-editing-mode';
42
43
  import { useBlockElement } from '../components/block-list/use-block-props/use-block-refs';
44
+ import { store as blockEditorStore } from '../store';
45
+
46
+ const { getDuotoneFilter, getDuotoneStylesheet, getDuotoneUnsetStylesheet } =
47
+ unlock( globalStylesEnginePrivateApis );
43
48
 
44
49
  const EMPTY_ARRAY = [];
45
50
 
@@ -98,11 +103,21 @@ export function getDuotonePresetFromColors( colors, duotonePalette ) {
98
103
  return preset ? `var:preset|duotone|${ preset.slug }` : undefined;
99
104
  }
100
105
 
101
- function DuotonePanelPure( { style, setAttributes, name } ) {
106
+ function DuotonePanelPure( { style, setAttributes, name, clientId } ) {
102
107
  const duotoneStyle = style?.color?.duotone;
103
108
  const settings = useBlockSettings( name );
104
109
  const blockEditingMode = useBlockEditingMode();
105
110
 
111
+ const className = useSelect(
112
+ ( select ) =>
113
+ clientId
114
+ ? select( blockEditorStore ).getBlockAttributes( clientId )
115
+ ?.className
116
+ : undefined,
117
+ [ clientId ]
118
+ );
119
+ const { value: inheritedValue } = useResolvedStyle( name, className );
120
+
106
121
  const duotonePalette = useMultiOriginPresets( {
107
122
  presetSetting: 'color.duotone',
108
123
  defaultSetting: 'color.defaultDuotone',
@@ -137,7 +152,9 @@ function DuotonePanelPure( { style, setAttributes, name } ) {
137
152
  <>
138
153
  <InspectorControls group="filter">
139
154
  <StylesFiltersPanel
140
- value={ { filter: { duotone: duotonePresetOrColors } } }
155
+ value={ {
156
+ filter: { duotone: duotonePresetOrColors },
157
+ } }
141
158
  onChange={ ( newDuotone ) => {
142
159
  const newStyle = {
143
160
  ...style,
@@ -150,6 +167,7 @@ function DuotonePanelPure( { style, setAttributes, name } ) {
150
167
  } );
151
168
  } }
152
169
  settings={ settings }
170
+ inheritedValue={ inheritedValue }
153
171
  />
154
172
  </InspectorControls>
155
173
  <BlockControls group="block" __experimentalShareWithChildBlocks>
@@ -14,6 +14,7 @@ import {
14
14
  useHasColorPanel,
15
15
  default as StylesColorPanel,
16
16
  } from '../components/global-styles/color-panel';
17
+ import { useResolvedStyle } from '../components/global-styles/inherited-value-context';
17
18
  import { cleanEmptyObject } from './utils';
18
19
  import { store as blockEditorStore } from '../store';
19
20
  import { COLOR_SUPPORT_KEY } from './color';
@@ -59,18 +60,27 @@ export function ElementsEdit( {
59
60
  const selectedState = useBlockStyleState();
60
61
  const isEnabled = useHasColorPanel( settings );
61
62
 
62
- const style = useSelect(
63
+ const { style, className } = useSelect(
63
64
  ( select ) => {
64
65
  if ( ! isEnabled ) {
65
- return undefined;
66
+ return {};
66
67
  }
67
68
  const attributes =
68
69
  select( blockEditorStore ).getBlockAttributes( clientId );
69
- return attributes?.style;
70
+ return {
71
+ style: attributes?.style,
72
+ className: attributes?.className,
73
+ };
70
74
  },
71
75
  [ clientId, isEnabled ]
72
76
  );
73
77
 
78
+ const { value: inheritedValue } = useResolvedStyle(
79
+ name,
80
+ className,
81
+ selectedState
82
+ );
83
+
74
84
  const isStateSelected = ! isDefaultBlockStyleState( selectedState );
75
85
 
76
86
  const value = useMemo( () => {
@@ -93,7 +103,6 @@ export function ElementsEdit( {
93
103
  // Text and background color failures are reported by the Typography and
94
104
  // Background panels, which own those selections.
95
105
  const enableContrastChecking =
96
- ! isStateSelected &&
97
106
  !! value?.elements?.link?.color?.text &&
98
107
  settings?.color?.link &&
99
108
  false !==
@@ -135,6 +144,7 @@ export function ElementsEdit( {
135
144
  defaultControls={ defaultControls }
136
145
  label={ label }
137
146
  contrastWarning={ contrastWarning }
147
+ inheritedValue={ inheritedValue }
138
148
  />
139
149
  );
140
150
  }
@@ -21,45 +21,48 @@ function GridLayoutSync( props ) {
21
21
  }
22
22
 
23
23
  function GridTools( { clientId, layout } ) {
24
- const { isVisible, blockVisibility, deviceType } = useSelect(
25
- ( select ) => {
26
- const {
27
- isBlockSelected,
28
- hasSelectedInnerBlock,
29
- isDraggingBlocks,
30
- getTemplateLock,
31
- getBlockEditingMode,
32
- getBlockAttributes,
33
- getSettings,
34
- } = select( blockEditorStore );
24
+ const { isVisible, blockVisibility, deviceType, viewportSettings } =
25
+ useSelect(
26
+ ( select ) => {
27
+ const {
28
+ isBlockSelected,
29
+ hasSelectedInnerBlock,
30
+ isDraggingBlocks,
31
+ getTemplateLock,
32
+ getBlockEditingMode,
33
+ getBlockAttributes,
34
+ getSettings,
35
+ } = select( blockEditorStore );
35
36
 
36
- // These calls are purposely ordered from least expensive to most expensive.
37
- // Hides the visualizer in cases where the user is not or cannot interact with it.
38
- // Also hide if a child block is selected, because layout-child.js will render
39
- // the visualizer in that case (with proper childGridClientId handling).
40
- if (
41
- ( ! isDraggingBlocks() && ! isBlockSelected( clientId ) ) ||
42
- getTemplateLock( clientId ) ||
43
- getBlockEditingMode( clientId ) !== 'default' ||
44
- hasSelectedInnerBlock( clientId )
45
- ) {
46
- return { isVisible: false };
47
- }
37
+ // These calls are purposely ordered from least expensive to most expensive.
38
+ // Hides the visualizer in cases where the user is not or cannot interact with it.
39
+ // Also hide if a child block is selected, because layout-child.js will render
40
+ // the visualizer in that case (with proper childGridClientId handling).
41
+ if (
42
+ ( ! isDraggingBlocks() && ! isBlockSelected( clientId ) ) ||
43
+ getTemplateLock( clientId ) ||
44
+ getBlockEditingMode( clientId ) !== 'default' ||
45
+ hasSelectedInnerBlock( clientId )
46
+ ) {
47
+ return { isVisible: false };
48
+ }
48
49
 
49
- const attributes = getBlockAttributes( clientId );
50
- const settings = getSettings();
51
- const currentDeviceType =
52
- settings?.[ deviceTypeKey ]?.toLowerCase() ||
53
- BLOCK_VISIBILITY_VIEWPORTS.desktop.key;
50
+ const attributes = getBlockAttributes( clientId );
51
+ const settings = getSettings();
52
+ const currentDeviceType =
53
+ settings?.[ deviceTypeKey ]?.toLowerCase() ||
54
+ BLOCK_VISIBILITY_VIEWPORTS.desktop.key;
54
55
 
55
- return {
56
- isVisible: true,
57
- blockVisibility: attributes?.metadata?.blockVisibility,
58
- deviceType: currentDeviceType,
59
- };
60
- },
61
- [ clientId ]
62
- );
56
+ return {
57
+ isVisible: true,
58
+ blockVisibility: attributes?.metadata?.blockVisibility,
59
+ deviceType: currentDeviceType,
60
+ viewportSettings:
61
+ settings?.__experimentalFeatures?.viewport,
62
+ };
63
+ },
64
+ [ clientId ]
65
+ );
63
66
 
64
67
  // Get the block's DOM element to derive the canvas iframe window,
65
68
  // so viewport detection matches the actual block rendering context
@@ -71,6 +74,7 @@ function GridTools( { clientId, layout } ) {
71
74
  blockVisibility,
72
75
  deviceType,
73
76
  view: canvasView,
77
+ viewportSettings,
74
78
  } );
75
79
 
76
80
  // Check whether any ancestor is hidden at the viewport actually detected
@@ -4,6 +4,7 @@
4
4
  import { useInstanceId } from '@wordpress/compose';
5
5
  import { useSelect } from '@wordpress/data';
6
6
  import { useState } from '@wordpress/element';
7
+ import { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';
7
8
 
8
9
  /**
9
10
  * Internal dependencies
@@ -26,13 +27,10 @@ import {
26
27
  getStyleForState,
27
28
  } from './block-style-state';
28
29
 
30
+ const { getResponsiveMediaQueries } = unlock( globalStylesEnginePrivateApis );
31
+
29
32
  // Used for generating the instance ID
30
33
  const LAYOUT_CHILD_BLOCK_PROPS_REFERENCE = {};
31
- // Keep in sync with WP_Theme_JSON_Gutenberg::RESPONSIVE_BREAKPOINTS.
32
- const RESPONSIVE_BREAKPOINTS = {
33
- '@mobile': '@media (width <= 480px)',
34
- '@tablet': '@media (480px < width <= 782px)',
35
- };
36
34
 
37
35
  // These are the serialized `selfStretch` values. `max` used to be called
38
36
  // "Fixed" in the UI, but was renamed and replaced by `fixedNoShrink`.
@@ -253,10 +251,11 @@ export function getResponsiveChildLayoutStyles( {
253
251
  style = {},
254
252
  selector,
255
253
  parentLayout = {},
254
+ viewportSettings,
256
255
  } ) {
257
256
  const baseLayout = style?.layout ?? {};
258
257
 
259
- return Object.entries( RESPONSIVE_BREAKPOINTS )
258
+ return Object.entries( getResponsiveMediaQueries( viewportSettings ) )
260
259
  .map( ( [ viewport, mediaQuery ] ) => {
261
260
  const viewportLayout = getStyleForState( style, {
262
261
  viewport,
@@ -282,9 +281,15 @@ export function getResponsiveChildLayoutStyles( {
282
281
  }
283
282
 
284
283
  function useBlockPropsChildLayoutStyles( { style } ) {
285
- const shouldRenderChildLayoutStyles = useSelect( ( select ) => {
286
- return ! select( blockEditorStore ).getSettings().disableLayoutStyles;
287
- } );
284
+ const { shouldRenderChildLayoutStyles, viewportSettings } = useSelect(
285
+ ( select ) => {
286
+ const settings = select( blockEditorStore ).getSettings();
287
+ return {
288
+ shouldRenderChildLayoutStyles: ! settings.disableLayoutStyles,
289
+ viewportSettings: settings?.__experimentalFeatures?.viewport,
290
+ };
291
+ }
292
+ );
288
293
  const layout = style?.layout ?? {};
289
294
  const { columnStart, rowStart, columnSpan, rowSpan } = layout;
290
295
  const parentLayout = useLayout() || {};
@@ -320,6 +325,7 @@ function useBlockPropsChildLayoutStyles( { style } ) {
320
325
  style,
321
326
  selector,
322
327
  parentLayout,
328
+ viewportSettings,
323
329
  } ),
324
330
  ].join( '' );
325
331
  }
@@ -373,6 +379,7 @@ function GridTools( {
373
379
  parentBlockVisibility,
374
380
  blockBlockVisibility,
375
381
  deviceType,
382
+ viewportSettings,
376
383
  isChildBlockAGrid,
377
384
  } = useSelect(
378
385
  ( select ) => {
@@ -411,6 +418,7 @@ function GridTools( {
411
418
  blockBlockVisibility:
412
419
  blockAttributes?.metadata?.blockVisibility,
413
420
  deviceType: currentDeviceType,
421
+ viewportSettings: settings?.__experimentalFeatures?.viewport,
414
422
  // Check if the selected child block is itself a grid.
415
423
  isChildBlockAGrid: blockAttributes?.layout?.type === 'grid',
416
424
  };
@@ -431,6 +439,7 @@ function GridTools( {
431
439
  blockVisibility: parentBlockVisibility,
432
440
  deviceType,
433
441
  view: canvasView,
442
+ viewportSettings,
434
443
  } );
435
444
 
436
445
  // Check whether any ancestor of the parent grid is hidden at the viewport
@@ -457,6 +466,7 @@ function GridTools( {
457
466
  blockVisibility: blockBlockVisibility,
458
467
  deviceType,
459
468
  view: canvasView,
469
+ viewportSettings,
460
470
  } );
461
471
 
462
472
  // Use useState() instead of useRef() so that GridItemResizer updates when ref is set.