@wordpress/block-editor 15.19.1-next.v.202605131006.0 → 15.20.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 +15 -1
- package/build/components/block-card/index.cjs +51 -41
- package/build/components/block-card/index.cjs.map +3 -3
- package/build/components/block-heading-level-dropdown/heading-level-icon.cjs.map +3 -3
- package/build/components/block-icon/index.cjs +7 -1
- package/build/components/block-icon/index.cjs.map +3 -3
- package/build/components/block-inspector/index.cjs +156 -11
- package/build/components/block-inspector/index.cjs.map +3 -3
- package/build/components/block-inspector/inspector-pre-tabs-slot-fill.cjs +38 -0
- package/build/components/block-inspector/inspector-pre-tabs-slot-fill.cjs.map +7 -0
- package/build/components/block-list/use-block-props/index.cjs +1 -1
- package/build/components/block-list/use-block-props/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-handler.cjs +3 -4
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +3 -3
- package/build/components/block-list/use-block-props/use-is-hovered.cjs +24 -14
- package/build/components/block-list/use-block-props/use-is-hovered.cjs.map +3 -3
- package/build/components/block-lock/modal.cjs.map +3 -3
- package/build/components/block-patterns-list/index.cjs +13 -2
- package/build/components/block-patterns-list/index.cjs.map +2 -2
- package/build/components/block-popover/index.cjs +13 -3
- package/build/components/block-popover/index.cjs.map +2 -2
- package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
- package/build/components/block-visibility/modal.cjs.map +3 -3
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +3 -3
- package/build/components/colors-gradients/control.cjs +7 -4
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/global-styles/advanced-panel.cjs +24 -22
- package/build/components/global-styles/advanced-panel.cjs.map +3 -3
- package/build/components/global-styles/color-panel.cjs +95 -58
- package/build/components/global-styles/color-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +11 -5
- package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
- package/build/components/global-styles/index.cjs +3 -0
- package/build/components/global-styles/index.cjs.map +2 -2
- package/build/components/global-styles/shadow-panel-components.cjs +38 -26
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/global-styles/state-control-badges.cjs +69 -0
- package/build/components/global-styles/state-control-badges.cjs.map +7 -0
- package/build/components/global-styles/state-control.cjs +54 -63
- package/build/components/global-styles/state-control.cjs.map +3 -3
- package/build/components/iframe/index.cjs +0 -3
- package/build/components/iframe/index.cjs.map +2 -2
- package/build/components/iframe/use-scale-canvas.cjs +4 -1
- package/build/components/iframe/use-scale-canvas.cjs.map +2 -2
- package/build/components/inserter/hooks/use-patterns-state.cjs +4 -6
- package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
- package/build/components/inserter/index.cjs +1 -0
- package/build/components/inserter/index.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-preview.cjs +27 -18
- package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
- package/build/components/inserter/media-tab/utils.cjs +1 -1
- package/build/components/inserter/media-tab/utils.cjs.map +2 -2
- package/build/components/inserter/panel.cjs.map +3 -3
- package/build/components/inspector-controls/block-support-tools-panel.cjs +10 -2
- package/build/components/inspector-controls/block-support-tools-panel.cjs.map +2 -2
- package/build/components/inspector-controls/fill.cjs +14 -4
- package/build/components/inspector-controls/fill.cjs.map +2 -2
- package/build/components/inspector-controls/groups.cjs +2 -0
- package/build/components/inspector-controls/groups.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/index.cjs +13 -8
- package/build/components/inspector-controls-tabs/index.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/settings-tab.cjs +1 -4
- package/build/components/inspector-controls-tabs/settings-tab.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/styles-tab.cjs +9 -0
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +11 -5
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
- package/build/components/list-view/block-select-button.cjs +20 -8
- package/build/components/list-view/block-select-button.cjs.map +2 -2
- package/build/components/list-view/block.cjs +2 -1
- package/build/components/list-view/block.cjs.map +2 -2
- package/build/components/preset-input-control/custom-value-controls.cjs +10 -1
- package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs.map +3 -3
- package/build/components/provider/use-media-upload-settings.cjs +1 -0
- package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
- package/build/components/rich-text/event-listeners/enter.cjs +9 -2
- package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/paste-handler.cjs +4 -4
- package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
- package/build/hooks/background.cjs +13 -3
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-fields/link/index.cjs.map +3 -3
- package/build/hooks/block-fields/media/index.cjs.map +3 -3
- package/build/hooks/block-style-state.cjs +112 -0
- package/build/hooks/block-style-state.cjs.map +7 -0
- package/build/hooks/border.cjs +13 -3
- package/build/hooks/border.cjs.map +2 -2
- package/build/hooks/color.cjs +28 -9
- package/build/hooks/color.cjs.map +2 -2
- package/build/hooks/dimensions.cjs +15 -6
- package/build/hooks/dimensions.cjs.map +2 -2
- package/build/hooks/layout-child.cjs +147 -61
- package/build/hooks/layout-child.cjs.map +2 -2
- package/build/hooks/layout.cjs +263 -56
- package/build/hooks/layout.cjs.map +3 -3
- package/build/hooks/state-utils.cjs +94 -0
- package/build/hooks/state-utils.cjs.map +7 -0
- package/build/hooks/states.cjs +124 -0
- package/build/hooks/states.cjs.map +7 -0
- package/build/hooks/style.cjs +304 -17
- package/build/hooks/style.cjs.map +3 -3
- package/build/hooks/typography.cjs +14 -5
- package/build/hooks/typography.cjs.map +2 -2
- package/build/layouts/constrained.cjs +128 -55
- package/build/layouts/constrained.cjs.map +3 -3
- package/build/layouts/flex.cjs +119 -31
- package/build/layouts/flex.cjs.map +3 -3
- package/build/layouts/grid.cjs +103 -40
- package/build/layouts/grid.cjs.map +3 -3
- package/build/private-apis.cjs +2 -0
- package/build/private-apis.cjs.map +2 -2
- package/build/store/private-actions.cjs +18 -0
- package/build/store/private-actions.cjs.map +2 -2
- package/build/store/private-keys.cjs +10 -2
- package/build/store/private-keys.cjs.map +2 -2
- package/build/store/private-selectors.cjs +26 -2
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/reducer.cjs +70 -1
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/utils.cjs +1 -1
- package/build/store/utils.cjs.map +2 -2
- package/build/utils/color-values.cjs +44 -0
- package/build/utils/color-values.cjs.map +7 -0
- package/build-module/components/block-card/index.mjs +52 -45
- package/build-module/components/block-card/index.mjs.map +2 -2
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.mjs +2 -2
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.mjs.map +2 -2
- package/build-module/components/block-icon/index.mjs +8 -2
- package/build-module/components/block-icon/index.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +166 -13
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-inspector/inspector-pre-tabs-slot-fill.mjs +12 -0
- package/build-module/components/block-inspector/inspector-pre-tabs-slot-fill.mjs.map +7 -0
- package/build-module/components/block-list/use-block-props/index.mjs +1 -1
- 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-handler.mjs +7 -5
- 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-is-hovered.mjs +28 -15
- package/build-module/components/block-list/use-block-props/use-is-hovered.mjs.map +2 -2
- package/build-module/components/block-lock/modal.mjs +4 -4
- package/build-module/components/block-lock/modal.mjs.map +2 -2
- package/build-module/components/block-patterns-list/index.mjs +14 -4
- package/build-module/components/block-patterns-list/index.mjs.map +2 -2
- package/build-module/components/block-popover/index.mjs +13 -3
- package/build-module/components/block-popover/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs +2 -2
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +7 -4
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/global-styles/advanced-panel.mjs +25 -27
- package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-panel.mjs +96 -59
- package/build-module/components/global-styles/color-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +14 -5
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/index.mjs +2 -0
- package/build-module/components/global-styles/index.mjs.map +2 -2
- package/build-module/components/global-styles/shadow-panel-components.mjs +39 -28
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/global-styles/state-control-badges.mjs +48 -0
- package/build-module/components/global-styles/state-control-badges.mjs.map +7 -0
- package/build-module/components/global-styles/state-control.mjs +57 -71
- package/build-module/components/global-styles/state-control.mjs.map +2 -2
- package/build-module/components/iframe/index.mjs +0 -3
- package/build-module/components/iframe/index.mjs.map +2 -2
- package/build-module/components/iframe/use-scale-canvas.mjs +4 -1
- package/build-module/components/iframe/use-scale-canvas.mjs.map +2 -2
- package/build-module/components/inserter/hooks/use-patterns-state.mjs +8 -7
- package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
- package/build-module/components/inserter/index.mjs +1 -0
- package/build-module/components/inserter/index.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-preview.mjs +27 -19
- package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/utils.mjs +1 -1
- package/build-module/components/inserter/media-tab/utils.mjs.map +2 -2
- package/build-module/components/inserter/panel.mjs +2 -2
- package/build-module/components/inserter/panel.mjs.map +2 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.mjs +10 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls/fill.mjs +18 -5
- package/build-module/components/inspector-controls/fill.mjs.map +2 -2
- package/build-module/components/inspector-controls/groups.mjs +2 -0
- package/build-module/components/inspector-controls/groups.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/index.mjs +14 -10
- package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.mjs +1 -4
- package/build-module/components/inspector-controls-tabs/settings-tab.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +9 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +11 -5
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
- package/build-module/components/list-view/block-select-button.mjs +20 -9
- package/build-module/components/list-view/block-select-button.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +2 -1
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/preset-input-control/custom-value-controls.mjs +10 -2
- package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +2 -2
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/provider/use-media-upload-settings.mjs +1 -0
- package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/enter.mjs +9 -2
- package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs +4 -4
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
- package/build-module/hooks/background.mjs +18 -3
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-fields/link/index.mjs +3 -3
- package/build-module/hooks/block-fields/link/index.mjs.map +2 -2
- package/build-module/hooks/block-fields/media/index.mjs +3 -3
- package/build-module/hooks/block-fields/media/index.mjs.map +2 -2
- package/build-module/hooks/block-style-state.mjs +79 -0
- package/build-module/hooks/block-style-state.mjs.map +7 -0
- package/build-module/hooks/border.mjs +18 -3
- package/build-module/hooks/border.mjs.map +2 -2
- package/build-module/hooks/color.mjs +33 -9
- package/build-module/hooks/color.mjs.map +2 -2
- package/build-module/hooks/dimensions.mjs +20 -6
- package/build-module/hooks/dimensions.mjs.map +2 -2
- package/build-module/hooks/layout-child.mjs +141 -61
- package/build-module/hooks/layout-child.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +270 -58
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/state-utils.mjs +64 -0
- package/build-module/hooks/state-utils.mjs.map +7 -0
- package/build-module/hooks/states.mjs +85 -0
- package/build-module/hooks/states.mjs.map +7 -0
- package/build-module/hooks/style.mjs +309 -18
- package/build-module/hooks/style.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +19 -5
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/layouts/constrained.mjs +130 -57
- package/build-module/layouts/constrained.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +123 -35
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +105 -42
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/private-apis.mjs +4 -0
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/private-actions.mjs +16 -0
- package/build-module/store/private-actions.mjs.map +2 -2
- package/build-module/store/private-keys.mjs +7 -1
- package/build-module/store/private-keys.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +25 -2
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +69 -1
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/utils.mjs +5 -2
- package/build-module/store/utils.mjs.map +2 -2
- package/build-module/utils/color-values.mjs +19 -0
- package/build-module/utils/color-values.mjs.map +7 -0
- package/build-style/content-rtl.css +18 -3
- package/build-style/content.css +18 -3
- package/build-style/style-rtl.css +14 -17
- package/build-style/style.css +14 -17
- package/package.json +41 -41
- package/src/components/audio-player/index.native.js +7 -3
- package/src/components/block-card/index.js +67 -60
- package/src/components/block-heading-level-dropdown/heading-level-icon.js +2 -2
- package/src/components/block-icon/index.js +5 -2
- package/src/components/block-icon/index.native.js +2 -2
- package/src/components/block-inspector/index.js +153 -7
- package/src/components/block-inspector/inspector-pre-tabs-slot-fill.js +11 -0
- package/src/components/block-list/block-selection-button.native.js +3 -3
- package/src/components/block-list/content.scss +0 -6
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-focus-handler.js +8 -6
- package/src/components/block-list/use-block-props/use-is-hovered.js +32 -15
- package/src/components/block-lock/modal.js +4 -4
- package/src/components/block-patterns-list/index.js +14 -5
- package/src/components/block-patterns-list/stories/index.story.jsx +2 -0
- package/src/components/block-patterns-list/style.scss +0 -1
- package/src/components/block-popover/index.js +20 -10
- package/src/components/block-toolbar/switch-section-style.js +2 -2
- package/src/components/block-visibility/modal.js +2 -2
- package/src/components/block-visibility/viewport-visibility-info.js +2 -2
- package/src/components/colors/test/with-colors.js +1 -1
- package/src/components/colors-gradients/control.js +10 -8
- package/src/components/colors-gradients/test/control.js +98 -1
- package/src/components/global-styles/advanced-panel.js +44 -39
- package/src/components/global-styles/color-panel.js +133 -60
- package/src/components/global-styles/dimensions-panel.js +17 -4
- package/src/components/global-styles/index.js +1 -0
- package/src/components/global-styles/shadow-panel-components.js +29 -19
- package/src/components/global-styles/state-control-badges.js +58 -0
- package/src/components/global-styles/state-control.js +28 -36
- package/src/components/global-styles/test/color-panel.js +135 -0
- package/src/components/iframe/index.js +0 -3
- package/src/components/iframe/use-scale-canvas.js +8 -2
- package/src/components/inserter/hooks/use-patterns-state.js +12 -7
- package/src/components/inserter/index.js +1 -0
- package/src/components/inserter/media-tab/media-preview.js +29 -20
- package/src/components/inserter/media-tab/utils.js +1 -1
- package/src/components/inserter/panel.js +2 -2
- package/src/components/inserter/style.scss +1 -0
- package/src/components/inserter-button/index.native.js +5 -2
- package/src/components/inspector-controls/block-support-tools-panel.js +10 -2
- package/src/components/inspector-controls/fill.js +18 -5
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/index.js +9 -5
- package/src/components/inspector-controls-tabs/settings-tab.js +1 -7
- package/src/components/inspector-controls-tabs/styles-tab.js +6 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +13 -7
- package/src/components/list-view/block-select-button.js +19 -9
- package/src/components/list-view/block.js +6 -1
- package/src/components/media-replace-flow/style.scss +0 -18
- package/src/components/preset-input-control/custom-value-controls.js +13 -6
- package/src/components/preset-input-control/index.js +2 -2
- package/src/components/provider/use-media-upload-settings.js +1 -0
- package/src/components/rich-text/event-listeners/enter.js +14 -2
- package/src/components/rich-text/event-listeners/paste-handler.js +5 -4
- package/src/components/unsupported-block-details/index.native.js +6 -2
- package/src/components/video-player/index.native.js +2 -2
- package/src/components/warning/index.native.js +2 -2
- package/src/hooks/background.js +59 -37
- package/src/hooks/block-fields/link/index.js +3 -3
- package/src/hooks/block-fields/media/index.js +3 -3
- package/src/hooks/block-style-state.js +127 -0
- package/src/hooks/border.js +25 -6
- package/src/hooks/color.js +40 -18
- package/src/hooks/dimensions.js +32 -11
- package/src/hooks/layout-child.js +179 -62
- package/src/hooks/layout.js +349 -75
- package/src/hooks/layout.scss +6 -0
- package/src/hooks/state-utils.js +158 -0
- package/src/hooks/states.js +109 -0
- package/src/hooks/style.js +456 -19
- package/src/hooks/test/block-style-state.js +270 -0
- package/src/hooks/test/layout.js +185 -0
- package/src/hooks/test/state-utils.js +193 -0
- package/src/hooks/test/style.js +301 -1
- package/src/hooks/typography.js +33 -14
- package/src/layouts/constrained.js +182 -95
- package/src/layouts/flex.js +141 -36
- package/src/layouts/grid.js +122 -32
- package/src/layouts/test/flex.js +57 -20
- package/src/private-apis.js +4 -0
- package/src/store/private-actions.js +32 -0
- package/src/store/private-keys.js +4 -0
- package/src/store/private-selectors.js +44 -2
- package/src/store/reducer.js +105 -1
- package/src/store/test/private-actions.js +26 -0
- package/src/store/test/private-selectors.js +90 -0
- package/src/store/test/reducer.js +363 -0
- package/src/store/utils.js +6 -2
- package/src/utils/color-values.js +28 -0
- package/src/utils/test/color-values.js +78 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import {
|
|
5
5
|
Button,
|
|
6
|
-
Icon,
|
|
6
|
+
Icon as WCIcon,
|
|
7
7
|
__experimentalGrid as Grid,
|
|
8
8
|
Popover,
|
|
9
9
|
} from '@wordpress/components';
|
|
@@ -104,7 +104,7 @@ export default function Link( { data, field, onChange } ) {
|
|
|
104
104
|
>
|
|
105
105
|
{ url && (
|
|
106
106
|
<>
|
|
107
|
-
<
|
|
107
|
+
<WCIcon icon={ link } size={ 24 } />
|
|
108
108
|
<span className="block-editor-content-only-controls__link-title">
|
|
109
109
|
{ url }
|
|
110
110
|
</span>
|
|
@@ -112,7 +112,7 @@ export default function Link( { data, field, onChange } ) {
|
|
|
112
112
|
) }
|
|
113
113
|
{ ! url && (
|
|
114
114
|
<>
|
|
115
|
-
<
|
|
115
|
+
<WCIcon
|
|
116
116
|
icon={ link }
|
|
117
117
|
size={ 24 }
|
|
118
118
|
style={ { opacity: 0.3 } }
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import {
|
|
5
5
|
Button,
|
|
6
|
-
Icon,
|
|
6
|
+
Icon as WCIcon,
|
|
7
7
|
__experimentalGrid as Grid,
|
|
8
8
|
} from '@wordpress/components';
|
|
9
9
|
import { useSelect } from '@wordpress/data';
|
|
@@ -92,11 +92,11 @@ function MediaThumbnail( { data, field, attachment, config } ) {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
if ( icon ) {
|
|
95
|
-
return <
|
|
95
|
+
return <WCIcon icon={ icon } size={ 20 } />;
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
return <
|
|
99
|
+
return <WCIcon icon={ mediaIcon } size={ 20 } />;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
export default function Media( { data, field, onChange, config = {} } ) {
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { createContext, useContext } from '@wordpress/element';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { cleanEmptyObject } from './utils';
|
|
10
|
+
import { getValueFromObjectPath, setImmutably } from '../utils/object';
|
|
11
|
+
|
|
12
|
+
const DEFAULT_STATE_VALUE = 'default';
|
|
13
|
+
|
|
14
|
+
export const DEFAULT_BLOCK_STYLE_STATE = {
|
|
15
|
+
viewport: DEFAULT_STATE_VALUE,
|
|
16
|
+
pseudo: DEFAULT_STATE_VALUE,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const BlockStyleStateContext = createContext( DEFAULT_BLOCK_STYLE_STATE );
|
|
20
|
+
|
|
21
|
+
export const BlockStyleStateProvider = BlockStyleStateContext.Provider;
|
|
22
|
+
|
|
23
|
+
export function useBlockStyleState() {
|
|
24
|
+
return useContext( BlockStyleStateContext );
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Returns true when a viewport style state is selected.
|
|
29
|
+
*
|
|
30
|
+
* @param {Object} selectedState Selected block style state.
|
|
31
|
+
* @return {boolean} Whether a viewport state is selected.
|
|
32
|
+
*/
|
|
33
|
+
export function hasViewportBlockStyleState( selectedState ) {
|
|
34
|
+
return (
|
|
35
|
+
!! selectedState?.viewport &&
|
|
36
|
+
selectedState.viewport !== DEFAULT_STATE_VALUE
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Returns true when a pseudo style state is selected.
|
|
42
|
+
*
|
|
43
|
+
* @param {Object} selectedState Selected block style state.
|
|
44
|
+
* @return {boolean} Whether a pseudo state is selected.
|
|
45
|
+
*/
|
|
46
|
+
export function hasPseudoBlockStyleState( selectedState ) {
|
|
47
|
+
return (
|
|
48
|
+
!! selectedState?.pseudo && selectedState.pseudo !== DEFAULT_STATE_VALUE
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Returns true when the default style state is selected.
|
|
54
|
+
*
|
|
55
|
+
* @param {Object} selectedState Selected block style state.
|
|
56
|
+
* @return {boolean} Whether the default style state is selected.
|
|
57
|
+
*/
|
|
58
|
+
export function isDefaultBlockStyleState( selectedState ) {
|
|
59
|
+
return (
|
|
60
|
+
! hasViewportBlockStyleState( selectedState ) &&
|
|
61
|
+
! hasPseudoBlockStyleState( selectedState )
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Returns the style object path for the selected block style state.
|
|
67
|
+
*
|
|
68
|
+
* @param {Object} selectedState Selected block style state.
|
|
69
|
+
* @return {string[]} Object path for the selected state styles.
|
|
70
|
+
*/
|
|
71
|
+
function getStyleStatePath( selectedState ) {
|
|
72
|
+
if ( isDefaultBlockStyleState( selectedState ) ) {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return [ selectedState.viewport, selectedState.pseudo ].filter(
|
|
77
|
+
( state ) => state && state !== DEFAULT_STATE_VALUE
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function getStyleForState( style, selectedState ) {
|
|
82
|
+
const path = getStyleStatePath( selectedState );
|
|
83
|
+
if ( ! path.length ) {
|
|
84
|
+
return style;
|
|
85
|
+
}
|
|
86
|
+
return getValueFromObjectPath( style, path );
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function setStyleForState( style, selectedState, newStyle ) {
|
|
90
|
+
const path = getStyleStatePath( selectedState );
|
|
91
|
+
if ( ! path.length ) {
|
|
92
|
+
return cleanEmptyObject( newStyle );
|
|
93
|
+
}
|
|
94
|
+
return cleanEmptyObject( setImmutably( style, path, newStyle ) );
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function scopeResetAllFilterToState( selectedState, resetAllFilter ) {
|
|
98
|
+
if ( ! resetAllFilter || isDefaultBlockStyleState( selectedState ) ) {
|
|
99
|
+
return resetAllFilter;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return ( attributes ) => {
|
|
103
|
+
const existingStateStyle =
|
|
104
|
+
getStyleForState( attributes?.style, selectedState ) || {};
|
|
105
|
+
const updatedStateAttributes = resetAllFilter( {
|
|
106
|
+
style: existingStateStyle,
|
|
107
|
+
} );
|
|
108
|
+
const updatedStateStyle =
|
|
109
|
+
updatedStateAttributes &&
|
|
110
|
+
typeof updatedStateAttributes === 'object' &&
|
|
111
|
+
! Array.isArray( updatedStateAttributes ) &&
|
|
112
|
+
Object.prototype.hasOwnProperty.call(
|
|
113
|
+
updatedStateAttributes,
|
|
114
|
+
'style'
|
|
115
|
+
)
|
|
116
|
+
? updatedStateAttributes.style
|
|
117
|
+
: updatedStateAttributes;
|
|
118
|
+
|
|
119
|
+
return {
|
|
120
|
+
style: setStyleForState(
|
|
121
|
+
attributes?.style,
|
|
122
|
+
selectedState,
|
|
123
|
+
updatedStateStyle
|
|
124
|
+
),
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
}
|
package/src/hooks/border.js
CHANGED
|
@@ -11,6 +11,7 @@ import { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/com
|
|
|
11
11
|
import { Platform, useCallback, useMemo } from '@wordpress/element';
|
|
12
12
|
import { addFilter } from '@wordpress/hooks';
|
|
13
13
|
import { useSelect } from '@wordpress/data';
|
|
14
|
+
import { __ } from '@wordpress/i18n';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Internal dependencies
|
|
@@ -29,7 +30,12 @@ import {
|
|
|
29
30
|
BorderPanel as StylesBorderPanel,
|
|
30
31
|
} from '../components/global-styles';
|
|
31
32
|
import { store as blockEditorStore } from '../store';
|
|
32
|
-
import {
|
|
33
|
+
import {
|
|
34
|
+
getStyleForState,
|
|
35
|
+
isDefaultBlockStyleState,
|
|
36
|
+
setStyleForState,
|
|
37
|
+
useBlockStyleState,
|
|
38
|
+
} from './block-style-state';
|
|
33
39
|
|
|
34
40
|
export const BORDER_SUPPORT_KEY = '__experimentalBorder';
|
|
35
41
|
export const SHADOW_SUPPORT_KEY = 'shadow';
|
|
@@ -141,6 +147,7 @@ function BordersInspectorControl( { label, children, resetAllFilter } ) {
|
|
|
141
147
|
}
|
|
142
148
|
|
|
143
149
|
export function BorderPanel( { clientId, name, setAttributes, settings } ) {
|
|
150
|
+
const selectedState = useBlockStyleState();
|
|
144
151
|
const isEnabled = useHasBorderPanel( settings );
|
|
145
152
|
const { style, borderColor } = useSelect(
|
|
146
153
|
( select ) => {
|
|
@@ -154,13 +161,25 @@ export function BorderPanel( { clientId, name, setAttributes, settings } ) {
|
|
|
154
161
|
},
|
|
155
162
|
[ clientId, isEnabled ]
|
|
156
163
|
);
|
|
164
|
+
|
|
165
|
+
const isStateSelected = ! isDefaultBlockStyleState( selectedState );
|
|
166
|
+
|
|
157
167
|
const value = useMemo( () => {
|
|
168
|
+
if ( isStateSelected ) {
|
|
169
|
+
return getStyleForState( style, selectedState );
|
|
170
|
+
}
|
|
158
171
|
return attributesToStyle( { style, borderColor } );
|
|
159
|
-
}, [ style, borderColor ] );
|
|
160
|
-
|
|
161
|
-
const onChange =
|
|
162
|
-
|
|
163
|
-
|
|
172
|
+
}, [ isStateSelected, selectedState, style, borderColor ] );
|
|
173
|
+
|
|
174
|
+
const onChange = isStateSelected
|
|
175
|
+
? ( newStyle ) => {
|
|
176
|
+
setAttributes( {
|
|
177
|
+
style: setStyleForState( style, selectedState, newStyle ),
|
|
178
|
+
} );
|
|
179
|
+
}
|
|
180
|
+
: ( newStyle ) => {
|
|
181
|
+
setAttributes( styleToAttributes( newStyle ) );
|
|
182
|
+
};
|
|
164
183
|
|
|
165
184
|
if ( ! isEnabled ) {
|
|
166
185
|
return null;
|
package/src/hooks/color.js
CHANGED
|
@@ -31,8 +31,15 @@ import {
|
|
|
31
31
|
useHasColorPanel,
|
|
32
32
|
default as StylesColorPanel,
|
|
33
33
|
} from '../components/global-styles/color-panel';
|
|
34
|
+
import { extractPresetSlug } from '../utils/color-values';
|
|
34
35
|
import BlockColorContrastChecker from './contrast-checker';
|
|
35
36
|
import { store as blockEditorStore } from '../store';
|
|
37
|
+
import {
|
|
38
|
+
getStyleForState,
|
|
39
|
+
isDefaultBlockStyleState,
|
|
40
|
+
setStyleForState,
|
|
41
|
+
useBlockStyleState,
|
|
42
|
+
} from './block-style-state';
|
|
36
43
|
|
|
37
44
|
export const COLOR_SUPPORT_KEY = 'color';
|
|
38
45
|
|
|
@@ -191,19 +198,14 @@ export function addSaveProps( props, blockNameOrType, attributes ) {
|
|
|
191
198
|
|
|
192
199
|
function styleToAttributes( style ) {
|
|
193
200
|
const textColorValue = style?.color?.text;
|
|
194
|
-
const textColorSlug =
|
|
195
|
-
? textColorValue.substring( 'var:preset|color|'.length )
|
|
196
|
-
: undefined;
|
|
201
|
+
const textColorSlug = extractPresetSlug( textColorValue, 'color' );
|
|
197
202
|
const backgroundColorValue = style?.color?.background;
|
|
198
|
-
const backgroundColorSlug =
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
: undefined;
|
|
203
|
+
const backgroundColorSlug = extractPresetSlug(
|
|
204
|
+
backgroundColorValue,
|
|
205
|
+
'color'
|
|
206
|
+
);
|
|
203
207
|
const gradientValue = style?.color?.gradient;
|
|
204
|
-
const gradientSlug =
|
|
205
|
-
? gradientValue.substring( 'var:preset|gradient|'.length )
|
|
206
|
-
: undefined;
|
|
208
|
+
const gradientSlug = extractPresetSlug( gradientValue, 'gradient' );
|
|
207
209
|
const updatedStyle = { ...style };
|
|
208
210
|
updatedStyle.color = {
|
|
209
211
|
...updatedStyle.color,
|
|
@@ -269,6 +271,7 @@ export function ColorEdit( {
|
|
|
269
271
|
label,
|
|
270
272
|
defaultControls,
|
|
271
273
|
} ) {
|
|
274
|
+
const selectedState = useBlockStyleState();
|
|
272
275
|
const isEnabled = useHasColorPanel( settings );
|
|
273
276
|
|
|
274
277
|
const { style, textColor, backgroundColor, gradient } = useSelect(
|
|
@@ -292,18 +295,39 @@ export function ColorEdit( {
|
|
|
292
295
|
},
|
|
293
296
|
[ clientId, isEnabled ]
|
|
294
297
|
);
|
|
298
|
+
|
|
299
|
+
const isStateSelected = ! isDefaultBlockStyleState( selectedState );
|
|
300
|
+
|
|
295
301
|
const value = useMemo( () => {
|
|
302
|
+
if ( isStateSelected ) {
|
|
303
|
+
return getStyleForState( style, selectedState );
|
|
304
|
+
}
|
|
296
305
|
return attributesToStyle( {
|
|
297
306
|
style,
|
|
298
307
|
textColor,
|
|
299
308
|
backgroundColor,
|
|
300
309
|
gradient,
|
|
301
310
|
} );
|
|
302
|
-
}, [
|
|
311
|
+
}, [
|
|
312
|
+
isStateSelected,
|
|
313
|
+
selectedState,
|
|
314
|
+
style,
|
|
315
|
+
textColor,
|
|
316
|
+
backgroundColor,
|
|
317
|
+
gradient,
|
|
318
|
+
] );
|
|
319
|
+
|
|
320
|
+
const onChange = isStateSelected
|
|
321
|
+
? ( newStyle ) => {
|
|
322
|
+
setAttributes( {
|
|
323
|
+
style: setStyleForState( style, selectedState, newStyle ),
|
|
324
|
+
} );
|
|
325
|
+
}
|
|
326
|
+
: ( newStyle ) => {
|
|
327
|
+
setAttributes( styleToAttributes( newStyle ) );
|
|
328
|
+
};
|
|
303
329
|
|
|
304
|
-
const
|
|
305
|
-
setAttributes( styleToAttributes( newStyle ) );
|
|
306
|
-
};
|
|
330
|
+
const Wrapper = asWrapper || ColorInspectorControl;
|
|
307
331
|
|
|
308
332
|
if ( ! isEnabled ) {
|
|
309
333
|
return null;
|
|
@@ -317,6 +341,7 @@ export function ColorEdit( {
|
|
|
317
341
|
] );
|
|
318
342
|
|
|
319
343
|
const enableContrastChecking =
|
|
344
|
+
! isStateSelected &&
|
|
320
345
|
Platform.OS === 'web' &&
|
|
321
346
|
! value?.color?.gradient &&
|
|
322
347
|
( settings?.color?.text || settings?.color?.link ) &&
|
|
@@ -329,9 +354,6 @@ export function ColorEdit( {
|
|
|
329
354
|
'enableContrastChecker',
|
|
330
355
|
] );
|
|
331
356
|
|
|
332
|
-
// Use provided wrapper or default to ColorInspectorControl
|
|
333
|
-
const Wrapper = asWrapper || ColorInspectorControl;
|
|
334
|
-
|
|
335
357
|
return (
|
|
336
358
|
<StylesColorPanel
|
|
337
359
|
as={ Wrapper }
|
package/src/hooks/dimensions.js
CHANGED
|
@@ -23,6 +23,12 @@ import { MarginVisualizer, PaddingVisualizer } from './spacing-visualizer';
|
|
|
23
23
|
import { store as blockEditorStore } from '../store';
|
|
24
24
|
import { unlock } from '../lock-unlock';
|
|
25
25
|
import { cleanEmptyObject, shouldSkipSerialization } from './utils';
|
|
26
|
+
import {
|
|
27
|
+
getStyleForState,
|
|
28
|
+
isDefaultBlockStyleState,
|
|
29
|
+
setStyleForState,
|
|
30
|
+
useBlockStyleState,
|
|
31
|
+
} from './block-style-state';
|
|
26
32
|
|
|
27
33
|
export const DIMENSIONS_SUPPORT_KEY = 'dimensions';
|
|
28
34
|
export const SPACING_SUPPORT_KEY = 'spacing';
|
|
@@ -69,8 +75,10 @@ function DimensionsInspectorControl( { children, resetAllFilter } ) {
|
|
|
69
75
|
}
|
|
70
76
|
|
|
71
77
|
export function DimensionsPanel( { clientId, name, setAttributes, settings } ) {
|
|
72
|
-
const
|
|
73
|
-
const
|
|
78
|
+
const selectedState = useBlockStyleState();
|
|
79
|
+
const isStateSelected = ! isDefaultBlockStyleState( selectedState );
|
|
80
|
+
const isEnabled = useHasDimensionsPanel( settings, selectedState );
|
|
81
|
+
const style = useSelect(
|
|
74
82
|
( select ) => {
|
|
75
83
|
// Early return to avoid subscription when disabled
|
|
76
84
|
if ( ! isEnabled ) {
|
|
@@ -81,13 +89,21 @@ export function DimensionsPanel( { clientId, name, setAttributes, settings } ) {
|
|
|
81
89
|
},
|
|
82
90
|
[ clientId, isEnabled ]
|
|
83
91
|
);
|
|
84
|
-
|
|
85
92
|
const [ visualizedProperty, setVisualizedProperty ] = useVisualizer();
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
93
|
+
const value = isStateSelected
|
|
94
|
+
? getStyleForState( style, selectedState )
|
|
95
|
+
: style;
|
|
96
|
+
const onChange = isStateSelected
|
|
97
|
+
? ( newStyle ) => {
|
|
98
|
+
setAttributes( {
|
|
99
|
+
style: setStyleForState( style, selectedState, newStyle ),
|
|
100
|
+
} );
|
|
101
|
+
}
|
|
102
|
+
: ( newStyle ) => {
|
|
103
|
+
setAttributes( {
|
|
104
|
+
style: cleanEmptyObject( newStyle ),
|
|
105
|
+
} );
|
|
106
|
+
};
|
|
91
107
|
|
|
92
108
|
if ( ! isEnabled ) {
|
|
93
109
|
return null;
|
|
@@ -119,9 +135,13 @@ export function DimensionsPanel( { clientId, name, setAttributes, settings } ) {
|
|
|
119
135
|
value={ value }
|
|
120
136
|
onChange={ onChange }
|
|
121
137
|
defaultControls={ defaultControls }
|
|
122
|
-
|
|
138
|
+
styleState={ selectedState }
|
|
139
|
+
onVisualize={
|
|
140
|
+
isStateSelected ? undefined : setVisualizedProperty
|
|
141
|
+
}
|
|
123
142
|
/>
|
|
124
|
-
{
|
|
143
|
+
{ ! isStateSelected &&
|
|
144
|
+
!! settings?.spacing?.padding &&
|
|
125
145
|
visualizedProperty === 'padding' && (
|
|
126
146
|
<PaddingVisualizer
|
|
127
147
|
forceShow={ visualizedProperty === 'padding' }
|
|
@@ -129,7 +149,8 @@ export function DimensionsPanel( { clientId, name, setAttributes, settings } ) {
|
|
|
129
149
|
value={ value }
|
|
130
150
|
/>
|
|
131
151
|
) }
|
|
132
|
-
{
|
|
152
|
+
{ ! isStateSelected &&
|
|
153
|
+
!! settings?.spacing?.margin &&
|
|
133
154
|
visualizedProperty === 'margin' && (
|
|
134
155
|
<MarginVisualizer
|
|
135
156
|
forceShow={ visualizedProperty === 'margin' }
|