@wordpress/block-editor 14.9.0 → 14.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/LICENSE.md +1 -1
- package/README.md +40 -0
- package/build/components/audio-player/index.native.js +1 -1
- package/build/components/audio-player/index.native.js.map +1 -1
- package/build/components/background-image-control/index.js +4 -0
- package/build/components/background-image-control/index.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +32 -0
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-card/index.js +45 -8
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-edit/edit.js +147 -10
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-list/index.js +1 -2
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +2 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/zoom-out-separator.js +20 -3
- package/build/components/block-list/zoom-out-separator.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +5 -8
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/utils.js +3 -3
- package/build/components/block-styles/utils.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +19 -6
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/button-block-appender/index.js +1 -5
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +6 -0
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +51 -11
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/contrast-checker/index.native.js +1 -1
- package/build/components/contrast-checker/index.native.js.map +1 -1
- package/build/components/date-format-picker/index.js +7 -16
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +9 -0
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +10 -1
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/color-panel.js +3 -0
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +1 -1
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +2 -2
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +9 -0
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/utils.js +12 -1
- package/build/components/grid/utils.js.map +1 -1
- package/build/components/iframe/index.js +1 -1
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +11 -11
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/index.js +1 -1
- package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +1 -1
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +1 -2
- package/build/components/inserter/category-tabs/index.js.map +1 -1
- package/build/components/inserter/index.js +6 -15
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -13
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +2 -2
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/line-height-control/index.js +9 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/media-placeholder/index.js +2 -2
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +26 -26
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/plain-text/index.js +34 -0
- package/build/components/plain-text/index.js.map +1 -1
- package/build/components/provider/index.js +61 -5
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-media-upload-settings.js +28 -0
- package/build/components/provider/use-media-upload-settings.js.map +1 -0
- package/build/components/resolution-tool/index.js +3 -1
- package/build/components/resolution-tool/index.js.map +1 -1
- package/build/components/responsive-block-control/index.js +1 -1
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/rich-text/event-listeners/delete.js +7 -1
- package/build/components/rich-text/event-listeners/delete.js.map +1 -1
- package/build/components/rich-text/index.js +2 -2
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +2 -1
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/hooks/background.js +2 -0
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-bindings.js +15 -14
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/border.js +3 -3
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +1 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/dimensions.js +2 -2
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/font-family.js +1 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/gap.js +2 -2
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +0 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +7 -0
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/style.js +7 -7
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/supports.js +7 -7
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.js +6 -6
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/use-zoom-out.js +12 -1
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/hooks/utils.js +1 -1
- package/build/hooks/utils.js.map +1 -1
- package/build/store/private-actions.js +1 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +11 -1
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +93 -12
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +6 -8
- package/build/store/selectors.js.map +1 -1
- package/build/utils/block-bindings.js +95 -0
- package/build/utils/block-bindings.js.map +1 -1
- package/build-module/components/audio-player/index.native.js +2 -2
- package/build-module/components/audio-player/index.native.js.map +1 -1
- package/build-module/components/background-image-control/index.js +5 -1
- package/build-module/components/background-image-control/index.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +32 -0
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-card/index.js +45 -8
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-edit/edit.js +148 -11
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-list/index.js +2 -3
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/zoom-out-separator.js +20 -3
- package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -8
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/utils.js +3 -3
- package/build-module/components/block-styles/utils.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +19 -6
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +2 -6
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +7 -1
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +51 -11
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/contrast-checker/index.native.js +2 -2
- package/build-module/components/contrast-checker/index.native.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +7 -16
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +8 -0
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +10 -1
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -0
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +1 -1
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +2 -2
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +9 -0
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/utils.js +12 -1
- package/build-module/components/grid/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +1 -1
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +12 -12
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/index.js +1 -1
- package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +1 -2
- package/build-module/components/inserter/category-tabs/index.js.map +1 -1
- package/build-module/components/inserter/index.js +6 -15
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -13
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +2 -2
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +8 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +3 -3
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +28 -28
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/plain-text/index.js +34 -0
- package/build-module/components/plain-text/index.js.map +1 -1
- package/build-module/components/provider/index.js +62 -5
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-media-upload-settings.js +22 -0
- package/build-module/components/provider/use-media-upload-settings.js.map +1 -0
- package/build-module/components/resolution-tool/index.js +3 -1
- package/build-module/components/resolution-tool/index.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js +1 -1
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/delete.js +7 -1
- package/build-module/components/rich-text/event-listeners/delete.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +2 -1
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/hooks/background.js +2 -0
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-bindings.js +13 -12
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/border.js +3 -3
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +1 -1
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/dimensions.js +2 -2
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/font-family.js +1 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/gap.js +2 -2
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/index.js +0 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +1 -0
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/style.js +7 -7
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/supports.js +7 -7
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.js +6 -6
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +12 -2
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/hooks/utils.js +1 -1
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/store/private-actions.js +1 -1
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +11 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +93 -12
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +6 -8
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/block-bindings.js +90 -0
- package/build-module/utils/block-bindings.js.map +1 -1
- package/build-style/style-rtl.css +27 -9
- package/build-style/style.css +27 -9
- package/package.json +33 -33
- package/src/components/audio-player/index.native.js +2 -2
- package/src/components/background-image-control/index.js +4 -0
- package/src/components/background-image-control/style.scss +4 -2
- package/src/components/block-alignment-matrix-control/README.md +29 -6
- package/src/components/block-alignment-matrix-control/index.js +31 -0
- package/src/components/block-alignment-matrix-control/stories/index.story.js +78 -0
- package/src/components/block-card/README.md +7 -0
- package/src/components/block-card/index.js +41 -12
- package/src/components/block-card/stories/index.story.js +79 -0
- package/src/components/block-card/style.scss +9 -1
- package/src/components/block-edit/edit.js +218 -11
- package/src/components/block-list/index.js +2 -7
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/zoom-out-separator.js +30 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +17 -20
- package/src/components/block-styles/utils.js +3 -3
- package/src/components/block-title/stories/index.story.js +76 -0
- package/src/components/block-tools/style.scss +1 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +21 -3
- package/src/components/border-radius-control/README.md +59 -0
- package/src/components/border-radius-control/stories/index.story.js +58 -0
- package/src/components/button-block-appender/index.js +2 -7
- package/src/components/child-layout-control/index.js +14 -0
- package/src/components/colors-gradients/dropdown.js +57 -8
- package/src/components/colors-gradients/style.scss +5 -0
- package/src/components/contrast-checker/index.native.js +2 -2
- package/src/components/contrast-checker/stories/index.story.js +117 -0
- package/src/components/date-format-picker/README.md +6 -13
- package/src/components/date-format-picker/index.js +10 -17
- package/src/components/date-format-picker/stories/index.story.js +69 -0
- package/src/components/date-format-picker/style.scss +3 -1
- package/src/components/default-block-appender/content.scss +1 -0
- package/src/components/dimensions-tool/stories/aspect-ratio-tool.story.js +2 -1
- package/src/components/dimensions-tool/stories/index.story.js +2 -1
- package/src/components/dimensions-tool/stories/scale-tool.story.js +2 -1
- package/src/components/dimensions-tool/stories/width-height-tool.story.js +2 -1
- package/src/components/font-appearance-control/index.js +15 -0
- package/src/components/font-family/README.md +1 -0
- package/src/components/font-family/index.js +17 -1
- package/src/components/font-family/stories/index.story.js +1 -0
- package/src/components/global-styles/color-panel.js +3 -0
- package/src/components/global-styles/test/use-global-styles-output.js +1 -1
- package/src/components/global-styles/typography-utils.js +1 -1
- package/src/components/global-styles/use-global-styles-output.js +2 -2
- package/src/components/grid/grid-visualizer.js +11 -0
- package/src/components/grid/utils.js +19 -1
- package/src/components/iframe/index.js +1 -1
- package/src/components/inner-blocks/use-inner-block-template-sync.js +17 -10
- package/src/components/inserter/block-patterns-explorer/index.js +2 -3
- package/src/components/inserter/block-patterns-tab/index.js +3 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
- package/src/components/inserter/category-tabs/index.js +3 -2
- package/src/components/inserter/index.js +1 -13
- package/src/components/inserter/quick-inserter.js +2 -25
- package/src/components/keyboard-shortcuts/index.js +2 -2
- package/src/components/line-height-control/README.md +1 -0
- package/src/components/line-height-control/index.js +12 -0
- package/src/components/line-height-control/stories/index.story.js +1 -0
- package/src/components/line-height-control/test/index.js +7 -1
- package/src/components/list-view/style.scss +10 -5
- package/src/components/media-placeholder/index.js +3 -3
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +28 -36
- package/src/components/media-replace-flow/style.scss +6 -6
- package/src/components/plain-text/README.md +2 -2
- package/src/components/plain-text/index.js +34 -0
- package/src/components/plain-text/stories/index.story.js +75 -0
- package/src/components/provider/index.js +81 -4
- package/src/components/provider/use-media-upload-settings.js +25 -0
- package/src/components/resolution-tool/index.js +2 -0
- package/src/components/resolution-tool/stories/index.story.js +36 -8
- package/src/components/responsive-block-control/index.js +1 -1
- package/src/components/rich-text/event-listeners/delete.js +6 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/text-alignment-control/README.md +49 -0
- package/src/components/text-alignment-control/stories/index.story.js +56 -18
- package/src/components/text-decoration-control/README.md +0 -1
- package/src/components/text-decoration-control/stories/index.story.js +51 -16
- package/src/components/text-transform-control/README.md +3 -4
- package/src/components/text-transform-control/stories/index.story.js +53 -16
- package/src/components/use-block-drop-zone/index.js +8 -1
- package/src/components/warning/stories/index.story.js +86 -0
- package/src/hooks/background.js +6 -0
- package/src/hooks/block-bindings.js +17 -18
- package/src/hooks/border.js +9 -3
- package/src/hooks/color.js +1 -1
- package/src/hooks/dimensions.js +2 -2
- package/src/hooks/font-family.js +1 -1
- package/src/hooks/gap.js +2 -2
- package/src/hooks/index.js +0 -1
- package/src/hooks/index.native.js +1 -0
- package/src/hooks/style.js +13 -7
- package/src/hooks/supports.js +7 -7
- package/src/hooks/test/style.js +2 -1
- package/src/hooks/typography.js +6 -6
- package/src/hooks/use-zoom-out.js +10 -2
- package/src/hooks/utils.js +1 -1
- package/src/store/private-actions.js +1 -0
- package/src/store/private-selectors.js +15 -5
- package/src/store/reducer.js +112 -19
- package/src/store/selectors.js +6 -8
- package/src/store/test/private-selectors.js +53 -9
- package/src/store/test/reducer.js +172 -166
- package/src/store/test/selectors.js +23 -0
- package/src/utils/block-bindings.js +95 -0
- package/tsconfig.json +2 -5
- package/build/hooks/use-bindings-attributes.js +0 -262
- package/build/hooks/use-bindings-attributes.js.map +0 -1
- package/build-module/hooks/use-bindings-attributes.js +0 -253
- package/build-module/hooks/use-bindings-attributes.js.map +0 -1
- package/src/hooks/use-bindings-attributes.js +0 -322
|
@@ -19,7 +19,13 @@ const SPIN = STEP * SPIN_FACTOR;
|
|
|
19
19
|
|
|
20
20
|
const ControlledLineHeightControl = () => {
|
|
21
21
|
const [ value, setValue ] = useState();
|
|
22
|
-
return
|
|
22
|
+
return (
|
|
23
|
+
<LineHeightControl
|
|
24
|
+
value={ value }
|
|
25
|
+
onChange={ setValue }
|
|
26
|
+
__next40pxDefaultSize
|
|
27
|
+
/>
|
|
28
|
+
);
|
|
23
29
|
};
|
|
24
30
|
|
|
25
31
|
describe( 'LineHeightControl', () => {
|
|
@@ -553,13 +553,18 @@ svg {
|
|
|
553
553
|
}
|
|
554
554
|
|
|
555
555
|
.list-view-appender .block-editor-inserter__toggle {
|
|
556
|
-
background-color:
|
|
557
|
-
color:
|
|
558
|
-
margin: $grid-unit-10 0 0
|
|
559
|
-
height:
|
|
560
|
-
min-width: 24px;
|
|
556
|
+
background-color: $gray-900;
|
|
557
|
+
color: $white;
|
|
558
|
+
margin: $grid-unit-10 0 0 $grid-unit-30;
|
|
559
|
+
height: $button-size-small;
|
|
561
560
|
padding: 0;
|
|
562
561
|
|
|
562
|
+
// TODO: Consider passing size="small" to the Inserter toggle instead.
|
|
563
|
+
// Special dimensions for this button.
|
|
564
|
+
&.has-icon.is-next-40px-default-size {
|
|
565
|
+
min-width: $button-size-small;
|
|
566
|
+
}
|
|
567
|
+
|
|
563
568
|
&:hover,
|
|
564
569
|
&:focus {
|
|
565
570
|
background: var(--wp-admin-theme-color);
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,
|
|
16
16
|
withFilters,
|
|
17
17
|
} from '@wordpress/components';
|
|
18
|
-
import { __ } from '@wordpress/i18n';
|
|
18
|
+
import { __, _x } from '@wordpress/i18n';
|
|
19
19
|
import { useState, useEffect } from '@wordpress/element';
|
|
20
20
|
import { useSelect } from '@wordpress/data';
|
|
21
21
|
import { keyboardReturn } from '@wordpress/icons';
|
|
@@ -482,7 +482,7 @@ export function MediaPlaceholder( {
|
|
|
482
482
|
) }
|
|
483
483
|
onClick={ openFileDialog }
|
|
484
484
|
>
|
|
485
|
-
{
|
|
485
|
+
{ _x( 'Upload', 'verb' ) }
|
|
486
486
|
</Button>
|
|
487
487
|
{ uploadMediaLibraryButton }
|
|
488
488
|
{ renderUrlSelectionUI() }
|
|
@@ -512,7 +512,7 @@ export function MediaPlaceholder( {
|
|
|
512
512
|
'block-editor-media-placeholder__upload-button'
|
|
513
513
|
) }
|
|
514
514
|
>
|
|
515
|
-
{
|
|
515
|
+
{ _x( 'Upload', 'verb' ) }
|
|
516
516
|
</Button>
|
|
517
517
|
) }
|
|
518
518
|
onChange={ onUpload }
|
|
@@ -98,3 +98,10 @@ If passed, children are rendered inside the dropdown.
|
|
|
98
98
|
- Required: No
|
|
99
99
|
|
|
100
100
|
If passed, children are rendered inside the dropdown. If a function is provided for this prop, it will receive an object with the `onClose` prop as an argument.
|
|
101
|
+
|
|
102
|
+
### renderToggle
|
|
103
|
+
|
|
104
|
+
- Type: `func`
|
|
105
|
+
- Required: No
|
|
106
|
+
|
|
107
|
+
If passed, it will be used to render the provided button instead of the default one. It should accept and pass through `button` props to a `button` element.
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import { __ } from '@wordpress/i18n';
|
|
4
|
+
import { __, _x } from '@wordpress/i18n';
|
|
11
5
|
import { speak } from '@wordpress/a11y';
|
|
12
6
|
import {
|
|
13
7
|
FormFileUpload,
|
|
14
8
|
NavigableMenu,
|
|
15
9
|
MenuItem,
|
|
16
|
-
ToolbarButton,
|
|
17
10
|
Dropdown,
|
|
18
11
|
withFilters,
|
|
12
|
+
ToolbarButton,
|
|
19
13
|
} from '@wordpress/components';
|
|
20
14
|
import { useSelect, withDispatch } from '@wordpress/data';
|
|
21
15
|
import { DOWN } from '@wordpress/keycodes';
|
|
@@ -60,12 +54,9 @@ const MediaReplaceFlow = ( {
|
|
|
60
54
|
addToGallery,
|
|
61
55
|
handleUpload = true,
|
|
62
56
|
popoverProps,
|
|
57
|
+
renderToggle,
|
|
63
58
|
} ) => {
|
|
64
|
-
const
|
|
65
|
-
return select( blockEditorStore ).getSettings().mediaUpload;
|
|
66
|
-
}, [] );
|
|
67
|
-
const canUpload = !! mediaUpload;
|
|
68
|
-
const editMediaButtonRef = useRef();
|
|
59
|
+
const { getSettings } = useSelect( blockEditorStore );
|
|
69
60
|
const errorNoticeID = `block-editor/media-replace-flow/error-notice/${ ++uniqueId }`;
|
|
70
61
|
|
|
71
62
|
const onUploadError = ( message ) => {
|
|
@@ -107,7 +98,7 @@ const MediaReplaceFlow = ( {
|
|
|
107
98
|
return onSelect( files );
|
|
108
99
|
}
|
|
109
100
|
onFilesUpload( files );
|
|
110
|
-
mediaUpload( {
|
|
101
|
+
getSettings().mediaUpload( {
|
|
111
102
|
allowedTypes,
|
|
112
103
|
filesList: files,
|
|
113
104
|
onFileChange: ( [ media ] ) => {
|
|
@@ -141,17 +132,27 @@ const MediaReplaceFlow = ( {
|
|
|
141
132
|
<Dropdown
|
|
142
133
|
popoverProps={ popoverProps }
|
|
143
134
|
contentClassName="block-editor-media-replace-flow__options"
|
|
144
|
-
renderToggle={ ( { isOpen, onToggle } ) =>
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
135
|
+
renderToggle={ ( { isOpen, onToggle } ) => {
|
|
136
|
+
if ( renderToggle ) {
|
|
137
|
+
return renderToggle( {
|
|
138
|
+
'aria-expanded': isOpen,
|
|
139
|
+
'aria-haspopup': 'true',
|
|
140
|
+
onClick: onToggle,
|
|
141
|
+
onKeyDown: openOnArrowDown,
|
|
142
|
+
children: name,
|
|
143
|
+
} );
|
|
144
|
+
}
|
|
145
|
+
return (
|
|
146
|
+
<ToolbarButton
|
|
147
|
+
aria-expanded={ isOpen }
|
|
148
|
+
aria-haspopup="true"
|
|
149
|
+
onClick={ onToggle }
|
|
150
|
+
onKeyDown={ openOnArrowDown }
|
|
151
|
+
>
|
|
152
|
+
{ name }
|
|
153
|
+
</ToolbarButton>
|
|
154
|
+
);
|
|
155
|
+
} }
|
|
155
156
|
renderContent={ ( { onClose } ) => (
|
|
156
157
|
<>
|
|
157
158
|
<NavigableMenu className="block-editor-media-replace-flow__media-upload-menu">
|
|
@@ -188,7 +189,7 @@ const MediaReplaceFlow = ( {
|
|
|
188
189
|
openFileDialog();
|
|
189
190
|
} }
|
|
190
191
|
>
|
|
191
|
-
{
|
|
192
|
+
{ _x( 'Upload', 'verb' ) }
|
|
192
193
|
</MenuItem>
|
|
193
194
|
);
|
|
194
195
|
} }
|
|
@@ -219,15 +220,7 @@ const MediaReplaceFlow = ( {
|
|
|
219
220
|
</NavigableMenu>
|
|
220
221
|
{ onSelectURL && (
|
|
221
222
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
|
222
|
-
<form
|
|
223
|
-
className={ clsx(
|
|
224
|
-
'block-editor-media-flow__url-input',
|
|
225
|
-
{
|
|
226
|
-
'has-siblings':
|
|
227
|
-
canUpload || onToggleFeaturedImage,
|
|
228
|
-
}
|
|
229
|
-
) }
|
|
230
|
-
>
|
|
223
|
+
<form className="block-editor-media-flow__url-input">
|
|
231
224
|
<span className="block-editor-media-replace-flow__image-url-label">
|
|
232
225
|
{ __( 'Current media URL:' ) }
|
|
233
226
|
</span>
|
|
@@ -238,7 +231,6 @@ const MediaReplaceFlow = ( {
|
|
|
238
231
|
showSuggestions={ false }
|
|
239
232
|
onChange={ ( { url } ) => {
|
|
240
233
|
onSelectURL( url );
|
|
241
|
-
editMediaButtonRef.current.focus();
|
|
242
234
|
} }
|
|
243
235
|
/>
|
|
244
236
|
</form>
|
|
@@ -9,17 +9,17 @@
|
|
|
9
9
|
margin-left: 4px;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
.block-editor-media-replace-flow__media-upload-menu:not(:empty) + .block-editor-media-flow__url-input {
|
|
13
|
+
border-top: $border-width solid $gray-900;
|
|
14
|
+
margin-top: $grid-unit-10;
|
|
15
|
+
padding-bottom: $grid-unit-10;
|
|
16
|
+
}
|
|
17
|
+
|
|
12
18
|
.block-editor-media-flow__url-input {
|
|
13
19
|
margin-right: -$grid-unit-10;
|
|
14
20
|
margin-left: -$grid-unit-10;
|
|
15
21
|
padding: $grid-unit-20;
|
|
16
22
|
|
|
17
|
-
&.has-siblings {
|
|
18
|
-
border-top: $border-width solid $gray-900;
|
|
19
|
-
margin-top: $grid-unit-10;
|
|
20
|
-
padding-bottom: $grid-unit-10;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
23
|
.block-editor-media-replace-flow__image-url-label {
|
|
24
24
|
display: block;
|
|
25
25
|
top: $grid-unit-20;
|
|
@@ -6,11 +6,11 @@ Render an auto-growing textarea allow users to fill any textual content.
|
|
|
6
6
|
|
|
7
7
|
### `value: string`
|
|
8
8
|
|
|
9
|
-
_Required._ String value of the textarea
|
|
9
|
+
_Required._ String value of the textarea.
|
|
10
10
|
|
|
11
11
|
### `onChange( value: string ): Function`
|
|
12
12
|
|
|
13
|
-
_Required._
|
|
13
|
+
_Required._ Function called when the text value changes.
|
|
14
14
|
|
|
15
15
|
You can also pass any extra prop to the textarea rendered by this component.
|
|
16
16
|
|
|
@@ -15,7 +15,41 @@ import { forwardRef } from '@wordpress/element';
|
|
|
15
15
|
import EditableText from '../editable-text';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
+
* Render an auto-growing textarea allow users to fill any textual content.
|
|
19
|
+
*
|
|
18
20
|
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/plain-text/README.md
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```jsx
|
|
24
|
+
* import { registerBlockType } from '@wordpress/blocks';
|
|
25
|
+
* import { PlainText } from '@wordpress/block-editor';
|
|
26
|
+
*
|
|
27
|
+
* registerBlockType( 'my-plugin/example-block', {
|
|
28
|
+
* // ...
|
|
29
|
+
*
|
|
30
|
+
* attributes: {
|
|
31
|
+
* content: {
|
|
32
|
+
* type: 'string',
|
|
33
|
+
* },
|
|
34
|
+
* },
|
|
35
|
+
*
|
|
36
|
+
* edit( { className, attributes, setAttributes } ) {
|
|
37
|
+
* return (
|
|
38
|
+
* <PlainText
|
|
39
|
+
* className={ className }
|
|
40
|
+
* value={ attributes.content }
|
|
41
|
+
* onChange={ ( content ) => setAttributes( { content } ) }
|
|
42
|
+
* />
|
|
43
|
+
* );
|
|
44
|
+
* },
|
|
45
|
+
* } );
|
|
46
|
+
* ````
|
|
47
|
+
*
|
|
48
|
+
* @param {Object} props Component props.
|
|
49
|
+
* @param {string} props.value String value of the textarea.
|
|
50
|
+
* @param {Function} props.onChange Function called when the text value changes.
|
|
51
|
+
* @param {Object} [props.ref] The component forwards the `ref` property to the `TextareaAutosize` component.
|
|
52
|
+
* @return {Element} Plain text component
|
|
19
53
|
*/
|
|
20
54
|
const PlainText = forwardRef( ( { __experimentalVersion, ...props }, ref ) => {
|
|
21
55
|
if ( __experimentalVersion === 2 ) {
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useState } from '@wordpress/element';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import PlainText from '..';
|
|
10
|
+
|
|
11
|
+
const meta = {
|
|
12
|
+
title: 'BlockEditor/PlainText',
|
|
13
|
+
component: PlainText,
|
|
14
|
+
parameters: {
|
|
15
|
+
docs: {
|
|
16
|
+
canvas: { sourceState: 'shown' },
|
|
17
|
+
description: {
|
|
18
|
+
component:
|
|
19
|
+
'PlainText renders an auto-growing textarea that allows users to enter any textual content.',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
argTypes: {
|
|
24
|
+
value: {
|
|
25
|
+
control: {
|
|
26
|
+
type: null,
|
|
27
|
+
},
|
|
28
|
+
table: {
|
|
29
|
+
type: {
|
|
30
|
+
summary: 'string',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
description: 'String value of the textarea.',
|
|
34
|
+
},
|
|
35
|
+
onChange: {
|
|
36
|
+
action: 'onChange',
|
|
37
|
+
control: {
|
|
38
|
+
type: null,
|
|
39
|
+
},
|
|
40
|
+
table: {
|
|
41
|
+
type: {
|
|
42
|
+
summary: 'function',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
description: 'Function called when the text value changes.',
|
|
46
|
+
},
|
|
47
|
+
className: {
|
|
48
|
+
control: 'text',
|
|
49
|
+
table: {
|
|
50
|
+
type: {
|
|
51
|
+
summary: 'string',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
description: 'Additional class name for the PlainText.',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export default meta;
|
|
60
|
+
|
|
61
|
+
export const Default = {
|
|
62
|
+
render: function Template( { onChange, ...args } ) {
|
|
63
|
+
const [ value, setValue ] = useState();
|
|
64
|
+
return (
|
|
65
|
+
<PlainText
|
|
66
|
+
{ ...args }
|
|
67
|
+
onChange={ ( ...changeArgs ) => {
|
|
68
|
+
onChange( ...changeArgs );
|
|
69
|
+
setValue( ...changeArgs );
|
|
70
|
+
} }
|
|
71
|
+
value={ value }
|
|
72
|
+
/>
|
|
73
|
+
);
|
|
74
|
+
},
|
|
75
|
+
};
|
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useDispatch } from '@wordpress/data';
|
|
5
|
-
import { useEffect } from '@wordpress/element';
|
|
5
|
+
import { useEffect, useMemo } from '@wordpress/element';
|
|
6
6
|
import { SlotFillProvider } from '@wordpress/components';
|
|
7
|
+
//eslint-disable-next-line import/no-extraneous-dependencies -- Experimental package, not published.
|
|
8
|
+
import {
|
|
9
|
+
MediaUploadProvider,
|
|
10
|
+
store as uploadStore,
|
|
11
|
+
} from '@wordpress/upload-media';
|
|
7
12
|
|
|
8
13
|
/**
|
|
9
14
|
* Internal dependencies
|
|
@@ -14,12 +19,71 @@ import { store as blockEditorStore } from '../../store';
|
|
|
14
19
|
import { BlockRefsProvider } from './block-refs-provider';
|
|
15
20
|
import { unlock } from '../../lock-unlock';
|
|
16
21
|
import KeyboardShortcuts from '../keyboard-shortcuts';
|
|
22
|
+
import useMediaUploadSettings from './use-media-upload-settings';
|
|
17
23
|
|
|
18
24
|
/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */
|
|
19
25
|
|
|
26
|
+
const noop = () => {};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Upload a media file when the file upload button is activated
|
|
30
|
+
* or when adding a file to the editor via drag & drop.
|
|
31
|
+
*
|
|
32
|
+
* @param {WPDataRegistry} registry
|
|
33
|
+
* @param {Object} $3 Parameters object passed to the function.
|
|
34
|
+
* @param {Array} $3.allowedTypes Array with the types of media that can be uploaded, if unset all types are allowed.
|
|
35
|
+
* @param {Object} $3.additionalData Additional data to include in the request.
|
|
36
|
+
* @param {Array<File>} $3.filesList List of files.
|
|
37
|
+
* @param {Function} $3.onError Function called when an error happens.
|
|
38
|
+
* @param {Function} $3.onFileChange Function called each time a file or a temporary representation of the file is available.
|
|
39
|
+
* @param {Function} $3.onSuccess Function called once a file has completely finished uploading, including thumbnails.
|
|
40
|
+
* @param {Function} $3.onBatchSuccess Function called once all files in a group have completely finished uploading, including thumbnails.
|
|
41
|
+
*/
|
|
42
|
+
function mediaUpload(
|
|
43
|
+
registry,
|
|
44
|
+
{
|
|
45
|
+
allowedTypes,
|
|
46
|
+
additionalData = {},
|
|
47
|
+
filesList,
|
|
48
|
+
onError = noop,
|
|
49
|
+
onFileChange,
|
|
50
|
+
onSuccess,
|
|
51
|
+
onBatchSuccess,
|
|
52
|
+
}
|
|
53
|
+
) {
|
|
54
|
+
void registry.dispatch( uploadStore ).addItems( {
|
|
55
|
+
files: filesList,
|
|
56
|
+
onChange: onFileChange,
|
|
57
|
+
onSuccess,
|
|
58
|
+
onBatchSuccess,
|
|
59
|
+
onError: ( { message } ) => onError( message ),
|
|
60
|
+
additionalData,
|
|
61
|
+
allowedTypes,
|
|
62
|
+
} );
|
|
63
|
+
}
|
|
64
|
+
|
|
20
65
|
export const ExperimentalBlockEditorProvider = withRegistryProvider(
|
|
21
66
|
( props ) => {
|
|
22
|
-
const {
|
|
67
|
+
const {
|
|
68
|
+
settings: _settings,
|
|
69
|
+
registry,
|
|
70
|
+
stripExperimentalSettings = false,
|
|
71
|
+
} = props;
|
|
72
|
+
|
|
73
|
+
const mediaUploadSettings = useMediaUploadSettings( _settings );
|
|
74
|
+
|
|
75
|
+
let settings = _settings;
|
|
76
|
+
|
|
77
|
+
if ( window.__experimentalMediaProcessing && _settings.mediaUpload ) {
|
|
78
|
+
// Create a new variable so that the original props.settings.mediaUpload is not modified.
|
|
79
|
+
settings = useMemo(
|
|
80
|
+
() => ( {
|
|
81
|
+
..._settings,
|
|
82
|
+
mediaUpload: mediaUpload.bind( null, registry ),
|
|
83
|
+
} ),
|
|
84
|
+
[ _settings, registry ]
|
|
85
|
+
);
|
|
86
|
+
}
|
|
23
87
|
|
|
24
88
|
const { __experimentalUpdateSettings } = unlock(
|
|
25
89
|
useDispatch( blockEditorStore )
|
|
@@ -44,12 +108,25 @@ export const ExperimentalBlockEditorProvider = withRegistryProvider(
|
|
|
44
108
|
// Syncs the entity provider with changes in the block-editor store.
|
|
45
109
|
useBlockSync( props );
|
|
46
110
|
|
|
47
|
-
|
|
111
|
+
const children = (
|
|
48
112
|
<SlotFillProvider passthrough>
|
|
49
113
|
{ ! settings?.isPreviewMode && <KeyboardShortcuts.Register /> }
|
|
50
|
-
<BlockRefsProvider>{ children }</BlockRefsProvider>
|
|
114
|
+
<BlockRefsProvider>{ props.children }</BlockRefsProvider>
|
|
51
115
|
</SlotFillProvider>
|
|
52
116
|
);
|
|
117
|
+
|
|
118
|
+
if ( window.__experimentalMediaProcessing ) {
|
|
119
|
+
return (
|
|
120
|
+
<MediaUploadProvider
|
|
121
|
+
settings={ mediaUploadSettings }
|
|
122
|
+
useSubRegistry={ false }
|
|
123
|
+
>
|
|
124
|
+
{ children }
|
|
125
|
+
</MediaUploadProvider>
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return children;
|
|
53
130
|
}
|
|
54
131
|
);
|
|
55
132
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useMemo } from '@wordpress/element';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* React hook used to compute the media upload settings to use in the post editor.
|
|
8
|
+
*
|
|
9
|
+
* @param {Object} settings Media upload settings prop.
|
|
10
|
+
*
|
|
11
|
+
* @return {Object} Media upload settings.
|
|
12
|
+
*/
|
|
13
|
+
function useMediaUploadSettings( settings = {} ) {
|
|
14
|
+
return useMemo(
|
|
15
|
+
() => ( {
|
|
16
|
+
mediaUpload: settings.mediaUpload,
|
|
17
|
+
mediaSideload: settings.mediaSideload,
|
|
18
|
+
maxUploadFileSize: settings.maxUploadFileSize,
|
|
19
|
+
allowedMimeTypes: settings.allowedMimeTypes,
|
|
20
|
+
} ),
|
|
21
|
+
[ settings ]
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default useMediaUploadSettings;
|
|
@@ -33,6 +33,7 @@ export default function ResolutionTool( {
|
|
|
33
33
|
options = DEFAULT_SIZE_OPTIONS,
|
|
34
34
|
defaultValue = DEFAULT_SIZE_OPTIONS[ 0 ].value,
|
|
35
35
|
isShownByDefault = true,
|
|
36
|
+
resetAllFilter,
|
|
36
37
|
} ) {
|
|
37
38
|
const displayValue = value ?? defaultValue;
|
|
38
39
|
return (
|
|
@@ -42,6 +43,7 @@ export default function ResolutionTool( {
|
|
|
42
43
|
onDeselect={ () => onChange( defaultValue ) }
|
|
43
44
|
isShownByDefault={ isShownByDefault }
|
|
44
45
|
panelId={ panelId }
|
|
46
|
+
resetAllFilter={ resetAllFilter }
|
|
45
47
|
>
|
|
46
48
|
<SelectControl
|
|
47
49
|
__nextHasNoMarginBottom
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { useReducer } from '@wordpress/element';
|
|
5
5
|
import {
|
|
6
6
|
Panel,
|
|
7
7
|
__experimentalToolsPanel as ToolsPanel,
|
|
@@ -13,30 +13,56 @@ import {
|
|
|
13
13
|
import ResolutionTool from '..';
|
|
14
14
|
|
|
15
15
|
export default {
|
|
16
|
-
title: 'BlockEditor
|
|
16
|
+
title: 'BlockEditor/ResolutionControl',
|
|
17
17
|
component: ResolutionTool,
|
|
18
|
+
tags: [ 'status-private' ],
|
|
18
19
|
argTypes: {
|
|
19
20
|
panelId: { control: false },
|
|
20
21
|
onChange: { action: 'changed' },
|
|
21
22
|
},
|
|
22
23
|
};
|
|
23
24
|
|
|
24
|
-
export const Default = ( {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
export const Default = ( {
|
|
26
|
+
label,
|
|
27
|
+
panelId,
|
|
28
|
+
onChange: onChangeProp,
|
|
29
|
+
...props
|
|
30
|
+
} ) => {
|
|
31
|
+
const [ attributes, setAttributes ] = useReducer(
|
|
32
|
+
( prevState, nextState ) => ( { ...prevState, ...nextState } ),
|
|
33
|
+
{}
|
|
34
|
+
);
|
|
35
|
+
const { resolution } = attributes;
|
|
36
|
+
const resetAll = ( resetFilters = [] ) => {
|
|
37
|
+
let newAttributes = {};
|
|
38
|
+
|
|
39
|
+
resetFilters.forEach( ( resetFilter ) => {
|
|
40
|
+
newAttributes = {
|
|
41
|
+
...newAttributes,
|
|
42
|
+
...resetFilter( newAttributes ),
|
|
43
|
+
};
|
|
44
|
+
} );
|
|
45
|
+
|
|
46
|
+
setAttributes( newAttributes );
|
|
28
47
|
onChangeProp( undefined );
|
|
29
48
|
};
|
|
30
49
|
return (
|
|
31
50
|
<Panel>
|
|
32
|
-
<ToolsPanel
|
|
51
|
+
<ToolsPanel
|
|
52
|
+
label={ label }
|
|
53
|
+
panelId={ panelId }
|
|
54
|
+
resetAll={ resetAll }
|
|
55
|
+
>
|
|
33
56
|
<ResolutionTool
|
|
34
57
|
panelId={ panelId }
|
|
35
58
|
onChange={ ( newValue ) => {
|
|
36
|
-
|
|
59
|
+
setAttributes( { resolution: newValue } );
|
|
37
60
|
onChangeProp( newValue );
|
|
38
61
|
} }
|
|
39
62
|
value={ resolution }
|
|
63
|
+
resetAllFilter={ () => ( {
|
|
64
|
+
resolution: undefined,
|
|
65
|
+
} ) }
|
|
40
66
|
{ ...props }
|
|
41
67
|
/>
|
|
42
68
|
</ToolsPanel>
|
|
@@ -44,5 +70,7 @@ export const Default = ( { panelId, onChange: onChangeProp, ...props } ) => {
|
|
|
44
70
|
);
|
|
45
71
|
};
|
|
46
72
|
Default.args = {
|
|
73
|
+
label: 'Settings',
|
|
74
|
+
defaultValue: 'full',
|
|
47
75
|
panelId: 'panel-id',
|
|
48
76
|
};
|
|
@@ -57,7 +57,7 @@ function ResponsiveBlockControl( props ) {
|
|
|
57
57
|
);
|
|
58
58
|
|
|
59
59
|
const toggleHelpText = __(
|
|
60
|
-
'
|
|
60
|
+
'Choose whether to use the same value for all screen sizes or a unique value for each screen size.'
|
|
61
61
|
);
|
|
62
62
|
|
|
63
63
|
const defaultControl = renderDefaultControl(
|
|
@@ -6,7 +6,7 @@ import { isCollapsed, isEmpty } from '@wordpress/rich-text';
|
|
|
6
6
|
|
|
7
7
|
export default ( props ) => ( element ) => {
|
|
8
8
|
function onKeyDown( event ) {
|
|
9
|
-
const { keyCode } = event;
|
|
9
|
+
const { keyCode, shiftKey } = event;
|
|
10
10
|
|
|
11
11
|
if ( event.defaultPrevented ) {
|
|
12
12
|
return;
|
|
@@ -30,6 +30,11 @@ export default ( props ) => ( element ) => {
|
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
// Exclude shift+backspace as they are shortcuts for deleting blocks.
|
|
34
|
+
if ( shiftKey ) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
33
38
|
if ( onMerge ) {
|
|
34
39
|
onMerge( ! isReverse );
|
|
35
40
|
}
|
|
@@ -39,7 +39,7 @@ import FormatEdit from './format-edit';
|
|
|
39
39
|
import { getAllowedFormats } from './utils';
|
|
40
40
|
import { Content, valueToHTMLString } from './content';
|
|
41
41
|
import { withDeprecations } from './with-deprecations';
|
|
42
|
-
import { canBindBlock } from '../../
|
|
42
|
+
import { canBindBlock } from '../../utils/block-bindings';
|
|
43
43
|
import BlockContext from '../block-context';
|
|
44
44
|
|
|
45
45
|
export const keyboardShortcutContext = createContext();
|