@wordpress/block-editor 16.0.1-next.v.202607070741.0 → 16.2.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 (2167) hide show
  1. package/CHANGELOG.md +66 -1
  2. package/README.md +21 -1
  3. package/build/autocompleters/block.cjs.map +2 -2
  4. package/build/components/alignment-control/index.cjs.map +2 -2
  5. package/build/components/alignment-control/ui.cjs +2 -4
  6. package/build/components/alignment-control/ui.cjs.map +2 -2
  7. package/build/components/autocomplete/index.cjs.map +2 -2
  8. package/build/components/background-image-control/index.cjs +40 -10
  9. package/build/components/background-image-control/index.cjs.map +2 -2
  10. package/build/components/block-actions/index.cjs +2 -1
  11. package/build/components/block-actions/index.cjs.map +2 -2
  12. package/build/components/block-alignment-control/constants.cjs.map +2 -2
  13. package/build/components/block-alignment-control/index.cjs.map +2 -2
  14. package/build/components/block-alignment-control/ui.cjs +5 -3
  15. package/build/components/block-alignment-control/ui.cjs.map +2 -2
  16. package/build/components/block-alignment-control/use-available-alignments.cjs.map +2 -2
  17. package/build/components/block-alignment-matrix-control/index.cjs.map +2 -2
  18. package/build/components/block-allowed-blocks/allowed-blocks-control.cjs.map +2 -2
  19. package/build/components/block-allowed-blocks/modal.cjs.map +2 -2
  20. package/build/components/block-bindings/attribute-control.cjs.map +2 -2
  21. package/build/components/block-bindings/index.cjs.map +2 -2
  22. package/build/components/block-bindings/source-fields-list.cjs.map +2 -2
  23. package/build/components/block-bindings/use-block-bindings-utils.cjs.map +2 -2
  24. package/build/components/block-breadcrumb/index.cjs.map +2 -2
  25. package/build/components/block-canvas/index.cjs +6 -1
  26. package/build/components/block-canvas/index.cjs.map +2 -2
  27. package/build/components/block-card/index.cjs.map +2 -2
  28. package/build/components/block-compare/block-view.cjs.map +2 -2
  29. package/build/components/block-compare/index.cjs.map +2 -2
  30. package/build/components/block-content-overlay/index.cjs.map +2 -2
  31. package/build/components/block-context/index.cjs.map +2 -2
  32. package/build/components/block-controls/fill.cjs.map +2 -2
  33. package/build/components/block-controls/groups.cjs +3 -1
  34. package/build/components/block-controls/groups.cjs.map +2 -2
  35. package/build/components/block-controls/hook.cjs.map +2 -2
  36. package/build/components/block-controls/index.cjs.map +2 -2
  37. package/build/components/block-controls/slot.cjs.map +2 -2
  38. package/build/components/block-draggable/draggable-chip.cjs.map +2 -2
  39. package/build/components/block-draggable/index.cjs.map +2 -2
  40. package/build/components/block-draggable/use-scroll-when-dragging.cjs.map +2 -2
  41. package/build/components/block-edit/context.cjs.map +2 -2
  42. package/build/components/block-edit/edit.cjs +10 -18
  43. package/build/components/block-edit/edit.cjs.map +2 -2
  44. package/build/components/block-edit/index.cjs.map +2 -2
  45. package/build/components/block-edit/multiple-usage-warning.cjs.map +2 -2
  46. package/build/components/block-edit-visually-button/index.cjs.map +2 -2
  47. package/build/components/block-editing-mode/index.cjs.map +2 -2
  48. package/build/components/block-full-height-alignment-control/index.cjs.map +2 -2
  49. package/build/components/block-heading-level-dropdown/heading-level-icon.cjs.map +2 -2
  50. package/build/components/block-heading-level-dropdown/index.cjs.map +2 -2
  51. package/build/components/block-icon/index.cjs.map +2 -2
  52. package/build/components/block-inspector/edit-contents.cjs +48 -40
  53. package/build/components/block-inspector/edit-contents.cjs.map +3 -3
  54. package/build/components/block-inspector/index.cjs +82 -50
  55. package/build/components/block-inspector/index.cjs.map +2 -2
  56. package/build/components/block-inspector/inspector-pre-tabs-slot-fill.cjs.map +2 -2
  57. package/build/components/block-inspector/useBlockInspectorAnimationSettings.cjs.map +2 -2
  58. package/build/components/block-list/block-crash-boundary.cjs.map +2 -2
  59. package/build/components/block-list/block-crash-warning.cjs.map +2 -2
  60. package/build/components/block-list/block-html.cjs +4 -1
  61. package/build/components/block-list/block-html.cjs.map +2 -2
  62. package/build/components/block-list/block-invalid-warning.cjs.map +2 -2
  63. package/build/components/block-list/block.cjs +45 -13
  64. package/build/components/block-list/block.cjs.map +3 -3
  65. package/build/components/block-list/index.cjs +34 -12
  66. package/build/components/block-list/index.cjs.map +2 -2
  67. package/build/components/block-list/layout.cjs.map +2 -2
  68. package/build/components/block-list/private-block-context.cjs.map +2 -2
  69. package/build/components/block-list/subdirectory-icon.cjs.map +2 -2
  70. package/build/components/block-list/use-block-props/index.cjs +41 -2
  71. package/build/components/block-list/use-block-props/index.cjs.map +3 -3
  72. package/build/components/block-list/use-block-props/use-block-refs.cjs.map +2 -2
  73. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.cjs.map +2 -2
  74. package/build/components/block-list/use-block-props/use-focus-first-element.cjs +9 -4
  75. package/build/components/block-list/use-block-props/use-focus-first-element.cjs.map +2 -2
  76. package/build/components/block-list/use-block-props/use-focus-handler.cjs +11 -4
  77. package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
  78. package/build/components/block-list/use-block-props/use-intersection-observer.cjs.map +2 -2
  79. package/build/components/block-list/use-block-props/use-is-hovered.cjs.map +2 -2
  80. package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs +48 -0
  81. package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs.map +7 -0
  82. package/build/components/block-list/use-block-props/use-scroll-into-view.cjs.map +2 -2
  83. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs.map +2 -2
  84. package/build/components/block-list/use-in-between-inserter.cjs.map +2 -2
  85. package/build/components/block-list/zoom-out-separator.cjs.map +2 -2
  86. package/build/components/block-list-appender/index.cjs.map +2 -2
  87. package/build/components/block-lock/menu-item.cjs.map +2 -2
  88. package/build/components/block-lock/modal.cjs.map +2 -2
  89. package/build/components/block-lock/toolbar.cjs.map +2 -2
  90. package/build/components/block-lock/use-block-lock.cjs.map +2 -2
  91. package/build/components/block-manager/category.cjs.map +2 -2
  92. package/build/components/block-manager/checklist.cjs.map +2 -2
  93. package/build/components/block-manager/index.cjs.map +2 -2
  94. package/build/components/block-mover/button.cjs +15 -9
  95. package/build/components/block-mover/button.cjs.map +2 -2
  96. package/build/components/block-mover/index.cjs.map +2 -2
  97. package/build/components/block-mover/mover-description.cjs.map +2 -2
  98. package/build/components/block-navigation/dropdown.cjs.map +2 -2
  99. package/build/components/block-parent-selector/index.cjs +2 -2
  100. package/build/components/block-parent-selector/index.cjs.map +2 -2
  101. package/build/components/block-pattern-setup/index.cjs.map +2 -2
  102. package/build/components/block-pattern-setup/setup-toolbar.cjs.map +2 -2
  103. package/build/components/block-pattern-setup/use-patterns-setup.cjs.map +2 -2
  104. package/build/components/block-patterns-list/index.cjs.map +2 -2
  105. package/build/components/block-patterns-paging/index.cjs.map +2 -2
  106. package/build/components/block-popover/cover.cjs.map +2 -2
  107. package/build/components/block-popover/drop-zone.cjs.map +2 -2
  108. package/build/components/block-popover/inbetween.cjs.map +2 -2
  109. package/build/components/block-popover/index.cjs.map +2 -2
  110. package/build/components/block-popover/use-popover-scroll.cjs.map +2 -2
  111. package/build/components/block-preview/async.cjs.map +2 -2
  112. package/build/components/block-preview/auto.cjs.map +2 -2
  113. package/build/components/block-preview/index.cjs.map +2 -2
  114. package/build/components/block-quick-navigation/index.cjs.map +2 -2
  115. package/build/components/block-removal-warning-modal/index.cjs.map +2 -2
  116. package/build/components/block-rename/modal.cjs.map +2 -2
  117. package/build/components/block-rename/rename-control.cjs.map +2 -2
  118. package/build/components/block-rename/use-block-rename.cjs.map +2 -2
  119. package/build/components/block-selection-clearer/index.cjs.map +2 -2
  120. package/build/components/block-settings-menu/block-html-convert-button.cjs.map +2 -2
  121. package/build/components/block-settings-menu/block-mode-toggle.cjs.map +2 -2
  122. package/build/components/block-settings-menu/block-parent-selector-menu-item.cjs.map +2 -2
  123. package/build/components/block-settings-menu/block-settings-dropdown.cjs +1 -1
  124. package/build/components/block-settings-menu/block-settings-dropdown.cjs.map +2 -2
  125. package/build/components/block-settings-menu/block-settings-menu-first-item.cjs.map +2 -2
  126. package/build/components/block-settings-menu/index.cjs.map +2 -2
  127. package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
  128. package/build/components/block-styles/index.cjs.map +2 -2
  129. package/build/components/block-styles/menu-items.cjs.map +2 -2
  130. package/build/components/block-styles/use-styles-for-block.cjs.map +2 -2
  131. package/build/components/block-styles/utils.cjs.map +2 -2
  132. package/build/components/block-switcher/block-styles-menu.cjs.map +2 -2
  133. package/build/components/block-switcher/block-transformations-menu.cjs.map +2 -2
  134. package/build/components/block-switcher/block-variation-transformations.cjs.map +2 -2
  135. package/build/components/block-switcher/index.cjs.map +2 -2
  136. package/build/components/block-switcher/pattern-transformations-menu.cjs.map +2 -2
  137. package/build/components/block-switcher/preview-block-popover.cjs.map +2 -2
  138. package/build/components/block-switcher/use-transformed-patterns.cjs.map +2 -2
  139. package/build/components/block-switcher/utils.cjs.map +2 -2
  140. package/build/components/block-title/index.cjs.map +2 -2
  141. package/build/components/block-title/use-block-display-title.cjs.map +2 -2
  142. package/build/components/block-toolbar/block-styles-dropdown.cjs.map +2 -2
  143. package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
  144. package/build/components/block-toolbar/block-toolbar-last-item.cjs.map +2 -2
  145. package/build/components/block-toolbar/change-design.cjs.map +2 -2
  146. package/build/components/block-toolbar/edit-section-button.cjs.map +2 -2
  147. package/build/components/block-toolbar/index.cjs +43 -24
  148. package/build/components/block-toolbar/index.cjs.map +2 -2
  149. package/build/components/block-toolbar/pattern-overrides-dropdown.cjs.map +2 -2
  150. package/build/components/block-toolbar/switch-section-style.cjs +4 -2
  151. package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
  152. package/build/components/block-toolbar/use-has-block-toolbar.cjs.map +2 -2
  153. package/build/components/block-toolbar/utils.cjs.map +2 -2
  154. package/build/components/block-tools/block-toolbar-popover.cjs.map +2 -2
  155. package/build/components/block-tools/empty-block-inserter.cjs +2 -7
  156. package/build/components/block-tools/empty-block-inserter.cjs.map +2 -2
  157. package/build/components/block-tools/index.cjs +9 -6
  158. package/build/components/block-tools/index.cjs.map +2 -2
  159. package/build/components/block-tools/insertion-point.cjs.map +2 -2
  160. package/build/components/block-tools/use-block-toolbar-popover-props.cjs.map +2 -2
  161. package/build/components/block-tools/use-selected-block-tool-props.cjs.map +2 -2
  162. package/build/components/block-tools/use-show-block-tools.cjs.map +2 -2
  163. package/build/components/block-tools/zoom-out-mode-inserter-button.cjs.map +2 -2
  164. package/build/components/block-tools/zoom-out-mode-inserters.cjs.map +2 -2
  165. package/build/components/block-types-list/index.cjs.map +2 -2
  166. package/build/components/block-variation-picker/index.cjs.map +2 -2
  167. package/build/components/block-variation-transforms/index.cjs.map +2 -2
  168. package/build/components/block-vertical-alignment-control/index.cjs.map +2 -2
  169. package/build/components/block-vertical-alignment-control/ui.cjs +3 -5
  170. package/build/components/block-vertical-alignment-control/ui.cjs.map +2 -2
  171. package/build/components/block-visibility/constants.cjs +1 -1
  172. package/build/components/block-visibility/constants.cjs.map +3 -3
  173. package/build/components/block-visibility/modal.cjs +20 -6
  174. package/build/components/block-visibility/modal.cjs.map +2 -2
  175. package/build/components/block-visibility/use-block-visibility.cjs +28 -20
  176. package/build/components/block-visibility/use-block-visibility.cjs.map +4 -4
  177. package/build/components/block-visibility/utils.cjs +15 -2
  178. package/build/components/block-visibility/utils.cjs.map +3 -3
  179. package/build/components/block-visibility/viewport-menu-item.cjs +7 -1
  180. package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
  181. package/build/components/block-visibility/viewport-toolbar.cjs +5 -0
  182. package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
  183. package/build/components/block-visibility/viewport-visibility-info.cjs +5 -1
  184. package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
  185. package/build/components/border-radius-control/constants.cjs.map +2 -2
  186. package/build/components/border-radius-control/index.cjs.map +2 -2
  187. package/build/components/border-radius-control/linked-button.cjs.map +2 -2
  188. package/build/components/border-radius-control/utils.cjs +8 -58
  189. package/build/components/border-radius-control/utils.cjs.map +2 -2
  190. package/build/components/button-block-appender/index.cjs.map +2 -2
  191. package/build/components/child-layout-control/index.cjs +0 -4
  192. package/build/components/child-layout-control/index.cjs.map +2 -2
  193. package/build/components/collab/note-icon-slot.cjs.map +2 -2
  194. package/build/components/collab/note-icon-toolbar-slot.cjs.map +2 -2
  195. package/build/components/color-palette/control.cjs.map +2 -2
  196. package/build/components/color-palette/index.cjs.map +2 -2
  197. package/build/components/color-palette/with-color-context.cjs.map +2 -2
  198. package/build/components/color-style-selector/index.cjs.map +2 -2
  199. package/build/components/colors/utils.cjs +2 -4
  200. package/build/components/colors/utils.cjs.map +3 -3
  201. package/build/components/colors/with-colors.cjs +2 -4
  202. package/build/components/colors/with-colors.cjs.map +3 -3
  203. package/build/components/colors-gradients/control.cjs +5 -3
  204. package/build/components/colors-gradients/control.cjs.map +2 -2
  205. package/build/components/colors-gradients/dropdown.cjs.map +2 -2
  206. package/build/components/colors-gradients/panel-color-gradient-settings.cjs +5 -5
  207. package/build/components/colors-gradients/panel-color-gradient-settings.cjs.map +2 -2
  208. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.cjs.map +2 -2
  209. package/build/components/contrast-checker/index.cjs.map +2 -2
  210. package/build/components/convert-to-group-buttons/index.cjs +2 -5
  211. package/build/components/convert-to-group-buttons/index.cjs.map +2 -2
  212. package/build/components/convert-to-group-buttons/toolbar.cjs +2 -4
  213. package/build/components/convert-to-group-buttons/toolbar.cjs.map +2 -2
  214. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.cjs.map +2 -2
  215. package/build/components/copy-handler/index.cjs.map +2 -2
  216. package/build/components/date-format-picker/index.cjs.map +2 -2
  217. package/build/components/default-block-appender/index.cjs.map +2 -2
  218. package/build/components/dimension-control/index.cjs +30 -20
  219. package/build/components/dimension-control/index.cjs.map +3 -3
  220. package/build/components/dimensions-tool/aspect-ratio-tool.cjs +9 -2
  221. package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
  222. package/build/components/dimensions-tool/index.cjs.map +2 -2
  223. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  224. package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
  225. package/build/components/duotone-control/index.cjs.map +2 -2
  226. package/build/components/editable-text/index.cjs.map +2 -2
  227. package/build/components/editor-styles/index.cjs +9 -1
  228. package/build/components/editor-styles/index.cjs.map +2 -2
  229. package/build/components/fit-text-size-warning/index.cjs.map +2 -2
  230. package/build/components/floating-toolbar/nav-up-icon.cjs.map +2 -2
  231. package/build/components/font-appearance-control/index.cjs.map +2 -2
  232. package/build/components/font-family/index.cjs.map +2 -2
  233. package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
  234. package/build/components/font-sizes/utils.cjs +2 -4
  235. package/build/components/font-sizes/utils.cjs.map +3 -3
  236. package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
  237. package/build/components/global-styles/advanced-panel.cjs.map +2 -2
  238. package/build/components/global-styles/background-panel.cjs +66 -25
  239. package/build/components/global-styles/background-panel.cjs.map +3 -3
  240. package/build/components/global-styles/border-panel.cjs +153 -55
  241. package/build/components/global-styles/border-panel.cjs.map +3 -3
  242. package/build/components/global-styles/color-gradient-dropdown-item.cjs +46 -14
  243. package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +3 -3
  244. package/build/components/global-styles/color-panel.cjs +63 -17
  245. package/build/components/global-styles/color-panel.cjs.map +2 -2
  246. package/build/components/global-styles/dimensions-panel.cjs +242 -64
  247. package/build/components/global-styles/dimensions-panel.cjs.map +3 -3
  248. package/build/components/global-styles/filters-panel.cjs +59 -20
  249. package/build/components/global-styles/filters-panel.cjs.map +3 -3
  250. package/build/components/global-styles/hooks.cjs +4 -1
  251. package/build/components/global-styles/hooks.cjs.map +2 -2
  252. package/build/components/global-styles/image-settings-panel.cjs.map +2 -2
  253. package/build/components/global-styles/inheritance/index.cjs +142 -0
  254. package/build/components/global-styles/inheritance/index.cjs.map +7 -0
  255. package/build/components/global-styles/inherited-value-context.cjs +173 -0
  256. package/build/components/global-styles/inherited-value-context.cjs.map +7 -0
  257. package/build/components/global-styles/shadow-panel-components.cjs +38 -20
  258. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  259. package/build/components/global-styles/state-control-badges.cjs +39 -3
  260. package/build/components/global-styles/state-control-badges.cjs.map +2 -2
  261. package/build/components/global-styles/state-control.cjs +1 -1
  262. package/build/components/global-styles/state-control.cjs.map +2 -2
  263. package/build/components/global-styles/typography-panel.cjs +271 -79
  264. package/build/components/global-styles/typography-panel.cjs.map +3 -3
  265. package/build/components/global-styles/typography-utils.cjs.map +2 -2
  266. package/build/components/global-styles/utils.cjs.map +2 -2
  267. package/build/components/gradients/use-gradient.cjs.map +2 -2
  268. package/build/components/gradients/with-gradient.cjs.map +2 -2
  269. package/build/components/grid/grid-item-movers.cjs.map +2 -2
  270. package/build/components/grid/grid-item-resizer.cjs.map +2 -2
  271. package/build/components/grid/grid-visualizer.cjs.map +2 -2
  272. package/build/components/grid/use-get-number-of-blocks-before-cell.cjs.map +2 -2
  273. package/build/components/grid/use-grid-layout-sync.cjs.map +2 -2
  274. package/build/components/height-control/index.cjs.map +2 -2
  275. package/build/components/html-element-control/index.cjs.map +2 -2
  276. package/build/components/html-element-control/messages.cjs.map +2 -2
  277. package/build/components/iframe/index.cjs +19 -24
  278. package/build/components/iframe/index.cjs.map +2 -2
  279. package/build/components/iframe/use-scale-canvas.cjs +20 -6
  280. package/build/components/iframe/use-scale-canvas.cjs.map +2 -2
  281. package/build/components/image-editor/aspect-ratio-dropdown.cjs.map +2 -2
  282. package/build/components/image-editor/context.cjs.map +2 -2
  283. package/build/components/image-editor/cropper.cjs.map +2 -2
  284. package/build/components/image-editor/form-controls.cjs.map +2 -2
  285. package/build/components/image-editor/index.cjs.map +2 -2
  286. package/build/components/image-editor/rotation-button.cjs.map +2 -2
  287. package/build/components/image-editor/use-save-image.cjs.map +2 -2
  288. package/build/components/image-editor/use-transform-image.cjs.map +2 -2
  289. package/build/components/image-editor/zoom-dropdown.cjs.map +2 -2
  290. package/build/components/image-size-control/index.cjs +2 -4
  291. package/build/components/image-size-control/index.cjs.map +2 -2
  292. package/build/components/image-size-control/use-dimension-handler.cjs.map +2 -2
  293. package/build/components/inner-blocks/button-block-appender.cjs.map +2 -2
  294. package/build/components/inner-blocks/default-block-appender.cjs.map +2 -2
  295. package/build/components/inner-blocks/index.cjs.map +2 -2
  296. package/build/components/inner-blocks/use-block-context.cjs.map +2 -2
  297. package/build/components/inner-blocks/use-inner-block-template-sync.cjs +34 -7
  298. package/build/components/inner-blocks/use-inner-block-template-sync.cjs.map +3 -3
  299. package/build/components/inner-blocks/use-nested-settings-update.cjs.map +2 -2
  300. package/build/components/inner-content/index.cjs.map +2 -2
  301. package/build/components/inserter/block-patterns-explorer/index.cjs.map +2 -2
  302. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.cjs.map +2 -2
  303. package/build/components/inserter/block-patterns-explorer/pattern-list.cjs.map +2 -2
  304. package/build/components/inserter/block-patterns-tab/index.cjs.map +2 -2
  305. package/build/components/inserter/block-patterns-tab/pattern-category-previews.cjs.map +2 -2
  306. package/build/components/inserter/block-patterns-tab/patterns-filter.cjs.map +2 -2
  307. package/build/components/inserter/block-patterns-tab/use-pattern-categories.cjs.map +2 -2
  308. package/build/components/inserter/block-patterns-tab/utils.cjs.map +2 -2
  309. package/build/components/inserter/block-types-tab.cjs.map +2 -2
  310. package/build/components/inserter/category-tabs/index.cjs.map +2 -2
  311. package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
  312. package/build/components/inserter/hooks/use-insertion-point.cjs.map +2 -2
  313. package/build/components/inserter/hooks/use-patterns-paging.cjs.map +2 -2
  314. package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
  315. package/build/components/inserter/index.cjs +4 -13
  316. package/build/components/inserter/index.cjs.map +2 -2
  317. package/build/components/inserter/library.cjs.map +2 -2
  318. package/build/components/inserter/media-tab/hooks.cjs +33 -6
  319. package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
  320. package/build/components/inserter/media-tab/media-list.cjs.map +2 -2
  321. package/build/components/inserter/media-tab/media-panel.cjs +78 -16
  322. package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
  323. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  324. package/build/components/inserter/media-tab/media-tab.cjs.map +2 -2
  325. package/build/components/inserter/media-tab/utils.cjs.map +2 -2
  326. package/build/components/inserter/menu.cjs.map +2 -2
  327. package/build/components/inserter/mobile-tab-navigation.cjs.map +2 -2
  328. package/build/components/inserter/no-results.cjs.map +2 -2
  329. package/build/components/inserter/panel.cjs.map +2 -2
  330. package/build/components/inserter/preview-panel.cjs.map +2 -2
  331. package/build/components/inserter/quick-inserter.cjs.map +2 -2
  332. package/build/components/inserter/search-items.cjs.map +2 -2
  333. package/build/components/inserter/search-results.cjs.map +2 -2
  334. package/build/components/inserter/tips.cjs.map +2 -2
  335. package/build/components/inserter-button/sparkles.cjs.map +2 -2
  336. package/build/components/inserter-draggable-blocks/index.cjs.map +2 -2
  337. package/build/components/inserter-list-item/index.cjs.map +2 -2
  338. package/build/components/inserter-listbox/context.cjs.map +2 -2
  339. package/build/components/inserter-listbox/group.cjs.map +2 -2
  340. package/build/components/inserter-listbox/index.cjs.map +2 -2
  341. package/build/components/inserter-listbox/item.cjs.map +2 -2
  342. package/build/components/inserter-listbox/row.cjs.map +2 -2
  343. package/build/components/inserter-menu-extension/index.cjs.map +2 -2
  344. package/build/components/inspector-controls/block-support-slot-container.cjs.map +2 -2
  345. package/build/components/inspector-controls/block-support-tools-panel.cjs.map +2 -2
  346. package/build/components/inspector-controls/fill.cjs +15 -17
  347. package/build/components/inspector-controls/fill.cjs.map +2 -2
  348. package/build/components/inspector-controls/groups.cjs.map +2 -2
  349. package/build/components/inspector-controls/index.cjs.map +2 -2
  350. package/build/components/inspector-controls/last-item.cjs.map +2 -2
  351. package/build/components/inspector-controls/list-view-content-popover.cjs.map +2 -2
  352. package/build/components/inspector-controls/slot.cjs.map +2 -2
  353. package/build/components/inspector-controls-tabs/advanced-controls-panel.cjs.map +2 -2
  354. package/build/components/inspector-controls-tabs/content-tab.cjs.map +2 -2
  355. package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
  356. package/build/components/inspector-controls-tabs/position-controls-panel.cjs.map +2 -2
  357. package/build/components/inspector-controls-tabs/settings-tab.cjs.map +2 -2
  358. package/build/components/inspector-controls-tabs/styles-tab.cjs +10 -1
  359. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
  360. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
  361. package/build/components/inspector-controls-tabs/utils.cjs.map +2 -2
  362. package/build/components/inspector-popover-header/index.cjs.map +2 -2
  363. package/build/components/justify-content-control/index.cjs.map +2 -2
  364. package/build/components/justify-content-control/ui.cjs.map +2 -2
  365. package/build/components/keyboard-shortcuts/index.cjs +19 -11
  366. package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
  367. package/build/components/letter-spacing-control/index.cjs.map +2 -2
  368. package/build/components/line-height-control/index.cjs +1 -2
  369. package/build/components/line-height-control/index.cjs.map +2 -2
  370. package/build/components/link-control/constants.cjs.map +2 -2
  371. package/build/components/link-control/index.cjs +3 -1
  372. package/build/components/link-control/index.cjs.map +2 -2
  373. package/build/components/link-control/is-url-like.cjs.map +2 -2
  374. package/build/components/link-control/link-preview.cjs.map +2 -2
  375. package/build/components/link-control/normalize-url.cjs.map +2 -2
  376. package/build/components/link-control/search-create-button.cjs.map +2 -2
  377. package/build/components/link-control/search-input.cjs.map +2 -2
  378. package/build/components/link-control/search-item.cjs.map +2 -2
  379. package/build/components/link-control/search-results.cjs +1 -1
  380. package/build/components/link-control/search-results.cjs.map +2 -2
  381. package/build/components/link-control/settings-drawer.cjs.map +2 -2
  382. package/build/components/link-control/settings.cjs.map +2 -2
  383. package/build/components/link-control/use-create-page.cjs.map +2 -2
  384. package/build/components/link-control/use-internal-value.cjs.map +2 -2
  385. package/build/components/link-control/use-rich-url-data.cjs +1 -1
  386. package/build/components/link-control/use-rich-url-data.cjs.map +2 -2
  387. package/build/components/link-control/use-search-handler.cjs.map +2 -2
  388. package/build/components/link-control/viewer-slot.cjs.map +2 -2
  389. package/build/components/link-picker/link-picker.cjs.map +2 -2
  390. package/build/components/link-picker/link-preview.cjs.map +2 -2
  391. package/build/components/list-view/appender.cjs +6 -3
  392. package/build/components/list-view/appender.cjs.map +2 -2
  393. package/build/components/list-view/aria-referenced-text.cjs +2 -9
  394. package/build/components/list-view/aria-referenced-text.cjs.map +2 -2
  395. package/build/components/list-view/block-contents.cjs +17 -20
  396. package/build/components/list-view/block-contents.cjs.map +2 -2
  397. package/build/components/list-view/block-select-button.cjs +40 -19
  398. package/build/components/list-view/block-select-button.cjs.map +3 -3
  399. package/build/components/list-view/block.cjs +48 -42
  400. package/build/components/list-view/block.cjs.map +3 -3
  401. package/build/components/list-view/branch.cjs +93 -77
  402. package/build/components/list-view/branch.cjs.map +3 -3
  403. package/build/components/list-view/context.cjs +16 -2
  404. package/build/components/list-view/context.cjs.map +2 -2
  405. package/build/components/list-view/drop-indicator.cjs +4 -3
  406. package/build/components/list-view/drop-indicator.cjs.map +3 -3
  407. package/build/components/list-view/expander.cjs.map +2 -2
  408. package/build/components/list-view/index.cjs +83 -96
  409. package/build/components/list-view/index.cjs.map +2 -2
  410. package/build/components/list-view/leaf.cjs.map +2 -2
  411. package/build/components/list-view/use-block-selection.cjs.map +2 -2
  412. package/build/components/list-view/use-clipboard-handler.cjs.map +2 -2
  413. package/build/components/list-view/use-list-view-block-indexes.cjs.map +2 -2
  414. package/build/components/list-view/use-list-view-client-ids.cjs.map +2 -2
  415. package/build/components/list-view/use-list-view-collapse-items.cjs +3 -4
  416. package/build/components/list-view/use-list-view-collapse-items.cjs.map +2 -2
  417. package/build/components/list-view/use-list-view-drop-zone.cjs +7 -13
  418. package/build/components/list-view/use-list-view-drop-zone.cjs.map +2 -2
  419. package/build/components/list-view/use-list-view-expand-selected-item.cjs +3 -3
  420. package/build/components/list-view/use-list-view-expand-selected-item.cjs.map +2 -2
  421. package/build/components/list-view/use-list-view-images.cjs +4 -3
  422. package/build/components/list-view/use-list-view-images.cjs.map +2 -2
  423. package/build/components/list-view/use-list-view-scroll-into-view.cjs.map +2 -2
  424. package/build/components/list-view/utils.cjs +6 -3
  425. package/build/components/list-view/utils.cjs.map +2 -2
  426. package/build/components/media-placeholder/index.cjs +0 -1
  427. package/build/components/media-placeholder/index.cjs.map +2 -2
  428. package/build/components/media-replace-flow/index.cjs.map +2 -2
  429. package/build/components/media-upload/check.cjs.map +2 -2
  430. package/build/components/media-upload/index.cjs.map +2 -2
  431. package/build/components/multi-selection-inspector/index.cjs +33 -12
  432. package/build/components/multi-selection-inspector/index.cjs.map +3 -3
  433. package/build/components/navigable-toolbar/index.cjs +29 -18
  434. package/build/components/navigable-toolbar/index.cjs.map +2 -2
  435. package/build/components/observe-typing/index.cjs.map +2 -2
  436. package/build/components/panel-color-settings/index.cjs.map +2 -2
  437. package/build/components/plain-text/index.cjs.map +2 -2
  438. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  439. package/build/components/preset-input-control/index.cjs +2 -1
  440. package/build/components/preset-input-control/index.cjs.map +2 -2
  441. package/build/components/preview-options/index.cjs.map +2 -2
  442. package/build/components/provider/block-refs-provider.cjs +8 -2
  443. package/build/components/provider/block-refs-provider.cjs.map +2 -2
  444. package/build/components/provider/index.cjs +1 -1
  445. package/build/components/provider/index.cjs.map +2 -2
  446. package/build/components/provider/selection-context.cjs.map +2 -2
  447. package/build/components/provider/use-block-sync.cjs +18 -6
  448. package/build/components/provider/use-block-sync.cjs.map +2 -2
  449. package/build/components/provider/use-media-upload-settings.cjs +3 -1
  450. package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
  451. package/build/components/provider/with-registry-provider.cjs.map +2 -2
  452. package/build/components/publish-date-time-picker/index.cjs.map +2 -2
  453. package/build/components/recursion-provider/index.cjs.map +2 -2
  454. package/build/components/resizable-box-popover/index.cjs.map +2 -2
  455. package/build/components/resolution-tool/index.cjs.map +2 -2
  456. package/build/components/responsive-block-control/index.cjs.map +2 -2
  457. package/build/components/responsive-block-control/label.cjs.map +2 -2
  458. package/build/components/rich-text/content.cjs.map +2 -2
  459. package/build/components/rich-text/event-listeners/before-input-rules.cjs +3 -4
  460. package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
  461. package/build/components/rich-text/event-listeners/delete.cjs +2 -3
  462. package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
  463. package/build/components/rich-text/event-listeners/enter.cjs +3 -2
  464. package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
  465. package/build/components/rich-text/event-listeners/firefox-compat.cjs.map +2 -2
  466. package/build/components/rich-text/event-listeners/index.cjs.map +2 -2
  467. package/build/components/rich-text/event-listeners/input-events.cjs +3 -3
  468. package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
  469. package/build/components/rich-text/event-listeners/input-rules.cjs +16 -14
  470. package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
  471. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +3 -3
  472. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
  473. package/build/components/rich-text/event-listeners/paste-handler.cjs +10 -2
  474. package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
  475. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +3 -3
  476. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
  477. package/build/components/rich-text/event-listeners/shortcuts.cjs +3 -3
  478. package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
  479. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +3 -3
  480. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
  481. package/build/components/rich-text/format-edit.cjs.map +2 -2
  482. package/build/components/rich-text/format-toolbar/index.cjs.map +2 -2
  483. package/build/components/rich-text/format-toolbar-container.cjs.map +2 -2
  484. package/build/components/rich-text/get-rich-text-values.cjs.map +2 -2
  485. package/build/components/rich-text/index.cjs +76 -17
  486. package/build/components/rich-text/index.cjs.map +2 -2
  487. package/build/components/rich-text/multiline.cjs.map +2 -2
  488. package/build/components/rich-text/prevent-event-discovery.cjs.map +2 -2
  489. package/build/components/rich-text/toolbar-button.cjs.map +2 -2
  490. package/build/components/rich-text/use-mark-persistent.cjs.map +2 -2
  491. package/build/components/rich-text/utils.cjs.map +2 -2
  492. package/build/components/rich-text/with-deprecations.cjs.map +2 -2
  493. package/build/components/selection-scroll-into-view/index.cjs.map +2 -2
  494. package/build/components/skip-to-selected-block/index.cjs.map +2 -2
  495. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.cjs.map +2 -2
  496. package/build/components/spacing-sizes-control/index.cjs +2 -2
  497. package/build/components/spacing-sizes-control/index.cjs.map +2 -2
  498. package/build/components/spacing-sizes-control/input-controls/axial.cjs.map +2 -2
  499. package/build/components/spacing-sizes-control/input-controls/separated.cjs.map +2 -2
  500. package/build/components/spacing-sizes-control/input-controls/single.cjs.map +2 -2
  501. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.cjs.map +2 -2
  502. package/build/components/spacing-sizes-control/linked-button.cjs.map +2 -2
  503. package/build/components/spacing-sizes-control/utils.cjs +6 -19
  504. package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
  505. package/build/components/tabbed-sidebar/index.cjs.map +2 -2
  506. package/build/components/text-alignment-control/index.cjs.map +2 -2
  507. package/build/components/text-decoration-control/index.cjs.map +2 -2
  508. package/build/components/text-indent-control/index.cjs +8 -2
  509. package/build/components/text-indent-control/index.cjs.map +2 -2
  510. package/build/components/text-transform-control/index.cjs.map +2 -2
  511. package/build/components/tool-selector/index.cjs.map +2 -2
  512. package/build/components/typewriter/index.cjs +129 -136
  513. package/build/components/typewriter/index.cjs.map +3 -3
  514. package/build/components/unit-control/index.cjs.map +2 -2
  515. package/build/components/url-input/button.cjs.map +2 -2
  516. package/build/components/url-input/index.cjs +314 -373
  517. package/build/components/url-input/index.cjs.map +3 -3
  518. package/build/components/url-popover/image-url-input-ui.cjs +2 -2
  519. package/build/components/url-popover/image-url-input-ui.cjs.map +2 -2
  520. package/build/components/url-popover/index.cjs.map +2 -2
  521. package/build/components/url-popover/link-editor.cjs.map +2 -2
  522. package/build/components/url-popover/link-viewer-url.cjs.map +2 -2
  523. package/build/components/url-popover/link-viewer.cjs.map +2 -2
  524. package/build/components/use-block-commands/index.cjs +23 -18
  525. package/build/components/use-block-commands/index.cjs.map +2 -2
  526. package/build/components/use-block-display-information/index.cjs +6 -1
  527. package/build/components/use-block-display-information/index.cjs.map +2 -2
  528. package/build/components/use-block-drop-zone/index.cjs.map +2 -2
  529. package/build/components/use-flash-editable-blocks/index.cjs.map +2 -2
  530. package/build/components/use-list-view-panel-state/index.cjs.map +2 -2
  531. package/build/components/use-moving-animation/index.cjs +2 -2
  532. package/build/components/use-moving-animation/index.cjs.map +2 -2
  533. package/build/components/use-on-block-drop/index.cjs +1 -1
  534. package/build/components/use-on-block-drop/index.cjs.map +2 -2
  535. package/build/components/use-paste-styles/index.cjs.map +2 -2
  536. package/build/components/use-resize-canvas/index.cjs.map +2 -2
  537. package/build/components/use-settings/index.cjs.map +2 -2
  538. package/build/components/warning/index.cjs.map +2 -2
  539. package/build/components/writing-flow/index.cjs +14 -1
  540. package/build/components/writing-flow/index.cjs.map +3 -3
  541. package/build/components/writing-flow/use-arrow-nav.cjs +48 -7
  542. package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
  543. package/build/components/writing-flow/use-click-selection.cjs +29 -3
  544. package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
  545. package/build/components/writing-flow/use-clipboard-handler.cjs +33 -5
  546. package/build/components/writing-flow/use-clipboard-handler.cjs.map +3 -3
  547. package/build/components/writing-flow/use-drag-selection.cjs +3 -8
  548. package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
  549. package/build/components/writing-flow/use-editable-root-event-handlers.cjs +179 -0
  550. package/build/components/writing-flow/use-editable-root-event-handlers.cjs.map +7 -0
  551. package/build/components/writing-flow/use-editable-root.cjs +75 -0
  552. package/build/components/writing-flow/use-editable-root.cjs.map +7 -0
  553. package/build/components/writing-flow/use-home-end.cjs +64 -0
  554. package/build/components/writing-flow/use-home-end.cjs.map +7 -0
  555. package/build/components/writing-flow/use-input.cjs +15 -5
  556. package/build/components/writing-flow/use-input.cjs.map +2 -2
  557. package/build/components/writing-flow/use-multi-selection.cjs +2 -2
  558. package/build/components/writing-flow/use-multi-selection.cjs.map +2 -2
  559. package/build/components/writing-flow/use-preview-mode-nav.cjs.map +2 -2
  560. package/build/components/writing-flow/use-select-all.cjs +14 -2
  561. package/build/components/writing-flow/use-select-all.cjs.map +2 -2
  562. package/build/components/writing-flow/use-selection-observer.cjs +132 -22
  563. package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
  564. package/build/components/writing-flow/use-tab-nav.cjs +3 -1
  565. package/build/components/writing-flow/use-tab-nav.cjs.map +2 -2
  566. package/build/components/writing-flow/utils.cjs +28 -2
  567. package/build/components/writing-flow/utils.cjs.map +2 -2
  568. package/build/components/writing-mode-control/index.cjs.map +2 -2
  569. package/build/hooks/align.cjs.map +2 -2
  570. package/build/hooks/allowed-blocks.cjs.map +2 -2
  571. package/build/hooks/anchor.cjs.map +2 -2
  572. package/build/hooks/aria-label.cjs.map +2 -2
  573. package/build/hooks/auto-inspector-controls.cjs.map +2 -2
  574. package/build/hooks/background.cjs +13 -12
  575. package/build/hooks/background.cjs.map +2 -2
  576. package/build/hooks/block-bindings.cjs.map +2 -2
  577. package/build/hooks/block-fields/fields-dropdown-menu.cjs.map +2 -2
  578. package/build/hooks/block-fields/index.cjs.map +2 -2
  579. package/build/hooks/block-fields/link/index.cjs.map +2 -2
  580. package/build/hooks/block-fields/media/index.cjs.map +2 -2
  581. package/build/hooks/block-fields/rich-text/index.cjs +2 -3
  582. package/build/hooks/block-fields/rich-text/index.cjs.map +3 -3
  583. package/build/hooks/block-fields/use-inspector-popover-placement.cjs.map +2 -2
  584. package/build/hooks/block-hooks.cjs.map +2 -2
  585. package/build/hooks/block-renaming.cjs.map +2 -2
  586. package/build/hooks/block-style-state.cjs.map +2 -2
  587. package/build/hooks/block-style-variation.cjs +4 -45
  588. package/build/hooks/block-style-variation.cjs.map +3 -3
  589. package/build/hooks/border.cjs +19 -4
  590. package/build/hooks/border.cjs.map +2 -2
  591. package/build/hooks/color.cjs.map +2 -2
  592. package/build/hooks/compat.cjs.map +2 -2
  593. package/build/hooks/contrast-checker.cjs.map +2 -2
  594. package/build/hooks/custom-class-name.cjs.map +2 -2
  595. package/build/hooks/custom-css.cjs +6 -2
  596. package/build/hooks/custom-css.cjs.map +2 -2
  597. package/build/hooks/dimensions.cjs +15 -4
  598. package/build/hooks/dimensions.cjs.map +2 -2
  599. package/build/hooks/duotone.cjs +26 -14
  600. package/build/hooks/duotone.cjs.map +3 -3
  601. package/build/hooks/elements.cjs +15 -5
  602. package/build/hooks/elements.cjs.map +2 -2
  603. package/build/hooks/fit-text.cjs.map +2 -2
  604. package/build/hooks/font-family.cjs +2 -4
  605. package/build/hooks/font-family.cjs.map +3 -3
  606. package/build/hooks/font-size.cjs.map +2 -2
  607. package/build/hooks/gap.cjs.map +2 -2
  608. package/build/hooks/generated-class-name.cjs.map +2 -2
  609. package/build/hooks/grid-visualizer.cjs +5 -3
  610. package/build/hooks/grid-visualizer.cjs.map +2 -2
  611. package/build/hooks/index.cjs.map +2 -2
  612. package/build/hooks/layout-child.cjs +22 -12
  613. package/build/hooks/layout-child.cjs.map +3 -3
  614. package/build/hooks/layout.cjs +32 -17
  615. package/build/hooks/layout.cjs.map +3 -3
  616. package/build/hooks/line-height.cjs +1 -2
  617. package/build/hooks/line-height.cjs.map +2 -2
  618. package/build/hooks/list-view.cjs.map +2 -2
  619. package/build/hooks/lock.cjs.map +2 -2
  620. package/build/hooks/metadata.cjs.map +2 -2
  621. package/build/hooks/position.cjs.map +2 -2
  622. package/build/hooks/settings.cjs.map +2 -2
  623. package/build/hooks/spacing-visualizer.cjs.map +2 -2
  624. package/build/hooks/state-utils.cjs.map +2 -2
  625. package/build/hooks/states.cjs +27 -7
  626. package/build/hooks/states.cjs.map +3 -3
  627. package/build/hooks/style.cjs +31 -9
  628. package/build/hooks/style.cjs.map +3 -3
  629. package/build/hooks/supports.cjs.map +2 -2
  630. package/build/hooks/text-align.cjs +36 -6
  631. package/build/hooks/text-align.cjs.map +3 -3
  632. package/build/hooks/typography.cjs +14 -5
  633. package/build/hooks/typography.cjs.map +2 -2
  634. package/build/hooks/use-border-props.cjs.map +2 -2
  635. package/build/hooks/use-cached-truthy.cjs.map +2 -2
  636. package/build/hooks/use-color-props.cjs.map +2 -2
  637. package/build/hooks/use-content-only-section-edit.cjs.map +2 -2
  638. package/build/hooks/use-dimensions-props.cjs.map +2 -2
  639. package/build/hooks/use-shadow-props.cjs.map +2 -2
  640. package/build/hooks/use-spacing-props.cjs.map +2 -2
  641. package/build/hooks/use-typography-props.cjs +2 -4
  642. package/build/hooks/use-typography-props.cjs.map +3 -3
  643. package/build/hooks/use-zoom-out.cjs.map +2 -2
  644. package/build/hooks/utils.cjs.map +2 -2
  645. package/build/index.cjs.map +2 -2
  646. package/build/layouts/constrained.cjs +14 -6
  647. package/build/layouts/constrained.cjs.map +2 -2
  648. package/build/layouts/flex.cjs +27 -19
  649. package/build/layouts/flex.cjs.map +2 -2
  650. package/build/layouts/flow.cjs.map +2 -2
  651. package/build/layouts/grid.cjs +0 -2
  652. package/build/layouts/grid.cjs.map +2 -2
  653. package/build/layouts/index.cjs.map +2 -2
  654. package/build/layouts/utils.cjs.map +2 -2
  655. package/build/lock-unlock.cjs.map +2 -2
  656. package/build/private-apis.cjs +9 -5
  657. package/build/private-apis.cjs.map +3 -3
  658. package/build/store/actions.cjs +115 -42
  659. package/build/store/actions.cjs.map +3 -3
  660. package/build/store/defaults.cjs +2 -0
  661. package/build/store/defaults.cjs.map +2 -2
  662. package/build/store/get-block-settings.cjs.map +2 -2
  663. package/build/store/index.cjs.map +2 -2
  664. package/build/store/private-actions.cjs +19 -2
  665. package/build/store/private-actions.cjs.map +2 -2
  666. package/build/store/private-selectors.cjs +69 -13
  667. package/build/store/private-selectors.cjs.map +3 -3
  668. package/build/store/reducer.cjs +9 -7
  669. package/build/store/reducer.cjs.map +2 -2
  670. package/build/store/selectors.cjs +44 -8
  671. package/build/store/selectors.cjs.map +2 -2
  672. package/build/store/utils.cjs.map +2 -2
  673. package/build/utils/block-bindings.cjs +29 -0
  674. package/build/utils/block-bindings.cjs.map +2 -2
  675. package/build/utils/dom.cjs +14 -0
  676. package/build/utils/dom.cjs.map +2 -2
  677. package/build/utils/fit-text-frontend.cjs.map +2 -2
  678. package/build/utils/format-font-style.cjs.map +2 -2
  679. package/build/utils/format-font-weight.cjs.map +2 -2
  680. package/build/utils/get-font-styles-and-weights.cjs.map +2 -2
  681. package/build/utils/group-blocks.cjs +42 -0
  682. package/build/utils/group-blocks.cjs.map +7 -0
  683. package/build/{components/rich-text/input-event.cjs → utils/native-undo.cjs} +29 -24
  684. package/build/utils/native-undo.cjs.map +7 -0
  685. package/build/utils/pasting.cjs.map +2 -2
  686. package/build/utils/selection.cjs.map +2 -2
  687. package/build/utils/sibling-block-attributes.cjs +45 -0
  688. package/build/utils/sibling-block-attributes.cjs.map +7 -0
  689. package/build/utils/transform-styles/index.cjs.map +2 -2
  690. package/build/utils/use-notify-copy.cjs.map +2 -2
  691. package/build-module/autocompleters/block.mjs.map +2 -2
  692. package/build-module/components/alignment-control/index.mjs.map +2 -2
  693. package/build-module/components/alignment-control/ui.mjs +2 -4
  694. package/build-module/components/alignment-control/ui.mjs.map +2 -2
  695. package/build-module/components/autocomplete/index.mjs.map +2 -2
  696. package/build-module/components/background-image-control/index.mjs +43 -10
  697. package/build-module/components/background-image-control/index.mjs.map +2 -2
  698. package/build-module/components/block-actions/index.mjs +3 -6
  699. package/build-module/components/block-actions/index.mjs.map +2 -2
  700. package/build-module/components/block-alignment-control/constants.mjs.map +2 -2
  701. package/build-module/components/block-alignment-control/index.mjs.map +2 -2
  702. package/build-module/components/block-alignment-control/ui.mjs +5 -3
  703. package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
  704. package/build-module/components/block-alignment-control/use-available-alignments.mjs.map +2 -2
  705. package/build-module/components/block-alignment-matrix-control/index.mjs.map +2 -2
  706. package/build-module/components/block-allowed-blocks/allowed-blocks-control.mjs.map +2 -2
  707. package/build-module/components/block-allowed-blocks/modal.mjs.map +2 -2
  708. package/build-module/components/block-bindings/attribute-control.mjs.map +2 -2
  709. package/build-module/components/block-bindings/index.mjs.map +2 -2
  710. package/build-module/components/block-bindings/source-fields-list.mjs.map +2 -2
  711. package/build-module/components/block-bindings/use-block-bindings-utils.mjs.map +2 -2
  712. package/build-module/components/block-breadcrumb/index.mjs.map +2 -2
  713. package/build-module/components/block-canvas/index.mjs +7 -2
  714. package/build-module/components/block-canvas/index.mjs.map +2 -2
  715. package/build-module/components/block-card/index.mjs.map +2 -2
  716. package/build-module/components/block-compare/block-view.mjs.map +2 -2
  717. package/build-module/components/block-compare/index.mjs.map +2 -2
  718. package/build-module/components/block-content-overlay/index.mjs.map +2 -2
  719. package/build-module/components/block-context/index.mjs.map +2 -2
  720. package/build-module/components/block-controls/fill.mjs.map +2 -2
  721. package/build-module/components/block-controls/groups.mjs +3 -1
  722. package/build-module/components/block-controls/groups.mjs.map +2 -2
  723. package/build-module/components/block-controls/hook.mjs.map +2 -2
  724. package/build-module/components/block-controls/index.mjs.map +2 -2
  725. package/build-module/components/block-controls/slot.mjs.map +2 -2
  726. package/build-module/components/block-draggable/draggable-chip.mjs.map +2 -2
  727. package/build-module/components/block-draggable/index.mjs.map +2 -2
  728. package/build-module/components/block-draggable/use-scroll-when-dragging.mjs.map +2 -2
  729. package/build-module/components/block-edit/context.mjs.map +2 -2
  730. package/build-module/components/block-edit/edit.mjs +11 -18
  731. package/build-module/components/block-edit/edit.mjs.map +2 -2
  732. package/build-module/components/block-edit/index.mjs.map +2 -2
  733. package/build-module/components/block-edit/multiple-usage-warning.mjs.map +2 -2
  734. package/build-module/components/block-edit-visually-button/index.mjs.map +2 -2
  735. package/build-module/components/block-editing-mode/index.mjs.map +2 -2
  736. package/build-module/components/block-full-height-alignment-control/index.mjs.map +2 -2
  737. package/build-module/components/block-heading-level-dropdown/heading-level-icon.mjs.map +2 -2
  738. package/build-module/components/block-heading-level-dropdown/index.mjs.map +2 -2
  739. package/build-module/components/block-icon/index.mjs.map +2 -2
  740. package/build-module/components/block-inspector/edit-contents.mjs +49 -41
  741. package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
  742. package/build-module/components/block-inspector/index.mjs +83 -50
  743. package/build-module/components/block-inspector/index.mjs.map +2 -2
  744. package/build-module/components/block-inspector/inspector-pre-tabs-slot-fill.mjs.map +2 -2
  745. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.mjs.map +2 -2
  746. package/build-module/components/block-list/block-crash-boundary.mjs.map +2 -2
  747. package/build-module/components/block-list/block-crash-warning.mjs.map +2 -2
  748. package/build-module/components/block-list/block-html.mjs +4 -1
  749. package/build-module/components/block-list/block-html.mjs.map +2 -2
  750. package/build-module/components/block-list/block-invalid-warning.mjs.map +2 -2
  751. package/build-module/components/block-list/block.mjs +45 -13
  752. package/build-module/components/block-list/block.mjs.map +3 -3
  753. package/build-module/components/block-list/index.mjs +35 -13
  754. package/build-module/components/block-list/index.mjs.map +2 -2
  755. package/build-module/components/block-list/layout.mjs.map +2 -2
  756. package/build-module/components/block-list/private-block-context.mjs.map +2 -2
  757. package/build-module/components/block-list/subdirectory-icon.mjs.map +2 -2
  758. package/build-module/components/block-list/use-block-props/index.mjs +41 -2
  759. package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
  760. package/build-module/components/block-list/use-block-props/use-block-refs.mjs.map +2 -2
  761. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.mjs.map +2 -2
  762. package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs +9 -4
  763. package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs.map +2 -2
  764. package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +11 -4
  765. package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
  766. package/build-module/components/block-list/use-block-props/use-intersection-observer.mjs.map +2 -2
  767. package/build-module/components/block-list/use-block-props/use-is-hovered.mjs.map +2 -2
  768. package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs +28 -0
  769. package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs.map +7 -0
  770. package/build-module/components/block-list/use-block-props/use-scroll-into-view.mjs.map +2 -2
  771. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs.map +2 -2
  772. package/build-module/components/block-list/use-in-between-inserter.mjs.map +2 -2
  773. package/build-module/components/block-list/zoom-out-separator.mjs.map +2 -2
  774. package/build-module/components/block-list-appender/index.mjs.map +2 -2
  775. package/build-module/components/block-lock/menu-item.mjs.map +2 -2
  776. package/build-module/components/block-lock/modal.mjs.map +2 -2
  777. package/build-module/components/block-lock/toolbar.mjs.map +2 -2
  778. package/build-module/components/block-lock/use-block-lock.mjs.map +2 -2
  779. package/build-module/components/block-manager/category.mjs.map +2 -2
  780. package/build-module/components/block-manager/checklist.mjs.map +2 -2
  781. package/build-module/components/block-manager/index.mjs.map +2 -2
  782. package/build-module/components/block-mover/button.mjs +17 -11
  783. package/build-module/components/block-mover/button.mjs.map +2 -2
  784. package/build-module/components/block-mover/index.mjs.map +2 -2
  785. package/build-module/components/block-mover/mover-description.mjs.map +2 -2
  786. package/build-module/components/block-navigation/dropdown.mjs.map +2 -2
  787. package/build-module/components/block-parent-selector/index.mjs +2 -2
  788. package/build-module/components/block-parent-selector/index.mjs.map +2 -2
  789. package/build-module/components/block-pattern-setup/index.mjs.map +2 -2
  790. package/build-module/components/block-pattern-setup/setup-toolbar.mjs.map +2 -2
  791. package/build-module/components/block-pattern-setup/use-patterns-setup.mjs.map +2 -2
  792. package/build-module/components/block-patterns-list/index.mjs.map +2 -2
  793. package/build-module/components/block-patterns-paging/index.mjs.map +2 -2
  794. package/build-module/components/block-popover/cover.mjs.map +2 -2
  795. package/build-module/components/block-popover/drop-zone.mjs.map +2 -2
  796. package/build-module/components/block-popover/inbetween.mjs.map +2 -2
  797. package/build-module/components/block-popover/index.mjs.map +2 -2
  798. package/build-module/components/block-popover/use-popover-scroll.mjs.map +2 -2
  799. package/build-module/components/block-preview/async.mjs.map +2 -2
  800. package/build-module/components/block-preview/auto.mjs.map +2 -2
  801. package/build-module/components/block-preview/index.mjs.map +2 -2
  802. package/build-module/components/block-quick-navigation/index.mjs.map +2 -2
  803. package/build-module/components/block-removal-warning-modal/index.mjs.map +2 -2
  804. package/build-module/components/block-rename/modal.mjs.map +2 -2
  805. package/build-module/components/block-rename/rename-control.mjs.map +2 -2
  806. package/build-module/components/block-rename/use-block-rename.mjs.map +2 -2
  807. package/build-module/components/block-selection-clearer/index.mjs.map +2 -2
  808. package/build-module/components/block-settings-menu/block-html-convert-button.mjs.map +2 -2
  809. package/build-module/components/block-settings-menu/block-mode-toggle.mjs.map +2 -2
  810. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.mjs.map +2 -2
  811. package/build-module/components/block-settings-menu/block-settings-dropdown.mjs +1 -1
  812. package/build-module/components/block-settings-menu/block-settings-dropdown.mjs.map +2 -2
  813. package/build-module/components/block-settings-menu/block-settings-menu-first-item.mjs.map +2 -2
  814. package/build-module/components/block-settings-menu/index.mjs.map +2 -2
  815. package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
  816. package/build-module/components/block-styles/index.mjs.map +2 -2
  817. package/build-module/components/block-styles/menu-items.mjs.map +2 -2
  818. package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
  819. package/build-module/components/block-styles/utils.mjs.map +2 -2
  820. package/build-module/components/block-switcher/block-styles-menu.mjs.map +2 -2
  821. package/build-module/components/block-switcher/block-transformations-menu.mjs.map +2 -2
  822. package/build-module/components/block-switcher/block-variation-transformations.mjs.map +2 -2
  823. package/build-module/components/block-switcher/index.mjs.map +2 -2
  824. package/build-module/components/block-switcher/pattern-transformations-menu.mjs.map +2 -2
  825. package/build-module/components/block-switcher/preview-block-popover.mjs.map +2 -2
  826. package/build-module/components/block-switcher/use-transformed-patterns.mjs.map +2 -2
  827. package/build-module/components/block-switcher/utils.mjs.map +2 -2
  828. package/build-module/components/block-title/index.mjs.map +2 -2
  829. package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
  830. package/build-module/components/block-toolbar/block-styles-dropdown.mjs.map +2 -2
  831. package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
  832. package/build-module/components/block-toolbar/block-toolbar-last-item.mjs.map +2 -2
  833. package/build-module/components/block-toolbar/change-design.mjs.map +2 -2
  834. package/build-module/components/block-toolbar/edit-section-button.mjs.map +2 -2
  835. package/build-module/components/block-toolbar/index.mjs +43 -24
  836. package/build-module/components/block-toolbar/index.mjs.map +2 -2
  837. package/build-module/components/block-toolbar/pattern-overrides-dropdown.mjs.map +2 -2
  838. package/build-module/components/block-toolbar/switch-section-style.mjs +4 -2
  839. package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
  840. package/build-module/components/block-toolbar/use-has-block-toolbar.mjs.map +2 -2
  841. package/build-module/components/block-toolbar/utils.mjs.map +2 -2
  842. package/build-module/components/block-tools/block-toolbar-popover.mjs.map +2 -2
  843. package/build-module/components/block-tools/empty-block-inserter.mjs +2 -7
  844. package/build-module/components/block-tools/empty-block-inserter.mjs.map +2 -2
  845. package/build-module/components/block-tools/index.mjs +10 -11
  846. package/build-module/components/block-tools/index.mjs.map +2 -2
  847. package/build-module/components/block-tools/insertion-point.mjs.map +2 -2
  848. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs.map +2 -2
  849. package/build-module/components/block-tools/use-selected-block-tool-props.mjs.map +2 -2
  850. package/build-module/components/block-tools/use-show-block-tools.mjs.map +2 -2
  851. package/build-module/components/block-tools/zoom-out-mode-inserter-button.mjs.map +2 -2
  852. package/build-module/components/block-tools/zoom-out-mode-inserters.mjs.map +2 -2
  853. package/build-module/components/block-types-list/index.mjs.map +2 -2
  854. package/build-module/components/block-variation-picker/index.mjs.map +2 -2
  855. package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
  856. package/build-module/components/block-vertical-alignment-control/index.mjs.map +2 -2
  857. package/build-module/components/block-vertical-alignment-control/ui.mjs +4 -6
  858. package/build-module/components/block-vertical-alignment-control/ui.mjs.map +2 -2
  859. package/build-module/components/block-visibility/constants.mjs +1 -1
  860. package/build-module/components/block-visibility/constants.mjs.map +3 -3
  861. package/build-module/components/block-visibility/modal.mjs +22 -10
  862. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  863. package/build-module/components/block-visibility/use-block-visibility.mjs +29 -21
  864. package/build-module/components/block-visibility/use-block-visibility.mjs.map +3 -3
  865. package/build-module/components/block-visibility/utils.mjs +18 -3
  866. package/build-module/components/block-visibility/utils.mjs.map +2 -2
  867. package/build-module/components/block-visibility/viewport-menu-item.mjs +7 -1
  868. package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
  869. package/build-module/components/block-visibility/viewport-toolbar.mjs +5 -0
  870. package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
  871. package/build-module/components/block-visibility/viewport-visibility-info.mjs +5 -1
  872. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
  873. package/build-module/components/border-radius-control/constants.mjs.map +2 -2
  874. package/build-module/components/border-radius-control/index.mjs.map +2 -2
  875. package/build-module/components/border-radius-control/linked-button.mjs.map +2 -2
  876. package/build-module/components/border-radius-control/utils.mjs +11 -53
  877. package/build-module/components/border-radius-control/utils.mjs.map +2 -2
  878. package/build-module/components/button-block-appender/index.mjs.map +2 -2
  879. package/build-module/components/child-layout-control/index.mjs +0 -4
  880. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  881. package/build-module/components/collab/note-icon-slot.mjs.map +2 -2
  882. package/build-module/components/collab/note-icon-toolbar-slot.mjs.map +2 -2
  883. package/build-module/components/color-palette/control.mjs.map +2 -2
  884. package/build-module/components/color-palette/index.mjs.map +2 -2
  885. package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
  886. package/build-module/components/color-style-selector/index.mjs.map +2 -2
  887. package/build-module/components/colors/utils.mjs +1 -3
  888. package/build-module/components/colors/utils.mjs.map +2 -2
  889. package/build-module/components/colors/with-colors.mjs +1 -3
  890. package/build-module/components/colors/with-colors.mjs.map +2 -2
  891. package/build-module/components/colors-gradients/control.mjs +5 -3
  892. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  893. package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
  894. package/build-module/components/colors-gradients/panel-color-gradient-settings.mjs +5 -5
  895. package/build-module/components/colors-gradients/panel-color-gradient-settings.mjs.map +2 -2
  896. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.mjs.map +2 -2
  897. package/build-module/components/contrast-checker/index.mjs.map +2 -2
  898. package/build-module/components/convert-to-group-buttons/index.mjs +2 -5
  899. package/build-module/components/convert-to-group-buttons/index.mjs.map +2 -2
  900. package/build-module/components/convert-to-group-buttons/toolbar.mjs +3 -5
  901. package/build-module/components/convert-to-group-buttons/toolbar.mjs.map +2 -2
  902. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.mjs.map +2 -2
  903. package/build-module/components/copy-handler/index.mjs.map +2 -2
  904. package/build-module/components/date-format-picker/index.mjs.map +2 -2
  905. package/build-module/components/default-block-appender/index.mjs.map +2 -2
  906. package/build-module/components/dimension-control/index.mjs +30 -20
  907. package/build-module/components/dimension-control/index.mjs.map +2 -2
  908. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +10 -6
  909. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
  910. package/build-module/components/dimensions-tool/index.mjs.map +2 -2
  911. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  912. package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
  913. package/build-module/components/duotone-control/index.mjs.map +2 -2
  914. package/build-module/components/editable-text/index.mjs.map +2 -2
  915. package/build-module/components/editor-styles/index.mjs +9 -1
  916. package/build-module/components/editor-styles/index.mjs.map +2 -2
  917. package/build-module/components/fit-text-size-warning/index.mjs.map +2 -2
  918. package/build-module/components/floating-toolbar/nav-up-icon.mjs.map +2 -2
  919. package/build-module/components/font-appearance-control/index.mjs.map +2 -2
  920. package/build-module/components/font-family/index.mjs.map +2 -2
  921. package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
  922. package/build-module/components/font-sizes/utils.mjs +1 -3
  923. package/build-module/components/font-sizes/utils.mjs.map +2 -2
  924. package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
  925. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  926. package/build-module/components/global-styles/background-panel.mjs +71 -29
  927. package/build-module/components/global-styles/background-panel.mjs.map +2 -2
  928. package/build-module/components/global-styles/border-panel.mjs +157 -56
  929. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  930. package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +51 -15
  931. package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
  932. package/build-module/components/global-styles/color-panel.mjs +63 -17
  933. package/build-module/components/global-styles/color-panel.mjs.map +2 -2
  934. package/build-module/components/global-styles/dimensions-panel.mjs +248 -66
  935. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  936. package/build-module/components/global-styles/filters-panel.mjs +64 -21
  937. package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
  938. package/build-module/components/global-styles/hooks.mjs +4 -1
  939. package/build-module/components/global-styles/hooks.mjs.map +2 -2
  940. package/build-module/components/global-styles/image-settings-panel.mjs.map +2 -2
  941. package/build-module/components/global-styles/inheritance/index.mjs +108 -0
  942. package/build-module/components/global-styles/inheritance/index.mjs.map +7 -0
  943. package/build-module/components/global-styles/inherited-value-context.mjs +141 -0
  944. package/build-module/components/global-styles/inherited-value-context.mjs.map +7 -0
  945. package/build-module/components/global-styles/shadow-panel-components.mjs +38 -20
  946. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  947. package/build-module/components/global-styles/state-control-badges.mjs +41 -5
  948. package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
  949. package/build-module/components/global-styles/state-control.mjs +1 -1
  950. package/build-module/components/global-styles/state-control.mjs.map +2 -2
  951. package/build-module/components/global-styles/typography-panel.mjs +276 -80
  952. package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
  953. package/build-module/components/global-styles/typography-utils.mjs.map +2 -2
  954. package/build-module/components/global-styles/utils.mjs.map +2 -2
  955. package/build-module/components/gradients/use-gradient.mjs.map +2 -2
  956. package/build-module/components/gradients/with-gradient.mjs.map +2 -2
  957. package/build-module/components/grid/grid-item-movers.mjs.map +2 -2
  958. package/build-module/components/grid/grid-item-resizer.mjs.map +2 -2
  959. package/build-module/components/grid/grid-visualizer.mjs.map +2 -2
  960. package/build-module/components/grid/use-get-number-of-blocks-before-cell.mjs.map +2 -2
  961. package/build-module/components/grid/use-grid-layout-sync.mjs.map +2 -2
  962. package/build-module/components/height-control/index.mjs.map +2 -2
  963. package/build-module/components/html-element-control/index.mjs.map +2 -2
  964. package/build-module/components/html-element-control/messages.mjs.map +2 -2
  965. package/build-module/components/iframe/index.mjs +19 -24
  966. package/build-module/components/iframe/index.mjs.map +2 -2
  967. package/build-module/components/iframe/use-scale-canvas.mjs +21 -7
  968. package/build-module/components/iframe/use-scale-canvas.mjs.map +2 -2
  969. package/build-module/components/image-editor/aspect-ratio-dropdown.mjs.map +2 -2
  970. package/build-module/components/image-editor/context.mjs.map +2 -2
  971. package/build-module/components/image-editor/cropper.mjs.map +2 -2
  972. package/build-module/components/image-editor/form-controls.mjs.map +2 -2
  973. package/build-module/components/image-editor/index.mjs.map +2 -2
  974. package/build-module/components/image-editor/rotation-button.mjs.map +2 -2
  975. package/build-module/components/image-editor/use-save-image.mjs.map +2 -2
  976. package/build-module/components/image-editor/use-transform-image.mjs.map +2 -2
  977. package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
  978. package/build-module/components/image-size-control/index.mjs +2 -4
  979. package/build-module/components/image-size-control/index.mjs.map +2 -2
  980. package/build-module/components/image-size-control/use-dimension-handler.mjs.map +2 -2
  981. package/build-module/components/inner-blocks/button-block-appender.mjs.map +2 -2
  982. package/build-module/components/inner-blocks/default-block-appender.mjs.map +2 -2
  983. package/build-module/components/inner-blocks/index.mjs.map +2 -2
  984. package/build-module/components/inner-blocks/use-block-context.mjs.map +2 -2
  985. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs +35 -8
  986. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs.map +2 -2
  987. package/build-module/components/inner-blocks/use-nested-settings-update.mjs.map +2 -2
  988. package/build-module/components/inner-content/index.mjs.map +2 -2
  989. package/build-module/components/inserter/block-patterns-explorer/index.mjs.map +2 -2
  990. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.mjs.map +2 -2
  991. package/build-module/components/inserter/block-patterns-explorer/pattern-list.mjs.map +2 -2
  992. package/build-module/components/inserter/block-patterns-tab/index.mjs.map +2 -2
  993. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.mjs.map +2 -2
  994. package/build-module/components/inserter/block-patterns-tab/patterns-filter.mjs.map +2 -2
  995. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.mjs.map +2 -2
  996. package/build-module/components/inserter/block-patterns-tab/utils.mjs.map +2 -2
  997. package/build-module/components/inserter/block-types-tab.mjs.map +2 -2
  998. package/build-module/components/inserter/category-tabs/index.mjs.map +2 -2
  999. package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
  1000. package/build-module/components/inserter/hooks/use-insertion-point.mjs.map +2 -2
  1001. package/build-module/components/inserter/hooks/use-patterns-paging.mjs.map +2 -2
  1002. package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
  1003. package/build-module/components/inserter/index.mjs +4 -13
  1004. package/build-module/components/inserter/index.mjs.map +2 -2
  1005. package/build-module/components/inserter/library.mjs.map +2 -2
  1006. package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
  1007. package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
  1008. package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
  1009. package/build-module/components/inserter/media-tab/media-panel.mjs +86 -18
  1010. package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
  1011. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  1012. package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
  1013. package/build-module/components/inserter/media-tab/utils.mjs.map +2 -2
  1014. package/build-module/components/inserter/menu.mjs.map +2 -2
  1015. package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
  1016. package/build-module/components/inserter/no-results.mjs.map +2 -2
  1017. package/build-module/components/inserter/panel.mjs.map +2 -2
  1018. package/build-module/components/inserter/preview-panel.mjs.map +2 -2
  1019. package/build-module/components/inserter/quick-inserter.mjs.map +2 -2
  1020. package/build-module/components/inserter/search-items.mjs.map +2 -2
  1021. package/build-module/components/inserter/search-results.mjs.map +2 -2
  1022. package/build-module/components/inserter/tips.mjs.map +2 -2
  1023. package/build-module/components/inserter-button/sparkles.mjs.map +2 -2
  1024. package/build-module/components/inserter-draggable-blocks/index.mjs.map +2 -2
  1025. package/build-module/components/inserter-list-item/index.mjs.map +2 -2
  1026. package/build-module/components/inserter-listbox/context.mjs.map +2 -2
  1027. package/build-module/components/inserter-listbox/group.mjs.map +2 -2
  1028. package/build-module/components/inserter-listbox/index.mjs.map +2 -2
  1029. package/build-module/components/inserter-listbox/item.mjs.map +2 -2
  1030. package/build-module/components/inserter-listbox/row.mjs.map +2 -2
  1031. package/build-module/components/inserter-menu-extension/index.mjs.map +2 -2
  1032. package/build-module/components/inspector-controls/block-support-slot-container.mjs.map +2 -2
  1033. package/build-module/components/inspector-controls/block-support-tools-panel.mjs.map +2 -2
  1034. package/build-module/components/inspector-controls/fill.mjs +15 -17
  1035. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  1036. package/build-module/components/inspector-controls/groups.mjs.map +2 -2
  1037. package/build-module/components/inspector-controls/index.mjs.map +2 -2
  1038. package/build-module/components/inspector-controls/last-item.mjs.map +2 -2
  1039. package/build-module/components/inspector-controls/list-view-content-popover.mjs.map +2 -2
  1040. package/build-module/components/inspector-controls/slot.mjs.map +2 -2
  1041. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.mjs.map +2 -2
  1042. package/build-module/components/inspector-controls-tabs/content-tab.mjs.map +2 -2
  1043. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  1044. package/build-module/components/inspector-controls-tabs/position-controls-panel.mjs.map +2 -2
  1045. package/build-module/components/inspector-controls-tabs/settings-tab.mjs.map +2 -2
  1046. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +6 -1
  1047. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  1048. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
  1049. package/build-module/components/inspector-controls-tabs/utils.mjs.map +2 -2
  1050. package/build-module/components/inspector-popover-header/index.mjs.map +2 -2
  1051. package/build-module/components/justify-content-control/index.mjs.map +2 -2
  1052. package/build-module/components/justify-content-control/ui.mjs.map +2 -2
  1053. package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
  1054. package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
  1055. package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
  1056. package/build-module/components/line-height-control/index.mjs +1 -2
  1057. package/build-module/components/line-height-control/index.mjs.map +2 -2
  1058. package/build-module/components/link-control/constants.mjs.map +2 -2
  1059. package/build-module/components/link-control/index.mjs +4 -2
  1060. package/build-module/components/link-control/index.mjs.map +2 -2
  1061. package/build-module/components/link-control/is-url-like.mjs.map +2 -2
  1062. package/build-module/components/link-control/link-preview.mjs.map +2 -2
  1063. package/build-module/components/link-control/normalize-url.mjs.map +2 -2
  1064. package/build-module/components/link-control/search-create-button.mjs.map +2 -2
  1065. package/build-module/components/link-control/search-input.mjs.map +2 -2
  1066. package/build-module/components/link-control/search-item.mjs.map +2 -2
  1067. package/build-module/components/link-control/search-results.mjs +1 -1
  1068. package/build-module/components/link-control/search-results.mjs.map +2 -2
  1069. package/build-module/components/link-control/settings-drawer.mjs.map +2 -2
  1070. package/build-module/components/link-control/settings.mjs.map +2 -2
  1071. package/build-module/components/link-control/use-create-page.mjs.map +2 -2
  1072. package/build-module/components/link-control/use-internal-value.mjs.map +2 -2
  1073. package/build-module/components/link-control/use-rich-url-data.mjs +1 -1
  1074. package/build-module/components/link-control/use-rich-url-data.mjs.map +2 -2
  1075. package/build-module/components/link-control/use-search-handler.mjs.map +2 -2
  1076. package/build-module/components/link-control/viewer-slot.mjs.map +2 -2
  1077. package/build-module/components/link-picker/link-picker.mjs.map +2 -2
  1078. package/build-module/components/link-picker/link-preview.mjs.map +2 -2
  1079. package/build-module/components/list-view/appender.mjs +7 -4
  1080. package/build-module/components/list-view/appender.mjs.map +2 -2
  1081. package/build-module/components/list-view/aria-referenced-text.mjs +2 -9
  1082. package/build-module/components/list-view/aria-referenced-text.mjs.map +2 -2
  1083. package/build-module/components/list-view/block-contents.mjs +18 -21
  1084. package/build-module/components/list-view/block-contents.mjs.map +2 -2
  1085. package/build-module/components/list-view/block-select-button.mjs +49 -26
  1086. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  1087. package/build-module/components/list-view/block.mjs +50 -48
  1088. package/build-module/components/list-view/block.mjs.map +2 -2
  1089. package/build-module/components/list-view/branch.mjs +100 -80
  1090. package/build-module/components/list-view/branch.mjs.map +2 -2
  1091. package/build-module/components/list-view/context.mjs +11 -1
  1092. package/build-module/components/list-view/context.mjs.map +2 -2
  1093. package/build-module/components/list-view/drop-indicator.mjs +6 -6
  1094. package/build-module/components/list-view/drop-indicator.mjs.map +2 -2
  1095. package/build-module/components/list-view/expander.mjs.map +2 -2
  1096. package/build-module/components/list-view/index.mjs +87 -95
  1097. package/build-module/components/list-view/index.mjs.map +2 -2
  1098. package/build-module/components/list-view/leaf.mjs.map +2 -2
  1099. package/build-module/components/list-view/use-block-selection.mjs.map +2 -2
  1100. package/build-module/components/list-view/use-clipboard-handler.mjs.map +2 -2
  1101. package/build-module/components/list-view/use-list-view-block-indexes.mjs.map +2 -2
  1102. package/build-module/components/list-view/use-list-view-client-ids.mjs.map +2 -2
  1103. package/build-module/components/list-view/use-list-view-collapse-items.mjs +3 -4
  1104. package/build-module/components/list-view/use-list-view-collapse-items.mjs.map +2 -2
  1105. package/build-module/components/list-view/use-list-view-drop-zone.mjs +7 -13
  1106. package/build-module/components/list-view/use-list-view-drop-zone.mjs.map +2 -2
  1107. package/build-module/components/list-view/use-list-view-expand-selected-item.mjs +3 -3
  1108. package/build-module/components/list-view/use-list-view-expand-selected-item.mjs.map +2 -2
  1109. package/build-module/components/list-view/use-list-view-images.mjs +4 -3
  1110. package/build-module/components/list-view/use-list-view-images.mjs.map +2 -2
  1111. package/build-module/components/list-view/use-list-view-scroll-into-view.mjs.map +2 -2
  1112. package/build-module/components/list-view/utils.mjs +5 -3
  1113. package/build-module/components/list-view/utils.mjs.map +2 -2
  1114. package/build-module/components/media-placeholder/index.mjs +0 -1
  1115. package/build-module/components/media-placeholder/index.mjs.map +2 -2
  1116. package/build-module/components/media-replace-flow/index.mjs.map +2 -2
  1117. package/build-module/components/media-upload/check.mjs.map +2 -2
  1118. package/build-module/components/media-upload/index.mjs.map +2 -2
  1119. package/build-module/components/multi-selection-inspector/index.mjs +33 -12
  1120. package/build-module/components/multi-selection-inspector/index.mjs.map +2 -2
  1121. package/build-module/components/navigable-toolbar/index.mjs +30 -18
  1122. package/build-module/components/navigable-toolbar/index.mjs.map +2 -2
  1123. package/build-module/components/observe-typing/index.mjs.map +2 -2
  1124. package/build-module/components/panel-color-settings/index.mjs.map +2 -2
  1125. package/build-module/components/plain-text/index.mjs.map +2 -2
  1126. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  1127. package/build-module/components/preset-input-control/index.mjs +2 -1
  1128. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  1129. package/build-module/components/preview-options/index.mjs.map +2 -2
  1130. package/build-module/components/provider/block-refs-provider.mjs +8 -2
  1131. package/build-module/components/provider/block-refs-provider.mjs.map +2 -2
  1132. package/build-module/components/provider/index.mjs +1 -1
  1133. package/build-module/components/provider/index.mjs.map +2 -2
  1134. package/build-module/components/provider/selection-context.mjs.map +2 -2
  1135. package/build-module/components/provider/use-block-sync.mjs +18 -6
  1136. package/build-module/components/provider/use-block-sync.mjs.map +2 -2
  1137. package/build-module/components/provider/use-media-upload-settings.mjs +3 -1
  1138. package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
  1139. package/build-module/components/provider/with-registry-provider.mjs.map +2 -2
  1140. package/build-module/components/publish-date-time-picker/index.mjs.map +2 -2
  1141. package/build-module/components/recursion-provider/index.mjs.map +2 -2
  1142. package/build-module/components/resizable-box-popover/index.mjs.map +2 -2
  1143. package/build-module/components/resolution-tool/index.mjs.map +2 -2
  1144. package/build-module/components/responsive-block-control/index.mjs.map +2 -2
  1145. package/build-module/components/responsive-block-control/label.mjs.map +2 -2
  1146. package/build-module/components/rich-text/content.mjs.map +2 -2
  1147. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +8 -5
  1148. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
  1149. package/build-module/components/rich-text/event-listeners/delete.mjs +7 -4
  1150. package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
  1151. package/build-module/components/rich-text/event-listeners/enter.mjs +8 -3
  1152. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  1153. package/build-module/components/rich-text/event-listeners/firefox-compat.mjs.map +2 -2
  1154. package/build-module/components/rich-text/event-listeners/index.mjs.map +2 -2
  1155. package/build-module/components/rich-text/event-listeners/input-events.mjs +3 -3
  1156. package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
  1157. package/build-module/components/rich-text/event-listeners/input-rules.mjs +21 -15
  1158. package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
  1159. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +3 -3
  1160. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
  1161. package/build-module/components/rich-text/event-listeners/paste-handler.mjs +16 -3
  1162. package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
  1163. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +3 -3
  1164. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
  1165. package/build-module/components/rich-text/event-listeners/shortcuts.mjs +3 -3
  1166. package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
  1167. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +3 -3
  1168. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
  1169. package/build-module/components/rich-text/format-edit.mjs.map +2 -2
  1170. package/build-module/components/rich-text/format-toolbar/index.mjs.map +2 -2
  1171. package/build-module/components/rich-text/format-toolbar-container.mjs.map +2 -2
  1172. package/build-module/components/rich-text/get-rich-text-values.mjs.map +2 -2
  1173. package/build-module/components/rich-text/index.mjs +79 -14
  1174. package/build-module/components/rich-text/index.mjs.map +2 -2
  1175. package/build-module/components/rich-text/multiline.mjs.map +2 -2
  1176. package/build-module/components/rich-text/prevent-event-discovery.mjs.map +2 -2
  1177. package/build-module/components/rich-text/toolbar-button.mjs.map +2 -2
  1178. package/build-module/components/rich-text/use-mark-persistent.mjs.map +2 -2
  1179. package/build-module/components/rich-text/utils.mjs.map +2 -2
  1180. package/build-module/components/rich-text/with-deprecations.mjs.map +2 -2
  1181. package/build-module/components/selection-scroll-into-view/index.mjs.map +2 -2
  1182. package/build-module/components/skip-to-selected-block/index.mjs.map +2 -2
  1183. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.mjs.map +2 -2
  1184. package/build-module/components/spacing-sizes-control/index.mjs +2 -2
  1185. package/build-module/components/spacing-sizes-control/index.mjs.map +2 -2
  1186. package/build-module/components/spacing-sizes-control/input-controls/axial.mjs.map +2 -2
  1187. package/build-module/components/spacing-sizes-control/input-controls/separated.mjs.map +2 -2
  1188. package/build-module/components/spacing-sizes-control/input-controls/single.mjs.map +2 -2
  1189. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.mjs.map +2 -2
  1190. package/build-module/components/spacing-sizes-control/linked-button.mjs.map +2 -2
  1191. package/build-module/components/spacing-sizes-control/utils.mjs +6 -18
  1192. package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
  1193. package/build-module/components/tabbed-sidebar/index.mjs.map +2 -2
  1194. package/build-module/components/text-alignment-control/index.mjs.map +2 -2
  1195. package/build-module/components/text-decoration-control/index.mjs.map +2 -2
  1196. package/build-module/components/text-indent-control/index.mjs +8 -2
  1197. package/build-module/components/text-indent-control/index.mjs.map +2 -2
  1198. package/build-module/components/text-transform-control/index.mjs.map +2 -2
  1199. package/build-module/components/tool-selector/index.mjs.map +2 -2
  1200. package/build-module/components/typewriter/index.mjs +129 -136
  1201. package/build-module/components/typewriter/index.mjs.map +2 -2
  1202. package/build-module/components/unit-control/index.mjs.map +2 -2
  1203. package/build-module/components/url-input/button.mjs.map +2 -2
  1204. package/build-module/components/url-input/index.mjs +317 -382
  1205. package/build-module/components/url-input/index.mjs.map +2 -2
  1206. package/build-module/components/url-popover/image-url-input-ui.mjs +2 -2
  1207. package/build-module/components/url-popover/image-url-input-ui.mjs.map +2 -2
  1208. package/build-module/components/url-popover/index.mjs.map +2 -2
  1209. package/build-module/components/url-popover/link-editor.mjs.map +2 -2
  1210. package/build-module/components/url-popover/link-viewer-url.mjs.map +2 -2
  1211. package/build-module/components/url-popover/link-viewer.mjs.map +2 -2
  1212. package/build-module/components/use-block-commands/index.mjs +23 -18
  1213. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  1214. package/build-module/components/use-block-display-information/index.mjs +2 -1
  1215. package/build-module/components/use-block-display-information/index.mjs.map +2 -2
  1216. package/build-module/components/use-block-drop-zone/index.mjs.map +2 -2
  1217. package/build-module/components/use-flash-editable-blocks/index.mjs.map +2 -2
  1218. package/build-module/components/use-list-view-panel-state/index.mjs.map +2 -2
  1219. package/build-module/components/use-moving-animation/index.mjs +2 -2
  1220. package/build-module/components/use-moving-animation/index.mjs.map +2 -2
  1221. package/build-module/components/use-on-block-drop/index.mjs +2 -2
  1222. package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
  1223. package/build-module/components/use-paste-styles/index.mjs.map +2 -2
  1224. package/build-module/components/use-resize-canvas/index.mjs.map +2 -2
  1225. package/build-module/components/use-settings/index.mjs.map +2 -2
  1226. package/build-module/components/warning/index.mjs.map +2 -2
  1227. package/build-module/components/writing-flow/index.mjs +14 -1
  1228. package/build-module/components/writing-flow/index.mjs.map +2 -2
  1229. package/build-module/components/writing-flow/use-arrow-nav.mjs +53 -8
  1230. package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
  1231. package/build-module/components/writing-flow/use-click-selection.mjs +29 -3
  1232. package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
  1233. package/build-module/components/writing-flow/use-clipboard-handler.mjs +36 -7
  1234. package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
  1235. package/build-module/components/writing-flow/use-drag-selection.mjs +1 -6
  1236. package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
  1237. package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs +154 -0
  1238. package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs.map +7 -0
  1239. package/build-module/components/writing-flow/use-editable-root.mjs +54 -0
  1240. package/build-module/components/writing-flow/use-editable-root.mjs.map +7 -0
  1241. package/build-module/components/writing-flow/use-home-end.mjs +43 -0
  1242. package/build-module/components/writing-flow/use-home-end.mjs.map +7 -0
  1243. package/build-module/components/writing-flow/use-input.mjs +15 -5
  1244. package/build-module/components/writing-flow/use-input.mjs.map +2 -2
  1245. package/build-module/components/writing-flow/use-multi-selection.mjs +2 -2
  1246. package/build-module/components/writing-flow/use-multi-selection.mjs.map +2 -2
  1247. package/build-module/components/writing-flow/use-preview-mode-nav.mjs.map +2 -2
  1248. package/build-module/components/writing-flow/use-select-all.mjs +19 -3
  1249. package/build-module/components/writing-flow/use-select-all.mjs.map +2 -2
  1250. package/build-module/components/writing-flow/use-selection-observer.mjs +134 -21
  1251. package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
  1252. package/build-module/components/writing-flow/use-tab-nav.mjs +3 -1
  1253. package/build-module/components/writing-flow/use-tab-nav.mjs.map +2 -2
  1254. package/build-module/components/writing-flow/utils.mjs +26 -1
  1255. package/build-module/components/writing-flow/utils.mjs.map +2 -2
  1256. package/build-module/components/writing-mode-control/index.mjs.map +2 -2
  1257. package/build-module/hooks/align.mjs.map +2 -2
  1258. package/build-module/hooks/allowed-blocks.mjs.map +2 -2
  1259. package/build-module/hooks/anchor.mjs.map +2 -2
  1260. package/build-module/hooks/aria-label.mjs.map +2 -2
  1261. package/build-module/hooks/auto-inspector-controls.mjs.map +2 -2
  1262. package/build-module/hooks/background.mjs +13 -12
  1263. package/build-module/hooks/background.mjs.map +2 -2
  1264. package/build-module/hooks/block-bindings.mjs.map +2 -2
  1265. package/build-module/hooks/block-fields/fields-dropdown-menu.mjs.map +2 -2
  1266. package/build-module/hooks/block-fields/index.mjs.map +2 -2
  1267. package/build-module/hooks/block-fields/link/index.mjs.map +2 -2
  1268. package/build-module/hooks/block-fields/media/index.mjs.map +2 -2
  1269. package/build-module/hooks/block-fields/rich-text/index.mjs +2 -6
  1270. package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
  1271. package/build-module/hooks/block-fields/use-inspector-popover-placement.mjs.map +2 -2
  1272. package/build-module/hooks/block-hooks.mjs.map +2 -2
  1273. package/build-module/hooks/block-renaming.mjs.map +2 -2
  1274. package/build-module/hooks/block-style-state.mjs.map +2 -2
  1275. package/build-module/hooks/block-style-variation.mjs +8 -44
  1276. package/build-module/hooks/block-style-variation.mjs.map +2 -2
  1277. package/build-module/hooks/border.mjs +19 -4
  1278. package/build-module/hooks/border.mjs.map +2 -2
  1279. package/build-module/hooks/color.mjs.map +2 -2
  1280. package/build-module/hooks/compat.mjs.map +2 -2
  1281. package/build-module/hooks/contrast-checker.mjs.map +2 -2
  1282. package/build-module/hooks/custom-class-name.mjs.map +2 -2
  1283. package/build-module/hooks/custom-css.mjs +7 -3
  1284. package/build-module/hooks/custom-css.mjs.map +2 -2
  1285. package/build-module/hooks/dimensions.mjs +15 -4
  1286. package/build-module/hooks/dimensions.mjs.map +2 -2
  1287. package/build-module/hooks/duotone.mjs +20 -9
  1288. package/build-module/hooks/duotone.mjs.map +2 -2
  1289. package/build-module/hooks/elements.mjs +15 -5
  1290. package/build-module/hooks/elements.mjs.map +2 -2
  1291. package/build-module/hooks/fit-text.mjs.map +2 -2
  1292. package/build-module/hooks/font-family.mjs +1 -3
  1293. package/build-module/hooks/font-family.mjs.map +2 -2
  1294. package/build-module/hooks/font-size.mjs.map +2 -2
  1295. package/build-module/hooks/gap.mjs.map +2 -2
  1296. package/build-module/hooks/generated-class-name.mjs.map +2 -2
  1297. package/build-module/hooks/grid-visualizer.mjs +5 -3
  1298. package/build-module/hooks/grid-visualizer.mjs.map +2 -2
  1299. package/build-module/hooks/index.mjs.map +2 -2
  1300. package/build-module/hooks/layout-child.mjs +22 -12
  1301. package/build-module/hooks/layout-child.mjs.map +2 -2
  1302. package/build-module/hooks/layout.mjs +30 -16
  1303. package/build-module/hooks/layout.mjs.map +2 -2
  1304. package/build-module/hooks/line-height.mjs +1 -2
  1305. package/build-module/hooks/line-height.mjs.map +2 -2
  1306. package/build-module/hooks/list-view.mjs.map +2 -2
  1307. package/build-module/hooks/lock.mjs.map +2 -2
  1308. package/build-module/hooks/metadata.mjs.map +2 -2
  1309. package/build-module/hooks/position.mjs.map +2 -2
  1310. package/build-module/hooks/settings.mjs.map +2 -2
  1311. package/build-module/hooks/spacing-visualizer.mjs.map +2 -2
  1312. package/build-module/hooks/state-utils.mjs.map +2 -2
  1313. package/build-module/hooks/states.mjs +27 -7
  1314. package/build-module/hooks/states.mjs.map +2 -2
  1315. package/build-module/hooks/style.mjs +40 -11
  1316. package/build-module/hooks/style.mjs.map +2 -2
  1317. package/build-module/hooks/supports.mjs.map +2 -2
  1318. package/build-module/hooks/text-align.mjs +39 -10
  1319. package/build-module/hooks/text-align.mjs.map +2 -2
  1320. package/build-module/hooks/typography.mjs +14 -5
  1321. package/build-module/hooks/typography.mjs.map +2 -2
  1322. package/build-module/hooks/use-border-props.mjs.map +2 -2
  1323. package/build-module/hooks/use-cached-truthy.mjs.map +2 -2
  1324. package/build-module/hooks/use-color-props.mjs.map +2 -2
  1325. package/build-module/hooks/use-content-only-section-edit.mjs.map +2 -2
  1326. package/build-module/hooks/use-dimensions-props.mjs.map +2 -2
  1327. package/build-module/hooks/use-shadow-props.mjs.map +2 -2
  1328. package/build-module/hooks/use-spacing-props.mjs.map +2 -2
  1329. package/build-module/hooks/use-typography-props.mjs +1 -3
  1330. package/build-module/hooks/use-typography-props.mjs.map +2 -2
  1331. package/build-module/hooks/use-zoom-out.mjs.map +2 -2
  1332. package/build-module/hooks/utils.mjs.map +2 -2
  1333. package/build-module/index.mjs.map +2 -2
  1334. package/build-module/layouts/constrained.mjs +14 -6
  1335. package/build-module/layouts/constrained.mjs.map +2 -2
  1336. package/build-module/layouts/flex.mjs +27 -19
  1337. package/build-module/layouts/flex.mjs.map +2 -2
  1338. package/build-module/layouts/flow.mjs.map +2 -2
  1339. package/build-module/layouts/grid.mjs +0 -2
  1340. package/build-module/layouts/grid.mjs.map +2 -2
  1341. package/build-module/layouts/index.mjs.map +2 -2
  1342. package/build-module/layouts/utils.mjs.map +2 -2
  1343. package/build-module/lock-unlock.mjs.map +2 -2
  1344. package/build-module/private-apis.mjs +7 -3
  1345. package/build-module/private-apis.mjs.map +2 -2
  1346. package/build-module/store/actions.mjs +116 -43
  1347. package/build-module/store/actions.mjs.map +3 -3
  1348. package/build-module/store/defaults.mjs +2 -0
  1349. package/build-module/store/defaults.mjs.map +2 -2
  1350. package/build-module/store/get-block-settings.mjs.map +2 -2
  1351. package/build-module/store/index.mjs.map +2 -2
  1352. package/build-module/store/private-actions.mjs +19 -2
  1353. package/build-module/store/private-actions.mjs.map +2 -2
  1354. package/build-module/store/private-selectors.mjs +69 -13
  1355. package/build-module/store/private-selectors.mjs.map +2 -2
  1356. package/build-module/store/reducer.mjs +9 -7
  1357. package/build-module/store/reducer.mjs.map +2 -2
  1358. package/build-module/store/selectors.mjs +44 -8
  1359. package/build-module/store/selectors.mjs.map +2 -2
  1360. package/build-module/store/utils.mjs.map +2 -2
  1361. package/build-module/utils/block-bindings.mjs +28 -0
  1362. package/build-module/utils/block-bindings.mjs.map +2 -2
  1363. package/build-module/utils/dom.mjs +13 -0
  1364. package/build-module/utils/dom.mjs.map +2 -2
  1365. package/build-module/utils/fit-text-frontend.mjs.map +2 -2
  1366. package/build-module/utils/format-font-style.mjs.map +2 -2
  1367. package/build-module/utils/format-font-weight.mjs.map +2 -2
  1368. package/build-module/utils/get-font-styles-and-weights.mjs.map +2 -2
  1369. package/build-module/utils/group-blocks.mjs +21 -0
  1370. package/build-module/utils/group-blocks.mjs.map +7 -0
  1371. package/build-module/utils/native-undo.mjs +29 -0
  1372. package/build-module/utils/native-undo.mjs.map +7 -0
  1373. package/build-module/utils/pasting.mjs.map +2 -2
  1374. package/build-module/utils/selection.mjs.map +2 -2
  1375. package/build-module/utils/sibling-block-attributes.mjs +20 -0
  1376. package/build-module/utils/sibling-block-attributes.mjs.map +7 -0
  1377. package/build-module/utils/transform-styles/index.mjs.map +2 -2
  1378. package/build-module/utils/use-notify-copy.mjs.map +2 -2
  1379. package/build-style/content-rtl.css +16 -29
  1380. package/build-style/content.css +16 -29
  1381. package/build-style/default-editor-styles-rtl.css +1 -1
  1382. package/build-style/default-editor-styles.css +1 -1
  1383. package/build-style/style-rtl.css +228 -66
  1384. package/build-style/style.css +228 -66
  1385. package/build-types/components/block-context/index.d.ts +7 -0
  1386. package/build-types/components/block-context/index.d.ts.map +1 -1
  1387. package/build-types/components/block-visibility/constants.d.ts +44 -0
  1388. package/build-types/components/block-visibility/constants.d.ts.map +1 -0
  1389. package/build-types/components/block-visibility/use-block-visibility.d.ts +35 -0
  1390. package/build-types/components/block-visibility/use-block-visibility.d.ts.map +1 -0
  1391. package/build-types/lock-unlock.d.ts +2 -0
  1392. package/build-types/lock-unlock.d.ts.map +1 -0
  1393. package/build-types/utils/block-bindings.d.ts +19 -0
  1394. package/build-types/utils/block-bindings.d.ts.map +1 -1
  1395. package/build-types/utils/dom.d.ts +11 -0
  1396. package/build-types/utils/dom.d.ts.map +1 -1
  1397. package/build-types/utils/fit-text-frontend.d.ts +0 -5
  1398. package/build-types/utils/fit-text-frontend.d.ts.map +1 -1
  1399. package/build-types/utils/format-font-style.d.ts +0 -3
  1400. package/build-types/utils/format-font-style.d.ts.map +1 -1
  1401. package/build-types/utils/format-font-weight.d.ts +0 -3
  1402. package/build-types/utils/format-font-weight.d.ts.map +1 -1
  1403. package/build-types/utils/get-font-styles-and-weights.d.ts.map +1 -1
  1404. package/build-types/utils/get-px-from-css-unit.d.ts +2 -2
  1405. package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -1
  1406. package/build-types/utils/pasting.d.ts +1 -1
  1407. package/build-types/utils/pasting.d.ts.map +1 -1
  1408. package/build-types/utils/selection.d.ts.map +1 -1
  1409. package/build-types/utils/transform-styles/index.d.ts +0 -3
  1410. package/build-types/utils/transform-styles/index.d.ts.map +1 -1
  1411. package/package.json +45 -45
  1412. package/src/autocompleters/block.js +0 -7
  1413. package/src/autocompleters/test/block.js +0 -7
  1414. package/src/components/alignment-control/index.js +0 -3
  1415. package/src/components/alignment-control/stories/aliginment-toolbar.story.jsx +0 -7
  1416. package/src/components/alignment-control/stories/index.story.jsx +0 -7
  1417. package/src/components/alignment-control/test/__snapshots__/index.js.snap +1 -1
  1418. package/src/components/alignment-control/test/index.js +0 -11
  1419. package/src/components/alignment-control/ui.js +2 -7
  1420. package/src/components/autocomplete/index.js +0 -7
  1421. package/src/components/background-image-control/index.js +74 -49
  1422. package/src/components/background-image-control/style.scss +13 -4
  1423. package/src/components/background-image-control/test/index.js +0 -4
  1424. package/src/components/block-actions/README.md +67 -0
  1425. package/src/components/block-actions/index.js +3 -14
  1426. package/src/components/block-alignment-control/constants.js +0 -3
  1427. package/src/components/block-alignment-control/index.js +0 -3
  1428. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +3 -3
  1429. package/src/components/block-alignment-control/test/index.js +1 -8
  1430. package/src/components/block-alignment-control/ui.js +4 -13
  1431. package/src/components/block-alignment-control/use-available-alignments.js +0 -7
  1432. package/src/components/block-alignment-matrix-control/index.js +0 -3
  1433. package/src/components/block-alignment-matrix-control/stories/index.story.jsx +0 -7
  1434. package/src/components/block-allowed-blocks/allowed-blocks-control.js +0 -7
  1435. package/src/components/block-allowed-blocks/modal.js +0 -7
  1436. package/src/components/block-bindings/attribute-control.js +10 -11
  1437. package/src/components/block-bindings/index.js +0 -3
  1438. package/src/components/block-bindings/source-fields-list.js +0 -11
  1439. package/src/components/block-bindings/test/use-block-bindings-utils.js +1 -12
  1440. package/src/components/block-bindings/use-block-bindings-utils.js +0 -7
  1441. package/src/components/block-breadcrumb/index.js +0 -7
  1442. package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +1 -1
  1443. package/src/components/block-breadcrumb/test/index.js +0 -7
  1444. package/src/components/block-canvas/index.js +9 -9
  1445. package/src/components/block-card/index.js +0 -11
  1446. package/src/components/block-card/style.scss +1 -1
  1447. package/src/components/block-compare/block-view.js +0 -3
  1448. package/src/components/block-compare/index.js +0 -11
  1449. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
  1450. package/src/components/block-compare/test/block-view.js +0 -7
  1451. package/src/components/block-content-overlay/index.js +0 -7
  1452. package/src/components/block-context/README.md +0 -1
  1453. package/src/components/block-context/index.js +0 -3
  1454. package/src/components/block-controls/README.md +0 -3
  1455. package/src/components/block-controls/fill.js +0 -7
  1456. package/src/components/block-controls/groups.js +2 -3
  1457. package/src/components/block-controls/hook.js +0 -7
  1458. package/src/components/block-controls/index.js +0 -3
  1459. package/src/components/block-controls/slot.js +0 -7
  1460. package/src/components/block-controls/test/index.js +0 -11
  1461. package/src/components/block-draggable/draggable-chip.js +0 -7
  1462. package/src/components/block-draggable/index.js +0 -7
  1463. package/src/components/block-draggable/stories/index.story.jsx +0 -3
  1464. package/src/components/block-draggable/use-scroll-when-dragging.js +0 -3
  1465. package/src/components/block-edit/context.js +0 -3
  1466. package/src/components/block-edit/edit.js +13 -42
  1467. package/src/components/block-edit/index.js +0 -7
  1468. package/src/components/block-edit/multiple-usage-warning.js +0 -7
  1469. package/src/components/block-edit/test/edit.js +0 -11
  1470. package/src/components/block-edit-visually-button/index.js +0 -7
  1471. package/src/components/block-editing-mode/index.js +0 -7
  1472. package/src/components/block-full-height-alignment-control/index.js +0 -3
  1473. package/src/components/block-heading-level-dropdown/heading-level-icon.js +0 -3
  1474. package/src/components/block-heading-level-dropdown/index.js +0 -7
  1475. package/src/components/block-heading-level-dropdown/stories/index.story.jsx +0 -7
  1476. package/src/components/block-icon/index.js +0 -7
  1477. package/src/components/block-icon/stories/index.story.ts +0 -7
  1478. package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -1
  1479. package/src/components/block-icon/test/index.js +0 -11
  1480. package/src/components/block-inspector/edit-contents.js +27 -32
  1481. package/src/components/block-inspector/index.js +67 -39
  1482. package/src/components/block-inspector/inspector-pre-tabs-slot-fill.js +0 -3
  1483. package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +0 -7
  1484. package/src/components/block-list/README.md +98 -0
  1485. package/src/components/block-list/block-crash-boundary.js +0 -3
  1486. package/src/components/block-list/block-crash-warning.js +0 -7
  1487. package/src/components/block-list/block-html.js +5 -11
  1488. package/src/components/block-list/block-invalid-warning.js +0 -7
  1489. package/src/components/block-list/block.js +63 -23
  1490. package/src/components/block-list/content.scss +1 -11
  1491. package/src/components/block-list/index.js +62 -26
  1492. package/src/components/block-list/layout.js +0 -7
  1493. package/src/components/block-list/private-block-context.js +0 -3
  1494. package/src/components/block-list/subdirectory-icon.js +0 -3
  1495. package/src/components/block-list/use-block-props/index.js +63 -12
  1496. package/src/components/block-list/use-block-props/use-block-refs.js +0 -7
  1497. package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +0 -3
  1498. package/src/components/block-list/use-block-props/use-focus-first-element.js +23 -11
  1499. package/src/components/block-list/use-block-props/use-focus-handler.js +35 -16
  1500. package/src/components/block-list/use-block-props/use-intersection-observer.js +0 -7
  1501. package/src/components/block-list/use-block-props/use-is-hovered.js +0 -7
  1502. package/src/components/block-list/use-block-props/use-register-block-event-handlers.js +38 -0
  1503. package/src/components/block-list/use-block-props/use-scroll-into-view.js +0 -3
  1504. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +0 -7
  1505. package/src/components/block-list/use-in-between-inserter.js +0 -7
  1506. package/src/components/block-list/zoom-out-separator.js +0 -11
  1507. package/src/components/block-list-appender/index.js +0 -11
  1508. package/src/components/block-lock/README.md +66 -0
  1509. package/src/components/block-lock/menu-item.js +0 -7
  1510. package/src/components/block-lock/modal.js +0 -7
  1511. package/src/components/block-lock/style.scss +1 -1
  1512. package/src/components/block-lock/toolbar.js +0 -7
  1513. package/src/components/block-lock/use-block-lock.js +0 -7
  1514. package/src/components/block-manager/category.js +0 -7
  1515. package/src/components/block-manager/checklist.js +0 -7
  1516. package/src/components/block-manager/index.js +0 -7
  1517. package/src/components/block-manager/style.scss +1 -1
  1518. package/src/components/block-mover/button.js +17 -26
  1519. package/src/components/block-mover/index.js +0 -12
  1520. package/src/components/block-mover/mover-description.js +0 -3
  1521. package/src/components/block-mover/stories/index.story.jsx +0 -7
  1522. package/src/components/block-mover/test/mover-description.js +0 -3
  1523. package/src/components/block-navigation/dropdown.js +0 -11
  1524. package/src/components/block-navigation/style.scss +1 -1
  1525. package/src/components/block-parent-selector/index.js +5 -9
  1526. package/src/components/block-pattern-setup/index.js +0 -8
  1527. package/src/components/block-pattern-setup/setup-toolbar.js +0 -7
  1528. package/src/components/block-pattern-setup/use-patterns-setup.js +0 -7
  1529. package/src/components/block-patterns-list/index.js +0 -11
  1530. package/src/components/block-patterns-list/stories/index.story.jsx +3 -10
  1531. package/src/components/block-patterns-paging/index.js +0 -3
  1532. package/src/components/block-popover/cover.js +0 -7
  1533. package/src/components/block-popover/drop-zone.js +0 -7
  1534. package/src/components/block-popover/inbetween.js +0 -11
  1535. package/src/components/block-popover/index.js +0 -11
  1536. package/src/components/block-popover/use-popover-scroll.js +0 -3
  1537. package/src/components/block-preview/async.js +0 -3
  1538. package/src/components/block-preview/auto.js +0 -7
  1539. package/src/components/block-preview/index.js +0 -11
  1540. package/src/components/block-preview/test/index.js +0 -11
  1541. package/src/components/block-quick-navigation/index.js +0 -7
  1542. package/src/components/block-quick-navigation/style.scss +1 -3
  1543. package/src/components/block-removal-warning-modal/index.js +0 -7
  1544. package/src/components/block-rename/modal.js +0 -7
  1545. package/src/components/block-rename/rename-control.js +0 -7
  1546. package/src/components/block-rename/use-block-rename.js +0 -3
  1547. package/src/components/block-selection-clearer/index.js +0 -7
  1548. package/src/components/block-selection-clearer/test/index.js +0 -11
  1549. package/src/components/block-settings-menu/block-html-convert-button.js +0 -7
  1550. package/src/components/block-settings-menu/block-mode-toggle.js +0 -7
  1551. package/src/components/block-settings-menu/block-parent-selector-menu-item.js +0 -7
  1552. package/src/components/block-settings-menu/block-settings-dropdown.js +1 -8
  1553. package/src/components/block-settings-menu/block-settings-menu-first-item.js +0 -3
  1554. package/src/components/block-settings-menu/index.js +0 -7
  1555. package/src/components/block-settings-menu/test/block-mode-toggle.js +0 -11
  1556. package/src/components/block-settings-menu-controls/index.js +0 -7
  1557. package/src/components/block-styles/index.js +0 -11
  1558. package/src/components/block-styles/menu-items.js +0 -3
  1559. package/src/components/block-styles/style.scss +2 -2
  1560. package/src/components/block-styles/test/utils.js +0 -3
  1561. package/src/components/block-styles/use-styles-for-block.js +0 -7
  1562. package/src/components/block-styles/utils.js +0 -3
  1563. package/src/components/block-switcher/block-styles-menu.js +0 -7
  1564. package/src/components/block-switcher/block-transformations-menu.js +0 -7
  1565. package/src/components/block-switcher/block-variation-transformations.js +0 -7
  1566. package/src/components/block-switcher/index.js +0 -7
  1567. package/src/components/block-switcher/pattern-transformations-menu.js +0 -8
  1568. package/src/components/block-switcher/preview-block-popover.js +0 -7
  1569. package/src/components/block-switcher/test/index.js +0 -11
  1570. package/src/components/block-switcher/test/use-transformed.patterns.js +0 -7
  1571. package/src/components/block-switcher/test/utils.js +0 -7
  1572. package/src/components/block-switcher/use-transformed-patterns.js +0 -7
  1573. package/src/components/block-switcher/utils.js +0 -3
  1574. package/src/components/block-title/index.js +0 -4
  1575. package/src/components/block-title/stories/index.story.jsx +0 -7
  1576. package/src/components/block-title/test/index.js +0 -11
  1577. package/src/components/block-title/use-block-display-title.js +0 -7
  1578. package/src/components/block-toolbar/block-styles-dropdown.js +0 -7
  1579. package/src/components/block-toolbar/block-toolbar-icon.js +0 -7
  1580. package/src/components/block-toolbar/block-toolbar-last-item.js +0 -3
  1581. package/src/components/block-toolbar/change-design.js +0 -7
  1582. package/src/components/block-toolbar/edit-section-button.js +0 -7
  1583. package/src/components/block-toolbar/index.js +41 -29
  1584. package/src/components/block-toolbar/pattern-overrides-dropdown.js +0 -7
  1585. package/src/components/block-toolbar/switch-section-style.js +5 -9
  1586. package/src/components/block-toolbar/test/block-toolbar-icon.js +0 -11
  1587. package/src/components/block-toolbar/use-has-block-toolbar.js +0 -6
  1588. package/src/components/block-toolbar/utils.js +0 -7
  1589. package/src/components/block-tools/block-toolbar-popover.js +0 -9
  1590. package/src/components/block-tools/empty-block-inserter.js +3 -14
  1591. package/src/components/block-tools/index.js +10 -20
  1592. package/src/components/block-tools/insertion-point.js +0 -11
  1593. package/src/components/block-tools/use-block-toolbar-popover-props.js +0 -7
  1594. package/src/components/block-tools/use-selected-block-tool-props.js +0 -7
  1595. package/src/components/block-tools/use-show-block-tools.js +0 -7
  1596. package/src/components/block-tools/zoom-out-mode-inserter-button.js +0 -7
  1597. package/src/components/block-tools/zoom-out-mode-inserters.js +0 -7
  1598. package/src/components/block-types-list/index.js +0 -7
  1599. package/src/components/block-types-list/style.scss +0 -1
  1600. package/src/components/block-variation-picker/index.js +0 -7
  1601. package/src/components/block-variation-transforms/index.js +0 -7
  1602. package/src/components/block-vertical-alignment-control/index.js +0 -3
  1603. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
  1604. package/src/components/block-vertical-alignment-control/test/index.js +18 -9
  1605. package/src/components/block-vertical-alignment-control/ui.js +3 -8
  1606. package/src/components/block-visibility/{constants.js → constants.ts} +10 -4
  1607. package/src/components/block-visibility/modal.js +24 -21
  1608. package/src/components/block-visibility/style.scss +1 -1
  1609. package/src/components/block-visibility/test/use-block-visibility.js +128 -47
  1610. package/src/components/block-visibility/test/utils.js +11 -3
  1611. package/src/components/block-visibility/use-block-visibility.ts +92 -0
  1612. package/src/components/block-visibility/utils.js +31 -13
  1613. package/src/components/block-visibility/viewport-menu-item.js +10 -8
  1614. package/src/components/block-visibility/viewport-toolbar.js +6 -7
  1615. package/src/components/block-visibility/viewport-visibility-info.js +5 -8
  1616. package/src/components/border-radius-control/README.md +0 -3
  1617. package/src/components/border-radius-control/constants.js +0 -3
  1618. package/src/components/border-radius-control/index.js +0 -7
  1619. package/src/components/border-radius-control/linked-button.js +0 -3
  1620. package/src/components/border-radius-control/stories/index.story.jsx +0 -7
  1621. package/src/components/border-radius-control/test/index.js +0 -12
  1622. package/src/components/border-radius-control/test/utils.js +0 -44
  1623. package/src/components/border-radius-control/utils.js +12 -110
  1624. package/src/components/button-block-appender/content.scss +7 -9
  1625. package/src/components/button-block-appender/index.js +0 -11
  1626. package/src/components/child-layout-control/index.js +0 -11
  1627. package/src/components/child-layout-control/test/index.js +0 -11
  1628. package/src/components/collab/note-icon-slot.js +0 -3
  1629. package/src/components/collab/note-icon-toolbar-slot.js +0 -3
  1630. package/src/components/color-palette/control.js +0 -3
  1631. package/src/components/color-palette/index.js +0 -7
  1632. package/src/components/color-palette/stories/control.story.jsx +0 -7
  1633. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -3
  1634. package/src/components/color-palette/test/control.js +0 -7
  1635. package/src/components/color-palette/with-color-context.js +0 -7
  1636. package/src/components/color-style-selector/index.js +0 -3
  1637. package/src/components/colors/test/utils.js +0 -3
  1638. package/src/components/colors/test/with-colors.js +0 -7
  1639. package/src/components/colors/utils.js +1 -15
  1640. package/src/components/colors/with-colors.js +1 -11
  1641. package/src/components/colors-gradients/control.js +6 -14
  1642. package/src/components/colors-gradients/dropdown.js +0 -15
  1643. package/src/components/colors-gradients/panel-color-gradient-settings.js +21 -28
  1644. package/src/components/colors-gradients/style.scss +17 -7
  1645. package/src/components/colors-gradients/test/control.js +0 -7
  1646. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +0 -7
  1647. package/src/components/contrast-checker/index.js +0 -7
  1648. package/src/components/contrast-checker/stories/index.story.ts +0 -3
  1649. package/src/components/contrast-checker/test/index.js +0 -11
  1650. package/src/components/convert-to-group-buttons/index.js +2 -13
  1651. package/src/components/convert-to-group-buttons/toolbar.js +3 -12
  1652. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +0 -7
  1653. package/src/components/copy-handler/index.js +0 -7
  1654. package/src/components/date-format-picker/index.js +0 -3
  1655. package/src/components/date-format-picker/stories/index.story.jsx +0 -7
  1656. package/src/components/default-block-appender/content.scss +6 -3
  1657. package/src/components/default-block-appender/index.js +0 -11
  1658. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +1 -1
  1659. package/src/components/default-block-appender/test/index.js +0 -7
  1660. package/src/components/dimension-control/index.js +9 -8
  1661. package/src/components/dimension-control/stories/index.story.jsx +0 -7
  1662. package/src/components/dimensions-tool/aspect-ratio-tool.js +13 -12
  1663. package/src/components/dimensions-tool/index.js +0 -7
  1664. package/src/components/dimensions-tool/scale-tool.js +0 -3
  1665. package/src/components/dimensions-tool/stories/aspect-ratio-tool.story.jsx +0 -7
  1666. package/src/components/dimensions-tool/stories/index.story.jsx +0 -7
  1667. package/src/components/dimensions-tool/stories/scale-tool.story.jsx +0 -7
  1668. package/src/components/dimensions-tool/stories/width-height-tool.story.jsx +0 -7
  1669. package/src/components/dimensions-tool/test/index.js +0 -11
  1670. package/src/components/dimensions-tool/width-height-tool.js +0 -3
  1671. package/src/components/duotone-control/index.js +0 -3
  1672. package/src/components/editable-text/index.js +0 -7
  1673. package/src/components/editor-styles/index.js +16 -12
  1674. package/src/components/fit-text-size-warning/index.js +0 -3
  1675. package/src/components/floating-toolbar/nav-up-icon.js +0 -3
  1676. package/src/components/font-appearance-control/index.js +0 -7
  1677. package/src/components/font-family/index.js +0 -11
  1678. package/src/components/font-family/stories/index.story.jsx +1 -8
  1679. package/src/components/font-sizes/font-size-picker.js +0 -7
  1680. package/src/components/font-sizes/test/fluid-utils.js +0 -7
  1681. package/src/components/font-sizes/test/utils.js +0 -7
  1682. package/src/components/font-sizes/utils.js +1 -11
  1683. package/src/components/font-sizes/with-font-sizes.js +0 -7
  1684. package/src/components/global-styles/advanced-panel.js +0 -7
  1685. package/src/components/global-styles/background-panel.js +107 -41
  1686. package/src/components/global-styles/border-panel.js +219 -55
  1687. package/src/components/global-styles/color-gradient-dropdown-item.js +93 -39
  1688. package/src/components/global-styles/color-panel.js +92 -18
  1689. package/src/components/global-styles/dimensions-panel.js +422 -82
  1690. package/src/components/global-styles/filters-panel.js +88 -39
  1691. package/src/components/global-styles/hooks.js +8 -8
  1692. package/src/components/global-styles/image-settings-panel.js +0 -7
  1693. package/src/components/global-styles/inheritance/index.js +197 -0
  1694. package/src/components/global-styles/inheritance/style.scss +184 -0
  1695. package/src/components/global-styles/inheritance/test/index.js +270 -0
  1696. package/src/components/global-styles/inherited-value-context.js +264 -0
  1697. package/src/components/global-styles/shadow-panel-components.js +44 -34
  1698. package/src/components/global-styles/state-control-badges.js +45 -13
  1699. package/src/components/global-styles/state-control.js +2 -5
  1700. package/src/components/global-styles/style.scss +5 -0
  1701. package/src/components/global-styles/test/background-panel.js +334 -5
  1702. package/src/components/global-styles/test/border-panel.js +434 -0
  1703. package/src/components/global-styles/test/color-panel.js +182 -9
  1704. package/src/components/global-styles/test/dimensions-panel.js +746 -0
  1705. package/src/components/global-styles/test/filters-panel.js +187 -0
  1706. package/src/components/global-styles/test/inherited-value-context-core.js +87 -0
  1707. package/src/components/global-styles/test/inherited-value-context.js +442 -0
  1708. package/src/components/global-styles/test/state-control-badges.js +58 -0
  1709. package/src/components/global-styles/test/typography-panel-core.js +178 -0
  1710. package/src/components/global-styles/test/typography-panel.js +845 -15
  1711. package/src/components/global-styles/test/typography-utils.js +0 -3
  1712. package/src/components/global-styles/typography-panel.js +449 -108
  1713. package/src/components/global-styles/typography-utils.js +0 -3
  1714. package/src/components/global-styles/utils.js +0 -3
  1715. package/src/components/gradients/use-gradient.js +0 -7
  1716. package/src/components/gradients/with-gradient.js +0 -3
  1717. package/src/components/grid/grid-item-movers.js +0 -11
  1718. package/src/components/grid/grid-item-resizer.js +0 -7
  1719. package/src/components/grid/grid-visualizer.js +0 -11
  1720. package/src/components/grid/use-get-number-of-blocks-before-cell.js +0 -7
  1721. package/src/components/grid/use-grid-layout-sync.js +0 -7
  1722. package/src/components/height-control/index.js +0 -7
  1723. package/src/components/height-control/stories/index.story.jsx +0 -7
  1724. package/src/components/html-element-control/index.js +0 -7
  1725. package/src/components/html-element-control/messages.js +0 -3
  1726. package/src/components/iframe/index.js +4 -16
  1727. package/src/components/iframe/use-scale-canvas.js +38 -14
  1728. package/src/components/image-editor/aspect-ratio-dropdown.js +0 -7
  1729. package/src/components/image-editor/context.js +0 -7
  1730. package/src/components/image-editor/cropper.js +0 -11
  1731. package/src/components/image-editor/form-controls.js +0 -7
  1732. package/src/components/image-editor/index.js +0 -7
  1733. package/src/components/image-editor/rotation-button.js +0 -8
  1734. package/src/components/image-editor/style.scss +33 -0
  1735. package/src/components/image-editor/test/index.js +0 -3
  1736. package/src/components/image-editor/use-save-image.js +0 -7
  1737. package/src/components/image-editor/use-transform-image.js +0 -3
  1738. package/src/components/image-editor/zoom-dropdown.js +0 -7
  1739. package/src/components/image-size-control/index.js +0 -9
  1740. package/src/components/image-size-control/test/index.js +0 -7
  1741. package/src/components/image-size-control/use-dimension-handler.js +0 -3
  1742. package/src/components/inner-blocks/README.md +2 -0
  1743. package/src/components/inner-blocks/button-block-appender.js +0 -7
  1744. package/src/components/inner-blocks/default-block-appender.js +0 -3
  1745. package/src/components/inner-blocks/index.js +0 -11
  1746. package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
  1747. package/src/components/inner-blocks/test/index.js +0 -8
  1748. package/src/components/inner-blocks/use-block-context.js +0 -7
  1749. package/src/components/inner-blocks/use-inner-block-template-sync.js +47 -23
  1750. package/src/components/inner-blocks/use-nested-settings-update.js +0 -7
  1751. package/src/components/inner-content/index.js +0 -7
  1752. package/src/components/inner-content/test/index.js +0 -11
  1753. package/src/components/inserter/block-patterns-explorer/index.js +0 -7
  1754. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +0 -3
  1755. package/src/components/inserter/block-patterns-explorer/pattern-list.js +0 -7
  1756. package/src/components/inserter/block-patterns-tab/index.js +0 -7
  1757. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +0 -8
  1758. package/src/components/inserter/block-patterns-tab/patterns-filter.js +0 -7
  1759. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +0 -8
  1760. package/src/components/inserter/block-patterns-tab/utils.js +0 -4
  1761. package/src/components/inserter/block-types-tab.js +0 -7
  1762. package/src/components/inserter/category-tabs/index.js +0 -7
  1763. package/src/components/inserter/hooks/use-block-types-state.js +0 -7
  1764. package/src/components/inserter/hooks/use-insertion-point.js +0 -7
  1765. package/src/components/inserter/hooks/use-patterns-paging.js +0 -3
  1766. package/src/components/inserter/hooks/use-patterns-state.js +0 -7
  1767. package/src/components/inserter/index.js +4 -28
  1768. package/src/components/inserter/library.js +0 -7
  1769. package/src/components/inserter/media-tab/hooks.js +55 -14
  1770. package/src/components/inserter/media-tab/media-list.js +0 -7
  1771. package/src/components/inserter/media-tab/media-panel.js +117 -32
  1772. package/src/components/inserter/media-tab/media-preview.js +0 -12
  1773. package/src/components/inserter/media-tab/media-tab.js +0 -7
  1774. package/src/components/inserter/media-tab/test/hooks.js +63 -7
  1775. package/src/components/inserter/media-tab/test/media-panel.js +120 -0
  1776. package/src/components/inserter/media-tab/utils.js +0 -3
  1777. package/src/components/inserter/menu.js +0 -11
  1778. package/src/components/inserter/mobile-tab-navigation.js +0 -3
  1779. package/src/components/inserter/no-results.js +0 -3
  1780. package/src/components/inserter/panel.js +0 -3
  1781. package/src/components/inserter/preview-panel.js +0 -7
  1782. package/src/components/inserter/quick-inserter.js +0 -11
  1783. package/src/components/inserter/search-items.js +0 -3
  1784. package/src/components/inserter/search-results.js +0 -7
  1785. package/src/components/inserter/stories/index.story.jsx +0 -7
  1786. package/src/components/inserter/style.scss +19 -16
  1787. package/src/components/inserter/test/get-appender-label.js +0 -3
  1788. package/src/components/inserter/test/search-items.js +0 -3
  1789. package/src/components/inserter/tips.js +0 -3
  1790. package/src/components/inserter-button/sparkles.js +0 -3
  1791. package/src/components/inserter-draggable-blocks/index.js +0 -7
  1792. package/src/components/inserter-list-item/index.js +0 -11
  1793. package/src/components/inserter-list-item/style.scss +0 -15
  1794. package/src/components/inserter-listbox/context.js +0 -3
  1795. package/src/components/inserter-listbox/group.js +0 -3
  1796. package/src/components/inserter-listbox/index.js +0 -8
  1797. package/src/components/inserter-listbox/item.js +0 -3
  1798. package/src/components/inserter-listbox/row.js +0 -3
  1799. package/src/components/inserter-menu-extension/index.js +0 -3
  1800. package/src/components/inspector-controls/block-support-slot-container.js +0 -3
  1801. package/src/components/inspector-controls/block-support-tools-panel.js +0 -7
  1802. package/src/components/inspector-controls/fill.js +22 -37
  1803. package/src/components/inspector-controls/groups.js +0 -3
  1804. package/src/components/inspector-controls/index.js +0 -3
  1805. package/src/components/inspector-controls/last-item.js +0 -7
  1806. package/src/components/inspector-controls/list-view-content-popover.js +0 -7
  1807. package/src/components/inspector-controls/slot.js +0 -7
  1808. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +0 -7
  1809. package/src/components/inspector-controls-tabs/content-tab.js +0 -7
  1810. package/src/components/inspector-controls-tabs/index.js +0 -8
  1811. package/src/components/inspector-controls-tabs/position-controls-panel.js +0 -7
  1812. package/src/components/inspector-controls-tabs/settings-tab.js +0 -7
  1813. package/src/components/inspector-controls-tabs/styles-tab.js +5 -8
  1814. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +0 -7
  1815. package/src/components/inspector-controls-tabs/utils.js +0 -3
  1816. package/src/components/inspector-popover-header/index.js +0 -3
  1817. package/src/components/justify-content-control/index.js +0 -3
  1818. package/src/components/justify-content-control/ui.js +0 -3
  1819. package/src/components/keyboard-shortcuts/index.js +24 -14
  1820. package/src/components/letter-spacing-control/index.js +0 -7
  1821. package/src/components/letter-spacing-control/stories/index.story.jsx +0 -7
  1822. package/src/components/line-height-control/index.js +1 -9
  1823. package/src/components/line-height-control/stories/index.story.jsx +0 -7
  1824. package/src/components/line-height-control/test/index.js +0 -11
  1825. package/src/components/link-control/constants.js +0 -3
  1826. package/src/components/link-control/index.js +7 -13
  1827. package/src/components/link-control/is-url-like.js +0 -3
  1828. package/src/components/link-control/link-preview.js +0 -13
  1829. package/src/components/link-control/normalize-url.js +0 -7
  1830. package/src/components/link-control/search-create-button.js +0 -3
  1831. package/src/components/link-control/search-input.js +0 -7
  1832. package/src/components/link-control/search-item.js +0 -3
  1833. package/src/components/link-control/search-results.js +1 -12
  1834. package/src/components/link-control/settings-drawer.js +0 -3
  1835. package/src/components/link-control/settings.js +0 -3
  1836. package/src/components/link-control/style.scss +3 -3
  1837. package/src/components/link-control/test/index.js +6 -17
  1838. package/src/components/link-control/test/is-url-like.js +0 -3
  1839. package/src/components/link-control/test/url-normalization.test.js +0 -11
  1840. package/src/components/link-control/use-create-page.js +0 -3
  1841. package/src/components/link-control/use-internal-value.js +0 -7
  1842. package/src/components/link-control/use-rich-url-data.js +1 -8
  1843. package/src/components/link-control/use-search-handler.js +0 -7
  1844. package/src/components/link-control/viewer-slot.js +0 -3
  1845. package/src/components/link-picker/link-picker.js +0 -7
  1846. package/src/components/link-picker/link-preview.js +0 -7
  1847. package/src/components/link-picker/style.scss +1 -2
  1848. package/src/components/link-picker/test/index.js +0 -11
  1849. package/src/components/list-view/appender.js +7 -11
  1850. package/src/components/list-view/aria-referenced-text.js +12 -19
  1851. package/src/components/list-view/block-contents.js +28 -28
  1852. package/src/components/list-view/block-select-button.js +62 -40
  1853. package/src/components/list-view/block.js +53 -61
  1854. package/src/components/list-view/branch.js +179 -169
  1855. package/src/components/list-view/context.js +24 -3
  1856. package/src/components/list-view/drop-indicator.js +6 -18
  1857. package/src/components/list-view/expander.js +0 -3
  1858. package/src/components/list-view/index.js +95 -110
  1859. package/src/components/list-view/leaf.js +0 -11
  1860. package/src/components/list-view/style.scss +28 -9
  1861. package/src/components/list-view/test/use-list-view-drop-zone.js +0 -3
  1862. package/src/components/list-view/test/utils.js +0 -3
  1863. package/src/components/list-view/use-block-selection.js +0 -7
  1864. package/src/components/list-view/use-clipboard-handler.js +0 -7
  1865. package/src/components/list-view/use-list-view-block-indexes.js +0 -3
  1866. package/src/components/list-view/use-list-view-client-ids.js +0 -8
  1867. package/src/components/list-view/use-list-view-collapse-items.js +3 -11
  1868. package/src/components/list-view/use-list-view-drop-zone.js +11 -28
  1869. package/src/components/list-view/use-list-view-expand-selected-item.js +3 -10
  1870. package/src/components/list-view/use-list-view-images.js +6 -10
  1871. package/src/components/list-view/use-list-view-scroll-into-view.js +0 -3
  1872. package/src/components/list-view/utils.js +7 -6
  1873. package/src/components/media-placeholder/index.js +0 -12
  1874. package/src/components/media-placeholder/test/get-computed-accept-attribute.js +0 -3
  1875. package/src/components/media-placeholder/test/index.js +0 -7
  1876. package/src/components/media-replace-flow/index.js +0 -11
  1877. package/src/components/media-replace-flow/test/index.js +0 -10
  1878. package/src/components/media-upload/check.js +0 -7
  1879. package/src/components/media-upload/index.js +0 -3
  1880. package/src/components/multi-selection-inspector/index.js +42 -21
  1881. package/src/components/multi-selection-inspector/style.scss +6 -1
  1882. package/src/components/navigable-toolbar/index.js +38 -27
  1883. package/src/components/observe-typing/index.js +0 -7
  1884. package/src/components/panel-color-settings/README.md +0 -7
  1885. package/src/components/panel-color-settings/index.js +0 -3
  1886. package/src/components/panel-color-settings/test/index.js +0 -7
  1887. package/src/components/plain-text/index.js +0 -11
  1888. package/src/components/plain-text/stories/index.story.jsx +0 -7
  1889. package/src/components/preset-input-control/custom-value-controls.js +0 -4
  1890. package/src/components/preset-input-control/index.js +4 -8
  1891. package/src/components/preset-input-control/test/index.js +0 -7
  1892. package/src/components/preset-input-control/test/utils.js +0 -3
  1893. package/src/components/preview-options/index.js +0 -3
  1894. package/src/components/provider/block-refs-provider.js +12 -5
  1895. package/src/components/provider/index.js +2 -9
  1896. package/src/components/provider/selection-context.js +0 -3
  1897. package/src/components/provider/test/experimental-provider.js +0 -10
  1898. package/src/components/provider/test/use-block-sync.js +0 -12
  1899. package/src/components/provider/use-block-sync.js +18 -13
  1900. package/src/components/provider/use-media-upload-settings.js +2 -3
  1901. package/src/components/provider/with-registry-provider.js +0 -7
  1902. package/src/components/publish-date-time-picker/index.js +0 -7
  1903. package/src/components/recursion-provider/README.md +0 -3
  1904. package/src/components/recursion-provider/index.js +0 -7
  1905. package/src/components/recursion-provider/test/index.js +0 -7
  1906. package/src/components/resizable-box-popover/index.js +0 -7
  1907. package/src/components/resolution-tool/index.js +0 -3
  1908. package/src/components/resolution-tool/stories/index.story.jsx +0 -7
  1909. package/src/components/responsive-block-control/index.js +0 -11
  1910. package/src/components/responsive-block-control/label.js +0 -3
  1911. package/src/components/responsive-block-control/style.scss +1 -1
  1912. package/src/components/responsive-block-control/test/index.js +0 -11
  1913. package/src/components/rich-text/content.js +0 -11
  1914. package/src/components/rich-text/event-listeners/before-input-rules.js +8 -12
  1915. package/src/components/rich-text/event-listeners/delete.js +7 -11
  1916. package/src/components/rich-text/event-listeners/enter.js +10 -11
  1917. package/src/components/rich-text/event-listeners/firefox-compat.js +0 -3
  1918. package/src/components/rich-text/event-listeners/index.js +0 -7
  1919. package/src/components/rich-text/event-listeners/input-events.js +3 -10
  1920. package/src/components/rich-text/event-listeners/input-rules.js +23 -25
  1921. package/src/components/rich-text/event-listeners/insert-replacement-text.js +3 -10
  1922. package/src/components/rich-text/event-listeners/paste-handler.js +29 -11
  1923. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +3 -10
  1924. package/src/components/rich-text/event-listeners/shortcuts.js +3 -10
  1925. package/src/components/rich-text/event-listeners/undo-automatic-change.js +3 -10
  1926. package/src/components/rich-text/format-edit.js +0 -7
  1927. package/src/components/rich-text/format-toolbar/index.js +0 -11
  1928. package/src/components/rich-text/format-toolbar-container.js +0 -7
  1929. package/src/components/rich-text/get-rich-text-values.js +0 -7
  1930. package/src/components/rich-text/index.js +116 -37
  1931. package/src/components/rich-text/multiline.js +0 -7
  1932. package/src/components/rich-text/prevent-event-discovery.js +0 -3
  1933. package/src/components/rich-text/toolbar-button.js +0 -3
  1934. package/src/components/rich-text/use-mark-persistent.js +0 -7
  1935. package/src/components/rich-text/utils.js +0 -3
  1936. package/src/components/rich-text/with-deprecations.js +0 -7
  1937. package/src/components/selection-scroll-into-view/index.js +0 -3
  1938. package/src/components/skip-to-selected-block/index.js +0 -7
  1939. package/src/components/skip-to-selected-block/style.scss +1 -1
  1940. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +0 -7
  1941. package/src/components/spacing-sizes-control/index.js +2 -9
  1942. package/src/components/spacing-sizes-control/input-controls/axial.js +0 -3
  1943. package/src/components/spacing-sizes-control/input-controls/separated.js +0 -3
  1944. package/src/components/spacing-sizes-control/input-controls/single.js +0 -3
  1945. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -7
  1946. package/src/components/spacing-sizes-control/linked-button.js +0 -3
  1947. package/src/components/spacing-sizes-control/test/index.js +0 -12
  1948. package/src/components/spacing-sizes-control/test/utils.js +16 -8
  1949. package/src/components/spacing-sizes-control/utils.js +7 -31
  1950. package/src/components/tabbed-sidebar/index.js +0 -7
  1951. package/src/components/tabbed-sidebar/stories/index.story.jsx +0 -7
  1952. package/src/components/text-alignment-control/index.js +0 -7
  1953. package/src/components/text-alignment-control/stories/index.story.jsx +0 -7
  1954. package/src/components/text-decoration-control/index.js +0 -7
  1955. package/src/components/text-decoration-control/stories/index.story.jsx +0 -7
  1956. package/src/components/text-indent-control/index.js +8 -7
  1957. package/src/components/text-transform-control/index.js +0 -7
  1958. package/src/components/text-transform-control/stories/index.story.jsx +0 -7
  1959. package/src/components/tool-selector/index.js +0 -3
  1960. package/src/components/typewriter/index.js +228 -227
  1961. package/src/components/unit-control/index.js +0 -7
  1962. package/src/components/unit-control/stories/index.story.jsx +0 -7
  1963. package/src/components/url-input/button.js +0 -7
  1964. package/src/components/url-input/index.js +400 -488
  1965. package/src/components/url-input/test/button.js +0 -11
  1966. package/src/components/url-input/test/index.js +666 -0
  1967. package/src/components/url-popover/image-url-input-ui.js +2 -9
  1968. package/src/components/url-popover/index.js +0 -7
  1969. package/src/components/url-popover/link-editor.js +0 -11
  1970. package/src/components/url-popover/link-viewer-url.js +0 -7
  1971. package/src/components/url-popover/link-viewer.js +0 -11
  1972. package/src/components/url-popover/stories/index.story.jsx +0 -7
  1973. package/src/components/url-popover/style.scss +5 -0
  1974. package/src/components/use-block-commands/index.js +29 -26
  1975. package/src/components/use-block-display-information/index.js +1 -8
  1976. package/src/components/use-block-display-information/test/index.js +0 -11
  1977. package/src/components/use-block-drop-zone/index.js +0 -7
  1978. package/src/components/use-block-drop-zone/test/index.js +0 -3
  1979. package/src/components/use-flash-editable-blocks/index.js +0 -7
  1980. package/src/components/use-list-view-panel-state/index.js +0 -7
  1981. package/src/components/use-moving-animation/index.js +9 -14
  1982. package/src/components/use-on-block-drop/index.js +2 -9
  1983. package/src/components/use-on-block-drop/test/index.js +1 -7
  1984. package/src/components/use-paste-styles/index.js +0 -7
  1985. package/src/components/use-resize-canvas/index.js +0 -3
  1986. package/src/components/use-settings/index.js +0 -7
  1987. package/src/components/warning/index.js +0 -7
  1988. package/src/components/warning/stories/index.story.jsx +0 -7
  1989. package/src/components/warning/test/__snapshots__/index.js.snap +1 -1
  1990. package/src/components/warning/test/index.js +0 -7
  1991. package/src/components/writing-flow/index.js +17 -12
  1992. package/src/components/writing-flow/test/index.js +0 -7
  1993. package/src/components/writing-flow/use-arrow-nav.js +112 -28
  1994. package/src/components/writing-flow/use-click-selection.js +55 -12
  1995. package/src/components/writing-flow/use-clipboard-handler.js +70 -13
  1996. package/src/components/writing-flow/use-drag-selection.js +1 -21
  1997. package/src/components/writing-flow/use-editable-root-event-handlers.js +259 -0
  1998. package/src/components/writing-flow/use-editable-root.js +105 -0
  1999. package/src/components/writing-flow/use-home-end.js +64 -0
  2000. package/src/components/writing-flow/use-input.js +25 -15
  2001. package/src/components/writing-flow/use-multi-selection.js +2 -10
  2002. package/src/components/writing-flow/use-preview-mode-nav.js +0 -7
  2003. package/src/components/writing-flow/use-select-all.js +33 -10
  2004. package/src/components/writing-flow/use-selection-observer.js +218 -49
  2005. package/src/components/writing-flow/use-tab-nav.js +7 -8
  2006. package/src/components/writing-flow/utils.js +62 -7
  2007. package/src/components/writing-mode-control/index.js +0 -7
  2008. package/src/components/writing-mode-control/stories/index.story.jsx +0 -7
  2009. package/src/elements/test/index.js +0 -3
  2010. package/src/hooks/align.js +0 -11
  2011. package/src/hooks/allowed-blocks.js +0 -7
  2012. package/src/hooks/anchor.js +0 -7
  2013. package/src/hooks/aria-label.js +0 -7
  2014. package/src/hooks/auto-inspector-controls.js +0 -7
  2015. package/src/hooks/background.js +28 -37
  2016. package/src/hooks/block-bindings.js +0 -7
  2017. package/src/hooks/block-fields/fields-dropdown-menu.js +0 -7
  2018. package/src/hooks/block-fields/index.js +0 -1
  2019. package/src/hooks/block-fields/link/index.js +0 -7
  2020. package/src/hooks/block-fields/link/styles.scss +1 -6
  2021. package/src/hooks/block-fields/media/index.js +0 -7
  2022. package/src/hooks/block-fields/media/styles.scss +1 -6
  2023. package/src/hooks/block-fields/rich-text/index.js +6 -16
  2024. package/src/hooks/block-fields/rich-text/styles.scss +1 -1
  2025. package/src/hooks/block-fields/use-inspector-popover-placement.js +0 -3
  2026. package/src/hooks/block-hooks.js +0 -7
  2027. package/src/hooks/block-renaming.js +0 -3
  2028. package/src/hooks/block-style-state.js +0 -7
  2029. package/src/hooks/block-style-variation.js +8 -81
  2030. package/src/hooks/border.js +19 -15
  2031. package/src/hooks/color.js +0 -11
  2032. package/src/hooks/compat.js +0 -3
  2033. package/src/hooks/contrast-checker.js +0 -8
  2034. package/src/hooks/custom-class-name.js +0 -11
  2035. package/src/hooks/custom-css.js +15 -6
  2036. package/src/hooks/dimensions.js +17 -15
  2037. package/src/hooks/duotone.js +26 -19
  2038. package/src/hooks/elements.js +14 -11
  2039. package/src/hooks/fit-text.js +0 -8
  2040. package/src/hooks/font-family.js +1 -10
  2041. package/src/hooks/font-size.js +0 -7
  2042. package/src/hooks/gap.js +0 -3
  2043. package/src/hooks/generated-class-name.js +0 -3
  2044. package/src/hooks/grid-visualizer.js +40 -43
  2045. package/src/hooks/index.js +0 -3
  2046. package/src/hooks/layout-child.js +19 -16
  2047. package/src/hooks/layout.js +49 -44
  2048. package/src/hooks/line-height.js +0 -8
  2049. package/src/hooks/list-view.js +0 -8
  2050. package/src/hooks/lock.js +0 -3
  2051. package/src/hooks/metadata.js +0 -3
  2052. package/src/hooks/position.js +0 -11
  2053. package/src/hooks/settings.js +0 -3
  2054. package/src/hooks/spacing-visualizer.js +0 -7
  2055. package/src/hooks/state-utils.js +0 -3
  2056. package/src/hooks/states.js +38 -16
  2057. package/src/hooks/style.js +67 -24
  2058. package/src/hooks/supports.js +0 -3
  2059. package/src/hooks/test/align.js +0 -7
  2060. package/src/hooks/test/allowed-blocks.js +0 -7
  2061. package/src/hooks/test/anchor.js +0 -7
  2062. package/src/hooks/test/auto-inspector-controls.js +0 -7
  2063. package/src/hooks/test/background.js +115 -3
  2064. package/src/hooks/test/block-style-state.js +0 -3
  2065. package/src/hooks/test/custom-class-name.js +0 -7
  2066. package/src/hooks/test/dimensions.js +0 -7
  2067. package/src/hooks/test/duotone.js +0 -3
  2068. package/src/hooks/test/font-size.js +0 -11
  2069. package/src/hooks/test/gap.js +0 -3
  2070. package/src/hooks/test/generate-fields-from-attributes.js +0 -3
  2071. package/src/hooks/test/generated-class-name.js +0 -7
  2072. package/src/hooks/test/inherited-value-wiring.js +408 -0
  2073. package/src/hooks/test/layout-child.js +0 -3
  2074. package/src/hooks/test/layout.js +0 -3
  2075. package/src/hooks/test/metadata.js +0 -7
  2076. package/src/hooks/test/preset-round-trip.js +450 -0
  2077. package/src/hooks/test/settings.js +0 -7
  2078. package/src/hooks/test/state-utils.js +0 -7
  2079. package/src/hooks/test/style.js +29 -7
  2080. package/src/hooks/test/text-align.js +34 -8
  2081. package/src/hooks/test/use-typography-props.js +0 -3
  2082. package/src/hooks/test/utils.js +0 -3
  2083. package/src/hooks/text-align.js +41 -21
  2084. package/src/hooks/typography.js +35 -32
  2085. package/src/hooks/use-border-props.js +0 -3
  2086. package/src/hooks/use-cached-truthy.js +0 -3
  2087. package/src/hooks/use-color-props.js +0 -11
  2088. package/src/hooks/use-content-only-section-edit.js +0 -7
  2089. package/src/hooks/use-dimensions-props.js +0 -3
  2090. package/src/hooks/use-shadow-props.js +0 -3
  2091. package/src/hooks/use-spacing-props.js +0 -3
  2092. package/src/hooks/use-typography-props.js +1 -15
  2093. package/src/hooks/use-zoom-out.js +0 -7
  2094. package/src/hooks/utils.js +0 -11
  2095. package/src/index.js +0 -3
  2096. package/src/layouts/constrained.js +5 -8
  2097. package/src/layouts/flex.js +5 -8
  2098. package/src/layouts/flow.js +0 -7
  2099. package/src/layouts/grid.js +0 -10
  2100. package/src/layouts/index.js +0 -3
  2101. package/src/layouts/test/constrained.js +0 -11
  2102. package/src/layouts/test/flex.js +0 -11
  2103. package/src/layouts/test/flow.js +0 -3
  2104. package/src/layouts/test/grid.js +0 -11
  2105. package/src/layouts/test/utils.js +0 -3
  2106. package/src/layouts/utils.js +0 -7
  2107. package/src/lock-unlock.ts +0 -3
  2108. package/src/private-apis.js +7 -5
  2109. package/src/store/actions.js +215 -72
  2110. package/src/store/defaults.js +4 -3
  2111. package/src/store/get-block-settings.js +0 -7
  2112. package/src/store/index.js +0 -7
  2113. package/src/store/private-actions.js +33 -5
  2114. package/src/store/private-selectors.js +125 -23
  2115. package/src/store/reducer.js +17 -21
  2116. package/src/store/selectors.js +100 -29
  2117. package/src/store/test/actions.js +204 -27
  2118. package/src/store/test/array.js +0 -3
  2119. package/src/store/test/get-block-settings.js +0 -7
  2120. package/src/store/test/performance.js +0 -3
  2121. package/src/store/test/private-actions.js +0 -3
  2122. package/src/store/test/private-selectors.js +426 -18
  2123. package/src/store/test/reducer.js +30 -11
  2124. package/src/store/test/registry-selectors.js +0 -7
  2125. package/src/store/test/selectors.js +143 -7
  2126. package/src/store/utils.js +0 -7
  2127. package/src/style.scss +2 -0
  2128. package/src/utils/block-bindings.ts +50 -0
  2129. package/src/utils/dom.ts +33 -0
  2130. package/src/utils/fit-text-frontend.ts +0 -8
  2131. package/src/utils/format-font-style.ts +0 -7
  2132. package/src/utils/format-font-weight.ts +0 -7
  2133. package/src/utils/get-font-styles-and-weights.ts +0 -7
  2134. package/src/utils/group-blocks.js +36 -0
  2135. package/src/utils/native-undo.js +53 -0
  2136. package/src/utils/pasting.ts +0 -3
  2137. package/src/utils/selection.ts +0 -3
  2138. package/src/utils/sibling-block-attributes.js +30 -0
  2139. package/src/utils/test/block-bindings.js +178 -0
  2140. package/src/utils/test/color-values.js +0 -3
  2141. package/src/utils/test/format-font-style.js +0 -3
  2142. package/src/utils/test/format-font-weight.js +0 -3
  2143. package/src/utils/test/get-font-styles-and-weights.js +0 -3
  2144. package/src/utils/test/math.js +0 -3
  2145. package/src/utils/test/object.js +0 -3
  2146. package/src/utils/test/pasting.js +0 -3
  2147. package/src/utils/test/selection.js +0 -3
  2148. package/src/utils/test/sorting.js +0 -3
  2149. package/src/utils/test/transform-styles.js +0 -3
  2150. package/src/utils/transform-styles/index.ts +0 -8
  2151. package/src/utils/use-notify-copy.js +0 -7
  2152. package/build/components/duotone/utils.cjs +0 -87
  2153. package/build/components/duotone/utils.cjs.map +0 -7
  2154. package/build/components/rich-text/input-event.cjs.map +0 -7
  2155. package/build/components/rich-text/shortcut.cjs +0 -51
  2156. package/build/components/rich-text/shortcut.cjs.map +0 -7
  2157. package/build-module/components/duotone/utils.mjs +0 -59
  2158. package/build-module/components/duotone/utils.mjs.map +0 -7
  2159. package/build-module/components/rich-text/input-event.mjs +0 -25
  2160. package/build-module/components/rich-text/input-event.mjs.map +0 -7
  2161. package/build-module/components/rich-text/shortcut.mjs +0 -26
  2162. package/build-module/components/rich-text/shortcut.mjs.map +0 -7
  2163. package/src/components/block-visibility/use-block-visibility.js +0 -54
  2164. package/src/components/duotone/utils.js +0 -90
  2165. package/src/components/rich-text/input-event.js +0 -31
  2166. package/src/components/rich-text/shortcut.js +0 -32
  2167. package/src/hooks/test/get-variation-styles-with-ref-values.js +0 -91
