@wordpress/block-editor 12.26.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/build/autocompleters/block.js +7 -6
- package/build/autocompleters/block.js.map +1 -1
- package/build/autocompleters/link.js +10 -8
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/alignment-control/index.js +3 -3
- package/build/components/alignment-control/index.js.map +1 -1
- package/build/components/alignment-control/ui.js +2 -2
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/audio-player/audio-url-parser.native.js +24 -0
- package/build/components/audio-player/audio-url-parser.native.js.map +1 -0
- package/build/components/audio-player/index.native.js +174 -0
- package/build/components/audio-player/index.native.js.map +1 -0
- package/build/components/autocomplete/index.js +3 -4
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-alignment-control/index.js +3 -3
- package/build/components/block-alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +33 -30
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +2 -2
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +5 -5
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-bindings-toolbar-indicator/index.js +92 -11
- package/build/components/block-bindings-toolbar-indicator/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +38 -34
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-canvas/index.js +36 -31
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-caption/index.native.js +15 -14
- package/build/components/block-caption/index.native.js.map +1 -1
- package/build/components/block-card/index.js +32 -27
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-compare/block-view.js +27 -18
- package/build/components/block-compare/block-view.js.map +1 -1
- package/build/components/block-compare/index.js +23 -22
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-context/index.js +3 -4
- package/build/components/block-context/index.js.map +1 -1
- package/build/components/block-controls/fill.js +22 -16
- package/build/components/block-controls/fill.js.map +1 -1
- package/build/components/block-controls/index.js +3 -3
- package/build/components/block-controls/index.js.map +1 -1
- package/build/components/block-controls/slot.js +6 -4
- package/build/components/block-controls/slot.js.map +1 -1
- package/build/components/block-controls/slot.native.js +12 -9
- package/build/components/block-controls/slot.native.js.map +1 -1
- package/build/components/block-controls/use-has-block-controls.js +1 -1
- package/build/components/block-controls/use-has-block-controls.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +27 -19
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.native.js +9 -8
- package/build/components/block-draggable/draggable-chip.native.js.map +1 -1
- package/build/components/block-draggable/dropping-insertion-point.native.js +3 -4
- package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
- package/build/components/block-draggable/index.js +14 -13
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +37 -30
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +5 -6
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-edit/edit.native.js +3 -4
- package/build/components/block-edit/edit.native.js.map +1 -1
- package/build/components/block-edit/index.js +17 -9
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-edit/multiple-usage-warning.js +47 -0
- package/build/components/block-edit/multiple-usage-warning.js.map +1 -0
- package/build/components/block-edit-visually-button/index.js +9 -6
- package/build/components/block-edit-visually-button/index.js.map +1 -1
- package/build/components/block-full-height-alignment-control/index.js +2 -2
- package/build/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build/components/block-heading-level-dropdown/heading-level-icon.js +3 -5
- package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.js +4 -4
- package/build/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.native.js +4 -4
- package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build/components/block-icon/index.js +6 -5
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-icon/index.native.js +6 -5
- package/build/components/block-icon/index.native.js.map +1 -1
- package/build/components/block-info-slot-fill/index.js +3 -3
- package/build/components/block-info-slot-fill/index.js.map +1 -1
- package/build/components/block-inspector/index.js +102 -88
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-inspector/useBlockInspectorAnimationSettings.js +2 -2
- package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -1
- package/build/components/block-list/block-crash-warning.js +5 -4
- package/build/components/block-list/block-crash-warning.js.map +1 -1
- package/build/components/block-list/block-crash-warning.native.js +2 -2
- package/build/components/block-list/block-crash-warning.native.js.map +1 -1
- package/build/components/block-list/block-html.js +2 -2
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +25 -21
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.native.js +12 -11
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block-list-item-cell.native.js +5 -4
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +29 -28
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +2 -2
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js +35 -33
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js +107 -62
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +63 -54
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/grid-item.native.js +5 -4
- package/build/components/block-list/grid-item.native.js.map +1 -1
- package/build/components/block-list/index.js +38 -34
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +97 -85
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/insertion-point.native.js +12 -10
- package/build/components/block-list/insertion-point.native.js.map +1 -1
- package/build/components/block-list/layout.js +7 -3
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/block-list/subdirectory-icon.js +8 -7
- package/build/components/block-list/subdirectory-icon.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +1 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list-appender/index.js +9 -8
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +4 -4
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-lock/menu-item.js +13 -10
- package/build/components/block-lock/menu-item.js.map +1 -1
- package/build/components/block-lock/modal.js +107 -90
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +18 -15
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-media-update-progress/index.native.js +17 -15
- package/build/components/block-media-update-progress/index.native.js.map +1 -1
- package/build/components/block-mover/button.js +19 -16
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +34 -27
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +29 -27
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +11 -9
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-parent-selector/index.js +14 -15
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +88 -76
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +50 -45
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +96 -86
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +70 -52
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-popover/cover.js +13 -10
- package/build/components/block-popover/cover.js.map +1 -1
- package/build/components/block-popover/drop-zone.js +11 -10
- package/build/components/block-popover/drop-zone.js.map +1 -1
- package/build/components/block-popover/inbetween.js +8 -7
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +9 -7
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +53 -47
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +16 -14
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +24 -16
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +18 -12
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +44 -37
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-rename/rename-control.js +24 -21
- package/build/components/block-rename/rename-control.js.map +1 -1
- package/build/components/block-selection-clearer/index.js +2 -2
- package/build/components/block-selection-clearer/index.js.map +1 -1
- package/build/components/block-settings/button.native.js +13 -9
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/block-settings/container.native.js +40 -28
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-settings-menu/block-html-convert-button.js +5 -4
- package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +5 -4
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu/block-parent-selector-menu-item.js +7 -6
- package/build/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +93 -75
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu/index.js +10 -6
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +29 -24
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +43 -38
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +7 -7
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-styles/menu-items.js +17 -14
- package/build/components/block-styles/menu-items.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +2 -2
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-styles/preview.native.js +24 -21
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js +8 -7
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +32 -30
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.native.js +2 -2
- package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +19 -17
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build/components/block-switcher/index.js +85 -70
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +61 -51
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +22 -17
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js +38 -34
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-toolbar/index.js +53 -43
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +27 -21
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +7 -5
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +61 -48
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +8 -7
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js +15 -14
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-tools/empty-block-inserter.js +13 -11
- package/build/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build/components/block-tools/index.js +29 -26
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +42 -40
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +33 -32
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-types-list/index.js +15 -15
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +30 -26
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.js +30 -25
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +32 -25
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +53 -47
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/icons.js +31 -26
- package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
- package/build/components/block-vertical-alignment-control/index.js +3 -3
- package/build/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/ui.js +2 -2
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/border-radius-control/all-input-control.js +3 -3
- package/build/components/border-radius-control/all-input-control.js.map +1 -1
- package/build/components/border-radius-control/index.js +43 -38
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +23 -21
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +12 -11
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/button-block-appender/index.js +15 -12
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/button-block-appender/index.native.js +28 -24
- package/build/components/button-block-appender/index.native.js.map +1 -1
- package/build/components/caption/index.native.js +22 -21
- package/build/components/caption/index.native.js.map +1 -1
- package/build/components/child-layout-control/index.js +137 -129
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/color-palette/control.js +2 -2
- package/build/components/color-palette/control.js.map +1 -1
- package/build/components/color-palette/with-color-context.js +2 -2
- package/build/components/color-palette/with-color-context.js.map +1 -1
- package/build/components/color-style-selector/index.js +29 -20
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/colors/utils.js +3 -3
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +8 -7
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +53 -39
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +70 -61
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +21 -18
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js +11 -7
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build/components/contrast-checker/index.js +10 -8
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/contrast-checker/index.native.js +12 -10
- package/build/components/contrast-checker/index.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +17 -13
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +20 -18
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/copy-handler/index.js +2 -2
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +44 -40
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +32 -30
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/default-block-appender/index.native.js +14 -12
- package/build/components/default-block-appender/index.native.js.map +1 -1
- package/build/components/dimensions-tool/aspect-ratio-tool.js +13 -14
- package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
- package/build/components/dimensions-tool/index.js +116 -115
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/dimensions-tool/scale-tool.js +16 -16
- package/build/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build/components/dimensions-tool/width-height-tool.js +37 -33
- package/build/components/dimensions-tool/width-height-tool.js.map +1 -1
- package/build/components/duotone-control/index.js +21 -18
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/editable-text/index.js +6 -5
- package/build/components/editable-text/index.js.map +1 -1
- package/build/components/editor-styles/index.js +23 -21
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/floating-toolbar/index.native.js +18 -16
- package/build/components/floating-toolbar/index.native.js.map +1 -1
- package/build/components/floating-toolbar/nav-up-icon.js +14 -13
- package/build/components/floating-toolbar/nav-up-icon.js.map +1 -1
- package/build/components/font-appearance-control/index.js +2 -2
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +2 -2
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/font-size-picker.js +2 -2
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/font-sizes/utils.js +4 -3
- package/build/components/font-sizes/utils.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +3 -3
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/global-styles/advanced-panel.js +17 -15
- package/build/components/global-styles/advanced-panel.js.map +1 -1
- package/build/components/global-styles/background-panel.js +187 -121
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +62 -56
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +111 -87
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.native.js +14 -11
- package/build/components/global-styles/color-panel.native.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +183 -171
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +78 -65
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +14 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +26 -22
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/index.js +18 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +74 -65
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/theme-file-uri-utils.js +80 -0
- package/build/components/global-styles/theme-file-uri-utils.js.map +1 -0
- package/build/components/global-styles/typography-panel.js +175 -134
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-context.native.js +450 -0
- package/build/components/global-styles/use-global-styles-context.native.js.map +1 -0
- package/build/components/global-styles/use-global-styles-output.js +113 -78
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/gradients/with-gradient.js +2 -2
- package/build/components/gradients/with-gradient.js.map +1 -1
- package/build/components/grid-visualizer/grid-item-resizer.js +59 -58
- package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -1
- package/build/components/grid-visualizer/grid-visualizer.js +20 -15
- package/build/components/grid-visualizer/grid-visualizer.js.map +1 -1
- package/build/components/height-control/index.js +39 -32
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/index.js +70 -62
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +73 -69
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-editor/context.js +5 -4
- package/build/components/image-editor/context.js.map +1 -1
- package/build/components/image-editor/cropper.js +24 -21
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/form-controls.js +11 -7
- package/build/components/image-editor/form-controls.js.map +1 -1
- package/build/components/image-editor/index.js +22 -13
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/image-editor/rotation-button.js +2 -2
- package/build/components/image-editor/rotation-button.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +4 -4
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/image-link-destinations/index.native.js +37 -27
- package/build/components/image-link-destinations/index.native.js.map +1 -1
- package/build/components/image-size-control/index.js +53 -45
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.native.js +37 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +2 -2
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +2 -2
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +19 -16
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +31 -29
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +10 -13
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +20 -17
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build/components/inner-blocks/with-client-id.js +2 -2
- package/build/components/inner-blocks/with-client-id.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/index.js +22 -20
- package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +39 -36
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +25 -19
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +38 -31
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +21 -4
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +42 -31
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +54 -42
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +108 -66
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +2 -2
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +26 -20
- package/build/components/inserter/category-tabs/index.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +9 -4
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +33 -5
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/index.js +6 -6
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +21 -19
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js +15 -8
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +9 -9
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +19 -17
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +92 -66
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +44 -36
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/media-tab/utils.js +2 -2
- package/build/components/inserter/media-tab/utils.js.map +1 -1
- package/build/components/inserter/menu.js +101 -84
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js +34 -28
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +56 -40
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inserter/no-results.js +10 -7
- package/build/components/inserter/no-results.js.map +1 -1
- package/build/components/inserter/no-results.native.js +13 -8
- package/build/components/inserter/no-results.native.js.map +1 -1
- package/build/components/inserter/panel.js +15 -10
- package/build/components/inserter/panel.js.map +1 -1
- package/build/components/inserter/preview-panel.js +24 -20
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +35 -31
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +20 -18
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-results.js +52 -41
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/search-results.native.js +3 -3
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/tabs.js +30 -26
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter/tabs.native.js +20 -18
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter/tips.js +7 -5
- package/build/components/inserter/tips.js.map +1 -1
- package/build/components/inserter-button/index.native.js +28 -23
- package/build/components/inserter-button/index.native.js.map +1 -1
- package/build/components/inserter-button/sparkles.js +8 -7
- package/build/components/inserter-button/sparkles.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +14 -13
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inserter-list-item/index.js +68 -62
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inserter-listbox/group.js +2 -2
- package/build/components/inserter-listbox/group.js.map +1 -1
- package/build/components/inserter-listbox/index.js +5 -4
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +10 -8
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inserter-listbox/row.js +2 -2
- package/build/components/inserter-listbox/row.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js +2 -2
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +5 -5
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +22 -17
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +12 -5
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/index.js +3 -3
- package/build/components/inspector-controls/index.js.map +1 -1
- package/build/components/inspector-controls/slot.js +11 -10
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls/slot.native.js +3 -3
- package/build/components/inspector-controls/slot.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js +7 -6
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js +11 -9
- package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +44 -32
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js +8 -7
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +20 -18
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +6 -2
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js +31 -26
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +31 -26
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/justify-content-control/index.js +3 -3
- package/build/components/justify-content-control/index.js.map +1 -1
- package/build/components/justify-content-control/ui.js +2 -2
- package/build/components/justify-content-control/ui.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +3 -4
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +17 -16
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/line-height-control/index.native.js +2 -2
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/link-control/index.js +101 -84
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/link-preview.js +61 -49
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-create-button.js +6 -5
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-input.js +32 -31
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +12 -11
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +50 -46
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +37 -30
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/link-control/settings.js +10 -9
- package/build/components/link-control/settings.js.map +1 -1
- package/build/components/list-view/appender.js +24 -22
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/aria-referenced-text.js +6 -6
- package/build/components/list-view/aria-referenced-text.js.map +1 -1
- package/build/components/list-view/block-contents.js +32 -29
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +50 -42
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +96 -84
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +101 -95
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +38 -31
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/expander.js +8 -6
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/list-view/index.js +42 -38
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +5 -4
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/media-placeholder/index.js +99 -79
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +63 -52
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +72 -60
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-replace-flow/index.native.js +2 -2
- package/build/components/media-replace-flow/index.native.js.map +1 -1
- package/build/components/media-upload/index.native.js +44 -40
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/media-upload-progress/index.native.js +39 -15
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +19 -15
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +9 -7
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/observe-typing/index.js +6 -6
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/panel-color-settings/index.js +2 -2
- package/build/components/panel-color-settings/index.js.map +1 -1
- package/build/components/plain-text/index.js +4 -5
- package/build/components/plain-text/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +3 -3
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/provider/block-refs-provider.js +5 -4
- package/build/components/provider/block-refs-provider.js.map +1 -1
- package/build/components/provider/index.js +11 -7
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js +5 -5
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/with-registry-provider.js +30 -26
- package/build/components/provider/with-registry-provider.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +36 -15
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/recursion-provider/index.js +6 -5
- package/build/components/recursion-provider/index.js.map +1 -1
- package/build/components/resizable-box-popover/index.js +7 -6
- package/build/components/resizable-box-popover/index.js.map +1 -1
- package/build/components/resolution-tool/index.js +12 -11
- package/build/components/resolution-tool/index.js.map +1 -1
- package/build/components/responsive-block-control/index.js +30 -26
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/responsive-block-control/label.js +11 -7
- package/build/components/responsive-block-control/label.js.map +1 -1
- package/build/components/rich-text/content.js +8 -5
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js +2 -2
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build/components/rich-text/format-edit.js +5 -5
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +37 -33
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.native.js +8 -7
- package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +17 -12
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.native.js +5 -4
- package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +4 -4
- package/build/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build/components/rich-text/index.js +87 -76
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +51 -47
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +62 -62
- package/build/components/rich-text/multiline.js.map +1 -1
- package/build/components/rich-text/native/format-edit.js +3 -4
- package/build/components/rich-text/native/format-edit.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +87 -80
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/native/toolbar-button-with-options.native.js +19 -16
- package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
- package/build/components/rich-text/toolbar-button.js +8 -7
- package/build/components/rich-text/toolbar-button.js.map +1 -1
- package/build/components/rich-text/utils.js +5 -4
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/rich-text/with-deprecations.js +2 -2
- package/build/components/rich-text/with-deprecations.js.map +1 -1
- package/build/components/segmented-text-control/index.js +20 -19
- package/build/components/segmented-text-control/index.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +6 -6
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +29 -14
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js +23 -19
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js +19 -18
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js +18 -17
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/single.js +2 -2
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +103 -100
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/sides-dropdown/index.js +42 -34
- package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +2 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/text-alignment-control/index.js +2 -2
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +2 -2
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +2 -2
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +35 -26
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/typewriter/index.js +5 -4
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/ungroup-button/index.native.js +8 -6
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/unit-control/index.js +2 -2
- package/build/components/unit-control/index.js.map +1 -1
- package/build/components/unsupported-block-details/index.native.js +31 -28
- package/build/components/unsupported-block-details/index.native.js.map +1 -1
- package/build/components/url-input/button.js +31 -28
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +27 -22
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-input/index.native.js +2 -2
- package/build/components/url-input/index.native.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +104 -91
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +24 -19
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/url-popover/link-editor.js +15 -14
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/url-popover/link-viewer-url.js +6 -5
- package/build/components/url-popover/link-viewer-url.js.map +1 -1
- package/build/components/url-popover/link-viewer.js +14 -13
- package/build/components/url-popover/link-viewer.js.map +1 -1
- package/build/components/use-block-commands/index.js +2 -2
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/video-player/gridicon-play.native.js +8 -7
- package/build/components/video-player/gridicon-play.native.js.map +1 -1
- package/build/components/video-player/index.native.js +43 -40
- package/build/components/video-player/index.native.js.map +1 -1
- package/build/components/warning/index.js +34 -26
- package/build/components/warning/index.js.map +1 -1
- package/build/components/warning/index.native.js +17 -13
- package/build/components/warning/index.native.js.map +1 -1
- package/build/components/writing-flow/index.js +9 -6
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-clipboard-handler.js +19 -16
- package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +3 -3
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +2 -2
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/align.js +10 -10
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +29 -24
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/background.js +6 -5
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-bindings.js +89 -0
- package/build/hooks/block-bindings.js.map +1 -0
- package/build/hooks/block-hooks.js +41 -33
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +142 -0
- package/build/hooks/block-style-variation.js.map +1 -0
- package/build/hooks/border.js +6 -5
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +11 -9
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +23 -15
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/contrast-checker.js +2 -2
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/custom-class-name.js +17 -16
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/dimensions.js +24 -21
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +49 -45
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js +3 -3
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +2 -2
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +4 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +26 -24
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/layout.js +61 -55
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/line-height.js +2 -2
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/position.js +28 -26
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/spacing-visualizer.js +10 -9
- package/build/hooks/spacing-visualizer.js.map +1 -1
- package/build/hooks/style.js +23 -13
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/text-align.js +19 -18
- package/build/hooks/text-align.js.map +1 -1
- package/build/hooks/typography.js +6 -5
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js +11 -8
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +47 -15
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-typography-props.js +4 -3
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/use-zoom-out.js +2 -2
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/hooks/utils.js +18 -17
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +66 -58
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +75 -61
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/grid.js +146 -125
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +7 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +39 -7
- package/build/store/actions.js.map +1 -1
- package/build/store/get-block-settings.js +2 -49
- package/build/store/get-block-settings.js.map +1 -1
- package/build/store/reducer.js +21 -14
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +33 -6
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +2 -0
- package/build/store/utils.js.map +1 -1
- package/build/utils/transform-styles/index.js +1 -1
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/autocompleters/block.js +9 -6
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/autocompleters/link.js +12 -8
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/alignment-control/index.js +3 -3
- package/build-module/components/alignment-control/index.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +2 -2
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/audio-player/audio-url-parser.native.js +16 -0
- package/build-module/components/audio-player/audio-url-parser.native.js.map +1 -0
- package/build-module/components/audio-player/index.native.js +167 -0
- package/build-module/components/audio-player/index.native.js.map +1 -0
- package/build-module/components/autocomplete/index.js +2 -2
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-alignment-control/index.js +3 -3
- package/build-module/components/block-alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +34 -30
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +2 -2
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +5 -5
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-bindings-toolbar-indicator/index.js +94 -13
- package/build-module/components/block-bindings-toolbar-indicator/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +38 -32
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-canvas/index.js +37 -31
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-caption/index.native.js +15 -14
- package/build-module/components/block-caption/index.native.js.map +1 -1
- package/build-module/components/block-card/index.js +34 -28
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-compare/block-view.js +28 -18
- package/build-module/components/block-compare/block-view.js.map +1 -1
- package/build-module/components/block-compare/index.js +24 -22
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-context/index.js +2 -2
- package/build-module/components/block-context/index.js.map +1 -1
- package/build-module/components/block-controls/fill.js +24 -16
- package/build-module/components/block-controls/fill.js.map +1 -1
- package/build-module/components/block-controls/index.js +3 -3
- package/build-module/components/block-controls/index.js.map +1 -1
- package/build-module/components/block-controls/slot.js +6 -4
- package/build-module/components/block-controls/slot.js.map +1 -1
- package/build-module/components/block-controls/slot.native.js +12 -9
- package/build-module/components/block-controls/slot.native.js.map +1 -1
- package/build-module/components/block-controls/use-has-block-controls.js +1 -1
- package/build-module/components/block-controls/use-has-block-controls.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +28 -19
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.native.js +10 -8
- package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
- package/build-module/components/block-draggable/dropping-insertion-point.native.js +2 -2
- package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
- package/build-module/components/block-draggable/index.js +14 -13
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +39 -30
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +4 -4
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-edit/edit.native.js +2 -2
- package/build-module/components/block-edit/edit.native.js.map +1 -1
- package/build-module/components/block-edit/index.js +19 -7
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-edit/multiple-usage-warning.js +40 -0
- package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -0
- package/build-module/components/block-edit-visually-button/index.js +9 -6
- package/build-module/components/block-edit-visually-button/index.js.map +1 -1
- package/build-module/components/block-full-height-alignment-control/index.js +2 -2
- package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js +2 -3
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.js +4 -4
- package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.native.js +4 -4
- package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build-module/components/block-icon/index.js +6 -5
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-icon/index.native.js +6 -5
- package/build-module/components/block-icon/index.native.js.map +1 -1
- package/build-module/components/block-info-slot-fill/index.js +3 -3
- package/build-module/components/block-info-slot-fill/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +104 -88
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js +2 -2
- package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -1
- package/build-module/components/block-list/block-crash-warning.js +5 -4
- package/build-module/components/block-list/block-crash-warning.js.map +1 -1
- package/build-module/components/block-list/block-crash-warning.native.js +2 -2
- package/build-module/components/block-list/block-crash-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-html.js +2 -2
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +27 -21
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.native.js +12 -11
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item-cell.native.js +5 -4
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js +29 -26
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +2 -2
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js +36 -33
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js +109 -61
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +61 -51
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/grid-item.native.js +5 -4
- package/build-module/components/block-list/grid-item.native.js.map +1 -1
- package/build-module/components/block-list/index.js +39 -34
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +99 -85
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/insertion-point.native.js +13 -10
- package/build-module/components/block-list/insertion-point.native.js.map +1 -1
- package/build-module/components/block-list/layout.js +7 -3
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/block-list/subdirectory-icon.js +8 -7
- package/build-module/components/block-list/subdirectory-icon.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +9 -8
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +4 -4
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-lock/menu-item.js +15 -10
- package/build-module/components/block-lock/menu-item.js.map +1 -1
- package/build-module/components/block-lock/modal.js +108 -90
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +20 -15
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-media-update-progress/index.native.js +18 -15
- package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
- package/build-module/components/block-mover/button.js +21 -16
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +35 -27
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +30 -27
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +12 -9
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +13 -13
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +90 -76
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +51 -45
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +98 -86
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +71 -52
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-popover/cover.js +13 -10
- package/build-module/components/block-popover/cover.js.map +1 -1
- package/build-module/components/block-popover/drop-zone.js +11 -10
- package/build-module/components/block-popover/drop-zone.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +8 -7
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +9 -7
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +55 -47
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +17 -14
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +25 -16
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +19 -12
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +45 -37
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-rename/rename-control.js +26 -21
- package/build-module/components/block-rename/rename-control.js.map +1 -1
- package/build-module/components/block-selection-clearer/index.js +2 -2
- package/build-module/components/block-selection-clearer/index.js.map +1 -1
- package/build-module/components/block-settings/button.native.js +13 -9
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +42 -28
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-html-convert-button.js +5 -4
- package/build-module/components/block-settings-menu/block-html-convert-button.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +5 -4
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js +7 -6
- package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +95 -75
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +10 -6
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +30 -24
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +44 -38
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +7 -7
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-styles/menu-items.js +18 -14
- package/build-module/components/block-styles/menu-items.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +2 -2
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +25 -21
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js +8 -7
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +33 -28
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js +2 -2
- package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js +21 -17
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build-module/components/block-switcher/index.js +87 -70
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +62 -51
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +23 -17
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js +39 -34
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +55 -43
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +29 -21
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +7 -5
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +61 -46
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +8 -7
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js +15 -14
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-tools/empty-block-inserter.js +13 -11
- package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build-module/components/block-tools/index.js +30 -26
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +43 -40
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +34 -32
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-types-list/index.js +16 -15
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +31 -26
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +31 -25
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +33 -25
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +54 -47
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/icons.js +31 -26
- package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/index.js +3 -3
- package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js +2 -2
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/border-radius-control/all-input-control.js +3 -3
- package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +45 -38
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +23 -21
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +12 -11
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +16 -12
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.native.js +29 -24
- package/build-module/components/button-block-appender/index.native.js.map +1 -1
- package/build-module/components/caption/index.native.js +22 -21
- package/build-module/components/caption/index.native.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +139 -129
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/color-palette/control.js +2 -2
- package/build-module/components/color-palette/control.js.map +1 -1
- package/build-module/components/color-palette/with-color-context.js +2 -2
- package/build-module/components/color-palette/with-color-context.js.map +1 -1
- package/build-module/components/color-style-selector/index.js +29 -20
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/colors/utils.js +3 -3
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +7 -7
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +54 -39
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +72 -61
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +23 -18
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +13 -7
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +10 -8
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/contrast-checker/index.native.js +13 -10
- package/build-module/components/contrast-checker/index.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +19 -13
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +21 -18
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/copy-handler/index.js +2 -2
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +45 -40
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +33 -30
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.native.js +14 -12
- package/build-module/components/default-block-appender/index.native.js.map +1 -1
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js +12 -12
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js +117 -113
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/dimensions-tool/scale-tool.js +15 -14
- package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build-module/components/dimensions-tool/width-height-tool.js +39 -33
- package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -1
- package/build-module/components/duotone-control/index.js +22 -18
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/editable-text/index.js +6 -5
- package/build-module/components/editable-text/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +25 -21
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/floating-toolbar/index.native.js +19 -16
- package/build-module/components/floating-toolbar/index.native.js.map +1 -1
- package/build-module/components/floating-toolbar/nav-up-icon.js +15 -13
- package/build-module/components/floating-toolbar/nav-up-icon.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +2 -2
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +2 -2
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/font-size-picker.js +2 -2
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/font-sizes/utils.js +3 -3
- package/build-module/components/font-sizes/utils.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +3 -3
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/global-styles/advanced-panel.js +18 -15
- package/build-module/components/global-styles/advanced-panel.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +188 -121
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +63 -56
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +112 -87
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.native.js +13 -10
- package/build-module/components/global-styles/color-panel.native.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +184 -171
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +79 -65
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +13 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +27 -22
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/index.js +2 -2
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +74 -63
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/theme-file-uri-utils.js +73 -0
- package/build-module/components/global-styles/theme-file-uri-utils.js.map +1 -0
- package/build-module/components/global-styles/typography-panel.js +177 -135
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-context.native.js +431 -0
- package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -0
- package/build-module/components/global-styles/use-global-styles-output.js +114 -78
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/gradients/with-gradient.js +2 -2
- package/build-module/components/gradients/with-gradient.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-item-resizer.js +59 -58
- package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-visualizer.js +20 -15
- package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -1
- package/build-module/components/height-control/index.js +40 -32
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +72 -62
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +75 -69
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-editor/context.js +5 -4
- package/build-module/components/image-editor/context.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +26 -21
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/form-controls.js +13 -7
- package/build-module/components/image-editor/form-controls.js.map +1 -1
- package/build-module/components/image-editor/index.js +23 -13
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/image-editor/rotation-button.js +2 -2
- package/build-module/components/image-editor/rotation-button.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +4 -4
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/image-link-destinations/index.native.js +39 -27
- package/build-module/components/image-link-destinations/index.native.js.map +1 -1
- package/build-module/components/image-size-control/index.js +55 -45
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.native.js +2 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +2 -2
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +2 -2
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +19 -16
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +31 -29
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +11 -14
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +21 -17
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build-module/components/inner-blocks/with-client-id.js +2 -2
- package/build-module/components/inner-blocks/with-client-id.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/index.js +23 -20
- package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +40 -36
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +27 -19
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +40 -31
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +21 -5
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +44 -31
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +56 -42
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +110 -67
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +2 -2
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +27 -20
- package/build-module/components/inserter/category-tabs/index.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +9 -4
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +33 -6
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/index.js +6 -6
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +23 -19
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js +14 -6
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +9 -9
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +20 -17
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +94 -66
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +46 -36
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/media-tab/utils.js +2 -2
- package/build-module/components/inserter/media-tab/utils.js.map +1 -1
- package/build-module/components/inserter/menu.js +102 -83
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js +36 -28
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +57 -40
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inserter/no-results.js +11 -7
- package/build-module/components/inserter/no-results.js.map +1 -1
- package/build-module/components/inserter/no-results.native.js +14 -8
- package/build-module/components/inserter/no-results.native.js.map +1 -1
- package/build-module/components/inserter/panel.js +17 -10
- package/build-module/components/inserter/panel.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +25 -20
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +36 -31
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +21 -18
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-results.js +53 -41
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +3 -3
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/tabs.js +31 -26
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +20 -18
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter/tips.js +7 -5
- package/build-module/components/inserter/tips.js.map +1 -1
- package/build-module/components/inserter-button/index.native.js +29 -23
- package/build-module/components/inserter-button/index.native.js.map +1 -1
- package/build-module/components/inserter-button/sparkles.js +8 -7
- package/build-module/components/inserter-button/sparkles.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +14 -13
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +69 -62
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inserter-listbox/group.js +2 -2
- package/build-module/components/inserter-listbox/group.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +6 -4
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +10 -8
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inserter-listbox/row.js +2 -2
- package/build-module/components/inserter-listbox/row.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js +2 -2
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +5 -5
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +22 -17
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +14 -5
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/index.js +3 -3
- package/build-module/components/inspector-controls/index.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +11 -10
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls/slot.native.js +3 -3
- package/build-module/components/inspector-controls/slot.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +7 -6
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js +11 -9
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +45 -32
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js +8 -7
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +21 -18
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +8 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js +33 -26
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +32 -26
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/justify-content-control/index.js +3 -3
- package/build-module/components/justify-content-control/index.js.map +1 -1
- package/build-module/components/justify-content-control/ui.js +2 -2
- package/build-module/components/justify-content-control/ui.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +2 -2
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +17 -16
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +2 -2
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/link-control/index.js +102 -82
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +63 -49
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js +6 -5
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-input.js +33 -31
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +12 -11
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +51 -46
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +39 -30
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/link-control/settings.js +11 -9
- package/build-module/components/link-control/settings.js.map +1 -1
- package/build-module/components/list-view/appender.js +25 -22
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/aria-referenced-text.js +5 -4
- package/build-module/components/list-view/aria-referenced-text.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +34 -29
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +51 -42
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +98 -84
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +102 -93
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +39 -31
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/expander.js +8 -6
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/list-view/index.js +43 -38
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +5 -4
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +101 -79
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +65 -52
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +74 -60
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.native.js +2 -2
- package/build-module/components/media-replace-flow/index.native.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +46 -40
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/media-upload-progress/index.native.js +41 -16
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +20 -15
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +9 -7
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js +5 -4
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/panel-color-settings/index.js +2 -2
- package/build-module/components/panel-color-settings/index.js.map +1 -1
- package/build-module/components/plain-text/index.js +3 -3
- package/build-module/components/plain-text/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +3 -3
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/provider/block-refs-provider.js +5 -4
- package/build-module/components/provider/block-refs-provider.js.map +1 -1
- package/build-module/components/provider/index.js +12 -8
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/index.native.js +4 -3
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/provider/with-registry-provider.js +32 -28
- package/build-module/components/provider/with-registry-provider.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +37 -17
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/recursion-provider/index.js +6 -5
- package/build-module/components/recursion-provider/index.js.map +1 -1
- package/build-module/components/resizable-box-popover/index.js +7 -6
- package/build-module/components/resizable-box-popover/index.js.map +1 -1
- package/build-module/components/resolution-tool/index.js +12 -11
- package/build-module/components/resolution-tool/index.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js +31 -26
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/responsive-block-control/label.js +13 -7
- package/build-module/components/responsive-block-control/label.js.map +1 -1
- package/build-module/components/rich-text/content.js +8 -5
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js +2 -2
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js +5 -5
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +39 -33
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.native.js +10 -7
- package/build-module/components/rich-text/format-toolbar/index.native.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +17 -12
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.native.js +5 -4
- package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +3 -2
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build-module/components/rich-text/index.js +90 -77
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +53 -47
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +62 -62
- package/build-module/components/rich-text/multiline.js.map +1 -1
- package/build-module/components/rich-text/native/format-edit.js +3 -4
- package/build-module/components/rich-text/native/format-edit.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +89 -80
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +20 -14
- package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
- package/build-module/components/rich-text/toolbar-button.js +8 -7
- package/build-module/components/rich-text/toolbar-button.js.map +1 -1
- package/build-module/components/rich-text/utils.js +5 -4
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/rich-text/with-deprecations.js +2 -2
- package/build-module/components/rich-text/with-deprecations.js.map +1 -1
- package/build-module/components/segmented-text-control/index.js +20 -17
- package/build-module/components/segmented-text-control/index.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +5 -4
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +29 -14
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js +24 -19
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js +20 -18
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js +19 -17
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js +2 -2
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +106 -101
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +44 -34
- package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +1 -0
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +2 -2
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +2 -2
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +2 -2
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +37 -26
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/typewriter/index.js +5 -4
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js +8 -6
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/unit-control/index.js +2 -2
- package/build-module/components/unit-control/index.js.map +1 -1
- package/build-module/components/unsupported-block-details/index.native.js +32 -28
- package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
- package/build-module/components/url-input/button.js +32 -28
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +28 -20
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-input/index.native.js +2 -2
- package/build-module/components/url-input/index.native.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +106 -91
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +25 -19
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/url-popover/link-editor.js +16 -14
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/url-popover/link-viewer-url.js +6 -5
- package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
- package/build-module/components/url-popover/link-viewer.js +15 -13
- package/build-module/components/url-popover/link-viewer.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +2 -2
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/video-player/gridicon-play.native.js +8 -7
- package/build-module/components/video-player/gridicon-play.native.js.map +1 -1
- package/build-module/components/video-player/index.native.js +44 -40
- package/build-module/components/video-player/index.native.js.map +1 -1
- package/build-module/components/warning/index.js +35 -26
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/warning/index.native.js +18 -13
- package/build-module/components/warning/index.native.js.map +1 -1
- package/build-module/components/writing-flow/index.js +11 -6
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js +19 -16
- package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +3 -3
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +2 -2
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/align.js +9 -8
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +30 -22
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/background.js +6 -5
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-bindings.js +81 -0
- package/build-module/hooks/block-bindings.js.map +1 -0
- package/build-module/hooks/block-hooks.js +42 -33
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +136 -0
- package/build-module/hooks/block-style-variation.js.map +1 -0
- package/build-module/hooks/border.js +6 -5
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +11 -9
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +25 -15
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/contrast-checker.js +2 -2
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +17 -16
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/dimensions.js +26 -21
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +51 -45
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -3
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +2 -2
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +4 -2
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +28 -24
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/layout.js +63 -55
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/line-height.js +2 -2
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/position.js +28 -26
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/spacing-visualizer.js +10 -9
- package/build-module/hooks/spacing-visualizer.js.map +1 -1
- package/build-module/hooks/style.js +25 -13
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/text-align.js +20 -19
- package/build-module/hooks/text-align.js.map +1 -1
- package/build-module/hooks/typography.js +6 -5
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js +12 -8
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +48 -14
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +3 -3
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +2 -2
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/hooks/utils.js +18 -17
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +68 -58
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +77 -61
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/grid.js +148 -125
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +7 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +39 -7
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/get-block-settings.js +2 -46
- package/build-module/store/get-block-settings.js.map +1 -1
- package/build-module/store/reducer.js +21 -14
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +34 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +1 -0
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +1 -1
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +4 -0
- package/build-style/content.css +4 -0
- package/build-style/style-rtl.css +91 -72
- package/build-style/style.css +91 -72
- package/package.json +33 -32
- package/src/components/alignment-control/test/index.js +1 -1
- package/src/components/audio-player/audio-url-parser.native.js +20 -0
- package/src/components/audio-player/index.native.js +221 -0
- package/src/components/audio-player/styles.native.scss +114 -0
- package/src/components/audio-player/test/audio-url-parser.native.js +53 -0
- package/src/components/block-bindings-toolbar-indicator/index.js +125 -10
- package/src/components/block-bindings-toolbar-indicator/style.scss +7 -8
- package/src/components/block-canvas/style.scss +1 -5
- package/src/components/block-card/index.js +9 -5
- package/src/components/block-card/style.scss +0 -11
- package/src/components/block-edit/index.js +13 -2
- package/src/components/block-edit/multiple-usage-warning.js +46 -0
- package/src/components/block-inspector/index.js +2 -4
- package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +2 -5
- package/src/components/block-list/block-invalid-warning.native.js +1 -1
- package/src/components/block-list/block.js +64 -18
- package/src/components/block-list/block.native.js +17 -9
- package/src/components/block-patterns-list/index.js +4 -1
- package/src/components/block-patterns-list/style.scss +23 -20
- package/src/components/block-preview/style.scss +0 -26
- package/src/components/block-settings/container.native.js +2 -0
- package/src/components/block-toolbar/index.js +1 -1
- package/src/components/block-tools/index.js +6 -5
- package/src/components/block-tools/style.scss +2 -2
- package/src/components/block-tools/zoom-out-mode-inserters.js +4 -3
- package/src/components/border-radius-control/all-input-control.js +1 -1
- package/src/components/border-radius-control/input-controls.js +1 -1
- package/src/components/child-layout-control/index.js +12 -12
- package/src/components/colors/utils.js +2 -2
- package/src/components/colors/with-colors.js +2 -1
- package/src/components/colors-gradients/control.js +3 -11
- package/src/components/contrast-checker/test/index.js +8 -8
- package/src/components/dimensions-tool/aspect-ratio-tool.js +1 -1
- package/src/components/dimensions-tool/scale-tool.js +1 -1
- package/src/components/dimensions-tool/width-height-tool.js +2 -2
- package/src/components/font-sizes/utils.js +2 -1
- package/src/components/global-styles/background-panel.js +116 -46
- package/src/components/global-styles/border-panel.js +8 -5
- package/src/components/global-styles/color-panel.js +27 -22
- package/src/components/global-styles/color-panel.native.js +1 -1
- package/src/components/global-styles/dimensions-panel.js +7 -8
- package/src/components/global-styles/hooks.js +13 -1
- package/src/components/global-styles/index.js +3 -0
- package/src/components/global-styles/shadow-panel-components.js +11 -5
- package/src/components/global-styles/test/theme-file-uri-utils.js +66 -0
- package/src/components/global-styles/test/use-global-styles-context.native.js +434 -0
- package/src/components/global-styles/test/use-global-styles-output.js +11 -10
- package/src/components/global-styles/theme-file-uri-utils.js +77 -0
- package/src/components/global-styles/typography-panel.js +50 -5
- package/src/components/global-styles/use-global-styles-context.native.js +586 -0
- package/src/components/global-styles/use-global-styles-output.js +199 -101
- package/src/components/grid-visualizer/grid-visualizer.js +8 -1
- package/src/components/grid-visualizer/style.scss +2 -1
- package/src/components/height-control/index.js +1 -1
- package/src/components/iframe/content.scss +4 -0
- package/src/components/index.native.js +7 -0
- package/src/components/inner-blocks/use-nested-settings-update.js +9 -16
- package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +1 -1
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +16 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +6 -1
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +3 -2
- package/src/components/inserter/block-types-tab.js +120 -78
- package/src/components/inserter/category-tabs/index.js +1 -1
- package/src/components/inserter/hooks/use-block-types-state.js +21 -5
- package/src/components/inserter/hooks/use-insertion-point.js +53 -7
- package/src/components/inserter/library.js +17 -7
- package/src/components/inserter/menu.js +24 -11
- package/src/components/inserter/quick-inserter.js +3 -1
- package/src/components/inserter/search-results.js +2 -1
- package/src/components/inserter/style.scss +41 -18
- package/src/components/inserter/tabs.js +2 -2
- package/src/components/inspector-controls/fill.native.js +3 -5
- package/src/components/inspector-controls-tabs/index.js +15 -3
- package/src/components/inspector-controls-tabs/style.scss +2 -10
- package/src/components/link-control/index.js +10 -1
- package/src/components/link-control/style.scss +9 -3
- package/src/components/list-view/block-contents.js +1 -1
- package/src/components/media-placeholder/index.js +1 -1
- package/src/components/media-placeholder/index.native.js +2 -2
- package/src/components/media-upload-progress/index.native.js +22 -2
- package/src/components/provider/with-registry-provider.js +33 -38
- package/src/components/publish-date-time-picker/index.js +43 -15
- package/src/components/resolution-tool/index.js +1 -1
- package/src/components/rich-text/index.js +11 -5
- package/src/components/rich-text/native/index.native.js +3 -2
- package/src/components/rich-text/native/test/index.native.js +13 -13
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +48 -16
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -3
- package/src/components/spacing-sizes-control/utils.js +2 -0
- package/src/components/video-player/index.native.js +1 -1
- package/src/components/writing-flow/use-clipboard-handler.js +19 -16
- package/src/hooks/block-bindings.js +92 -0
- package/src/hooks/block-bindings.scss +3 -0
- package/src/hooks/block-style-variation.js +156 -0
- package/src/hooks/font-family.js +1 -1
- package/src/hooks/index.js +4 -0
- package/src/hooks/layout.js +1 -2
- package/src/hooks/position.js +1 -1
- package/src/hooks/style.js +9 -1
- package/src/hooks/text-align.js +17 -11
- package/src/hooks/use-bindings-attributes.js +48 -5
- package/src/hooks/use-typography-props.js +2 -1
- package/src/hooks/use-zoom-out.js +9 -2
- package/src/hooks/utils.js +21 -4
- package/src/layouts/flex.js +2 -2
- package/src/layouts/grid.js +5 -5
- package/src/private-apis.js +6 -0
- package/src/store/actions.js +45 -12
- package/src/store/get-block-settings.js +1 -46
- package/src/store/reducer.js +24 -11
- package/src/store/selectors.js +66 -11
- package/src/store/utils.js +2 -0
- package/src/style.scss +1 -0
- package/src/utils/test/__snapshots__/transform-styles.js.snap +1 -1
- package/src/utils/test/transform-styles.js +2 -2
- package/src/utils/transform-styles/index.js +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_data","_element","_styleEngine","_components","_utils","_getBlockCssSelector","_typographyUtils","_context","_hooks","_utils2","_gap","_store","_definitions","_object","_blockContext","_interopRequireDefault","_lockUnlock","BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS","__experimentalBorder","color","spacing","typography","compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","startsWith","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","mergedSettings","kebabCase","unlock","componentsPrivateApis","PRESET_METADATA","reduce","declarations","path","valueKey","valueFunc","cssVarInfix","presetByOrigin","getValueFromObjectPath","forEach","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","getPresetsSvgFilters","filter","metadata","at","flatMap","preset","getDuotoneFilter","colors","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","concatFeatureVariationSelectorString","featureSelector","styleVariationSelector","featureSelectors","combinedSelectors","trim","getFeatureDeclarations","selectors","styles","entries","feature","isShorthand","subfeature","subfeatureSelector","subfeatureStyles","newDeclarations","getStylesDeclarations","root","featureStyles","blockStyles","useRootPaddingAlign","tree","isTemplate","isRoot","ROOT_BLOCK_SELECTOR","output","STYLE_PROPERTY","properties","useEngine","rootOnly","pathToValue","styleValue","entry","name","prop","cssProperty","extraRules","getCSSRules","rule","ruleValue","ref","refPath","getTypographyFontSizeValue","size","settings","getLayoutStyles","layoutDefinitions","LAYOUT_DEFINITIONS","style","hasBlockGapSupport","hasFallbackGapSupport","fallbackGapValue","ruleset","gapValue","getGapCSSValue","blockGap","values","className","spacingStyles","spacingStyle","rules","cssValue","combinedSelector","ROOT_CSS_PROPERTIES_SELECTOR","validDisplayModes","displayMode","baseStyles","includes","baseStyle","STYLE_KEYS","pickStyleKeys","treeToPickFrom","pickedEntries","clonedEntries","JSON","parse","stringify","fromEntries","getNodesWithStyles","blockSelectors","_tree$styles$blocks","nodes","ELEMENTS","elements","blocks","blockName","node","_node$elements","variations","variation","duotoneSelector","hasLayoutSupport","styleVariationSelectors","elementName","sel","elementSelectors","elementSelector","exports","getNodesWithSettings","_tree$settings$blocks","pickPresets","presets","setImmutably","custom","blockCustom","toCustomProperties","customProps","toStyles","disableLayoutStyles","styleOptions","undefined","options","layoutStyles","marginReset","rootPadding","nodesWithStyles","nodesWithSettings","useRootPaddingAwareAlignments","contentSize","wideSize","layout","hasBodyStyles","featureDeclarations","cssSelector","styleVariationName","styleVariations","baseSelector","styleVariationDeclarations","duotoneStyles","duotoneDeclarations","pseudoSelectorStyles","pseudoKey","pseudoStyle","pseudoDeclarations","_selector","pseudoRule","toSvgFilters","getSelectorsConfig","blockType","rootSelector","config","featureKey","featureName","getBlockCSSSelector","getBlockSelectors","blockTypes","getBlockStyles","duotoneSupport","getBlockSupport","scopeSelector","supports","__experimentalLayout","__experimentalDefault","blockStyleVariations","getBlockStyleVariationSelector","updateConfigWithSeparator","needsSeparatorStyleUpdate","background","text","border","processCSSNesting","css","processedCSS","parts","part","isRootCss","splittedPart","nestedSelector","appendToSelector","useGlobalStylesOutputWithConfig","mergedConfig","useGlobalSetting","useSelect","select","getSettings","blockEditorStore","blockContext","useContext","BlockContext","templateSlug","blocksStore","useMemo","_updatedConfig$styles","updatedConfig","getBlockTypes","customProperties","globalStyles","svgs","isGlobalStyles","assets","__unstableType","useGlobalStylesOutput","merged","GlobalStylesContext"],"sources":["@wordpress/block-editor/src/components/global-styles/use-global-styles-output.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n\tgetBlockSupport,\n\tgetBlockTypes,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { getCSSRules } from '@wordpress/style-engine';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPRESET_METADATA,\n\tROOT_BLOCK_SELECTOR,\n\tROOT_CSS_PROPERTIES_SELECTOR,\n\tscopeSelector,\n\tappendToSelector,\n\tgetBlockStyleVariationSelector,\n} from './utils';\nimport { getBlockCSSSelector } from './get-block-css-selector';\nimport { getTypographyFontSizeValue } from './typography-utils';\nimport { GlobalStylesContext } from './context';\nimport { useGlobalSetting } from './hooks';\nimport { getDuotoneFilter } from '../duotone/utils';\nimport { getGapCSSValue } from '../../hooks/gap';\nimport { store as blockEditorStore } from '../../store';\nimport { LAYOUT_DEFINITIONS } from '../../layouts/definitions';\nimport { getValueFromObjectPath, setImmutably } from '../../utils/object';\nimport BlockContext from '../block-context';\nimport { unlock } from '../../lock-unlock';\n\n// List of block support features that can have their related styles\n// generated under their own feature level selector rather than the block's.\nconst BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = {\n\t__experimentalBorder: 'border',\n\tcolor: 'color',\n\tspacing: 'spacing',\n\ttypography: 'typography',\n};\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\n\tif ( uncompiledValue?.startsWith?.( VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n * @param {Object} mergedSettings Merged theme.json settings.\n *\n * @return {Array<Object>} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {}, mergedSettings ) {\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\n\treturn PRESET_METADATA.reduce(\n\t\t( declarations, { path, valueKey, valueFunc, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = getValueFromObjectPath(\n\t\t\t\tblockPresets,\n\t\t\t\tpath,\n\t\t\t\t[]\n\t\t\t);\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tif ( valueKey && ! valueFunc ) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tvalueFunc &&\n\t\t\t\t\t\t\ttypeof valueFunc === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ valueFunc( value, mergedSettings ) }`\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\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {?string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector = '*', blockPresets = {} ) {\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\n\treturn PRESET_METADATA.reduce(\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = getValueFromObjectPath(\n\t\t\t\tblockPresets,\n\t\t\t\tpath,\n\t\t\t\t[]\n\t\t\t);\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\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\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction getPresetsSvgFilters( blockPresets = {} ) {\n\treturn PRESET_METADATA.filter(\n\t\t// Duotone are the only type of filters for now.\n\t\t( metadata ) => metadata.path.at( -1 ) === 'duotone'\n\t).flatMap( ( metadata ) => {\n\t\tconst presetByOrigin = getValueFromObjectPath(\n\t\t\tblockPresets,\n\t\t\tmetadata.path,\n\t\t\t{}\n\t\t);\n\t\treturn [ 'default', 'theme' ]\n\t\t\t.filter( ( origin ) => presetByOrigin[ origin ] )\n\t\t\t.flatMap( ( origin ) =>\n\t\t\t\tpresetByOrigin[ origin ].map( ( preset ) =>\n\t\t\t\t\tgetDuotoneFilter(\n\t\t\t\t\t\t`wp-duotone-${ preset.slug }`,\n\t\t\t\t\t\tpreset.colors\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t\t.join( '' );\n\t} );\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Gets variation selector string from feature selector.\n *\n * @param {string} featureSelector The feature selector.\n *\n * @param {string} styleVariationSelector The style variation selector.\n * @return {string} Combined selector string.\n */\nfunction concatFeatureVariationSelectorString(\n\tfeatureSelector,\n\tstyleVariationSelector\n) {\n\tconst featureSelectors = featureSelector.split( ',' );\n\tconst combinedSelectors = [];\n\tfeatureSelectors.forEach( ( selector ) => {\n\t\tcombinedSelectors.push(\n\t\t\t`${ styleVariationSelector.trim() }${ selector.trim() }`\n\t\t);\n\t} );\n\treturn combinedSelectors.join( ', ' );\n}\n\n/**\n * Generate style declarations for a block's custom feature and subfeature\n * selectors.\n *\n * NOTE: The passed `styles` object will be mutated by this function.\n *\n * @param {Object} selectors Custom selectors object for a block.\n * @param {Object} styles A block's styles object.\n *\n * @return {Object} Style declarations.\n */\nconst getFeatureDeclarations = ( selectors, styles ) => {\n\tconst declarations = {};\n\n\tObject.entries( selectors ).forEach( ( [ feature, selector ] ) => {\n\t\t// We're only processing features/subfeatures that have styles.\n\t\tif ( feature === 'root' || ! styles?.[ feature ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isShorthand = typeof selector === 'string';\n\n\t\t// If we have a selector object instead of shorthand process it.\n\t\tif ( ! isShorthand ) {\n\t\t\tObject.entries( selector ).forEach(\n\t\t\t\t( [ subfeature, subfeatureSelector ] ) => {\n\t\t\t\t\t// Don't process root feature selector yet or any\n\t\t\t\t\t// subfeature that doesn't have a style.\n\t\t\t\t\tif (\n\t\t\t\t\t\tsubfeature === 'root' ||\n\t\t\t\t\t\t! styles?.[ feature ][ subfeature ]\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create a temporary styles object and build\n\t\t\t\t\t// declarations for subfeature.\n\t\t\t\t\tconst subfeatureStyles = {\n\t\t\t\t\t\t[ feature ]: {\n\t\t\t\t\t\t\t[ subfeature ]: styles[ feature ][ subfeature ],\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tconst newDeclarations =\n\t\t\t\t\t\tgetStylesDeclarations( subfeatureStyles );\n\n\t\t\t\t\t// Merge new declarations in with any others that\n\t\t\t\t\t// share the same selector.\n\t\t\t\t\tdeclarations[ subfeatureSelector ] = [\n\t\t\t\t\t\t...( declarations[ subfeatureSelector ] || [] ),\n\t\t\t\t\t\t...newDeclarations,\n\t\t\t\t\t];\n\n\t\t\t\t\t// Remove the subfeature's style now it will be\n\t\t\t\t\t// included under its own selector not the block's.\n\t\t\t\t\tdelete styles[ feature ][ subfeature ];\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t// Now subfeatures have been processed and removed, we can\n\t\t// process root, or shorthand, feature selectors.\n\t\tif ( isShorthand || selector.root ) {\n\t\t\tconst featureSelector = isShorthand ? selector : selector.root;\n\n\t\t\t// Create temporary style object and build declarations for feature.\n\t\t\tconst featureStyles = { [ feature ]: styles[ feature ] };\n\t\t\tconst newDeclarations = getStylesDeclarations( featureStyles );\n\n\t\t\t// Merge new declarations with any others that share the selector.\n\t\t\tdeclarations[ featureSelector ] = [\n\t\t\t\t...( declarations[ featureSelector ] || [] ),\n\t\t\t\t...newDeclarations,\n\t\t\t];\n\n\t\t\t// Remove the feature from the block's styles now as it will be\n\t\t\t// included under its own selector not the block's.\n\t\t\tdelete styles[ feature ];\n\t\t}\n\t} );\n\n\treturn declarations;\n};\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @param {string} selector The selector these declarations should attach to.\n *\n * @param {boolean} useRootPaddingAlign Whether to use CSS custom properties in root selector.\n *\n * @param {Object} tree A theme.json tree containing layout definitions.\n *\n * @param {boolean} isTemplate Whether the entity being edited is a full template or a pattern.\n * @return {Array} An array of style declarations.\n */\nexport function getStylesDeclarations(\n\tblockStyles = {},\n\tselector = '',\n\tuseRootPaddingAlign,\n\ttree = {},\n\tisTemplate = true\n) {\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst isRoot = ROOT_BLOCK_SELECTOR === selector;\n\tconst output = Object.entries( STYLE_PROPERTY ).reduce(\n\t\t(\n\t\t\tdeclarations,\n\t\t\t[ key, { value, properties, useEngine, rootOnly } ]\n\t\t) => {\n\t\t\tif ( rootOnly && ! isRoot ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\t\t\tconst pathToValue = value;\n\t\t\tif ( pathToValue[ 0 ] === 'elements' || useEngine ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = getValueFromObjectPath(\n\t\t\t\tblockStyles,\n\t\t\t\tpathToValue\n\t\t\t);\n\n\t\t\t// Root-level padding styles don't currently support strings with CSS shorthand values.\n\t\t\t// This may change: https://github.com/WordPress/gutenberg/issues/40132.\n\t\t\tif (\n\t\t\t\tkey === '--wp--style--root--padding' &&\n\t\t\t\t( typeof styleValue === 'string' || ! useRootPaddingAlign )\n\t\t\t) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tif ( properties && typeof styleValue !== 'string' ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! getValueFromObjectPath( styleValue, [ prop ], false )\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = name.startsWith( '--' )\n\t\t\t\t\t\t? name\n\t\t\t\t\t\t: kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tgetValueFromObjectPath( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tgetValueFromObjectPath( blockStyles, pathToValue, false )\n\t\t\t) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tgetValueFromObjectPath( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n\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\tconst extraRules = getCSSRules( blockStyles );\n\textraRules.forEach( ( rule ) => {\n\t\t// Don't output padding properties if padding variables are set or if we're not editing a full template.\n\t\tif (\n\t\t\tisRoot &&\n\t\t\t( useRootPaddingAlign || ! isTemplate ) &&\n\t\t\trule.key.startsWith( 'padding' )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst cssProperty = rule.key.startsWith( '--' )\n\t\t\t? rule.key\n\t\t\t: kebabCase( rule.key );\n\n\t\tlet ruleValue = rule.value;\n\t\tif ( typeof ruleValue !== 'string' && ruleValue?.ref ) {\n\t\t\tconst refPath = ruleValue.ref.split( '.' );\n\t\t\truleValue = compileStyleValue(\n\t\t\t\tgetValueFromObjectPath( tree, refPath )\n\t\t\t);\n\t\t\t// Presence of another ref indicates a reference to another dynamic value.\n\t\t\t// Pointing to another dynamic value is not supported.\n\t\t\tif ( ! ruleValue || ruleValue?.ref ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Calculate fluid typography rules where available.\n\t\tif ( cssProperty === 'font-size' ) {\n\t\t\t/*\n\t\t\t * getTypographyFontSizeValue() will check\n\t\t\t * if fluid typography has been activated and also\n\t\t\t * whether the incoming value can be converted to a fluid value.\n\t\t\t * Values that already have a \"clamp()\" function will not pass the test,\n\t\t\t * and therefore the original $value will be returned.\n\t\t\t */\n\t\t\truleValue = getTypographyFontSizeValue(\n\t\t\t\t{ size: ruleValue },\n\t\t\t\ttree?.settings\n\t\t\t);\n\t\t}\n\n\t\t// For aspect ratio to work, other dimensions rules (and Cover block defaults) must be unset.\n\t\t// This ensures that a fixed height does not override the aspect ratio.\n\t\tif ( cssProperty === 'aspect-ratio' ) {\n\t\t\toutput.push( 'min-height: unset' );\n\t\t}\n\n\t\toutput.push( `${ cssProperty }: ${ ruleValue }` );\n\t} );\n\n\treturn output;\n}\n\n/**\n * Get generated CSS for layout styles by looking up layout definitions provided\n * in theme.json, and outputting common layout styles, and specific blockGap values.\n *\n * @param {Object} props\n * @param {Object} props.layoutDefinitions Layout definitions, keyed by layout type.\n * @param {Object} props.style A style object containing spacing values.\n * @param {string} props.selector Selector used to group together layout styling rules.\n * @param {boolean} props.hasBlockGapSupport Whether or not the theme opts-in to blockGap support.\n * @param {boolean} props.hasFallbackGapSupport Whether or not the theme allows fallback gap styles.\n * @param {?string} props.fallbackGapValue An optional fallback gap value if no real gap value is available.\n * @return {string} Generated CSS rules for the layout styles.\n */\nexport function getLayoutStyles( {\n\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\tstyle,\n\tselector,\n\thasBlockGapSupport,\n\thasFallbackGapSupport,\n\tfallbackGapValue,\n} ) {\n\tlet ruleset = '';\n\tlet gapValue = hasBlockGapSupport\n\t\t? getGapCSSValue( style?.spacing?.blockGap )\n\t\t: '';\n\n\t// Ensure a fallback gap value for the root layout definitions,\n\t// and use a fallback value if one is provided for the current block.\n\tif ( hasFallbackGapSupport ) {\n\t\tif ( selector === ROOT_BLOCK_SELECTOR ) {\n\t\t\tgapValue = ! gapValue ? '0.5em' : gapValue;\n\t\t} else if ( ! hasBlockGapSupport && fallbackGapValue ) {\n\t\t\tgapValue = fallbackGapValue;\n\t\t}\n\t}\n\n\tif ( gapValue && layoutDefinitions ) {\n\t\tObject.values( layoutDefinitions ).forEach(\n\t\t\t( { className, name, spacingStyles } ) => {\n\t\t\t\t// Allow outputting fallback gap styles for flex layout type when block gap support isn't available.\n\t\t\t\tif (\n\t\t\t\t\t! hasBlockGapSupport &&\n\t\t\t\t\t'flex' !== name &&\n\t\t\t\t\t'grid' !== name\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( spacingStyles?.length ) {\n\t\t\t\t\tspacingStyles.forEach( ( spacingStyle ) => {\n\t\t\t\t\t\tconst declarations = [];\n\n\t\t\t\t\t\tif ( spacingStyle.rules ) {\n\t\t\t\t\t\t\tObject.entries( spacingStyle.rules ).forEach(\n\t\t\t\t\t\t\t\t( [ cssProperty, cssValue ] ) => {\n\t\t\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t\t\t`${ cssProperty }: ${\n\t\t\t\t\t\t\t\t\t\t\tcssValue ? cssValue : gapValue\n\t\t\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t\t\t);\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\n\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\tlet combinedSelector = '';\n\n\t\t\t\t\t\t\tif ( ! hasBlockGapSupport ) {\n\t\t\t\t\t\t\t\t// For fallback gap styles, use lower specificity, to ensure styles do not unintentionally override theme styles.\n\t\t\t\t\t\t\t\tcombinedSelector =\n\t\t\t\t\t\t\t\t\tselector === ROOT_BLOCK_SELECTOR\n\t\t\t\t\t\t\t\t\t\t? `:where(.${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t })`\n\t\t\t\t\t\t\t\t\t\t: `:where(${ selector }.${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t })`;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcombinedSelector =\n\t\t\t\t\t\t\t\t\tselector === ROOT_BLOCK_SELECTOR\n\t\t\t\t\t\t\t\t\t\t? `:where(.${ className })${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t }`\n\t\t\t\t\t\t\t\t\t\t: `:where(${ selector }-${ className })${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t }`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\truleset += `${ combinedSelector } { ${ declarations.join(\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\t\t// For backwards compatibility, ensure the legacy block gap CSS variable is still available.\n\t\tif ( selector === ROOT_BLOCK_SELECTOR && hasBlockGapSupport ) {\n\t\t\truleset += `${ ROOT_CSS_PROPERTIES_SELECTOR } { --wp--style--block-gap: ${ gapValue }; }`;\n\t\t}\n\t}\n\n\t// Output base styles\n\tif ( selector === ROOT_BLOCK_SELECTOR && layoutDefinitions ) {\n\t\tconst validDisplayModes = [ 'block', 'flex', 'grid' ];\n\t\tObject.values( layoutDefinitions ).forEach(\n\t\t\t( { className, displayMode, baseStyles } ) => {\n\t\t\t\tif (\n\t\t\t\t\tdisplayMode &&\n\t\t\t\t\tvalidDisplayModes.includes( displayMode )\n\t\t\t\t) {\n\t\t\t\t\truleset += `${ selector } .${ className } { display:${ displayMode }; }`;\n\t\t\t\t}\n\n\t\t\t\tif ( baseStyles?.length ) {\n\t\t\t\t\tbaseStyles.forEach( ( baseStyle ) => {\n\t\t\t\t\t\tconst declarations = [];\n\n\t\t\t\t\t\tif ( baseStyle.rules ) {\n\t\t\t\t\t\t\tObject.entries( baseStyle.rules ).forEach(\n\t\t\t\t\t\t\t\t( [ cssProperty, cssValue ] ) => {\n\t\t\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t\t\t`${ cssProperty }: ${ cssValue }`\n\t\t\t\t\t\t\t\t\t);\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\n\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\tconst combinedSelector = `.${ className }${\n\t\t\t\t\t\t\t\tbaseStyle?.selector || ''\n\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\t\truleset += `${ combinedSelector } { ${ declarations.join(\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\t}\n\n\treturn ruleset;\n}\n\nconst STYLE_KEYS = [\n\t'border',\n\t'color',\n\t'dimensions',\n\t'spacing',\n\t'typography',\n\t'filter',\n\t'outline',\n\t'shadow',\n\t'background',\n];\n\nfunction pickStyleKeys( treeToPickFrom ) {\n\tif ( ! treeToPickFrom ) {\n\t\treturn {};\n\t}\n\tconst entries = Object.entries( treeToPickFrom );\n\tconst pickedEntries = entries.filter( ( [ key ] ) =>\n\t\tSTYLE_KEYS.includes( key )\n\t);\n\t// clone the style objects so that `getFeatureDeclarations` can remove consumed keys from it\n\tconst clonedEntries = pickedEntries.map( ( [ key, style ] ) => [\n\t\tkey,\n\t\tJSON.parse( JSON.stringify( style ) ),\n\t] );\n\treturn Object.fromEntries( clonedEntries );\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\tObject.entries( ELEMENTS ).forEach( ( [ name, selector ] ) => {\n\t\tif ( tree.styles?.elements?.[ name ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: tree.styles?.elements?.[ name ],\n\t\t\t\tselector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tObject.entries( tree.styles?.blocks ?? {} ).forEach(\n\t\t( [ blockName, node ] ) => {\n\t\t\tconst blockStyles = pickStyleKeys( node );\n\n\t\t\tif ( node?.variations ) {\n\t\t\t\tconst variations = {};\n\t\t\t\tObject.keys( node.variations ).forEach( ( variation ) => {\n\t\t\t\t\tvariations[ variation ] = pickStyleKeys(\n\t\t\t\t\t\tnode.variations[ variation ]\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t\tblockStyles.variations = variations;\n\t\t\t}\n\t\t\tif ( blockStyles && blockSelectors?.[ blockName ]?.selector ) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tduotoneSelector:\n\t\t\t\t\t\tblockSelectors[ blockName ].duotoneSelector,\n\t\t\t\t\tfallbackGapValue:\n\t\t\t\t\t\tblockSelectors[ blockName ].fallbackGapValue,\n\t\t\t\t\thasLayoutSupport:\n\t\t\t\t\t\tblockSelectors[ blockName ].hasLayoutSupport,\n\t\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t\t\tstyles: blockStyles,\n\t\t\t\t\tfeatureSelectors:\n\t\t\t\t\t\tblockSelectors[ blockName ].featureSelectors,\n\t\t\t\t\tstyleVariationSelectors:\n\t\t\t\t\t\tblockSelectors[ blockName ].styleVariationSelectors,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tObject.entries( node?.elements ?? {} ).forEach(\n\t\t\t\t( [ elementName, value ] ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tvalue &&\n\t\t\t\t\t\tblockSelectors?.[ blockName ] &&\n\t\t\t\t\t\tELEMENTS[ elementName ]\n\t\t\t\t\t) {\n\t\t\t\t\t\tnodes.push( {\n\t\t\t\t\t\t\tstyles: value,\n\t\t\t\t\t\t\tselector: blockSelectors[ blockName ]?.selector\n\t\t\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t\t\t.map( ( sel ) => {\n\t\t\t\t\t\t\t\t\tconst elementSelectors =\n\t\t\t\t\t\t\t\t\t\tELEMENTS[ elementName ].split( ',' );\n\t\t\t\t\t\t\t\t\treturn elementSelectors.map(\n\t\t\t\t\t\t\t\t\t\t( elementSelector ) =>\n\t\t\t\t\t\t\t\t\t\t\tsel + ' ' + elementSelector\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t.join( ',' ),\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 nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tlet presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = getValueFromObjectPath( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tpresets = setImmutably( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tconst custom = tree.settings?.custom;\n\tif ( Object.keys( presets ).length > 0 || custom ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom,\n\t\t\tselector: ROOT_CSS_PROPERTIES_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tObject.entries( tree.settings?.blocks ?? {} ).forEach(\n\t\t( [ blockName, node ] ) => {\n\t\t\tconst blockPresets = pickPresets( node );\n\t\t\tconst blockCustom = node.custom;\n\t\t\tif ( Object.keys( blockPresets ).length > 0 || blockCustom ) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tpresets: blockPresets,\n\t\t\t\t\tcustom: blockCustom,\n\t\t\t\t\tselector: blockSelectors[ blockName ]?.selector,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t);\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets, tree?.settings );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset += `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = (\n\ttree,\n\tblockSelectors,\n\thasBlockGapSupport,\n\thasFallbackGapSupport,\n\tdisableLayoutStyles = false,\n\tisTemplate = true,\n\tstyleOptions = undefined\n) => {\n\t// These allow opting out of certain sets of styles.\n\tconst options = {\n\t\tblockGap: true,\n\t\tblockStyles: true,\n\t\tlayoutStyles: true,\n\t\tmarginReset: true,\n\t\tpresets: true,\n\t\trootPadding: true,\n\t\t...styleOptions,\n\t};\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\tconst useRootPaddingAlign = tree?.settings?.useRootPaddingAwareAlignments;\n\tconst { contentSize, wideSize } = tree?.settings?.layout || {};\n\tconst hasBodyStyles =\n\t\toptions.marginReset || options.rootPadding || options.layoutStyles;\n\n\tlet ruleset = '';\n\n\tif ( options.presets && ( contentSize || wideSize ) ) {\n\t\truleset += `${ ROOT_CSS_PROPERTIES_SELECTOR } {`;\n\t\truleset = contentSize\n\t\t\t? ruleset + ` --wp--style--global--content-size: ${ contentSize };`\n\t\t\t: ruleset;\n\t\truleset = wideSize\n\t\t\t? ruleset + ` --wp--style--global--wide-size: ${ wideSize };`\n\t\t\t: ruleset;\n\t\truleset += '}';\n\t}\n\n\tif ( hasBodyStyles ) {\n\t\t/*\n\t\t * Reset default browser margin on the body element.\n\t\t * This is set on the body selector **before** generating the ruleset\n\t\t * from the `theme.json`. This is to ensure that if the `theme.json` declares\n\t\t * `margin` in its `spacing` declaration for the `body` element then these\n\t\t * user-generated values take precedence in the CSS cascade.\n\t\t * @link https://github.com/WordPress/gutenberg/issues/36147.\n\t\t */\n\t\truleset += ':where(body) {margin: 0;';\n\n\t\t// Root padding styles should only be output for full templates, not patterns or template parts.\n\t\tif ( options.rootPadding && useRootPaddingAlign && isTemplate ) {\n\t\t\t/*\n\t\t\t * These rules reproduce the ones from https://github.com/WordPress/gutenberg/blob/79103f124925d1f457f627e154f52a56228ed5ad/lib/class-wp-theme-json-gutenberg.php#L2508\n\t\t\t * almost exactly, but for the selectors that target block wrappers in the front end. This code only runs in the editor, so it doesn't need those selectors.\n\t\t\t */\n\t\t\truleset += `padding-right: 0; padding-left: 0; padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom) }\n\t\t\t\t.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\t\t\t\t.has-global-padding :where(.has-global-padding:not(.wp-block-block)) { padding-right: 0; padding-left: 0; }\n\t\t\t\t.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }\n\t\t\t\t.has-global-padding :where(.has-global-padding:not(.wp-block-block)) > .alignfull { margin-right: 0; margin-left: 0; }\n\t\t\t\t.has-global-padding > .alignfull:where(:not(.has-global-padding):not(.is-layout-flex):not(.is-layout-grid)) > :where(.wp-block:not(.alignfull),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\t\t\t\t.has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where(.wp-block:not(.alignfull),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0;`;\n\t\t}\n\n\t\truleset += '}';\n\t}\n\n\tif ( options.blockStyles ) {\n\t\tnodesWithStyles.forEach(\n\t\t\t( {\n\t\t\t\tselector,\n\t\t\t\tduotoneSelector,\n\t\t\t\tstyles,\n\t\t\t\tfallbackGapValue,\n\t\t\t\thasLayoutSupport,\n\t\t\t\tfeatureSelectors,\n\t\t\t\tstyleVariationSelectors,\n\t\t\t} ) => {\n\t\t\t\t// Process styles for block support features with custom feature level\n\t\t\t\t// CSS selectors set.\n\t\t\t\tif ( featureSelectors ) {\n\t\t\t\t\tconst featureDeclarations = getFeatureDeclarations(\n\t\t\t\t\t\tfeatureSelectors,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t);\n\n\t\t\t\t\tObject.entries( featureDeclarations ).forEach(\n\t\t\t\t\t\t( [ cssSelector, declarations ] ) => {\n\t\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\t\tconst rules = declarations.join( ';' );\n\t\t\t\t\t\t\t\truleset += `:where(${ cssSelector }){${ rules };}`;\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\n\t\t\t\tif ( styleVariationSelectors ) {\n\t\t\t\t\tObject.entries( styleVariationSelectors ).forEach(\n\t\t\t\t\t\t( [ styleVariationName, styleVariationSelector ] ) => {\n\t\t\t\t\t\t\tconst styleVariations =\n\t\t\t\t\t\t\t\tstyles?.variations?.[ styleVariationName ];\n\t\t\t\t\t\t\tif ( styleVariations ) {\n\t\t\t\t\t\t\t\t// If the block uses any custom selectors for block support, add those first.\n\t\t\t\t\t\t\t\tif ( featureSelectors ) {\n\t\t\t\t\t\t\t\t\tconst featureDeclarations =\n\t\t\t\t\t\t\t\t\t\tgetFeatureDeclarations(\n\t\t\t\t\t\t\t\t\t\t\tfeatureSelectors,\n\t\t\t\t\t\t\t\t\t\t\tstyleVariations\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tObject.entries(\n\t\t\t\t\t\t\t\t\t\tfeatureDeclarations\n\t\t\t\t\t\t\t\t\t).forEach(\n\t\t\t\t\t\t\t\t\t\t( [ baseSelector, declarations ] ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst cssSelector =\n\t\t\t\t\t\t\t\t\t\t\t\t\tconcatFeatureVariationSelectorString(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbaseSelector,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyleVariationSelector\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\tconst rules =\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeclarations.join( ';' );\n\t\t\t\t\t\t\t\t\t\t\t\truleset += `${ cssSelector }{${ rules };}`;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Otherwise add regular selectors.\n\t\t\t\t\t\t\t\tconst styleVariationDeclarations =\n\t\t\t\t\t\t\t\t\tgetStylesDeclarations(\n\t\t\t\t\t\t\t\t\t\tstyleVariations,\n\t\t\t\t\t\t\t\t\t\tstyleVariationSelector,\n\t\t\t\t\t\t\t\t\t\tuseRootPaddingAlign,\n\t\t\t\t\t\t\t\t\t\ttree\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( styleVariationDeclarations.length ) {\n\t\t\t\t\t\t\t\t\truleset += `${ styleVariationSelector }{${ styleVariationDeclarations.join(\n\t\t\t\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t\t\t\t) };}`;\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\n\t\t\t\t// Process duotone styles.\n\t\t\t\tif ( duotoneSelector ) {\n\t\t\t\t\tconst duotoneStyles = {};\n\t\t\t\t\tif ( styles?.filter ) {\n\t\t\t\t\t\tduotoneStyles.filter = styles.filter;\n\t\t\t\t\t\tdelete styles.filter;\n\t\t\t\t\t}\n\t\t\t\t\tconst duotoneDeclarations =\n\t\t\t\t\t\tgetStylesDeclarations( duotoneStyles );\n\t\t\t\t\tif ( duotoneDeclarations.length ) {\n\t\t\t\t\t\truleset += `${ duotoneSelector }{${ duotoneDeclarations.join(\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\n\t\t\t\t// Process blockGap and layout styles.\n\t\t\t\tif (\n\t\t\t\t\t! disableLayoutStyles &&\n\t\t\t\t\t( ROOT_BLOCK_SELECTOR === selector || hasLayoutSupport )\n\t\t\t\t) {\n\t\t\t\t\truleset += getLayoutStyles( {\n\t\t\t\t\t\tstyle: styles,\n\t\t\t\t\t\tselector,\n\t\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\t\tfallbackGapValue,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Process the remaining block styles (they use either normal block class or __experimentalSelector).\n\t\t\t\tconst declarations = getStylesDeclarations(\n\t\t\t\t\tstyles,\n\t\t\t\t\tselector,\n\t\t\t\t\tuseRootPaddingAlign,\n\t\t\t\t\ttree,\n\t\t\t\t\tisTemplate\n\t\t\t\t);\n\t\t\t\tif ( declarations?.length ) {\n\t\t\t\t\truleset += `:where(${ selector }){${ declarations.join(\n\t\t\t\t\t\t';'\n\t\t\t\t\t) };}`;\n\t\t\t\t}\n\n\t\t\t\t// Check for pseudo selector in `styles` and handle separately.\n\t\t\t\tconst pseudoSelectorStyles = Object.entries( styles ).filter(\n\t\t\t\t\t( [ key ] ) => key.startsWith( ':' )\n\t\t\t\t);\n\n\t\t\t\tif ( pseudoSelectorStyles?.length ) {\n\t\t\t\t\tpseudoSelectorStyles.forEach(\n\t\t\t\t\t\t( [ pseudoKey, pseudoStyle ] ) => {\n\t\t\t\t\t\t\tconst pseudoDeclarations =\n\t\t\t\t\t\t\t\tgetStylesDeclarations( pseudoStyle );\n\n\t\t\t\t\t\t\tif ( ! pseudoDeclarations?.length ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// `selector` maybe provided in a form\n\t\t\t\t\t\t\t// where block level selectors have sub element\n\t\t\t\t\t\t\t// selectors appended to them as a comma separated\n\t\t\t\t\t\t\t// string.\n\t\t\t\t\t\t\t// e.g. `h1 a,h2 a,h3 a,h4 a,h5 a,h6 a`;\n\t\t\t\t\t\t\t// Split and append pseudo selector to create\n\t\t\t\t\t\t\t// the proper rules to target the elements.\n\t\t\t\t\t\t\tconst _selector = selector\n\t\t\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t\t\t.map( ( sel ) => sel + pseudoKey )\n\t\t\t\t\t\t\t\t.join( ',' );\n\n\t\t\t\t\t\t\tconst pseudoRule = `${ _selector }{${ pseudoDeclarations.join(\n\t\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t\t) };}`;\n\n\t\t\t\t\t\t\truleset += pseudoRule;\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\tif ( options.layoutStyles ) {\n\t\t/* Add alignment / layout styles */\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';\n\t}\n\n\tif ( options.blockGap && hasBlockGapSupport ) {\n\t\t// Use fallback of `0.5em` just in case, however if there is blockGap support, there should nearly always be a real value.\n\t\tconst gapValue =\n\t\t\tgetGapCSSValue( tree?.styles?.spacing?.blockGap ) || '0.5em';\n\t\truleset =\n\t\t\truleset +\n\t\t\t`:where(.wp-site-blocks) > * { margin-block-start: ${ gapValue }; margin-block-end: 0; }`;\n\t\truleset =\n\t\t\truleset +\n\t\t\t':where(.wp-site-blocks) > :first-child { margin-block-start: 0; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t':where(.wp-site-blocks) > :last-child { margin-block-end: 0; }';\n\t}\n\n\tif ( options.presets ) {\n\t\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\t\tif (\n\t\t\t\tROOT_BLOCK_SELECTOR === selector ||\n\t\t\t\tROOT_CSS_PROPERTIES_SELECTOR === selector\n\t\t\t) {\n\t\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\t\tselector = '';\n\t\t\t}\n\n\t\t\tconst classes = getPresetsClasses( selector, presets );\n\t\t\tif ( classes.length > 0 ) {\n\t\t\t\truleset += classes;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn ruleset;\n};\n\nexport function toSvgFilters( tree, blockSelectors ) {\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\treturn nodesWithSettings.flatMap( ( { presets } ) => {\n\t\treturn getPresetsSvgFilters( presets );\n\t} );\n}\n\nconst getSelectorsConfig = ( blockType, rootSelector ) => {\n\tif (\n\t\tblockType?.selectors &&\n\t\tObject.keys( blockType.selectors ).length > 0\n\t) {\n\t\treturn blockType.selectors;\n\t}\n\n\tconst config = { root: rootSelector };\n\tObject.entries( BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS ).forEach(\n\t\t( [ featureKey, featureName ] ) => {\n\t\t\tconst featureSelector = getBlockCSSSelector(\n\t\t\t\tblockType,\n\t\t\t\tfeatureKey\n\t\t\t);\n\n\t\t\tif ( featureSelector ) {\n\t\t\t\tconfig[ featureName ] = featureSelector;\n\t\t\t}\n\t\t}\n\t);\n\n\treturn config;\n};\n\nexport const getBlockSelectors = ( blockTypes, getBlockStyles ) => {\n\tconst result = {};\n\tblockTypes.forEach( ( blockType ) => {\n\t\tconst name = blockType.name;\n\t\tconst selector = getBlockCSSSelector( blockType );\n\t\tlet duotoneSelector = getBlockCSSSelector(\n\t\t\tblockType,\n\t\t\t'filter.duotone'\n\t\t);\n\n\t\t// Keep backwards compatibility for support.color.__experimentalDuotone.\n\t\tif ( ! duotoneSelector ) {\n\t\t\tconst rootSelector = getBlockCSSSelector( blockType );\n\t\t\tconst duotoneSupport = getBlockSupport(\n\t\t\t\tblockType,\n\t\t\t\t'color.__experimentalDuotone',\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tduotoneSelector =\n\t\t\t\tduotoneSupport && scopeSelector( rootSelector, duotoneSupport );\n\t\t}\n\n\t\tconst hasLayoutSupport =\n\t\t\t!! blockType?.supports?.layout ||\n\t\t\t!! blockType?.supports?.__experimentalLayout;\n\t\tconst fallbackGapValue =\n\t\t\tblockType?.supports?.spacing?.blockGap?.__experimentalDefault;\n\n\t\tconst blockStyleVariations = getBlockStyles( name );\n\t\tconst styleVariationSelectors = {};\n\t\tif ( blockStyleVariations?.length ) {\n\t\t\tblockStyleVariations.forEach( ( variation ) => {\n\t\t\t\tconst styleVariationSelector = getBlockStyleVariationSelector(\n\t\t\t\t\tvariation.name,\n\t\t\t\t\tselector\n\t\t\t\t);\n\t\t\t\tstyleVariationSelectors[ variation.name ] =\n\t\t\t\t\tstyleVariationSelector;\n\t\t\t} );\n\t\t}\n\t\t// For each block support feature add any custom selectors.\n\t\tconst featureSelectors = getSelectorsConfig( blockType, selector );\n\n\t\tresult[ name ] = {\n\t\t\tduotoneSelector,\n\t\t\tfallbackGapValue,\n\t\t\tfeatureSelectors: Object.keys( featureSelectors ).length\n\t\t\t\t? featureSelectors\n\t\t\t\t: undefined,\n\t\t\thasLayoutSupport,\n\t\t\tname,\n\t\t\tselector,\n\t\t\tstyleVariationSelectors: Object.keys( styleVariationSelectors )\n\t\t\t\t.length\n\t\t\t\t? styleVariationSelectors\n\t\t\t\t: undefined,\n\t\t};\n\t} );\n\n\treturn result;\n};\n\n/**\n * If there is a separator block whose color is defined in theme.json via background,\n * update the separator color to the same value by using border color.\n *\n * @param {Object} config Theme.json configuration file object.\n * @return {Object} configTheme.json configuration file object updated.\n */\nfunction updateConfigWithSeparator( config ) {\n\tconst needsSeparatorStyleUpdate =\n\t\tconfig.styles?.blocks?.[ 'core/separator' ] &&\n\t\tconfig.styles?.blocks?.[ 'core/separator' ].color?.background &&\n\t\t! config.styles?.blocks?.[ 'core/separator' ].color?.text &&\n\t\t! config.styles?.blocks?.[ 'core/separator' ].border?.color;\n\tif ( needsSeparatorStyleUpdate ) {\n\t\treturn {\n\t\t\t...config,\n\t\t\tstyles: {\n\t\t\t\t...config.styles,\n\t\t\t\tblocks: {\n\t\t\t\t\t...config.styles.blocks,\n\t\t\t\t\t'core/separator': {\n\t\t\t\t\t\t...config.styles.blocks[ 'core/separator' ],\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t...config.styles.blocks[ 'core/separator' ].color,\n\t\t\t\t\t\t\ttext: config.styles?.blocks[ 'core/separator' ]\n\t\t\t\t\t\t\t\t.color.background,\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\treturn config;\n}\n\nexport function processCSSNesting( css, blockSelector ) {\n\tlet processedCSS = '';\n\n\t// Split CSS nested rules.\n\tconst parts = css.split( '&' );\n\tparts.forEach( ( part ) => {\n\t\tconst isRootCss = ! part.includes( '{' );\n\t\tif ( isRootCss ) {\n\t\t\t// If the part doesn't contain braces, it applies to the root level.\n\t\t\tprocessedCSS += `${ blockSelector }{${ part.trim() }}`;\n\t\t} else {\n\t\t\t// If the part contains braces, it's a nested CSS rule.\n\t\t\tconst splittedPart = part.replace( '}', '' ).split( '{' );\n\t\t\tif ( splittedPart.length !== 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst [ nestedSelector, cssValue ] = splittedPart;\n\t\t\tconst combinedSelector = nestedSelector.startsWith( ' ' )\n\t\t\t\t? scopeSelector( blockSelector, nestedSelector )\n\t\t\t\t: appendToSelector( blockSelector, nestedSelector );\n\n\t\t\tprocessedCSS += `${ combinedSelector }{${ cssValue.trim() }}`;\n\t\t}\n\t} );\n\treturn processedCSS;\n}\n\n/**\n * Returns the global styles output using a global styles configuration.\n * If wishing to generate global styles and settings based on the\n * global styles config loaded in the editor context, use `useGlobalStylesOutput()`.\n * The use case for a custom config is to generate bespoke styles\n * and settings for previews, or other out-of-editor experiences.\n *\n * @param {Object} mergedConfig Global styles configuration.\n * @return {Array} Array of stylesheets and settings.\n */\nexport function useGlobalStylesOutputWithConfig( mergedConfig = {} ) {\n\tconst [ blockGap ] = useGlobalSetting( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGap !== null;\n\tconst hasFallbackGapSupport = ! hasBlockGapSupport; // This setting isn't useful yet: it exists as a placeholder for a future explicit fallback styles support.\n\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn !! getSettings().disableLayoutStyles;\n\t} );\n\n\tconst blockContext = useContext( BlockContext );\n\n\tconst isTemplate = blockContext?.templateSlug !== undefined;\n\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\n\treturn useMemo( () => {\n\t\tif ( ! mergedConfig?.styles || ! mergedConfig?.settings ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst updatedConfig = updateConfigWithSeparator( mergedConfig );\n\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles\n\t\t);\n\n\t\tconst customProperties = toCustomProperties(\n\t\t\tupdatedConfig,\n\t\t\tblockSelectors\n\t\t);\n\n\t\tconst globalStyles = toStyles(\n\t\t\tupdatedConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tisTemplate\n\t\t);\n\t\tconst svgs = toSvgFilters( updatedConfig, blockSelectors );\n\n\t\tconst styles = [\n\t\t\t{\n\t\t\t\tcss: customProperties,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcss: globalStyles,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t// Load custom CSS in own stylesheet so that any invalid CSS entered in the input won't break all the global styles in the editor.\n\t\t\t{\n\t\t\t\tcss: updatedConfig.styles.css ?? '',\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tassets: svgs,\n\t\t\t\t__unstableType: 'svg',\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t];\n\n\t\t// Loop through the blocks to check if there are custom CSS values.\n\t\t// If there are, get the block selector and push the selector together with\n\t\t// the CSS value to the 'stylesheets' array.\n\t\tgetBlockTypes().forEach( ( blockType ) => {\n\t\t\tif ( updatedConfig.styles.blocks[ blockType.name ]?.css ) {\n\t\t\t\tconst selector = blockSelectors[ blockType.name ].selector;\n\t\t\t\tstyles.push( {\n\t\t\t\t\tcss: processCSSNesting(\n\t\t\t\t\t\tupdatedConfig.styles.blocks[ blockType.name ]?.css,\n\t\t\t\t\t\tselector\n\t\t\t\t\t),\n\t\t\t\t\tisGlobalStyles: true,\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\treturn [ styles, updatedConfig.settings ];\n\t}, [\n\t\thasBlockGapSupport,\n\t\thasFallbackGapSupport,\n\t\tmergedConfig,\n\t\tdisableLayoutStyles,\n\t\tisTemplate,\n\t\tgetBlockStyles,\n\t] );\n}\n\n/**\n * Returns the global styles output based on the current state of global styles config loaded in the editor context.\n *\n * @return {Array} Array of stylesheets and settings.\n */\nexport function useGlobalStylesOutput() {\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\treturn useGlobalStylesOutputWithConfig( mergedConfig );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_blocks","require","_data","_element","_styleEngine","_components","_utils","_getBlockCssSelector","_typographyUtils","_context","_hooks","_utils2","_gap","_store","_definitions","_object","_lockUnlock","_themeFileUriUtils","BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS","__experimentalBorder","color","spacing","typography","kebabCase","unlock","componentsPrivateApis","compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","startsWith","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","mergedSettings","PRESET_METADATA","reduce","declarations","path","valueKey","valueFunc","cssVarInfix","presetByOrigin","getValueFromObjectPath","forEach","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","getPresetsSvgFilters","filter","metadata","at","flatMap","preset","getDuotoneFilter","colors","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","concatFeatureVariationSelectorString","featureSelector","styleVariationSelector","featureSelectors","combinedSelectors","trim","getFeatureDeclarations","selectors","styles","entries","feature","isShorthand","subfeature","subfeatureSelector","subfeatureStyles","newDeclarations","getStylesDeclarations","root","featureStyles","blockStyles","useRootPaddingAlign","tree","disableRootPadding","isRoot","ROOT_BLOCK_SELECTOR","output","STYLE_PROPERTY","properties","useEngine","rootOnly","pathToValue","styleValue","entry","name","prop","cssProperty","extraRules","getCSSRules","rule","ruleValue","ref","refPath","getTypographyFontSizeValue","size","settings","getLayoutStyles","layoutDefinitions","LAYOUT_DEFINITIONS","style","hasBlockGapSupport","hasFallbackGapSupport","fallbackGapValue","ruleset","gapValue","getGapCSSValue","blockGap","values","className","spacingStyles","spacingStyle","rules","cssValue","combinedSelector","ROOT_CSS_PROPERTIES_SELECTOR","validDisplayModes","displayMode","baseStyles","includes","baseStyle","STYLE_KEYS","pickStyleKeys","treeToPickFrom","pickedEntries","clonedEntries","JSON","parse","stringify","fromEntries","getNodesWithStyles","blockSelectors","_tree$styles$blocks","nodes","ELEMENTS","elements","blocks","blockName","node","_node$elements","variations","variationName","variation","_variation$elements","_variation$blocks","variationSelector","styleVariationSelectors","element","elementStyles","scopeSelector","variationBlockName","variationBlockStyles","_variationBlockStyles","variationBlockSelector","variationDuotoneSelector","duotoneSelector","variationFeatureSelectors","scopeFeatureSelectors","hasLayoutSupport","variationBlockElement","variationBlockElementStyles","elementName","sel","elementSelectors","elementSelector","exports","getNodesWithSettings","_tree$settings$blocks","pickPresets","presets","setImmutably","custom","blockCustom","toCustomProperties","customProps","toStyles","disableLayoutStyles","styleOptions","undefined","options","layoutStyles","marginReset","rootPadding","nodesWithStyles","nodesWithSettings","useRootPaddingAwareAlignments","contentSize","wideSize","layout","hasBodyStyles","featureDeclarations","cssSelector","duotoneStyles","duotoneDeclarations","styleDeclarations","styleVariationName","styleVariations","baseSelector","styleVariationDeclarations","pseudoSelectorStyles","pseudoKey","pseudoStyle","pseudoDeclarations","_selector","pseudoRule","toSvgFilters","getSelectorsConfig","blockType","rootSelector","config","featureKey","featureName","getBlockCSSSelector","getBlockSelectors","blockTypes","getBlockStyles","variationInstanceId","duotoneSupport","getBlockSupport","supports","__experimentalLayout","__experimentalDefault","blockStyleVariations","variationSuffix","getBlockStyleVariationSelector","updateConfigWithSeparator","needsSeparatorStyleUpdate","background","text","border","processCSSNesting","css","processedCSS","parts","part","isRootCss","splittedPart","nestedSelector","appendToSelector","useGlobalStylesOutputWithConfig","mergedConfig","useGlobalSetting","setThemeFileUris","_links","useSelect","select","getSettings","blockEditorStore","blocksStore","useMemo","_updatedConfig$styles","updatedConfig","getBlockTypes","customProperties","globalStyles","svgs","isGlobalStyles","assets","__unstableType","useGlobalStylesOutput","merged","useContext","GlobalStylesContext"],"sources":["@wordpress/block-editor/src/components/global-styles/use-global-styles-output.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n\tgetBlockSupport,\n\tgetBlockTypes,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { getCSSRules } from '@wordpress/style-engine';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPRESET_METADATA,\n\tROOT_BLOCK_SELECTOR,\n\tROOT_CSS_PROPERTIES_SELECTOR,\n\tscopeSelector,\n\tscopeFeatureSelectors,\n\tappendToSelector,\n\tgetBlockStyleVariationSelector,\n} from './utils';\nimport { getBlockCSSSelector } from './get-block-css-selector';\nimport { getTypographyFontSizeValue } from './typography-utils';\nimport { GlobalStylesContext } from './context';\nimport { useGlobalSetting } from './hooks';\nimport { getDuotoneFilter } from '../duotone/utils';\nimport { getGapCSSValue } from '../../hooks/gap';\nimport { store as blockEditorStore } from '../../store';\nimport { LAYOUT_DEFINITIONS } from '../../layouts/definitions';\nimport { getValueFromObjectPath, setImmutably } from '../../utils/object';\nimport { unlock } from '../../lock-unlock';\nimport { setThemeFileUris } from './theme-file-uri-utils';\n\n// List of block support features that can have their related styles\n// generated under their own feature level selector rather than the block's.\nconst BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = {\n\t__experimentalBorder: 'border',\n\tcolor: 'color',\n\tspacing: 'spacing',\n\ttypography: 'typography',\n};\nconst { kebabCase } = unlock( componentsPrivateApis );\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\n\tif ( uncompiledValue?.startsWith?.( VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n * @param {Object} mergedSettings Merged theme.json settings.\n *\n * @return {Array<Object>} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {}, mergedSettings ) {\n\treturn PRESET_METADATA.reduce(\n\t\t( declarations, { path, valueKey, valueFunc, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = getValueFromObjectPath(\n\t\t\t\tblockPresets,\n\t\t\t\tpath,\n\t\t\t\t[]\n\t\t\t);\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tif ( valueKey && ! valueFunc ) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tvalueFunc &&\n\t\t\t\t\t\t\ttypeof valueFunc === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ valueFunc( value, mergedSettings ) }`\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\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {?string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector = '*', blockPresets = {} ) {\n\treturn PRESET_METADATA.reduce(\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = getValueFromObjectPath(\n\t\t\t\tblockPresets,\n\t\t\t\tpath,\n\t\t\t\t[]\n\t\t\t);\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\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\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction getPresetsSvgFilters( blockPresets = {} ) {\n\treturn PRESET_METADATA.filter(\n\t\t// Duotone are the only type of filters for now.\n\t\t( metadata ) => metadata.path.at( -1 ) === 'duotone'\n\t).flatMap( ( metadata ) => {\n\t\tconst presetByOrigin = getValueFromObjectPath(\n\t\t\tblockPresets,\n\t\t\tmetadata.path,\n\t\t\t{}\n\t\t);\n\t\treturn [ 'default', 'theme' ]\n\t\t\t.filter( ( origin ) => presetByOrigin[ origin ] )\n\t\t\t.flatMap( ( origin ) =>\n\t\t\t\tpresetByOrigin[ origin ].map( ( preset ) =>\n\t\t\t\t\tgetDuotoneFilter(\n\t\t\t\t\t\t`wp-duotone-${ preset.slug }`,\n\t\t\t\t\t\tpreset.colors\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t\t.join( '' );\n\t} );\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Gets variation selector string from feature selector.\n *\n * @param {string} featureSelector The feature selector.\n *\n * @param {string} styleVariationSelector The style variation selector.\n * @return {string} Combined selector string.\n */\nfunction concatFeatureVariationSelectorString(\n\tfeatureSelector,\n\tstyleVariationSelector\n) {\n\tconst featureSelectors = featureSelector.split( ',' );\n\tconst combinedSelectors = [];\n\tfeatureSelectors.forEach( ( selector ) => {\n\t\tcombinedSelectors.push(\n\t\t\t`${ styleVariationSelector.trim() }${ selector.trim() }`\n\t\t);\n\t} );\n\treturn combinedSelectors.join( ', ' );\n}\n\n/**\n * Generate style declarations for a block's custom feature and subfeature\n * selectors.\n *\n * NOTE: The passed `styles` object will be mutated by this function.\n *\n * @param {Object} selectors Custom selectors object for a block.\n * @param {Object} styles A block's styles object.\n *\n * @return {Object} Style declarations.\n */\nconst getFeatureDeclarations = ( selectors, styles ) => {\n\tconst declarations = {};\n\n\tObject.entries( selectors ).forEach( ( [ feature, selector ] ) => {\n\t\t// We're only processing features/subfeatures that have styles.\n\t\tif ( feature === 'root' || ! styles?.[ feature ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isShorthand = typeof selector === 'string';\n\n\t\t// If we have a selector object instead of shorthand process it.\n\t\tif ( ! isShorthand ) {\n\t\t\tObject.entries( selector ).forEach(\n\t\t\t\t( [ subfeature, subfeatureSelector ] ) => {\n\t\t\t\t\t// Don't process root feature selector yet or any\n\t\t\t\t\t// subfeature that doesn't have a style.\n\t\t\t\t\tif (\n\t\t\t\t\t\tsubfeature === 'root' ||\n\t\t\t\t\t\t! styles?.[ feature ][ subfeature ]\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create a temporary styles object and build\n\t\t\t\t\t// declarations for subfeature.\n\t\t\t\t\tconst subfeatureStyles = {\n\t\t\t\t\t\t[ feature ]: {\n\t\t\t\t\t\t\t[ subfeature ]: styles[ feature ][ subfeature ],\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tconst newDeclarations =\n\t\t\t\t\t\tgetStylesDeclarations( subfeatureStyles );\n\n\t\t\t\t\t// Merge new declarations in with any others that\n\t\t\t\t\t// share the same selector.\n\t\t\t\t\tdeclarations[ subfeatureSelector ] = [\n\t\t\t\t\t\t...( declarations[ subfeatureSelector ] || [] ),\n\t\t\t\t\t\t...newDeclarations,\n\t\t\t\t\t];\n\n\t\t\t\t\t// Remove the subfeature's style now it will be\n\t\t\t\t\t// included under its own selector not the block's.\n\t\t\t\t\tdelete styles[ feature ][ subfeature ];\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t// Now subfeatures have been processed and removed, we can\n\t\t// process root, or shorthand, feature selectors.\n\t\tif ( isShorthand || selector.root ) {\n\t\t\tconst featureSelector = isShorthand ? selector : selector.root;\n\n\t\t\t// Create temporary style object and build declarations for feature.\n\t\t\tconst featureStyles = { [ feature ]: styles[ feature ] };\n\t\t\tconst newDeclarations = getStylesDeclarations( featureStyles );\n\n\t\t\t// Merge new declarations with any others that share the selector.\n\t\t\tdeclarations[ featureSelector ] = [\n\t\t\t\t...( declarations[ featureSelector ] || [] ),\n\t\t\t\t...newDeclarations,\n\t\t\t];\n\n\t\t\t// Remove the feature from the block's styles now as it will be\n\t\t\t// included under its own selector not the block's.\n\t\t\tdelete styles[ feature ];\n\t\t}\n\t} );\n\n\treturn declarations;\n};\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @param {string} selector The selector these declarations should attach to.\n *\n * @param {boolean} useRootPaddingAlign Whether to use CSS custom properties in root selector.\n *\n * @param {Object} tree A theme.json tree containing layout definitions.\n *\n * @param {boolean} disableRootPadding Whether to force disable the root padding styles.\n * @return {Array} An array of style declarations.\n */\nexport function getStylesDeclarations(\n\tblockStyles = {},\n\tselector = '',\n\tuseRootPaddingAlign,\n\ttree = {},\n\tdisableRootPadding = false\n) {\n\tconst isRoot = ROOT_BLOCK_SELECTOR === selector;\n\tconst output = Object.entries( STYLE_PROPERTY ).reduce(\n\t\t(\n\t\t\tdeclarations,\n\t\t\t[ key, { value, properties, useEngine, rootOnly } ]\n\t\t) => {\n\t\t\tif ( rootOnly && ! isRoot ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\t\t\tconst pathToValue = value;\n\t\t\tif ( pathToValue[ 0 ] === 'elements' || useEngine ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = getValueFromObjectPath(\n\t\t\t\tblockStyles,\n\t\t\t\tpathToValue\n\t\t\t);\n\n\t\t\t// Root-level padding styles don't currently support strings with CSS shorthand values.\n\t\t\t// This may change: https://github.com/WordPress/gutenberg/issues/40132.\n\t\t\tif (\n\t\t\t\tkey === '--wp--style--root--padding' &&\n\t\t\t\t( typeof styleValue === 'string' || ! useRootPaddingAlign )\n\t\t\t) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tif ( properties && typeof styleValue !== 'string' ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! getValueFromObjectPath( styleValue, [ prop ], false )\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = name.startsWith( '--' )\n\t\t\t\t\t\t? name\n\t\t\t\t\t\t: kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tgetValueFromObjectPath( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tgetValueFromObjectPath( blockStyles, pathToValue, false )\n\t\t\t) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tgetValueFromObjectPath( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n\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\tconst extraRules = getCSSRules( blockStyles );\n\textraRules.forEach( ( rule ) => {\n\t\t// Don't output padding properties if padding variables are set or if we're not editing a full template.\n\t\tif (\n\t\t\tisRoot &&\n\t\t\t( useRootPaddingAlign || disableRootPadding ) &&\n\t\t\trule.key.startsWith( 'padding' )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst cssProperty = rule.key.startsWith( '--' )\n\t\t\t? rule.key\n\t\t\t: kebabCase( rule.key );\n\n\t\tlet ruleValue = rule.value;\n\t\tif ( typeof ruleValue !== 'string' && ruleValue?.ref ) {\n\t\t\tconst refPath = ruleValue.ref.split( '.' );\n\t\t\truleValue = compileStyleValue(\n\t\t\t\tgetValueFromObjectPath( tree, refPath )\n\t\t\t);\n\t\t\t// Presence of another ref indicates a reference to another dynamic value.\n\t\t\t// Pointing to another dynamic value is not supported.\n\t\t\tif ( ! ruleValue || ruleValue?.ref ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Calculate fluid typography rules where available.\n\t\tif ( cssProperty === 'font-size' ) {\n\t\t\t/*\n\t\t\t * getTypographyFontSizeValue() will check\n\t\t\t * if fluid typography has been activated and also\n\t\t\t * whether the incoming value can be converted to a fluid value.\n\t\t\t * Values that already have a \"clamp()\" function will not pass the test,\n\t\t\t * and therefore the original $value will be returned.\n\t\t\t */\n\t\t\truleValue = getTypographyFontSizeValue(\n\t\t\t\t{ size: ruleValue },\n\t\t\t\ttree?.settings\n\t\t\t);\n\t\t}\n\n\t\t// For aspect ratio to work, other dimensions rules (and Cover block defaults) must be unset.\n\t\t// This ensures that a fixed height does not override the aspect ratio.\n\t\tif ( cssProperty === 'aspect-ratio' ) {\n\t\t\toutput.push( 'min-height: unset' );\n\t\t}\n\n\t\toutput.push( `${ cssProperty }: ${ ruleValue }` );\n\t} );\n\n\treturn output;\n}\n\n/**\n * Get generated CSS for layout styles by looking up layout definitions provided\n * in theme.json, and outputting common layout styles, and specific blockGap values.\n *\n * @param {Object} props\n * @param {Object} props.layoutDefinitions Layout definitions, keyed by layout type.\n * @param {Object} props.style A style object containing spacing values.\n * @param {string} props.selector Selector used to group together layout styling rules.\n * @param {boolean} props.hasBlockGapSupport Whether or not the theme opts-in to blockGap support.\n * @param {boolean} props.hasFallbackGapSupport Whether or not the theme allows fallback gap styles.\n * @param {?string} props.fallbackGapValue An optional fallback gap value if no real gap value is available.\n * @return {string} Generated CSS rules for the layout styles.\n */\nexport function getLayoutStyles( {\n\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\tstyle,\n\tselector,\n\thasBlockGapSupport,\n\thasFallbackGapSupport,\n\tfallbackGapValue,\n} ) {\n\tlet ruleset = '';\n\tlet gapValue = hasBlockGapSupport\n\t\t? getGapCSSValue( style?.spacing?.blockGap )\n\t\t: '';\n\n\t// Ensure a fallback gap value for the root layout definitions,\n\t// and use a fallback value if one is provided for the current block.\n\tif ( hasFallbackGapSupport ) {\n\t\tif ( selector === ROOT_BLOCK_SELECTOR ) {\n\t\t\tgapValue = ! gapValue ? '0.5em' : gapValue;\n\t\t} else if ( ! hasBlockGapSupport && fallbackGapValue ) {\n\t\t\tgapValue = fallbackGapValue;\n\t\t}\n\t}\n\n\tif ( gapValue && layoutDefinitions ) {\n\t\tObject.values( layoutDefinitions ).forEach(\n\t\t\t( { className, name, spacingStyles } ) => {\n\t\t\t\t// Allow outputting fallback gap styles for flex layout type when block gap support isn't available.\n\t\t\t\tif (\n\t\t\t\t\t! hasBlockGapSupport &&\n\t\t\t\t\t'flex' !== name &&\n\t\t\t\t\t'grid' !== name\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( spacingStyles?.length ) {\n\t\t\t\t\tspacingStyles.forEach( ( spacingStyle ) => {\n\t\t\t\t\t\tconst declarations = [];\n\n\t\t\t\t\t\tif ( spacingStyle.rules ) {\n\t\t\t\t\t\t\tObject.entries( spacingStyle.rules ).forEach(\n\t\t\t\t\t\t\t\t( [ cssProperty, cssValue ] ) => {\n\t\t\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t\t\t`${ cssProperty }: ${\n\t\t\t\t\t\t\t\t\t\t\tcssValue ? cssValue : gapValue\n\t\t\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t\t\t);\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\n\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\tlet combinedSelector = '';\n\n\t\t\t\t\t\t\tif ( ! hasBlockGapSupport ) {\n\t\t\t\t\t\t\t\t// For fallback gap styles, use lower specificity, to ensure styles do not unintentionally override theme styles.\n\t\t\t\t\t\t\t\tcombinedSelector =\n\t\t\t\t\t\t\t\t\tselector === ROOT_BLOCK_SELECTOR\n\t\t\t\t\t\t\t\t\t\t? `:where(.${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t })`\n\t\t\t\t\t\t\t\t\t\t: `:where(${ selector }.${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t })`;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcombinedSelector =\n\t\t\t\t\t\t\t\t\tselector === ROOT_BLOCK_SELECTOR\n\t\t\t\t\t\t\t\t\t\t? `.${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t }`\n\t\t\t\t\t\t\t\t\t\t: `${ selector }-${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t }`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\truleset += `${ combinedSelector } { ${ declarations.join(\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\t\t// For backwards compatibility, ensure the legacy block gap CSS variable is still available.\n\t\tif ( selector === ROOT_BLOCK_SELECTOR && hasBlockGapSupport ) {\n\t\t\truleset += `${ ROOT_CSS_PROPERTIES_SELECTOR } { --wp--style--block-gap: ${ gapValue }; }`;\n\t\t}\n\t}\n\n\t// Output base styles\n\tif ( selector === ROOT_BLOCK_SELECTOR && layoutDefinitions ) {\n\t\tconst validDisplayModes = [ 'block', 'flex', 'grid' ];\n\t\tObject.values( layoutDefinitions ).forEach(\n\t\t\t( { className, displayMode, baseStyles } ) => {\n\t\t\t\tif (\n\t\t\t\t\tdisplayMode &&\n\t\t\t\t\tvalidDisplayModes.includes( displayMode )\n\t\t\t\t) {\n\t\t\t\t\truleset += `${ selector } .${ className } { display:${ displayMode }; }`;\n\t\t\t\t}\n\n\t\t\t\tif ( baseStyles?.length ) {\n\t\t\t\t\tbaseStyles.forEach( ( baseStyle ) => {\n\t\t\t\t\t\tconst declarations = [];\n\n\t\t\t\t\t\tif ( baseStyle.rules ) {\n\t\t\t\t\t\t\tObject.entries( baseStyle.rules ).forEach(\n\t\t\t\t\t\t\t\t( [ cssProperty, cssValue ] ) => {\n\t\t\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t\t\t`${ cssProperty }: ${ cssValue }`\n\t\t\t\t\t\t\t\t\t);\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\n\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\tconst combinedSelector = `.${ className }${\n\t\t\t\t\t\t\t\tbaseStyle?.selector || ''\n\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\t\truleset += `${ combinedSelector } { ${ declarations.join(\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\t}\n\n\treturn ruleset;\n}\n\nconst STYLE_KEYS = [\n\t'border',\n\t'color',\n\t'dimensions',\n\t'spacing',\n\t'typography',\n\t'filter',\n\t'outline',\n\t'shadow',\n\t'background',\n];\n\nfunction pickStyleKeys( treeToPickFrom ) {\n\tif ( ! treeToPickFrom ) {\n\t\treturn {};\n\t}\n\tconst entries = Object.entries( treeToPickFrom );\n\tconst pickedEntries = entries.filter( ( [ key ] ) =>\n\t\tSTYLE_KEYS.includes( key )\n\t);\n\t// clone the style objects so that `getFeatureDeclarations` can remove consumed keys from it\n\tconst clonedEntries = pickedEntries.map( ( [ key, style ] ) => [\n\t\tkey,\n\t\tJSON.parse( JSON.stringify( style ) ),\n\t] );\n\treturn Object.fromEntries( clonedEntries );\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\tObject.entries( ELEMENTS ).forEach( ( [ name, selector ] ) => {\n\t\tif ( tree.styles?.elements?.[ name ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: tree.styles?.elements?.[ name ],\n\t\t\t\tselector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tObject.entries( tree.styles?.blocks ?? {} ).forEach(\n\t\t( [ blockName, node ] ) => {\n\t\t\tconst blockStyles = pickStyleKeys( node );\n\n\t\t\tif ( node?.variations ) {\n\t\t\t\tconst variations = {};\n\t\t\t\tObject.entries( node.variations ).forEach(\n\t\t\t\t\t( [ variationName, variation ] ) => {\n\t\t\t\t\t\tvariations[ variationName ] =\n\t\t\t\t\t\t\tpickStyleKeys( variation );\n\n\t\t\t\t\t\tconst variationSelector =\n\t\t\t\t\t\t\tblockSelectors[ blockName ]\n\t\t\t\t\t\t\t\t.styleVariationSelectors?.[ variationName ];\n\n\t\t\t\t\t\t// Process the variation's inner element styles.\n\t\t\t\t\t\t// This comes before the inner block styles so the\n\t\t\t\t\t\t// element styles within the block type styles take\n\t\t\t\t\t\t// precedence over these.\n\t\t\t\t\t\tObject.entries( variation?.elements ?? {} ).forEach(\n\t\t\t\t\t\t\t( [ element, elementStyles ] ) => {\n\t\t\t\t\t\t\t\tif ( elementStyles && ELEMENTS[ element ] ) {\n\t\t\t\t\t\t\t\t\tnodes.push( {\n\t\t\t\t\t\t\t\t\t\tstyles: elementStyles,\n\t\t\t\t\t\t\t\t\t\tselector: scopeSelector(\n\t\t\t\t\t\t\t\t\t\t\tvariationSelector,\n\t\t\t\t\t\t\t\t\t\t\tELEMENTS[ element ]\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t} );\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\n\t\t\t\t\t\t// Process the variations inner block type styles.\n\t\t\t\t\t\tObject.entries( variation?.blocks ?? {} ).forEach(\n\t\t\t\t\t\t\t( [\n\t\t\t\t\t\t\t\tvariationBlockName,\n\t\t\t\t\t\t\t\tvariationBlockStyles,\n\t\t\t\t\t\t\t] ) => {\n\t\t\t\t\t\t\t\tconst variationBlockSelector = scopeSelector(\n\t\t\t\t\t\t\t\t\tvariationSelector,\n\t\t\t\t\t\t\t\t\tblockSelectors[ variationBlockName ]\n\t\t\t\t\t\t\t\t\t\t.selector\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst variationDuotoneSelector = scopeSelector(\n\t\t\t\t\t\t\t\t\tvariationSelector,\n\t\t\t\t\t\t\t\t\tblockSelectors[ variationBlockName ]\n\t\t\t\t\t\t\t\t\t\t.duotoneSelector\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst variationFeatureSelectors =\n\t\t\t\t\t\t\t\t\tscopeFeatureSelectors(\n\t\t\t\t\t\t\t\t\t\tvariationSelector,\n\t\t\t\t\t\t\t\t\t\tblockSelectors[ variationBlockName ]\n\t\t\t\t\t\t\t\t\t\t\t.featureSelectors\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tnodes.push( {\n\t\t\t\t\t\t\t\t\tselector: variationBlockSelector,\n\t\t\t\t\t\t\t\t\tduotoneSelector: variationDuotoneSelector,\n\t\t\t\t\t\t\t\t\tfeatureSelectors: variationFeatureSelectors,\n\t\t\t\t\t\t\t\t\tfallbackGapValue:\n\t\t\t\t\t\t\t\t\t\tblockSelectors[ variationBlockName ]\n\t\t\t\t\t\t\t\t\t\t\t.fallbackGapValue,\n\t\t\t\t\t\t\t\t\thasLayoutSupport:\n\t\t\t\t\t\t\t\t\t\tblockSelectors[ variationBlockName ]\n\t\t\t\t\t\t\t\t\t\t\t.hasLayoutSupport,\n\t\t\t\t\t\t\t\t\tstyles: pickStyleKeys(\n\t\t\t\t\t\t\t\t\t\tvariationBlockStyles\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t// Process element styles for the inner blocks\n\t\t\t\t\t\t\t\t// of the variation.\n\t\t\t\t\t\t\t\tObject.entries(\n\t\t\t\t\t\t\t\t\tvariationBlockStyles.elements ?? {}\n\t\t\t\t\t\t\t\t).forEach(\n\t\t\t\t\t\t\t\t\t( [\n\t\t\t\t\t\t\t\t\t\tvariationBlockElement,\n\t\t\t\t\t\t\t\t\t\tvariationBlockElementStyles,\n\t\t\t\t\t\t\t\t\t] ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tvariationBlockElementStyles &&\n\t\t\t\t\t\t\t\t\t\t\tELEMENTS[ variationBlockElement ]\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tnodes.push( {\n\t\t\t\t\t\t\t\t\t\t\t\tstyles: variationBlockElementStyles,\n\t\t\t\t\t\t\t\t\t\t\t\tselector: scopeSelector(\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariationBlockSelector,\n\t\t\t\t\t\t\t\t\t\t\t\t\tELEMENTS[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariationBlockElement\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\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\tblockStyles.variations = variations;\n\t\t\t}\n\n\t\t\tif ( blockSelectors?.[ blockName ]?.selector ) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tduotoneSelector:\n\t\t\t\t\t\tblockSelectors[ blockName ].duotoneSelector,\n\t\t\t\t\tfallbackGapValue:\n\t\t\t\t\t\tblockSelectors[ blockName ].fallbackGapValue,\n\t\t\t\t\thasLayoutSupport:\n\t\t\t\t\t\tblockSelectors[ blockName ].hasLayoutSupport,\n\t\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t\t\tstyles: blockStyles,\n\t\t\t\t\tfeatureSelectors:\n\t\t\t\t\t\tblockSelectors[ blockName ].featureSelectors,\n\t\t\t\t\tstyleVariationSelectors:\n\t\t\t\t\t\tblockSelectors[ blockName ].styleVariationSelectors,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tObject.entries( node?.elements ?? {} ).forEach(\n\t\t\t\t( [ elementName, value ] ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tvalue &&\n\t\t\t\t\t\tblockSelectors?.[ blockName ] &&\n\t\t\t\t\t\tELEMENTS[ elementName ]\n\t\t\t\t\t) {\n\t\t\t\t\t\tnodes.push( {\n\t\t\t\t\t\t\tstyles: value,\n\t\t\t\t\t\t\tselector: blockSelectors[ blockName ]?.selector\n\t\t\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t\t\t.map( ( sel ) => {\n\t\t\t\t\t\t\t\t\tconst elementSelectors =\n\t\t\t\t\t\t\t\t\t\tELEMENTS[ elementName ].split( ',' );\n\t\t\t\t\t\t\t\t\treturn elementSelectors.map(\n\t\t\t\t\t\t\t\t\t\t( elementSelector ) =>\n\t\t\t\t\t\t\t\t\t\t\tsel + ' ' + elementSelector\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t.join( ',' ),\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 nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tlet presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = getValueFromObjectPath( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tpresets = setImmutably( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tconst custom = tree.settings?.custom;\n\tif ( Object.keys( presets ).length > 0 || custom ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom,\n\t\t\tselector: ROOT_CSS_PROPERTIES_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tObject.entries( tree.settings?.blocks ?? {} ).forEach(\n\t\t( [ blockName, node ] ) => {\n\t\t\tconst blockPresets = pickPresets( node );\n\t\t\tconst blockCustom = node.custom;\n\t\t\tif ( Object.keys( blockPresets ).length > 0 || blockCustom ) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tpresets: blockPresets,\n\t\t\t\t\tcustom: blockCustom,\n\t\t\t\t\tselector: blockSelectors[ blockName ]?.selector,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t);\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets, tree?.settings );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset += `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = (\n\ttree,\n\tblockSelectors,\n\thasBlockGapSupport,\n\thasFallbackGapSupport,\n\tdisableLayoutStyles = false,\n\tdisableRootPadding = false,\n\tstyleOptions = undefined\n) => {\n\t// These allow opting out of certain sets of styles.\n\tconst options = {\n\t\tblockGap: true,\n\t\tblockStyles: true,\n\t\tlayoutStyles: true,\n\t\tmarginReset: true,\n\t\tpresets: true,\n\t\trootPadding: true,\n\t\t...styleOptions,\n\t};\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\tconst useRootPaddingAlign = tree?.settings?.useRootPaddingAwareAlignments;\n\tconst { contentSize, wideSize } = tree?.settings?.layout || {};\n\tconst hasBodyStyles =\n\t\toptions.marginReset || options.rootPadding || options.layoutStyles;\n\n\tlet ruleset = '';\n\n\tif ( options.presets && ( contentSize || wideSize ) ) {\n\t\truleset += `${ ROOT_CSS_PROPERTIES_SELECTOR } {`;\n\t\truleset = contentSize\n\t\t\t? ruleset + ` --wp--style--global--content-size: ${ contentSize };`\n\t\t\t: ruleset;\n\t\truleset = wideSize\n\t\t\t? ruleset + ` --wp--style--global--wide-size: ${ wideSize };`\n\t\t\t: ruleset;\n\t\truleset += '}';\n\t}\n\n\tif ( hasBodyStyles ) {\n\t\t/*\n\t\t * Reset default browser margin on the body element.\n\t\t * This is set on the body selector **before** generating the ruleset\n\t\t * from the `theme.json`. This is to ensure that if the `theme.json` declares\n\t\t * `margin` in its `spacing` declaration for the `body` element then these\n\t\t * user-generated values take precedence in the CSS cascade.\n\t\t * @link https://github.com/WordPress/gutenberg/issues/36147.\n\t\t */\n\t\truleset += ':where(body) {margin: 0;';\n\n\t\t// Root padding styles should be output for full templates, patterns and template parts.\n\t\tif ( options.rootPadding && useRootPaddingAlign ) {\n\t\t\t/*\n\t\t\t * These rules reproduce the ones from https://github.com/WordPress/gutenberg/blob/79103f124925d1f457f627e154f52a56228ed5ad/lib/class-wp-theme-json-gutenberg.php#L2508\n\t\t\t * almost exactly, but for the selectors that target block wrappers in the front end. This code only runs in the editor, so it doesn't need those selectors.\n\t\t\t */\n\t\t\truleset += `padding-right: 0; padding-left: 0; padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom) }\n\t\t\t\t.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\t\t\t\t.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }\n\t\t\t\t.has-global-padding :where(.has-global-padding:not(.wp-block-block, .alignfull, .alignwide)) { padding-right: 0; padding-left: 0; }\n\t\t\t\t.has-global-padding :where(.has-global-padding:not(.wp-block-block, .alignfull, .alignwide)) > .alignfull { margin-left: 0; margin-right: 0;\n\t\t\t\t`;\n\t\t}\n\n\t\truleset += '}';\n\t}\n\n\tif ( options.blockStyles ) {\n\t\tnodesWithStyles.forEach(\n\t\t\t( {\n\t\t\t\tselector,\n\t\t\t\tduotoneSelector,\n\t\t\t\tstyles,\n\t\t\t\tfallbackGapValue,\n\t\t\t\thasLayoutSupport,\n\t\t\t\tfeatureSelectors,\n\t\t\t\tstyleVariationSelectors,\n\t\t\t} ) => {\n\t\t\t\t// Process styles for block support features with custom feature level\n\t\t\t\t// CSS selectors set.\n\t\t\t\tif ( featureSelectors ) {\n\t\t\t\t\tconst featureDeclarations = getFeatureDeclarations(\n\t\t\t\t\t\tfeatureSelectors,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t);\n\n\t\t\t\t\tObject.entries( featureDeclarations ).forEach(\n\t\t\t\t\t\t( [ cssSelector, declarations ] ) => {\n\t\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\t\tconst rules = declarations.join( ';' );\n\t\t\t\t\t\t\t\truleset += `:root :where(${ cssSelector }){${ rules };}`;\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\n\t\t\t\t// Process duotone styles.\n\t\t\t\tif ( duotoneSelector ) {\n\t\t\t\t\tconst duotoneStyles = {};\n\t\t\t\t\tif ( styles?.filter ) {\n\t\t\t\t\t\tduotoneStyles.filter = styles.filter;\n\t\t\t\t\t\tdelete styles.filter;\n\t\t\t\t\t}\n\t\t\t\t\tconst duotoneDeclarations =\n\t\t\t\t\t\tgetStylesDeclarations( duotoneStyles );\n\t\t\t\t\tif ( duotoneDeclarations.length ) {\n\t\t\t\t\t\truleset += `${ duotoneSelector }{${ duotoneDeclarations.join(\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\n\t\t\t\t// Process blockGap and layout styles.\n\t\t\t\tif (\n\t\t\t\t\t! disableLayoutStyles &&\n\t\t\t\t\t( ROOT_BLOCK_SELECTOR === selector || hasLayoutSupport )\n\t\t\t\t) {\n\t\t\t\t\truleset += getLayoutStyles( {\n\t\t\t\t\t\tstyle: styles,\n\t\t\t\t\t\tselector,\n\t\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\t\tfallbackGapValue,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Process the remaining block styles (they use either normal block class or __experimentalSelector).\n\t\t\t\tconst styleDeclarations = getStylesDeclarations(\n\t\t\t\t\tstyles,\n\t\t\t\t\tselector,\n\t\t\t\t\tuseRootPaddingAlign,\n\t\t\t\t\ttree,\n\t\t\t\t\tdisableRootPadding\n\t\t\t\t);\n\t\t\t\tif ( styleDeclarations?.length ) {\n\t\t\t\t\truleset += `:root :where(${ selector }){${ styleDeclarations.join(\n\t\t\t\t\t\t';'\n\t\t\t\t\t) };}`;\n\t\t\t\t}\n\n\t\t\t\tif ( styleVariationSelectors ) {\n\t\t\t\t\tObject.entries( styleVariationSelectors ).forEach(\n\t\t\t\t\t\t( [ styleVariationName, styleVariationSelector ] ) => {\n\t\t\t\t\t\t\tconst styleVariations =\n\t\t\t\t\t\t\t\tstyles?.variations?.[ styleVariationName ];\n\t\t\t\t\t\t\tif ( styleVariations ) {\n\t\t\t\t\t\t\t\t// If the block uses any custom selectors for block support, add those first.\n\t\t\t\t\t\t\t\tif ( featureSelectors ) {\n\t\t\t\t\t\t\t\t\tconst featureDeclarations =\n\t\t\t\t\t\t\t\t\t\tgetFeatureDeclarations(\n\t\t\t\t\t\t\t\t\t\t\tfeatureSelectors,\n\t\t\t\t\t\t\t\t\t\t\tstyleVariations\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tObject.entries(\n\t\t\t\t\t\t\t\t\t\tfeatureDeclarations\n\t\t\t\t\t\t\t\t\t).forEach(\n\t\t\t\t\t\t\t\t\t\t( [ baseSelector, declarations ] ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst cssSelector =\n\t\t\t\t\t\t\t\t\t\t\t\t\tconcatFeatureVariationSelectorString(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbaseSelector,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyleVariationSelector\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\tconst rules =\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeclarations.join( ';' );\n\t\t\t\t\t\t\t\t\t\t\t\truleset += `:root :where(${ cssSelector }){${ rules };}`;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Otherwise add regular selectors.\n\t\t\t\t\t\t\t\tconst styleVariationDeclarations =\n\t\t\t\t\t\t\t\t\tgetStylesDeclarations(\n\t\t\t\t\t\t\t\t\t\tstyleVariations,\n\t\t\t\t\t\t\t\t\t\tstyleVariationSelector,\n\t\t\t\t\t\t\t\t\t\tuseRootPaddingAlign,\n\t\t\t\t\t\t\t\t\t\ttree\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( styleVariationDeclarations.length ) {\n\t\t\t\t\t\t\t\t\truleset += `:root :where(${ styleVariationSelector }){${ styleVariationDeclarations.join(\n\t\t\t\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t\t\t\t) };}`;\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\n\t\t\t\t// Check for pseudo selector in `styles` and handle separately.\n\t\t\t\tconst pseudoSelectorStyles = Object.entries( styles ).filter(\n\t\t\t\t\t( [ key ] ) => key.startsWith( ':' )\n\t\t\t\t);\n\n\t\t\t\tif ( pseudoSelectorStyles?.length ) {\n\t\t\t\t\tpseudoSelectorStyles.forEach(\n\t\t\t\t\t\t( [ pseudoKey, pseudoStyle ] ) => {\n\t\t\t\t\t\t\tconst pseudoDeclarations =\n\t\t\t\t\t\t\t\tgetStylesDeclarations( pseudoStyle );\n\n\t\t\t\t\t\t\tif ( ! pseudoDeclarations?.length ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// `selector` may be provided in a form\n\t\t\t\t\t\t\t// where block level selectors have sub element\n\t\t\t\t\t\t\t// selectors appended to them as a comma separated\n\t\t\t\t\t\t\t// string.\n\t\t\t\t\t\t\t// e.g. `h1 a,h2 a,h3 a,h4 a,h5 a,h6 a`;\n\t\t\t\t\t\t\t// Split and append pseudo selector to create\n\t\t\t\t\t\t\t// the proper rules to target the elements.\n\t\t\t\t\t\t\tconst _selector = selector\n\t\t\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t\t\t.map( ( sel ) => sel + pseudoKey )\n\t\t\t\t\t\t\t\t.join( ',' );\n\n\t\t\t\t\t\t\tconst pseudoRule = `${ _selector }{${ pseudoDeclarations.join(\n\t\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t\t) };}`;\n\n\t\t\t\t\t\t\truleset += pseudoRule;\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\tif ( options.layoutStyles ) {\n\t\t/* Add alignment / layout styles */\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';\n\t}\n\n\tif ( options.blockGap && hasBlockGapSupport ) {\n\t\t// Use fallback of `0.5em` just in case, however if there is blockGap support, there should nearly always be a real value.\n\t\tconst gapValue =\n\t\t\tgetGapCSSValue( tree?.styles?.spacing?.blockGap ) || '0.5em';\n\t\truleset =\n\t\t\truleset +\n\t\t\t`:root :where(.wp-site-blocks) > * { margin-block-start: ${ gapValue }; margin-block-end: 0; }`;\n\t\truleset =\n\t\t\truleset +\n\t\t\t':root :where(.wp-site-blocks) > :first-child { margin-block-start: 0; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t':root :where(.wp-site-blocks) > :last-child { margin-block-end: 0; }';\n\t}\n\n\tif ( options.presets ) {\n\t\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\t\tif (\n\t\t\t\tROOT_BLOCK_SELECTOR === selector ||\n\t\t\t\tROOT_CSS_PROPERTIES_SELECTOR === selector\n\t\t\t) {\n\t\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\t\tselector = '';\n\t\t\t}\n\n\t\t\tconst classes = getPresetsClasses( selector, presets );\n\t\t\tif ( classes.length > 0 ) {\n\t\t\t\truleset += classes;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn ruleset;\n};\n\nexport function toSvgFilters( tree, blockSelectors ) {\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\treturn nodesWithSettings.flatMap( ( { presets } ) => {\n\t\treturn getPresetsSvgFilters( presets );\n\t} );\n}\n\nconst getSelectorsConfig = ( blockType, rootSelector ) => {\n\tif (\n\t\tblockType?.selectors &&\n\t\tObject.keys( blockType.selectors ).length > 0\n\t) {\n\t\treturn blockType.selectors;\n\t}\n\n\tconst config = { root: rootSelector };\n\tObject.entries( BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS ).forEach(\n\t\t( [ featureKey, featureName ] ) => {\n\t\t\tconst featureSelector = getBlockCSSSelector(\n\t\t\t\tblockType,\n\t\t\t\tfeatureKey\n\t\t\t);\n\n\t\t\tif ( featureSelector ) {\n\t\t\t\tconfig[ featureName ] = featureSelector;\n\t\t\t}\n\t\t}\n\t);\n\n\treturn config;\n};\n\nexport const getBlockSelectors = (\n\tblockTypes,\n\tgetBlockStyles,\n\tvariationInstanceId\n) => {\n\tconst result = {};\n\tblockTypes.forEach( ( blockType ) => {\n\t\tconst name = blockType.name;\n\t\tconst selector = getBlockCSSSelector( blockType );\n\t\tlet duotoneSelector = getBlockCSSSelector(\n\t\t\tblockType,\n\t\t\t'filter.duotone'\n\t\t);\n\n\t\t// Keep backwards compatibility for support.color.__experimentalDuotone.\n\t\tif ( ! duotoneSelector ) {\n\t\t\tconst rootSelector = getBlockCSSSelector( blockType );\n\t\t\tconst duotoneSupport = getBlockSupport(\n\t\t\t\tblockType,\n\t\t\t\t'color.__experimentalDuotone',\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tduotoneSelector =\n\t\t\t\tduotoneSupport && scopeSelector( rootSelector, duotoneSupport );\n\t\t}\n\n\t\tconst hasLayoutSupport =\n\t\t\t!! blockType?.supports?.layout ||\n\t\t\t!! blockType?.supports?.__experimentalLayout;\n\t\tconst fallbackGapValue =\n\t\t\tblockType?.supports?.spacing?.blockGap?.__experimentalDefault;\n\n\t\tconst blockStyleVariations = getBlockStyles( name );\n\t\tconst styleVariationSelectors = {};\n\t\tblockStyleVariations?.forEach( ( variation ) => {\n\t\t\tconst variationSuffix = variationInstanceId\n\t\t\t\t? `-${ variationInstanceId }`\n\t\t\t\t: '';\n\t\t\tconst variationName = `${ variation.name }${ variationSuffix }`;\n\t\t\tconst styleVariationSelector = getBlockStyleVariationSelector(\n\t\t\t\tvariationName,\n\t\t\t\tselector\n\t\t\t);\n\n\t\t\tstyleVariationSelectors[ variationName ] = styleVariationSelector;\n\t\t} );\n\n\t\t// For each block support feature add any custom selectors.\n\t\tconst featureSelectors = getSelectorsConfig( blockType, selector );\n\n\t\tresult[ name ] = {\n\t\t\tduotoneSelector,\n\t\t\tfallbackGapValue,\n\t\t\tfeatureSelectors: Object.keys( featureSelectors ).length\n\t\t\t\t? featureSelectors\n\t\t\t\t: undefined,\n\t\t\thasLayoutSupport,\n\t\t\tname,\n\t\t\tselector,\n\t\t\tstyleVariationSelectors: blockStyleVariations?.length\n\t\t\t\t? styleVariationSelectors\n\t\t\t\t: undefined,\n\t\t};\n\t} );\n\n\treturn result;\n};\n\n/**\n * If there is a separator block whose color is defined in theme.json via background,\n * update the separator color to the same value by using border color.\n *\n * @param {Object} config Theme.json configuration file object.\n * @return {Object} configTheme.json configuration file object updated.\n */\nfunction updateConfigWithSeparator( config ) {\n\tconst needsSeparatorStyleUpdate =\n\t\tconfig.styles?.blocks?.[ 'core/separator' ] &&\n\t\tconfig.styles?.blocks?.[ 'core/separator' ].color?.background &&\n\t\t! config.styles?.blocks?.[ 'core/separator' ].color?.text &&\n\t\t! config.styles?.blocks?.[ 'core/separator' ].border?.color;\n\tif ( needsSeparatorStyleUpdate ) {\n\t\treturn {\n\t\t\t...config,\n\t\t\tstyles: {\n\t\t\t\t...config.styles,\n\t\t\t\tblocks: {\n\t\t\t\t\t...config.styles.blocks,\n\t\t\t\t\t'core/separator': {\n\t\t\t\t\t\t...config.styles.blocks[ 'core/separator' ],\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t...config.styles.blocks[ 'core/separator' ].color,\n\t\t\t\t\t\t\ttext: config.styles?.blocks[ 'core/separator' ]\n\t\t\t\t\t\t\t\t.color.background,\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\treturn config;\n}\n\nexport function processCSSNesting( css, blockSelector ) {\n\tlet processedCSS = '';\n\n\t// Split CSS nested rules.\n\tconst parts = css.split( '&' );\n\tparts.forEach( ( part ) => {\n\t\tconst isRootCss = ! part.includes( '{' );\n\t\tif ( isRootCss ) {\n\t\t\t// If the part doesn't contain braces, it applies to the root level.\n\t\t\tprocessedCSS += `:root :where(${ blockSelector }){${ part.trim() }}`;\n\t\t} else {\n\t\t\t// If the part contains braces, it's a nested CSS rule.\n\t\t\tconst splittedPart = part.replace( '}', '' ).split( '{' );\n\t\t\tif ( splittedPart.length !== 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst [ nestedSelector, cssValue ] = splittedPart;\n\t\t\tconst combinedSelector = nestedSelector.startsWith( ' ' )\n\t\t\t\t? scopeSelector( blockSelector, nestedSelector )\n\t\t\t\t: appendToSelector( blockSelector, nestedSelector );\n\n\t\t\tprocessedCSS += `:root :where(${ combinedSelector }){${ cssValue.trim() }}`;\n\t\t}\n\t} );\n\treturn processedCSS;\n}\n\n/**\n * Returns the global styles output using a global styles configuration.\n * If wishing to generate global styles and settings based on the\n * global styles config loaded in the editor context, use `useGlobalStylesOutput()`.\n * The use case for a custom config is to generate bespoke styles\n * and settings for previews, or other out-of-editor experiences.\n *\n * @param {Object} mergedConfig Global styles configuration.\n * @param {boolean} disableRootPadding Disable root padding styles.\n *\n * @return {Array} Array of stylesheets and settings.\n */\nexport function useGlobalStylesOutputWithConfig(\n\tmergedConfig = {},\n\tdisableRootPadding\n) {\n\tconst [ blockGap ] = useGlobalSetting( 'spacing.blockGap' );\n\tmergedConfig = setThemeFileUris(\n\t\tmergedConfig,\n\t\tmergedConfig?._links?.[ 'wp:theme-file' ]\n\t);\n\tconst hasBlockGapSupport = blockGap !== null;\n\tconst hasFallbackGapSupport = ! hasBlockGapSupport; // This setting isn't useful yet: it exists as a placeholder for a future explicit fallback styles support.\n\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn !! getSettings().disableLayoutStyles;\n\t} );\n\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\n\treturn useMemo( () => {\n\t\tif ( ! mergedConfig?.styles || ! mergedConfig?.settings ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst updatedConfig = updateConfigWithSeparator( mergedConfig );\n\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles\n\t\t);\n\n\t\tconst customProperties = toCustomProperties(\n\t\t\tupdatedConfig,\n\t\t\tblockSelectors\n\t\t);\n\n\t\tconst globalStyles = toStyles(\n\t\t\tupdatedConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tdisableRootPadding\n\t\t);\n\t\tconst svgs = toSvgFilters( updatedConfig, blockSelectors );\n\n\t\tconst styles = [\n\t\t\t{\n\t\t\t\tcss: customProperties,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcss: globalStyles,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t// Load custom CSS in own stylesheet so that any invalid CSS entered in the input won't break all the global styles in the editor.\n\t\t\t{\n\t\t\t\tcss: updatedConfig.styles.css ?? '',\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tassets: svgs,\n\t\t\t\t__unstableType: 'svg',\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t];\n\n\t\t// Loop through the blocks to check if there are custom CSS values.\n\t\t// If there are, get the block selector and push the selector together with\n\t\t// the CSS value to the 'stylesheets' array.\n\t\tgetBlockTypes().forEach( ( blockType ) => {\n\t\t\tif ( updatedConfig.styles.blocks[ blockType.name ]?.css ) {\n\t\t\t\tconst selector = blockSelectors[ blockType.name ].selector;\n\t\t\t\tstyles.push( {\n\t\t\t\t\tcss: processCSSNesting(\n\t\t\t\t\t\tupdatedConfig.styles.blocks[ blockType.name ]?.css,\n\t\t\t\t\t\tselector\n\t\t\t\t\t),\n\t\t\t\t\tisGlobalStyles: true,\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\treturn [ styles, updatedConfig.settings ];\n\t}, [\n\t\thasBlockGapSupport,\n\t\thasFallbackGapSupport,\n\t\tmergedConfig,\n\t\tdisableLayoutStyles,\n\t\tdisableRootPadding,\n\t\tgetBlockStyles,\n\t] );\n}\n\n/**\n * Returns the global styles output based on the current state of global styles config loaded in the editor context.\n *\n * @param {boolean} disableRootPadding Disable root padding styles.\n *\n * @return {Array} Array of stylesheets and settings.\n */\nexport function useGlobalStylesOutput( disableRootPadding = false ) {\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\treturn useGlobalStylesOutputWithConfig( mergedConfig, disableRootPadding );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.withGradient = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
7
|
var _useGradient = require("./use-gradient");
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
9
|
/**
|
|
10
10
|
* Internal dependencies
|
|
11
11
|
*/
|
|
@@ -14,7 +14,7 @@ const withGradient = WrappedComponent => props => {
|
|
|
14
14
|
const {
|
|
15
15
|
gradientValue
|
|
16
16
|
} = (0, _useGradient.__experimentalUseGradient)();
|
|
17
|
-
return (0,
|
|
17
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
|
|
18
18
|
...props,
|
|
19
19
|
gradientValue: gradientValue
|
|
20
20
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_useGradient","require","withGradient","WrappedComponent","props","gradientValue","__experimentalUseGradient","
|
|
1
|
+
{"version":3,"names":["_useGradient","require","_jsxRuntime","withGradient","WrappedComponent","props","gradientValue","__experimentalUseGradient","jsx","exports"],"sources":["@wordpress/block-editor/src/components/gradients/with-gradient.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { __experimentalUseGradient } from './use-gradient';\n\nexport const withGradient = ( WrappedComponent ) => ( props ) => {\n\tconst { gradientValue } = __experimentalUseGradient();\n\treturn <WrappedComponent { ...props } gradientValue={ gradientValue } />;\n};\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAA2D,IAAAC,WAAA,GAAAD,OAAA;AAH3D;AACA;AACA;;AAGO,MAAME,YAAY,GAAKC,gBAAgB,IAAQC,KAAK,IAAM;EAChE,MAAM;IAAEC;EAAc,CAAC,GAAG,IAAAC,sCAAyB,EAAC,CAAC;EACrD,oBAAO,IAAAL,WAAA,CAAAM,GAAA,EAACJ,gBAAgB;IAAA,GAAMC,KAAK;IAAGC,aAAa,EAAGA;EAAe,CAAE,CAAC;AACzE,CAAC;AAACG,OAAA,CAAAN,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -5,12 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.GridItemResizer = GridItemResizer;
|
|
8
|
-
var _react = require("react");
|
|
9
8
|
var _components = require("@wordpress/components");
|
|
10
9
|
var _element = require("@wordpress/element");
|
|
11
10
|
var _useBlockRefs = require("../block-list/use-block-props/use-block-refs");
|
|
12
11
|
var _cover = _interopRequireDefault(require("../block-popover/cover"));
|
|
13
12
|
var _utils = require("./utils");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
/**
|
|
15
15
|
* WordPress dependencies
|
|
16
16
|
*/
|
|
@@ -29,7 +29,7 @@ function GridItemResizer({
|
|
|
29
29
|
if (!blockElement || !rootBlockElement) {
|
|
30
30
|
return null;
|
|
31
31
|
}
|
|
32
|
-
return (0,
|
|
32
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridItemResizerInner, {
|
|
33
33
|
clientId: clientId,
|
|
34
34
|
bounds: bounds,
|
|
35
35
|
blockElement: blockElement,
|
|
@@ -84,66 +84,67 @@ function GridItemResizerInner({
|
|
|
84
84
|
alignItems: alignment[resizeDirection]
|
|
85
85
|
})
|
|
86
86
|
};
|
|
87
|
-
return (0,
|
|
87
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_cover.default, {
|
|
88
88
|
className: "block-editor-grid-item-resizer",
|
|
89
89
|
clientId: clientId,
|
|
90
90
|
__unstablePopoverSlot: "block-toolbar",
|
|
91
|
-
additionalStyles: styles
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
91
|
+
additionalStyles: styles,
|
|
92
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ResizableBox, {
|
|
93
|
+
className: "block-editor-grid-item-resizer__box",
|
|
94
|
+
size: {
|
|
95
|
+
width: '100%',
|
|
96
|
+
height: '100%'
|
|
97
|
+
},
|
|
98
|
+
enable: {
|
|
99
|
+
bottom: enableSide.bottom,
|
|
100
|
+
bottomLeft: false,
|
|
101
|
+
bottomRight: false,
|
|
102
|
+
left: enableSide.left,
|
|
103
|
+
right: enableSide.right,
|
|
104
|
+
top: enableSide.top,
|
|
105
|
+
topLeft: false,
|
|
106
|
+
topRight: false
|
|
107
|
+
},
|
|
108
|
+
bounds: bounds,
|
|
109
|
+
boundsByDirection: true,
|
|
110
|
+
onResizeStart: (event, direction) => {
|
|
111
|
+
/*
|
|
112
|
+
* The container justification and alignment need to be set
|
|
113
|
+
* according to the direction the resizer is being dragged in,
|
|
114
|
+
* so that it resizes in the right direction.
|
|
115
|
+
*/
|
|
116
|
+
setResizeDirection(direction);
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
118
|
+
/*
|
|
119
|
+
* The mouseup event on the resize handle doesn't trigger if the mouse
|
|
120
|
+
* isn't directly above the handle, so we try to detect if it happens
|
|
121
|
+
* outside the grid and dispatch a mouseup event on the handle.
|
|
122
|
+
*/
|
|
123
|
+
blockElement.ownerDocument.addEventListener('mouseup', () => {
|
|
124
|
+
event.target.dispatchEvent(new Event('mouseup', {
|
|
125
|
+
bubbles: true
|
|
126
|
+
}));
|
|
127
|
+
}, {
|
|
128
|
+
once: true
|
|
129
|
+
});
|
|
130
|
+
},
|
|
131
|
+
onResizeStop: (event, direction, boxElement) => {
|
|
132
|
+
const columnGap = parseFloat((0, _utils.getComputedCSS)(rootBlockElement, 'column-gap'));
|
|
133
|
+
const rowGap = parseFloat((0, _utils.getComputedCSS)(rootBlockElement, 'row-gap'));
|
|
134
|
+
const gridColumnTracks = getGridTracks((0, _utils.getComputedCSS)(rootBlockElement, 'grid-template-columns'), columnGap);
|
|
135
|
+
const gridRowTracks = getGridTracks((0, _utils.getComputedCSS)(rootBlockElement, 'grid-template-rows'), rowGap);
|
|
136
|
+
const rect = new window.DOMRect(blockElement.offsetLeft + boxElement.offsetLeft, blockElement.offsetTop + boxElement.offsetTop, boxElement.offsetWidth, boxElement.offsetHeight);
|
|
137
|
+
const columnStart = getClosestTrack(gridColumnTracks, rect.left) + 1;
|
|
138
|
+
const rowStart = getClosestTrack(gridRowTracks, rect.top) + 1;
|
|
139
|
+
const columnEnd = getClosestTrack(gridColumnTracks, rect.right, 'end') + 1;
|
|
140
|
+
const rowEnd = getClosestTrack(gridRowTracks, rect.bottom, 'end') + 1;
|
|
141
|
+
onChange({
|
|
142
|
+
columnSpan: columnEnd - columnStart + 1,
|
|
143
|
+
rowSpan: rowEnd - rowStart + 1
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
})
|
|
147
|
+
});
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
/**
|