@wordpress/block-editor 12.2.0 → 12.3.1
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 +12 -0
- package/README.md +12 -0
- package/build/autocompleters/block.js +6 -6
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/alignment-control/index.js +4 -6
- package/build/components/alignment-control/index.js.map +1 -1
- package/build/components/alignment-control/ui.js +14 -20
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/autocomplete/index.js +5 -8
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-actions/index.js +12 -12
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/constants.js +1 -5
- package/build/components/block-alignment-control/constants.js.map +1 -1
- package/build/components/block-alignment-control/index.js +4 -6
- package/build/components/block-alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +20 -25
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +17 -20
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +5 -10
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +4 -7
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +5 -7
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-caption/index.native.js +30 -35
- package/build/components/block-caption/index.native.js.map +1 -1
- package/build/components/block-card/index.js +7 -9
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-compare/block-view.js +8 -9
- package/build/components/block-compare/block-view.js.map +1 -1
- package/build/components/block-compare/index.js +7 -9
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-context/index.js +4 -5
- package/build/components/block-context/index.js.map +1 -1
- package/build/components/block-controls/fill.js +16 -22
- package/build/components/block-controls/fill.js.map +1 -1
- package/build/components/block-controls/hook.js +1 -3
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-controls/index.js +8 -8
- package/build/components/block-controls/index.js.map +1 -1
- package/build/components/block-controls/slot.js +28 -20
- package/build/components/block-controls/slot.js.map +1 -1
- package/build/components/block-controls/slot.native.js +9 -17
- package/build/components/block-controls/slot.native.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +5 -6
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.native.js +3 -4
- package/build/components/block-draggable/draggable-chip.native.js.map +1 -1
- package/build/components/block-draggable/dropping-insertion-point.native.js +6 -7
- package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
- package/build/components/block-draggable/index.js +15 -16
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +43 -58
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +5 -10
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-edit/edit.native.js +3 -8
- package/build/components/block-edit/edit.native.js.map +1 -1
- package/build/components/block-edit/index.js +3 -2
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-edit-visually-button/index.js +3 -4
- package/build/components/block-edit-visually-button/index.js.map +1 -1
- package/build/components/block-full-height-alignment-control/index.js +6 -7
- package/build/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build/components/block-heading-level-dropdown/heading-level-icon.js +47 -0
- package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -0
- package/build/components/block-heading-level-dropdown/index.js +83 -0
- package/build/components/block-heading-level-dropdown/index.js.map +1 -0
- package/build/components/block-heading-level-dropdown/index.native.js +72 -0
- package/build/components/block-heading-level-dropdown/index.native.js.map +1 -0
- package/build/components/block-icon/index.js +7 -11
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-icon/index.native.js +15 -20
- package/build/components/block-icon/index.native.js.map +1 -1
- package/build/components/block-info-slot-fill/index.js +4 -2
- package/build/components/block-info-slot-fill/index.js.map +1 -1
- package/build/components/block-inspector/index.js +45 -122
- 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-html.js +3 -4
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +3 -4
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.native.js +10 -15
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block-list-context.native.js +5 -11
- package/build/components/block-list/block-list-context.native.js.map +1 -1
- package/build/components/block-list/block-list-item-cell.native.js +5 -6
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +21 -20
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +8 -9
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js +10 -12
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js +45 -50
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +56 -68
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +18 -18
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +80 -90
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/insertion-point.native.js +4 -5
- package/build/components/block-list/insertion-point.native.js.map +1 -1
- package/build/components/block-list/layout.js +6 -9
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/block-list/subdirectory-icon.js +11 -17
- package/build/components/block-list/subdirectory-icon.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +15 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.native.js +1 -2
- package/build/components/block-list/use-block-props/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js +2 -2
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js +1 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +2 -6
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +36 -33
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +9 -11
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-lock/menu-item.js +3 -4
- package/build/components/block-lock/menu-item.js.map +1 -1
- package/build/components/block-lock/modal.js +6 -9
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +4 -10
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +50 -68
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +26 -34
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-mover/button.js +18 -19
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +16 -18
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +23 -46
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-mover/mover-description.native.js +7 -10
- package/build/components/block-mover/mover-description.native.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +22 -29
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-parent-selector/index.js +6 -7
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +33 -39
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +35 -42
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +76 -85
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-popover/drop-zone.js +4 -5
- package/build/components/block-popover/drop-zone.js.map +1 -1
- package/build/components/block-popover/inbetween.js +14 -21
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +18 -21
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +8 -12
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +21 -24
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +83 -0
- package/build/components/block-quick-navigation/index.js.map +1 -0
- package/build/components/block-removal-warning-modal/index.js +90 -0
- package/build/components/block-removal-warning-modal/index.js.map +1 -0
- package/build/components/block-selection-clearer/index.js +4 -7
- package/build/components/block-selection-clearer/index.js.map +1 -1
- package/build/components/block-settings/button.native.js +10 -12
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/block-settings/container.native.js +6 -6
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-settings-menu/block-convert-button.js +5 -7
- package/build/components/block-settings-menu/block-convert-button.js.map +1 -1
- package/build/components/block-settings-menu/block-html-convert-button.js +10 -14
- package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +19 -25
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +136 -116
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu/index.js +8 -10
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +18 -21
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +6 -7
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +5 -7
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-styles/menu-items.js +4 -5
- package/build/components/block-styles/menu-items.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +7 -10
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-styles/preview.native.js +6 -7
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-styles/use-styles-for-block.js +7 -9
- package/build/components/block-styles/use-styles-for-block.js.map +1 -1
- package/build/components/block-styles/utils.js +4 -7
- package/build/components/block-styles/utils.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js +4 -5
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +24 -29
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.native.js +9 -10
- package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +21 -30
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build/components/block-switcher/index.js +48 -62
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +24 -30
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +3 -4
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-switcher/utils.js +2 -3
- package/build/components/block-switcher/utils.js.map +1 -1
- package/build/components/block-title/index.js +5 -6
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +5 -6
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/index.js +8 -10
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/utils.js +14 -16
- package/build/components/block-toolbar/utils.js.map +1 -1
- package/build/components/block-tools/back-compat.js +3 -4
- package/build/components/block-tools/back-compat.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +9 -11
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +10 -14
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +19 -13
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +12 -15
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +27 -28
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +9 -14
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +3 -4
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-types-list/index.js +8 -9
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +26 -33
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.js +8 -9
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +7 -9
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +30 -41
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/index.js +4 -6
- package/build/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/ui.js +12 -21
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/border-radius-control/all-input-control.js +9 -14
- package/build/components/border-radius-control/all-input-control.js.map +1 -1
- package/build/components/border-radius-control/index.js +9 -10
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +10 -17
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +6 -11
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/border-radius-control/utils.js +3 -7
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/button-block-appender/index.js +13 -15
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/button-block-appender/index.native.js +25 -29
- package/build/components/button-block-appender/index.native.js.map +1 -1
- package/build/components/caption/index.native.js +40 -43
- package/build/components/caption/index.native.js.map +1 -1
- package/build/components/child-layout-control/index.js +5 -6
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/color-palette/control.js +7 -10
- package/build/components/color-palette/control.js.map +1 -1
- package/build/components/color-palette/with-color-context.js +3 -11
- package/build/components/color-palette/with-color-context.js.map +1 -1
- package/build/components/color-style-selector/index.js +28 -35
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/colors/utils.js +12 -11
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +20 -40
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +26 -27
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +44 -50
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +27 -30
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js +27 -31
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build/components/contrast-checker/index.js +12 -13
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/contrast-checker/index.native.js +16 -18
- package/build/components/contrast-checker/index.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +9 -10
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.native.js +6 -7
- package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +6 -12
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +4 -6
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/copy-handler/index.js +9 -13
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +12 -16
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +7 -9
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/default-block-appender/index.native.js +8 -10
- package/build/components/default-block-appender/index.native.js.map +1 -1
- package/build/components/default-style-picker/index.js +14 -22
- package/build/components/default-style-picker/index.js.map +1 -1
- package/build/components/duotone/components.js +14 -18
- package/build/components/duotone/components.js.map +1 -1
- package/build/components/duotone/utils.js +1 -2
- package/build/components/duotone/utils.js.map +1 -1
- package/build/components/duotone-control/index.js +13 -17
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/editable-text/index.js +11 -13
- package/build/components/editable-text/index.js.map +1 -1
- package/build/components/editor-styles/index.js +4 -5
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/floating-toolbar/index.native.js +7 -8
- package/build/components/floating-toolbar/index.native.js.map +1 -1
- package/build/components/font-appearance-control/index.js +21 -32
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +14 -17
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +17 -21
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/font-sizes/font-size-picker.js +2 -4
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/font-sizes/utils.js +9 -15
- package/build/components/font-sizes/utils.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +18 -37
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/global-styles/advanced-panel.js +7 -10
- package/build/components/global-styles/advanced-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +45 -78
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +119 -163
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.native.js +25 -42
- package/build/components/global-styles/color-panel.native.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +78 -109
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/effects-panel.js +60 -73
- package/build/components/global-styles/effects-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +55 -72
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-block-css-selector.js +4 -7
- package/build/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build/components/global-styles/hooks.js +22 -37
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +6 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +69 -125
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +49 -26
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +153 -245
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +11 -27
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/gradients/use-gradient.js +6 -7
- package/build/components/gradients/use-gradient.js.map +1 -1
- package/build/components/gradients/with-gradient.js +2 -6
- package/build/components/gradients/with-gradient.js.map +1 -1
- package/build/components/height-control/index.js +9 -10
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/index.js +53 -90
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-compatibility-styles.js +29 -20
- package/build/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +83 -91
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-editor/constants.js +1 -2
- package/build/components/image-editor/constants.js.map +1 -1
- package/build/components/image-editor/context.js +9 -10
- package/build/components/image-editor/context.js.map +1 -1
- package/build/components/image-editor/cropper.js +11 -12
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/index.js +12 -13
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +11 -12
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-editor/use-transform-image.js +5 -6
- package/build/components/image-editor/use-transform-image.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +10 -13
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/image-size-control/index.js +12 -13
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +9 -9
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +9 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +7 -8
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +6 -8
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +11 -14
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +9 -10
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-block-context.js +1 -4
- package/build/components/inner-blocks/use-block-context.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +24 -32
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inner-blocks/with-client-id.js +2 -6
- package/build/components/inner-blocks/with-client-id.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/explorer.js +11 -12
- package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +11 -18
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/sidebar.js +20 -24
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +62 -45
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +7 -9
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +8 -9
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js +3 -5
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +9 -9
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-clipboard-block.native.js +2 -2
- package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build/components/inserter/hooks/use-debounced-input.js +1 -2
- package/build/components/inserter/hooks/use-debounced-input.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +11 -13
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/index.js +45 -59
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +28 -36
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js +12 -13
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +2 -5
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +8 -13
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +12 -14
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +47 -60
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +25 -29
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/media-tab/utils.js +3 -5
- package/build/components/inserter/media-tab/utils.js.map +1 -1
- package/build/components/inserter/menu.js +15 -19
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js +27 -31
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +7 -9
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inserter/panel.js +5 -6
- package/build/components/inserter/panel.js.map +1 -1
- package/build/components/inserter/preview-panel.js +4 -5
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +8 -9
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.js +16 -21
- package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +5 -6
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-items.js +12 -40
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.js +17 -18
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/search-results.native.js +11 -12
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/tabs.js +11 -12
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter/tabs.native.js +37 -55
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter/utils.native.js +13 -17
- package/build/components/inserter/utils.native.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +11 -13
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inserter-list-item/index.js +69 -74
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inserter-listbox/group.js +4 -7
- package/build/components/inserter-listbox/group.js.map +1 -1
- package/build/components/inserter-listbox/index.js +3 -4
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +14 -14
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inserter-listbox/row.js +4 -5
- package/build/components/inserter-listbox/row.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js +6 -11
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +6 -8
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +13 -24
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +9 -12
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/index.js +4 -6
- package/build/components/inspector-controls/index.js.map +1 -1
- package/build/components/inspector-controls/slot.js +13 -19
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls/slot.native.js +8 -11
- package/build/components/inspector-controls/slot.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +6 -7
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js +3 -8
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +1 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +3 -6
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js +5 -6
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +1 -3
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +18 -22
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/justify-content-control/index.js +4 -6
- package/build/components/justify-content-control/index.js.map +1 -1
- package/build/components/justify-content-control/ui.js +12 -17
- package/build/components/justify-content-control/ui.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +8 -11
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +15 -22
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/line-height-control/index.native.js +4 -5
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/link-control/index.js +86 -71
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/is-url-like.js +32 -2
- package/build/components/link-control/is-url-like.js.map +1 -1
- package/build/components/link-control/link-preview.js +24 -27
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-create-button.js +9 -13
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-input.js +24 -27
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +15 -19
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +23 -31
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +6 -35
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/link-control/settings.js +6 -8
- package/build/components/link-control/settings.js.map +1 -1
- package/build/components/link-control/use-internal-value.js +54 -0
- package/build/components/link-control/use-internal-value.js.map +1 -0
- package/build/components/link-control/use-rich-url-data.js +1 -1
- package/build/components/link-control/use-rich-url-data.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +10 -23
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/appender.js +15 -17
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/aria-referenced-text.js +40 -0
- package/build/components/list-view/aria-referenced-text.js.map +1 -0
- package/build/components/list-view/block-contents.js +39 -40
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +79 -22
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +119 -101
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +14 -13
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +66 -16
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/expander.js +3 -4
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/list-view/index.js +50 -49
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +14 -16
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +4 -6
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +6 -29
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js +63 -39
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/use-list-view-expand-selected-item.js +4 -5
- package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build/components/list-view/use-list-view-scroll-into-view.js +5 -6
- package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -1
- package/build/components/media-placeholder/index.js +106 -102
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +5 -6
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +92 -107
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/check.js +4 -5
- package/build/components/media-upload/check.js.map +1 -1
- package/build/components/media-upload/index.native.js +1 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +3 -4
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +24 -23
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/observe-typing/index.js +3 -4
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/panel-color-settings/index.js +8 -10
- package/build/components/panel-color-settings/index.js.map +1 -1
- package/build/components/plain-text/index.js +12 -14
- package/build/components/plain-text/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +15 -20
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +12 -12
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/block-refs-provider.js +3 -4
- package/build/components/provider/block-refs-provider.js.map +1 -1
- package/build/components/provider/index.js +2 -4
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +7 -8
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/provider/with-registry-provider.js +13 -17
- package/build/components/provider/with-registry-provider.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +10 -12
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/recursion-provider/index.js +7 -11
- package/build/components/recursion-provider/index.js.map +1 -1
- package/build/components/resizable-box-popover/index.js +10 -11
- package/build/components/resizable-box-popover/index.js.map +1 -1
- package/build/components/responsive-block-control/label.js +5 -6
- package/build/components/responsive-block-control/label.js.map +1 -1
- package/build/components/rich-text/content.js +99 -0
- package/build/components/rich-text/content.js.map +1 -0
- package/build/components/rich-text/embed-handler-picker.native.js +6 -10
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build/components/rich-text/format-edit.js +7 -8
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +10 -20
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +13 -16
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +45 -83
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +128 -183
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/input-event.js +4 -5
- package/build/components/rich-text/input-event.js.map +1 -1
- package/build/components/rich-text/shortcut.js +5 -6
- package/build/components/rich-text/shortcut.js.map +1 -1
- package/build/components/rich-text/split-value.js +8 -10
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/toolbar-button.js +8 -13
- package/build/components/rich-text/toolbar-button.js.map +1 -1
- package/build/components/rich-text/use-before-input-rules.js +1 -4
- package/build/components/rich-text/use-before-input-rules.js.map +1 -1
- package/build/components/rich-text/use-enter.js +3 -6
- package/build/components/rich-text/use-enter.js.map +1 -1
- package/build/components/rich-text/use-firefox-compat.js +32 -1
- package/build/components/rich-text/use-firefox-compat.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +11 -17
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +9 -15
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js +4 -5
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +5 -7
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/rich-text/utils.js +5 -7
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +3 -4
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +38 -0
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -0
- package/build/components/spacing-sizes-control/index.js +62 -64
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/{axial-input-controls.js → input-controls/axial.js} +21 -22
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -0
- package/build/components/spacing-sizes-control/{input-controls.js → input-controls/separated.js} +22 -22
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -0
- package/build/components/spacing-sizes-control/input-controls/single.js +51 -0
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -0
- package/build/components/spacing-sizes-control/{spacing-input-control.js → input-controls/spacing-input-control.js} +51 -69
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -0
- package/build/components/spacing-sizes-control/sides-dropdown/index.js +84 -0
- package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -0
- package/build/components/spacing-sizes-control/utils.js +213 -31
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/text-decoration-control/index.js +5 -6
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +5 -6
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +13 -20
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/typewriter/index.js +6 -9
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/ungroup-button/index.native.js +11 -16
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/unit-control/index.js +8 -10
- package/build/components/unit-control/index.js.map +1 -1
- package/build/components/url-input/index.js +23 -34
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-input/index.native.js +10 -15
- package/build/components/url-input/index.native.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +33 -29
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +16 -19
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/url-popover/link-editor.js +10 -12
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/url-popover/link-viewer-url.js +5 -6
- package/build/components/url-popover/link-viewer-url.js.map +1 -1
- package/build/components/url-popover/link-viewer.js +11 -13
- package/build/components/url-popover/link-viewer.js.map +1 -1
- package/build/components/use-block-display-information/index.js +30 -2
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +16 -23
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +8 -11
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-moving-animation/index.js +9 -12
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +2 -6
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.native.js +8 -10
- package/build/components/use-on-block-drop/index.native.js.map +1 -1
- package/build/components/use-paste-styles/index.js +2 -6
- package/build/components/use-paste-styles/index.js.map +1 -1
- package/build/components/video-player/index.native.js +2 -4
- package/build/components/video-player/index.native.js.map +1 -1
- package/build/components/warning/index.js +6 -7
- package/build/components/warning/index.js.map +1 -1
- package/build/components/warning/index.native.js +13 -15
- package/build/components/warning/index.native.js.map +1 -1
- package/build/components/writing-flow/index.js +6 -9
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +5 -7
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +41 -10
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +15 -22
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +9 -4
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/aria-label.js +1 -3
- package/build/hooks/aria-label.js.map +1 -1
- package/build/hooks/behaviors.js +131 -60
- package/build/hooks/behaviors.js.map +1 -1
- package/build/hooks/border.js +29 -43
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +26 -42
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +33 -39
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/contrast-checker.js +4 -7
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/custom-class-name.js +8 -5
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/dimensions.js +11 -14
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +37 -49
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js +6 -11
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +22 -27
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +5 -6
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/layout.js +66 -81
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/line-height.js +5 -8
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js +2 -2
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/margin.js +6 -9
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/metadata-name.js +4 -5
- package/build/hooks/metadata-name.js.map +1 -1
- package/build/hooks/metadata.js +3 -7
- package/build/hooks/metadata.js.map +1 -1
- package/build/hooks/padding.js +6 -9
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/position.js +50 -56
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/settings.js +1 -3
- package/build/hooks/settings.js.map +1 -1
- package/build/hooks/style.js +19 -23
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/supports.js +4 -6
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.js +18 -27
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js +4 -3
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-border-props.js +1 -3
- package/build/hooks/use-border-props.js.map +1 -1
- package/build/hooks/use-color-props.js +6 -8
- package/build/hooks/use-color-props.js.map +1 -1
- package/build/hooks/use-editor-wrapper-styles.native.js +34 -39
- package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -1
- package/build/hooks/use-spacing-props.js +1 -1
- package/build/hooks/use-spacing-props.js.map +1 -1
- package/build/hooks/use-typography-props.js +12 -23
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/utils.js +6 -18
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +0 -14
- package/build/index.js.map +1 -1
- package/build/layouts/constrained.js +24 -27
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/definitions.js +154 -0
- package/build/layouts/definitions.js.map +1 -0
- package/build/layouts/flex.js +50 -58
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +12 -13
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/grid.js +47 -25
- package/build/layouts/grid.js.map +1 -1
- package/build/layouts/index.js +1 -2
- package/build/layouts/index.js.map +1 -1
- package/build/layouts/utils.js +11 -11
- package/build/layouts/utils.js.map +1 -1
- package/build/private-apis.js +17 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +226 -369
- package/build/store/actions.js.map +1 -1
- package/build/store/array.js +1 -2
- package/build/store/array.js.map +1 -1
- package/build/store/private-actions.js +203 -7
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +109 -24
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +119 -170
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +161 -231
- package/build/store/selectors.js.map +1 -1
- package/build/utils/block-variation-transforms.js +4 -7
- package/build/utils/block-variation-transforms.js.map +1 -1
- package/build/utils/math.js +1 -2
- package/build/utils/math.js.map +1 -1
- package/build/utils/object.js +40 -4
- package/build/utils/object.js.map +1 -1
- package/build/utils/order-inserter-block-items.js +5 -7
- package/build/utils/order-inserter-block-items.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +3 -6
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build/utils/pasting.js +5 -8
- package/build/utils/pasting.js.map +1 -1
- package/build/utils/pre-parse-patterns.js +1 -1
- package/build/utils/pre-parse-patterns.js.map +1 -1
- package/build/utils/sorting.js +1 -2
- package/build/utils/sorting.js.map +1 -1
- package/build/utils/transform-styles/index.js +5 -7
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build/utils/transform-styles/transforms/wrap.js +28 -31
- package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-module/autocompleters/block.js +6 -6
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/alignment-control/index.js +4 -5
- package/build-module/components/alignment-control/index.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +14 -17
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/autocomplete/index.js +5 -7
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +12 -12
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/constants.js +0 -3
- package/build-module/components/block-alignment-control/constants.js.map +1 -1
- package/build-module/components/block-alignment-control/index.js +4 -5
- package/build-module/components/block-alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +21 -25
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +17 -19
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +5 -10
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +4 -7
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +5 -7
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-caption/index.native.js +29 -34
- package/build-module/components/block-caption/index.native.js.map +1 -1
- package/build-module/components/block-card/index.js +7 -9
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-compare/block-view.js +8 -9
- package/build-module/components/block-compare/block-view.js.map +1 -1
- package/build-module/components/block-compare/index.js +7 -9
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-context/index.js +4 -5
- package/build-module/components/block-context/index.js.map +1 -1
- package/build-module/components/block-controls/fill.js +18 -23
- package/build-module/components/block-controls/fill.js.map +1 -1
- package/build-module/components/block-controls/hook.js +1 -3
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-controls/index.js +8 -7
- package/build-module/components/block-controls/index.js.map +1 -1
- package/build-module/components/block-controls/slot.js +29 -22
- package/build-module/components/block-controls/slot.js.map +1 -1
- package/build-module/components/block-controls/slot.native.js +10 -18
- package/build-module/components/block-controls/slot.native.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +5 -7
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.native.js +3 -4
- package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
- package/build-module/components/block-draggable/dropping-insertion-point.native.js +6 -7
- package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
- package/build-module/components/block-draggable/index.js +16 -17
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +43 -58
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +5 -9
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-edit/edit.native.js +3 -7
- package/build-module/components/block-edit/edit.native.js.map +1 -1
- package/build-module/components/block-edit/index.js +3 -2
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-edit-visually-button/index.js +3 -4
- package/build-module/components/block-edit-visually-button/index.js.map +1 -1
- package/build-module/components/block-full-height-alignment-control/index.js +6 -7
- 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 +39 -0
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -0
- package/build-module/components/block-heading-level-dropdown/index.js +71 -0
- package/build-module/components/block-heading-level-dropdown/index.js.map +1 -0
- package/build-module/components/block-heading-level-dropdown/index.native.js +60 -0
- package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -0
- package/build-module/components/block-icon/index.js +7 -11
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-icon/index.native.js +15 -19
- package/build-module/components/block-icon/index.native.js.map +1 -1
- package/build-module/components/block-info-slot-fill/index.js +4 -2
- package/build-module/components/block-info-slot-fill/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +45 -123
- 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-html.js +3 -4
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +3 -4
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.native.js +10 -15
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-list-context.native.js +5 -11
- package/build-module/components/block-list/block-list-context.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item-cell.native.js +5 -6
- 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 +21 -20
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +8 -9
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js +10 -12
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js +45 -50
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +56 -68
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +18 -18
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +80 -89
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/insertion-point.native.js +4 -5
- package/build-module/components/block-list/insertion-point.native.js.map +1 -1
- package/build-module/components/block-list/layout.js +6 -9
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/block-list/subdirectory-icon.js +11 -14
- package/build-module/components/block-list/subdirectory-icon.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +14 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.native.js +1 -2
- package/build-module/components/block-list/use-block-props/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +2 -2
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +1 -1
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +2 -6
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +35 -33
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +9 -11
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-lock/menu-item.js +3 -4
- package/build-module/components/block-lock/menu-item.js.map +1 -1
- package/build-module/components/block-lock/modal.js +6 -9
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +5 -10
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +50 -68
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +26 -34
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-mover/button.js +18 -18
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +16 -17
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +23 -46
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.native.js +7 -10
- package/build-module/components/block-mover/mover-description.native.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +22 -28
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +6 -6
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +33 -38
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +35 -42
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +73 -81
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-popover/drop-zone.js +4 -5
- package/build-module/components/block-popover/drop-zone.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +14 -20
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +18 -20
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +8 -11
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +21 -24
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +69 -0
- package/build-module/components/block-quick-navigation/index.js.map +1 -0
- package/build-module/components/block-removal-warning-modal/index.js +76 -0
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -0
- package/build-module/components/block-selection-clearer/index.js +4 -4
- package/build-module/components/block-selection-clearer/index.js.map +1 -1
- package/build-module/components/block-settings/button.native.js +9 -11
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +6 -5
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-convert-button.js +5 -7
- package/build-module/components/block-settings-menu/block-convert-button.js.map +1 -1
- package/build-module/components/block-settings-menu/block-html-convert-button.js +10 -14
- 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 +19 -25
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +139 -117
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +8 -9
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +18 -20
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +6 -7
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +5 -7
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-styles/menu-items.js +4 -5
- package/build-module/components/block-styles/menu-items.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +7 -10
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +6 -7
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-styles/use-styles-for-block.js +7 -9
- package/build-module/components/block-styles/use-styles-for-block.js.map +1 -1
- package/build-module/components/block-styles/utils.js +4 -7
- package/build-module/components/block-styles/utils.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js +4 -5
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +24 -29
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js +9 -10
- 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 -30
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build-module/components/block-switcher/index.js +48 -62
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +24 -29
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +3 -4
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +2 -3
- package/build-module/components/block-switcher/utils.js.map +1 -1
- package/build-module/components/block-title/index.js +5 -6
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +5 -6
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +8 -9
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/utils.js +14 -16
- package/build-module/components/block-toolbar/utils.js.map +1 -1
- package/build-module/components/block-tools/back-compat.js +3 -4
- package/build-module/components/block-tools/back-compat.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +9 -10
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +10 -13
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +19 -12
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +12 -14
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +27 -27
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +9 -14
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +3 -4
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-types-list/index.js +8 -9
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +26 -32
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +8 -9
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +7 -9
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +30 -41
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/index.js +4 -5
- package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js +12 -18
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/border-radius-control/all-input-control.js +9 -11
- package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +9 -10
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +10 -14
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +6 -8
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +3 -7
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +13 -15
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.native.js +25 -29
- package/build-module/components/button-block-appender/index.native.js.map +1 -1
- package/build-module/components/caption/index.native.js +40 -43
- package/build-module/components/caption/index.native.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +5 -6
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/color-palette/control.js +7 -9
- package/build-module/components/color-palette/control.js.map +1 -1
- package/build-module/components/color-palette/with-color-context.js +3 -9
- package/build-module/components/color-palette/with-color-context.js.map +1 -1
- package/build-module/components/color-style-selector/index.js +28 -35
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/colors/utils.js +10 -9
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +19 -38
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +26 -25
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +44 -49
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +27 -28
- 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 +27 -31
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +12 -13
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/contrast-checker/index.native.js +16 -18
- package/build-module/components/contrast-checker/index.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +9 -10
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.native.js +6 -7
- package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +6 -12
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +4 -6
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/copy-handler/index.js +9 -13
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +12 -16
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +7 -9
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.native.js +8 -10
- package/build-module/components/default-block-appender/index.native.js.map +1 -1
- package/build-module/components/default-style-picker/index.js +14 -22
- package/build-module/components/default-style-picker/index.js.map +1 -1
- package/build-module/components/duotone/components.js +14 -18
- package/build-module/components/duotone/components.js.map +1 -1
- package/build-module/components/duotone/utils.js +1 -2
- package/build-module/components/duotone/utils.js.map +1 -1
- package/build-module/components/duotone-control/index.js +13 -17
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/editable-text/index.js +11 -12
- package/build-module/components/editable-text/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +4 -5
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/floating-toolbar/index.native.js +7 -8
- package/build-module/components/floating-toolbar/index.native.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +21 -29
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +14 -16
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +17 -21
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/font-sizes/font-size-picker.js +2 -3
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/font-sizes/utils.js +8 -14
- package/build-module/components/font-sizes/utils.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +18 -36
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/global-styles/advanced-panel.js +7 -10
- package/build-module/components/global-styles/advanced-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +45 -78
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +119 -162
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.native.js +25 -42
- package/build-module/components/global-styles/color-panel.native.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +78 -109
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/effects-panel.js +60 -73
- package/build-module/components/global-styles/effects-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +55 -72
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-block-css-selector.js +5 -8
- package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +22 -37
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +69 -125
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +48 -26
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +146 -240
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +12 -28
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/gradients/use-gradient.js +6 -7
- package/build-module/components/gradients/use-gradient.js.map +1 -1
- package/build-module/components/gradients/with-gradient.js +2 -3
- package/build-module/components/gradients/with-gradient.js.map +1 -1
- package/build-module/components/height-control/index.js +9 -10
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +54 -90
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-compatibility-styles.js +29 -20
- package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +83 -91
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-editor/constants.js +1 -2
- package/build-module/components/image-editor/constants.js.map +1 -1
- package/build-module/components/image-editor/context.js +9 -10
- package/build-module/components/image-editor/context.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +11 -12
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/index.js +12 -13
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +11 -12
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-editor/use-transform-image.js +5 -6
- package/build-module/components/image-editor/use-transform-image.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +10 -13
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/image-size-control/index.js +12 -13
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +1 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +7 -8
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +6 -8
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +11 -13
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +9 -9
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-block-context.js +1 -4
- package/build-module/components/inner-blocks/use-block-context.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +24 -29
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inner-blocks/with-client-id.js +2 -3
- package/build-module/components/inner-blocks/with-client-id.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/explorer.js +11 -12
- package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +11 -18
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +20 -24
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +62 -47
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +7 -9
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +8 -9
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +3 -5
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +9 -9
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js +2 -2
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +1 -2
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +11 -13
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/index.js +45 -58
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +28 -35
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js +12 -13
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +2 -5
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +8 -10
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +12 -14
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +47 -59
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +27 -31
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/media-tab/utils.js +3 -5
- package/build-module/components/inserter/media-tab/utils.js.map +1 -1
- package/build-module/components/inserter/menu.js +15 -19
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js +27 -31
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +7 -9
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inserter/panel.js +5 -6
- package/build-module/components/inserter/panel.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +4 -5
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +8 -9
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.js +16 -21
- package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +5 -6
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-items.js +12 -40
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.js +17 -18
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +11 -12
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/tabs.js +11 -12
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +37 -55
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter/utils.native.js +13 -17
- package/build-module/components/inserter/utils.native.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +11 -13
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +66 -70
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inserter-listbox/group.js +4 -4
- package/build-module/components/inserter-listbox/group.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +3 -4
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +14 -13
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inserter-listbox/row.js +4 -4
- package/build-module/components/inserter-listbox/row.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js +6 -8
- 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 +6 -8
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +13 -23
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +9 -12
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/index.js +4 -5
- package/build-module/components/inspector-controls/index.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +13 -18
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls/slot.native.js +8 -11
- package/build-module/components/inspector-controls/slot.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +6 -7
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js +3 -8
- 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 +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -6
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js +5 -6
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +1 -3
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +18 -22
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/justify-content-control/index.js +4 -5
- package/build-module/components/justify-content-control/index.js.map +1 -1
- package/build-module/components/justify-content-control/ui.js +12 -14
- package/build-module/components/justify-content-control/ui.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +8 -10
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +14 -20
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +4 -5
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/link-control/index.js +85 -72
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/is-url-like.js +32 -3
- package/build-module/components/link-control/is-url-like.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +24 -27
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js +9 -12
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-input.js +24 -27
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +15 -18
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +23 -30
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +7 -33
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/link-control/settings.js +7 -9
- package/build-module/components/link-control/settings.js.map +1 -1
- package/build-module/components/link-control/use-internal-value.js +46 -0
- package/build-module/components/link-control/use-internal-value.js.map +1 -0
- package/build-module/components/link-control/use-rich-url-data.js +1 -1
- package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +10 -23
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/appender.js +14 -16
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/aria-referenced-text.js +34 -0
- package/build-module/components/list-view/aria-referenced-text.js.map +1 -0
- package/build-module/components/list-view/block-contents.js +39 -39
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +78 -25
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +117 -101
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +14 -12
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +65 -16
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/expander.js +3 -4
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/list-view/index.js +50 -48
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +14 -15
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +4 -6
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +6 -29
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js +62 -39
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/use-list-view-expand-selected-item.js +4 -5
- package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build-module/components/list-view/use-list-view-scroll-into-view.js +5 -6
- package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +106 -102
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +5 -6
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +92 -107
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/check.js +4 -5
- package/build-module/components/media-upload/check.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +1 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +3 -4
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +24 -22
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js +3 -4
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/panel-color-settings/index.js +8 -9
- package/build-module/components/panel-color-settings/index.js.map +1 -1
- package/build-module/components/plain-text/index.js +12 -13
- package/build-module/components/plain-text/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +15 -19
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +12 -12
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/block-refs-provider.js +3 -4
- package/build-module/components/provider/block-refs-provider.js.map +1 -1
- package/build-module/components/provider/index.js +2 -3
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +7 -8
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/provider/with-registry-provider.js +13 -14
- package/build-module/components/provider/with-registry-provider.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +10 -11
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/recursion-provider/index.js +7 -11
- package/build-module/components/recursion-provider/index.js.map +1 -1
- package/build-module/components/resizable-box-popover/index.js +10 -10
- package/build-module/components/resizable-box-popover/index.js.map +1 -1
- package/build-module/components/responsive-block-control/label.js +5 -6
- package/build-module/components/responsive-block-control/label.js.map +1 -1
- package/build-module/components/rich-text/content.js +85 -0
- package/build-module/components/rich-text/content.js.map +1 -0
- package/build-module/components/rich-text/embed-handler-picker.native.js +6 -10
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js +7 -8
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +10 -20
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +13 -16
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +45 -83
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +128 -183
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/input-event.js +4 -5
- package/build-module/components/rich-text/input-event.js.map +1 -1
- package/build-module/components/rich-text/shortcut.js +5 -6
- package/build-module/components/rich-text/shortcut.js.map +1 -1
- package/build-module/components/rich-text/split-value.js +8 -10
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/toolbar-button.js +8 -10
- package/build-module/components/rich-text/toolbar-button.js.map +1 -1
- package/build-module/components/rich-text/use-before-input-rules.js +1 -4
- package/build-module/components/rich-text/use-before-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-enter.js +3 -6
- package/build-module/components/rich-text/use-enter.js.map +1 -1
- package/build-module/components/rich-text/use-firefox-compat.js +29 -1
- package/build-module/components/rich-text/use-firefox-compat.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +11 -17
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +9 -15
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js +4 -5
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +5 -7
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/utils.js +5 -7
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +3 -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 +27 -0
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -0
- package/build-module/components/spacing-sizes-control/index.js +64 -64
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/{axial-input-controls.js → input-controls/axial.js} +21 -22
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -0
- package/build-module/components/spacing-sizes-control/{input-controls.js → input-controls/separated.js} +21 -21
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -0
- package/build-module/components/spacing-sizes-control/input-controls/single.js +40 -0
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -0
- package/build-module/components/spacing-sizes-control/{spacing-input-control.js → input-controls/spacing-input-control.js} +53 -70
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -0
- package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +73 -0
- package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -0
- package/build-module/components/spacing-sizes-control/utils.js +196 -25
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +5 -6
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +5 -6
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +13 -17
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/typewriter/index.js +6 -9
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js +11 -14
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/unit-control/index.js +8 -9
- package/build-module/components/unit-control/index.js.map +1 -1
- package/build-module/components/url-input/index.js +23 -33
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-input/index.native.js +10 -12
- package/build-module/components/url-input/index.native.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +34 -30
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +16 -18
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/url-popover/link-editor.js +10 -11
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/url-popover/link-viewer-url.js +5 -6
- package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
- package/build-module/components/url-popover/link-viewer.js +11 -12
- package/build-module/components/url-popover/link-viewer.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +29 -2
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +16 -23
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +8 -11
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +9 -12
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +2 -6
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.native.js +8 -10
- package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
- package/build-module/components/use-paste-styles/index.js +2 -6
- package/build-module/components/use-paste-styles/index.js.map +1 -1
- package/build-module/components/video-player/index.native.js +2 -3
- package/build-module/components/video-player/index.native.js.map +1 -1
- package/build-module/components/warning/index.js +6 -7
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/warning/index.native.js +13 -14
- package/build-module/components/warning/index.native.js.map +1 -1
- package/build-module/components/writing-flow/index.js +6 -8
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +5 -7
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +41 -11
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +15 -21
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +8 -4
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/aria-label.js +1 -3
- package/build-module/hooks/aria-label.js.map +1 -1
- package/build-module/hooks/behaviors.js +132 -58
- package/build-module/hooks/behaviors.js.map +1 -1
- package/build-module/hooks/border.js +29 -42
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +26 -41
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +30 -33
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/contrast-checker.js +4 -7
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +7 -5
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/dimensions.js +11 -13
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +37 -48
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js +6 -11
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +22 -28
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +5 -6
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +62 -77
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/line-height.js +5 -8
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/lock.js +2 -2
- package/build-module/hooks/lock.js.map +1 -1
- package/build-module/hooks/margin.js +6 -9
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/metadata-name.js +4 -5
- package/build-module/hooks/metadata-name.js.map +1 -1
- package/build-module/hooks/metadata.js +3 -7
- package/build-module/hooks/metadata.js.map +1 -1
- package/build-module/hooks/padding.js +6 -9
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/position.js +49 -55
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/settings.js +1 -3
- package/build-module/hooks/settings.js.map +1 -1
- package/build-module/hooks/style.js +18 -22
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/supports.js +4 -6
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.js +18 -27
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js +4 -3
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-border-props.js +1 -3
- package/build-module/hooks/use-border-props.js.map +1 -1
- package/build-module/hooks/use-color-props.js +6 -8
- package/build-module/hooks/use-color-props.js.map +1 -1
- package/build-module/hooks/use-editor-wrapper-styles.native.js +34 -39
- package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -1
- package/build-module/hooks/use-spacing-props.js +1 -1
- package/build-module/hooks/use-spacing-props.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +11 -22
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/utils.js +7 -19
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/constrained.js +23 -27
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/definitions.js +147 -0
- package/build-module/layouts/definitions.js.map +1 -0
- package/build-module/layouts/flex.js +50 -59
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +11 -13
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/grid.js +46 -25
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/layouts/index.js +1 -2
- package/build-module/layouts/index.js.map +1 -1
- package/build-module/layouts/utils.js +10 -11
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/private-apis.js +12 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +229 -372
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/array.js +1 -2
- package/build-module/store/array.js.map +1 -1
- package/build-module/store/private-actions.js +189 -7
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +100 -25
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +118 -169
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +160 -231
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/block-variation-transforms.js +4 -7
- package/build-module/utils/block-variation-transforms.js.map +1 -1
- package/build-module/utils/math.js +1 -2
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/object.js +38 -5
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/order-inserter-block-items.js +5 -7
- package/build-module/utils/order-inserter-block-items.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +3 -6
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/utils/pasting.js +5 -8
- package/build-module/utils/pasting.js.map +1 -1
- package/build-module/utils/pre-parse-patterns.js +1 -1
- package/build-module/utils/pre-parse-patterns.js.map +1 -1
- package/build-module/utils/sorting.js +1 -2
- package/build-module/utils/sorting.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +5 -7
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-module/utils/transform-styles/transforms/wrap.js +25 -28
- package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-style/content-rtl.css +7 -10
- package/build-style/content.css +7 -10
- package/build-style/style-rtl.css +51 -122
- package/build-style/style.css +51 -122
- package/package.json +31 -31
- package/src/autocompleters/block.js +4 -2
- package/src/components/alignment-control/ui.js +1 -2
- package/src/components/block-actions/index.js +10 -0
- package/src/components/block-alignment-control/constants.js +0 -4
- package/src/components/block-alignment-control/ui.js +1 -6
- package/src/components/block-alignment-matrix-control/index.js +1 -1
- package/src/components/block-breadcrumb/index.js +2 -6
- package/src/components/block-controls/fill.js +15 -17
- package/src/components/block-controls/slot.js +21 -18
- package/src/components/block-controls/slot.native.js +3 -8
- package/src/components/block-draggable/index.js +2 -1
- package/src/components/block-edit/index.js +3 -5
- package/src/components/block-edit/test/edit.js +1 -1
- package/src/components/block-heading-level-dropdown/README.md +52 -0
- package/src/components/block-heading-level-dropdown/heading-level-icon.js +43 -0
- package/src/components/block-heading-level-dropdown/index.js +77 -0
- package/src/components/block-heading-level-dropdown/index.native.js +63 -0
- package/src/components/block-inspector/index.js +19 -92
- package/src/components/block-inspector/style.scss +0 -5
- package/src/components/block-list/block.native.js +1 -0
- package/src/components/block-list/content.scss +8 -12
- package/src/components/block-list/index.js +1 -1
- package/src/components/block-list/use-block-props/index.js +6 -1
- package/src/components/block-list/use-in-between-inserter.js +0 -4
- package/src/components/block-list-appender/index.js +32 -22
- package/src/components/block-lock/style.scss +11 -4
- package/src/components/block-lock/toolbar.js +2 -8
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
- package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +2 -2
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +3 -3
- package/src/components/block-mover/test/index.native.js +1 -20
- package/src/components/block-preview/index.js +7 -14
- package/src/components/block-quick-navigation/index.js +81 -0
- package/src/components/block-removal-warning-modal/index.js +94 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +96 -54
- package/src/components/block-switcher/index.js +1 -2
- package/src/components/block-toolbar/style.scss +0 -4
- package/src/components/block-tools/index.js +10 -1
- package/src/components/block-tools/selected-block-popover.js +6 -0
- package/src/components/block-vertical-alignment-control/ui.js +1 -3
- package/src/components/color-palette/test/__snapshots__/control.js.snap +66 -50
- package/src/components/color-palette/with-color-context.js +2 -6
- package/src/components/colors/utils.js +5 -1
- package/src/components/colors/with-colors.js +1 -5
- package/src/components/colors-gradients/control.js +3 -3
- package/src/components/colors-gradients/panel-color-gradient-settings.js +4 -5
- package/src/components/copy-handler/index.js +5 -5
- package/src/components/duotone-control/index.js +0 -1
- package/src/components/font-sizes/test/fluid-utils.js +97 -76
- package/src/components/font-sizes/utils.js +2 -2
- package/src/components/global-styles/color-panel.js +3 -3
- package/src/components/global-styles/dimensions-panel.js +14 -5
- package/src/components/global-styles/get-block-css-selector.js +2 -2
- package/src/components/global-styles/index.js +1 -0
- package/src/components/global-styles/test/typography-utils.js +139 -1
- package/src/components/global-styles/test/use-global-styles-output.js +14 -9
- package/src/components/global-styles/typography-panel.js +19 -16
- package/src/components/global-styles/typography-utils.js +53 -28
- package/src/components/global-styles/use-global-styles-output.js +29 -19
- package/src/components/global-styles/utils.js +9 -3
- package/src/components/iframe/index.js +46 -68
- package/src/components/iframe/use-compatibility-styles.js +34 -18
- package/src/components/image-editor/constants.js +0 -1
- package/src/components/index.js +1 -1
- package/src/components/index.native.js +1 -0
- package/src/components/inner-blocks/index.js +4 -2
- package/src/components/inner-blocks/index.native.js +1 -1
- package/src/components/inner-blocks/use-nested-settings-update.js +31 -36
- package/src/components/inserter/block-patterns-tab.js +63 -8
- package/src/components/inserter/hooks/use-block-types-state.js +4 -3
- package/src/components/inserter/hooks/use-insertion-point.js +1 -0
- package/src/components/inserter/library.js +2 -1
- package/src/components/inserter/media-tab/media-tab.js +9 -3
- package/src/components/inserter/reusable-blocks-tab.js +3 -3
- package/src/components/inserter/tabs.js +3 -3
- package/src/components/inspector-controls/README.md +1 -1
- package/src/components/inspector-controls/fill.js +2 -6
- package/src/components/inspector-controls-tabs/index.js +0 -1
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +0 -1
- package/src/components/link-control/index.js +73 -42
- package/src/components/link-control/is-url-like.js +40 -3
- package/src/components/link-control/search-input.js +1 -0
- package/src/components/link-control/search-results.js +4 -14
- package/src/components/link-control/settings-drawer.js +2 -37
- package/src/components/link-control/settings.js +2 -2
- package/src/components/link-control/style.scss +5 -6
- package/src/components/link-control/test/index.js +202 -105
- package/src/components/link-control/test/is-url-like.js +66 -0
- package/src/components/link-control/use-internal-value.js +60 -0
- package/src/components/link-control/use-search-handler.js +10 -27
- package/src/components/list-view/appender.js +3 -5
- package/src/components/list-view/aria-referenced-text.js +30 -0
- package/src/components/list-view/block-contents.js +9 -8
- package/src/components/list-view/block-select-button.js +78 -2
- package/src/components/list-view/block.js +40 -10
- package/src/components/list-view/branch.js +6 -3
- package/src/components/list-view/drop-indicator.js +94 -9
- package/src/components/list-view/index.js +29 -19
- package/src/components/list-view/style.scss +13 -17
- package/src/components/list-view/test/use-list-view-drop-zone.js +208 -76
- package/src/components/list-view/use-block-selection.js +2 -2
- package/src/components/list-view/use-list-view-client-ids.js +3 -20
- package/src/components/list-view/use-list-view-drop-zone.js +108 -47
- package/src/components/media-placeholder/index.js +54 -20
- package/src/components/media-replace-flow/index.js +1 -3
- package/src/components/media-replace-flow/test/index.js +1 -1
- package/src/components/navigable-toolbar/index.js +7 -5
- package/src/components/preview-options/index.js +3 -2
- package/src/components/provider/test/experimental-provider.js +9 -6
- package/src/components/rich-text/content.js +85 -0
- package/src/components/rich-text/format-toolbar/index.js +1 -2
- package/src/components/rich-text/index.js +3 -36
- package/src/components/rich-text/index.native.js +3 -33
- package/src/components/rich-text/use-firefox-compat.js +27 -1
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +26 -0
- package/src/components/spacing-sizes-control/index.js +85 -71
- package/src/components/spacing-sizes-control/{axial-input-controls.js → input-controls/axial.js} +14 -13
- package/src/components/spacing-sizes-control/{input-controls.js → input-controls/separated.js} +15 -14
- package/src/components/spacing-sizes-control/input-controls/single.js +40 -0
- package/src/components/spacing-sizes-control/{spacing-input-control.js → input-controls/spacing-input-control.js} +55 -80
- package/src/components/spacing-sizes-control/sides-dropdown/index.js +91 -0
- package/src/components/spacing-sizes-control/style.scss +28 -100
- package/src/components/spacing-sizes-control/test/utils.js +233 -4
- package/src/components/spacing-sizes-control/utils.js +203 -20
- package/src/components/ungroup-button/index.native.js +2 -2
- package/src/components/url-popover/image-url-input-ui.js +15 -15
- package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -3
- package/src/components/use-block-display-information/index.js +26 -0
- package/src/components/writing-flow/use-drag-selection.js +1 -1
- package/src/components/writing-flow/use-tab-nav.js +56 -9
- package/src/hooks/anchor.js +3 -1
- package/src/hooks/behaviors.js +163 -64
- package/src/hooks/custom-class-name.js +23 -19
- package/src/hooks/font-family.js +1 -5
- package/src/hooks/font-size.js +12 -17
- package/src/hooks/layout.js +21 -26
- package/src/hooks/position.js +24 -12
- package/src/hooks/style.js +3 -1
- package/src/hooks/supports.js +1 -1
- package/src/hooks/use-typography-props.js +14 -19
- package/src/hooks/utils.js +8 -7
- package/src/index.js +0 -2
- package/src/layouts/constrained.js +2 -1
- package/src/layouts/definitions.js +174 -0
- package/src/layouts/flex.js +7 -5
- package/src/layouts/flow.js +2 -1
- package/src/layouts/grid.js +31 -4
- package/src/layouts/test/utils.js +2 -7
- package/src/layouts/utils.js +7 -2
- package/src/private-apis.js +11 -0
- package/src/store/actions.js +7 -56
- package/src/store/private-actions.js +193 -0
- package/src/store/private-selectors.js +132 -37
- package/src/store/reducer.js +50 -8
- package/src/store/selectors.js +74 -41
- package/src/store/test/private-selectors.js +491 -48
- package/src/store/test/reducer.js +0 -7
- package/src/store/test/selectors.js +117 -17
- package/src/utils/object.js +35 -0
- package/src/utils/test/object.js +96 -1
- package/build/components/link-control/use-internal-input-value.js +0 -27
- package/build/components/link-control/use-internal-input-value.js.map +0 -1
- package/build/components/spacing-sizes-control/all-input-control.js +0 -57
- package/build/components/spacing-sizes-control/all-input-control.js.map +0 -1
- package/build/components/spacing-sizes-control/axial-input-controls.js.map +0 -1
- package/build/components/spacing-sizes-control/input-controls.js.map +0 -1
- package/build/components/spacing-sizes-control/linked-button.js +0 -37
- package/build/components/spacing-sizes-control/linked-button.js.map +0 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +0 -1
- package/build/components/ungroup-button/icon.js +0 -31
- package/build/components/ungroup-button/icon.js.map +0 -1
- package/build-module/components/link-control/use-internal-input-value.js +0 -19
- package/build-module/components/link-control/use-internal-input-value.js.map +0 -1
- package/build-module/components/spacing-sizes-control/all-input-control.js +0 -45
- package/build-module/components/spacing-sizes-control/all-input-control.js.map +0 -1
- package/build-module/components/spacing-sizes-control/axial-input-controls.js.map +0 -1
- package/build-module/components/spacing-sizes-control/input-controls.js.map +0 -1
- package/build-module/components/spacing-sizes-control/linked-button.js +0 -27
- package/build-module/components/spacing-sizes-control/linked-button.js.map +0 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +0 -1
- package/build-module/components/ungroup-button/icon.js +0 -22
- package/build-module/components/ungroup-button/icon.js.map +0 -1
- package/src/components/link-control/use-internal-input-value.js +0 -23
- package/src/components/spacing-sizes-control/all-input-control.js +0 -44
- package/src/components/spacing-sizes-control/linked-button.js +0 -24
- package/src/components/ungroup-button/icon.js +0 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/use-global-styles-output.js"],"names":["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","PRESET_METADATA","reduce","declarations","path","valueKey","valueFunc","cssVarInfix","presetByOrigin","forEach","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","getPresetsSvgFilters","filter","metadata","at","flatMap","preset","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","isRoot","ROOT_BLOCK_SELECTOR","output","STYLE_PROPERTY","properties","useEngine","rootOnly","pathToValue","styleValue","entry","name","prop","cssProperty","extraRules","rule","ruleValue","ref","refPath","size","settings","getLayoutStyles","style","hasBlockGapSupport","hasFallbackGapSupport","fallbackGapValue","ruleset","gapValue","blockGap","layout","definitions","values","className","spacingStyles","spacingStyle","rules","cssValue","combinedSelector","validDisplayModes","displayMode","baseStyles","includes","baseStyle","STYLE_KEYS","pickStyleKeys","treeToPickFrom","pickedEntries","clonedEntries","JSON","parse","stringify","fromEntries","getNodesWithStyles","blockSelectors","nodes","ELEMENTS","elements","blocks","blockName","node","variations","variation","duotoneSelector","hasLayoutSupport","styleVariationSelectors","elementName","sel","elementSelectors","elementSelector","getNodesWithSettings","pickPresets","presets","custom","blockCustom","toCustomProperties","customProps","toStyles","disableLayoutStyles","nodesWithStyles","nodesWithSettings","useRootPaddingAwareAlignments","contentSize","wideSize","featureDeclarations","cssSelector","styleVariationName","styleVariations","baseSelector","styleVariationDeclarations","duotoneStyles","duotoneDeclarations","pseudoSelectorStyles","pseudoKey","pseudoStyle","pseudoDeclarations","_selector","pseudoRule","toSvgFilters","getSelectorsConfig","blockType","rootSelector","config","featureKey","featureName","getBlockSelectors","blockTypes","getBlockStyles","duotoneSupport","supports","__experimentalLayout","__experimentalDefault","blockStyleVariations","undefined","updateConfigWithSeparator","needsSeparatorStyleUpdate","background","text","border","processCSSNesting","css","processedCSS","parts","part","useGlobalStylesOutputWithConfig","mergedConfig","select","getSettings","blockEditorStore","blocksStore","customProperties","globalStyles","svgs","isGlobalStyles","assets","__unstableType","useGlobalStylesOutput","merged","GlobalStylesContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, isEmpty, kebabCase, set } from 'lodash';\n\n/**\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 { renderToString, useContext, useMemo } from '@wordpress/element';\nimport { getCSSRules } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR, scopeSelector } from './utils';\nimport { getBlockCSSSelector } from './get-block-css-selector';\nimport { getTypographyFontSizeValue } from './typography-utils';\nimport { GlobalStylesContext } from './context';\nimport { useGlobalSetting } from './hooks';\nimport { PresetDuotoneFilter } from '../duotone/components';\nimport { getGapCSSValue } from '../../hooks/gap';\nimport { store as blockEditorStore } from '../../store';\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\treturn PRESET_METADATA.reduce(\n\t\t( declarations, { path, valueKey, valueFunc, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\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 = get( blockPresets, path, [] );\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 = get( blockPresets, metadata.path, {} );\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\trenderToString(\n\t\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\t\tkey={ preset.slug }\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\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 *\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 * @return {Array} An array of style declarations.\n */\nexport function getStylesDeclarations(\n\tblockStyles = {},\n\tselector = '',\n\tuseRootPaddingAlign,\n\ttree = {}\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 = get( blockStyles, pathToValue );\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 ( ! get( styleValue, [ prop ], false ) ) {\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\tget( 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 ( get( blockStyles, pathToValue, false ) ) {\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\tget( 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.\n\t\tif (\n\t\t\tisRoot &&\n\t\t\tuseRootPaddingAlign &&\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 = get( tree, refPath );\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?.typography\n\t\t\t);\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.tree A theme.json tree containing layout definitions.\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\ttree,\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 && tree?.settings?.layout?.definitions ) {\n\t\tObject.values( tree.settings.layout.definitions ).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 ( ! hasBlockGapSupport && 'flex' !== name ) {\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(${ 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\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 += `${ selector } { --wp--style--block-gap: ${ gapValue }; }`;\n\t\t}\n\t}\n\n\t// Output base styles\n\tif (\n\t\tselector === ROOT_BLOCK_SELECTOR &&\n\t\ttree?.settings?.layout?.definitions\n\t) {\n\t\tconst validDisplayModes = [ 'block', 'flex', 'grid' ];\n\t\tObject.values( tree.settings.layout.definitions ).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 = `${ selector } .${ 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];\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\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( 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 ( ! isEmpty( presets ) || custom ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom,\n\t\t\tselector: ROOT_BLOCK_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 ( ! isEmpty( blockPresets ) || 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) => {\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\n\t/*\n\t * Reset default browser margin on the root body element.\n\t * This is set on the root selector **before** generating the ruleset\n\t * from the `theme.json`. This is to ensure that if the `theme.json` declares\n\t * `margin` in its `spacing` declaration for the `body` element then these\n\t * user-generated values take precedence in the CSS cascade.\n\t * @link https://github.com/WordPress/gutenberg/issues/36147.\n\t */\n\tlet ruleset = 'body {margin: 0;';\n\n\tif ( contentSize ) {\n\t\truleset += ` --wp--style--global--content-size: ${ contentSize };`;\n\t}\n\n\tif ( wideSize ) {\n\t\truleset += ` --wp--style--global--wide-size: ${ wideSize };`;\n\t}\n\n\tif ( useRootPaddingAlign ) {\n\t\t/*\n\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 * 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 */\n\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.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\t\t\t.has-global-padding :where(.has-global-padding) { padding-right: 0; padding-left: 0; }\n\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.has-global-padding :where(.has-global-padding) > .alignfull { margin-right: 0; margin-left: 0; }\n\t\t\t.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: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\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}\n\n\truleset += '}';\n\n\tnodesWithStyles.forEach(\n\t\t( {\n\t\t\tselector,\n\t\t\tduotoneSelector,\n\t\t\tstyles,\n\t\t\tfallbackGapValue,\n\t\t\thasLayoutSupport,\n\t\t\tfeatureSelectors,\n\t\t\tstyleVariationSelectors,\n\t\t} ) => {\n\t\t\t// Process styles for block support features with custom feature level\n\t\t\t// CSS selectors set.\n\t\t\tif ( featureSelectors ) {\n\t\t\t\tconst featureDeclarations = getFeatureDeclarations(\n\t\t\t\t\tfeatureSelectors,\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t\tObject.entries( featureDeclarations ).forEach(\n\t\t\t\t\t( [ cssSelector, declarations ] ) => {\n\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\tconst rules = declarations.join( ';' );\n\t\t\t\t\t\t\truleset += `${ cssSelector }{${ rules };}`;\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\tif ( styleVariationSelectors ) {\n\t\t\t\tObject.entries( styleVariationSelectors ).forEach(\n\t\t\t\t\t( [ styleVariationName, styleVariationSelector ] ) => {\n\t\t\t\t\t\tconst styleVariations =\n\t\t\t\t\t\t\tstyles?.variations?.[ styleVariationName ];\n\t\t\t\t\t\tif ( styleVariations ) {\n\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\tif ( featureSelectors ) {\n\t\t\t\t\t\t\t\tconst featureDeclarations =\n\t\t\t\t\t\t\t\t\tgetFeatureDeclarations(\n\t\t\t\t\t\t\t\t\t\tfeatureSelectors,\n\t\t\t\t\t\t\t\t\t\tstyleVariations\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tObject.entries( featureDeclarations ).forEach(\n\t\t\t\t\t\t\t\t\t( [ baseSelector, declarations ] ) => {\n\t\t\t\t\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\t\t\t\t\tconst cssSelector =\n\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\tbaseSelector,\n\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);\n\t\t\t\t\t\t\t\t\t\t\tconst rules =\n\t\t\t\t\t\t\t\t\t\t\t\tdeclarations.join( ';' );\n\t\t\t\t\t\t\t\t\t\t\truleset += `${ cssSelector }{${ rules };}`;\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\n\t\t\t\t\t\t\t// Otherwise add regular selectors.\n\t\t\t\t\t\t\tconst styleVariationDeclarations =\n\t\t\t\t\t\t\t\tgetStylesDeclarations(\n\t\t\t\t\t\t\t\t\tstyleVariations,\n\t\t\t\t\t\t\t\t\tstyleVariationSelector,\n\t\t\t\t\t\t\t\t\tuseRootPaddingAlign,\n\t\t\t\t\t\t\t\t\ttree\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( styleVariationDeclarations.length ) {\n\t\t\t\t\t\t\t\truleset += `${ styleVariationSelector }{${ styleVariationDeclarations.join(\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}\n\n\t\t\t// Process duotone styles.\n\t\t\tif ( duotoneSelector ) {\n\t\t\t\tconst duotoneStyles = {};\n\t\t\t\tif ( styles?.filter ) {\n\t\t\t\t\tduotoneStyles.filter = styles.filter;\n\t\t\t\t\tdelete styles.filter;\n\t\t\t\t}\n\t\t\t\tconst duotoneDeclarations =\n\t\t\t\t\tgetStylesDeclarations( duotoneStyles );\n\t\t\t\tif ( duotoneDeclarations.length ) {\n\t\t\t\t\truleset += `${ duotoneSelector }{${ duotoneDeclarations.join(\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\t// Process blockGap and layout styles.\n\t\t\tif (\n\t\t\t\t! disableLayoutStyles &&\n\t\t\t\t( ROOT_BLOCK_SELECTOR === selector || hasLayoutSupport )\n\t\t\t) {\n\t\t\t\truleset += getLayoutStyles( {\n\t\t\t\t\ttree,\n\t\t\t\t\tstyle: styles,\n\t\t\t\t\tselector,\n\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\tfallbackGapValue,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Process the remaining block styles (they use either normal block class or __experimentalSelector).\n\t\t\tconst declarations = getStylesDeclarations(\n\t\t\t\tstyles,\n\t\t\t\tselector,\n\t\t\t\tuseRootPaddingAlign,\n\t\t\t\ttree\n\t\t\t);\n\t\t\tif ( declarations?.length ) {\n\t\t\t\truleset += `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t\t}\n\n\t\t\t// Check for pseudo selector in `styles` and handle separately.\n\t\t\tconst pseudoSelectorStyles = Object.entries( styles ).filter(\n\t\t\t\t( [ key ] ) => key.startsWith( ':' )\n\t\t\t);\n\n\t\t\tif ( pseudoSelectorStyles?.length ) {\n\t\t\t\tpseudoSelectorStyles.forEach(\n\t\t\t\t\t( [ pseudoKey, pseudoStyle ] ) => {\n\t\t\t\t\t\tconst pseudoDeclarations =\n\t\t\t\t\t\t\tgetStylesDeclarations( pseudoStyle );\n\n\t\t\t\t\t\tif ( ! pseudoDeclarations?.length ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// `selector` maybe provided in a form\n\t\t\t\t\t\t// where block level selectors have sub element\n\t\t\t\t\t\t// selectors appended to them as a comma separated\n\t\t\t\t\t\t// string.\n\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// Split and append pseudo selector to create\n\t\t\t\t\t\t// the proper rules to target the elements.\n\t\t\t\t\t\tconst _selector = selector\n\t\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t\t.map( ( sel ) => sel + pseudoKey )\n\t\t\t\t\t\t\t.join( ',' );\n\n\t\t\t\t\t\tconst pseudoRule = `${ _selector }{${ pseudoDeclarations.join(\n\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t) };}`;\n\n\t\t\t\t\t\truleset += pseudoRule;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t);\n\n\t/* Add alignment / layout styles */\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';\n\n\tif ( 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:first-child { margin-block-start: 0; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t':where(.wp-site-blocks) > :last-child:last-child { margin-block-end: 0; }';\n\t}\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( ! isEmpty( classes ) ) {\n\t\t\truleset += classes;\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 ( ! isEmpty( blockType?.selectors ) ) {\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 = !! 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 = `.is-style-${ variation.name }${ selector }`;\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\nconst processCSSNesting = ( css, blockSelector ) => {\n\tlet processedCSS = '';\n\n\t// Split CSS nested rules.\n\tconst parts = css.split( '&' );\n\tparts.forEach( ( part ) => {\n\t\tprocessedCSS += ! part.includes( '{' )\n\t\t\t? blockSelector + '{' + part + '}' // If the part doesn't contain braces, it applies to the root level.\n\t\t\t: blockSelector + part; // Prepend the selector, which effectively replaces the \"&\" character.\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 getBlockStyles = useSelect( ( select ) => {\n\t\treturn select( blocksStore ).getBlockStyles;\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tif ( ! mergedConfig?.styles || ! mergedConfig?.settings ) {\n\t\t\treturn [];\n\t\t}\n\t\tmergedConfig = 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\tmergedConfig,\n\t\t\tblockSelectors\n\t\t);\n\t\tconst globalStyles = toStyles(\n\t\t\tmergedConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles\n\t\t);\n\t\tconst svgs = toSvgFilters( mergedConfig, 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: mergedConfig.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 ( mergedConfig.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\tmergedConfig.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, mergedConfig.settings ];\n\t}, [\n\t\thasBlockGapSupport,\n\t\thasFallbackGapSupport,\n\t\tmergedConfig,\n\t\tdisableLayoutStyles,\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"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/use-global-styles-output.js"],"names":["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","PRESET_METADATA","reduce","declarations","path","valueKey","valueFunc","cssVarInfix","presetByOrigin","forEach","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","getPresetsSvgFilters","filter","metadata","at","flatMap","preset","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","isRoot","ROOT_BLOCK_SELECTOR","output","STYLE_PROPERTY","properties","useEngine","rootOnly","pathToValue","styleValue","entry","name","prop","cssProperty","extraRules","rule","ruleValue","ref","refPath","size","settings","getLayoutStyles","layoutDefinitions","LAYOUT_DEFINITIONS","style","hasBlockGapSupport","hasFallbackGapSupport","fallbackGapValue","ruleset","gapValue","blockGap","values","className","spacingStyles","spacingStyle","rules","cssValue","combinedSelector","validDisplayModes","displayMode","baseStyles","includes","baseStyle","STYLE_KEYS","pickStyleKeys","treeToPickFrom","pickedEntries","clonedEntries","JSON","parse","stringify","fromEntries","getNodesWithStyles","blockSelectors","nodes","ELEMENTS","elements","blocks","blockName","node","variations","variation","duotoneSelector","hasLayoutSupport","styleVariationSelectors","elementName","sel","elementSelectors","elementSelector","getNodesWithSettings","pickPresets","presets","custom","blockCustom","toCustomProperties","customProps","toStyles","disableLayoutStyles","nodesWithStyles","nodesWithSettings","useRootPaddingAwareAlignments","contentSize","wideSize","layout","featureDeclarations","cssSelector","styleVariationName","styleVariations","baseSelector","styleVariationDeclarations","duotoneStyles","duotoneDeclarations","pseudoSelectorStyles","pseudoKey","pseudoStyle","pseudoDeclarations","_selector","pseudoRule","toSvgFilters","getSelectorsConfig","blockType","rootSelector","config","featureKey","featureName","getBlockSelectors","blockTypes","getBlockStyles","duotoneSupport","supports","__experimentalLayout","__experimentalDefault","blockStyleVariations","undefined","updateConfigWithSeparator","needsSeparatorStyleUpdate","background","text","border","processCSSNesting","css","processedCSS","parts","part","useGlobalStylesOutputWithConfig","mergedConfig","select","getSettings","blockEditorStore","blocksStore","customProperties","globalStyles","svgs","isGlobalStyles","assets","__unstableType","useGlobalStylesOutput","merged","GlobalStylesContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, set } from 'lodash';\n\n/**\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 { renderToString, useContext, useMemo } from '@wordpress/element';\nimport { getCSSRules } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR, scopeSelector } from './utils';\nimport { getBlockCSSSelector } from './get-block-css-selector';\nimport {\n\tgetTypographyFontSizeValue,\n\tgetFluidTypographyOptionsFromSettings,\n} from './typography-utils';\nimport { GlobalStylesContext } from './context';\nimport { useGlobalSetting } from './hooks';\nimport { PresetDuotoneFilter } from '../duotone/components';\nimport { getGapCSSValue } from '../../hooks/gap';\nimport { store as blockEditorStore } from '../../store';\nimport { LAYOUT_DEFINITIONS } from '../../layouts/definitions';\nimport { kebabCase } from '../../utils/object';\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\treturn PRESET_METADATA.reduce(\n\t\t( declarations, { path, valueKey, valueFunc, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\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 = get( blockPresets, path, [] );\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 = get( blockPresets, metadata.path, {} );\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\trenderToString(\n\t\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\t\tkey={ preset.slug }\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\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 *\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 * @return {Array} An array of style declarations.\n */\nexport function getStylesDeclarations(\n\tblockStyles = {},\n\tselector = '',\n\tuseRootPaddingAlign,\n\ttree = {}\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 = get( blockStyles, pathToValue );\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 ( ! get( styleValue, [ prop ], false ) ) {\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\tget( 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 ( get( blockStyles, pathToValue, false ) ) {\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\tget( 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.\n\t\tif (\n\t\t\tisRoot &&\n\t\t\tuseRootPaddingAlign &&\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 = get( tree, refPath );\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\tgetFluidTypographyOptionsFromSettings( tree?.settings )\n\t\t\t);\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(${ 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\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 += `${ 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 = `${ selector } .${ 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];\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\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( 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_BLOCK_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) => {\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\n\t/*\n\t * Reset default browser margin on the root body element.\n\t * This is set on the root selector **before** generating the ruleset\n\t * from the `theme.json`. This is to ensure that if the `theme.json` declares\n\t * `margin` in its `spacing` declaration for the `body` element then these\n\t * user-generated values take precedence in the CSS cascade.\n\t * @link https://github.com/WordPress/gutenberg/issues/36147.\n\t */\n\tlet ruleset = 'body {margin: 0;';\n\n\tif ( contentSize ) {\n\t\truleset += ` --wp--style--global--content-size: ${ contentSize };`;\n\t}\n\n\tif ( wideSize ) {\n\t\truleset += ` --wp--style--global--wide-size: ${ wideSize };`;\n\t}\n\n\tif ( useRootPaddingAlign ) {\n\t\t/*\n\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 * 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 */\n\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.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\t\t\t.has-global-padding :where(.has-global-padding) { padding-right: 0; padding-left: 0; }\n\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.has-global-padding :where(.has-global-padding) > .alignfull { margin-right: 0; margin-left: 0; }\n\t\t\t.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: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\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}\n\n\truleset += '}';\n\n\tnodesWithStyles.forEach(\n\t\t( {\n\t\t\tselector,\n\t\t\tduotoneSelector,\n\t\t\tstyles,\n\t\t\tfallbackGapValue,\n\t\t\thasLayoutSupport,\n\t\t\tfeatureSelectors,\n\t\t\tstyleVariationSelectors,\n\t\t} ) => {\n\t\t\t// Process styles for block support features with custom feature level\n\t\t\t// CSS selectors set.\n\t\t\tif ( featureSelectors ) {\n\t\t\t\tconst featureDeclarations = getFeatureDeclarations(\n\t\t\t\t\tfeatureSelectors,\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t\tObject.entries( featureDeclarations ).forEach(\n\t\t\t\t\t( [ cssSelector, declarations ] ) => {\n\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\tconst rules = declarations.join( ';' );\n\t\t\t\t\t\t\truleset += `${ cssSelector }{${ rules };}`;\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\tif ( styleVariationSelectors ) {\n\t\t\t\tObject.entries( styleVariationSelectors ).forEach(\n\t\t\t\t\t( [ styleVariationName, styleVariationSelector ] ) => {\n\t\t\t\t\t\tconst styleVariations =\n\t\t\t\t\t\t\tstyles?.variations?.[ styleVariationName ];\n\t\t\t\t\t\tif ( styleVariations ) {\n\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\tif ( featureSelectors ) {\n\t\t\t\t\t\t\t\tconst featureDeclarations =\n\t\t\t\t\t\t\t\t\tgetFeatureDeclarations(\n\t\t\t\t\t\t\t\t\t\tfeatureSelectors,\n\t\t\t\t\t\t\t\t\t\tstyleVariations\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tObject.entries( featureDeclarations ).forEach(\n\t\t\t\t\t\t\t\t\t( [ baseSelector, declarations ] ) => {\n\t\t\t\t\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\t\t\t\t\tconst cssSelector =\n\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\tbaseSelector,\n\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);\n\t\t\t\t\t\t\t\t\t\t\tconst rules =\n\t\t\t\t\t\t\t\t\t\t\t\tdeclarations.join( ';' );\n\t\t\t\t\t\t\t\t\t\t\truleset += `${ cssSelector }{${ rules };}`;\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\n\t\t\t\t\t\t\t// Otherwise add regular selectors.\n\t\t\t\t\t\t\tconst styleVariationDeclarations =\n\t\t\t\t\t\t\t\tgetStylesDeclarations(\n\t\t\t\t\t\t\t\t\tstyleVariations,\n\t\t\t\t\t\t\t\t\tstyleVariationSelector,\n\t\t\t\t\t\t\t\t\tuseRootPaddingAlign,\n\t\t\t\t\t\t\t\t\ttree\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( styleVariationDeclarations.length ) {\n\t\t\t\t\t\t\t\truleset += `${ styleVariationSelector }{${ styleVariationDeclarations.join(\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}\n\n\t\t\t// Process duotone styles.\n\t\t\tif ( duotoneSelector ) {\n\t\t\t\tconst duotoneStyles = {};\n\t\t\t\tif ( styles?.filter ) {\n\t\t\t\t\tduotoneStyles.filter = styles.filter;\n\t\t\t\t\tdelete styles.filter;\n\t\t\t\t}\n\t\t\t\tconst duotoneDeclarations =\n\t\t\t\t\tgetStylesDeclarations( duotoneStyles );\n\t\t\t\tif ( duotoneDeclarations.length ) {\n\t\t\t\t\truleset += `${ duotoneSelector }{${ duotoneDeclarations.join(\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\t// Process blockGap and layout styles.\n\t\t\tif (\n\t\t\t\t! disableLayoutStyles &&\n\t\t\t\t( ROOT_BLOCK_SELECTOR === selector || hasLayoutSupport )\n\t\t\t) {\n\t\t\t\truleset += getLayoutStyles( {\n\t\t\t\t\tstyle: styles,\n\t\t\t\t\tselector,\n\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\tfallbackGapValue,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Process the remaining block styles (they use either normal block class or __experimentalSelector).\n\t\t\tconst declarations = getStylesDeclarations(\n\t\t\t\tstyles,\n\t\t\t\tselector,\n\t\t\t\tuseRootPaddingAlign,\n\t\t\t\ttree\n\t\t\t);\n\t\t\tif ( declarations?.length ) {\n\t\t\t\truleset += `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t\t}\n\n\t\t\t// Check for pseudo selector in `styles` and handle separately.\n\t\t\tconst pseudoSelectorStyles = Object.entries( styles ).filter(\n\t\t\t\t( [ key ] ) => key.startsWith( ':' )\n\t\t\t);\n\n\t\t\tif ( pseudoSelectorStyles?.length ) {\n\t\t\t\tpseudoSelectorStyles.forEach(\n\t\t\t\t\t( [ pseudoKey, pseudoStyle ] ) => {\n\t\t\t\t\t\tconst pseudoDeclarations =\n\t\t\t\t\t\t\tgetStylesDeclarations( pseudoStyle );\n\n\t\t\t\t\t\tif ( ! pseudoDeclarations?.length ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// `selector` maybe provided in a form\n\t\t\t\t\t\t// where block level selectors have sub element\n\t\t\t\t\t\t// selectors appended to them as a comma separated\n\t\t\t\t\t\t// string.\n\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// Split and append pseudo selector to create\n\t\t\t\t\t\t// the proper rules to target the elements.\n\t\t\t\t\t\tconst _selector = selector\n\t\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t\t.map( ( sel ) => sel + pseudoKey )\n\t\t\t\t\t\t\t.join( ',' );\n\n\t\t\t\t\t\tconst pseudoRule = `${ _selector }{${ pseudoDeclarations.join(\n\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t) };}`;\n\n\t\t\t\t\t\truleset += pseudoRule;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t);\n\n\t/* Add alignment / layout styles */\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';\n\n\tif ( 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:first-child { margin-block-start: 0; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t':where(.wp-site-blocks) > :last-child:last-child { margin-block-end: 0; }';\n\t}\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( classes.length > 0 ) {\n\t\t\truleset += classes;\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 = `.is-style-${ variation.name }${ selector }`;\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\nconst processCSSNesting = ( css, blockSelector ) => {\n\tlet processedCSS = '';\n\n\t// Split CSS nested rules.\n\tconst parts = css.split( '&' );\n\tparts.forEach( ( part ) => {\n\t\tprocessedCSS += ! part.includes( '{' )\n\t\t\t? blockSelector + '{' + part + '}' // If the part doesn't contain braces, it applies to the root level.\n\t\t\t: blockSelector + part; // Prepend the selector, which effectively replaces the \"&\" character.\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 getBlockStyles = useSelect( ( select ) => {\n\t\treturn select( blocksStore ).getBlockStyles;\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tif ( ! mergedConfig?.styles || ! mergedConfig?.settings ) {\n\t\t\treturn [];\n\t\t}\n\t\tmergedConfig = 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\tmergedConfig,\n\t\t\tblockSelectors\n\t\t);\n\t\tconst globalStyles = toStyles(\n\t\t\tmergedConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles\n\t\t);\n\t\tconst svgs = toSvgFilters( mergedConfig, 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: mergedConfig.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 ( mergedConfig.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\tmergedConfig.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, mergedConfig.settings ];\n\t}, [\n\t\thasBlockGapSupport,\n\t\thasFallbackGapSupport,\n\t\tmergedConfig,\n\t\tdisableLayoutStyles,\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"]}
|
|
@@ -58,12 +58,9 @@ const PRESET_METADATA = [{
|
|
|
58
58
|
path: ['color', 'duotone'],
|
|
59
59
|
valueKey: 'colors',
|
|
60
60
|
cssVarInfix: 'duotone',
|
|
61
|
-
valueFunc:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
} = _ref;
|
|
65
|
-
return `url( '#wp-duotone-${slug}' )`;
|
|
66
|
-
},
|
|
61
|
+
valueFunc: ({
|
|
62
|
+
slug
|
|
63
|
+
}) => `url( '#wp-duotone-${slug}' )`,
|
|
67
64
|
classes: []
|
|
68
65
|
}, {
|
|
69
66
|
path: ['shadow', 'presets'],
|
|
@@ -72,12 +69,7 @@ const PRESET_METADATA = [{
|
|
|
72
69
|
classes: []
|
|
73
70
|
}, {
|
|
74
71
|
path: ['typography', 'fontSizes'],
|
|
75
|
-
valueFunc: (preset,
|
|
76
|
-
let {
|
|
77
|
-
typography: typographySettings
|
|
78
|
-
} = _ref2;
|
|
79
|
-
return (0, _typographyUtils.getTypographyFontSizeValue)(preset, typographySettings);
|
|
80
|
-
},
|
|
72
|
+
valueFunc: (preset, settings) => (0, _typographyUtils.getTypographyFontSizeValue)(preset, (0, _typographyUtils.getFluidTypographyOptionsFromSettings)(settings)),
|
|
81
73
|
valueKey: 'size',
|
|
82
74
|
cssVarInfix: 'font-size',
|
|
83
75
|
classes: [{
|
|
@@ -96,12 +88,9 @@ const PRESET_METADATA = [{
|
|
|
96
88
|
path: ['spacing', 'spacingSizes'],
|
|
97
89
|
valueKey: 'size',
|
|
98
90
|
cssVarInfix: 'spacing',
|
|
99
|
-
valueFunc:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
} = _ref3;
|
|
103
|
-
return size;
|
|
104
|
-
},
|
|
91
|
+
valueFunc: ({
|
|
92
|
+
size
|
|
93
|
+
}) => size,
|
|
105
94
|
classes: []
|
|
106
95
|
}];
|
|
107
96
|
exports.PRESET_METADATA = PRESET_METADATA;
|
|
@@ -227,8 +216,7 @@ function getPresetVariableFromValue(features, blockName, variableStylePath, pres
|
|
|
227
216
|
return `var:preset|${cssVarInfix}|${presetObject.slug}`;
|
|
228
217
|
}
|
|
229
218
|
|
|
230
|
-
function getValueFromPresetVariable(features, blockName, variable,
|
|
231
|
-
let [presetType, slug] = _ref4;
|
|
219
|
+
function getValueFromPresetVariable(features, blockName, variable, [presetType, slug]) {
|
|
232
220
|
const metadata = PRESET_METADATA.find(data => data.cssVarInfix === presetType);
|
|
233
221
|
|
|
234
222
|
if (!metadata) {
|
|
@@ -272,16 +260,12 @@ function getValueFromCustomVariable(features, blockName, variable, path) {
|
|
|
272
260
|
|
|
273
261
|
function getValueFromVariable(features, blockName, variable) {
|
|
274
262
|
if (!variable || typeof variable !== 'string') {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
if ((_variable = variable) !== null && _variable !== void 0 && _variable.ref && typeof ((_variable2 = variable) === null || _variable2 === void 0 ? void 0 : _variable2.ref) === 'string') {
|
|
278
|
-
var _variable3;
|
|
279
|
-
|
|
263
|
+
if (variable?.ref && typeof variable?.ref === 'string') {
|
|
280
264
|
const refPath = variable.ref.split('.');
|
|
281
265
|
variable = (0, _lodash.get)(features, refPath); // Presence of another ref indicates a reference to another dynamic value.
|
|
282
266
|
// Pointing to another dynamic value is not supported.
|
|
283
267
|
|
|
284
|
-
if (!variable || !!
|
|
268
|
+
if (!variable || !!variable?.ref) {
|
|
285
269
|
return variable;
|
|
286
270
|
}
|
|
287
271
|
} else {
|
|
@@ -368,6 +352,6 @@ function areGlobalStyleConfigsEqual(original, variation) {
|
|
|
368
352
|
return original === variation;
|
|
369
353
|
}
|
|
370
354
|
|
|
371
|
-
return (0, _es.default)(original
|
|
355
|
+
return (0, _es.default)(original?.styles, variation?.styles) && (0, _es.default)(original?.settings, variation?.settings);
|
|
372
356
|
}
|
|
373
357
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/utils.js"],"names":["ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","PRESET_METADATA","path","valueKey","cssVarInfix","classes","classSuffix","propertyName","valueFunc","slug","preset","typography","typographySettings","size","STYLE_PATH_TO_CSS_VAR_INFIX","shadow","STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE","findInPresetsBy","features","blockName","presetPath","presetProperty","presetValueValue","orderedPresetsByOrigin","presetByOrigin","origins","origin","presets","presetObject","find","highestPresetObjectWithSameSlug","undefined","getPresetVariableFromValue","variableStylePath","presetPropertyValue","metadata","data","getValueFromPresetVariable","variable","presetType","settings","result","getValueFromVariable","getValueFromCustomVariable","ref","refPath","split","USER_VALUE_PREFIX","THEME_VALUE_PREFIX","THEME_VALUE_SUFFIX","parsedVar","startsWith","slice","length","endsWith","type","scopeSelector","scope","selector","scopes","selectors","selectorsScoped","forEach","outer","inner","push","trim","join","areGlobalStyleConfigsEqual","original","variation","styles"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * Internal dependencies\n */\nimport { getTypographyFontSizeValue } from './typography-utils';\n\n/* Supporting data. */\nexport const ROOT_BLOCK_NAME = 'root';\nexport const ROOT_BLOCK_SELECTOR = 'body';\nexport const ROOT_BLOCK_SUPPORTS = [\n\t'background',\n\t'backgroundColor',\n\t'color',\n\t'linkColor',\n\t'captionColor',\n\t'buttonColor',\n\t'headingColor',\n\t'fontFamily',\n\t'fontSize',\n\t'fontStyle',\n\t'fontWeight',\n\t'lineHeight',\n\t'textDecoration',\n\t'textTransform',\n\t'padding',\n];\n\nexport const PRESET_METADATA = [\n\t{\n\t\tpath: [ 'color', 'palette' ],\n\t\tvalueKey: 'color',\n\t\tcssVarInfix: 'color',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'color', propertyName: 'color' },\n\t\t\t{\n\t\t\t\tclassSuffix: 'background-color',\n\t\t\t\tpropertyName: 'background-color',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclassSuffix: 'border-color',\n\t\t\t\tpropertyName: 'border-color',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'gradients' ],\n\t\tvalueKey: 'gradient',\n\t\tcssVarInfix: 'gradient',\n\t\tclasses: [\n\t\t\t{\n\t\t\t\tclassSuffix: 'gradient-background',\n\t\t\t\tpropertyName: 'background',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'duotone' ],\n\t\tvalueKey: 'colors',\n\t\tcssVarInfix: 'duotone',\n\t\tvalueFunc: ( { slug } ) => `url( '#wp-duotone-${ slug }' )`,\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'shadow', 'presets' ],\n\t\tvalueKey: 'shadow',\n\t\tcssVarInfix: 'shadow',\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontSizes' ],\n\t\tvalueFunc: ( preset, { typography: typographySettings } ) =>\n\t\t\tgetTypographyFontSizeValue( preset, typographySettings ),\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'font-size',\n\t\tclasses: [ { classSuffix: 'font-size', propertyName: 'font-size' } ],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontFamilies' ],\n\t\tvalueKey: 'fontFamily',\n\t\tcssVarInfix: 'font-family',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'font-family', propertyName: 'font-family' },\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'spacing', 'spacingSizes' ],\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'spacing',\n\t\tvalueFunc: ( { size } ) => size,\n\t\tclasses: [],\n\t},\n];\n\nexport const STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'filter.duotone': 'duotone',\n\t'elements.link.color.text': 'color',\n\t'elements.link.:hover.color.text': 'color',\n\t'elements.link.typography.fontFamily': 'font-family',\n\t'elements.link.typography.fontSize': 'font-size',\n\t'elements.button.color.text': 'color',\n\t'elements.button.color.background': 'color',\n\t'elements.caption.color.text': 'color',\n\t'elements.button.typography.fontFamily': 'font-family',\n\t'elements.button.typography.fontSize': 'font-size',\n\t'elements.heading.color': 'color',\n\t'elements.heading.color.background': 'color',\n\t'elements.heading.typography.fontFamily': 'font-family',\n\t'elements.heading.gradient': 'gradient',\n\t'elements.heading.color.gradient': 'gradient',\n\t'elements.h1.color': 'color',\n\t'elements.h1.color.background': 'color',\n\t'elements.h1.typography.fontFamily': 'font-family',\n\t'elements.h1.color.gradient': 'gradient',\n\t'elements.h2.color': 'color',\n\t'elements.h2.color.background': 'color',\n\t'elements.h2.typography.fontFamily': 'font-family',\n\t'elements.h2.color.gradient': 'gradient',\n\t'elements.h3.color': 'color',\n\t'elements.h3.color.background': 'color',\n\t'elements.h3.typography.fontFamily': 'font-family',\n\t'elements.h3.color.gradient': 'gradient',\n\t'elements.h4.color': 'color',\n\t'elements.h4.color.background': 'color',\n\t'elements.h4.typography.fontFamily': 'font-family',\n\t'elements.h4.color.gradient': 'gradient',\n\t'elements.h5.color': 'color',\n\t'elements.h5.color.background': 'color',\n\t'elements.h5.typography.fontFamily': 'font-family',\n\t'elements.h5.color.gradient': 'gradient',\n\t'elements.h6.color': 'color',\n\t'elements.h6.color.background': 'color',\n\t'elements.h6.typography.fontFamily': 'font-family',\n\t'elements.h6.color.gradient': 'gradient',\n\t'color.gradient': 'gradient',\n\tshadow: 'shadow',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\n// A static list of block attributes that store global style preset slugs.\nexport const STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {\n\t'color.background': 'backgroundColor',\n\t'color.text': 'textColor',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'fontSize',\n\t'typography.fontFamily': 'fontFamily',\n};\n\nfunction findInPresetsBy(\n\tfeatures,\n\tblockName,\n\tpresetPath,\n\tpresetProperty,\n\tpresetValueValue\n) {\n\t// Block presets take priority above root level presets.\n\tconst orderedPresetsByOrigin = [\n\t\tget( features, [ 'blocks', blockName, ...presetPath ] ),\n\t\tget( features, presetPath ),\n\t];\n\n\tfor ( const presetByOrigin of orderedPresetsByOrigin ) {\n\t\tif ( presetByOrigin ) {\n\t\t\t// Preset origins ordered by priority.\n\t\t\tconst origins = [ 'custom', 'theme', 'default' ];\n\t\t\tfor ( const origin of origins ) {\n\t\t\t\tconst presets = presetByOrigin[ origin ];\n\t\t\t\tif ( presets ) {\n\t\t\t\t\tconst presetObject = presets.find(\n\t\t\t\t\t\t( preset ) =>\n\t\t\t\t\t\t\tpreset[ presetProperty ] === presetValueValue\n\t\t\t\t\t);\n\t\t\t\t\tif ( presetObject ) {\n\t\t\t\t\t\tif ( presetProperty === 'slug' ) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored.\n\t\t\t\t\t\tconst highestPresetObjectWithSameSlug = findInPresetsBy(\n\t\t\t\t\t\t\tfeatures,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpresetPath,\n\t\t\t\t\t\t\t'slug',\n\t\t\t\t\t\t\tpresetObject.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thighestPresetObjectWithSameSlug[\n\t\t\t\t\t\t\t\tpresetProperty\n\t\t\t\t\t\t\t] === presetObject[ presetProperty ]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function getPresetVariableFromValue(\n\tfeatures,\n\tblockName,\n\tvariableStylePath,\n\tpresetPropertyValue\n) {\n\tif ( ! presetPropertyValue ) {\n\t\treturn presetPropertyValue;\n\t}\n\n\tconst cssVarInfix = STYLE_PATH_TO_CSS_VAR_INFIX[ variableStylePath ];\n\n\tconst metadata = PRESET_METADATA.find(\n\t\t( data ) => data.cssVarInfix === cssVarInfix\n\t);\n\n\tif ( ! metadata ) {\n\t\t// The property doesn't have preset data\n\t\t// so the value should be returned as it is.\n\t\treturn presetPropertyValue;\n\t}\n\tconst { valueKey, path } = metadata;\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures,\n\t\tblockName,\n\t\tpath,\n\t\tvalueKey,\n\t\tpresetPropertyValue\n\t);\n\n\tif ( ! presetObject ) {\n\t\t// Value wasn't found in the presets,\n\t\t// so it must be a custom value.\n\t\treturn presetPropertyValue;\n\t}\n\n\treturn `var:preset|${ cssVarInfix }|${ presetObject.slug }`;\n}\n\nfunction getValueFromPresetVariable(\n\tfeatures,\n\tblockName,\n\tvariable,\n\t[ presetType, slug ]\n) {\n\tconst metadata = PRESET_METADATA.find(\n\t\t( data ) => data.cssVarInfix === presetType\n\t);\n\tif ( ! metadata ) {\n\t\treturn variable;\n\t}\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures.settings,\n\t\tblockName,\n\t\tmetadata.path,\n\t\t'slug',\n\t\tslug\n\t);\n\n\tif ( presetObject ) {\n\t\tconst { valueKey } = metadata;\n\t\tconst result = presetObject[ valueKey ];\n\t\treturn getValueFromVariable( features, blockName, result );\n\t}\n\n\treturn variable;\n}\n\nfunction getValueFromCustomVariable( features, blockName, variable, path ) {\n\tconst result =\n\t\tget( features.settings, [ 'blocks', blockName, 'custom', ...path ] ) ??\n\t\tget( features.settings, [ 'custom', ...path ] );\n\tif ( ! result ) {\n\t\treturn variable;\n\t}\n\t// A variable may reference another variable so we need recursion until we find the value.\n\treturn getValueFromVariable( features, blockName, result );\n}\n\n/**\n * Attempts to fetch the value of a theme.json CSS variable.\n *\n * @param {Object} features GlobalStylesContext config, e.g., user, base or merged. Represents the theme.json tree.\n * @param {string} blockName The name of a block as represented in the styles property. E.g., 'root' for root-level, and 'core/${blockName}' for blocks.\n * @param {string|*} variable An incoming style value. A CSS var value is expected, but it could be any value.\n * @return {string|*|{ref}} The value of the CSS var, if found. If not found, the passed variable argument.\n */\nexport function getValueFromVariable( features, blockName, variable ) {\n\tif ( ! variable || typeof variable !== 'string' ) {\n\t\tif ( variable?.ref && typeof variable?.ref === 'string' ) {\n\t\t\tconst refPath = variable.ref.split( '.' );\n\t\t\tvariable = get( features, refPath );\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 ( ! variable || !! variable?.ref ) {\n\t\t\t\treturn variable;\n\t\t\t}\n\t\t} else {\n\t\t\treturn variable;\n\t\t}\n\t}\n\tconst USER_VALUE_PREFIX = 'var:';\n\tconst THEME_VALUE_PREFIX = 'var(--wp--';\n\tconst THEME_VALUE_SUFFIX = ')';\n\n\tlet parsedVar;\n\n\tif ( variable.startsWith( USER_VALUE_PREFIX ) ) {\n\t\tparsedVar = variable.slice( USER_VALUE_PREFIX.length ).split( '|' );\n\t} else if (\n\t\tvariable.startsWith( THEME_VALUE_PREFIX ) &&\n\t\tvariable.endsWith( THEME_VALUE_SUFFIX )\n\t) {\n\t\tparsedVar = variable\n\t\t\t.slice( THEME_VALUE_PREFIX.length, -THEME_VALUE_SUFFIX.length )\n\t\t\t.split( '--' );\n\t} else {\n\t\t// We don't know how to parse the value: either is raw of uses complex CSS such as `calc(1px * var(--wp--variable) )`\n\t\treturn variable;\n\t}\n\n\tconst [ type, ...path ] = parsedVar;\n\tif ( type === 'preset' ) {\n\t\treturn getValueFromPresetVariable(\n\t\t\tfeatures,\n\t\t\tblockName,\n\t\t\tvariable,\n\t\t\tpath\n\t\t);\n\t}\n\tif ( type === 'custom' ) {\n\t\treturn getValueFromCustomVariable(\n\t\t\tfeatures,\n\t\t\tblockName,\n\t\t\tvariable,\n\t\t\tpath\n\t\t);\n\t}\n\treturn variable;\n}\n\n/**\n * Function that scopes a selector with another one. This works a bit like\n * SCSS nesting except the `&` operator isn't supported.\n *\n * @example\n * ```js\n * const scope = '.a, .b .c';\n * const selector = '> .x, .y';\n * const merged = scopeSelector( scope, selector );\n * // merged is '.a > .x, .a .y, .b .c > .x, .b .c .y'\n * ```\n *\n * @param {string} scope Selector to scope to.\n * @param {string} selector Original selector.\n *\n * @return {string} Scoped selector.\n */\nexport function scopeSelector( scope, selector ) {\n\tconst scopes = scope.split( ',' );\n\tconst selectors = selector.split( ',' );\n\n\tconst selectorsScoped = [];\n\tscopes.forEach( ( outer ) => {\n\t\tselectors.forEach( ( inner ) => {\n\t\t\tselectorsScoped.push( `${ outer.trim() } ${ inner.trim() }` );\n\t\t} );\n\t} );\n\n\treturn selectorsScoped.join( ', ' );\n}\n\n/**\n * Compares global style variations according to their styles and settings properties.\n *\n * @example\n * ```js\n * const globalStyles = { styles: { typography: { fontSize: '10px' } }, settings: {} };\n * const variation = { styles: { typography: { fontSize: '10000px' } }, settings: {} };\n * const isEqual = areGlobalStyleConfigsEqual( globalStyles, variation );\n * // false\n * ```\n *\n * @param {Object} original A global styles object.\n * @param {Object} variation A global styles object.\n *\n * @return {boolean} Whether `original` and `variation` match.\n */\nexport function areGlobalStyleConfigsEqual( original, variation ) {\n\tif ( typeof original !== 'object' || typeof variation !== 'object' ) {\n\t\treturn original === variation;\n\t}\n\treturn (\n\t\tfastDeepEqual( original?.styles, variation?.styles ) &&\n\t\tfastDeepEqual( original?.settings, variation?.settings )\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/utils.js"],"names":["ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","PRESET_METADATA","path","valueKey","cssVarInfix","classes","classSuffix","propertyName","valueFunc","slug","preset","settings","size","STYLE_PATH_TO_CSS_VAR_INFIX","shadow","STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE","findInPresetsBy","features","blockName","presetPath","presetProperty","presetValueValue","orderedPresetsByOrigin","presetByOrigin","origins","origin","presets","presetObject","find","highestPresetObjectWithSameSlug","undefined","getPresetVariableFromValue","variableStylePath","presetPropertyValue","metadata","data","getValueFromPresetVariable","variable","presetType","result","getValueFromVariable","getValueFromCustomVariable","ref","refPath","split","USER_VALUE_PREFIX","THEME_VALUE_PREFIX","THEME_VALUE_SUFFIX","parsedVar","startsWith","slice","length","endsWith","type","scopeSelector","scope","selector","scopes","selectors","selectorsScoped","forEach","outer","inner","push","trim","join","areGlobalStyleConfigsEqual","original","variation","styles"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetTypographyFontSizeValue,\n\tgetFluidTypographyOptionsFromSettings,\n} from './typography-utils';\n\n/* Supporting data. */\nexport const ROOT_BLOCK_NAME = 'root';\nexport const ROOT_BLOCK_SELECTOR = 'body';\nexport const ROOT_BLOCK_SUPPORTS = [\n\t'background',\n\t'backgroundColor',\n\t'color',\n\t'linkColor',\n\t'captionColor',\n\t'buttonColor',\n\t'headingColor',\n\t'fontFamily',\n\t'fontSize',\n\t'fontStyle',\n\t'fontWeight',\n\t'lineHeight',\n\t'textDecoration',\n\t'textTransform',\n\t'padding',\n];\n\nexport const PRESET_METADATA = [\n\t{\n\t\tpath: [ 'color', 'palette' ],\n\t\tvalueKey: 'color',\n\t\tcssVarInfix: 'color',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'color', propertyName: 'color' },\n\t\t\t{\n\t\t\t\tclassSuffix: 'background-color',\n\t\t\t\tpropertyName: 'background-color',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclassSuffix: 'border-color',\n\t\t\t\tpropertyName: 'border-color',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'gradients' ],\n\t\tvalueKey: 'gradient',\n\t\tcssVarInfix: 'gradient',\n\t\tclasses: [\n\t\t\t{\n\t\t\t\tclassSuffix: 'gradient-background',\n\t\t\t\tpropertyName: 'background',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'duotone' ],\n\t\tvalueKey: 'colors',\n\t\tcssVarInfix: 'duotone',\n\t\tvalueFunc: ( { slug } ) => `url( '#wp-duotone-${ slug }' )`,\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'shadow', 'presets' ],\n\t\tvalueKey: 'shadow',\n\t\tcssVarInfix: 'shadow',\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontSizes' ],\n\t\tvalueFunc: ( preset, settings ) =>\n\t\t\tgetTypographyFontSizeValue(\n\t\t\t\tpreset,\n\t\t\t\tgetFluidTypographyOptionsFromSettings( settings )\n\t\t\t),\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'font-size',\n\t\tclasses: [ { classSuffix: 'font-size', propertyName: 'font-size' } ],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontFamilies' ],\n\t\tvalueKey: 'fontFamily',\n\t\tcssVarInfix: 'font-family',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'font-family', propertyName: 'font-family' },\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'spacing', 'spacingSizes' ],\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'spacing',\n\t\tvalueFunc: ( { size } ) => size,\n\t\tclasses: [],\n\t},\n];\n\nexport const STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'filter.duotone': 'duotone',\n\t'elements.link.color.text': 'color',\n\t'elements.link.:hover.color.text': 'color',\n\t'elements.link.typography.fontFamily': 'font-family',\n\t'elements.link.typography.fontSize': 'font-size',\n\t'elements.button.color.text': 'color',\n\t'elements.button.color.background': 'color',\n\t'elements.caption.color.text': 'color',\n\t'elements.button.typography.fontFamily': 'font-family',\n\t'elements.button.typography.fontSize': 'font-size',\n\t'elements.heading.color': 'color',\n\t'elements.heading.color.background': 'color',\n\t'elements.heading.typography.fontFamily': 'font-family',\n\t'elements.heading.gradient': 'gradient',\n\t'elements.heading.color.gradient': 'gradient',\n\t'elements.h1.color': 'color',\n\t'elements.h1.color.background': 'color',\n\t'elements.h1.typography.fontFamily': 'font-family',\n\t'elements.h1.color.gradient': 'gradient',\n\t'elements.h2.color': 'color',\n\t'elements.h2.color.background': 'color',\n\t'elements.h2.typography.fontFamily': 'font-family',\n\t'elements.h2.color.gradient': 'gradient',\n\t'elements.h3.color': 'color',\n\t'elements.h3.color.background': 'color',\n\t'elements.h3.typography.fontFamily': 'font-family',\n\t'elements.h3.color.gradient': 'gradient',\n\t'elements.h4.color': 'color',\n\t'elements.h4.color.background': 'color',\n\t'elements.h4.typography.fontFamily': 'font-family',\n\t'elements.h4.color.gradient': 'gradient',\n\t'elements.h5.color': 'color',\n\t'elements.h5.color.background': 'color',\n\t'elements.h5.typography.fontFamily': 'font-family',\n\t'elements.h5.color.gradient': 'gradient',\n\t'elements.h6.color': 'color',\n\t'elements.h6.color.background': 'color',\n\t'elements.h6.typography.fontFamily': 'font-family',\n\t'elements.h6.color.gradient': 'gradient',\n\t'color.gradient': 'gradient',\n\tshadow: 'shadow',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\n// A static list of block attributes that store global style preset slugs.\nexport const STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {\n\t'color.background': 'backgroundColor',\n\t'color.text': 'textColor',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'fontSize',\n\t'typography.fontFamily': 'fontFamily',\n};\n\nfunction findInPresetsBy(\n\tfeatures,\n\tblockName,\n\tpresetPath,\n\tpresetProperty,\n\tpresetValueValue\n) {\n\t// Block presets take priority above root level presets.\n\tconst orderedPresetsByOrigin = [\n\t\tget( features, [ 'blocks', blockName, ...presetPath ] ),\n\t\tget( features, presetPath ),\n\t];\n\n\tfor ( const presetByOrigin of orderedPresetsByOrigin ) {\n\t\tif ( presetByOrigin ) {\n\t\t\t// Preset origins ordered by priority.\n\t\t\tconst origins = [ 'custom', 'theme', 'default' ];\n\t\t\tfor ( const origin of origins ) {\n\t\t\t\tconst presets = presetByOrigin[ origin ];\n\t\t\t\tif ( presets ) {\n\t\t\t\t\tconst presetObject = presets.find(\n\t\t\t\t\t\t( preset ) =>\n\t\t\t\t\t\t\tpreset[ presetProperty ] === presetValueValue\n\t\t\t\t\t);\n\t\t\t\t\tif ( presetObject ) {\n\t\t\t\t\t\tif ( presetProperty === 'slug' ) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored.\n\t\t\t\t\t\tconst highestPresetObjectWithSameSlug = findInPresetsBy(\n\t\t\t\t\t\t\tfeatures,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpresetPath,\n\t\t\t\t\t\t\t'slug',\n\t\t\t\t\t\t\tpresetObject.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thighestPresetObjectWithSameSlug[\n\t\t\t\t\t\t\t\tpresetProperty\n\t\t\t\t\t\t\t] === presetObject[ presetProperty ]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function getPresetVariableFromValue(\n\tfeatures,\n\tblockName,\n\tvariableStylePath,\n\tpresetPropertyValue\n) {\n\tif ( ! presetPropertyValue ) {\n\t\treturn presetPropertyValue;\n\t}\n\n\tconst cssVarInfix = STYLE_PATH_TO_CSS_VAR_INFIX[ variableStylePath ];\n\n\tconst metadata = PRESET_METADATA.find(\n\t\t( data ) => data.cssVarInfix === cssVarInfix\n\t);\n\n\tif ( ! metadata ) {\n\t\t// The property doesn't have preset data\n\t\t// so the value should be returned as it is.\n\t\treturn presetPropertyValue;\n\t}\n\tconst { valueKey, path } = metadata;\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures,\n\t\tblockName,\n\t\tpath,\n\t\tvalueKey,\n\t\tpresetPropertyValue\n\t);\n\n\tif ( ! presetObject ) {\n\t\t// Value wasn't found in the presets,\n\t\t// so it must be a custom value.\n\t\treturn presetPropertyValue;\n\t}\n\n\treturn `var:preset|${ cssVarInfix }|${ presetObject.slug }`;\n}\n\nfunction getValueFromPresetVariable(\n\tfeatures,\n\tblockName,\n\tvariable,\n\t[ presetType, slug ]\n) {\n\tconst metadata = PRESET_METADATA.find(\n\t\t( data ) => data.cssVarInfix === presetType\n\t);\n\tif ( ! metadata ) {\n\t\treturn variable;\n\t}\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures.settings,\n\t\tblockName,\n\t\tmetadata.path,\n\t\t'slug',\n\t\tslug\n\t);\n\n\tif ( presetObject ) {\n\t\tconst { valueKey } = metadata;\n\t\tconst result = presetObject[ valueKey ];\n\t\treturn getValueFromVariable( features, blockName, result );\n\t}\n\n\treturn variable;\n}\n\nfunction getValueFromCustomVariable( features, blockName, variable, path ) {\n\tconst result =\n\t\tget( features.settings, [ 'blocks', blockName, 'custom', ...path ] ) ??\n\t\tget( features.settings, [ 'custom', ...path ] );\n\tif ( ! result ) {\n\t\treturn variable;\n\t}\n\t// A variable may reference another variable so we need recursion until we find the value.\n\treturn getValueFromVariable( features, blockName, result );\n}\n\n/**\n * Attempts to fetch the value of a theme.json CSS variable.\n *\n * @param {Object} features GlobalStylesContext config, e.g., user, base or merged. Represents the theme.json tree.\n * @param {string} blockName The name of a block as represented in the styles property. E.g., 'root' for root-level, and 'core/${blockName}' for blocks.\n * @param {string|*} variable An incoming style value. A CSS var value is expected, but it could be any value.\n * @return {string|*|{ref}} The value of the CSS var, if found. If not found, the passed variable argument.\n */\nexport function getValueFromVariable( features, blockName, variable ) {\n\tif ( ! variable || typeof variable !== 'string' ) {\n\t\tif ( variable?.ref && typeof variable?.ref === 'string' ) {\n\t\t\tconst refPath = variable.ref.split( '.' );\n\t\t\tvariable = get( features, refPath );\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 ( ! variable || !! variable?.ref ) {\n\t\t\t\treturn variable;\n\t\t\t}\n\t\t} else {\n\t\t\treturn variable;\n\t\t}\n\t}\n\tconst USER_VALUE_PREFIX = 'var:';\n\tconst THEME_VALUE_PREFIX = 'var(--wp--';\n\tconst THEME_VALUE_SUFFIX = ')';\n\n\tlet parsedVar;\n\n\tif ( variable.startsWith( USER_VALUE_PREFIX ) ) {\n\t\tparsedVar = variable.slice( USER_VALUE_PREFIX.length ).split( '|' );\n\t} else if (\n\t\tvariable.startsWith( THEME_VALUE_PREFIX ) &&\n\t\tvariable.endsWith( THEME_VALUE_SUFFIX )\n\t) {\n\t\tparsedVar = variable\n\t\t\t.slice( THEME_VALUE_PREFIX.length, -THEME_VALUE_SUFFIX.length )\n\t\t\t.split( '--' );\n\t} else {\n\t\t// We don't know how to parse the value: either is raw of uses complex CSS such as `calc(1px * var(--wp--variable) )`\n\t\treturn variable;\n\t}\n\n\tconst [ type, ...path ] = parsedVar;\n\tif ( type === 'preset' ) {\n\t\treturn getValueFromPresetVariable(\n\t\t\tfeatures,\n\t\t\tblockName,\n\t\t\tvariable,\n\t\t\tpath\n\t\t);\n\t}\n\tif ( type === 'custom' ) {\n\t\treturn getValueFromCustomVariable(\n\t\t\tfeatures,\n\t\t\tblockName,\n\t\t\tvariable,\n\t\t\tpath\n\t\t);\n\t}\n\treturn variable;\n}\n\n/**\n * Function that scopes a selector with another one. This works a bit like\n * SCSS nesting except the `&` operator isn't supported.\n *\n * @example\n * ```js\n * const scope = '.a, .b .c';\n * const selector = '> .x, .y';\n * const merged = scopeSelector( scope, selector );\n * // merged is '.a > .x, .a .y, .b .c > .x, .b .c .y'\n * ```\n *\n * @param {string} scope Selector to scope to.\n * @param {string} selector Original selector.\n *\n * @return {string} Scoped selector.\n */\nexport function scopeSelector( scope, selector ) {\n\tconst scopes = scope.split( ',' );\n\tconst selectors = selector.split( ',' );\n\n\tconst selectorsScoped = [];\n\tscopes.forEach( ( outer ) => {\n\t\tselectors.forEach( ( inner ) => {\n\t\t\tselectorsScoped.push( `${ outer.trim() } ${ inner.trim() }` );\n\t\t} );\n\t} );\n\n\treturn selectorsScoped.join( ', ' );\n}\n\n/**\n * Compares global style variations according to their styles and settings properties.\n *\n * @example\n * ```js\n * const globalStyles = { styles: { typography: { fontSize: '10px' } }, settings: {} };\n * const variation = { styles: { typography: { fontSize: '10000px' } }, settings: {} };\n * const isEqual = areGlobalStyleConfigsEqual( globalStyles, variation );\n * // false\n * ```\n *\n * @param {Object} original A global styles object.\n * @param {Object} variation A global styles object.\n *\n * @return {boolean} Whether `original` and `variation` match.\n */\nexport function areGlobalStyleConfigsEqual( original, variation ) {\n\tif ( typeof original !== 'object' || typeof variation !== 'object' ) {\n\t\treturn original === variation;\n\t}\n\treturn (\n\t\tfastDeepEqual( original?.styles, variation?.styles ) &&\n\t\tfastDeepEqual( original?.settings, variation?.settings )\n\t);\n}\n"]}
|
|
@@ -46,12 +46,12 @@ function __experimentalGetGradientClass(gradientSlug) {
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
function getGradientValueBySlug(gradients, slug) {
|
|
49
|
-
const gradient = gradients
|
|
49
|
+
const gradient = gradients?.find(g => g.slug === slug);
|
|
50
50
|
return gradient && gradient.gradient;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
function __experimentalGetGradientObjectByGradientValue(gradients, value) {
|
|
54
|
-
const gradient = gradients
|
|
54
|
+
const gradient = gradients?.find(g => g.gradient === value);
|
|
55
55
|
return gradient;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
@@ -69,11 +69,10 @@ function getGradientSlugByValue(gradients, value) {
|
|
|
69
69
|
return gradient && gradient.slug;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
function __experimentalUseGradient(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
72
|
+
function __experimentalUseGradient({
|
|
73
|
+
gradientAttribute = 'gradient',
|
|
74
|
+
customGradientAttribute = 'customGradient'
|
|
75
|
+
} = {}) {
|
|
77
76
|
const {
|
|
78
77
|
clientId
|
|
79
78
|
} = (0, _blockEdit.useBlockEditContext)();
|