@wordpress/block-editor 16.0.1-next.v.202607070741.0 → 16.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -1
- package/README.md +8 -0
- package/build/components/alignment-control/ui.cjs +2 -4
- package/build/components/alignment-control/ui.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +40 -10
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-alignment-control/ui.cjs +5 -3
- package/build/components/block-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-canvas/index.cjs +6 -1
- package/build/components/block-canvas/index.cjs.map +2 -2
- package/build/components/block-controls/groups.cjs +3 -1
- package/build/components/block-controls/groups.cjs.map +2 -2
- package/build/components/block-edit/edit.cjs +10 -18
- package/build/components/block-edit/edit.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +73 -46
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-list/block-html.cjs +4 -1
- package/build/components/block-list/block-html.cjs.map +2 -2
- package/build/components/block-list/block.cjs +9 -3
- package/build/components/block-list/block.cjs.map +3 -3
- package/build/components/block-list/index.cjs +1 -3
- package/build/components/block-list/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/index.cjs +7 -2
- package/build/components/block-list/use-block-props/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs +9 -4
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-handler.cjs +11 -4
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs +48 -0
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs.map +7 -0
- package/build/components/block-parent-selector/index.cjs +2 -2
- package/build/components/block-parent-selector/index.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +43 -24
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-toolbar/switch-section-style.cjs +4 -2
- package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
- package/build/components/block-tools/empty-block-inserter.cjs +2 -7
- package/build/components/block-tools/empty-block-inserter.cjs.map +2 -2
- package/build/components/block-tools/index.cjs +7 -2
- package/build/components/block-tools/index.cjs.map +2 -2
- package/build/components/block-vertical-alignment-control/ui.cjs +3 -5
- package/build/components/block-vertical-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-visibility/modal.cjs +20 -6
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/block-visibility/use-block-visibility.cjs +16 -6
- package/build/components/block-visibility/use-block-visibility.cjs.map +3 -3
- package/build/components/block-visibility/utils.cjs +15 -2
- package/build/components/block-visibility/utils.cjs.map +3 -3
- package/build/components/block-visibility/viewport-menu-item.cjs +7 -1
- package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
- package/build/components/block-visibility/viewport-toolbar.cjs +5 -0
- package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
- package/build/components/block-visibility/viewport-visibility-info.cjs +5 -1
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
- package/build/components/border-radius-control/utils.cjs +8 -58
- package/build/components/border-radius-control/utils.cjs.map +2 -2
- package/build/components/child-layout-control/index.cjs +0 -4
- package/build/components/child-layout-control/index.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +5 -3
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/dimension-control/index.cjs +30 -20
- package/build/components/dimension-control/index.cjs.map +3 -3
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +9 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
- package/build/components/editor-styles/index.cjs +9 -1
- package/build/components/editor-styles/index.cjs.map +2 -2
- package/build/components/global-styles/background-panel.cjs +66 -25
- package/build/components/global-styles/background-panel.cjs.map +3 -3
- package/build/components/global-styles/border-panel.cjs +153 -55
- package/build/components/global-styles/border-panel.cjs.map +3 -3
- package/build/components/global-styles/color-gradient-dropdown-item.cjs +46 -14
- package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +3 -3
- package/build/components/global-styles/color-panel.cjs +63 -17
- package/build/components/global-styles/color-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +242 -64
- package/build/components/global-styles/dimensions-panel.cjs.map +3 -3
- package/build/components/global-styles/filters-panel.cjs +59 -20
- package/build/components/global-styles/filters-panel.cjs.map +3 -3
- package/build/components/global-styles/hooks.cjs +4 -1
- package/build/components/global-styles/hooks.cjs.map +2 -2
- package/build/components/global-styles/inheritance/index.cjs +142 -0
- package/build/components/global-styles/inheritance/index.cjs.map +7 -0
- package/build/components/global-styles/inherited-value-context.cjs +173 -0
- package/build/components/global-styles/inherited-value-context.cjs.map +7 -0
- package/build/components/global-styles/shadow-panel-components.cjs +38 -20
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/global-styles/state-control-badges.cjs +39 -3
- package/build/components/global-styles/state-control-badges.cjs.map +2 -2
- package/build/components/global-styles/state-control.cjs +1 -1
- package/build/components/global-styles/state-control.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +271 -79
- package/build/components/global-styles/typography-panel.cjs.map +3 -3
- package/build/components/image-size-control/index.cjs +2 -4
- package/build/components/image-size-control/index.cjs.map +2 -2
- package/build/components/inserter/media-tab/hooks.cjs +33 -6
- package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-panel.cjs +78 -16
- package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/styles-tab.cjs +10 -1
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
- package/build/components/keyboard-shortcuts/index.cjs +19 -11
- package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
- package/build/components/line-height-control/index.cjs +1 -2
- package/build/components/line-height-control/index.cjs.map +2 -2
- package/build/components/link-control/index.cjs +3 -1
- package/build/components/link-control/index.cjs.map +2 -2
- package/build/components/list-view/block.cjs +13 -4
- package/build/components/list-view/block.cjs.map +2 -2
- package/build/components/media-placeholder/index.cjs +0 -1
- package/build/components/media-placeholder/index.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +2 -1
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/provider/block-refs-provider.cjs +8 -2
- package/build/components/provider/block-refs-provider.cjs.map +2 -2
- package/build/components/provider/index.cjs +1 -1
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/use-block-sync.cjs +18 -6
- package/build/components/provider/use-block-sync.cjs.map +2 -2
- package/build/components/provider/use-media-upload-settings.cjs +3 -1
- package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
- package/build/components/rich-text/event-listeners/before-input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/delete.cjs +2 -3
- package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/enter.cjs +3 -2
- package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/paste-handler.cjs +2 -1
- package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
- package/build/components/rich-text/index.cjs +76 -17
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/spacing-sizes-control/utils.cjs +6 -19
- package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +8 -2
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/typewriter/index.cjs +129 -136
- package/build/components/typewriter/index.cjs.map +3 -3
- package/build/components/url-input/index.cjs +303 -344
- package/build/components/url-input/index.cjs.map +3 -3
- package/build/components/use-block-commands/index.cjs +21 -17
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/components/use-on-block-drop/index.cjs +1 -1
- package/build/components/use-on-block-drop/index.cjs.map +2 -2
- package/build/components/writing-flow/index.cjs +14 -1
- package/build/components/writing-flow/index.cjs.map +3 -3
- package/build/components/writing-flow/use-arrow-nav.cjs +42 -6
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-click-selection.cjs +29 -3
- package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-clipboard-handler.cjs +4 -1
- package/build/components/writing-flow/use-clipboard-handler.cjs.map +2 -2
- package/build/components/writing-flow/use-drag-selection.cjs +3 -8
- package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs +179 -0
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs.map +7 -0
- package/build/components/writing-flow/use-editable-root.cjs +75 -0
- package/build/components/writing-flow/use-editable-root.cjs.map +7 -0
- package/build/components/writing-flow/use-home-end.cjs +64 -0
- package/build/components/writing-flow/use-home-end.cjs.map +7 -0
- package/build/components/writing-flow/use-input.cjs +15 -5
- package/build/components/writing-flow/use-input.cjs.map +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-select-all.cjs +14 -2
- package/build/components/writing-flow/use-select-all.cjs.map +2 -2
- package/build/components/writing-flow/use-selection-observer.cjs +132 -22
- package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
- package/build/components/writing-flow/utils.cjs +28 -2
- package/build/components/writing-flow/utils.cjs.map +2 -2
- package/build/hooks/background.cjs +14 -10
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-fields/rich-text/index.cjs +2 -3
- package/build/hooks/block-fields/rich-text/index.cjs.map +3 -3
- package/build/hooks/block-style-variation.cjs +4 -45
- package/build/hooks/block-style-variation.cjs.map +3 -3
- package/build/hooks/border.cjs +19 -4
- package/build/hooks/border.cjs.map +2 -2
- package/build/hooks/custom-css.cjs +6 -2
- package/build/hooks/custom-css.cjs.map +2 -2
- package/build/hooks/dimensions.cjs +15 -4
- package/build/hooks/dimensions.cjs.map +2 -2
- package/build/hooks/duotone.cjs +26 -14
- package/build/hooks/duotone.cjs.map +3 -3
- package/build/hooks/elements.cjs +15 -5
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/grid-visualizer.cjs +5 -3
- package/build/hooks/grid-visualizer.cjs.map +2 -2
- package/build/hooks/layout-child.cjs +22 -12
- package/build/hooks/layout-child.cjs.map +3 -3
- package/build/hooks/layout.cjs +28 -13
- package/build/hooks/layout.cjs.map +3 -3
- package/build/hooks/line-height.cjs +1 -2
- package/build/hooks/line-height.cjs.map +2 -2
- package/build/hooks/states.cjs +27 -7
- package/build/hooks/states.cjs.map +3 -3
- package/build/hooks/style.cjs +31 -9
- package/build/hooks/style.cjs.map +3 -3
- package/build/hooks/text-align.cjs +36 -6
- package/build/hooks/text-align.cjs.map +3 -3
- package/build/hooks/typography.cjs +14 -5
- package/build/hooks/typography.cjs.map +2 -2
- package/build/layouts/constrained.cjs +14 -6
- package/build/layouts/constrained.cjs.map +2 -2
- package/build/layouts/flex.cjs +27 -19
- package/build/layouts/flex.cjs.map +2 -2
- package/build/layouts/grid.cjs +0 -2
- package/build/layouts/grid.cjs.map +2 -2
- package/build/private-apis.cjs +9 -5
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs +11 -6
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-selectors.cjs +41 -3
- package/build/store/private-selectors.cjs.map +3 -3
- package/build/store/reducer.cjs +6 -6
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs +23 -0
- package/build/store/selectors.cjs.map +2 -2
- package/build/utils/block-bindings.cjs +29 -0
- package/build/utils/block-bindings.cjs.map +2 -2
- package/build/utils/dom.cjs +14 -0
- package/build/utils/dom.cjs.map +2 -2
- package/build/{components/rich-text/input-event.cjs → utils/native-undo.cjs} +29 -24
- package/build/utils/native-undo.cjs.map +7 -0
- package/build-module/components/alignment-control/ui.mjs +2 -4
- package/build-module/components/alignment-control/ui.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +43 -10
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-alignment-control/ui.mjs +5 -3
- package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-canvas/index.mjs +7 -2
- package/build-module/components/block-canvas/index.mjs.map +2 -2
- package/build-module/components/block-controls/groups.mjs +3 -1
- package/build-module/components/block-controls/groups.mjs.map +2 -2
- package/build-module/components/block-edit/edit.mjs +11 -18
- package/build-module/components/block-edit/edit.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +74 -46
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block-html.mjs +4 -1
- package/build-module/components/block-list/block-html.mjs.map +2 -2
- package/build-module/components/block-list/block.mjs +9 -3
- package/build-module/components/block-list/block.mjs.map +3 -3
- package/build-module/components/block-list/index.mjs +1 -3
- package/build-module/components/block-list/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/index.mjs +7 -2
- package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs +9 -4
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +11 -4
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs +28 -0
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs.map +7 -0
- package/build-module/components/block-parent-selector/index.mjs +2 -2
- package/build-module/components/block-parent-selector/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +43 -24
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs +4 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
- package/build-module/components/block-tools/empty-block-inserter.mjs +2 -7
- package/build-module/components/block-tools/empty-block-inserter.mjs.map +2 -2
- package/build-module/components/block-tools/index.mjs +7 -2
- package/build-module/components/block-tools/index.mjs.map +2 -2
- package/build-module/components/block-vertical-alignment-control/ui.mjs +4 -6
- package/build-module/components/block-vertical-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs +22 -10
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/use-block-visibility.mjs +17 -7
- package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
- package/build-module/components/block-visibility/utils.mjs +18 -3
- package/build-module/components/block-visibility/utils.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-menu-item.mjs +7 -1
- package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-toolbar.mjs +5 -0
- package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs +5 -1
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
- package/build-module/components/border-radius-control/utils.mjs +11 -53
- package/build-module/components/border-radius-control/utils.mjs.map +2 -2
- package/build-module/components/child-layout-control/index.mjs +0 -4
- package/build-module/components/child-layout-control/index.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -3
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/dimension-control/index.mjs +30 -20
- package/build-module/components/dimension-control/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +10 -6
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/editor-styles/index.mjs +9 -1
- package/build-module/components/editor-styles/index.mjs.map +2 -2
- package/build-module/components/global-styles/background-panel.mjs +71 -29
- package/build-module/components/global-styles/background-panel.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +157 -56
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +51 -15
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
- package/build-module/components/global-styles/color-panel.mjs +63 -17
- package/build-module/components/global-styles/color-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +248 -66
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +64 -21
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/hooks.mjs +4 -1
- package/build-module/components/global-styles/hooks.mjs.map +2 -2
- package/build-module/components/global-styles/inheritance/index.mjs +108 -0
- package/build-module/components/global-styles/inheritance/index.mjs.map +7 -0
- package/build-module/components/global-styles/inherited-value-context.mjs +141 -0
- package/build-module/components/global-styles/inherited-value-context.mjs.map +7 -0
- package/build-module/components/global-styles/shadow-panel-components.mjs +38 -20
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/global-styles/state-control-badges.mjs +41 -5
- package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
- package/build-module/components/global-styles/state-control.mjs +1 -1
- package/build-module/components/global-styles/state-control.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +276 -80
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/image-size-control/index.mjs +2 -4
- package/build-module/components/image-size-control/index.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
- package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-panel.mjs +86 -18
- package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +6 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
- package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +1 -2
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/link-control/index.mjs +4 -2
- package/build-module/components/link-control/index.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +13 -4
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/media-placeholder/index.mjs +0 -1
- package/build-module/components/media-placeholder/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +2 -1
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/provider/block-refs-provider.mjs +8 -2
- package/build-module/components/provider/block-refs-provider.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +1 -1
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/use-block-sync.mjs +18 -6
- package/build-module/components/provider/use-block-sync.mjs.map +2 -2
- package/build-module/components/provider/use-media-upload-settings.mjs +3 -1
- package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/delete.mjs +7 -4
- package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/enter.mjs +8 -3
- package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-events.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs +8 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +79 -14
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/utils.mjs +6 -18
- package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +8 -2
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/typewriter/index.mjs +129 -136
- package/build-module/components/typewriter/index.mjs.map +2 -2
- package/build-module/components/url-input/index.mjs +306 -353
- package/build-module/components/url-input/index.mjs.map +2 -2
- package/build-module/components/use-block-commands/index.mjs +21 -17
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/components/use-on-block-drop/index.mjs +2 -2
- package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +14 -1
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +43 -7
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs +29 -3
- package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs +5 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
- package/build-module/components/writing-flow/use-drag-selection.mjs +1 -6
- package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs +154 -0
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs.map +7 -0
- package/build-module/components/writing-flow/use-editable-root.mjs +54 -0
- package/build-module/components/writing-flow/use-editable-root.mjs.map +7 -0
- package/build-module/components/writing-flow/use-home-end.mjs +43 -0
- package/build-module/components/writing-flow/use-home-end.mjs.map +7 -0
- package/build-module/components/writing-flow/use-input.mjs +15 -5
- package/build-module/components/writing-flow/use-input.mjs.map +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-select-all.mjs +19 -3
- package/build-module/components/writing-flow/use-select-all.mjs.map +2 -2
- package/build-module/components/writing-flow/use-selection-observer.mjs +134 -21
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/components/writing-flow/utils.mjs +26 -1
- package/build-module/components/writing-flow/utils.mjs.map +2 -2
- package/build-module/hooks/background.mjs +14 -10
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-fields/rich-text/index.mjs +2 -6
- package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
- package/build-module/hooks/block-style-variation.mjs +8 -44
- package/build-module/hooks/block-style-variation.mjs.map +2 -2
- package/build-module/hooks/border.mjs +19 -4
- package/build-module/hooks/border.mjs.map +2 -2
- package/build-module/hooks/custom-css.mjs +7 -3
- package/build-module/hooks/custom-css.mjs.map +2 -2
- package/build-module/hooks/dimensions.mjs +15 -4
- package/build-module/hooks/dimensions.mjs.map +2 -2
- package/build-module/hooks/duotone.mjs +20 -9
- package/build-module/hooks/duotone.mjs.map +2 -2
- package/build-module/hooks/elements.mjs +15 -5
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/grid-visualizer.mjs +5 -3
- package/build-module/hooks/grid-visualizer.mjs.map +2 -2
- package/build-module/hooks/layout-child.mjs +22 -12
- package/build-module/hooks/layout-child.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +28 -13
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/line-height.mjs +1 -2
- package/build-module/hooks/line-height.mjs.map +2 -2
- package/build-module/hooks/states.mjs +27 -7
- package/build-module/hooks/states.mjs.map +2 -2
- package/build-module/hooks/style.mjs +40 -11
- package/build-module/hooks/style.mjs.map +2 -2
- package/build-module/hooks/text-align.mjs +39 -10
- package/build-module/hooks/text-align.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +14 -5
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/layouts/constrained.mjs +14 -6
- package/build-module/layouts/constrained.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +27 -19
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +0 -2
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/private-apis.mjs +7 -3
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +12 -7
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +42 -3
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +6 -6
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs +23 -0
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/utils/block-bindings.mjs +28 -0
- package/build-module/utils/block-bindings.mjs.map +2 -2
- package/build-module/utils/dom.mjs +13 -0
- package/build-module/utils/dom.mjs.map +2 -2
- package/build-module/utils/native-undo.mjs +29 -0
- package/build-module/utils/native-undo.mjs.map +7 -0
- package/build-style/content-rtl.css +14 -27
- package/build-style/content.css +14 -27
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +191 -61
- package/build-style/style.css +191 -61
- package/build-types/components/block-context/index.d.ts +7 -0
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/block-bindings.d.ts +19 -0
- package/build-types/utils/block-bindings.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts +11 -0
- package/build-types/utils/dom.d.ts.map +1 -1
- package/build-types/utils/get-px-from-css-unit.d.ts +2 -2
- package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -1
- package/build-types/utils/pasting.d.ts +1 -1
- package/build-types/utils/pasting.d.ts.map +1 -1
- package/package.json +43 -44
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +1 -1
- package/src/components/alignment-control/ui.js +2 -4
- package/src/components/background-image-control/index.js +74 -37
- package/src/components/background-image-control/style.scss +13 -4
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-alignment-control/test/index.js +1 -1
- package/src/components/block-alignment-control/ui.js +4 -2
- package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-canvas/index.js +9 -2
- package/src/components/block-card/style.scss +1 -1
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
- package/src/components/block-controls/groups.js +2 -0
- package/src/components/block-edit/edit.js +13 -31
- package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-inspector/index.js +60 -31
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/block.js +6 -0
- package/src/components/block-list/content.scss +1 -11
- package/src/components/block-list/index.js +0 -2
- package/src/components/block-list/use-block-props/index.js +7 -1
- package/src/components/block-list/use-block-props/use-focus-first-element.js +23 -4
- package/src/components/block-list/use-block-props/use-focus-handler.js +35 -9
- package/src/components/block-list/use-block-props/use-register-block-event-handlers.js +45 -0
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-manager/style.scss +1 -1
- package/src/components/block-navigation/style.scss +1 -1
- package/src/components/block-parent-selector/index.js +5 -2
- package/src/components/block-quick-navigation/style.scss +1 -3
- package/src/components/block-styles/style.scss +2 -2
- package/src/components/block-toolbar/index.js +41 -18
- package/src/components/block-toolbar/switch-section-style.js +5 -2
- package/src/components/block-tools/empty-block-inserter.js +3 -7
- package/src/components/block-tools/index.js +7 -0
- package/src/components/block-types-list/style.scss +0 -1
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-vertical-alignment-control/test/index.js +18 -2
- package/src/components/block-vertical-alignment-control/ui.js +3 -5
- package/src/components/block-visibility/modal.js +24 -10
- package/src/components/block-visibility/style.scss +1 -1
- package/src/components/block-visibility/test/use-block-visibility.js +128 -35
- package/src/components/block-visibility/test/utils.js +11 -0
- package/src/components/block-visibility/use-block-visibility.js +33 -11
- package/src/components/block-visibility/utils.js +31 -6
- package/src/components/block-visibility/viewport-menu-item.js +10 -1
- package/src/components/block-visibility/viewport-toolbar.js +6 -0
- package/src/components/block-visibility/viewport-visibility-info.js +5 -1
- package/src/components/border-radius-control/test/utils.js +0 -41
- package/src/components/border-radius-control/utils.js +16 -107
- package/src/components/button-block-appender/content.scss +7 -9
- package/src/components/child-layout-control/index.js +0 -4
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -3
- package/src/components/colors-gradients/control.js +6 -3
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +1 -1
- package/src/components/dimension-control/index.js +13 -1
- package/src/components/dimensions-tool/aspect-ratio-tool.js +13 -6
- package/src/components/editor-styles/index.js +16 -1
- package/src/components/font-family/stories/index.story.jsx +1 -1
- package/src/components/global-styles/background-panel.js +107 -34
- package/src/components/global-styles/border-panel.js +219 -48
- package/src/components/global-styles/color-gradient-dropdown-item.js +93 -28
- package/src/components/global-styles/color-panel.js +92 -11
- package/src/components/global-styles/dimensions-panel.js +422 -71
- package/src/components/global-styles/filters-panel.js +88 -28
- package/src/components/global-styles/hooks.js +8 -1
- package/src/components/global-styles/inheritance/index.js +204 -0
- package/src/components/global-styles/inheritance/style.scss +184 -0
- package/src/components/global-styles/inheritance/test/index.js +281 -0
- package/src/components/global-styles/inherited-value-context.js +271 -0
- package/src/components/global-styles/shadow-panel-components.js +48 -26
- package/src/components/global-styles/state-control-badges.js +45 -6
- package/src/components/global-styles/state-control.js +2 -2
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/global-styles/test/background-panel.js +338 -1
- package/src/components/global-styles/test/border-panel.js +441 -0
- package/src/components/global-styles/test/color-panel.js +182 -2
- package/src/components/global-styles/test/dimensions-panel.js +753 -0
- package/src/components/global-styles/test/filters-panel.js +194 -0
- package/src/components/global-styles/test/inherited-value-context-core.js +98 -0
- package/src/components/global-styles/test/inherited-value-context.js +454 -0
- package/src/components/global-styles/test/state-control-badges.js +65 -0
- package/src/components/global-styles/test/typography-panel-core.js +185 -0
- package/src/components/global-styles/test/typography-panel.js +849 -12
- package/src/components/global-styles/typography-panel.js +449 -101
- package/src/components/image-editor/style.scss +33 -0
- package/src/components/image-size-control/index.js +0 -2
- package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
- package/src/components/inserter/media-tab/hooks.js +55 -7
- package/src/components/inserter/media-tab/media-panel.js +117 -21
- package/src/components/inserter/media-tab/test/hooks.js +63 -0
- package/src/components/inserter/media-tab/test/media-panel.js +127 -0
- package/src/components/inserter/style.scss +19 -16
- package/src/components/inserter-list-item/style.scss +0 -15
- package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
- package/src/components/keyboard-shortcuts/index.js +28 -11
- package/src/components/line-height-control/index.js +1 -2
- package/src/components/link-control/index.js +7 -2
- package/src/components/link-control/style.scss +2 -2
- package/src/components/link-control/test/index.js +6 -6
- package/src/components/link-picker/style.scss +1 -2
- package/src/components/list-view/block.js +13 -4
- package/src/components/list-view/style.scss +4 -5
- package/src/components/media-placeholder/index.js +0 -1
- package/src/components/multi-selection-inspector/style.scss +1 -1
- package/src/components/preset-input-control/index.js +4 -1
- package/src/components/provider/block-refs-provider.js +12 -2
- package/src/components/provider/index.js +2 -2
- package/src/components/provider/use-block-sync.js +18 -6
- package/src/components/provider/use-media-upload-settings.js +2 -0
- package/src/components/responsive-block-control/style.scss +1 -1
- package/src/components/rich-text/event-listeners/before-input-rules.js +8 -5
- package/src/components/rich-text/event-listeners/delete.js +7 -4
- package/src/components/rich-text/event-listeners/enter.js +10 -4
- package/src/components/rich-text/event-listeners/input-events.js +4 -3
- package/src/components/rich-text/event-listeners/input-rules.js +8 -5
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +4 -3
- package/src/components/rich-text/event-listeners/paste-handler.js +15 -3
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +4 -3
- package/src/components/rich-text/event-listeners/shortcuts.js +4 -3
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +4 -3
- package/src/components/rich-text/index.js +116 -26
- package/src/components/skip-to-selected-block/style.scss +1 -1
- package/src/components/spacing-sizes-control/test/utils.js +16 -5
- package/src/components/spacing-sizes-control/utils.js +11 -28
- package/src/components/text-indent-control/index.js +8 -0
- package/src/components/typewriter/index.js +228 -224
- package/src/components/url-input/index.js +363 -431
- package/src/components/url-input/test/index.js +592 -0
- package/src/components/use-block-commands/index.js +27 -17
- package/src/components/use-on-block-drop/index.js +2 -2
- package/src/components/warning/test/__snapshots__/index.js.snap +1 -1
- package/src/components/writing-flow/index.js +17 -1
- package/src/components/writing-flow/use-arrow-nav.js +90 -13
- package/src/components/writing-flow/use-click-selection.js +55 -5
- package/src/components/writing-flow/use-clipboard-handler.js +5 -2
- package/src/components/writing-flow/use-drag-selection.js +1 -14
- package/src/components/writing-flow/use-editable-root-event-handlers.js +266 -0
- package/src/components/writing-flow/use-editable-root.js +112 -0
- package/src/components/writing-flow/use-home-end.js +71 -0
- package/src/components/writing-flow/use-input.js +25 -8
- package/src/components/writing-flow/use-multi-selection.js +2 -3
- package/src/components/writing-flow/use-select-all.js +33 -3
- package/src/components/writing-flow/use-selection-observer.js +218 -42
- package/src/components/writing-flow/utils.js +62 -0
- package/src/hooks/background.js +27 -24
- package/src/hooks/block-fields/link/styles.scss +1 -6
- package/src/hooks/block-fields/media/styles.scss +1 -6
- package/src/hooks/block-fields/rich-text/index.js +6 -9
- package/src/hooks/block-fields/rich-text/styles.scss +1 -1
- package/src/hooks/block-style-variation.js +8 -74
- package/src/hooks/border.js +19 -4
- package/src/hooks/custom-css.js +15 -6
- package/src/hooks/dimensions.js +17 -4
- package/src/hooks/duotone.js +26 -8
- package/src/hooks/elements.js +14 -4
- package/src/hooks/grid-visualizer.js +40 -36
- package/src/hooks/layout-child.js +19 -9
- package/src/hooks/layout.js +48 -31
- package/src/hooks/line-height.js +0 -1
- package/src/hooks/states.js +38 -9
- package/src/hooks/style.js +67 -17
- package/src/hooks/test/inherited-value-wiring.js +411 -0
- package/src/hooks/test/preset-round-trip.js +456 -0
- package/src/hooks/test/style.js +29 -0
- package/src/hooks/test/text-align.js +34 -1
- package/src/hooks/text-align.js +41 -10
- package/src/hooks/typography.js +35 -24
- package/src/layouts/constrained.js +5 -1
- package/src/layouts/flex.js +5 -1
- package/src/layouts/grid.js +0 -2
- package/src/private-apis.js +11 -2
- package/src/store/actions.js +53 -19
- package/src/store/private-selectors.js +82 -6
- package/src/store/reducer.js +9 -9
- package/src/store/selectors.js +56 -8
- package/src/store/test/actions.js +1 -1
- package/src/store/test/private-selectors.js +271 -1
- package/src/style.scss +2 -0
- package/src/utils/block-bindings.ts +50 -0
- package/src/utils/dom.ts +33 -0
- package/src/utils/native-undo.js +56 -0
- package/src/utils/test/block-bindings.js +181 -0
- package/build/components/duotone/utils.cjs +0 -87
- package/build/components/duotone/utils.cjs.map +0 -7
- package/build/components/rich-text/input-event.cjs.map +0 -7
- package/build/components/rich-text/shortcut.cjs +0 -51
- package/build/components/rich-text/shortcut.cjs.map +0 -7
- package/build-module/components/duotone/utils.mjs +0 -59
- package/build-module/components/duotone/utils.mjs.map +0 -7
- package/build-module/components/rich-text/input-event.mjs +0 -25
- package/build-module/components/rich-text/input-event.mjs.map +0 -7
- package/build-module/components/rich-text/shortcut.mjs +0 -26
- package/build-module/components/rich-text/shortcut.mjs.map +0 -7
- package/src/components/duotone/utils.js +0 -90
- package/src/components/rich-text/input-event.js +0 -31
- package/src/components/rich-text/shortcut.js +0 -32
- package/src/hooks/test/get-variation-styles-with-ref-values.js +0 -91
|
@@ -8,9 +8,8 @@ import clsx from 'clsx';
|
|
|
8
8
|
*/
|
|
9
9
|
import {
|
|
10
10
|
__experimentalToolsPanel as ToolsPanel,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
__experimentalZStack as ZStack,
|
|
11
|
+
__experimentalHStack as HStack, // eslint-disable-line @wordpress/use-recommended-components
|
|
12
|
+
__experimentalZStack as ZStack, // eslint-disable-line @wordpress/use-recommended-components
|
|
14
13
|
__experimentalDropdownContentWrapper as DropdownContentWrapper,
|
|
15
14
|
MenuGroup,
|
|
16
15
|
ColorIndicator,
|
|
@@ -31,6 +30,12 @@ import { getValueFromVariable } from '@wordpress/global-styles-engine';
|
|
|
31
30
|
*/
|
|
32
31
|
import { useToolsPanelDropdownMenuProps } from './utils';
|
|
33
32
|
import { setImmutably } from '../../utils/object';
|
|
33
|
+
import {
|
|
34
|
+
getInheritanceProps,
|
|
35
|
+
InheritanceToolsPanelItem,
|
|
36
|
+
InheritanceResetButton,
|
|
37
|
+
isGlobalStylesInheritanceEnabled,
|
|
38
|
+
} from './inheritance';
|
|
34
39
|
|
|
35
40
|
const EMPTY_ARRAY = [];
|
|
36
41
|
function useMultiOriginColorPresets(
|
|
@@ -114,12 +119,18 @@ const LabeledColorIndicator = ( { indicator, label } ) => (
|
|
|
114
119
|
) }
|
|
115
120
|
</Flex>
|
|
116
121
|
</ZStack>
|
|
117
|
-
<FlexItem
|
|
122
|
+
<FlexItem
|
|
123
|
+
className="block-editor-panel-duotone-settings__label"
|
|
124
|
+
title={ label }
|
|
125
|
+
>
|
|
126
|
+
{ label }
|
|
127
|
+
</FlexItem>
|
|
118
128
|
</HStack>
|
|
119
129
|
);
|
|
120
130
|
|
|
121
|
-
const renderToggle = ( duotone,
|
|
131
|
+
const renderToggle = ( duotone, resetConfig ) =>
|
|
122
132
|
function Toggle( { onToggle, isOpen } ) {
|
|
133
|
+
const { hasLocalValue, hasLocalOverride, onReset } = resetConfig;
|
|
123
134
|
const duotoneButtonRef = useRef( undefined );
|
|
124
135
|
|
|
125
136
|
const toggleProps = {
|
|
@@ -132,17 +143,13 @@ const renderToggle = ( duotone, resetDuotone ) =>
|
|
|
132
143
|
ref: duotoneButtonRef,
|
|
133
144
|
};
|
|
134
145
|
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
duotoneButtonRef.current?.focus();
|
|
143
|
-
},
|
|
144
|
-
className: 'block-editor-panel-duotone-settings__reset',
|
|
145
|
-
label: __( 'Reset' ),
|
|
146
|
+
const handleReset = () => {
|
|
147
|
+
if ( isOpen ) {
|
|
148
|
+
onToggle();
|
|
149
|
+
}
|
|
150
|
+
onReset();
|
|
151
|
+
// Return focus to parent button.
|
|
152
|
+
duotoneButtonRef.current?.focus();
|
|
146
153
|
};
|
|
147
154
|
|
|
148
155
|
return (
|
|
@@ -153,13 +160,21 @@ const renderToggle = ( duotone, resetDuotone ) =>
|
|
|
153
160
|
label={ __( 'Duotone' ) }
|
|
154
161
|
/>
|
|
155
162
|
</Button>
|
|
156
|
-
{
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
+
{ hasLocalValue &&
|
|
164
|
+
( hasLocalOverride ? (
|
|
165
|
+
<InheritanceResetButton
|
|
166
|
+
className="block-editor-panel-duotone-settings__reset"
|
|
167
|
+
onResetToInherited={ handleReset }
|
|
168
|
+
/>
|
|
169
|
+
) : (
|
|
170
|
+
<Button
|
|
171
|
+
size="small"
|
|
172
|
+
icon={ resetIcon }
|
|
173
|
+
label={ __( 'Reset' ) }
|
|
174
|
+
className="block-editor-panel-duotone-settings__reset"
|
|
175
|
+
onClick={ handleReset }
|
|
176
|
+
/>
|
|
177
|
+
) ) }
|
|
163
178
|
</>
|
|
164
179
|
);
|
|
165
180
|
};
|
|
@@ -172,9 +187,18 @@ export default function FiltersPanel( {
|
|
|
172
187
|
settings,
|
|
173
188
|
panelId,
|
|
174
189
|
defaultControls = DEFAULT_CONTROLS,
|
|
190
|
+
showInheritanceLabelIndicators = isGlobalStylesInheritanceEnabled(),
|
|
175
191
|
} ) {
|
|
176
192
|
const decodeValue = ( rawValue ) =>
|
|
177
193
|
getValueFromVariable( { settings }, '', rawValue );
|
|
194
|
+
// Always keep the layout className (e.g. `single-column`); only the
|
|
195
|
+
// inheritance treatment is gated on `showInheritanceLabelIndicators`.
|
|
196
|
+
const inheritanceProps = ( isInherited, hasLocalOverride, className ) =>
|
|
197
|
+
getInheritanceProps(
|
|
198
|
+
showInheritanceLabelIndicators && isInherited,
|
|
199
|
+
showInheritanceLabelIndicators && hasLocalOverride,
|
|
200
|
+
className
|
|
201
|
+
);
|
|
178
202
|
|
|
179
203
|
// Duotone
|
|
180
204
|
const hasDuotoneEnabled = useHasDuotoneControl( settings );
|
|
@@ -186,7 +210,11 @@ export default function FiltersPanel( {
|
|
|
186
210
|
presetSetting: 'palette',
|
|
187
211
|
defaultSetting: 'defaultPalette',
|
|
188
212
|
} );
|
|
189
|
-
const
|
|
213
|
+
const localDuotone = decodeValue( value?.filter?.duotone );
|
|
214
|
+
const inheritedDuotone = decodeValue( inheritedValue?.filter?.duotone );
|
|
215
|
+
const duotone = localDuotone ?? inheritedDuotone;
|
|
216
|
+
const isDuotonePlaceholder =
|
|
217
|
+
localDuotone === undefined && inheritedDuotone !== undefined;
|
|
190
218
|
const setDuotone = ( newValue ) => {
|
|
191
219
|
const duotonePreset = duotonePalette.find( ( { colors } ) => {
|
|
192
220
|
return colors === newValue;
|
|
@@ -198,8 +226,26 @@ export default function FiltersPanel( {
|
|
|
198
226
|
setImmutably( value, [ 'filter', 'duotone' ], duotoneValue )
|
|
199
227
|
);
|
|
200
228
|
};
|
|
229
|
+
// Commit the inherited value when the user clicks the active preset
|
|
230
|
+
// while the picker is showing inherited duotone at rest.
|
|
231
|
+
const setDuotoneWithInheritedCommit = ( newValue ) => {
|
|
232
|
+
if (
|
|
233
|
+
newValue === undefined &&
|
|
234
|
+
isDuotonePlaceholder &&
|
|
235
|
+
inheritedDuotone !== undefined
|
|
236
|
+
) {
|
|
237
|
+
setDuotone( inheritedDuotone );
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
setDuotone( newValue );
|
|
241
|
+
};
|
|
201
242
|
const hasDuotone = () => !! value?.filter?.duotone;
|
|
202
243
|
const resetDuotone = () => setDuotone( undefined );
|
|
244
|
+
// Only a local value shadowing an inherited one shows the blue-dot reset.
|
|
245
|
+
const hasDuotoneLocalOverride =
|
|
246
|
+
showInheritanceLabelIndicators &&
|
|
247
|
+
hasDuotone() &&
|
|
248
|
+
inheritedDuotone !== undefined;
|
|
203
249
|
|
|
204
250
|
const resetAllFilter = useCallback( ( previousValue ) => {
|
|
205
251
|
return {
|
|
@@ -219,17 +265,29 @@ export default function FiltersPanel( {
|
|
|
219
265
|
panelId={ panelId }
|
|
220
266
|
>
|
|
221
267
|
{ hasDuotoneEnabled && (
|
|
222
|
-
<
|
|
268
|
+
<InheritanceToolsPanelItem
|
|
269
|
+
{ ...inheritanceProps(
|
|
270
|
+
isDuotonePlaceholder,
|
|
271
|
+
localDuotone !== undefined &&
|
|
272
|
+
inheritedDuotone !== undefined
|
|
273
|
+
) }
|
|
223
274
|
label={ __( 'Duotone' ) }
|
|
224
275
|
hasValue={ hasDuotone }
|
|
225
276
|
onDeselect={ resetDuotone }
|
|
226
277
|
isShownByDefault={ defaultControls.duotone }
|
|
278
|
+
// Toggle renders its own reset dot, so the item must not
|
|
279
|
+
// add a second.
|
|
280
|
+
showLocalOverrideActionsInLabel={ false }
|
|
227
281
|
panelId={ panelId }
|
|
228
282
|
>
|
|
229
283
|
<Dropdown
|
|
230
284
|
popoverProps={ popoverProps }
|
|
231
285
|
className="block-editor-global-styles-filters-panel__dropdown"
|
|
232
|
-
renderToggle={ renderToggle( duotone,
|
|
286
|
+
renderToggle={ renderToggle( duotone, {
|
|
287
|
+
hasLocalValue: hasDuotone(),
|
|
288
|
+
hasLocalOverride: hasDuotoneLocalOverride,
|
|
289
|
+
onReset: resetDuotone,
|
|
290
|
+
} ) }
|
|
233
291
|
renderContent={ () => (
|
|
234
292
|
<DropdownContentWrapper paddingSize="small">
|
|
235
293
|
<MenuGroup label={ __( 'Duotone' ) }>
|
|
@@ -245,13 +303,15 @@ export default function FiltersPanel( {
|
|
|
245
303
|
disableCustomColors
|
|
246
304
|
disableCustomDuotone
|
|
247
305
|
value={ duotone }
|
|
248
|
-
onChange={
|
|
306
|
+
onChange={
|
|
307
|
+
setDuotoneWithInheritedCommit
|
|
308
|
+
}
|
|
249
309
|
/>
|
|
250
310
|
</MenuGroup>
|
|
251
311
|
</DropdownContentWrapper>
|
|
252
312
|
) }
|
|
253
313
|
/>
|
|
254
|
-
</
|
|
314
|
+
</InheritanceToolsPanelItem>
|
|
255
315
|
) }
|
|
256
316
|
</Wrapper>
|
|
257
317
|
);
|
|
@@ -328,7 +328,14 @@ export function useColorGradientSettings( settings ) {
|
|
|
328
328
|
);
|
|
329
329
|
const decodeValue = ( rawValue ) =>
|
|
330
330
|
getValueFromVariable( { settings }, '', rawValue );
|
|
331
|
-
|
|
331
|
+
// When a slug is provided it is used directly: two presets can share the
|
|
332
|
+
// same gradient string, and matching by string alone would collapse them
|
|
333
|
+
// onto whichever entry appears first. Without a slug, fall back to
|
|
334
|
+
// matching the gradient string against the presets.
|
|
335
|
+
const encodeGradientValue = ( gradientValue, slug ) => {
|
|
336
|
+
if ( slug ) {
|
|
337
|
+
return 'var:preset|gradient|' + slug;
|
|
338
|
+
}
|
|
332
339
|
const allGradients = gradients.flatMap(
|
|
333
340
|
( { gradients: originGradients } ) => originGradients
|
|
334
341
|
);
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import {
|
|
10
|
+
Button,
|
|
11
|
+
Icon as WCIcon,
|
|
12
|
+
__experimentalToolsPanelItem as ToolsPanelItem,
|
|
13
|
+
} from '@wordpress/components';
|
|
14
|
+
import { reset as resetIcon } from '@wordpress/icons';
|
|
15
|
+
import { __ } from '@wordpress/i18n';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Whether the inspector surfaces inherited Global Styles values.
|
|
19
|
+
*
|
|
20
|
+
* Behind the `gutenberg-global-styles-inheritance-ui` Gutenberg experiment,
|
|
21
|
+
* so the treatment is off unless someone opts in on the Experiments screen.
|
|
22
|
+
* With it off, the panels show locally-set values alone.
|
|
23
|
+
*
|
|
24
|
+
* Evaluated per call rather than once at module scope, so tests can toggle
|
|
25
|
+
* the experiment and so a later move to a store-backed setting only has to
|
|
26
|
+
* change this one place. Always returns a boolean: callers pass the result
|
|
27
|
+
* down as a prop, and `undefined` would trigger a receiving component's own
|
|
28
|
+
* default parameter.
|
|
29
|
+
*
|
|
30
|
+
* @return {boolean} Whether the inherited-value treatment is enabled.
|
|
31
|
+
*/
|
|
32
|
+
export const isGlobalStylesInheritanceEnabled = () =>
|
|
33
|
+
!! window.__experimentalGlobalStylesInheritanceUI;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Returns props to spread onto a wrapping `<InheritanceToolsPanelItem>`
|
|
37
|
+
* so its descendant label picks up the inherited-from-Global-Styles
|
|
38
|
+
* visual treatment.
|
|
39
|
+
*
|
|
40
|
+
* When `isInherited` is true without a local override, the descendant
|
|
41
|
+
* label text receives the inherited-from-Global-Styles treatment
|
|
42
|
+
* (dotted underline). No dot is shown.
|
|
43
|
+
*
|
|
44
|
+
* When `hasLocalOverride` is true, a small reset dot is rendered as a
|
|
45
|
+
* sibling of the control exposing a "Reset to inherited value" action.
|
|
46
|
+
*
|
|
47
|
+
* The two states are mutually exclusive at the source. If both are passed,
|
|
48
|
+
* only the local-override class is returned.
|
|
49
|
+
*
|
|
50
|
+
* Returned object shape allows direct spread:
|
|
51
|
+
*
|
|
52
|
+
* <InheritanceToolsPanelItem
|
|
53
|
+
* { ...getInheritanceProps( isInherited, hasLocalOverride ) }
|
|
54
|
+
* label={ __( 'Line height' ) }
|
|
55
|
+
* …
|
|
56
|
+
* >
|
|
57
|
+
*
|
|
58
|
+
* @param {boolean} isInherited Control is inheriting at rest.
|
|
59
|
+
* @param {boolean} hasLocalOverride Local override is set AND
|
|
60
|
+
* there is an inherited value
|
|
61
|
+
* being overridden.
|
|
62
|
+
* @param {string|Array|Object} [baseClassName] Optional className(s) to fold
|
|
63
|
+
* into the returned `className`.
|
|
64
|
+
*
|
|
65
|
+
* @return {{ className?: string, isInherited: boolean, hasLocalOverride: boolean }} Props for the wrapping
|
|
66
|
+
* `InheritanceToolsPanelItem`.
|
|
67
|
+
*/
|
|
68
|
+
export function getInheritanceProps(
|
|
69
|
+
isInherited,
|
|
70
|
+
hasLocalOverride,
|
|
71
|
+
baseClassName
|
|
72
|
+
) {
|
|
73
|
+
const inheritedOnly = !! isInherited && ! hasLocalOverride;
|
|
74
|
+
const className = clsx( baseClassName, {
|
|
75
|
+
'is-inherited-from-global-styles': inheritedOnly,
|
|
76
|
+
'has-local-override-from-global-styles': !! hasLocalOverride,
|
|
77
|
+
} );
|
|
78
|
+
return {
|
|
79
|
+
...( className ? { className } : {} ),
|
|
80
|
+
isInherited: inheritedOnly,
|
|
81
|
+
hasLocalOverride: !! hasLocalOverride,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Renders the small always-visible reset button shown next to a control
|
|
87
|
+
* that holds a local override of an inherited Global Styles value. Used by
|
|
88
|
+
* `<InheritanceToolsPanelItem>` and the color/gradient controls.
|
|
89
|
+
*
|
|
90
|
+
* At rest the button shows a blue dot signalling the local override. On
|
|
91
|
+
* hover/focus the dot morphs into the `reset` (dash) icon and the button
|
|
92
|
+
* exposes a "Reset to inherited value" tooltip. Activating it clears the
|
|
93
|
+
* override so the control falls back to its inherited value — the same
|
|
94
|
+
* action the `ToolsPanel` menu performs via `onDeselect`.
|
|
95
|
+
*
|
|
96
|
+
* @param {Object} props
|
|
97
|
+
* @param {Function} props.onResetToInherited Reset handler.
|
|
98
|
+
* @param {string} [props.className] Optional className for the button.
|
|
99
|
+
*
|
|
100
|
+
* @return {Element} The reset button.
|
|
101
|
+
*/
|
|
102
|
+
export function InheritanceResetButton( { onResetToInherited, className } ) {
|
|
103
|
+
return (
|
|
104
|
+
// Intentionally small (14×14) circular control; exempt from the
|
|
105
|
+
// 40px default-size enforcement rule.
|
|
106
|
+
// eslint-disable-next-line @wordpress/components-no-missing-40px-size-prop
|
|
107
|
+
<Button
|
|
108
|
+
__next40pxDefaultSize={ false }
|
|
109
|
+
label={ __( 'Reset to inherited value' ) }
|
|
110
|
+
// The button has children (the dot + reset icon), so the tooltip
|
|
111
|
+
// is not shown automatically; opt in explicitly.
|
|
112
|
+
showTooltip
|
|
113
|
+
className={ clsx(
|
|
114
|
+
'has-local-override-from-global-styles__reset',
|
|
115
|
+
className
|
|
116
|
+
) }
|
|
117
|
+
onClick={ ( event ) => {
|
|
118
|
+
// Prevent the click from reaching any wrapping
|
|
119
|
+
// `<label htmlFor>` association, which would otherwise
|
|
120
|
+
// focus/activate the inner control.
|
|
121
|
+
event.preventDefault();
|
|
122
|
+
event.stopPropagation();
|
|
123
|
+
onResetToInherited?.();
|
|
124
|
+
} }
|
|
125
|
+
>
|
|
126
|
+
<span
|
|
127
|
+
aria-hidden="true"
|
|
128
|
+
className="has-local-override-from-global-styles__dot"
|
|
129
|
+
/>
|
|
130
|
+
<WCIcon
|
|
131
|
+
className="has-local-override-from-global-styles__reset-icon"
|
|
132
|
+
icon={ resetIcon }
|
|
133
|
+
/>
|
|
134
|
+
</Button>
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* A `ToolsPanelItem` that reflects whether its control's value is inherited
|
|
140
|
+
* from Global Styles or locally overridden. The two states are mutually
|
|
141
|
+
* exclusive.
|
|
142
|
+
*
|
|
143
|
+
* - Inherited: the control label receives the inherited-from-Global-Styles
|
|
144
|
+
* treatment (dotted underline) via the `is-inherited-from-global-styles`
|
|
145
|
+
* class applied through `getInheritanceProps`. No dot is shown.
|
|
146
|
+
* - Local override: a reset dot is rendered as a plain sibling of the control
|
|
147
|
+
* at the item's inline-end — never nested in the label — exposing the same
|
|
148
|
+
* one-click reset the `ToolsPanel` options menu performs via `onDeselect`.
|
|
149
|
+
*
|
|
150
|
+
* Controls that render their own reset control next to a custom toggle (color,
|
|
151
|
+
* background image) pass `showLocalOverrideActionsInLabel={ false }` so the
|
|
152
|
+
* item does not render a second reset dot.
|
|
153
|
+
*
|
|
154
|
+
* @param {Object} props
|
|
155
|
+
* @param {?string} props.className Item className.
|
|
156
|
+
* @param {boolean} props.isInherited Value is inherited at rest. Accepted so the `getInheritanceProps` spread does not leak onto the underlying `ToolsPanelItem`; the inherited treatment is applied via `className`.
|
|
157
|
+
* @param {boolean} props.hasLocalOverride Local override is set.
|
|
158
|
+
* @param {import('react').ReactNode} props.label Control label.
|
|
159
|
+
* @param {?Function} props.onDeselect Reset handler.
|
|
160
|
+
* @param {boolean} [props.showLocalOverrideActionsInLabel] Render the reset dot here (default true).
|
|
161
|
+
* @param {boolean} [props.hasInlineEndToggle] The control renders a 24x24 toggle (linked/unlink, units switch) at its inline-end; offset the reset dot to sit just to its inline-start (default false).
|
|
162
|
+
* @param {import('react').ReactNode} props.children The control.
|
|
163
|
+
*
|
|
164
|
+
* @return {Element} The panel item.
|
|
165
|
+
*/
|
|
166
|
+
export function InheritanceToolsPanelItem( {
|
|
167
|
+
className,
|
|
168
|
+
// Destructured (and unused) so the `getInheritanceProps` spread does not
|
|
169
|
+
// leak `isInherited` onto the underlying `ToolsPanelItem`. The inherited
|
|
170
|
+
// treatment is applied purely via `className`
|
|
171
|
+
// (`is-inherited-from-global-styles`).
|
|
172
|
+
isInherited,
|
|
173
|
+
hasLocalOverride,
|
|
174
|
+
label,
|
|
175
|
+
onDeselect,
|
|
176
|
+
showLocalOverrideActionsInLabel = true,
|
|
177
|
+
hasInlineEndToggle = false,
|
|
178
|
+
children,
|
|
179
|
+
...rest
|
|
180
|
+
} ) {
|
|
181
|
+
const showResetAffordance =
|
|
182
|
+
hasLocalOverride && showLocalOverrideActionsInLabel;
|
|
183
|
+
|
|
184
|
+
return (
|
|
185
|
+
<ToolsPanelItem
|
|
186
|
+
className={ className }
|
|
187
|
+
label={ label }
|
|
188
|
+
onDeselect={ onDeselect }
|
|
189
|
+
{ ...rest }
|
|
190
|
+
>
|
|
191
|
+
{ children }
|
|
192
|
+
{ showResetAffordance && (
|
|
193
|
+
<div
|
|
194
|
+
className={ clsx( 'global-styles-inheritance-affordance', {
|
|
195
|
+
'global-styles-inheritance-affordance--offset-toggle':
|
|
196
|
+
hasInlineEndToggle,
|
|
197
|
+
} ) }
|
|
198
|
+
>
|
|
199
|
+
<InheritanceResetButton onResetToInherited={ onDeselect } />
|
|
200
|
+
</div>
|
|
201
|
+
) }
|
|
202
|
+
</ToolsPanelItem>
|
|
203
|
+
);
|
|
204
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
@use "@wordpress/base-styles/variables" as *;
|
|
2
|
+
|
|
3
|
+
// Inherited Global Styles values — visual treatment for inspector control
|
|
4
|
+
// labels.
|
|
5
|
+
//
|
|
6
|
+
// `.is-inherited-from-global-styles` marks controls displaying inherited
|
|
7
|
+
// values: the label gets a dotted underline.
|
|
8
|
+
// `.has-local-override-from-global-styles` marks controls that locally override
|
|
9
|
+
// inherited values: a blue reset dot is rendered as a sibling at the item's
|
|
10
|
+
// inline-end. The states are mutually exclusive.
|
|
11
|
+
.is-inherited-from-global-styles {
|
|
12
|
+
// `.components-base-control__label` covers most controls (ToggleGroup,
|
|
13
|
+
// selects, the visible `<span>` label some controls render). Controls
|
|
14
|
+
// built on a bare `UnitControl`/`NumberControl` (Line height, Letter
|
|
15
|
+
// spacing, Columns, and unit-based dimension inputs) instead expose their
|
|
16
|
+
// visible label as `.components-input-control__label`, so it must be
|
|
17
|
+
// targeted too or those controls silently miss the inherited treatment.
|
|
18
|
+
.components-base-control__label,
|
|
19
|
+
.components-input-control__label {
|
|
20
|
+
text-decoration-line: underline;
|
|
21
|
+
text-decoration-style: dotted;
|
|
22
|
+
text-decoration-thickness: 1px;
|
|
23
|
+
text-underline-offset: 0.2em;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// These labels sit in truncated flex containers where an underline is
|
|
27
|
+
// clipped by `overflow: hidden`; a dotted bottom border stays visible.
|
|
28
|
+
.block-editor-panel-color-gradient-settings__color-name,
|
|
29
|
+
.block-editor-global-styles-background-panel__inspector-media-replace-title,
|
|
30
|
+
.block-editor-panel-duotone-settings__label {
|
|
31
|
+
border-bottom: 1px dotted currentColor;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Local-override reset dot — a sibling of the control positioned at the item's
|
|
36
|
+
// inline-end.
|
|
37
|
+
.has-local-override-from-global-styles {
|
|
38
|
+
position: relative;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.global-styles-inheritance-affordance {
|
|
42
|
+
position: absolute;
|
|
43
|
+
inset-block-start: 0;
|
|
44
|
+
inset-inline-end: 0;
|
|
45
|
+
z-index: 1;
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
pointer-events: none;
|
|
50
|
+
|
|
51
|
+
// Match the label line height so the shorter (14px) reset dot centers on
|
|
52
|
+
// the 16px label rather than pinning to its top.
|
|
53
|
+
height: $grid-unit-20;
|
|
54
|
+
|
|
55
|
+
// Controls that render a 24px toggle at the item's inline-end (linked/
|
|
56
|
+
// unlink, units switch): shift the dot one toggle width plus an 8px gap
|
|
57
|
+
// toward the inline-start so it sits just to the left of that toggle and
|
|
58
|
+
// the two never overlap.
|
|
59
|
+
&--offset-toggle {
|
|
60
|
+
inset-inline-end: calc(24px + 8px);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.has-local-override-from-global-styles__reset {
|
|
64
|
+
pointer-events: auto;
|
|
65
|
+
// The affordance wrapper handles placement; drop the inline margin the
|
|
66
|
+
// shared rule adds for the in-label (color/background) context.
|
|
67
|
+
margin-inline-start: 0 !important;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Local-override reset button. At rest it shows the blue dot signalling a local
|
|
72
|
+
// override; on hover/focus the dot is swapped for the `reset` (dash) icon and a
|
|
73
|
+
// "Reset to inherited value" tooltip.
|
|
74
|
+
.has-local-override-from-global-styles__reset {
|
|
75
|
+
display: inline-flex !important;
|
|
76
|
+
align-items: center;
|
|
77
|
+
justify-content: center;
|
|
78
|
+
vertical-align: middle;
|
|
79
|
+
position: relative;
|
|
80
|
+
margin-inline-start: 6px;
|
|
81
|
+
|
|
82
|
+
// Override the default IconButton chrome so the trigger appears as a
|
|
83
|
+
// tight inline circle that never shifts the sibling label text.
|
|
84
|
+
min-width: 14px !important;
|
|
85
|
+
width: 14px !important;
|
|
86
|
+
height: 14px !important;
|
|
87
|
+
padding: 0 !important;
|
|
88
|
+
border-radius: 50% !important;
|
|
89
|
+
background: transparent !important;
|
|
90
|
+
box-shadow: none !important;
|
|
91
|
+
overflow: hidden;
|
|
92
|
+
|
|
93
|
+
// `<Button>` does not preserve text-transform overrides from its parent
|
|
94
|
+
// label. Belt-and-braces: ensure the trigger never inherits an uppercase
|
|
95
|
+
// transform from a label that happens to use one.
|
|
96
|
+
text-transform: none;
|
|
97
|
+
letter-spacing: normal;
|
|
98
|
+
|
|
99
|
+
// Some `<label>` rules style descendant text/buttons (legacy
|
|
100
|
+
// pre-existing CSS). Reset to the design-system pointer token.
|
|
101
|
+
cursor: var(--wpds-cursor-control);
|
|
102
|
+
|
|
103
|
+
&:hover,
|
|
104
|
+
&:focus {
|
|
105
|
+
background: transparent !important;
|
|
106
|
+
|
|
107
|
+
.has-local-override-from-global-styles__dot {
|
|
108
|
+
display: none;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.has-local-override-from-global-styles__reset-icon {
|
|
112
|
+
display: block;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
&:focus-visible {
|
|
117
|
+
// Inset focus ring so it doesn't push other text around.
|
|
118
|
+
outline: 1.5px solid var(--wp-admin-theme-color, #007cba);
|
|
119
|
+
outline-offset: 1px;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Color/gradient control context: the button is positioned by
|
|
123
|
+
// `block-editor-panel-color-gradient-settings__reset` (absolute,
|
|
124
|
+
// hover-revealed) as a sibling of the toggle. The shared rule above sets
|
|
125
|
+
// `position: relative`; re-assert `position: absolute` here (this compound
|
|
126
|
+
// selector wins on specificity) to sit in the reset slot.
|
|
127
|
+
&.block-editor-panel-color-gradient-settings__reset {
|
|
128
|
+
position: absolute;
|
|
129
|
+
justify-content: center;
|
|
130
|
+
top: 50%;
|
|
131
|
+
transform: translateY(-50%);
|
|
132
|
+
margin-block: 0;
|
|
133
|
+
margin-inline-start: 0;
|
|
134
|
+
opacity: 1;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Shadow control context: the blue-dot override reset reuses the shadow
|
|
138
|
+
// remove-button slot, which is absolutely positioned and hover-revealed
|
|
139
|
+
// (`opacity: 0`). The override dot must stay visible, so re-assert
|
|
140
|
+
// placement and force `opacity: 1` (this compound selector wins on
|
|
141
|
+
// specificity).
|
|
142
|
+
&.block-editor-global-styles__shadow-editor__remove-button {
|
|
143
|
+
position: absolute;
|
|
144
|
+
justify-content: center;
|
|
145
|
+
inset-inline-end: 8px;
|
|
146
|
+
top: 50%;
|
|
147
|
+
transform: translateY(-50%);
|
|
148
|
+
margin-block: 0;
|
|
149
|
+
margin-inline-start: 0;
|
|
150
|
+
opacity: 1;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Reuses the hover-revealed remove-button slot; keep the override dot
|
|
154
|
+
// placed and always visible.
|
|
155
|
+
&.block-editor-panel-duotone-settings__reset {
|
|
156
|
+
position: absolute;
|
|
157
|
+
justify-content: center;
|
|
158
|
+
inset-inline-end: 8px;
|
|
159
|
+
top: 50%;
|
|
160
|
+
transform: translateY(-50%);
|
|
161
|
+
margin-block: 0;
|
|
162
|
+
margin-inline-start: 0;
|
|
163
|
+
opacity: 1;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.has-local-override-from-global-styles__dot {
|
|
168
|
+
display: block;
|
|
169
|
+
width: 8px;
|
|
170
|
+
height: 8px;
|
|
171
|
+
background-color: var(--wp-admin-theme-color, #007cba);
|
|
172
|
+
border-radius: 50%;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// The dash icon revealed on hover/focus, centered over the dot's slot and
|
|
176
|
+
// clipped to the circular button bounds so the box size stays stable.
|
|
177
|
+
.has-local-override-from-global-styles__reset-icon {
|
|
178
|
+
display: none;
|
|
179
|
+
position: absolute;
|
|
180
|
+
top: 50%;
|
|
181
|
+
left: 50%;
|
|
182
|
+
transform: translate(-50%, -50%);
|
|
183
|
+
color: var(--wp-admin-theme-color, #007cba);
|
|
184
|
+
}
|