@@ -2,7 +2,10 @@
2
2
  import { useMemo } from "@wordpress/element";
3
3
  import { addFilter } from "@wordpress/hooks";
4
4
  import { useSelect } from "@wordpress/data";
5
- import { mergeGlobalStyles } from "@wordpress/global-styles-engine";
5
+ import {
6
+ mergeGlobalStyles,
7
+ privateApis as globalStylesEnginePrivateApis
8
+ } from "@wordpress/global-styles-engine";
6
9
  import {
7
10
  getBlockSupport,
8
11
  getBlockType,
@@ -10,7 +13,11 @@ import {
10
13
  __EXPERIMENTAL_ELEMENTS as ELEMENTS
11
14
  } from "@wordpress/blocks";
12
15
  import { useInstanceId } from "@wordpress/compose";
13
- import { getCSSRules, compileCSS } from "@wordpress/style-engine";
16
+ import {
17
+ getCSSRules,
18
+ compileCSS,
19
+ getCSSValueFromRawStyle
20
+ } from "@wordpress/style-engine";
14
21
  import { BACKGROUND_SUPPORT_KEY, BackgroundImagePanel } from "./background.mjs";
15
22
  import { BORDER_SUPPORT_KEY, BorderPanel, SHADOW_SUPPORT_KEY } from "./border.mjs";
16
23
  import { COLOR_SUPPORT_KEY } from "./color.mjs";
@@ -43,15 +50,13 @@ import { VALID_BLOCK_PSEUDO_STATES } from "./states.mjs";
43
50
  import { buildScopedBlockSelector } from "./state-utils.mjs";
44
51
  import { scopeSelector } from "../components/global-styles/utils.mjs";
45
52
  import { useBlockEditingMode } from "../components/block-editing-mode/index.mjs";
53
+ import { useSettings } from "../components/use-settings/index.mjs";
46
54
  import { store as blockEditorStore } from "../store/index.mjs";
47
55
  import { globalStylesDataKey } from "../store/private-keys.mjs";
48
56
  import { unlock } from "../lock-unlock.mjs";
49
57
  import { jsx, jsxs } from "react/jsx-runtime";
58
+ var { getResponsiveMediaQueries } = unlock(globalStylesEnginePrivateApis);
50
59
  var BORDER_SIDES = ["Top", "Right", "Bottom", "Left"];
51
- var RESPONSIVE_BREAKPOINTS = {
52
- "@mobile": "@media (width <= 480px)",
53
- "@tablet": "@media (480px < width <= 782px)"
54
- };
55
60
  var styleSupportKeys = [
56
61
  ...TYPOGRAPHY_SUPPORT_KEYS,
57
62
  BORDER_SUPPORT_KEY,
@@ -127,6 +132,16 @@ function getStateFallbackDimensionStyles(stateStyles) {
127
132
  };
128
133
  }
129
134
  }
