@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
|
@@ -7,7 +7,6 @@ import clsx from 'clsx';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import {
|
|
10
|
-
__experimentalToolsPanelItem as ToolsPanelItem,
|
|
11
10
|
__experimentalHStack as HStack,
|
|
12
11
|
__experimentalZStack as ZStack,
|
|
13
12
|
__experimentalDropdownContentWrapper as DropdownContentWrapper,
|
|
@@ -27,6 +26,12 @@ import { reset as resetIcon, caution as cautionIcon } from '@wordpress/icons';
|
|
|
27
26
|
*/
|
|
28
27
|
import ColorGradientControl from '../colors-gradients/control';
|
|
29
28
|
import { unlock } from '../../lock-unlock';
|
|
29
|
+
import {
|
|
30
|
+
getInheritanceProps,
|
|
31
|
+
InheritanceResetButton,
|
|
32
|
+
InheritanceToolsPanelItem,
|
|
33
|
+
isGlobalStylesInheritanceEnabled,
|
|
34
|
+
} from './inheritance';
|
|
30
35
|
|
|
31
36
|
const { Tabs } = unlock( componentsPrivateApis );
|
|
32
37
|
|
|
@@ -48,8 +53,11 @@ function DropdownContent( {
|
|
|
48
53
|
contrastWarning,
|
|
49
54
|
} ) {
|
|
50
55
|
const { key: firstTabKey, ...firstTab } = tabs[ 0 ] ?? {};
|
|
51
|
-
const defaultTabId =
|
|
52
|
-
( tab ) => tab.userValue !== undefined
|
|
56
|
+
const defaultTabId = (
|
|
57
|
+
tabs.find( ( tab ) => tab.userValue !== undefined ) ??
|
|
58
|
+
tabs.find(
|
|
59
|
+
( tab ) => tab.isPlaceholder || tab.inheritedValue !== undefined
|
|
60
|
+
)
|
|
53
61
|
)?.key;
|
|
54
62
|
return (
|
|
55
63
|
<DropdownContentWrapper paddingSize="none">
|
|
@@ -125,23 +133,55 @@ function ColorGradientTab( {
|
|
|
125
133
|
isGradient,
|
|
126
134
|
inheritedValue,
|
|
127
135
|
inheritedSlug,
|
|
136
|
+
userSlug,
|
|
128
137
|
userValue,
|
|
129
138
|
setValue,
|
|
139
|
+
isPlaceholder,
|
|
130
140
|
colorGradientControlSettings,
|
|
131
141
|
contrastWarning,
|
|
132
142
|
} ) {
|
|
143
|
+
// Display value: prefer the user's local value when set; otherwise fall
|
|
144
|
+
// back to the inherited value so the at-rest preselection is visible
|
|
145
|
+
// inside the picker.
|
|
146
|
+
const displayed = userValue ?? inheritedValue;
|
|
147
|
+
// Slug of the displayed value: the block's own when it has one, otherwise
|
|
148
|
+
// the inherited one. Slug matching keeps two same-hex presets apart; a
|
|
149
|
+
// slug-less (custom) value falls back to hex matching.
|
|
150
|
+
const displayedSlug = userValue !== undefined ? userSlug : inheritedSlug;
|
|
151
|
+
// Display-without-commit interceptor. `ColorPalette` and `GradientPicker`
|
|
152
|
+
// fire `onChange( undefined )` when the user clicks the currently-selected
|
|
153
|
+
// option. At rest (placeholder mode), that click is the user's "accept
|
|
154
|
+
// inherited" gesture: the displayed value comes from `inheritedValue`, so
|
|
155
|
+
// re-route the `undefined` payload to a commit of the inherited value
|
|
156
|
+
// instead of the default "clear local" behaviour. Once a local value is
|
|
157
|
+
// set, the same click correctly clears local back to at rest.
|
|
158
|
+
const onChange = ( newValue, newSlug ) => {
|
|
159
|
+
if ( isPlaceholder && newValue === undefined ) {
|
|
160
|
+
setValue( inheritedValue, inheritedSlug );
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
setValue( newValue, newSlug );
|
|
164
|
+
};
|
|
133
165
|
return (
|
|
134
166
|
<ColorGradientControl
|
|
135
167
|
{ ...colorGradientControlSettings }
|
|
136
168
|
showTitle={ false }
|
|
137
169
|
enableAlpha
|
|
138
170
|
__experimentalIsRenderedInSidebar
|
|
139
|
-
colorValue={ isGradient ? undefined :
|
|
140
|
-
colorSlug={ isGradient ? undefined :
|
|
141
|
-
gradientValue={ isGradient ?
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
171
|
+
colorValue={ isGradient ? undefined : displayed }
|
|
172
|
+
colorSlug={ isGradient ? undefined : displayedSlug }
|
|
173
|
+
gradientValue={ isGradient ? displayed : undefined }
|
|
174
|
+
gradientSlug={ isGradient ? displayedSlug : undefined }
|
|
175
|
+
onColorChange={ isGradient ? undefined : onChange }
|
|
176
|
+
onGradientChange={ isGradient ? onChange : undefined }
|
|
177
|
+
/*
|
|
178
|
+
* The control is clearable whenever a local value is set, so the
|
|
179
|
+
* user can always reset their own override back to the inherited
|
|
180
|
+
* (placeholder) value. In placeholder mode (no local value) there
|
|
181
|
+
* is nothing local to clear; clicking the active swatch accepts the
|
|
182
|
+
* inherited value via the onChange interceptor above instead.
|
|
183
|
+
*/
|
|
184
|
+
clearable={ userValue !== undefined }
|
|
145
185
|
headingLevel={ 3 }
|
|
146
186
|
noticeProps={
|
|
147
187
|
! isGradient && contrastWarning
|
|
@@ -172,11 +212,24 @@ export default function ColorGradientDropdownItem( {
|
|
|
172
212
|
panelId,
|
|
173
213
|
contrastWarning,
|
|
174
214
|
className = 'block-editor-tools-panel-color-gradient-settings__item',
|
|
215
|
+
isPlaceholder = false,
|
|
216
|
+
hasInheritedValue = false,
|
|
217
|
+
showInheritanceLabelIndicators = isGlobalStylesInheritanceEnabled(),
|
|
175
218
|
} ) {
|
|
176
219
|
const colorGradientDropdownButtonRef = useRef( undefined );
|
|
220
|
+
const itemClassName = clsx( 'block-editor-color-gradient-item', className );
|
|
221
|
+
// A local override exists when the user has set a value that shadows an
|
|
222
|
+
// inherited one — only then do we offer the reset-to-inherited / push
|
|
223
|
+
// actions and the override label indicator.
|
|
224
|
+
const hasLocalOverride =
|
|
225
|
+
showInheritanceLabelIndicators && hasValue() && hasInheritedValue;
|
|
226
|
+
const inheritanceProps = showInheritanceLabelIndicators
|
|
227
|
+
? getInheritanceProps( isPlaceholder, hasLocalOverride, itemClassName )
|
|
228
|
+
: { className: itemClassName };
|
|
177
229
|
return (
|
|
178
|
-
<
|
|
179
|
-
|
|
230
|
+
<InheritanceToolsPanelItem
|
|
231
|
+
{ ...inheritanceProps }
|
|
232
|
+
showLocalOverrideActionsInLabel={ false }
|
|
180
233
|
hasValue={ hasValue }
|
|
181
234
|
label={ label }
|
|
182
235
|
onDeselect={ resetValue }
|
|
@@ -208,22 +261,34 @@ export default function ColorGradientDropdownItem( {
|
|
|
208
261
|
label={ label }
|
|
209
262
|
/>
|
|
210
263
|
</Button>
|
|
211
|
-
{ hasValue() &&
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
264
|
+
{ hasValue() &&
|
|
265
|
+
( hasLocalOverride ? (
|
|
266
|
+
<InheritanceResetButton
|
|
267
|
+
className="block-editor-panel-color-gradient-settings__reset"
|
|
268
|
+
onResetToInherited={ () => {
|
|
269
|
+
resetValue();
|
|
270
|
+
if ( isOpen ) {
|
|
271
|
+
onToggle();
|
|
272
|
+
}
|
|
273
|
+
colorGradientDropdownButtonRef.current?.focus();
|
|
274
|
+
} }
|
|
275
|
+
/>
|
|
276
|
+
) : (
|
|
277
|
+
<Button
|
|
278
|
+
__next40pxDefaultSize
|
|
279
|
+
label={ __( 'Reset' ) }
|
|
280
|
+
className="block-editor-panel-color-gradient-settings__reset"
|
|
281
|
+
size="small"
|
|
282
|
+
icon={ resetIcon }
|
|
283
|
+
onClick={ () => {
|
|
284
|
+
resetValue();
|
|
285
|
+
if ( isOpen ) {
|
|
286
|
+
onToggle();
|
|
287
|
+
}
|
|
288
|
+
colorGradientDropdownButtonRef.current?.focus();
|
|
289
|
+
} }
|
|
290
|
+
/>
|
|
291
|
+
) ) }
|
|
227
292
|
{ contrastWarning && (
|
|
228
293
|
// An icon-only warning that stays visible while a
|
|
229
294
|
// contrast warning is in effect. It is not a menu;
|
|
@@ -253,6 +318,6 @@ export default function ColorGradientDropdownItem( {
|
|
|
253
318
|
/>
|
|
254
319
|
) }
|
|
255
320
|
/>
|
|
256
|
-
</
|
|
321
|
+
</InheritanceToolsPanelItem>
|
|
257
322
|
);
|
|
258
323
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
|
|
5
5
|
import { useCallback, useMemo } from '@wordpress/element';
|
|
6
6
|
import { __ } from '@wordpress/i18n';
|
|
7
|
+
import { getCSSValueFromRawStyle } from '@wordpress/style-engine';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Internal dependencies
|
|
@@ -20,6 +21,7 @@ import {
|
|
|
20
21
|
extractPresetSlug,
|
|
21
22
|
encodeColorValueWithPalette,
|
|
22
23
|
} from '../../utils/color-values';
|
|
24
|
+
import { isGlobalStylesInheritanceEnabled } from './inheritance';
|
|
23
25
|
|
|
24
26
|
// Despite the "ColorPanel" name, this gates only the element-level color
|
|
25
27
|
// controls (link, heading, button, caption, h1–h6) — surfaced as the
|
|
@@ -147,6 +149,7 @@ export default function ColorPanel( {
|
|
|
147
149
|
label,
|
|
148
150
|
children,
|
|
149
151
|
contrastWarning,
|
|
152
|
+
showInheritanceLabelIndicators = isGlobalStylesInheritanceEnabled(),
|
|
150
153
|
} ) {
|
|
151
154
|
const {
|
|
152
155
|
colors,
|
|
@@ -160,9 +163,15 @@ export default function ColorPanel( {
|
|
|
160
163
|
encodeGradientValue,
|
|
161
164
|
} = useColorGradientSettings( settings );
|
|
162
165
|
|
|
166
|
+
// When an inherited preset isn't in the panel's palette, `decodeValue`
|
|
167
|
+
// returns the raw `var:preset|…` token rather than a paintable colour.
|
|
168
|
+
// Fall back to its CSS custom property so the swatch still renders.
|
|
169
|
+
const decodeInheritedColor = ( rawValue ) =>
|
|
170
|
+
getCSSValueFromRawStyle( decodeValue( rawValue ) );
|
|
171
|
+
|
|
163
172
|
// Links
|
|
164
173
|
const showLinkPanel = useHasLinkPanel( settings );
|
|
165
|
-
const linkColor =
|
|
174
|
+
const linkColor = decodeInheritedColor(
|
|
166
175
|
inheritedValue?.elements?.link?.color?.text
|
|
167
176
|
);
|
|
168
177
|
const userLinkColor = decodeValue( value?.elements?.link?.color?.text );
|
|
@@ -175,7 +184,7 @@ export default function ColorPanel( {
|
|
|
175
184
|
)
|
|
176
185
|
);
|
|
177
186
|
};
|
|
178
|
-
const hoverLinkColor =
|
|
187
|
+
const hoverLinkColor = decodeInheritedColor(
|
|
179
188
|
inheritedValue?.elements?.link?.[ ':hover' ]?.color?.text
|
|
180
189
|
);
|
|
181
190
|
const userHoverLinkColor = decodeValue(
|
|
@@ -296,7 +305,16 @@ export default function ColorPanel( {
|
|
|
296
305
|
hasValue: hasLink,
|
|
297
306
|
resetValue: resetLink,
|
|
298
307
|
isShownByDefault: defaultControls.link,
|
|
299
|
-
indicators: [
|
|
308
|
+
indicators: [
|
|
309
|
+
userLinkColor ?? linkColor,
|
|
310
|
+
userHoverLinkColor ?? hoverLinkColor,
|
|
311
|
+
],
|
|
312
|
+
isPlaceholder:
|
|
313
|
+
userLinkColor === undefined &&
|
|
314
|
+
userHoverLinkColor === undefined &&
|
|
315
|
+
( linkColor !== undefined || hoverLinkColor !== undefined ),
|
|
316
|
+
hasInheritedValue:
|
|
317
|
+
linkColor !== undefined || hoverLinkColor !== undefined,
|
|
300
318
|
contrastWarning,
|
|
301
319
|
tabs: [
|
|
302
320
|
{
|
|
@@ -307,8 +325,14 @@ export default function ColorPanel( {
|
|
|
307
325
|
inheritedValue?.elements?.link?.color?.text,
|
|
308
326
|
'color'
|
|
309
327
|
),
|
|
328
|
+
userSlug: extractPresetSlug(
|
|
329
|
+
value?.elements?.link?.color?.text,
|
|
330
|
+
'color'
|
|
331
|
+
),
|
|
310
332
|
setValue: setLinkColor,
|
|
311
333
|
userValue: userLinkColor,
|
|
334
|
+
isPlaceholder:
|
|
335
|
+
userLinkColor === undefined && linkColor !== undefined,
|
|
312
336
|
},
|
|
313
337
|
{
|
|
314
338
|
key: 'hover',
|
|
@@ -319,8 +343,15 @@ export default function ColorPanel( {
|
|
|
319
343
|
?.text,
|
|
320
344
|
'color'
|
|
321
345
|
),
|
|
346
|
+
userSlug: extractPresetSlug(
|
|
347
|
+
value?.elements?.link?.[ ':hover' ]?.color?.text,
|
|
348
|
+
'color'
|
|
349
|
+
),
|
|
322
350
|
setValue: setHoverLinkColor,
|
|
323
351
|
userValue: userHoverLinkColor,
|
|
352
|
+
isPlaceholder:
|
|
353
|
+
userHoverLinkColor === undefined &&
|
|
354
|
+
hoverLinkColor !== undefined,
|
|
324
355
|
},
|
|
325
356
|
],
|
|
326
357
|
},
|
|
@@ -331,13 +362,13 @@ export default function ColorPanel( {
|
|
|
331
362
|
return;
|
|
332
363
|
}
|
|
333
364
|
|
|
334
|
-
const elementBackgroundColor =
|
|
365
|
+
const elementBackgroundColor = decodeInheritedColor(
|
|
335
366
|
inheritedValue?.elements?.[ name ]?.color?.background
|
|
336
367
|
);
|
|
337
|
-
const elementGradient =
|
|
368
|
+
const elementGradient = decodeInheritedColor(
|
|
338
369
|
inheritedValue?.elements?.[ name ]?.color?.gradient
|
|
339
370
|
);
|
|
340
|
-
const elementTextColor =
|
|
371
|
+
const elementTextColor = decodeInheritedColor(
|
|
341
372
|
inheritedValue?.elements?.[ name ]?.color?.text
|
|
342
373
|
);
|
|
343
374
|
const elementBackgroundUserColor = decodeValue(
|
|
@@ -392,11 +423,11 @@ export default function ColorPanel( {
|
|
|
392
423
|
newValue.elements[ name ].color.gradient = undefined;
|
|
393
424
|
onChange( newValue );
|
|
394
425
|
};
|
|
395
|
-
const setElementGradient = ( newGradient ) => {
|
|
426
|
+
const setElementGradient = ( newGradient, newSlug ) => {
|
|
396
427
|
const newValue = setImmutably(
|
|
397
428
|
value,
|
|
398
429
|
[ 'elements', name, 'color', 'gradient' ],
|
|
399
|
-
encodeGradientValue( newGradient )
|
|
430
|
+
encodeGradientValue( newGradient, newSlug )
|
|
400
431
|
);
|
|
401
432
|
newValue.elements[ name ].color.background = undefined;
|
|
402
433
|
onChange( newValue );
|
|
@@ -405,6 +436,29 @@ export default function ColorPanel( {
|
|
|
405
436
|
// as there isn't yet a way to set padding for the element.
|
|
406
437
|
const supportsBackground = name !== 'caption';
|
|
407
438
|
|
|
439
|
+
// Per-tab placeholder flags. The item-level placeholder is active when
|
|
440
|
+
// there is no local color on any axis and at least one inherited color.
|
|
441
|
+
const isElementTextPlaceholder =
|
|
442
|
+
elementTextUserColor === undefined &&
|
|
443
|
+
elementTextColor !== undefined;
|
|
444
|
+
const isElementBackgroundPlaceholder =
|
|
445
|
+
elementBackgroundUserColor === undefined &&
|
|
446
|
+
elementBackgroundColor !== undefined;
|
|
447
|
+
const isElementGradientPlaceholder =
|
|
448
|
+
elementGradientUserColor === undefined &&
|
|
449
|
+
elementGradient !== undefined;
|
|
450
|
+
const isElementPlaceholder =
|
|
451
|
+
elementTextUserColor === undefined &&
|
|
452
|
+
elementBackgroundUserColor === undefined &&
|
|
453
|
+
elementGradientUserColor === undefined &&
|
|
454
|
+
( elementTextColor !== undefined ||
|
|
455
|
+
elementBackgroundColor !== undefined ||
|
|
456
|
+
elementGradient !== undefined );
|
|
457
|
+
const hasElementInheritedValue =
|
|
458
|
+
elementTextColor !== undefined ||
|
|
459
|
+
elementBackgroundColor !== undefined ||
|
|
460
|
+
elementGradient !== undefined;
|
|
461
|
+
|
|
408
462
|
items.push( {
|
|
409
463
|
key: name,
|
|
410
464
|
label: elementLabel,
|
|
@@ -413,10 +467,15 @@ export default function ColorPanel( {
|
|
|
413
467
|
isShownByDefault: defaultControls[ name ],
|
|
414
468
|
indicators: supportsBackground
|
|
415
469
|
? [
|
|
416
|
-
elementTextColor,
|
|
417
|
-
|
|
470
|
+
elementTextUserColor ?? elementTextColor,
|
|
471
|
+
elementGradientUserColor ??
|
|
472
|
+
elementGradient ??
|
|
473
|
+
elementBackgroundUserColor ??
|
|
474
|
+
elementBackgroundColor,
|
|
418
475
|
]
|
|
419
|
-
: [ elementTextColor ],
|
|
476
|
+
: [ elementTextUserColor ?? elementTextColor ],
|
|
477
|
+
isPlaceholder: isElementPlaceholder,
|
|
478
|
+
hasInheritedValue: hasElementInheritedValue,
|
|
420
479
|
tabs: [
|
|
421
480
|
hasSolidColors && {
|
|
422
481
|
key: 'text',
|
|
@@ -426,8 +485,13 @@ export default function ColorPanel( {
|
|
|
426
485
|
inheritedValue?.elements?.[ name ]?.color?.text,
|
|
427
486
|
'color'
|
|
428
487
|
),
|
|
488
|
+
userSlug: extractPresetSlug(
|
|
489
|
+
value?.elements?.[ name ]?.color?.text,
|
|
490
|
+
'color'
|
|
491
|
+
),
|
|
429
492
|
setValue: setElementTextColor,
|
|
430
493
|
userValue: elementTextUserColor,
|
|
494
|
+
isPlaceholder: isElementTextPlaceholder,
|
|
431
495
|
},
|
|
432
496
|
hasSolidColors &&
|
|
433
497
|
supportsBackground && {
|
|
@@ -439,17 +503,31 @@ export default function ColorPanel( {
|
|
|
439
503
|
?.background,
|
|
440
504
|
'color'
|
|
441
505
|
),
|
|
506
|
+
userSlug: extractPresetSlug(
|
|
507
|
+
value?.elements?.[ name ]?.color?.background,
|
|
508
|
+
'color'
|
|
509
|
+
),
|
|
442
510
|
setValue: setElementBackgroundColor,
|
|
443
511
|
userValue: elementBackgroundUserColor,
|
|
512
|
+
isPlaceholder: isElementBackgroundPlaceholder,
|
|
444
513
|
},
|
|
445
514
|
hasGradientColors &&
|
|
446
515
|
supportsBackground && {
|
|
447
516
|
key: 'gradient',
|
|
448
517
|
label: __( 'Gradient' ),
|
|
449
518
|
inheritedValue: elementGradient,
|
|
519
|
+
inheritedSlug: extractPresetSlug(
|
|
520
|
+
inheritedValue?.elements?.[ name ]?.color?.gradient,
|
|
521
|
+
'gradient'
|
|
522
|
+
),
|
|
523
|
+
userSlug: extractPresetSlug(
|
|
524
|
+
value?.elements?.[ name ]?.color?.gradient,
|
|
525
|
+
'gradient'
|
|
526
|
+
),
|
|
450
527
|
setValue: setElementGradient,
|
|
451
528
|
userValue: elementGradientUserColor,
|
|
452
529
|
isGradient: true,
|
|
530
|
+
isPlaceholder: isElementGradientPlaceholder,
|
|
453
531
|
},
|
|
454
532
|
].filter( Boolean ),
|
|
455
533
|
} );
|
|
@@ -469,6 +547,9 @@ export default function ColorPanel( {
|
|
|
469
547
|
<ColorGradientDropdownItem
|
|
470
548
|
key={ key }
|
|
471
549
|
{ ...restItem }
|
|
550
|
+
showInheritanceLabelIndicators={
|
|
551
|
+
showInheritanceLabelIndicators
|
|
552
|
+
}
|
|
472
553
|
colorGradientControlSettings={ {
|
|
473
554
|
colors,
|
|
474
555
|
disableCustomColors: ! areCustomSolidsEnabled,
|