@wordpress/block-editor 15.22.1 → 16.0.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 (700) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/autocompleters/block.cjs +10 -2
  3. package/build/autocompleters/block.cjs.map +2 -2
  4. package/build/components/background-image-control/index.cjs +0 -2
  5. package/build/components/background-image-control/index.cjs.map +2 -2
  6. package/build/components/block-canvas/index.cjs +6 -1
  7. package/build/components/block-canvas/index.cjs.map +2 -2
  8. package/build/components/block-controls/groups.cjs +3 -1
  9. package/build/components/block-controls/groups.cjs.map +2 -2
  10. package/build/components/block-edit/edit.cjs +10 -18
  11. package/build/components/block-edit/edit.cjs.map +2 -2
  12. package/build/components/block-inspector/edit-contents.cjs +3 -0
  13. package/build/components/block-inspector/edit-contents.cjs.map +3 -3
  14. package/build/components/block-inspector/index.cjs +18 -36
  15. package/build/components/block-inspector/index.cjs.map +2 -2
  16. package/build/components/block-list/block-invalid-warning.cjs +8 -19
  17. package/build/components/block-list/block-invalid-warning.cjs.map +2 -2
  18. package/build/components/block-list/block.cjs +9 -3
  19. package/build/components/block-list/block.cjs.map +3 -3
  20. package/build/components/block-list/index.cjs +1 -3
  21. package/build/components/block-list/index.cjs.map +2 -2
  22. package/build/components/block-list/use-block-props/index.cjs +3 -1
  23. package/build/components/block-list/use-block-props/index.cjs.map +2 -2
  24. package/build/components/block-list/use-block-props/use-focus-first-element.cjs +9 -4
  25. package/build/components/block-list/use-block-props/use-focus-first-element.cjs.map +2 -2
  26. package/build/components/block-list/use-block-props/use-focus-handler.cjs +12 -4
  27. package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
  28. package/build/components/block-styles/use-styles-for-block.cjs +2 -1
  29. package/build/components/block-styles/use-styles-for-block.cjs.map +2 -2
  30. package/build/components/block-title/use-block-display-title.cjs +7 -2
  31. package/build/components/block-title/use-block-display-title.cjs.map +2 -2
  32. package/build/components/block-toolbar/block-toolbar-icon.cjs +10 -14
  33. package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
  34. package/build/components/block-toolbar/index.cjs +43 -24
  35. package/build/components/block-toolbar/index.cjs.map +2 -2
  36. package/build/components/block-tools/index.cjs +7 -2
  37. package/build/components/block-tools/index.cjs.map +2 -2
  38. package/build/components/block-variation-transforms/index.cjs +0 -1
  39. package/build/components/block-variation-transforms/index.cjs.map +2 -2
  40. package/build/components/block-visibility/modal.cjs +20 -6
  41. package/build/components/block-visibility/modal.cjs.map +2 -2
  42. package/build/components/block-visibility/use-block-visibility.cjs +16 -6
  43. package/build/components/block-visibility/use-block-visibility.cjs.map +3 -3
  44. package/build/components/block-visibility/utils.cjs +15 -2
  45. package/build/components/block-visibility/utils.cjs.map +3 -3
  46. package/build/components/block-visibility/viewport-menu-item.cjs +7 -1
  47. package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
  48. package/build/components/block-visibility/viewport-toolbar.cjs +5 -0
  49. package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
  50. package/build/components/block-visibility/viewport-visibility-info.cjs +5 -1
  51. package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
  52. package/build/components/child-layout-control/index.cjs +0 -6
  53. package/build/components/child-layout-control/index.cjs.map +2 -2
  54. package/build/components/colors-gradients/control.cjs +5 -5
  55. package/build/components/colors-gradients/control.cjs.map +2 -2
  56. package/build/components/date-format-picker/index.cjs +0 -1
  57. package/build/components/date-format-picker/index.cjs.map +2 -2
  58. package/build/components/dimensions-tool/aspect-ratio-tool.cjs +1 -2
  59. package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +2 -2
  60. package/build/components/dimensions-tool/scale-tool.cjs +0 -1
  61. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  62. package/build/components/dimensions-tool/width-height-tool.cjs +2 -4
  63. package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
  64. package/build/components/font-appearance-control/index.cjs +6 -25
  65. package/build/components/font-appearance-control/index.cjs.map +3 -3
  66. package/build/components/font-family/index.cjs +6 -15
  67. package/build/components/font-family/index.cjs.map +3 -3
  68. package/build/components/font-sizes/font-size-picker.cjs +1 -2
  69. package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
  70. package/build/components/global-styles/border-panel.cjs +0 -1
  71. package/build/components/global-styles/border-panel.cjs.map +2 -2
  72. package/build/components/global-styles/dimensions-panel.cjs +0 -3
  73. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  74. package/build/components/global-styles/state-control-badges.cjs +39 -3
  75. package/build/components/global-styles/state-control-badges.cjs.map +2 -2
  76. package/build/components/global-styles/typography-panel.cjs +4 -11
  77. package/build/components/global-styles/typography-panel.cjs.map +2 -2
  78. package/build/components/height-control/index.cjs +0 -2
  79. package/build/components/height-control/index.cjs.map +2 -2
  80. package/build/components/html-element-control/index.cjs +0 -1
  81. package/build/components/html-element-control/index.cjs.map +2 -2
  82. package/build/components/image-editor/index.cjs +5 -0
  83. package/build/components/image-editor/index.cjs.map +3 -3
  84. package/build/components/image-editor/zoom-dropdown.cjs +0 -1
  85. package/build/components/image-editor/zoom-dropdown.cjs.map +2 -2
  86. package/build/components/image-size-control/index.cjs +3 -7
  87. package/build/components/image-size-control/index.cjs.map +2 -2
  88. package/build/components/inner-content/index.cjs +107 -0
  89. package/build/components/inner-content/index.cjs.map +7 -0
  90. package/build/components/inserter/hooks/use-block-types-state.cjs +10 -2
  91. package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
  92. package/build/components/inserter/media-tab/hooks.cjs +67 -12
  93. package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
  94. package/build/components/inserter/media-tab/media-list.cjs +3 -1
  95. package/build/components/inserter/media-tab/media-list.cjs.map +2 -2
  96. package/build/components/inserter/media-tab/media-panel.cjs +287 -28
  97. package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
  98. package/build/components/inserter/media-tab/media-preview.cjs +32 -17
  99. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  100. package/build/components/inserter/media-tab/media-tab.cjs +26 -6
  101. package/build/components/inserter/media-tab/media-tab.cjs.map +2 -2
  102. package/build/components/inserter/mobile-tab-navigation.cjs +6 -1
  103. package/build/components/inserter/mobile-tab-navigation.cjs.map +2 -2
  104. package/build/components/inserter/no-results.cjs +2 -2
  105. package/build/components/inserter/no-results.cjs.map +2 -2
  106. package/build/components/inserter/preview-panel.cjs +2 -1
  107. package/build/components/inserter/preview-panel.cjs.map +2 -2
  108. package/build/components/inserter-list-item/index.cjs +8 -2
  109. package/build/components/inserter-list-item/index.cjs.map +2 -2
  110. package/build/components/keyboard-shortcuts/index.cjs +19 -11
  111. package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
  112. package/build/components/letter-spacing-control/index.cjs +0 -24
  113. package/build/components/letter-spacing-control/index.cjs.map +3 -3
  114. package/build/components/line-height-control/index.cjs +6 -22
  115. package/build/components/line-height-control/index.cjs.map +3 -3
  116. package/build/components/list-view/block-select-button.cjs +90 -84
  117. package/build/components/list-view/block-select-button.cjs.map +2 -2
  118. package/build/components/list-view/block.cjs +61 -21
  119. package/build/components/list-view/block.cjs.map +2 -2
  120. package/build/components/list-view/expander.cjs +1 -1
  121. package/build/components/list-view/expander.cjs.map +2 -2
  122. package/build/components/list-view/use-list-view-client-ids.cjs +2 -2
  123. package/build/components/list-view/use-list-view-client-ids.cjs.map +2 -2
  124. package/build/components/media-placeholder/index.cjs +0 -1
  125. package/build/components/media-placeholder/index.cjs.map +2 -2
  126. package/build/components/observe-typing/index.cjs +4 -3
  127. package/build/components/observe-typing/index.cjs.map +2 -2
  128. package/build/components/preset-input-control/custom-value-controls.cjs +1 -3
  129. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  130. package/build/components/preset-input-control/index.cjs +1 -3
  131. package/build/components/preset-input-control/index.cjs.map +2 -2
  132. package/build/components/resolution-tool/index.cjs +1 -2
  133. package/build/components/resolution-tool/index.cjs.map +2 -2
  134. package/build/components/rich-text/event-listeners/before-input-rules.cjs +3 -4
  135. package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
  136. package/build/components/rich-text/event-listeners/delete.cjs +2 -3
  137. package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
  138. package/build/components/rich-text/event-listeners/enter.cjs +3 -2
  139. package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
  140. package/build/components/rich-text/event-listeners/input-events.cjs +3 -3
  141. package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
  142. package/build/components/rich-text/event-listeners/input-rules.cjs +3 -4
  143. package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
  144. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +3 -3
  145. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
  146. package/build/components/rich-text/event-listeners/paste-handler.cjs +2 -1
  147. package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
  148. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +3 -3
  149. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
  150. package/build/components/rich-text/event-listeners/shortcuts.cjs +3 -3
  151. package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
  152. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +3 -3
  153. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
  154. package/build/components/rich-text/index.cjs +66 -17
  155. package/build/components/rich-text/index.cjs.map +2 -2
  156. package/build/components/text-alignment-control/index.cjs +0 -1
  157. package/build/components/text-alignment-control/index.cjs.map +2 -2
  158. package/build/components/text-decoration-control/index.cjs +0 -1
  159. package/build/components/text-decoration-control/index.cjs.map +2 -2
  160. package/build/components/text-indent-control/index.cjs +0 -8
  161. package/build/components/text-indent-control/index.cjs.map +2 -2
  162. package/build/components/text-transform-control/index.cjs +0 -1
  163. package/build/components/text-transform-control/index.cjs.map +2 -2
  164. package/build/components/typewriter/index.cjs +129 -136
  165. package/build/components/typewriter/index.cjs.map +3 -3
  166. package/build/components/use-block-commands/index.cjs +21 -17
  167. package/build/components/use-block-commands/index.cjs.map +2 -2
  168. package/build/components/use-block-display-information/index.cjs +10 -8
  169. package/build/components/use-block-display-information/index.cjs.map +2 -2
  170. package/build/components/use-on-block-drop/index.cjs +3 -7
  171. package/build/components/use-on-block-drop/index.cjs.map +2 -2
  172. package/build/components/use-resize-canvas/index.cjs +16 -53
  173. package/build/components/use-resize-canvas/index.cjs.map +3 -3
  174. package/build/components/writing-flow/index.cjs +12 -1
  175. package/build/components/writing-flow/index.cjs.map +3 -3
  176. package/build/components/writing-flow/use-arrow-nav.cjs +18 -5
  177. package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
  178. package/build/components/writing-flow/use-click-selection.cjs +2 -2
  179. package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
  180. package/build/components/writing-flow/use-clipboard-handler.cjs +4 -1
  181. package/build/components/writing-flow/use-clipboard-handler.cjs.map +2 -2
  182. package/build/components/writing-flow/use-drag-selection.cjs +3 -8
  183. package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
  184. package/build/components/writing-flow/use-editable-root.cjs +112 -0
  185. package/build/components/writing-flow/use-editable-root.cjs.map +7 -0
  186. package/build/components/writing-flow/use-home-end.cjs +64 -0
  187. package/build/components/writing-flow/use-home-end.cjs.map +7 -0
  188. package/build/components/writing-flow/use-input.cjs +15 -5
  189. package/build/components/writing-flow/use-input.cjs.map +2 -2
  190. package/build/components/writing-flow/use-multi-selection.cjs +2 -2
  191. package/build/components/writing-flow/use-multi-selection.cjs.map +2 -2
  192. package/build/components/writing-flow/use-select-all.cjs +14 -2
  193. package/build/components/writing-flow/use-select-all.cjs.map +2 -2
  194. package/build/components/writing-flow/use-selection-observer.cjs +126 -20
  195. package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
  196. package/build/components/writing-flow/utils.cjs +39 -2
  197. package/build/components/writing-flow/utils.cjs.map +2 -2
  198. package/build/components/writing-mode-control/index.cjs +0 -1
  199. package/build/components/writing-mode-control/index.cjs.map +2 -2
  200. package/build/hooks/background.cjs +3 -2
  201. package/build/hooks/background.cjs.map +2 -2
  202. package/build/hooks/block-fields/rich-text/index.cjs +2 -3
  203. package/build/hooks/block-fields/rich-text/index.cjs.map +3 -3
  204. package/build/hooks/elements.cjs +1 -1
  205. package/build/hooks/elements.cjs.map +2 -2
  206. package/build/hooks/font-size.cjs +1 -2
  207. package/build/hooks/font-size.cjs.map +2 -2
  208. package/build/hooks/grid-visualizer.cjs +5 -3
  209. package/build/hooks/grid-visualizer.cjs.map +2 -2
  210. package/build/hooks/layout-child.cjs +22 -12
  211. package/build/hooks/layout-child.cjs.map +3 -3
  212. package/build/hooks/layout.cjs +33 -16
  213. package/build/hooks/layout.cjs.map +3 -3
  214. package/build/hooks/position.cjs +36 -16
  215. package/build/hooks/position.cjs.map +2 -2
  216. package/build/hooks/states.cjs +32 -23
  217. package/build/hooks/states.cjs.map +3 -3
  218. package/build/hooks/style.cjs +31 -9
  219. package/build/hooks/style.cjs.map +3 -3
  220. package/build/hooks/text-align.cjs +36 -6
  221. package/build/hooks/text-align.cjs.map +3 -3
  222. package/build/hooks/typography.cjs +1 -1
  223. package/build/hooks/typography.cjs.map +2 -2
  224. package/build/layouts/constrained.cjs +35 -27
  225. package/build/layouts/constrained.cjs.map +2 -2
  226. package/build/layouts/flex.cjs +27 -22
  227. package/build/layouts/flex.cjs.map +2 -2
  228. package/build/layouts/grid.cjs +51 -11
  229. package/build/layouts/grid.cjs.map +2 -2
  230. package/build/private-apis.cjs +4 -2
  231. package/build/private-apis.cjs.map +3 -3
  232. package/build/store/actions.cjs +2 -2
  233. package/build/store/actions.cjs.map +2 -2
  234. package/build/store/private-actions.cjs +16 -0
  235. package/build/store/private-actions.cjs.map +2 -2
  236. package/build/store/private-keys.cjs +3 -3
  237. package/build/store/private-keys.cjs.map +2 -2
  238. package/build/store/private-selectors.cjs +109 -12
  239. package/build/store/private-selectors.cjs.map +3 -3
  240. package/build/store/reducer.cjs +19 -3
  241. package/build/store/reducer.cjs.map +2 -2
  242. package/build/store/selectors.cjs +13 -0
  243. package/build/store/selectors.cjs.map +2 -2
  244. package/build/utils/block-bindings.cjs +29 -0
  245. package/build/utils/block-bindings.cjs.map +2 -2
  246. package/build/utils/dom.cjs +14 -0
  247. package/build/utils/dom.cjs.map +2 -2
  248. package/build-module/autocompleters/block.mjs +10 -2
  249. package/build-module/autocompleters/block.mjs.map +2 -2
  250. package/build-module/components/background-image-control/index.mjs +0 -2
  251. package/build-module/components/background-image-control/index.mjs.map +2 -2
  252. package/build-module/components/block-canvas/index.mjs +7 -2
  253. package/build-module/components/block-canvas/index.mjs.map +2 -2
  254. package/build-module/components/block-controls/groups.mjs +3 -1
  255. package/build-module/components/block-controls/groups.mjs.map +2 -2
  256. package/build-module/components/block-edit/edit.mjs +11 -18
  257. package/build-module/components/block-edit/edit.mjs.map +2 -2
  258. package/build-module/components/block-inspector/edit-contents.mjs +4 -1
  259. package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
  260. package/build-module/components/block-inspector/index.mjs +18 -36
  261. package/build-module/components/block-inspector/index.mjs.map +2 -2
  262. package/build-module/components/block-list/block-invalid-warning.mjs +8 -19
  263. package/build-module/components/block-list/block-invalid-warning.mjs.map +2 -2
  264. package/build-module/components/block-list/block.mjs +9 -3
  265. package/build-module/components/block-list/block.mjs.map +3 -3
  266. package/build-module/components/block-list/index.mjs +1 -3
  267. package/build-module/components/block-list/index.mjs.map +2 -2
  268. package/build-module/components/block-list/use-block-props/index.mjs +3 -1
  269. package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
  270. package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs +9 -4
  271. package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs.map +2 -2
  272. package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +12 -4
  273. package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
  274. package/build-module/components/block-styles/use-styles-for-block.mjs +2 -1
  275. package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
  276. package/build-module/components/block-title/use-block-display-title.mjs +7 -2
  277. package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
  278. package/build-module/components/block-toolbar/block-toolbar-icon.mjs +10 -14
  279. package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
  280. package/build-module/components/block-toolbar/index.mjs +43 -24
  281. package/build-module/components/block-toolbar/index.mjs.map +2 -2
  282. package/build-module/components/block-tools/index.mjs +7 -2
  283. package/build-module/components/block-tools/index.mjs.map +2 -2
  284. package/build-module/components/block-variation-transforms/index.mjs +0 -1
  285. package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
  286. package/build-module/components/block-visibility/modal.mjs +22 -10
  287. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  288. package/build-module/components/block-visibility/use-block-visibility.mjs +17 -7
  289. package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
  290. package/build-module/components/block-visibility/utils.mjs +18 -3
  291. package/build-module/components/block-visibility/utils.mjs.map +2 -2
  292. package/build-module/components/block-visibility/viewport-menu-item.mjs +7 -1
  293. package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
  294. package/build-module/components/block-visibility/viewport-toolbar.mjs +5 -0
  295. package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
  296. package/build-module/components/block-visibility/viewport-visibility-info.mjs +5 -1
  297. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
  298. package/build-module/components/child-layout-control/index.mjs +0 -6
  299. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  300. package/build-module/components/colors-gradients/control.mjs +5 -5
  301. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  302. package/build-module/components/date-format-picker/index.mjs +0 -1
  303. package/build-module/components/date-format-picker/index.mjs.map +2 -2
  304. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +1 -2
  305. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
  306. package/build-module/components/dimensions-tool/scale-tool.mjs +0 -1
  307. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  308. package/build-module/components/dimensions-tool/width-height-tool.mjs +2 -4
  309. package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
  310. package/build-module/components/font-appearance-control/index.mjs +6 -15
  311. package/build-module/components/font-appearance-control/index.mjs.map +2 -2
  312. package/build-module/components/font-family/index.mjs +6 -15
  313. package/build-module/components/font-family/index.mjs.map +2 -2
  314. package/build-module/components/font-sizes/font-size-picker.mjs +1 -2
  315. package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
  316. package/build-module/components/global-styles/border-panel.mjs +0 -1
  317. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  318. package/build-module/components/global-styles/dimensions-panel.mjs +0 -3
  319. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  320. package/build-module/components/global-styles/state-control-badges.mjs +41 -5
  321. package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
  322. package/build-module/components/global-styles/typography-panel.mjs +4 -11
  323. package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
  324. package/build-module/components/height-control/index.mjs +0 -2
  325. package/build-module/components/height-control/index.mjs.map +2 -2
  326. package/build-module/components/html-element-control/index.mjs +0 -1
  327. package/build-module/components/html-element-control/index.mjs.map +2 -2
  328. package/build-module/components/image-editor/index.mjs +5 -0
  329. package/build-module/components/image-editor/index.mjs.map +2 -2
  330. package/build-module/components/image-editor/zoom-dropdown.mjs +0 -1
  331. package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
  332. package/build-module/components/image-size-control/index.mjs +3 -7
  333. package/build-module/components/image-size-control/index.mjs.map +2 -2
  334. package/build-module/components/inner-content/index.mjs +82 -0
  335. package/build-module/components/inner-content/index.mjs.map +7 -0
  336. package/build-module/components/inserter/hooks/use-block-types-state.mjs +10 -2
  337. package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
  338. package/build-module/components/inserter/media-tab/hooks.mjs +66 -12
  339. package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
  340. package/build-module/components/inserter/media-tab/media-list.mjs +3 -1
  341. package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
  342. package/build-module/components/inserter/media-tab/media-panel.mjs +297 -32
  343. package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
  344. package/build-module/components/inserter/media-tab/media-preview.mjs +33 -18
  345. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  346. package/build-module/components/inserter/media-tab/media-tab.mjs +27 -7
  347. package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
  348. package/build-module/components/inserter/mobile-tab-navigation.mjs +6 -1
  349. package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
  350. package/build-module/components/inserter/no-results.mjs +2 -2
  351. package/build-module/components/inserter/no-results.mjs.map +2 -2
  352. package/build-module/components/inserter/preview-panel.mjs +2 -1
  353. package/build-module/components/inserter/preview-panel.mjs.map +2 -2
  354. package/build-module/components/inserter-list-item/index.mjs +8 -2
  355. package/build-module/components/inserter-list-item/index.mjs.map +2 -2
  356. package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
  357. package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
  358. package/build-module/components/letter-spacing-control/index.mjs +0 -14
  359. package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
  360. package/build-module/components/line-height-control/index.mjs +6 -12
  361. package/build-module/components/line-height-control/index.mjs.map +2 -2
  362. package/build-module/components/list-view/block-select-button.mjs +90 -84
  363. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  364. package/build-module/components/list-view/block.mjs +61 -21
  365. package/build-module/components/list-view/block.mjs.map +2 -2
  366. package/build-module/components/list-view/expander.mjs +1 -1
  367. package/build-module/components/list-view/expander.mjs.map +2 -2
  368. package/build-module/components/list-view/use-list-view-client-ids.mjs +2 -2
  369. package/build-module/components/list-view/use-list-view-client-ids.mjs.map +2 -2
  370. package/build-module/components/media-placeholder/index.mjs +0 -1
  371. package/build-module/components/media-placeholder/index.mjs.map +2 -2
  372. package/build-module/components/observe-typing/index.mjs +4 -3
  373. package/build-module/components/observe-typing/index.mjs.map +2 -2
  374. package/build-module/components/preset-input-control/custom-value-controls.mjs +1 -3
  375. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  376. package/build-module/components/preset-input-control/index.mjs +1 -3
  377. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  378. package/build-module/components/resolution-tool/index.mjs +1 -2
  379. package/build-module/components/resolution-tool/index.mjs.map +2 -2
  380. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +8 -5
  381. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
  382. package/build-module/components/rich-text/event-listeners/delete.mjs +7 -4
  383. package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
  384. package/build-module/components/rich-text/event-listeners/enter.mjs +8 -3
  385. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  386. package/build-module/components/rich-text/event-listeners/input-events.mjs +3 -3
  387. package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
  388. package/build-module/components/rich-text/event-listeners/input-rules.mjs +8 -5
  389. package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
  390. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +3 -3
  391. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
  392. package/build-module/components/rich-text/event-listeners/paste-handler.mjs +8 -2
  393. package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
  394. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +3 -3
  395. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
  396. package/build-module/components/rich-text/event-listeners/shortcuts.mjs +3 -3
  397. package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
  398. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +3 -3
  399. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
  400. package/build-module/components/rich-text/index.mjs +64 -13
  401. package/build-module/components/rich-text/index.mjs.map +2 -2
  402. package/build-module/components/text-alignment-control/index.mjs +0 -1
  403. package/build-module/components/text-alignment-control/index.mjs.map +2 -2
  404. package/build-module/components/text-decoration-control/index.mjs +0 -1
  405. package/build-module/components/text-decoration-control/index.mjs.map +2 -2
  406. package/build-module/components/text-indent-control/index.mjs +0 -8
  407. package/build-module/components/text-indent-control/index.mjs.map +2 -2
  408. package/build-module/components/text-transform-control/index.mjs +0 -1
  409. package/build-module/components/text-transform-control/index.mjs.map +2 -2
  410. package/build-module/components/typewriter/index.mjs +129 -136
  411. package/build-module/components/typewriter/index.mjs.map +2 -2
  412. package/build-module/components/use-block-commands/index.mjs +21 -17
  413. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  414. package/build-module/components/use-block-display-information/index.mjs +10 -8
  415. package/build-module/components/use-block-display-information/index.mjs.map +2 -2
  416. package/build-module/components/use-on-block-drop/index.mjs +4 -7
  417. package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
  418. package/build-module/components/use-resize-canvas/index.mjs +6 -53
  419. package/build-module/components/use-resize-canvas/index.mjs.map +2 -2
  420. package/build-module/components/writing-flow/index.mjs +12 -1
  421. package/build-module/components/writing-flow/index.mjs.map +2 -2
  422. package/build-module/components/writing-flow/use-arrow-nav.mjs +19 -6
  423. package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
  424. package/build-module/components/writing-flow/use-click-selection.mjs +2 -2
  425. package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
  426. package/build-module/components/writing-flow/use-clipboard-handler.mjs +5 -2
  427. package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
  428. package/build-module/components/writing-flow/use-drag-selection.mjs +1 -6
  429. package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
  430. package/build-module/components/writing-flow/use-editable-root.mjs +86 -0
  431. package/build-module/components/writing-flow/use-editable-root.mjs.map +7 -0
  432. package/build-module/components/writing-flow/use-home-end.mjs +43 -0
  433. package/build-module/components/writing-flow/use-home-end.mjs.map +7 -0
  434. package/build-module/components/writing-flow/use-input.mjs +15 -5
  435. package/build-module/components/writing-flow/use-input.mjs.map +2 -2
  436. package/build-module/components/writing-flow/use-multi-selection.mjs +2 -2
  437. package/build-module/components/writing-flow/use-multi-selection.mjs.map +2 -2
  438. package/build-module/components/writing-flow/use-select-all.mjs +19 -3
  439. package/build-module/components/writing-flow/use-select-all.mjs.map +2 -2
  440. package/build-module/components/writing-flow/use-selection-observer.mjs +128 -19
  441. package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
  442. package/build-module/components/writing-flow/utils.mjs +35 -1
  443. package/build-module/components/writing-flow/utils.mjs.map +2 -2
  444. package/build-module/components/writing-mode-control/index.mjs +0 -1
  445. package/build-module/components/writing-mode-control/index.mjs.map +2 -2
  446. package/build-module/hooks/background.mjs +3 -2
  447. package/build-module/hooks/background.mjs.map +2 -2
  448. package/build-module/hooks/block-fields/rich-text/index.mjs +2 -6
  449. package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
  450. package/build-module/hooks/elements.mjs +1 -1
  451. package/build-module/hooks/elements.mjs.map +2 -2
  452. package/build-module/hooks/font-size.mjs +1 -2
  453. package/build-module/hooks/font-size.mjs.map +2 -2
  454. package/build-module/hooks/grid-visualizer.mjs +5 -3
  455. package/build-module/hooks/grid-visualizer.mjs.map +2 -2
  456. package/build-module/hooks/layout-child.mjs +22 -12
  457. package/build-module/hooks/layout-child.mjs.map +2 -2
  458. package/build-module/hooks/layout.mjs +32 -16
  459. package/build-module/hooks/layout.mjs.map +2 -2
  460. package/build-module/hooks/position.mjs +38 -18
  461. package/build-module/hooks/position.mjs.map +2 -2
  462. package/build-module/hooks/states.mjs +32 -23
  463. package/build-module/hooks/states.mjs.map +2 -2
  464. package/build-module/hooks/style.mjs +40 -11
  465. package/build-module/hooks/style.mjs.map +2 -2
  466. package/build-module/hooks/text-align.mjs +39 -10
  467. package/build-module/hooks/text-align.mjs.map +2 -2
  468. package/build-module/hooks/typography.mjs +1 -1
  469. package/build-module/hooks/typography.mjs.map +2 -2
  470. package/build-module/layouts/constrained.mjs +35 -27
  471. package/build-module/layouts/constrained.mjs.map +2 -2
  472. package/build-module/layouts/flex.mjs +27 -22
  473. package/build-module/layouts/flex.mjs.map +2 -2
  474. package/build-module/layouts/grid.mjs +52 -11
  475. package/build-module/layouts/grid.mjs.map +2 -2
  476. package/build-module/private-apis.mjs +5 -3
  477. package/build-module/private-apis.mjs.map +2 -2
  478. package/build-module/store/actions.mjs +3 -3
  479. package/build-module/store/actions.mjs.map +2 -2
  480. package/build-module/store/private-actions.mjs +14 -0
  481. package/build-module/store/private-actions.mjs.map +2 -2
  482. package/build-module/store/private-keys.mjs +2 -2
  483. package/build-module/store/private-keys.mjs.map +2 -2
  484. package/build-module/store/private-selectors.mjs +106 -12
  485. package/build-module/store/private-selectors.mjs.map +2 -2
  486. package/build-module/store/reducer.mjs +17 -3
  487. package/build-module/store/reducer.mjs.map +2 -2
  488. package/build-module/store/selectors.mjs +13 -0
  489. package/build-module/store/selectors.mjs.map +2 -2
  490. package/build-module/utils/block-bindings.mjs +28 -0
  491. package/build-module/utils/block-bindings.mjs.map +2 -2
  492. package/build-module/utils/dom.mjs +13 -0
  493. package/build-module/utils/dom.mjs.map +2 -2
  494. package/build-style/content-rtl.css +15 -14
  495. package/build-style/content.css +15 -14
  496. package/build-style/default-editor-styles-rtl.css +1 -1
  497. package/build-style/default-editor-styles.css +1 -1
  498. package/build-style/style-rtl.css +144 -47
  499. package/build-style/style.css +144 -47
  500. package/build-types/components/block-context/index.d.ts +7 -0
  501. package/build-types/components/block-context/index.d.ts.map +1 -1
  502. package/build-types/utils/block-bindings.d.ts +19 -0
  503. package/build-types/utils/block-bindings.d.ts.map +1 -1
  504. package/build-types/utils/dom.d.ts +11 -0
  505. package/build-types/utils/dom.d.ts.map +1 -1
  506. package/build-types/utils/get-px-from-css-unit.d.ts +2 -2
  507. package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -1
  508. package/build-types/utils/pasting.d.ts +1 -1
  509. package/build-types/utils/pasting.d.ts.map +1 -1
  510. package/package.json +46 -44
  511. package/src/autocompleters/block.js +10 -3
  512. package/src/autocompleters/test/block.js +53 -0
  513. package/src/components/background-image-control/index.js +0 -2
  514. package/src/components/block-canvas/index.js +9 -2
  515. package/src/components/block-card/style.scss +1 -1
  516. package/src/components/block-controls/groups.js +2 -0
  517. package/src/components/block-edit/edit.js +13 -31
  518. package/src/components/block-inspector/edit-contents.js +5 -1
  519. package/src/components/block-inspector/index.js +25 -44
  520. package/src/components/block-list/block-invalid-warning.js +8 -19
  521. package/src/components/block-list/block.js +6 -0
  522. package/src/components/block-list/index.js +0 -2
  523. package/src/components/block-list/use-block-props/index.js +2 -0
  524. package/src/components/block-list/use-block-props/use-focus-first-element.js +23 -4
  525. package/src/components/block-list/use-block-props/use-focus-handler.js +34 -9
  526. package/src/components/block-lock/style.scss +1 -1
  527. package/src/components/block-manager/style.scss +1 -1
  528. package/src/components/block-navigation/style.scss +1 -1
  529. package/src/components/block-patterns-list/stories/index.story.jsx +1 -1
  530. package/src/components/block-quick-navigation/style.scss +1 -3
  531. package/src/components/block-styles/style.scss +2 -2
  532. package/src/components/block-styles/use-styles-for-block.js +1 -0
  533. package/src/components/block-title/use-block-display-title.js +7 -2
  534. package/src/components/block-toolbar/block-toolbar-icon.js +11 -16
  535. package/src/components/block-toolbar/index.js +41 -18
  536. package/src/components/block-toolbar/test/block-toolbar-icon.js +32 -9
  537. package/src/components/block-tools/index.js +7 -0
  538. package/src/components/block-types-list/style.scss +0 -1
  539. package/src/components/block-variation-transforms/index.js +0 -1
  540. package/src/components/block-visibility/modal.js +24 -10
  541. package/src/components/block-visibility/style.scss +1 -1
  542. package/src/components/block-visibility/test/use-block-visibility.js +128 -35
  543. package/src/components/block-visibility/test/utils.js +11 -0
  544. package/src/components/block-visibility/use-block-visibility.js +33 -11
  545. package/src/components/block-visibility/utils.js +31 -6
  546. package/src/components/block-visibility/viewport-menu-item.js +10 -1
  547. package/src/components/block-visibility/viewport-toolbar.js +6 -0
  548. package/src/components/block-visibility/viewport-visibility-info.js +5 -1
  549. package/src/components/button-block-appender/content.scss +1 -7
  550. package/src/components/child-layout-control/index.js +0 -6
  551. package/src/components/color-palette/test/__snapshots__/control.js.snap +13 -108
  552. package/src/components/colors-gradients/control.js +4 -4
  553. package/src/components/colors-gradients/style.scss +2 -2
  554. package/src/components/date-format-picker/index.js +0 -1
  555. package/src/components/dimensions-tool/aspect-ratio-tool.js +0 -1
  556. package/src/components/dimensions-tool/scale-tool.js +0 -1
  557. package/src/components/dimensions-tool/width-height-tool.js +0 -2
  558. package/src/components/font-appearance-control/index.js +6 -19
  559. package/src/components/font-family/README.md +0 -9
  560. package/src/components/font-family/index.js +6 -19
  561. package/src/components/font-family/stories/index.story.jsx +1 -2
  562. package/src/components/font-sizes/font-size-picker.js +0 -1
  563. package/src/components/global-styles/border-panel.js +0 -1
  564. package/src/components/global-styles/dimensions-panel.js +0 -3
  565. package/src/components/global-styles/state-control-badges.js +45 -6
  566. package/src/components/global-styles/style.scss +5 -0
  567. package/src/components/global-styles/test/state-control-badges.js +65 -0
  568. package/src/components/global-styles/typography-panel.js +0 -7
  569. package/src/components/height-control/index.js +0 -2
  570. package/src/components/html-element-control/index.js +0 -1
  571. package/src/components/iframe/content.scss +3 -3
  572. package/src/components/image-editor/index.js +22 -0
  573. package/src/components/image-editor/zoom-dropdown.js +0 -1
  574. package/src/components/image-size-control/index.js +0 -4
  575. package/src/components/inner-content/index.js +119 -0
  576. package/src/components/inner-content/test/index.js +81 -0
  577. package/src/components/inserter/hooks/use-block-types-state.js +10 -2
  578. package/src/components/inserter/media-tab/hooks.js +114 -16
  579. package/src/components/inserter/media-tab/media-list.js +2 -0
  580. package/src/components/inserter/media-tab/media-panel.js +354 -19
  581. package/src/components/inserter/media-tab/media-preview.js +34 -17
  582. package/src/components/inserter/media-tab/media-tab.js +20 -2
  583. package/src/components/inserter/media-tab/test/hooks.js +267 -0
  584. package/src/components/inserter/media-tab/test/media-panel.js +127 -0
  585. package/src/components/inserter/mobile-tab-navigation.js +6 -1
  586. package/src/components/inserter/no-results.js +2 -2
  587. package/src/components/inserter/preview-panel.js +1 -0
  588. package/src/components/inserter/style.scss +115 -3
  589. package/src/components/inserter-list-item/index.js +8 -2
  590. package/src/components/inserter-list-item/style.scss +0 -15
  591. package/src/components/keyboard-shortcuts/index.js +28 -11
  592. package/src/components/letter-spacing-control/README.md +0 -8
  593. package/src/components/letter-spacing-control/index.js +5 -23
  594. package/src/components/letter-spacing-control/stories/index.story.jsx +0 -12
  595. package/src/components/line-height-control/README.md +0 -8
  596. package/src/components/line-height-control/index.js +6 -16
  597. package/src/components/line-height-control/stories/index.story.jsx +0 -1
  598. package/src/components/line-height-control/test/index.js +1 -7
  599. package/src/components/link-control/style.scss +2 -2
  600. package/src/components/link-control/test/index.js +6 -6
  601. package/src/components/link-picker/style.scss +1 -2
  602. package/src/components/link-picker/test/index.js +3 -1
  603. package/src/components/list-view/block-select-button.js +5 -1
  604. package/src/components/list-view/block.js +69 -23
  605. package/src/components/list-view/expander.js +5 -1
  606. package/src/components/list-view/style.scss +23 -5
  607. package/src/components/list-view/use-list-view-client-ids.js +2 -2
  608. package/src/components/media-placeholder/index.js +0 -1
  609. package/src/components/multi-selection-inspector/style.scss +1 -1
  610. package/src/components/observe-typing/index.js +9 -4
  611. package/src/components/preset-input-control/custom-value-controls.js +0 -2
  612. package/src/components/preset-input-control/index.js +0 -2
  613. package/src/components/resolution-tool/index.js +0 -1
  614. package/src/components/responsive-block-control/style.scss +1 -1
  615. package/src/components/responsive-block-control/test/index.js +1 -5
  616. package/src/components/rich-text/event-listeners/before-input-rules.js +8 -5
  617. package/src/components/rich-text/event-listeners/delete.js +7 -4
  618. package/src/components/rich-text/event-listeners/enter.js +10 -4
  619. package/src/components/rich-text/event-listeners/input-events.js +4 -3
  620. package/src/components/rich-text/event-listeners/input-rules.js +8 -5
  621. package/src/components/rich-text/event-listeners/insert-replacement-text.js +4 -3
  622. package/src/components/rich-text/event-listeners/paste-handler.js +15 -3
  623. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +4 -3
  624. package/src/components/rich-text/event-listeners/shortcuts.js +4 -3
  625. package/src/components/rich-text/event-listeners/undo-automatic-change.js +4 -3
  626. package/src/components/rich-text/index.js +94 -25
  627. package/src/components/skip-to-selected-block/style.scss +1 -1
  628. package/src/components/text-alignment-control/index.js +0 -1
  629. package/src/components/text-decoration-control/index.js +0 -1
  630. package/src/components/text-indent-control/index.js +7 -16
  631. package/src/components/text-transform-control/index.js +0 -1
  632. package/src/components/typewriter/index.js +228 -224
  633. package/src/components/use-block-commands/index.js +27 -17
  634. package/src/components/use-block-display-information/index.js +9 -13
  635. package/src/components/use-block-display-information/test/index.js +47 -9
  636. package/src/components/use-on-block-drop/index.js +4 -7
  637. package/src/components/use-resize-canvas/index.js +10 -71
  638. package/src/components/writing-flow/index.js +15 -1
  639. package/src/components/writing-flow/use-arrow-nav.js +39 -12
  640. package/src/components/writing-flow/use-click-selection.js +2 -3
  641. package/src/components/writing-flow/use-clipboard-handler.js +5 -2
  642. package/src/components/writing-flow/use-drag-selection.js +1 -14
  643. package/src/components/writing-flow/use-editable-root.js +182 -0
  644. package/src/components/writing-flow/use-home-end.js +63 -0
  645. package/src/components/writing-flow/use-input.js +25 -8
  646. package/src/components/writing-flow/use-multi-selection.js +2 -3
  647. package/src/components/writing-flow/use-select-all.js +33 -3
  648. package/src/components/writing-flow/use-selection-observer.js +197 -38
  649. package/src/components/writing-flow/utils.js +83 -0
  650. package/src/components/writing-mode-control/index.js +0 -1
  651. package/src/hooks/background.js +7 -9
  652. package/src/hooks/block-fields/link/styles.scss +1 -6
  653. package/src/hooks/block-fields/media/styles.scss +1 -6
  654. package/src/hooks/block-fields/rich-text/index.js +6 -9
  655. package/src/hooks/block-hooks.scss +15 -0
  656. package/src/hooks/elements.js +0 -1
  657. package/src/hooks/font-size.js +0 -1
  658. package/src/hooks/grid-visualizer.js +40 -36
  659. package/src/hooks/layout-child.js +19 -9
  660. package/src/hooks/layout.js +53 -35
  661. package/src/hooks/position.js +44 -23
  662. package/src/hooks/states.js +55 -28
  663. package/src/hooks/style.js +67 -17
  664. package/src/hooks/test/cross-origin-isolation.js +0 -4
  665. package/src/hooks/test/layout.js +75 -1
  666. package/src/hooks/test/style.js +29 -0
  667. package/src/hooks/test/text-align.js +34 -1
  668. package/src/hooks/text-align.js +41 -10
  669. package/src/hooks/typography.js +0 -1
  670. package/src/layouts/constrained.js +56 -29
  671. package/src/layouts/flex.js +5 -4
  672. package/src/layouts/grid.js +59 -9
  673. package/src/layouts/test/constrained.js +91 -0
  674. package/src/layouts/test/grid.js +71 -0
  675. package/src/private-apis.js +4 -2
  676. package/src/store/actions.js +43 -14
  677. package/src/store/private-actions.js +31 -0
  678. package/src/store/private-keys.js +1 -1
  679. package/src/store/private-selectors.js +209 -16
  680. package/src/store/reducer.js +37 -2
  681. package/src/store/selectors.js +41 -0
  682. package/src/store/test/actions.js +1 -1
  683. package/src/store/test/private-selectors.js +547 -10
  684. package/src/store/test/reducer.js +41 -13
  685. package/src/store/test/selectors.js +133 -0
  686. package/src/style.scss +1 -0
  687. package/src/utils/block-bindings.ts +50 -0
  688. package/src/utils/dom.ts +33 -0
  689. package/src/utils/test/block-bindings.js +181 -0
  690. package/build/components/rich-text/input-event.cjs +0 -50
  691. package/build/components/rich-text/input-event.cjs.map +0 -7
  692. package/build/components/rich-text/shortcut.cjs +0 -51
  693. package/build/components/rich-text/shortcut.cjs.map +0 -7
  694. package/build-module/components/rich-text/input-event.mjs +0 -25
  695. package/build-module/components/rich-text/input-event.mjs.map +0 -7
  696. package/build-module/components/rich-text/shortcut.mjs +0 -26
  697. package/build-module/components/rich-text/shortcut.mjs.map +0 -7
  698. package/src/components/rich-text/input-event.js +0 -31
  699. package/src/components/rich-text/shortcut.js +0 -32
  700. package/src/components/use-resize-canvas/README.md +0 -37
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { getBlockType } from '@wordpress/blocks';
4
+ import { useMemo } from '@wordpress/element';
5
+ import { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';
5
6
  import { __ } from '@wordpress/i18n';
6
7
 
7
8
  /**
@@ -10,6 +11,10 @@ import { __ } from '@wordpress/i18n';
10
11
  import StateControl from '../components/global-styles/state-control';
11
12
  import StateControlBadges from '../components/global-styles/state-control-badges';
12
13
  import { useToolsPanelDropdownMenuProps } from '../components/global-styles/utils';
14
+ import { useSettings } from '../components/use-settings';
15
+ import { unlock } from '../lock-unlock';
16
+
17
+ const { getViewportBreakpoints } = unlock( globalStylesEnginePrivateApis );
13
18
 
14
19
  export const PSEUDO_STATE_LABELS = {
15
20
  ':hover': __( 'Hover' ),
@@ -23,6 +28,22 @@ export const RESPONSIVE_STATE_LABELS = {
23
28
  '@mobile': __( 'Mobile' ),
24
29
  };
25
30
 
31
+ // Viewport states are selected globally via the editor's device preview.
32
+ function getDeviceStateOptions( viewportSettings ) {
33
+ const breakpoints = getViewportBreakpoints( viewportSettings );
34
+
35
+ return Object.entries( RESPONSIVE_STATE_LABELS )
36
+ .filter(
37
+ ( [ value ] ) =>
38
+ ( value !== '@tablet' || breakpoints.tablet !== undefined ) &&
39
+ ( value !== '@mobile' || breakpoints.mobile !== undefined )
40
+ )
41
+ .map( ( [ value, label ] ) => ( {
42
+ value,
43
+ label,
44
+ } ) );
45
+ }
46
+
26
47
  // Keep in sync with WP_Theme_JSON_Gutenberg::VALID_BLOCK_PSEUDO_SELECTORS
27
48
  // and packages/global-styles-engine/src/core/render.tsx.
28
49
  export const VALID_BLOCK_PSEUDO_STATES = {
@@ -42,24 +63,13 @@ function getPseudoStateOptions( name ) {
42
63
  }
43
64
 
44
65
  const DEFAULT_STATE_VALUE = 'default';
45
-
46
- function getViewportStateOptions( name ) {
47
- if ( ! getBlockType( name )?.attributes?.style ) {
48
- return [];
49
- }
50
-
51
- return Object.entries( RESPONSIVE_STATE_LABELS ).map(
52
- ( [ value, label ] ) => ( {
53
- value,
54
- label,
55
- } )
56
- );
57
- }
66
+ const EMPTY_STATE_OPTIONS = [];
58
67
 
59
68
  /**
60
- * Renders a style-state selector in the block card header.
61
- * Viewport states are shown for blocks with a style attribute, while
62
- * pseudo-states are shown for blocks with configured pseudo-state support.
69
+ * Renders a pseudo-state selector in the block card header.
70
+ *
71
+ * Viewport states are selected globally via the editor's device preview
72
+ * (Responsive editing), so only pseudo-states are exposed here.
63
73
  *
64
74
  * @param {Object} props Component props.
65
75
  * @param {string} props.name Block name.
@@ -68,21 +78,20 @@ function getViewportStateOptions( name ) {
68
78
  * @return {Element|null} State control component, or null if not applicable.
69
79
  */
70
80
  export function BlockStatesControl( { name, value, onChange } ) {
71
- const viewportStateOptions = getViewportStateOptions( name );
72
- const pseudoStateOptions = getPseudoStateOptions( name );
81
+ const pseudoStateOptions = useMemo(
82
+ () => getPseudoStateOptions( name ),
83
+ [ name ]
84
+ );
73
85
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
74
86
 
75
- if ( ! viewportStateOptions.length && ! pseudoStateOptions.length ) {
87
+ if ( ! pseudoStateOptions.length ) {
76
88
  return null;
77
89
  }
78
90
 
79
91
  return (
80
92
  <StateControl
81
- viewportStates={ viewportStateOptions }
82
93
  pseudoStates={ pseudoStateOptions }
83
- viewportValue={ value?.viewport ?? DEFAULT_STATE_VALUE }
84
94
  pseudoStateValue={ value?.pseudo ?? DEFAULT_STATE_VALUE }
85
- onChangeViewport={ ( viewport ) => onChange( { viewport } ) }
86
95
  onChangePseudoState={ ( pseudo ) => onChange( { pseudo } ) }
87
96
  popoverProps={ dropdownMenuProps.popoverProps }
88
97
  showText={ false }
@@ -90,17 +99,35 @@ export function BlockStatesControl( { name, value, onChange } ) {
90
99
  );
91
100
  }
92
101
 
93
- export function BlockStateBadges( { name, value } ) {
94
- const viewportStateOptions = getViewportStateOptions( name );
95
- const pseudoStateOptions = getPseudoStateOptions( name );
102
+ /**
103
+ * Renders badges for the active style states of a block.
104
+ *
105
+ * @param {Object} props Component props.
106
+ * @param {string} props.name Block name.
107
+ * @param {Object} props.value Currently selected style-state value.
108
+ * @param {boolean} props.isResponsiveEditing Whether Responsive editing is enabled.
109
+ * @return {Element|null} Badges component, or null if there is nothing to show.
110
+ */
111
+ export function BlockStateBadges( { name, value, isResponsiveEditing } ) {
112
+ const pseudoStateOptions = useMemo(
113
+ () => getPseudoStateOptions( name ),
114
+ [ name ]
115
+ );
116
+ const [ viewportSettings ] = useSettings( 'viewport' );
117
+ const deviceStateOptions = useMemo(
118
+ () => getDeviceStateOptions( viewportSettings ),
119
+ [ viewportSettings ]
120
+ );
96
121
 
97
- if ( ! viewportStateOptions.length && ! pseudoStateOptions.length ) {
122
+ if ( ! pseudoStateOptions.length && ! isResponsiveEditing ) {
98
123
  return null;
99
124
  }
100
125
 
101
126
  return (
102
127
  <StateControlBadges
103
- viewportStates={ viewportStateOptions }
128
+ viewportStates={
129
+ isResponsiveEditing ? deviceStateOptions : EMPTY_STATE_OPTIONS
130
+ }
104
131
  pseudoStates={ pseudoStateOptions }
105
132
  viewportValue={ value?.viewport ?? DEFAULT_STATE_VALUE }
106
133
  pseudoStateValue={ value?.pseudo ?? DEFAULT_STATE_VALUE }
@@ -4,7 +4,10 @@
4
4
  import { useMemo } from '@wordpress/element';
5
5
  import { addFilter } from '@wordpress/hooks';
6
6
  import { useSelect } from '@wordpress/data';
7
- import { mergeGlobalStyles } from '@wordpress/global-styles-engine';
7
+ import {
8
+ mergeGlobalStyles,
9
+ privateApis as globalStylesEnginePrivateApis,
10
+ } from '@wordpress/global-styles-engine';
8
11
  import {
9
12
  getBlockSupport,
10
13
  getBlockType,
@@ -12,7 +15,11 @@ import {
12
15
  __EXPERIMENTAL_ELEMENTS as ELEMENTS,
13
16
  } from '@wordpress/blocks';
14
17
  import { useInstanceId } from '@wordpress/compose';
15
- import { getCSSRules, compileCSS } from '@wordpress/style-engine';
18
+ import {
19
+ getCSSRules,
20
+ compileCSS,
21
+ getCSSValueFromRawStyle,
22
+ } from '@wordpress/style-engine';
16
23
 
17
24
  /**
18
25
  * Internal dependencies
@@ -49,18 +56,14 @@ import { VALID_BLOCK_PSEUDO_STATES } from './states';
49
56
  import { buildScopedBlockSelector } from './state-utils';
50
57
  import { scopeSelector } from '../components/global-styles/utils';
51
58
  import { useBlockEditingMode } from '../components/block-editing-mode';
59
+ import { useSettings } from '../components/use-settings';
52
60
  import { store as blockEditorStore } from '../store';
53
61
  import { globalStylesDataKey } from '../store/private-keys';
54
62
  import { unlock } from '../lock-unlock';
55
63
 
56
- const BORDER_SIDES = [ 'Top', 'Right', 'Bottom', 'Left' ];
64
+ const { getResponsiveMediaQueries } = unlock( globalStylesEnginePrivateApis );
57
65
 
58
- // Keep in sync with WP_Theme_JSON_Gutenberg::RESPONSIVE_BREAKPOINTS and
59
- // packages/global-styles-engine/src/core/render.tsx.
60
- const RESPONSIVE_BREAKPOINTS = {
61
- '@mobile': '@media (width <= 480px)',
62
- '@tablet': '@media (480px < width <= 782px)',
63
- };
66
+ const BORDER_SIDES = [ 'Top', 'Right', 'Bottom', 'Left' ];
64
67
 
65
68
  const styleSupportKeys = [
66
69
  ...TYPOGRAPHY_SUPPORT_KEYS,
@@ -202,6 +205,32 @@ function getStateFallbackDimensionStyles( stateStyles ) {
202
205
  }
203
206
  }
204
207
 
208
+ /**
209
+ * Returns CSS for text alignment in a block instance state style object.
210
+ *
211
+ * Text alignment is not generated by the style engine because base block
212
+ * alignment is serialized as a class name. State styles need a declaration
213
+ * instead so viewport and pseudo-state values can override the default class.
214
+ *
215
+ * @param {Object} stateStyles State style object.
216
+ * @param {string} selector CSS selector for the generated style.
217
+ * @return {string|undefined} CSS string with the text alignment declaration.
218
+ */
219
+ function getStateTextAlignCSS( stateStyles, selector ) {
220
+ const textAlign = stateStyles?.typography?.textAlign;
221
+
222
+ if ( typeof textAlign !== 'string' || ! textAlign ) {
223
+ return undefined;
224
+ }
225
+
226
+ const declaration = `text-align: ${ getCSSValueFromRawStyle(
227
+ textAlign
228
+ ) } !important`;
229
+ return selector
230
+ ? `${ selector } { ${ declaration }; }`
231
+ : `${ declaration };`;
232
+ }
233
+
205
234
  /**
206
235
  * Generates CSS for a block instance state style object.
207
236
  *
@@ -225,12 +254,13 @@ export function getStateStylesCSS( stateStyles, selector ) {
225
254
  const fallbackCSS = fallbackBorderStyles
226
255
  ? compileCSS( fallbackBorderStyles, { selector } )
227
256
  : undefined;
257
+ const textAlignCSS = getStateTextAlignCSS( stateStyles, selector );
228
258
  const backgroundResetCSS = getStateBackgroundResetCSS(
229
259
  stateStyles,
230
260
  selector
231
261
  );
232
262
 
233
- return [ importantCSS, fallbackCSS, backgroundResetCSS ]
263
+ return [ importantCSS, textAlignCSS, fallbackCSS, backgroundResetCSS ]
234
264
  .filter( Boolean )
235
265
  .join( '\n' );
236
266
  }
@@ -408,17 +438,25 @@ function getPseudoStateCSSRules( style, name, baseSelector ) {
408
438
  * pseudo-state styles. Generated rules are wrapped in the matching breakpoint
409
439
  * media query.
410
440
  *
411
- * @param {Object} style Block style object containing responsive states.
412
- * @param {string} name Block name.
413
- * @param {string} baseSelector Base selector used to scope generated CSS.
441
+ * @param {Object} style Block style object containing responsive states.
442
+ * @param {string} name Block name.
443
+ * @param {string} baseSelector Base selector used to scope generated CSS.
444
+ * @param {Object} viewportSettings Viewport breakpoint settings.
414
445
  * @return {string[]} Generated CSS rule strings.
415
446
  */
416
- export function getResponsiveStateCSSRules( style, name, baseSelector ) {
447
+ export function getResponsiveStateCSSRules(
448
+ style,
449
+ name,
450
+ baseSelector,
451
+ viewportSettings
452
+ ) {
417
453
  const cssRules = [];
418
454
  const validPseudoStates = VALID_BLOCK_PSEUDO_STATES[ name ] ?? [];
419
455
  const nestedStateKeys = [ 'elements', ...validPseudoStates ];
456
+ const responsiveMediaQueries =
457
+ getResponsiveMediaQueries( viewportSettings );
420
458
 
421
- Object.entries( RESPONSIVE_BREAKPOINTS ).forEach(
459
+ Object.entries( responsiveMediaQueries ).forEach(
422
460
  ( [ viewport, mediaQuery ] ) => {
423
461
  const viewportStyles = getStyleForState( style, {
424
462
  viewport,
@@ -970,6 +1008,7 @@ function useBlockProps( { name, style } ) {
970
1008
 
971
1009
  const baseElementSelector = `.${ blockElementsContainerIdentifier }`;
972
1010
  const blockElementStyles = style?.elements;
1011
+ const [ viewportSettings ] = useSettings( 'viewport' );
973
1012
 
974
1013
  const styles = useMemo( () => {
975
1014
  const cssRules = [];
@@ -988,11 +1027,22 @@ function useBlockProps( { name, style } ) {
988
1027
  );
989
1028
 
990
1029
  cssRules.push(
991
- ...getResponsiveStateCSSRules( style, name, baseElementSelector )
1030
+ ...getResponsiveStateCSSRules(
1031
+ style,
1032
+ name,
1033
+ baseElementSelector,
1034
+ viewportSettings
1035
+ )
992
1036
  );
993
1037
 
994
1038
  return cssRules.length > 0 ? cssRules.join( '' ) : undefined;
995
- }, [ baseElementSelector, blockElementStyles, name, style ] );
1039
+ }, [
1040
+ baseElementSelector,
1041
+ blockElementStyles,
1042
+ name,
1043
+ style,
1044
+ viewportSettings,
1045
+ ] );
996
1046
 
997
1047
  useStyleOverride( { css: styles } );
998
1048
 
@@ -1,7 +1,3 @@
1
- /**
2
- * @jest-environment jsdom
3
- */
4
-
5
1
  describe( 'cross-origin-isolation', () => {
6
2
  let originalCrossOriginIsolated;
7
3
  let originalBody;
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
- import { getResetLayout, getResponsiveLayoutStyles } from '../layout';
4
+ import {
5
+ getLayoutStateOverrides,
6
+ getResetLayout,
7
+ getResponsiveLayoutStyles,
8
+ } from '../layout';
5
9
 
6
10
  describe( 'layout', () => {
7
11
  describe( 'getResetLayout()', () => {
@@ -46,6 +50,28 @@ describe( 'layout', () => {
46
50
  } );
47
51
  } );
48
52
 
53
+ describe( 'getLayoutStateOverrides()', () => {
54
+ it( 'preserves explicit unsets for layout values inherited from the default state', () => {
55
+ expect(
56
+ getLayoutStateOverrides(
57
+ { type: 'grid', columnCount: undefined },
58
+ { type: 'grid', columnCount: 3 }
59
+ )
60
+ ).toEqual( {
61
+ columnCount: null,
62
+ } );
63
+ } );
64
+
65
+ it( 'removes undefined layout values that are not inherited from the default state', () => {
66
+ expect(
67
+ getLayoutStateOverrides(
68
+ { type: 'grid', columnCount: undefined },
69
+ { type: 'grid' }
70
+ )
71
+ ).toBeUndefined();
72
+ } );
73
+ } );
74
+
49
75
  describe( 'getResponsiveLayoutStyles()', () => {
50
76
  it( 'generates responsive block gap styles for flow layouts', () => {
51
77
  expect(
@@ -135,6 +161,54 @@ describe( 'layout', () => {
135
161
  );
136
162
  } );
137
163
 
164
+ it( 'generates responsive auto grid columns when column count is unset', () => {
165
+ expect(
166
+ getResponsiveLayoutStyles( {
167
+ attributes: {
168
+ style: {
169
+ '@mobile': {
170
+ layout: {
171
+ columnCount: null,
172
+ },
173
+ },
174
+ },
175
+ },
176
+ blockName: 'core/group',
177
+ selector: '.wp-container-test',
178
+ layout: { type: 'grid', columnCount: 3 },
179
+ hasBlockGapSupport: true,
180
+ } )
181
+ ).toBe(
182
+ '@media (width <= 480px){.wp-container-test { grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr)); container-type: inline-size; }}'
183
+ );
184
+ } );
185
+
186
+ it( 'generates responsive constrained size resets when content width is unset', () => {
187
+ const result = getResponsiveLayoutStyles( {
188
+ attributes: {
189
+ style: {
190
+ '@mobile': {
191
+ layout: {
192
+ contentSize: null,
193
+ },
194
+ },
195
+ },
196
+ },
197
+ blockName: 'core/group',
198
+ selector: '.wp-container-test',
199
+ layout: { type: 'constrained', contentSize: '800px' },
200
+ hasBlockGapSupport: true,
201
+ } );
202
+
203
+ expect( result ).toContain( '@media (width <= 480px)' );
204
+ expect( result ).toContain(
205
+ 'max-width: var(--wp--style--global--content-size, none);'
206
+ );
207
+ expect( result ).toContain(
208
+ 'max-width: var(--wp--style--global--wide-size, none);'
209
+ );
210
+ } );
211
+
138
212
  it( 'keeps responsive grid column overrides when block gap is also changed', () => {
139
213
  expect(
140
214
  getResponsiveLayoutStyles( {
@@ -300,6 +300,19 @@ describe( 'getStateStylesCSS', () => {
300
300
  '.wp-block-test { height: 20rem !important; aspect-ratio: unset !important; }'
301
301
  );
302
302
  } );
303
+
304
+ it( 'adds important text alignment declarations for state styles', () => {
305
+ expect(
306
+ getStateStylesCSS(
307
+ {
308
+ typography: {
309
+ textAlign: 'center',
310
+ },
311
+ },
312
+ '.wp-block-test'
313
+ )
314
+ ).toBe( '.wp-block-test { text-align: center !important; }' );
315
+ } );
303
316
  } );
304
317
 
305
318
  describe( 'getBlockStateStylesCSS', () => {
@@ -414,6 +427,22 @@ describe( 'getResponsiveStateCSSRules', () => {
414
427
  ] );
415
428
  } );
416
429
 
430
+ it( 'generates media-query scoped text alignment styles for viewport states', () => {
431
+ expect(
432
+ getResponsiveStateCSSRules(
433
+ {
434
+ '@mobile': {
435
+ typography: { textAlign: 'right' },
436
+ },
437
+ },
438
+ 'core/paragraph',
439
+ '.wp-elements-1'
440
+ )
441
+ ).toEqual( [
442
+ '@media (width <= 480px){.wp-elements-1 { text-align: right !important; }}',
443
+ ] );
444
+ } );
445
+
417
446
  it( 'routes viewport styles through feature selectors', () => {
418
447
  expect(
419
448
  getResponsiveStateCSSRules(
@@ -10,7 +10,11 @@ import {
10
10
  /**
11
11
  * Internal dependencies
12
12
  */
13
- import { getValidTextAlignments, addAssignedTextAlign } from '../text-align';
13
+ import {
14
+ getValidTextAlignments,
15
+ addAssignedTextAlign,
16
+ getTextAlignControlGroup,
17
+ } from '../text-align';
14
18
 
15
19
  const noop = () => {};
16
20
 
@@ -62,6 +66,35 @@ describe( 'textAlign', () => {
62
66
  } );
63
67
  } );
64
68
 
69
+ describe( 'getTextAlignControlGroup()', () => {
70
+ it( 'uses the regular block slot by default', () => {
71
+ expect(
72
+ getTextAlignControlGroup( false, {
73
+ viewport: 'default',
74
+ pseudo: 'default',
75
+ } )
76
+ ).toBe( 'block' );
77
+ } );
78
+
79
+ it( 'uses the regular block slot when responsive editing has no viewport state', () => {
80
+ expect(
81
+ getTextAlignControlGroup( true, {
82
+ viewport: 'default',
83
+ pseudo: 'default',
84
+ } )
85
+ ).toBe( 'block' );
86
+ } );
87
+
88
+ it( 'uses the style-state slot when responsive editing has a viewport state', () => {
89
+ expect(
90
+ getTextAlignControlGroup( true, {
91
+ viewport: '@mobile',
92
+ pseudo: 'default',
93
+ } )
94
+ ).toBe( 'style-state' );
95
+ } );
96
+ } );
97
+
65
98
  describe( 'addAssignedTextAlign', () => {
66
99
  it( 'should do nothing if block does not support text align', () => {
67
100
  registerBlockType( 'core/foo', blockSettings );
@@ -9,6 +9,7 @@ import clsx from 'clsx';
9
9
  import { __ } from '@wordpress/i18n';
10
10
  import { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';
11
11
  import { alignLeft, alignRight, alignCenter } from '@wordpress/icons';
12
+ import { useSelect } from '@wordpress/data';
12
13
 
13
14
  /**
14
15
  * Internal dependencies
@@ -16,11 +17,14 @@ import { alignLeft, alignRight, alignCenter } from '@wordpress/icons';
16
17
  import { AlignmentControl, BlockControls } from '../components';
17
18
  import { useBlockEditingMode } from '../components/block-editing-mode';
18
19
  import {
19
- cleanEmptyObject,
20
- shouldSkipSerialization,
21
- useBlockSettings,
22
- } from './utils';
20
+ getStyleForState,
21
+ hasViewportBlockStyleState,
22
+ setStyleForState,
23
+ } from './block-style-state';
24
+ import { shouldSkipSerialization, useBlockSettings } from './utils';
23
25
  import { TYPOGRAPHY_SUPPORT_KEY } from './typography';
26
+ import { store as blockEditorStore } from '../store';
27
+ import { unlock } from '../lock-unlock';
24
28
 
25
29
  export const TEXT_ALIGN_SUPPORT_KEY = 'typography.textAlign';
26
30
 
@@ -64,7 +68,14 @@ export function getValidTextAlignments( blockTextAlign ) {
64
68
  return blockTextAlign === true ? VALID_TEXT_ALIGNMENTS : NO_TEXT_ALIGNMENTS;
65
69
  }
66
70
 
71
+ export function getTextAlignControlGroup( isResponsiveEditing, selectedState ) {
72
+ return isResponsiveEditing && hasViewportBlockStyleState( selectedState )
73
+ ? 'style-state'
74
+ : 'block';
75
+ }
76
+
67
77
  function BlockEditTextAlignmentToolbarControlsPure( {
78
+ clientId,
68
79
  style,
69
80
  name: blockName,
70
81
  setAttributes,
@@ -72,6 +83,19 @@ function BlockEditTextAlignmentToolbarControlsPure( {
72
83
  const settings = useBlockSettings( blockName );
73
84
  const hasTextAlignControl = settings?.typography?.textAlign;
74
85
  const blockEditingMode = useBlockEditingMode();
86
+ const { selectedState, isResponsiveEditing } = useSelect(
87
+ ( select ) => {
88
+ const {
89
+ getSelectedBlockStyleState,
90
+ isResponsiveEditing: getIsResponsiveEditing,
91
+ } = unlock( select( blockEditorStore ) );
92
+ return {
93
+ selectedState: getSelectedBlockStyleState( clientId ),
94
+ isResponsiveEditing: getIsResponsiveEditing(),
95
+ };
96
+ },
97
+ [ clientId ]
98
+ );
75
99
 
76
100
  if ( ! hasTextAlignControl || blockEditingMode !== 'default' ) {
77
101
  return null;
@@ -87,23 +111,30 @@ function BlockEditTextAlignmentToolbarControlsPure( {
87
111
  const textAlignmentControls = TEXT_ALIGNMENT_OPTIONS.filter( ( control ) =>
88
112
  validTextAlignments.includes( control.align )
89
113
  );
114
+ const stateStyle = getStyleForState( style, selectedState );
115
+ const controlsGroup = getTextAlignControlGroup(
116
+ isResponsiveEditing,
117
+ selectedState
118
+ );
90
119
 
91
120
  const onChange = ( newTextAlignValue ) => {
92
- const newStyle = {
93
- ...style,
121
+ const newStateStyle = {
122
+ ...stateStyle,
94
123
  typography: {
95
- ...style?.typography,
124
+ ...stateStyle?.typography,
96
125
  textAlign: newTextAlignValue,
97
126
  },
98
127
  };
99
128
 
100
- setAttributes( { style: cleanEmptyObject( newStyle ) } );
129
+ setAttributes( {
130
+ style: setStyleForState( style, selectedState, newStateStyle ),
131
+ } );
101
132
  };
102
133
 
103
134
  return (
104
- <BlockControls group="block">
135
+ <BlockControls group={ controlsGroup }>
105
136
  <AlignmentControl
106
- value={ style?.typography?.textAlign }
137
+ value={ stateStyle?.typography?.textAlign }
107
138
  onChange={ onChange }
108
139
  alignmentControls={ textAlignmentControls }
109
140
  />
@@ -214,7 +214,6 @@ export function TypographyPanel( {
214
214
  // Link color failures are reported by the Elements panel, which owns the
215
215
  // link color selection.
216
216
  const enableContrastChecking =
217
- ! isStateSelected &&
218
217
  ! value?.color?.gradient &&
219
218
  !! value?.color?.text &&
220
219
  settings?.color?.text &&