135
+ function getStateTextAlignCSS(stateStyles, selector) {
136
+ const textAlign = stateStyles?.typography?.textAlign;
137
+ if (typeof textAlign !== "string" || !textAlign) {
138
+ return void 0;
139
+ }
140
+ const declaration = `text-align: ${getCSSValueFromRawStyle(
141
+ textAlign
142
+ )} !important`;
143
+ return selector ? `${selector} { ${declaration}; }` : `${declaration};`;
144
+ }
130
145
  function getStateStylesCSS(stateStyles, selector) {
131
146
  const fallbackDimensionStyles = getStateFallbackDimensionStyles(stateStyles);
132
147
  const stylesWithDimensionFallbacks = fallbackDimensionStyles ? mergeStyleObjects(stateStyles, fallbackDimensionStyles) : stateStyles;
@@ -134,11 +149,12 @@ function getStateStylesCSS(stateStyles, selector) {
134
149
  const importantCSS = css ? css.replace(/;/g, " !important;") : void 0;
135
150
  const fallbackBorderStyles = getStateFallbackBorderStyles(stateStyles);
136
151
  const fallbackCSS = fallbackBorderStyles ? compileCSS(fallbackBorderStyles, { selector }) : void 0;
152
+ const textAlignCSS = getStateTextAlignCSS(stateStyles, selector);
137
153
  const backgroundResetCSS = getStateBackgroundResetCSS(
138
154
  stateStyles,
139
155
  selector
140
156
  );
141
- return [importantCSS, fallbackCSS, backgroundResetCSS].filter(Boolean).join("\n");
157
+ return [importantCSS, textAlignCSS, fallbackCSS, backgroundResetCSS].filter(Boolean).join("\n");
142
158
  }
143
159
  function isPlainObject(value) {
144
160
  return !!value && typeof value === "object" && !Array.isArray(value);
@@ -244,11 +260,12 @@ function getPseudoStateCSSRules(style, name, baseSelector) {
244
260
  });
245
261
  return cssRules;
246
262
  }
247
- function getResponsiveStateCSSRules(style, name, baseSelector) {
263
+ function getResponsiveStateCSSRules(style, name, baseSelector, viewportSettings) {
248
264
  const cssRules = [];
249
265
  const validPseudoStates = VALID_BLOCK_PSEUDO_STATES[name] ?? [];
250
266
  const nestedStateKeys = ["elements", ...validPseudoStates];
251
- Object.entries(RESPONSIVE_BREAKPOINTS).forEach(
267
+ const responsiveMediaQueries = getResponsiveMediaQueries(viewportSettings);
268
+ Object.entries(responsiveMediaQueries).forEach(
252
269
  ([viewport, mediaQuery]) => {
253
270
  const viewportStyles = getStyleForState(style, {
254
271
  viewport,
@@ -565,6 +582,7 @@ function useBlockProps({ name, style }) {
565
582
  );
566
583
  const baseElementSelector = `.${blockElementsContainerIdentifier}`;
567
584
  const blockElementStyles = style?.elements;
585
+ const [viewportSettings] = useSettings("viewport");
568
586
  const styles = useMemo(() => {
569
587
  const cssRules = [];
570
588
  const elementCSS = getElementCSSRules(
@@ -579,10 +597,21 @@ function useBlockProps({ name, style }) {
579
597
  ...getPseudoStateCSSRules(style, name, baseElementSelector)
580
598
  );
581
599
  cssRules.push(
582
- ...getResponsiveStateCSSRules(style, name, baseElementSelector)
600
+ ...getResponsiveStateCSSRules(
601
+ style,
602
+ name,
603
+ baseElementSelector,
604
+ viewportSettings
605
+ )
583
606
  );
584
607
  return cssRules.length > 0 ? cssRules.join("") : void 0;
585
- }, [baseElementSelector, blockElementStyles, name, style]);
608
+ }, [
609
+ baseElementSelector,
610
+ blockElementStyles,
611
+ name,
612
+ style,
613
+ viewportSettings
614
+ ]);
586
615
  useStyleOverride({ css: styles });
587
616
  return addSaveProps(
588
617
  { className: blockElementsContainerIdentifier },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/hooks/style.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\nimport { mergeGlobalStyles } from '@wordpress/global-styles-engine';\nimport {\n\tgetBlockSupport,\n\tgetBlockType,\n\thasBlockSupport,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n} from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { getCSSRules, compileCSS } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport { BACKGROUND_SUPPORT_KEY, BackgroundImagePanel } from './background';\nimport { BORDER_SUPPORT_KEY, BorderPanel, SHADOW_SUPPORT_KEY } from './border';\nimport { COLOR_SUPPORT_KEY } from './color';\nimport { ElementsEdit } from './elements';\nimport {\n\tTypographyPanel,\n\tTYPOGRAPHY_SUPPORT_KEY,\n\tTYPOGRAPHY_SUPPORT_KEYS,\n} from './typography';\nimport {\n\tDIMENSIONS_SUPPORT_KEY,\n\tSPACING_SUPPORT_KEY,\n\tDimensionsPanel,\n\tisExplicitAspectRatio,\n} from './dimensions';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseStyleOverride,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tBlockStyleStateProvider,\n\tDEFAULT_BLOCK_STYLE_STATE,\n\tgetStyleForState,\n\thasViewportBlockStyleState,\n\thasPseudoBlockStyleState,\n} from './block-style-state';\nimport { VALID_BLOCK_PSEUDO_STATES } from './states';\nimport { buildScopedBlockSelector } from './state-utils';\nimport { scopeSelector } from '../components/global-styles/utils';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\nimport { store as blockEditorStore } from '../store';\nimport { globalStylesDataKey } from '../store/private-keys';\nimport { unlock } from '../lock-unlock';\n\nconst BORDER_SIDES = [ 'Top', 'Right', 'Bottom', 'Left' ];\n\n// Keep in sync with WP_Theme_JSON_Gutenberg::RESPONSIVE_BREAKPOINTS and\n// packages/global-styles-engine/src/core/render.tsx.\nconst RESPONSIVE_BREAKPOINTS = {\n\t'@mobile': '@media (width <= 480px)',\n\t'@tablet': '@media (480px < width <= 782px)',\n};\n\nconst styleSupportKeys = [\n\t...TYPOGRAPHY_SUPPORT_KEYS,\n\tBORDER_SUPPORT_KEY,\n\tCOLOR_SUPPORT_KEY,\n\tDIMENSIONS_SUPPORT_KEY,\n\tBACKGROUND_SUPPORT_KEY,\n\tSPACING_SUPPORT_KEY,\n\tSHADOW_SUPPORT_KEY,\n];\n\nconst hasStyleSupport = ( nameOrType ) =>\n\tstyleSupportKeys.some( ( key ) => hasBlockSupport( nameOrType, key ) );\n\n/**\n * Returns the inline styles to add depending on the style object\n *\n * @param {Object} styles Styles configuration.\n *\n * @return {Object} Flattened CSS variables declaration.\n */\nexport function getInlineStyles( styles = {} ) {\n\tconst output = {};\n\t// The goal is to move everything to server side generated engine styles\n\t// This is temporary as we absorb more and more styles into the engine.\n\tgetCSSRules( styles ).forEach( ( rule ) => {\n\t\toutput[ rule.key ] = rule.value;\n\t} );\n\n\treturn output;\n}\n\n/**\n * Returns fallback border styles for visible state border styles.\n *\n * State styles are emitted as stylesheet rules rather than inline styles, so\n * they cannot rely on the block-library inline-style attribute fallback rules.\n *\n * @param {Object} stateStyles State style object.\n * @return {Object|undefined} Style object containing fallback border styles.\n */\nfunction getStateFallbackBorderStyles( stateStyles ) {\n\tconst border = stateStyles?.border;\n\tif ( ! border ) {\n\t\treturn undefined;\n\t}\n\n\tconst hasBorderStyle = !! border.style;\n\tconst hasBorderColor = !! border.color;\n\tconst hasBorderWidth = !! border.width;\n\tconst fallbackBorder = {};\n\n\tif ( ! hasBorderStyle && ( hasBorderColor || hasBorderWidth ) ) {\n\t\tfallbackBorder.style = 'solid';\n\t}\n\n\tBORDER_SIDES.forEach( ( side ) => {\n\t\tconst sideKey = side.toLowerCase();\n\t\tconst sideBorder = border[ sideKey ];\n\t\tconst hasSideStyle = !! sideBorder?.style;\n\t\tconst hasSideColor = !! sideBorder?.color;\n\t\tconst hasSideWidth = !! sideBorder?.width;\n\n\t\tif (\n\t\t\t! hasBorderStyle &&\n\t\t\t! hasSideStyle &&\n\t\t\t( hasSideColor || hasSideWidth )\n\t\t) {\n\t\t\tfallbackBorder[ sideKey ] = { style: 'solid' };\n\t\t}\n\t} );\n\n\treturn cleanEmptyObject( { border: cleanEmptyObject( fallbackBorder ) } );\n}\n\n/**\n * Returns background reset CSS for a state that sets a solid background color.\n *\n * When a state sets `color.background` (a solid color) without also setting a\n * gradient (`color.gradient` or `background.gradient`), any gradient applied to\n * the default state via an inline `background` shorthand or `background-image`\n * declaration must be explicitly cleared. Without this, the gradient image layer\n * remains visible even though the solid hover color wins `background-color`.\n *\n * @param {Object} stateStyles State style object.\n * @param {string} selector CSS selector for the generated style.\n * @return {string|undefined} CSS string with background-image reset, or undefined.\n */\nfunction getStateBackgroundResetCSS( stateStyles, selector ) {\n\tconst hasSolidBackground = !! stateStyles?.color?.background;\n\n\tif ( ! hasSolidBackground ) {\n\t\treturn undefined;\n\t}\n\n\tconst hasColorGradient = !! stateStyles?.color?.gradient;\n\tconst hasBackgroundGradient =\n\t\t!! stateStyles?.background?.gradient ||\n\t\t!! stateStyles?.background?.backgroundImage;\n\n\tif ( hasColorGradient || hasBackgroundGradient ) {\n\t\treturn undefined;\n\t}\n\n\tconst declaration = 'background-image: unset !important';\n\treturn selector\n\t\t? `${ selector } { ${ declaration }; }`\n\t\t: `${ declaration };`;\n}\n\n/**\n * Returns fallback dimension styles that keep state styles aligned with the\n * default dimensions block-support output.\n *\n * @param {Object} stateStyles State style object.\n * @return {Object|undefined} Style object containing fallback dimension styles.\n */\nfunction getStateFallbackDimensionStyles( stateStyles ) {\n\tconst dimensions = stateStyles?.dimensions;\n\tif ( ! dimensions ) {\n\t\treturn undefined;\n\t}\n\n\tif ( isExplicitAspectRatio( dimensions.aspectRatio ) ) {\n\t\treturn {\n\t\t\tdimensions: {\n\t\t\t\tminHeight: 'unset',\n\t\t\t\theight: 'unset',\n\t\t\t},\n\t\t};\n\t}\n\n\tif ( dimensions.minHeight || dimensions.height ) {\n\t\treturn {\n\t\t\tdimensions: {\n\t\t\t\taspectRatio: 'unset',\n\t\t\t},\n\t\t};\n\t}\n}\n\n/**\n * Generates CSS for a block instance state style object.\n *\n * State declarations need to win over preset utility classes, but fallback\n * border styles should not become important because they must not override\n * explicitly authored default border styles.\n *\n * @param {Object} stateStyles State style object.\n * @param {string} selector CSS selector for the generated style.\n * @return {string} Generated stylesheet.\n */\nexport function getStateStylesCSS( stateStyles, selector ) {\n\tconst fallbackDimensionStyles =\n\t\tgetStateFallbackDimensionStyles( stateStyles );\n\tconst stylesWithDimensionFallbacks = fallbackDimensionStyles\n\t\t? mergeStyleObjects( stateStyles, fallbackDimensionStyles )\n\t\t: stateStyles;\n\tconst css = compileCSS( stylesWithDimensionFallbacks, { selector } );\n\tconst importantCSS = css ? css.replace( /;/g, ' !important;' ) : undefined;\n\tconst fallbackBorderStyles = getStateFallbackBorderStyles( stateStyles );\n\tconst fallbackCSS = fallbackBorderStyles\n\t\t? compileCSS( fallbackBorderStyles, { selector } )\n\t\t: undefined;\n\tconst backgroundResetCSS = getStateBackgroundResetCSS(\n\t\tstateStyles,\n\t\tselector\n\t);\n\n\treturn [ importantCSS, fallbackCSS, backgroundResetCSS ]\n\t\t.filter( Boolean )\n\t\t.join( '\\n' );\n}\n\nfunction isPlainObject( value ) {\n\treturn !! value && typeof value === 'object' && ! Array.isArray( value );\n}\n\nfunction mergeStyleObjects( target = {}, source = {} ) {\n\tconst merged = { ...target };\n\n\tObject.entries( source ).forEach( ( [ key, value ] ) => {\n\t\tmerged[ key ] =\n\t\t\tisPlainObject( value ) && isPlainObject( merged[ key ] )\n\t\t\t\t? mergeStyleObjects( merged[ key ], value )\n\t\t\t\t: value;\n\t} );\n\n\treturn merged;\n}\n\nfunction addStyleGroup( groups, selector, style ) {\n\tconst key = selector || '';\n\tconst existing = groups.get( key ) || { selector, style: {} };\n\n\tgroups.set( key, {\n\t\tselector,\n\t\tstyle: mergeStyleObjects( existing.style, style ),\n\t} );\n}\n\nfunction getStateStyleGroups( stateStyles, name ) {\n\tconst blockSelectors = getBlockType( name )?.selectors || {};\n\tconst groups = new Map();\n\n\tObject.entries( stateStyles || {} ).forEach(\n\t\t( [ feature, featureStyles ] ) => {\n\t\t\tconst featureSelectors = blockSelectors[ feature ];\n\n\t\t\tif ( typeof featureSelectors === 'string' ) {\n\t\t\t\taddStyleGroup( groups, featureSelectors, {\n\t\t\t\t\t[ feature ]: featureStyles,\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tisPlainObject( featureSelectors ) &&\n\t\t\t\tisPlainObject( featureStyles )\n\t\t\t) {\n\t\t\t\tconst remainingStyles = { ...featureStyles };\n\n\t\t\t\tObject.entries( featureSelectors ).forEach(\n\t\t\t\t\t( [ subfeature, subfeatureSelector ] ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tsubfeature === 'root' ||\n\t\t\t\t\t\t\ttypeof subfeatureSelector !== 'string' ||\n\t\t\t\t\t\t\t! Object.hasOwn( featureStyles, subfeature )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taddStyleGroup( groups, subfeatureSelector, {\n\t\t\t\t\t\t\t[ feature ]: {\n\t\t\t\t\t\t\t\t[ subfeature ]: featureStyles[ subfeature ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tdelete remainingStyles[ subfeature ];\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( Object.keys( remainingStyles ).length ) {\n\t\t\t\t\taddStyleGroup(\n\t\t\t\t\t\tgroups,\n\t\t\t\t\t\tfeatureSelectors.root || blockSelectors.root,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ feature ]: remainingStyles,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taddStyleGroup( groups, blockSelectors.root, {\n\t\t\t\t[ feature ]: featureStyles,\n\t\t\t} );\n\t\t}\n\t);\n\n\treturn Array.from( groups.values() );\n}\n\n/**\n * Generates CSS for block instance state styles, honoring feature selectors.\n *\n * @param {Object} stateStyles State style object.\n * @param {Object} options Generation options.\n * @param {string} options.name Block name.\n * @param {string} options.baseSelector Block-instance scoping selector.\n * @param {string=} options.state Optional pseudo-state, e.g. \":hover\".\n * @return {string|undefined} Generated stylesheet.\n */\nexport function getBlockStateStylesCSS( stateStyles, options ) {\n\tconst { name, baseSelector, state = '' } = options;\n\tconst rules = getStateStyleGroups( stateStyles, name )\n\t\t.map( ( { selector: blockSelector, style } ) =>\n\t\t\tgetStateStylesCSS(\n\t\t\t\tstyle,\n\t\t\t\tbuildScopedBlockSelector( baseSelector, blockSelector, state )\n\t\t\t)\n\t\t)\n\t\t.filter( Boolean );\n\n\treturn rules.length ? rules.join( '\\n' ) : undefined;\n}\n\n/**\n * Returns a style object with nested state/element keys removed.\n *\n * Viewport state objects can contain root declarations alongside nested\n * `elements` and pseudo-state styles. Only root declarations should be passed\n * to the style engine for the viewport root selector.\n *\n * @param {Object} stateStyles Style object for a selected state.\n * @param {string[]} nestedKeys Keys to remove from the root style object.\n * @return {Object|undefined} Root-only style object.\n */\nfunction getRootStateStyles( stateStyles, nestedKeys ) {\n\tif ( ! stateStyles ) {\n\t\treturn stateStyles;\n\t}\n\n\tconst rootStyles = { ...stateStyles };\n\tnestedKeys.forEach( ( key ) => {\n\t\tdelete rootStyles[ key ];\n\t} );\n\treturn rootStyles;\n}\n\n/**\n * Generates CSS rules for supported pseudo-state styles.\n *\n * @param {Object} style Block style object containing pseudo-state styles.\n * @param {string} name Block name.\n * @param {string} baseSelector Base selector used to scope generated CSS.\n * @return {string[]} Generated CSS rule strings.\n */\nfunction getPseudoStateCSSRules( style, name, baseSelector ) {\n\tconst validPseudoStates = VALID_BLOCK_PSEUDO_STATES[ name ];\n\tif ( ! validPseudoStates ) {\n\t\treturn [];\n\t}\n\n\tconst cssRules = [];\n\tvalidPseudoStates.forEach( ( pseudoState ) => {\n\t\tconst stateStyles = style?.[ pseudoState ];\n\t\tif ( stateStyles ) {\n\t\t\tconst css = getBlockStateStylesCSS( stateStyles, {\n\t\t\t\tname,\n\t\t\t\tbaseSelector,\n\t\t\t\tstate: pseudoState,\n\t\t\t} );\n\t\t\tif ( css ) {\n\t\t\t\tcssRules.push( css );\n\t\t\t}\n\t\t}\n\t} );\n\treturn cssRules;\n}\n\n/**\n * Generates CSS rules for responsive block instance style states.\n *\n * Each responsive state can contain root styles, element styles, and nested\n * pseudo-state styles. Generated rules are wrapped in the matching breakpoint\n * media query.\n *\n * @param {Object} style Block style object containing responsive states.\n * @param {string} name Block name.\n * @param {string} baseSelector Base selector used to scope generated CSS.\n * @return {string[]} Generated CSS rule strings.\n */\nexport function getResponsiveStateCSSRules( style, name, baseSelector ) {\n\tconst cssRules = [];\n\tconst validPseudoStates = VALID_BLOCK_PSEUDO_STATES[ name ] ?? [];\n\tconst nestedStateKeys = [ 'elements', ...validPseudoStates ];\n\n\tObject.entries( RESPONSIVE_BREAKPOINTS ).forEach(\n\t\t( [ viewport, mediaQuery ] ) => {\n\t\t\tconst viewportStyles = getStyleForState( style, {\n\t\t\t\tviewport,\n\t\t\t\tpseudo: DEFAULT_BLOCK_STYLE_STATE.pseudo,\n\t\t\t} );\n\t\t\tif ( ! viewportStyles ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst viewportCSSRules = [];\n\t\t\tconst rootCSS = getBlockStateStylesCSS(\n\t\t\t\tgetRootStateStyles( viewportStyles, nestedStateKeys ),\n\t\t\t\t{\n\t\t\t\t\tname,\n\t\t\t\t\tbaseSelector,\n\t\t\t\t}\n\t\t\t);\n\t\t\tif ( rootCSS ) {\n\t\t\t\tviewportCSSRules.push( rootCSS );\n\t\t\t}\n\n\t\t\tconst elementCSS = getElementCSSRules(\n\t\t\t\tviewportStyles.elements,\n\t\t\t\tname,\n\t\t\t\tbaseSelector\n\t\t\t);\n\t\t\tif ( elementCSS ) {\n\t\t\t\tviewportCSSRules.push( elementCSS );\n\t\t\t}\n\n\t\t\tviewportCSSRules.push(\n\t\t\t\t...getPseudoStateCSSRules( viewportStyles, name, baseSelector )\n\t\t\t);\n\n\t\t\tif ( viewportCSSRules.length ) {\n\t\t\t\tcssRules.push(\n\t\t\t\t\t`${ mediaQuery }{${ viewportCSSRules.join( '' ) }}`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t);\n\n\treturn cssRules;\n}\n\n/**\n * Returns the style value used to force-preview a selected state on canvas.\n *\n * Responsive pseudo states inherit from their default-viewport pseudo state.\n * For example, selecting `@mobile + :hover` should preview styles from\n * `:hover`, with `@mobile.:hover` values layered on top when present.\n *\n * @param {Object} style Block style object.\n * @param {Object} selectedState Selected block style state.\n * @return {Object|undefined} Style value for the canvas preview.\n */\nexport function getCanvasStateStyleValue( style, selectedState ) {\n\tconst stateValue = getStyleForState( style, selectedState );\n\tif ( ! hasViewportBlockStyleState( selectedState ) ) {\n\t\treturn stateValue;\n\t}\n\n\tconst defaultViewportState = {\n\t\t...selectedState,\n\t\tviewport: DEFAULT_BLOCK_STYLE_STATE.viewport,\n\t};\n\tconst defaultViewportStateValue = getStyleForState(\n\t\tstyle,\n\t\tdefaultViewportState\n\t);\n\n\tif ( defaultViewportStateValue && stateValue ) {\n\t\treturn mergeGlobalStyles( defaultViewportStateValue, stateValue );\n\t}\n\treturn stateValue || defaultViewportStateValue;\n}\n\n/**\n * Filters registered block settings, extending attributes to include `style` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttribute( settings ) {\n\tif (\n\t\t! hasStyleSupport( settings ) &&\n\t\t! hasBlockSupport( settings, 'customCSS', true )\n\t) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.style ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * A dictionary of paths to flag skipping block support serialization as the key,\n * with values providing the style paths to be omitted from serialization.\n *\n * @constant\n * @type {Record<string, string[]>}\n */\nconst skipSerializationPathsEdit = {\n\t[ `${ BORDER_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [ 'border' ],\n\t[ `${ COLOR_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tCOLOR_SUPPORT_KEY,\n\t],\n\t[ `${ TYPOGRAPHY_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t],\n\t[ `${ DIMENSIONS_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t],\n\t[ `${ SPACING_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tSPACING_SUPPORT_KEY,\n\t],\n\t[ `${ SHADOW_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tSHADOW_SUPPORT_KEY,\n\t],\n};\n\n/**\n * A dictionary of paths to flag skipping block support serialization as the key,\n * with values providing the style paths to be omitted from serialization.\n *\n * Extends the Edit skip paths to enable skipping additional paths in just\n * the Save component. This allows a block support to be serialized within the\n * editor, while using an alternate approach, such as server-side rendering, when\n * the support is saved.\n *\n * @constant\n * @type {Record<string, string[]>}\n */\nconst skipSerializationPathsSave = {\n\t...skipSerializationPathsEdit,\n\t[ `${ DIMENSIONS_SUPPORT_KEY }.aspectRatio` ]: [\n\t\t`${ DIMENSIONS_SUPPORT_KEY }.aspectRatio`,\n\t], // Skip serialization of aspect ratio in save mode.\n\t[ `${ BACKGROUND_SUPPORT_KEY }` ]: [ BACKGROUND_SUPPORT_KEY ], // Skip serialization of background support in save mode.\n};\n\nconst skipSerializationPathsSaveChecks = {\n\t[ `${ DIMENSIONS_SUPPORT_KEY }.aspectRatio` ]: true,\n\t[ `${ BACKGROUND_SUPPORT_KEY }` ]: true,\n};\n\n/**\n * A dictionary used to normalize feature names between support flags, style\n * object properties and __experimentSkipSerialization configuration arrays.\n *\n * This allows not having to provide a migration for a support flag and possible\n * backwards compatibility bridges, while still achieving consistency between\n * the support flag and the skip serialization array.\n *\n * @constant\n * @type {Record<string, string>}\n */\nconst renamedFeatures = { gradients: 'gradient' };\n\n/**\n * A utility function used to remove one or more paths from a style object.\n * Works in a way similar to Lodash's `omit()`. See unit tests and examples below.\n *\n * It supports a single string path:\n *\n * ```\n * omitStyle( { color: 'red' }, 'color' ); // {}\n * ```\n *\n * or an array of paths:\n *\n * ```\n * omitStyle( { color: 'red', background: '#fff' }, [ 'color', 'background' ] ); // {}\n * ```\n *\n * It also allows you to specify paths at multiple levels in a string.\n *\n * ```\n * omitStyle( { typography: { textDecoration: 'underline' } }, 'typography.textDecoration' ); // {}\n * ```\n *\n * You can remove multiple paths at the same time:\n *\n * ```\n * omitStyle(\n * \t\t{\n * \t\t\ttypography: {\n * \t\t\t\ttextDecoration: 'underline',\n * \t\t\t\ttextTransform: 'uppercase',\n * \t\t\t}\n *\t\t},\n *\t\t[\n * \t\t\t'typography.textDecoration',\n * \t\t\t'typography.textTransform',\n *\t\t]\n * );\n * // {}\n * ```\n *\n * You can also specify nested paths as arrays:\n *\n * ```\n * omitStyle(\n * \t\t{\n * \t\t\ttypography: {\n * \t\t\t\ttextDecoration: 'underline',\n * \t\t\t\ttextTransform: 'uppercase',\n * \t\t\t}\n *\t\t},\n *\t\t[\n * \t\t\t[ 'typography', 'textDecoration' ],\n * \t\t\t[ 'typography', 'textTransform' ],\n *\t\t]\n * );\n * // {}\n * ```\n *\n * With regards to nesting of styles, infinite depth is supported:\n *\n * ```\n * omitStyle(\n * \t\t{\n * \t\t\tborder: {\n * \t\t\t\tradius: {\n * \t\t\t\t\ttopLeft: '10px',\n * \t\t\t\t\ttopRight: '0.5rem',\n * \t\t\t\t}\n * \t\t\t}\n *\t\t},\n *\t\t[\n * \t\t\t[ 'border', 'radius', 'topRight' ],\n *\t\t]\n * );\n * // { border: { radius: { topLeft: '10px' } } }\n * ```\n *\n * The third argument, `preserveReference`, defines how to treat the input style object.\n * It is mostly necessary to properly handle mutation when recursively handling the style object.\n * Defaulting to `false`, this will always create a new object, avoiding to mutate `style`.\n * However, when recursing, we change that value to `true` in order to work with a single copy\n * of the original style object.\n *\n * @see https://lodash.com/docs/4.17.15#omit\n *\n * @param {Object} style Styles object.\n * @param {Array|string} paths Paths to remove.\n * @param {boolean} preserveReference True to mutate the `style` object, false otherwise.\n * @return {Object} Styles object with the specified paths removed.\n */\nexport function omitStyle( style, paths, preserveReference = false ) {\n\tif ( ! style ) {\n\t\treturn style;\n\t}\n\n\tlet newStyle = style;\n\tif ( ! preserveReference ) {\n\t\tnewStyle = JSON.parse( JSON.stringify( style ) );\n\t}\n\n\tif ( ! Array.isArray( paths ) ) {\n\t\tpaths = [ paths ];\n\t}\n\n\tpaths.forEach( ( path ) => {\n\t\tif ( ! Array.isArray( path ) ) {\n\t\t\tpath = path.split( '.' );\n\t\t}\n\n\t\tif ( path.length > 1 ) {\n\t\t\tconst [ firstSubpath, ...restPath ] = path;\n\t\t\tomitStyle( newStyle[ firstSubpath ], [ restPath ], true );\n\t\t} else if ( path.length === 1 ) {\n\t\t\tdelete newStyle[ path[ 0 ] ];\n\t\t}\n\t} );\n\n\treturn newStyle;\n}\n\n/**\n * Override props assigned to save component to inject the CSS variables definition.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type.\n * @param {Object} attributes Block attributes.\n * @param {?Record<string, string[]>} skipPaths An object of keys and paths to skip serialization.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps(\n\tprops,\n\tblockNameOrType,\n\tattributes,\n\tskipPaths = skipSerializationPathsSave\n) {\n\tif ( ! hasStyleSupport( blockNameOrType ) ) {\n\t\treturn props;\n\t}\n\n\tlet { style } = attributes;\n\tObject.entries( skipPaths ).forEach( ( [ indicator, path ] ) => {\n\t\tconst skipSerialization =\n\t\t\tskipSerializationPathsSaveChecks[ indicator ] ||\n\t\t\tgetBlockSupport( blockNameOrType, indicator );\n\n\t\tif ( skipSerialization === true ) {\n\t\t\tstyle = omitStyle( style, path );\n\t\t}\n\n\t\tif ( Array.isArray( skipSerialization ) ) {\n\t\t\tskipSerialization.forEach( ( featureName ) => {\n\t\t\t\tconst feature = renamedFeatures[ featureName ] || featureName;\n\t\t\t\tstyle = omitStyle( style, [ [ ...path, feature ] ] );\n\t\t\t} );\n\t\t}\n\t} );\n\n\tprops.style = {\n\t\t...getInlineStyles( style ),\n\t\t...props.style,\n\t};\n\n\treturn props;\n}\n\nfunction BlockStyleControls( {\n\tclientId,\n\tname,\n\tsetAttributes,\n\tstyle,\n\t__unstableParentLayout,\n} ) {\n\tconst settings = useBlockSettings( name, __unstableParentLayout );\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst { globalBlockStyles, selectedState, showStateOnCanvas } = useSelect(\n\t\t( select ) => {\n\t\t\tconst blockEditorSelect = select( blockEditorStore );\n\t\t\tconst {\n\t\t\t\tgetSelectedBlockStyleState,\n\t\t\t\tisSelectedBlockStyleStateShownOnCanvas,\n\t\t\t} = unlock( blockEditorSelect );\n\t\t\tconst editorSettings = blockEditorSelect.getSettings();\n\t\t\treturn {\n\t\t\t\tglobalBlockStyles:\n\t\t\t\t\teditorSettings?.[ globalStylesDataKey ]?.blocks?.[ name ],\n\t\t\t\tselectedState: getSelectedBlockStyleState( clientId ),\n\t\t\t\tshowStateOnCanvas:\n\t\t\t\t\tisSelectedBlockStyleStateShownOnCanvas( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, name ]\n\t);\n\tconst isPseudoSelectorState = hasPseudoBlockStyleState( selectedState );\n\n\t// Inject state styles onto the editor canvas so the selected state is\n\t// visible while editing. Scoped to this block instance via data-block so\n\t// other blocks of the same type are not affected. Must be called before\n\t// any early returns because it is a hook.\n\tconst canvasStateCSS = useMemo( () => {\n\t\tif ( ! showStateOnCanvas || ! isPseudoSelectorState ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst globalStateValue = getCanvasStateStyleValue(\n\t\t\tglobalBlockStyles,\n\t\t\tselectedState\n\t\t);\n\t\tconst instanceStateValue = getCanvasStateStyleValue(\n\t\t\tstyle,\n\t\t\tselectedState\n\t\t);\n\t\tlet stateValue;\n\n\t\tif ( globalStateValue && instanceStateValue ) {\n\t\t\tstateValue = mergeGlobalStyles(\n\t\t\t\tglobalStateValue,\n\t\t\t\tinstanceStateValue\n\t\t\t);\n\t\t} else if ( instanceStateValue ) {\n\t\t\tstateValue = instanceStateValue;\n\t\t} else if ( globalStateValue ) {\n\t\t\tstateValue = globalStateValue;\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn getBlockStateStylesCSS( stateValue, {\n\t\t\tname,\n\t\t\tbaseSelector: `[data-block=\"${ clientId }\"]`,\n\t\t} );\n\t}, [\n\t\tshowStateOnCanvas,\n\t\tisPseudoSelectorState,\n\t\tglobalBlockStyles,\n\t\tstyle,\n\t\tselectedState,\n\t\tclientId,\n\t\tname,\n\t] );\n\tuseStyleOverride( { css: canvasStateCSS } );\n\n\tif ( blockEditingMode !== 'default' ) {\n\t\treturn null;\n\t}\n\n\tconst panelSettings = {\n\t\t...settings,\n\t\ttypography: {\n\t\t\t...settings.typography,\n\t\t\t// The text alignment UI for individual blocks is rendered in\n\t\t\t// the block toolbar, so disable it here.\n\t\t\ttextAlign: false,\n\t\t},\n\t};\n\n\tconst passedProps = {\n\t\tclientId,\n\t\tname,\n\t\tsetAttributes,\n\t\tsettings: panelSettings,\n\t};\n\n\treturn (\n\t\t<BlockStyleStateProvider value={ selectedState }>\n\t\t\t<ElementsEdit { ...passedProps } />\n\t\t\t<BackgroundImagePanel { ...passedProps } />\n\t\t\t<TypographyPanel { ...passedProps } />\n\t\t\t<BorderPanel { ...passedProps } />\n\t\t\t<DimensionsPanel { ...passedProps } />\n\t\t</BlockStyleStateProvider>\n\t);\n}\n\nexport default {\n\tedit: BlockStyleControls,\n\thasSupport: hasStyleSupport,\n\taddSaveProps,\n\tattributeKeys: [ 'style' ],\n\tuseBlockProps,\n};\n\n// Defines which element types are supported, including their hover styles or\n// any other elements that have been included under a single element type\n// e.g. heading and h1-h6.\nconst elementTypes = [\n\t{ elementType: 'button' },\n\t{ elementType: 'link', pseudo: [ ':hover' ] },\n\t{\n\t\telementType: 'heading',\n\t\telements: [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ],\n\t},\n];\n\n// Used for generating the instance ID\nconst STYLE_BLOCK_PROPS_REFERENCE = {};\n\n/**\n * Generates CSS rules for block element styles (buttons, links, headings, etc.).\n *\n * Iterates over supported element types and compiles their styles, including\n * pseudo-selectors (e.g. :hover) and related sub-elements (e.g. h1-h6 for headings),\n * into scoped CSS rule strings.\n *\n * @param {Object} blockElementStyles The block's `style.elements` object.\n * @param {string} blockName The block name, used for skip-serialization checks.\n * @param {string} baseSelector The base CSS selector to scope rules under.\n * @return {string|undefined} Concatenated CSS rules string, or undefined if none.\n */\nfunction getElementCSSRules( blockElementStyles, blockName, baseSelector ) {\n\tif ( ! blockElementStyles ) {\n\t\treturn;\n\t}\n\n\tconst rules = [];\n\n\telementTypes.forEach( ( { elementType, pseudo, elements } ) => {\n\t\tconst skipSerialization = shouldSkipSerialization(\n\t\t\tblockName,\n\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\telementType\n\t\t);\n\n\t\tif ( skipSerialization ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elementStyles = blockElementStyles?.[ elementType ];\n\n\t\t// Process primary element type styles.\n\t\tif ( elementStyles ) {\n\t\t\tconst selector = scopeSelector(\n\t\t\t\tbaseSelector,\n\t\t\t\tELEMENTS[ elementType ]\n\t\t\t);\n\n\t\t\trules.push( compileCSS( elementStyles, { selector } ) );\n\n\t\t\t// Process any interactive states for the element type.\n\t\t\tif ( pseudo ) {\n\t\t\t\tpseudo.forEach( ( pseudoSelector ) => {\n\t\t\t\t\tif ( elementStyles[ pseudoSelector ] ) {\n\t\t\t\t\t\trules.push(\n\t\t\t\t\t\t\tcompileCSS( elementStyles[ pseudoSelector ], {\n\t\t\t\t\t\t\t\tselector: scopeSelector(\n\t\t\t\t\t\t\t\t\tbaseSelector,\n\t\t\t\t\t\t\t\t\t`${ ELEMENTS[ elementType ] }${ pseudoSelector }`\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t// Process related elements e.g. h1-h6 for headings\n\t\tif ( elements ) {\n\t\t\telements.forEach( ( element ) => {\n\t\t\t\tif ( blockElementStyles[ element ] ) {\n\t\t\t\t\trules.push(\n\t\t\t\t\t\tcompileCSS( blockElementStyles[ element ], {\n\t\t\t\t\t\t\tselector: scopeSelector(\n\t\t\t\t\t\t\t\tbaseSelector,\n\t\t\t\t\t\t\t\tELEMENTS[ element ]\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn rules.length > 0 ? rules.join( '' ) : undefined;\n}\n\nfunction useBlockProps( { name, style } ) {\n\tconst blockElementsContainerIdentifier = useInstanceId(\n\t\tSTYLE_BLOCK_PROPS_REFERENCE,\n\t\t'wp-elements'\n\t);\n\n\tconst baseElementSelector = `.${ blockElementsContainerIdentifier }`;\n\tconst blockElementStyles = style?.elements;\n\n\tconst styles = useMemo( () => {\n\t\tconst cssRules = [];\n\n\t\tconst elementCSS = getElementCSSRules(\n\t\t\tblockElementStyles,\n\t\t\tname,\n\t\t\tbaseElementSelector\n\t\t);\n\t\tif ( elementCSS ) {\n\t\t\tcssRules.push( elementCSS );\n\t\t}\n\n\t\tcssRules.push(\n\t\t\t...getPseudoStateCSSRules( style, name, baseElementSelector )\n\t\t);\n\n\t\tcssRules.push(\n\t\t\t...getResponsiveStateCSSRules( style, name, baseElementSelector )\n\t\t);\n\n\t\treturn cssRules.length > 0 ? cssRules.join( '' ) : undefined;\n\t}, [ baseElementSelector, blockElementStyles, name, style ] );\n\n\tuseStyleOverride( { css: styles } );\n\n\treturn addSaveProps(\n\t\t{ className: blockElementsContainerIdentifier },\n\t\tname,\n\t\t{ style },\n\t\tskipSerializationPathsEdit\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/style/addAttribute',\n\taddAttribute\n);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tmergeGlobalStyles,\n\tprivateApis as globalStylesEnginePrivateApis,\n} from '@wordpress/global-styles-engine';\nimport {\n\tgetBlockSupport,\n\tgetBlockType,\n\thasBlockSupport,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n} from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tgetCSSRules,\n\tcompileCSS,\n\tgetCSSValueFromRawStyle,\n} from '@wordpress/style-engine';\nimport { BACKGROUND_SUPPORT_KEY, BackgroundImagePanel } from './background';\nimport { BORDER_SUPPORT_KEY, BorderPanel, SHADOW_SUPPORT_KEY } from './border';\nimport { COLOR_SUPPORT_KEY } from './color';\nimport { ElementsEdit } from './elements';\nimport {\n\tTypographyPanel,\n\tTYPOGRAPHY_SUPPORT_KEY,\n\tTYPOGRAPHY_SUPPORT_KEYS,\n} from './typography';\nimport {\n\tDIMENSIONS_SUPPORT_KEY,\n\tSPACING_SUPPORT_KEY,\n\tDimensionsPanel,\n\tisExplicitAspectRatio,\n} from './dimensions';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseStyleOverride,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tBlockStyleStateProvider,\n\tDEFAULT_BLOCK_STYLE_STATE,\n\tgetStyleForState,\n\thasViewportBlockStyleState,\n\thasPseudoBlockStyleState,\n} from './block-style-state';\nimport { VALID_BLOCK_PSEUDO_STATES } from './states';\nimport { buildScopedBlockSelector } from './state-utils';\nimport { scopeSelector } from '../components/global-styles/utils';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\nimport { useSettings } from '../components/use-settings';\nimport { store as blockEditorStore } from '../store';\nimport { globalStylesDataKey } from '../store/private-keys';\nimport { unlock } from '../lock-unlock';\n\nconst { getResponsiveMediaQueries } = unlock( globalStylesEnginePrivateApis );\n\nconst BORDER_SIDES = [ 'Top', 'Right', 'Bottom', 'Left' ];\n\nconst styleSupportKeys = [\n\t...TYPOGRAPHY_SUPPORT_KEYS,\n\tBORDER_SUPPORT_KEY,\n\tCOLOR_SUPPORT_KEY,\n\tDIMENSIONS_SUPPORT_KEY,\n\tBACKGROUND_SUPPORT_KEY,\n\tSPACING_SUPPORT_KEY,\n\tSHADOW_SUPPORT_KEY,\n];\n\nconst hasStyleSupport = ( nameOrType ) =>\n\tstyleSupportKeys.some( ( key ) => hasBlockSupport( nameOrType, key ) );\n\n/**\n * Returns the inline styles to add depending on the style object\n *\n * @param {Object} styles Styles configuration.\n *\n * @return {Object} Flattened CSS variables declaration.\n */\nexport function getInlineStyles( styles = {} ) {\n\tconst output = {};\n\t// The goal is to move everything to server side generated engine styles\n\t// This is temporary as we absorb more and more styles into the engine.\n\tgetCSSRules( styles ).forEach( ( rule ) => {\n\t\toutput[ rule.key ] = rule.value;\n\t} );\n\n\treturn output;\n}\n\n/**\n * Returns fallback border styles for visible state border styles.\n *\n * State styles are emitted as stylesheet rules rather than inline styles, so\n * they cannot rely on the block-library inline-style attribute fallback rules.\n *\n * @param {Object} stateStyles State style object.\n * @return {Object|undefined} Style object containing fallback border styles.\n */\nfunction getStateFallbackBorderStyles( stateStyles ) {\n\tconst border = stateStyles?.border;\n\tif ( ! border ) {\n\t\treturn undefined;\n\t}\n\n\tconst hasBorderStyle = !! border.style;\n\tconst hasBorderColor = !! border.color;\n\tconst hasBorderWidth = !! border.width;\n\tconst fallbackBorder = {};\n\n\tif ( ! hasBorderStyle && ( hasBorderColor || hasBorderWidth ) ) {\n\t\tfallbackBorder.style = 'solid';\n\t}\n\n\tBORDER_SIDES.forEach( ( side ) => {\n\t\tconst sideKey = side.toLowerCase();\n\t\tconst sideBorder = border[ sideKey ];\n\t\tconst hasSideStyle = !! sideBorder?.style;\n\t\tconst hasSideColor = !! sideBorder?.color;\n\t\tconst hasSideWidth = !! sideBorder?.width;\n\n\t\tif (\n\t\t\t! hasBorderStyle &&\n\t\t\t! hasSideStyle &&\n\t\t\t( hasSideColor || hasSideWidth )\n\t\t) {\n\t\t\tfallbackBorder[ sideKey ] = { style: 'solid' };\n\t\t}\n\t} );\n\n\treturn cleanEmptyObject( { border: cleanEmptyObject( fallbackBorder ) } );\n}\n\n/**\n * Returns background reset CSS for a state that sets a solid background color.\n *\n * When a state sets `color.background` (a solid color) without also setting a\n * gradient (`color.gradient` or `background.gradient`), any gradient applied to\n * the default state via an inline `background` shorthand or `background-image`\n * declaration must be explicitly cleared. Without this, the gradient image layer\n * remains visible even though the solid hover color wins `background-color`.\n *\n * @param {Object} stateStyles State style object.\n * @param {string} selector CSS selector for the generated style.\n * @return {string|undefined} CSS string with background-image reset, or undefined.\n */\nfunction getStateBackgroundResetCSS( stateStyles, selector ) {\n\tconst hasSolidBackground = !! stateStyles?.color?.background;\n\n\tif ( ! hasSolidBackground ) {\n\t\treturn undefined;\n\t}\n\n\tconst hasColorGradient = !! stateStyles?.color?.gradient;\n\tconst hasBackgroundGradient =\n\t\t!! stateStyles?.background?.gradient ||\n\t\t!! stateStyles?.background?.backgroundImage;\n\n\tif ( hasColorGradient || hasBackgroundGradient ) {\n\t\treturn undefined;\n\t}\n\n\tconst declaration = 'background-image: unset !important';\n\treturn selector\n\t\t? `${ selector } { ${ declaration }; }`\n\t\t: `${ declaration };`;\n}\n\n/**\n * Returns fallback dimension styles that keep state styles aligned with the\n * default dimensions block-support output.\n *\n * @param {Object} stateStyles State style object.\n * @return {Object|undefined} Style object containing fallback dimension styles.\n */\nfunction getStateFallbackDimensionStyles( stateStyles ) {\n\tconst dimensions = stateStyles?.dimensions;\n\tif ( ! dimensions ) {\n\t\treturn undefined;\n\t}\n\n\tif ( isExplicitAspectRatio( dimensions.aspectRatio ) ) {\n\t\treturn {\n\t\t\tdimensions: {\n\t\t\t\tminHeight: 'unset',\n\t\t\t\theight: 'unset',\n\t\t\t},\n\t\t};\n\t}\n\n\tif ( dimensions.minHeight || dimensions.height ) {\n\t\treturn {\n\t\t\tdimensions: {\n\t\t\t\taspectRatio: 'unset',\n\t\t\t},\n\t\t};\n\t}\n}\n\n/**\n * Returns CSS for text alignment in a block instance state style object.\n *\n * Text alignment is not generated by the style engine because base block\n * alignment is serialized as a class name. State styles need a declaration\n * instead so viewport and pseudo-state values can override the default class.\n *\n * @param {Object} stateStyles State style object.\n * @param {string} selector CSS selector for the generated style.\n * @return {string|undefined} CSS string with the text alignment declaration.\n */\nfunction getStateTextAlignCSS( stateStyles, selector ) {\n\tconst textAlign = stateStyles?.typography?.textAlign;\n\n\tif ( typeof textAlign !== 'string' || ! textAlign ) {\n\t\treturn undefined;\n\t}\n\n\tconst declaration = `text-align: ${ getCSSValueFromRawStyle(\n\t\ttextAlign\n\t) } !important`;\n\treturn selector\n\t\t? `${ selector } { ${ declaration }; }`\n\t\t: `${ declaration };`;\n}\n\n/**\n * Generates CSS for a block instance state style object.\n *\n * State declarations need to win over preset utility classes, but fallback\n * border styles should not become important because they must not override\n * explicitly authored default border styles.\n *\n * @param {Object} stateStyles State style object.\n * @param {string} selector CSS selector for the generated style.\n * @return {string} Generated stylesheet.\n */\nexport function getStateStylesCSS( stateStyles, selector ) {\n\tconst fallbackDimensionStyles =\n\t\tgetStateFallbackDimensionStyles( stateStyles );\n\tconst stylesWithDimensionFallbacks = fallbackDimensionStyles\n\t\t? mergeStyleObjects( stateStyles, fallbackDimensionStyles )\n\t\t: stateStyles;\n\tconst css = compileCSS( stylesWithDimensionFallbacks, { selector } );\n\tconst importantCSS = css ? css.replace( /;/g, ' !important;' ) : undefined;\n\tconst fallbackBorderStyles = getStateFallbackBorderStyles( stateStyles );\n\tconst fallbackCSS = fallbackBorderStyles\n\t\t? compileCSS( fallbackBorderStyles, { selector } )\n\t\t: undefined;\n\tconst textAlignCSS = getStateTextAlignCSS( stateStyles, selector );\n\tconst backgroundResetCSS = getStateBackgroundResetCSS(\n\t\tstateStyles,\n\t\tselector\n\t);\n\n\treturn [ importantCSS, textAlignCSS, fallbackCSS, backgroundResetCSS ]\n\t\t.filter( Boolean )\n\t\t.join( '\\n' );\n}\n\nfunction isPlainObject( value ) {\n\treturn !! value && typeof value === 'object' && ! Array.isArray( value );\n}\n\nfunction mergeStyleObjects( target = {}, source = {} ) {\n\tconst merged = { ...target };\n\n\tObject.entries( source ).forEach( ( [ key, value ] ) => {\n\t\tmerged[ key ] =\n\t\t\tisPlainObject( value ) && isPlainObject( merged[ key ] )\n\t\t\t\t? mergeStyleObjects( merged[ key ], value )\n\t\t\t\t: value;\n\t} );\n\n\treturn merged;\n}\n\nfunction addStyleGroup( groups, selector, style ) {\n\tconst key = selector || '';\n\tconst existing = groups.get( key ) || { selector, style: {} };\n\n\tgroups.set( key, {\n\t\tselector,\n\t\tstyle: mergeStyleObjects( existing.style, style ),\n\t} );\n}\n\nfunction getStateStyleGroups( stateStyles, name ) {\n\tconst blockSelectors = getBlockType( name )?.selectors || {};\n\tconst groups = new Map();\n\n\tObject.entries( stateStyles || {} ).forEach(\n\t\t( [ feature, featureStyles ] ) => {\n\t\t\tconst featureSelectors = blockSelectors[ feature ];\n\n\t\t\tif ( typeof featureSelectors === 'string' ) {\n\t\t\t\taddStyleGroup( groups, featureSelectors, {\n\t\t\t\t\t[ feature ]: featureStyles,\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tisPlainObject( featureSelectors ) &&\n\t\t\t\tisPlainObject( featureStyles )\n\t\t\t) {\n\t\t\t\tconst remainingStyles = { ...featureStyles };\n\n\t\t\t\tObject.entries( featureSelectors ).forEach(\n\t\t\t\t\t( [ subfeature, subfeatureSelector ] ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tsubfeature === 'root' ||\n\t\t\t\t\t\t\ttypeof subfeatureSelector !== 'string' ||\n\t\t\t\t\t\t\t! Object.hasOwn( featureStyles, subfeature )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taddStyleGroup( groups, subfeatureSelector, {\n\t\t\t\t\t\t\t[ feature ]: {\n\t\t\t\t\t\t\t\t[ subfeature ]: featureStyles[ subfeature ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tdelete remainingStyles[ subfeature ];\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( Object.keys( remainingStyles ).length ) {\n\t\t\t\t\taddStyleGroup(\n\t\t\t\t\t\tgroups,\n\t\t\t\t\t\tfeatureSelectors.root || blockSelectors.root,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ feature ]: remainingStyles,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taddStyleGroup( groups, blockSelectors.root, {\n\t\t\t\t[ feature ]: featureStyles,\n\t\t\t} );\n\t\t}\n\t);\n\n\treturn Array.from( groups.values() );\n}\n\n/**\n * Generates CSS for block instance state styles, honoring feature selectors.\n *\n * @param {Object} stateStyles State style object.\n * @param {Object} options Generation options.\n * @param {string} options.name Block name.\n * @param {string} options.baseSelector Block-instance scoping selector.\n * @param {string=} options.state Optional pseudo-state, e.g. \":hover\".\n * @return {string|undefined} Generated stylesheet.\n */\nexport function getBlockStateStylesCSS( stateStyles, options ) {\n\tconst { name, baseSelector, state = '' } = options;\n\tconst rules = getStateStyleGroups( stateStyles, name )\n\t\t.map( ( { selector: blockSelector, style } ) =>\n\t\t\tgetStateStylesCSS(\n\t\t\t\tstyle,\n\t\t\t\tbuildScopedBlockSelector( baseSelector, blockSelector, state )\n\t\t\t)\n\t\t)\n\t\t.filter( Boolean );\n\n\treturn rules.length ? rules.join( '\\n' ) : undefined;\n}\n\n/**\n * Returns a style object with nested state/element keys removed.\n *\n * Viewport state objects can contain root declarations alongside nested\n * `elements` and pseudo-state styles. Only root declarations should be passed\n * to the style engine for the viewport root selector.\n *\n * @param {Object} stateStyles Style object for a selected state.\n * @param {string[]} nestedKeys Keys to remove from the root style object.\n * @return {Object|undefined} Root-only style object.\n */\nfunction getRootStateStyles( stateStyles, nestedKeys ) {\n\tif ( ! stateStyles ) {\n\t\treturn stateStyles;\n\t}\n\n\tconst rootStyles = { ...stateStyles };\n\tnestedKeys.forEach( ( key ) => {\n\t\tdelete rootStyles[ key ];\n\t} );\n\treturn rootStyles;\n}\n\n/**\n * Generates CSS rules for supported pseudo-state styles.\n *\n * @param {Object} style Block style object containing pseudo-state styles.\n * @param {string} name Block name.\n * @param {string} baseSelector Base selector used to scope generated CSS.\n * @return {string[]} Generated CSS rule strings.\n */\nfunction getPseudoStateCSSRules( style, name, baseSelector ) {\n\tconst validPseudoStates = VALID_BLOCK_PSEUDO_STATES[ name ];\n\tif ( ! validPseudoStates ) {\n\t\treturn [];\n\t}\n\n\tconst cssRules = [];\n\tvalidPseudoStates.forEach( ( pseudoState ) => {\n\t\tconst stateStyles = style?.[ pseudoState ];\n\t\tif ( stateStyles ) {\n\t\t\tconst css = getBlockStateStylesCSS( stateStyles, {\n\t\t\t\tname,\n\t\t\t\tbaseSelector,\n\t\t\t\tstate: pseudoState,\n\t\t\t} );\n\t\t\tif ( css ) {\n\t\t\t\tcssRules.push( css );\n\t\t\t}\n\t\t}\n\t} );\n\treturn cssRules;\n}\n\n/**\n * Generates CSS rules for responsive block instance style states.\n *\n * Each responsive state can contain root styles, element styles, and nested\n * pseudo-state styles. Generated rules are wrapped in the matching breakpoint\n * media query.\n *\n * @param {Object} style Block style object containing responsive states.\n * @param {string} name Block name.\n * @param {string} baseSelector Base selector used to scope generated CSS.\n * @param {Object} viewportSettings Viewport breakpoint settings.\n * @return {string[]} Generated CSS rule strings.\n */\nexport function getResponsiveStateCSSRules(\n\tstyle,\n\tname,\n\tbaseSelector,\n\tviewportSettings\n) {\n\tconst cssRules = [];\n\tconst validPseudoStates = VALID_BLOCK_PSEUDO_STATES[ name ] ?? [];\n\tconst nestedStateKeys = [ 'elements', ...validPseudoStates ];\n\tconst responsiveMediaQueries =\n\t\tgetResponsiveMediaQueries( viewportSettings );\n\n\tObject.entries( responsiveMediaQueries ).forEach(\n\t\t( [ viewport, mediaQuery ] ) => {\n\t\t\tconst viewportStyles = getStyleForState( style, {\n\t\t\t\tviewport,\n\t\t\t\tpseudo: DEFAULT_BLOCK_STYLE_STATE.pseudo,\n\t\t\t} );\n\t\t\tif ( ! viewportStyles ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst viewportCSSRules = [];\n\t\t\tconst rootCSS = getBlockStateStylesCSS(\n\t\t\t\tgetRootStateStyles( viewportStyles, nestedStateKeys ),\n\t\t\t\t{\n\t\t\t\t\tname,\n\t\t\t\t\tbaseSelector,\n\t\t\t\t}\n\t\t\t);\n\t\t\tif ( rootCSS ) {\n\t\t\t\tviewportCSSRules.push( rootCSS );\n\t\t\t}\n\n\t\t\tconst elementCSS = getElementCSSRules(\n\t\t\t\tviewportStyles.elements,\n\t\t\t\tname,\n\t\t\t\tbaseSelector\n\t\t\t);\n\t\t\tif ( elementCSS ) {\n\t\t\t\tviewportCSSRules.push( elementCSS );\n\t\t\t}\n\n\t\t\tviewportCSSRules.push(\n\t\t\t\t...getPseudoStateCSSRules( viewportStyles, name, baseSelector )\n\t\t\t);\n\n\t\t\tif ( viewportCSSRules.length ) {\n\t\t\t\tcssRules.push(\n\t\t\t\t\t`${ mediaQuery }{${ viewportCSSRules.join( '' ) }}`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t);\n\n\treturn cssRules;\n}\n\n/**\n * Returns the style value used to force-preview a selected state on canvas.\n *\n * Responsive pseudo states inherit from their default-viewport pseudo state.\n * For example, selecting `@mobile + :hover` should preview styles from\n * `:hover`, with `@mobile.:hover` values layered on top when present.\n *\n * @param {Object} style Block style object.\n * @param {Object} selectedState Selected block style state.\n * @return {Object|undefined} Style value for the canvas preview.\n */\nexport function getCanvasStateStyleValue( style, selectedState ) {\n\tconst stateValue = getStyleForState( style, selectedState );\n\tif ( ! hasViewportBlockStyleState( selectedState ) ) {\n\t\treturn stateValue;\n\t}\n\n\tconst defaultViewportState = {\n\t\t...selectedState,\n\t\tviewport: DEFAULT_BLOCK_STYLE_STATE.viewport,\n\t};\n\tconst defaultViewportStateValue = getStyleForState(\n\t\tstyle,\n\t\tdefaultViewportState\n\t);\n\n\tif ( defaultViewportStateValue && stateValue ) {\n\t\treturn mergeGlobalStyles( defaultViewportStateValue, stateValue );\n\t}\n\treturn stateValue || defaultViewportStateValue;\n}\n\n/**\n * Filters registered block settings, extending attributes to include `style` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttribute( settings ) {\n\tif (\n\t\t! hasStyleSupport( settings ) &&\n\t\t! hasBlockSupport( settings, 'customCSS', true )\n\t) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.style ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * A dictionary of paths to flag skipping block support serialization as the key,\n * with values providing the style paths to be omitted from serialization.\n *\n * @constant\n * @type {Record<string, string[]>}\n */\nconst skipSerializationPathsEdit = {\n\t[ `${ BORDER_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [ 'border' ],\n\t[ `${ COLOR_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tCOLOR_SUPPORT_KEY,\n\t],\n\t[ `${ TYPOGRAPHY_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t],\n\t[ `${ DIMENSIONS_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t],\n\t[ `${ SPACING_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tSPACING_SUPPORT_KEY,\n\t],\n\t[ `${ SHADOW_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [\n\t\tSHADOW_SUPPORT_KEY,\n\t],\n};\n\n/**\n * A dictionary of paths to flag skipping block support serialization as the key,\n * with values providing the style paths to be omitted from serialization.\n *\n * Extends the Edit skip paths to enable skipping additional paths in just\n * the Save component. This allows a block support to be serialized within the\n * editor, while using an alternate approach, such as server-side rendering, when\n * the support is saved.\n *\n * @constant\n * @type {Record<string, string[]>}\n */\nconst skipSerializationPathsSave = {\n\t...skipSerializationPathsEdit,\n\t[ `${ DIMENSIONS_SUPPORT_KEY }.aspectRatio` ]: [\n\t\t`${ DIMENSIONS_SUPPORT_KEY }.aspectRatio`,\n\t], // Skip serialization of aspect ratio in save mode.\n\t[ `${ BACKGROUND_SUPPORT_KEY }` ]: [ BACKGROUND_SUPPORT_KEY ], // Skip serialization of background support in save mode.\n};\n\nconst skipSerializationPathsSaveChecks = {\n\t[ `${ DIMENSIONS_SUPPORT_KEY }.aspectRatio` ]: true,\n\t[ `${ BACKGROUND_SUPPORT_KEY }` ]: true,\n};\n\n/**\n * A dictionary used to normalize feature names between support flags, style\n * object properties and __experimentSkipSerialization configuration arrays.\n *\n * This allows not having to provide a migration for a support flag and possible\n * backwards compatibility bridges, while still achieving consistency between\n * the support flag and the skip serialization array.\n *\n * @constant\n * @type {Record<string, string>}\n */\nconst renamedFeatures = { gradients: 'gradient' };\n\n/**\n * A utility function used to remove one or more paths from a style object.\n * Works in a way similar to Lodash's `omit()`. See unit tests and examples below.\n *\n * It supports a single string path:\n *\n * ```\n * omitStyle( { color: 'red' }, 'color' ); // {}\n * ```\n *\n * or an array of paths:\n *\n * ```\n * omitStyle( { color: 'red', background: '#fff' }, [ 'color', 'background' ] ); // {}\n * ```\n *\n * It also allows you to specify paths at multiple levels in a string.\n *\n * ```\n * omitStyle( { typography: { textDecoration: 'underline' } }, 'typography.textDecoration' ); // {}\n * ```\n *\n * You can remove multiple paths at the same time:\n *\n * ```\n * omitStyle(\n * \t\t{\n * \t\t\ttypography: {\n * \t\t\t\ttextDecoration: 'underline',\n * \t\t\t\ttextTransform: 'uppercase',\n * \t\t\t}\n *\t\t},\n *\t\t[\n * \t\t\t'typography.textDecoration',\n * \t\t\t'typography.textTransform',\n *\t\t]\n * );\n * // {}\n * ```\n *\n * You can also specify nested paths as arrays:\n *\n * ```\n * omitStyle(\n * \t\t{\n * \t\t\ttypography: {\n * \t\t\t\ttextDecoration: 'underline',\n * \t\t\t\ttextTransform: 'uppercase',\n * \t\t\t}\n *\t\t},\n *\t\t[\n * \t\t\t[ 'typography', 'textDecoration' ],\n * \t\t\t[ 'typography', 'textTransform' ],\n *\t\t]\n * );\n * // {}\n * ```\n *\n * With regards to nesting of styles, infinite depth is supported:\n *\n * ```\n * omitStyle(\n * \t\t{\n * \t\t\tborder: {\n * \t\t\t\tradius: {\n * \t\t\t\t\ttopLeft: '10px',\n * \t\t\t\t\ttopRight: '0.5rem',\n * \t\t\t\t}\n * \t\t\t}\n *\t\t},\n *\t\t[\n * \t\t\t[ 'border', 'radius', 'topRight' ],\n *\t\t]\n * );\n * // { border: { radius: { topLeft: '10px' } } }\n * ```\n *\n * The third argument, `preserveReference`, defines how to treat the input style object.\n * It is mostly necessary to properly handle mutation when recursively handling the style object.\n * Defaulting to `false`, this will always create a new object, avoiding to mutate `style`.\n * However, when recursing, we change that value to `true` in order to work with a single copy\n * of the original style object.\n *\n * @see https://lodash.com/docs/4.17.15#omit\n *\n * @param {Object} style Styles object.\n * @param {Array|string} paths Paths to remove.\n * @param {boolean} preserveReference True to mutate the `style` object, false otherwise.\n * @return {Object} Styles object with the specified paths removed.\n */\nexport function omitStyle( style, paths, preserveReference = false ) {\n\tif ( ! style ) {\n\t\treturn style;\n\t}\n\n\tlet newStyle = style;\n\tif ( ! preserveReference ) {\n\t\tnewStyle = JSON.parse( JSON.stringify( style ) );\n\t}\n\n\tif ( ! Array.isArray( paths ) ) {\n\t\tpaths = [ paths ];\n\t}\n\n\tpaths.forEach( ( path ) => {\n\t\tif ( ! Array.isArray( path ) ) {\n\t\t\tpath = path.split( '.' );\n\t\t}\n\n\t\tif ( path.length > 1 ) {\n\t\t\tconst [ firstSubpath, ...restPath ] = path;\n\t\t\tomitStyle( newStyle[ firstSubpath ], [ restPath ], true );\n\t\t} else if ( path.length === 1 ) {\n\t\t\tdelete newStyle[ path[ 0 ] ];\n\t\t}\n\t} );\n\n\treturn newStyle;\n}\n\n/**\n * Override props assigned to save component to inject the CSS variables definition.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type.\n * @param {Object} attributes Block attributes.\n * @param {?Record<string, string[]>} skipPaths An object of keys and paths to skip serialization.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps(\n\tprops,\n\tblockNameOrType,\n\tattributes,\n\tskipPaths = skipSerializationPathsSave\n) {\n\tif ( ! hasStyleSupport( blockNameOrType ) ) {\n\t\treturn props;\n\t}\n\n\tlet { style } = attributes;\n\tObject.entries( skipPaths ).forEach( ( [ indicator, path ] ) => {\n\t\tconst skipSerialization =\n\t\t\tskipSerializationPathsSaveChecks[ indicator ] ||\n\t\t\tgetBlockSupport( blockNameOrType, indicator );\n\n\t\tif ( skipSerialization === true ) {\n\t\t\tstyle = omitStyle( style, path );\n\t\t}\n\n\t\tif ( Array.isArray( skipSerialization ) ) {\n\t\t\tskipSerialization.forEach( ( featureName ) => {\n\t\t\t\tconst feature = renamedFeatures[ featureName ] || featureName;\n\t\t\t\tstyle = omitStyle( style, [ [ ...path, feature ] ] );\n\t\t\t} );\n\t\t}\n\t} );\n\n\tprops.style = {\n\t\t...getInlineStyles( style ),\n\t\t...props.style,\n\t};\n\n\treturn props;\n}\n\nfunction BlockStyleControls( {\n\tclientId,\n\tname,\n\tsetAttributes,\n\tstyle,\n\t__unstableParentLayout,\n} ) {\n\tconst settings = useBlockSettings( name, __unstableParentLayout );\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst { globalBlockStyles, selectedState, showStateOnCanvas } = useSelect(\n\t\t( select ) => {\n\t\t\tconst blockEditorSelect = select( blockEditorStore );\n\t\t\tconst {\n\t\t\t\tgetSelectedBlockStyleState,\n\t\t\t\tisSelectedBlockStyleStateShownOnCanvas,\n\t\t\t} = unlock( blockEditorSelect );\n\t\t\tconst editorSettings = blockEditorSelect.getSettings();\n\t\t\treturn {\n\t\t\t\tglobalBlockStyles:\n\t\t\t\t\teditorSettings?.[ globalStylesDataKey ]?.blocks?.[ name ],\n\t\t\t\tselectedState: getSelectedBlockStyleState( clientId ),\n\t\t\t\tshowStateOnCanvas:\n\t\t\t\t\tisSelectedBlockStyleStateShownOnCanvas( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, name ]\n\t);\n\tconst isPseudoSelectorState = hasPseudoBlockStyleState( selectedState );\n\n\t// Inject state styles onto the editor canvas so the selected state is\n\t// visible while editing. Scoped to this block instance via data-block so\n\t// other blocks of the same type are not affected. Must be called before\n\t// any early returns because it is a hook.\n\tconst canvasStateCSS = useMemo( () => {\n\t\tif ( ! showStateOnCanvas || ! isPseudoSelectorState ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst globalStateValue = getCanvasStateStyleValue(\n\t\t\tglobalBlockStyles,\n\t\t\tselectedState\n\t\t);\n\t\tconst instanceStateValue = getCanvasStateStyleValue(\n\t\t\tstyle,\n\t\t\tselectedState\n\t\t);\n\t\tlet stateValue;\n\n\t\tif ( globalStateValue && instanceStateValue ) {\n\t\t\tstateValue = mergeGlobalStyles(\n\t\t\t\tglobalStateValue,\n\t\t\t\tinstanceStateValue\n\t\t\t);\n\t\t} else if ( instanceStateValue ) {\n\t\t\tstateValue = instanceStateValue;\n\t\t} else if ( globalStateValue ) {\n\t\t\tstateValue = globalStateValue;\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn getBlockStateStylesCSS( stateValue, {\n\t\t\tname,\n\t\t\tbaseSelector: `[data-block=\"${ clientId }\"]`,\n\t\t} );\n\t}, [\n\t\tshowStateOnCanvas,\n\t\tisPseudoSelectorState,\n\t\tglobalBlockStyles,\n\t\tstyle,\n\t\tselectedState,\n\t\tclientId,\n\t\tname,\n\t] );\n\tuseStyleOverride( { css: canvasStateCSS } );\n\n\tif ( blockEditingMode !== 'default' ) {\n\t\treturn null;\n\t}\n\n\tconst panelSettings = {\n\t\t...settings,\n\t\ttypography: {\n\t\t\t...settings.typography,\n\t\t\t// The text alignment UI for individual blocks is rendered in\n\t\t\t// the block toolbar, so disable it here.\n\t\t\ttextAlign: false,\n\t\t},\n\t};\n\n\tconst passedProps = {\n\t\tclientId,\n\t\tname,\n\t\tsetAttributes,\n\t\tsettings: panelSettings,\n\t};\n\n\treturn (\n\t\t<BlockStyleStateProvider value={ selectedState }>\n\t\t\t<ElementsEdit { ...passedProps } />\n\t\t\t<BackgroundImagePanel { ...passedProps } />\n\t\t\t<TypographyPanel { ...passedProps } />\n\t\t\t<BorderPanel { ...passedProps } />\n\t\t\t<DimensionsPanel { ...passedProps } />\n\t\t</BlockStyleStateProvider>\n\t);\n}\n\nexport default {\n\tedit: BlockStyleControls,\n\thasSupport: hasStyleSupport,\n\taddSaveProps,\n\tattributeKeys: [ 'style' ],\n\tuseBlockProps,\n};\n\n// Defines which element types are supported, including their hover styles or\n// any other elements that have been included under a single element type\n// e.g. heading and h1-h6.\nconst elementTypes = [\n\t{ elementType: 'button' },\n\t{ elementType: 'link', pseudo: [ ':hover' ] },\n\t{\n\t\telementType: 'heading',\n\t\telements: [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ],\n\t},\n];\n\n// Used for generating the instance ID\nconst STYLE_BLOCK_PROPS_REFERENCE = {};\n\n/**\n * Generates CSS rules for block element styles (buttons, links, headings, etc.).\n *\n * Iterates over supported element types and compiles their styles, including\n * pseudo-selectors (e.g. :hover) and related sub-elements (e.g. h1-h6 for headings),\n * into scoped CSS rule strings.\n *\n * @param {Object} blockElementStyles The block's `style.elements` object.\n * @param {string} blockName The block name, used for skip-serialization checks.\n * @param {string} baseSelector The base CSS selector to scope rules under.\n * @return {string|undefined} Concatenated CSS rules string, or undefined if none.\n */\nfunction getElementCSSRules( blockElementStyles, blockName, baseSelector ) {\n\tif ( ! blockElementStyles ) {\n\t\treturn;\n\t}\n\n\tconst rules = [];\n\n\telementTypes.forEach( ( { elementType, pseudo, elements } ) => {\n\t\tconst skipSerialization = shouldSkipSerialization(\n\t\t\tblockName,\n\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\telementType\n\t\t);\n\n\t\tif ( skipSerialization ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elementStyles = blockElementStyles?.[ elementType ];\n\n\t\t// Process primary element type styles.\n\t\tif ( elementStyles ) {\n\t\t\tconst selector = scopeSelector(\n\t\t\t\tbaseSelector,\n\t\t\t\tELEMENTS[ elementType ]\n\t\t\t);\n\n\t\t\trules.push( compileCSS( elementStyles, { selector } ) );\n\n\t\t\t// Process any interactive states for the element type.\n\t\t\tif ( pseudo ) {\n\t\t\t\tpseudo.forEach( ( pseudoSelector ) => {\n\t\t\t\t\tif ( elementStyles[ pseudoSelector ] ) {\n\t\t\t\t\t\trules.push(\n\t\t\t\t\t\t\tcompileCSS( elementStyles[ pseudoSelector ], {\n\t\t\t\t\t\t\t\tselector: scopeSelector(\n\t\t\t\t\t\t\t\t\tbaseSelector,\n\t\t\t\t\t\t\t\t\t`${ ELEMENTS[ elementType ] }${ pseudoSelector }`\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t// Process related elements e.g. h1-h6 for headings\n\t\tif ( elements ) {\n\t\t\telements.forEach( ( element ) => {\n\t\t\t\tif ( blockElementStyles[ element ] ) {\n\t\t\t\t\trules.push(\n\t\t\t\t\t\tcompileCSS( blockElementStyles[ element ], {\n\t\t\t\t\t\t\tselector: scopeSelector(\n\t\t\t\t\t\t\t\tbaseSelector,\n\t\t\t\t\t\t\t\tELEMENTS[ element ]\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn rules.length > 0 ? rules.join( '' ) : undefined;\n}\n\nfunction useBlockProps( { name, style } ) {\n\tconst blockElementsContainerIdentifier = useInstanceId(\n\t\tSTYLE_BLOCK_PROPS_REFERENCE,\n\t\t'wp-elements'\n\t);\n\n\tconst baseElementSelector = `.${ blockElementsContainerIdentifier }`;\n\tconst blockElementStyles = style?.elements;\n\tconst [ viewportSettings ] = useSettings( 'viewport' );\n\n\tconst styles = useMemo( () => {\n\t\tconst cssRules = [];\n\n\t\tconst elementCSS = getElementCSSRules(\n\t\t\tblockElementStyles,\n\t\t\tname,\n\t\t\tbaseElementSelector\n\t\t);\n\t\tif ( elementCSS ) {\n\t\t\tcssRules.push( elementCSS );\n\t\t}\n\n\t\tcssRules.push(\n\t\t\t...getPseudoStateCSSRules( style, name, baseElementSelector )\n\t\t);\n\n\t\tcssRules.push(\n\t\t\t...getResponsiveStateCSSRules(\n\t\t\t\tstyle,\n\t\t\t\tname,\n\t\t\t\tbaseElementSelector,\n\t\t\t\tviewportSettings\n\t\t\t)\n\t\t);\n\n\t\treturn cssRules.length > 0 ? cssRules.join( '' ) : undefined;\n\t}, [\n\t\tbaseElementSelector,\n\t\tblockElementStyles,\n\t\tname,\n\t\tstyle,\n\t\tviewportSettings,\n\t] );\n\n\tuseStyleOverride( { css: styles } );\n\n\treturn addSaveProps(\n\t\t{ className: blockElementsContainerIdentifier },\n\t\tname,\n\t\t{ style },\n\t\tskipSerializationPathsEdit\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/style/addAttribute',\n\taddAttribute\n);\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/hooks/supports.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\n\nconst ALIGN_SUPPORT_KEY = 'align';\nconst ALIGN_WIDE_SUPPORT_KEY = 'alignWide';\nconst BORDER_SUPPORT_KEY = '__experimentalBorder';\nconst COLOR_SUPPORT_KEY = 'color';\nconst CUSTOM_CLASS_NAME_SUPPORT_KEY = 'customClassName';\nconst FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';\nconst FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';\nconst LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight';\n/**\n * Key within block settings' support array indicating support for font style.\n */\nconst FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';\n/**\n * Key within block settings' support array indicating support for font weight.\n */\nconst FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';\n/**\n * Key within block settings' supports array indicating support for text\n * align e.g. settings found in `block.json`.\n */\nconst TEXT_ALIGN_SUPPORT_KEY = 'typography.textAlign';\n/**\n * Key within block settings' supports array indicating support for text\n * columns e.g. settings found in `block.json`.\n */\nconst TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns';\n/**\n * Key within block settings' supports array indicating support for text\n * decorations e.g. settings found in `block.json`.\n */\nconst TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration';\n/**\n * Key within block settings' supports array indicating support for writing mode\n * e.g. settings found in `block.json`.\n */\nconst WRITING_MODE_SUPPORT_KEY = 'typography.__experimentalWritingMode';\n/**\n * Key within block settings' supports array indicating support for text\n * transforms e.g. settings found in `block.json`.\n */\nconst TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';\n\n/**\n * Key within block settings' supports array indicating support for letter-spacing\n * e.g. settings found in `block.json`.\n */\nconst LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';\nconst LAYOUT_SUPPORT_KEY = 'layout';\nconst TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_ALIGN_SUPPORT_KEY,\n\tTEXT_COLUMNS_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tWRITING_MODE_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\nconst EFFECTS_SUPPORT_KEYS = [ 'shadow' ];\nconst SPACING_SUPPORT_KEY = 'spacing';\nconst styleSupportKeys = [\n\t...EFFECTS_SUPPORT_KEYS,\n\t...TYPOGRAPHY_SUPPORT_KEYS,\n\tBORDER_SUPPORT_KEY,\n\tCOLOR_SUPPORT_KEY,\n\tSPACING_SUPPORT_KEY,\n];\n\n/**\n * Returns true if the block defines support for align.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasAlignSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, ALIGN_SUPPORT_KEY );\n\n/**\n * Returns the block support value for align, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getAlignSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, ALIGN_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for align wide.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasAlignWideSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, ALIGN_WIDE_SUPPORT_KEY );\n\n/**\n * Returns the block support value for align wide, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getAlignWideSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, ALIGN_WIDE_SUPPORT_KEY );\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( nameOrType, feature = 'any' ) {\n\tconst support = getBlockSupport( nameOrType, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Get block support for border properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Border feature to get.\n *\n * @return {unknown} The block support.\n */\nexport const getBorderSupport = ( nameOrType, feature ) =>\n\tgetBlockSupport( nameOrType, [ BORDER_SUPPORT_KEY, feature ] );\n\n/**\n * Returns true if the block defines support for color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\n/**\n * Returns true if the block defines support for link color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasLinkColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\n/**\n * Returns true if the block defines support for gradient color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasGradientSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\n/**\n * Returns true if the block defines support for background color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasBackgroundColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\n/**\n * Returns true if the block defines support for text-align.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasTextAlignSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, TEXT_ALIGN_SUPPORT_KEY );\n\n/**\n * Returns the block support value for text-align, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getTextAlignSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, TEXT_ALIGN_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for background color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasTextColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Get block support for color properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Color feature to get.\n *\n * @return {unknown} The block support.\n */\nexport const getColorSupport = ( nameOrType, feature ) =>\n\tgetBlockSupport( nameOrType, [ COLOR_SUPPORT_KEY, feature ] );\n\n/**\n * Returns true if the block defines support for custom class name.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasCustomClassNameSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true );\n\n/**\n * Returns the block support value for custom class name, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getCustomClassNameSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true );\n\n/**\n * Returns true if the block defines support for font family.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasFontFamilySupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, FONT_FAMILY_SUPPORT_KEY );\n\n/**\n * Returns the block support value for font family, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getFontFamilySupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, FONT_FAMILY_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for font size.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasFontSizeSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, FONT_SIZE_SUPPORT_KEY );\n\n/**\n * Returns the block support value for font size, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getFontSizeSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, FONT_SIZE_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for layout.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasLayoutSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, LAYOUT_SUPPORT_KEY );\n\n/**\n * Returns the block support value for layout, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getLayoutSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, LAYOUT_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for style.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasStyleSupport = ( nameOrType ) =>\n\tstyleSupportKeys.some( ( key ) => hasBlockSupport( nameOrType, key ) );\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\n\nconst ALIGN_SUPPORT_KEY = 'align';\nconst ALIGN_WIDE_SUPPORT_KEY = 'alignWide';\nconst BORDER_SUPPORT_KEY = '__experimentalBorder';\nconst COLOR_SUPPORT_KEY = 'color';\nconst CUSTOM_CLASS_NAME_SUPPORT_KEY = 'customClassName';\nconst FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';\nconst FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';\nconst LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight';\n/**\n * Key within block settings' support array indicating support for font style.\n */\nconst FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';\n/**\n * Key within block settings' support array indicating support for font weight.\n */\nconst FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';\n/**\n * Key within block settings' supports array indicating support for text\n * align e.g. settings found in `block.json`.\n */\nconst TEXT_ALIGN_SUPPORT_KEY = 'typography.textAlign';\n/**\n * Key within block settings' supports array indicating support for text\n * columns e.g. settings found in `block.json`.\n */\nconst TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns';\n/**\n * Key within block settings' supports array indicating support for text\n * decorations e.g. settings found in `block.json`.\n */\nconst TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration';\n/**\n * Key within block settings' supports array indicating support for writing mode\n * e.g. settings found in `block.json`.\n */\nconst WRITING_MODE_SUPPORT_KEY = 'typography.__experimentalWritingMode';\n/**\n * Key within block settings' supports array indicating support for text\n * transforms e.g. settings found in `block.json`.\n */\nconst TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';\n\n/**\n * Key within block settings' supports array indicating support for letter-spacing\n * e.g. settings found in `block.json`.\n */\nconst LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';\nconst LAYOUT_SUPPORT_KEY = 'layout';\nconst TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_ALIGN_SUPPORT_KEY,\n\tTEXT_COLUMNS_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tWRITING_MODE_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\nconst EFFECTS_SUPPORT_KEYS = [ 'shadow' ];\nconst SPACING_SUPPORT_KEY = 'spacing';\nconst styleSupportKeys = [\n\t...EFFECTS_SUPPORT_KEYS,\n\t...TYPOGRAPHY_SUPPORT_KEYS,\n\tBORDER_SUPPORT_KEY,\n\tCOLOR_SUPPORT_KEY,\n\tSPACING_SUPPORT_KEY,\n];\n\n/**\n * Returns true if the block defines support for align.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasAlignSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, ALIGN_SUPPORT_KEY );\n\n/**\n * Returns the block support value for align, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getAlignSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, ALIGN_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for align wide.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasAlignWideSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, ALIGN_WIDE_SUPPORT_KEY );\n\n/**\n * Returns the block support value for align wide, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getAlignWideSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, ALIGN_WIDE_SUPPORT_KEY );\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( nameOrType, feature = 'any' ) {\n\tconst support = getBlockSupport( nameOrType, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Get block support for border properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Border feature to get.\n *\n * @return {unknown} The block support.\n */\nexport const getBorderSupport = ( nameOrType, feature ) =>\n\tgetBlockSupport( nameOrType, [ BORDER_SUPPORT_KEY, feature ] );\n\n/**\n * Returns true if the block defines support for color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\n/**\n * Returns true if the block defines support for link color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasLinkColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\n/**\n * Returns true if the block defines support for gradient color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasGradientSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\n/**\n * Returns true if the block defines support for background color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasBackgroundColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\n/**\n * Returns true if the block defines support for text-align.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasTextAlignSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, TEXT_ALIGN_SUPPORT_KEY );\n\n/**\n * Returns the block support value for text-align, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getTextAlignSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, TEXT_ALIGN_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for background color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasTextColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Get block support for color properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Color feature to get.\n *\n * @return {unknown} The block support.\n */\nexport const getColorSupport = ( nameOrType, feature ) =>\n\tgetBlockSupport( nameOrType, [ COLOR_SUPPORT_KEY, feature ] );\n\n/**\n * Returns true if the block defines support for custom class name.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasCustomClassNameSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true );\n\n/**\n * Returns the block support value for custom class name, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getCustomClassNameSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true );\n\n/**\n * Returns true if the block defines support for font family.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasFontFamilySupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, FONT_FAMILY_SUPPORT_KEY );\n\n/**\n * Returns the block support value for font family, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getFontFamilySupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, FONT_FAMILY_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for font size.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasFontSizeSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, FONT_SIZE_SUPPORT_KEY );\n\n/**\n * Returns the block support value for font size, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getFontSizeSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, FONT_SIZE_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for layout.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasLayoutSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, LAYOUT_SUPPORT_KEY );\n\n/**\n * Returns the block support value for layout, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getLayoutSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, LAYOUT_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for style.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasStyleSupport = ( nameOrType ) =>\n\tstyleSupportKeys.some( ( key ) => hasBlockSupport( nameOrType, key ) );\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -3,14 +3,18 @@ import clsx from "clsx";
3
3
  import { __ } from "@wordpress/i18n";
4
4
  import { getBlockSupport, hasBlockSupport } from "@wordpress/blocks";
5
5
  import { alignLeft, alignRight, alignCenter } from "@wordpress/icons";
6
+ import { useSelect } from "@wordpress/data";
6
7
  import { AlignmentControl, BlockControls } from "../components/index.mjs";
7
8
  import { useBlockEditingMode } from "../components/block-editing-mode/index.mjs";
8
9
  import {
9
- cleanEmptyObject,
10
- shouldSkipSerialization,
11
- useBlockSettings
12
- } from "./utils.mjs";
10
+ getStyleForState,
11
+ hasViewportBlockStyleState,
12
+ setStyleForState
13
+ } from "./block-style-state.mjs";
14
+ import { shouldSkipSerialization, useBlockSettings } from "./utils.mjs";
13
15
  import { TYPOGRAPHY_SUPPORT_KEY } from "./typography.mjs";
16
+ import { store as blockEditorStore } from "../store/index.mjs";
17
+ import { unlock } from "../lock-unlock.mjs";
14
18
  import { jsx } from "react/jsx-runtime";
15
19
  var TEXT_ALIGN_SUPPORT_KEY = "typography.textAlign";
16
20
  var TEXT_ALIGNMENT_OPTIONS = [
@@ -40,7 +44,11 @@ function getValidTextAlignments(blockTextAlign) {
40
44
  }
41
45
  return blockTextAlign === true ? VALID_TEXT_ALIGNMENTS : NO_TEXT_ALIGNMENTS;
42
46
  }
47
+ function getTextAlignControlGroup(isResponsiveEditing, selectedState) {
48
+ return isResponsiveEditing && hasViewportBlockStyleState(selectedState) ? "style-state" : "block";
49
+ }
43
50
  function BlockEditTextAlignmentToolbarControlsPure({
51
+ clientId,
44
52
  style,
45
53
  name: blockName,
46
54
  setAttributes
@@ -48,6 +56,19 @@ function BlockEditTextAlignmentToolbarControlsPure({
48
56
  const settings = useBlockSettings(blockName);
49
57
  const hasTextAlignControl = settings?.typography?.textAlign;
50
58
  const blockEditingMode = useBlockEditingMode();
59
+ const { selectedState, isResponsiveEditing } = useSelect(
60
+ (select) => {
61
+ const {
62
+ getSelectedBlockStyleState,
63
+ isResponsiveEditing: getIsResponsiveEditing
64
+ } = unlock(select(blockEditorStore));
65
+ return {
66
+ selectedState: getSelectedBlockStyleState(clientId),
67
+ isResponsiveEditing: getIsResponsiveEditing()
68
+ };
69
+ },
70
+ [clientId]
71
+ );
51
72
  if (!hasTextAlignControl || blockEditingMode !== "default") {
52
73
  return null;
53
74
  }
@@ -60,20 +81,27 @@ function BlockEditTextAlignmentToolbarControlsPure({
60
81
  const textAlignmentControls = TEXT_ALIGNMENT_OPTIONS.filter(
61
82
  (control) => validTextAlignments.includes(control.align)
62
83
  );
84
+ const stateStyle = getStyleForState(style, selectedState);
85
+ const controlsGroup = getTextAlignControlGroup(
86
+ isResponsiveEditing,
87
+ selectedState
88
+ );
63
89
  const onChange = (newTextAlignValue) => {
64
- const newStyle = {
65
- ...style,
90
+ const newStateStyle = {
91
+ ...stateStyle,
66
92
  typography: {
67
- ...style?.typography,
93
+ ...stateStyle?.typography,
68
94
  textAlign: newTextAlignValue
69
95
  }
70
96
  };
71
- setAttributes({ style: cleanEmptyObject(newStyle) });
97
+ setAttributes({
98
+ style: setStyleForState(style, selectedState, newStateStyle)
99
+ });
72
100
  };
73
- return /* @__PURE__ */ jsx(BlockControls, { group: "block", children: /* @__PURE__ */ jsx(
101
+ return /* @__PURE__ */ jsx(BlockControls, { group: controlsGroup, children: /* @__PURE__ */ jsx(
74
102
  AlignmentControl,
75
103
  {
76
- value: style?.typography?.textAlign,
104
+ value: stateStyle?.typography?.textAlign,
77
105
  onChange,
78
106
  alignmentControls: textAlignmentControls
79
107
  }
@@ -130,6 +158,7 @@ export {
130
158
  TEXT_ALIGN_SUPPORT_KEY,
131
159
  addAssignedTextAlign,
132
160
  text_align_default as default,
161
+ getTextAlignControlGroup,
133
162
  getValidTextAlignments
134
163
  };
135
164
  //# sourceMappingURL=text-align.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/hooks/text-align.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { alignLeft, alignRight, alignCenter } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { AlignmentControl, BlockControls } from '../components';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport { TYPOGRAPHY_SUPPORT_KEY } from './typography';\n\nexport const TEXT_ALIGN_SUPPORT_KEY = 'typography.textAlign';\n\nconst TEXT_ALIGNMENT_OPTIONS = [\n\t{\n\t\ticon: alignLeft,\n\t\ttitle: __( 'Align text left' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: alignCenter,\n\t\ttitle: __( 'Align text center' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: alignRight,\n\t\ttitle: __( 'Align text right' ),\n\t\talign: 'right',\n\t},\n];\n\nconst VALID_TEXT_ALIGNMENTS = [ 'left', 'center', 'right' ];\nconst NO_TEXT_ALIGNMENTS = [];\n\n/**\n * Returns the valid text alignments.\n * Takes into consideration the text aligns supported by a block.\n * Exported just for testing purposes, not exported outside the module.\n *\n * @param {?boolean|string[]} blockTextAlign Text aligns supported by the block.\n *\n * @return {string[]} Valid text alignments.\n */\nexport function getValidTextAlignments( blockTextAlign ) {\n\tif ( Array.isArray( blockTextAlign ) ) {\n\t\treturn VALID_TEXT_ALIGNMENTS.filter( ( textAlign ) =>\n\t\t\tblockTextAlign.includes( textAlign )\n\t\t);\n\t}\n\n\treturn blockTextAlign === true ? VALID_TEXT_ALIGNMENTS : NO_TEXT_ALIGNMENTS;\n}\n\nfunction BlockEditTextAlignmentToolbarControlsPure( {\n\tstyle,\n\tname: blockName,\n\tsetAttributes,\n} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst hasTextAlignControl = settings?.typography?.textAlign;\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tif ( ! hasTextAlignControl || blockEditingMode !== 'default' ) {\n\t\treturn null;\n\t}\n\n\tconst validTextAlignments = getValidTextAlignments(\n\t\tgetBlockSupport( blockName, TEXT_ALIGN_SUPPORT_KEY )\n\t);\n\tif ( ! validTextAlignments.length ) {\n\t\treturn null;\n\t}\n\n\tconst textAlignmentControls = TEXT_ALIGNMENT_OPTIONS.filter( ( control ) =>\n\t\tvalidTextAlignments.includes( control.align )\n\t);\n\n\tconst onChange = ( newTextAlignValue ) => {\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\ttypography: {\n\t\t\t\t...style?.typography,\n\t\t\t\ttextAlign: newTextAlignValue,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( { style: cleanEmptyObject( newStyle ) } );\n\t};\n\n\treturn (\n\t\t<BlockControls group=\"block\">\n\t\t\t<AlignmentControl\n\t\t\t\tvalue={ style?.typography?.textAlign }\n\t\t\t\tonChange={ onChange }\n\t\t\t\talignmentControls={ textAlignmentControls }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\nexport default {\n\tedit: BlockEditTextAlignmentToolbarControlsPure,\n\tuseBlockProps,\n\taddSaveProps: addAssignedTextAlign,\n\tattributeKeys: [ 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, TEXT_ALIGN_SUPPORT_KEY, false );\n\t},\n};\n\nfunction useBlockProps( { name, style } ) {\n\tif ( ! style?.typography?.textAlign ) {\n\t\treturn null;\n\t}\n\n\tconst validTextAlignments = getValidTextAlignments(\n\t\tgetBlockSupport( name, TEXT_ALIGN_SUPPORT_KEY )\n\t);\n\n\tif ( ! validTextAlignments.length ) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tshouldSkipSerialization( name, TYPOGRAPHY_SUPPORT_KEY, 'textAlign' )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst textAlign = style.typography.textAlign;\n\n\tconst className = clsx( {\n\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t} );\n\treturn { className };\n}\n\n/**\n * Override props assigned to save component to inject text alignment class\n * name if block supports it.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addAssignedTextAlign( props, blockType, attributes ) {\n\tif ( ! attributes?.style?.typography?.textAlign ) {\n\t\treturn props;\n\t}\n\n\tconst { textAlign } = attributes.style.typography;\n\tconst blockTextAlign = getBlockSupport( blockType, TEXT_ALIGN_SUPPORT_KEY );\n\tconst isTextAlignValid =\n\t\tgetValidTextAlignments( blockTextAlign ).includes( textAlign );\n\tif (\n\t\tisTextAlignValid &&\n\t\t! shouldSkipSerialization(\n\t\t\tblockType,\n\t\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t\t'textAlign'\n\t\t)\n\t) {\n\t\tprops.className = clsx(\n\t\t\t`has-text-align-${ textAlign }`,\n\t\t\tprops.className\n\t\t);\n\t}\n\treturn props;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { __ } from '@wordpress/i18n';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { alignLeft, alignRight, alignCenter } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { AlignmentControl, BlockControls } from '../components';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\nimport {\n\tgetStyleForState,\n\thasViewportBlockStyleState,\n\tsetStyleForState,\n} from './block-style-state';\nimport { shouldSkipSerialization, useBlockSettings } from './utils';\nimport { TYPOGRAPHY_SUPPORT_KEY } from './typography';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nexport const TEXT_ALIGN_SUPPORT_KEY = 'typography.textAlign';\n\nconst TEXT_ALIGNMENT_OPTIONS = [\n\t{\n\t\ticon: alignLeft,\n\t\ttitle: __( 'Align text left' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: alignCenter,\n\t\ttitle: __( 'Align text center' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: alignRight,\n\t\ttitle: __( 'Align text right' ),\n\t\talign: 'right',\n\t},\n];\n\nconst VALID_TEXT_ALIGNMENTS = [ 'left', 'center', 'right' ];\nconst NO_TEXT_ALIGNMENTS = [];\n\n/**\n * Returns the valid text alignments.\n * Takes into consideration the text aligns supported by a block.\n * Exported just for testing purposes, not exported outside the module.\n *\n * @param {?boolean|string[]} blockTextAlign Text aligns supported by the block.\n *\n * @return {string[]} Valid text alignments.\n */\nexport function getValidTextAlignments( blockTextAlign ) {\n\tif ( Array.isArray( blockTextAlign ) ) {\n\t\treturn VALID_TEXT_ALIGNMENTS.filter( ( textAlign ) =>\n\t\t\tblockTextAlign.includes( textAlign )\n\t\t);\n\t}\n\n\treturn blockTextAlign === true ? VALID_TEXT_ALIGNMENTS : NO_TEXT_ALIGNMENTS;\n}\n\nexport function getTextAlignControlGroup( isResponsiveEditing, selectedState ) {\n\treturn isResponsiveEditing && hasViewportBlockStyleState( selectedState )\n\t\t? 'style-state'\n\t\t: 'block';\n}\n\nfunction BlockEditTextAlignmentToolbarControlsPure( {\n\tclientId,\n\tstyle,\n\tname: blockName,\n\tsetAttributes,\n} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst hasTextAlignControl = settings?.typography?.textAlign;\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst { selectedState, isResponsiveEditing } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSelectedBlockStyleState,\n\t\t\t\tisResponsiveEditing: getIsResponsiveEditing,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\treturn {\n\t\t\t\tselectedState: getSelectedBlockStyleState( clientId ),\n\t\t\t\tisResponsiveEditing: getIsResponsiveEditing(),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! hasTextAlignControl || blockEditingMode !== 'default' ) {\n\t\treturn null;\n\t}\n\n\tconst validTextAlignments = getValidTextAlignments(\n\t\tgetBlockSupport( blockName, TEXT_ALIGN_SUPPORT_KEY )\n\t);\n\tif ( ! validTextAlignments.length ) {\n\t\treturn null;\n\t}\n\n\tconst textAlignmentControls = TEXT_ALIGNMENT_OPTIONS.filter( ( control ) =>\n\t\tvalidTextAlignments.includes( control.align )\n\t);\n\tconst stateStyle = getStyleForState( style, selectedState );\n\tconst controlsGroup = getTextAlignControlGroup(\n\t\tisResponsiveEditing,\n\t\tselectedState\n\t);\n\n\tconst onChange = ( newTextAlignValue ) => {\n\t\tconst newStateStyle = {\n\t\t\t...stateStyle,\n\t\t\ttypography: {\n\t\t\t\t...stateStyle?.typography,\n\t\t\t\ttextAlign: newTextAlignValue,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: setStyleForState( style, selectedState, newStateStyle ),\n\t\t} );\n\t};\n\n\treturn (\n\t\t<BlockControls group={ controlsGroup }>\n\t\t\t<AlignmentControl\n\t\t\t\tvalue={ stateStyle?.typography?.textAlign }\n\t\t\t\tonChange={ onChange }\n\t\t\t\talignmentControls={ textAlignmentControls }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\nexport default {\n\tedit: BlockEditTextAlignmentToolbarControlsPure,\n\tuseBlockProps,\n\taddSaveProps: addAssignedTextAlign,\n\tattributeKeys: [ 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, TEXT_ALIGN_SUPPORT_KEY, false );\n\t},\n};\n\nfunction useBlockProps( { name, style } ) {\n\tif ( ! style?.typography?.textAlign ) {\n\t\treturn null;\n\t}\n\n\tconst validTextAlignments = getValidTextAlignments(\n\t\tgetBlockSupport( name, TEXT_ALIGN_SUPPORT_KEY )\n\t);\n\n\tif ( ! validTextAlignments.length ) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tshouldSkipSerialization( name, TYPOGRAPHY_SUPPORT_KEY, 'textAlign' )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst textAlign = style.typography.textAlign;\n\n\tconst className = clsx( {\n\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t} );\n\treturn { className };\n}\n\n/**\n * Override props assigned to save component to inject text alignment class\n * name if block supports it.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addAssignedTextAlign( props, blockType, attributes ) {\n\tif ( ! attributes?.style?.typography?.textAlign ) {\n\t\treturn props;\n\t}\n\n\tconst { textAlign } = attributes.style.typography;\n\tconst blockTextAlign = getBlockSupport( blockType, TEXT_ALIGN_SUPPORT_KEY );\n\tconst isTextAlignValid =\n\t\tgetValidTextAlignments( blockTextAlign ).includes( textAlign );\n\tif (\n\t\tisTextAlignValid &&\n\t\t! shouldSkipSerialization(\n\t\t\tblockType,\n\t\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t\t'textAlign'\n\t\t)\n\t) {\n\t\tprops.className = clsx(\n\t\t\t`has-text-align-${ textAlign }`,\n\t\t\tprops.className\n\t\t);\n\t}\n\treturn props;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -8,6 +8,7 @@ import {
8
8
  default as StylesTypographyPanel,
9
9
  useHasTypographyPanel
10
10
  } from "../components/global-styles/typography-panel.mjs";
11
+ import { useResolvedStyle } from "../components/global-styles/inherited-value-context.mjs";
11
12
  import { LINE_HEIGHT_SUPPORT_KEY } from "./line-height.mjs";
12
13
  import { FONT_FAMILY_SUPPORT_KEY } from "./font-family.mjs";
13
14
  import { FONT_SIZE_SUPPORT_KEY } from "./font-size.mjs";
@@ -125,7 +126,7 @@ function TypographyPanel({
125
126
  }) {
126
127
  const selectedState = useBlockStyleState();
127
128
  const isEnabled = useHasTypographyPanel(settings);
128
- const { style, fontFamily, fontSize, fitText, textColor } = useSelect(
129
+ const { style, fontFamily, fontSize, fitText, textColor, className } = useSelect(
129
130
  (select) => {
130
131
  if (!isEnabled) {
131
132
  return {};
@@ -135,19 +136,26 @@ function TypographyPanel({
135
136
  fontFamily: _fontFamily,
136
137
  fontSize: _fontSize,
137
138
  fitText: _fitText,
138
- textColor: _textColor
139
+ textColor: _textColor,
140
+ className: _className
139
141
  } = select(blockEditorStore).getBlockAttributes(clientId) || {};
140
142
  return {
141
143
  style: _style,
142
144
  fontFamily: _fontFamily,
143
145
  fontSize: _fontSize,
144
146
  fitText: _fitText,
145
- textColor: _textColor
147
+ textColor: _textColor,
148
+ className: _className
146
149
  };
147
150
  },
148
151
  [clientId, isEnabled]
149
152
  );
150
153
  const isStateSelected = !isDefaultBlockStyleState(selectedState);
154
+ const { value: inheritedValue } = useResolvedStyle(
155
+ name,
156
+ className,
157
+ selectedState
158
+ );
151
159
  const value = useMemo(() => {
152
160
  if (isStateSelected) {
153
161
  return getStyleForState(style, selectedState);
@@ -173,7 +181,7 @@ function TypographyPanel({
173
181
  }
174
182
  setAttributes(newAttributes);
175
183
  };
176
- const enableContrastChecking = !isStateSelected && !value?.color?.gradient && !!value?.color?.text && settings?.color?.text && false !== getBlockSupport(name, ["color", "enableContrastChecker"]);
184
+ const enableContrastChecking = !value?.color?.gradient && !!value?.color?.text && settings?.color?.text && false !== getBlockSupport(name, ["color", "enableContrastChecker"]);
177
185
  const contrastWarning = useBlockColorContrastWarning({
178
186
  clientId,
179
187
  name,
@@ -208,7 +216,8 @@ function TypographyPanel({
208
216
  value,
209
217
  onChange,
210
218
  defaultControls,
211
- contrastWarning
219
+ contrastWarning,
220
+ inheritedValue
212
221
  }
213
222
  );
214
223
  }