@wordpress/block-editor 12.4.0 → 12.6.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 +4 -0
- package/README.md +1 -0
- package/build/components/block-draggable/index.js +6 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +2 -2
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +25 -13
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-heading-level-dropdown/heading-level-icon.js +10 -2
- package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.native.js +4 -3
- package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +14 -18
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block.native.js +21 -42
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-lock/toolbar.js +25 -6
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/index.native.js +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js +8 -5
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +15 -25
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-settings/button.native.js +2 -2
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +10 -11
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build/components/block-toolbar/index.js +12 -8
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +62 -3
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +7 -11
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/colors-gradients/control.js +4 -2
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/dimensions-tool/aspect-ratio-tool.js +99 -0
- package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -0
- package/build/components/dimensions-tool/index.js +207 -0
- package/build/components/dimensions-tool/index.js.map +1 -0
- package/build/components/dimensions-tool/scale-tool.js +111 -0
- package/build/components/dimensions-tool/scale-tool.js.map +1 -0
- package/build/components/dimensions-tool/width-height-tool.js +125 -0
- package/build/components/dimensions-tool/width-height-tool.js.map +1 -0
- package/build/components/global-styles/color-panel.js +22 -16
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +13 -2
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +1 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-block-css-selector.js +4 -8
- package/build/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build/components/global-styles/hooks.js +15 -25
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +52 -5
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +12 -18
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +6 -6
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +36 -48
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-compatibility-styles.js +5 -0
- package/build/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +1 -2
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-size-control/index.js +6 -0
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +9 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +3 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +3 -1
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +33 -7
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +7 -35
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +3 -4
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +9 -3
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +2 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +21 -32
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +2 -21
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +82 -0
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -0
- package/build/components/inserter/reusable-blocks-tab.js +6 -2
- package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/tabs.native.js +1 -1
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +9 -1
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/link-control/constants.js +1 -1
- package/build/components/link-control/constants.js.map +1 -1
- package/build/components/link-control/index.js +21 -16
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-create-button.js +5 -21
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-input.js +4 -4
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +13 -30
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -2
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +2 -3
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/appender.js +2 -6
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +2 -2
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +65 -31
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +2 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/index.js +5 -2
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +21 -0
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/resolution-tool/index.js +55 -0
- package/build/components/resolution-tool/index.js.map +1 -0
- package/build/components/rich-text/content.js +0 -36
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +118 -0
- package/build/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js +6 -2
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/single.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/url-input/index.js +4 -2
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +7 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +49 -8
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-setting/index.js +5 -9
- package/build/components/use-setting/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +10 -27
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +70 -0
- package/build/components/writing-mode-control/index.js.map +1 -0
- package/build/hooks/behaviors.js +25 -20
- package/build/hooks/behaviors.js.map +1 -1
- package/build/hooks/margin.js +1 -1
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +1 -1
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/supports.js +7 -1
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.js +2 -1
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +5 -9
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +16 -3
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +3 -0
- package/build/private-apis.native.js.map +1 -1
- package/build/store/actions.js +196 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +1 -0
- package/build/store/defaults.js.map +1 -1
- package/build/store/index.js +10 -1
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +46 -40
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +8 -9
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +22 -9
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +52 -23
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +38 -2
- package/build/utils/object.js.map +1 -1
- package/build-module/components/block-draggable/index.js +6 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +2 -2
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +27 -10
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js +9 -2
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.native.js +4 -3
- package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +14 -18
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block.native.js +24 -43
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +25 -7
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +3 -3
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +7 -5
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +17 -24
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-settings/button.native.js +3 -3
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +13 -13
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +12 -8
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +60 -4
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +8 -11
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -2
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js +87 -0
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -0
- package/build-module/components/dimensions-tool/index.js +195 -0
- package/build-module/components/dimensions-tool/index.js.map +1 -0
- package/build-module/components/dimensions-tool/scale-tool.js +103 -0
- package/build-module/components/dimensions-tool/scale-tool.js.map +1 -0
- package/build-module/components/dimensions-tool/width-height-tool.js +122 -0
- package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -0
- package/build-module/components/global-styles/color-panel.js +22 -16
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +13 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-block-css-selector.js +4 -8
- package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +14 -24
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +51 -5
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +13 -18
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +5 -5
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +37 -49
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-compatibility-styles.js +5 -0
- package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +1 -2
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-size-control/index.js +5 -0
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +3 -1
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +30 -7
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +7 -33
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +3 -4
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +9 -3
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +2 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +22 -33
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +2 -21
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +67 -0
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -0
- package/build-module/components/inserter/reusable-blocks-tab.js +5 -2
- package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +1 -1
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +9 -2
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/link-control/constants.js +1 -1
- package/build-module/components/link-control/constants.js.map +1 -1
- package/build-module/components/link-control/index.js +21 -16
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js +7 -20
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-input.js +4 -4
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +14 -28
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +3 -3
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +4 -5
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/appender.js +2 -6
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +66 -33
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +2 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/index.js +5 -2
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +21 -0
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/resolution-tool/index.js +45 -0
- package/build-module/components/resolution-tool/index.js.map +1 -0
- package/build-module/components/rich-text/content.js +1 -36
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +105 -0
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js +7 -3
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +1 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -2
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +7 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +50 -8
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-setting/index.js +5 -9
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +8 -26
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +57 -0
- package/build-module/components/writing-mode-control/index.js.map +1 -0
- package/build-module/hooks/behaviors.js +26 -20
- package/build-module/hooks/behaviors.js.map +1 -1
- package/build-module/hooks/margin.js +1 -1
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +1 -1
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/supports.js +7 -1
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.js +2 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +6 -9
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +11 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +2 -0
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/actions.js +193 -3
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +1 -0
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/index.js +10 -1
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +45 -36
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +5 -5
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +22 -9
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +49 -21
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +34 -2
- package/build-module/utils/object.js.map +1 -1
- package/build-style/content-rtl.css +4 -0
- package/build-style/content.css +4 -0
- package/build-style/style-rtl.css +137 -129
- package/build-style/style.css +137 -129
- package/package.json +33 -32
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +6 -6
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +5 -5
- package/src/components/block-controls/README.md +89 -0
- package/src/components/block-draggable/index.js +13 -4
- package/src/components/block-draggable/index.native.js +7 -3
- package/src/components/block-draggable/style.scss +1 -0
- package/src/components/block-draggable/test/index.native.js +0 -54
- package/src/components/block-edit/edit.js +26 -9
- package/src/components/block-edit/test/edit.js +1 -1
- package/src/components/block-heading-level-dropdown/heading-level-icon.js +6 -1
- package/src/components/block-heading-level-dropdown/index.native.js +8 -4
- package/src/components/block-inspector/style.scss +2 -1
- package/src/components/block-list/block-outline.native.js +26 -25
- package/src/components/block-list/block.native.js +24 -38
- package/src/components/block-list/block.native.scss +18 -40
- package/src/components/block-list/style.native.scss +3 -3
- package/src/components/block-lock/toolbar.js +34 -6
- package/src/components/block-mover/index.native.js +3 -3
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +16 -6
- package/src/components/block-parent-selector/index.js +13 -8
- package/src/components/block-removal-warning-modal/index.js +17 -33
- package/src/components/block-settings/button.native.js +12 -6
- package/src/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +19 -18
- package/src/components/block-toolbar/index.js +11 -9
- package/src/components/block-toolbar/index.native.js +86 -6
- package/src/components/{block-mobile-toolbar/test/block-actions-menu.native.js → block-toolbar/test/block-toolbar-menu.native.js} +20 -54
- package/src/components/block-toolbar/test/index.native.js +42 -0
- package/src/components/block-tools/block-contextual-toolbar.js +5 -11
- package/src/components/block-tools/style.scss +73 -26
- package/src/components/button-block-appender/styles.native.scss +2 -2
- package/src/components/caption/README.md +49 -0
- package/src/components/colors-gradients/control.js +3 -2
- package/src/components/default-block-appender/content.scss +11 -0
- package/src/components/dimensions-tool/aspect-ratio-tool.js +124 -0
- package/src/components/dimensions-tool/index.js +212 -0
- package/src/components/dimensions-tool/scale-tool.js +124 -0
- package/src/components/dimensions-tool/stories/aspect-ratio-tool.js +52 -0
- package/src/components/dimensions-tool/stories/index.js +54 -0
- package/src/components/dimensions-tool/stories/scale-tool.js +48 -0
- package/src/components/dimensions-tool/stories/width-height-tool.js +54 -0
- package/src/components/dimensions-tool/test/index.js +641 -0
- package/src/components/dimensions-tool/width-height-tool.js +113 -0
- package/src/components/font-family/README.md +71 -0
- package/src/components/global-styles/color-panel.js +24 -17
- package/src/components/global-styles/dimensions-panel.js +8 -2
- package/src/components/global-styles/filters-panel.js +2 -2
- package/src/components/global-styles/get-block-css-selector.js +5 -9
- package/src/components/global-styles/hooks.js +22 -26
- package/src/components/global-styles/typography-panel.js +57 -5
- package/src/components/global-styles/use-global-styles-output.js +36 -18
- package/src/components/global-styles/utils.js +15 -6
- package/src/components/iframe/index.js +30 -56
- package/src/components/iframe/use-compatibility-styles.js +5 -0
- package/src/components/image-editor/aspect-ratio-dropdown.js +1 -1
- package/src/components/image-editor/use-save-image.js +0 -1
- package/src/components/image-size-control/index.js +6 -0
- package/src/components/index.js +1 -0
- package/src/components/inner-blocks/README.md +10 -0
- package/src/components/inner-blocks/index.js +4 -0
- package/src/components/inner-blocks/index.native.js +4 -0
- package/src/components/inner-blocks/use-nested-settings-update.js +32 -5
- package/src/components/inserter/block-patterns-explorer/patterns-list.js +8 -2
- package/src/components/inserter/block-patterns-tab.js +8 -56
- package/src/components/inserter/hooks/use-block-types-state.js +3 -4
- package/src/components/inserter/hooks/use-patterns-state.js +35 -19
- package/src/components/inserter/index.js +2 -3
- package/src/components/inserter/index.native.js +17 -36
- package/src/components/inserter/media-tab/hooks.js +2 -22
- package/src/components/inserter/reusable-block-rename-hint.js +69 -0
- package/src/components/inserter/reusable-blocks-tab.js +5 -1
- package/src/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/src/components/inserter/style.native.scss +10 -15
- package/src/components/inserter/style.scss +28 -0
- package/src/components/inserter/tabs.native.js +5 -1
- package/src/components/inserter-draggable-blocks/index.js +13 -2
- package/src/components/link-control/constants.js +1 -1
- package/src/components/link-control/index.js +36 -29
- package/src/components/link-control/search-create-button.js +8 -26
- package/src/components/link-control/search-input.js +4 -3
- package/src/components/link-control/search-item.js +21 -43
- package/src/components/link-control/search-results.js +48 -46
- package/src/components/link-control/settings-drawer.js +6 -5
- package/src/components/link-control/style.scss +58 -123
- package/src/components/link-control/test/index.js +161 -123
- package/src/components/list-view/appender.js +5 -6
- package/src/components/list-view/style.scss +1 -2
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/components/media-placeholder/index.native.js +108 -59
- package/src/components/media-placeholder/styles.native.scss +59 -24
- package/src/components/media-replace-flow/test/index.js +1 -1
- package/src/components/panel-color-settings/README.md +98 -0
- package/src/components/preview-options/README.md +18 -17
- package/src/components/preview-options/index.js +2 -2
- package/src/components/provider/index.js +9 -2
- package/src/components/provider/test/use-block-sync.js +21 -6
- package/src/components/provider/use-block-sync.js +19 -0
- package/src/components/recursion-provider/README.md +101 -0
- package/src/components/resolution-tool/index.js +56 -0
- package/src/components/resolution-tool/stories/index.js +48 -0
- package/src/components/rich-text/content.js +1 -46
- package/src/components/rich-text/get-rich-text-values.js +105 -0
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/axial.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/separated.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/single.js +12 -2
- package/src/components/spacing-sizes-control/utils.js +1 -1
- package/src/components/text-transform-control/README.md +44 -0
- package/src/components/url-input/index.js +2 -0
- package/src/components/use-block-display-information/index.js +12 -5
- package/src/components/use-block-drop-zone/index.native.js +65 -28
- package/src/components/use-setting/index.js +8 -8
- package/src/components/writing-flow/use-tab-nav.js +10 -33
- package/src/components/writing-mode-control/index.js +68 -0
- package/src/components/writing-mode-control/style.scss +18 -0
- package/src/hooks/behaviors.js +25 -16
- package/src/hooks/margin.js +4 -1
- package/src/hooks/padding.js +4 -1
- package/src/hooks/supports.js +7 -0
- package/src/hooks/typography.js +2 -0
- package/src/hooks/utils.js +8 -7
- package/src/private-apis.js +13 -1
- package/src/private-apis.native.js +2 -0
- package/src/store/actions.js +195 -3
- package/src/store/defaults.js +1 -0
- package/src/store/index.js +10 -0
- package/src/store/private-actions.js +39 -39
- package/src/store/private-selectors.js +5 -8
- package/src/store/reducer.js +22 -9
- package/src/store/selectors.js +87 -25
- package/src/store/test/actions.js +114 -0
- package/src/store/test/private-actions.js +56 -0
- package/src/store/test/private-selectors.js +5 -5
- package/src/store/test/reducer.js +14 -7
- package/src/store/test/selectors.js +1 -1
- package/src/utils/object.js +32 -2
- package/src/utils/test/object.js +36 -0
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build/components/block-mobile-toolbar/index.native.js +0 -135
- package/build/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +0 -116
- package/build-module/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/src/components/block-mobile-toolbar/index.native.js +0 -127
- package/src/components/block-mobile-toolbar/style.native.scss +0 -16
- /package/src/components/{block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap → block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap} +0 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# BlockControls
|
|
2
|
+
|
|
3
|
+
When the user selects a particular block, a toolbar positioned above the selected block displays a set of control buttons. Certain block-level controls are automatically included in the toolbar under specific circumstances. For example, there is a control for converting the block into a different type or when the focused element is a RichText component.
|
|
4
|
+
|
|
5
|
+
With `BlockControls`, you can customize the toolbar to include controls specific to your block type. If the return value of your block type's `edit` function includes a `BlockControls` element, the controls nested inside it will be shown in the selected block's toolbar.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```jsx
|
|
12
|
+
/**
|
|
13
|
+
* WordPress dependencies
|
|
14
|
+
*/
|
|
15
|
+
import {
|
|
16
|
+
BlockControls,
|
|
17
|
+
__experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl,
|
|
18
|
+
useBlockProps,
|
|
19
|
+
} from '@wordpress/block-editor';
|
|
20
|
+
import { __ } from '@wordpress/i18n';
|
|
21
|
+
|
|
22
|
+
export default function MyBlockEdit( { attributes, setAttributes } ) {
|
|
23
|
+
const blockProps = useBlockProps( {
|
|
24
|
+
className: 'my-block__custom-class',
|
|
25
|
+
} );
|
|
26
|
+
const { contentPosition } = attributes;
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<div { ...blockProps }>
|
|
30
|
+
{
|
|
31
|
+
<BlockControls>
|
|
32
|
+
<BlockAlignmentMatrixControl
|
|
33
|
+
label={ __( 'Change content position' ) }
|
|
34
|
+
value={ contentPosition }
|
|
35
|
+
onChange={ ( nextPosition ) =>
|
|
36
|
+
setAttributes( {
|
|
37
|
+
contentPosition: nextPosition,
|
|
38
|
+
} )
|
|
39
|
+
}
|
|
40
|
+
/>
|
|
41
|
+
</BlockControls>
|
|
42
|
+
}
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/// ...
|
|
48
|
+
|
|
49
|
+
<MyBlockEdit />;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
See [this custom block tutorial page](/docs/how-to-guides/block-tutorial/block-controls-toolbar-and-sidebar.md) for more information and block controls examples.
|
|
53
|
+
|
|
54
|
+
Furthermore, the READMEs of various components inside the block editor package and the components package include examples that also utilize `BlockControls` and can be a good reference.
|
|
55
|
+
|
|
56
|
+
### Props
|
|
57
|
+
|
|
58
|
+
The component accepts the following props:
|
|
59
|
+
|
|
60
|
+
### `group`
|
|
61
|
+
|
|
62
|
+
Group of the block controls. Allows you to create and render multiple groups of block controls.
|
|
63
|
+
|
|
64
|
+
- Type: `string`
|
|
65
|
+
- Default: `default`
|
|
66
|
+
- Required: No
|
|
67
|
+
|
|
68
|
+
### `controls`
|
|
69
|
+
|
|
70
|
+
Allows overriding the default `controls` if the `default` group is used.
|
|
71
|
+
|
|
72
|
+
See [this custom block tutorial page](/docs/how-to-guides/block-tutorial/block-controls-toolbar-and-sidebar.md) for more details and examples with block controls.
|
|
73
|
+
|
|
74
|
+
- Type: `array`
|
|
75
|
+
|
|
76
|
+
### `children`
|
|
77
|
+
|
|
78
|
+
Additional control components to be rendered.
|
|
79
|
+
|
|
80
|
+
- Type: `Element`
|
|
81
|
+
- Required: No.
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
### `__experimentalShareWithChildBlocks`
|
|
85
|
+
|
|
86
|
+
Whether the additional block controls should be added to the block toolbars of child blocks.
|
|
87
|
+
|
|
88
|
+
- Type: `boolean`
|
|
89
|
+
- Default: `false`
|
|
@@ -22,16 +22,25 @@ const BlockDraggable = ( {
|
|
|
22
22
|
} ) => {
|
|
23
23
|
const { srcRootClientId, isDraggable, icon } = useSelect(
|
|
24
24
|
( select ) => {
|
|
25
|
-
const {
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
const {
|
|
26
|
+
canMoveBlocks,
|
|
27
|
+
getBlockRootClientId,
|
|
28
|
+
getBlockName,
|
|
29
|
+
getBlockAttributes,
|
|
30
|
+
} = select( blockEditorStore );
|
|
31
|
+
const { getBlockType, getActiveBlockVariation } =
|
|
32
|
+
select( blocksStore );
|
|
28
33
|
const rootClientId = getBlockRootClientId( clientIds[ 0 ] );
|
|
29
34
|
const blockName = getBlockName( clientIds[ 0 ] );
|
|
35
|
+
const variation = getActiveBlockVariation(
|
|
36
|
+
blockName,
|
|
37
|
+
getBlockAttributes( clientIds[ 0 ] )
|
|
38
|
+
);
|
|
30
39
|
|
|
31
40
|
return {
|
|
32
41
|
srcRootClientId: rootClientId,
|
|
33
42
|
isDraggable: canMoveBlocks( clientIds, rootClientId ),
|
|
34
|
-
icon: getBlockType( blockName )?.icon,
|
|
43
|
+
icon: variation?.icon || getBlockType( blockName )?.icon,
|
|
35
44
|
};
|
|
36
45
|
},
|
|
37
46
|
[ clientIds ]
|
|
@@ -109,8 +109,12 @@ const BlockDraggableWrapper = ( { children, isRTL } ) => {
|
|
|
109
109
|
draggingScrollHandler( event );
|
|
110
110
|
};
|
|
111
111
|
|
|
112
|
-
const {
|
|
113
|
-
|
|
112
|
+
const {
|
|
113
|
+
onBlockDragOverWorklet,
|
|
114
|
+
onBlockDragEnd,
|
|
115
|
+
onBlockDrop,
|
|
116
|
+
targetBlockIndex,
|
|
117
|
+
} = useBlockDropZone();
|
|
114
118
|
|
|
115
119
|
// Stop dragging blocks if the block draggable is unmounted.
|
|
116
120
|
useEffect( () => {
|
|
@@ -184,7 +188,7 @@ const BlockDraggableWrapper = ( { children, isRTL } ) => {
|
|
|
184
188
|
chip.y.value = dragPosition.y;
|
|
185
189
|
currentYPosition.value = dragPosition.y;
|
|
186
190
|
|
|
187
|
-
|
|
191
|
+
onBlockDragOverWorklet( { x, y: y + scroll.offsetY.value } );
|
|
188
192
|
|
|
189
193
|
// Update scrolling velocity
|
|
190
194
|
scrollOnDragOver( dragPosition.y );
|
|
@@ -133,16 +133,6 @@ describe( 'BlockDraggable', () => {
|
|
|
133
133
|
// "firePanGesture" finishes the dragging gesture
|
|
134
134
|
firePanGesture( blockDraggableWrapper );
|
|
135
135
|
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
136
|
-
|
|
137
|
-
// Start dragging from block's mobile toolbar
|
|
138
|
-
fireLongPress(
|
|
139
|
-
paragraphBlock,
|
|
140
|
-
'draggable-trigger-mobile-toolbar'
|
|
141
|
-
);
|
|
142
|
-
expect( getDraggableChip( screen ) ).toBeVisible();
|
|
143
|
-
// "firePanGesture" finishes the dragging gesture
|
|
144
|
-
firePanGesture( blockDraggableWrapper );
|
|
145
|
-
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
146
136
|
} ) );
|
|
147
137
|
|
|
148
138
|
it( 'does not enable drag mode when selected and editing text', async () =>
|
|
@@ -243,16 +233,6 @@ describe( 'BlockDraggable', () => {
|
|
|
243
233
|
// "firePanGesture" finishes the dragging gesture
|
|
244
234
|
firePanGesture( blockDraggableWrapper );
|
|
245
235
|
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
246
|
-
|
|
247
|
-
// Start dragging from block's mobile toolbar
|
|
248
|
-
fireLongPress(
|
|
249
|
-
imageBlock,
|
|
250
|
-
'draggable-trigger-mobile-toolbar'
|
|
251
|
-
);
|
|
252
|
-
expect( getDraggableChip( screen ) ).toBeVisible();
|
|
253
|
-
// "firePanGesture" finishes the dragging gesture
|
|
254
|
-
firePanGesture( blockDraggableWrapper );
|
|
255
|
-
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
256
236
|
} ) );
|
|
257
237
|
} );
|
|
258
238
|
|
|
@@ -301,16 +281,6 @@ describe( 'BlockDraggable', () => {
|
|
|
301
281
|
// "firePanGesture" finishes the dragging gesture
|
|
302
282
|
firePanGesture( blockDraggableWrapper );
|
|
303
283
|
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
304
|
-
|
|
305
|
-
// Start dragging from block's mobile toolbar
|
|
306
|
-
fireLongPress(
|
|
307
|
-
galleryBlock,
|
|
308
|
-
'draggable-trigger-mobile-toolbar'
|
|
309
|
-
);
|
|
310
|
-
expect( getDraggableChip( screen ) ).toBeVisible();
|
|
311
|
-
// "firePanGesture" finishes the dragging gesture
|
|
312
|
-
firePanGesture( blockDraggableWrapper );
|
|
313
|
-
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
314
284
|
} ) );
|
|
315
285
|
|
|
316
286
|
it( 'enables drag mode when nested block is selected', async () =>
|
|
@@ -336,20 +306,6 @@ describe( 'BlockDraggable', () => {
|
|
|
336
306
|
// "firePanGesture" finishes the dragging gesture
|
|
337
307
|
firePanGesture( blockDraggableWrapper );
|
|
338
308
|
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
339
|
-
|
|
340
|
-
// After dropping the block, the gallery item gets automatically selected.
|
|
341
|
-
// Hence, we have to select the gallery item again.
|
|
342
|
-
fireEvent.press( galleryItem );
|
|
343
|
-
|
|
344
|
-
// Start dragging from nested block's mobile toolbar
|
|
345
|
-
fireLongPress(
|
|
346
|
-
galleryItem,
|
|
347
|
-
'draggable-trigger-mobile-toolbar'
|
|
348
|
-
);
|
|
349
|
-
expect( getDraggableChip( screen ) ).toBeVisible();
|
|
350
|
-
// "firePanGesture" finishes the dragging gesture
|
|
351
|
-
firePanGesture( blockDraggableWrapper );
|
|
352
|
-
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
353
309
|
} ) );
|
|
354
310
|
} );
|
|
355
311
|
|
|
@@ -390,16 +346,6 @@ describe( 'BlockDraggable', () => {
|
|
|
390
346
|
// "firePanGesture" finishes the dragging gesture
|
|
391
347
|
firePanGesture( blockDraggableWrapper );
|
|
392
348
|
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
393
|
-
|
|
394
|
-
// Start dragging from block's mobile toolbar
|
|
395
|
-
fireLongPress(
|
|
396
|
-
spacerBlock,
|
|
397
|
-
'draggable-trigger-mobile-toolbar'
|
|
398
|
-
);
|
|
399
|
-
expect( getDraggableChip( screen ) ).toBeVisible();
|
|
400
|
-
// "firePanGesture" finishes the dragging gesture
|
|
401
|
-
firePanGesture( blockDraggableWrapper );
|
|
402
|
-
expect( getDraggableChip( screen ) ).not.toBeDefined();
|
|
403
349
|
} ) );
|
|
404
350
|
} );
|
|
405
351
|
} );
|
|
@@ -29,7 +29,25 @@ import BlockContext from '../block-context';
|
|
|
29
29
|
*/
|
|
30
30
|
const DEFAULT_BLOCK_CONTEXT = {};
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
const Edit = ( props ) => {
|
|
33
|
+
const { name } = props;
|
|
34
|
+
const blockType = getBlockType( name );
|
|
35
|
+
|
|
36
|
+
if ( ! blockType ) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// `edit` and `save` are functions or components describing the markup
|
|
41
|
+
// with which a block is displayed. If `blockType` is valid, assign
|
|
42
|
+
// them preferentially as the render value for the block.
|
|
43
|
+
const Component = blockType.edit || blockType.save;
|
|
44
|
+
|
|
45
|
+
return <Component { ...props } />;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const EditWithFilters = withFilters( 'editor.BlockEdit' )( Edit );
|
|
49
|
+
|
|
50
|
+
const EditWithGeneratedProps = ( props ) => {
|
|
33
51
|
const { attributes = {}, name } = props;
|
|
34
52
|
const blockType = getBlockType( name );
|
|
35
53
|
const blockContext = useContext( BlockContext );
|
|
@@ -49,13 +67,8 @@ export const Edit = ( props ) => {
|
|
|
49
67
|
return null;
|
|
50
68
|
}
|
|
51
69
|
|
|
52
|
-
// `edit` and `save` are functions or components describing the markup
|
|
53
|
-
// with which a block is displayed. If `blockType` is valid, assign
|
|
54
|
-
// them preferentially as the render value for the block.
|
|
55
|
-
const Component = blockType.edit || blockType.save;
|
|
56
|
-
|
|
57
70
|
if ( blockType.apiVersion > 1 ) {
|
|
58
|
-
return <
|
|
71
|
+
return <EditWithFilters { ...props } context={ context } />;
|
|
59
72
|
}
|
|
60
73
|
|
|
61
74
|
// Generate a class name for the block's editable form.
|
|
@@ -69,8 +82,12 @@ export const Edit = ( props ) => {
|
|
|
69
82
|
);
|
|
70
83
|
|
|
71
84
|
return (
|
|
72
|
-
<
|
|
85
|
+
<EditWithFilters
|
|
86
|
+
{ ...props }
|
|
87
|
+
context={ context }
|
|
88
|
+
className={ className }
|
|
89
|
+
/>
|
|
73
90
|
);
|
|
74
91
|
};
|
|
75
92
|
|
|
76
|
-
export default
|
|
93
|
+
export default EditWithGeneratedProps;
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
headingLevel6,
|
|
11
11
|
paragraph,
|
|
12
12
|
} from '@wordpress/icons';
|
|
13
|
+
import { Icon } from '@wordpress/components';
|
|
13
14
|
|
|
14
15
|
/** @typedef {import('@wordpress/element').WPComponent} WPComponent */
|
|
15
16
|
|
|
@@ -39,5 +40,9 @@ const LEVEL_TO_PATH = {
|
|
|
39
40
|
* @return {?WPComponent} The icon.
|
|
40
41
|
*/
|
|
41
42
|
export default function HeadingLevelIcon( { level } ) {
|
|
42
|
-
|
|
43
|
+
if ( LEVEL_TO_PATH[ level ] ) {
|
|
44
|
+
return <Icon icon={ LEVEL_TO_PATH[ level ] } />;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return null;
|
|
43
48
|
}
|
|
@@ -30,7 +30,11 @@ const HEADING_LEVELS = [ 1, 2, 3, 4, 5, 6 ];
|
|
|
30
30
|
*
|
|
31
31
|
* @return {WPComponent} The toolbar.
|
|
32
32
|
*/
|
|
33
|
-
export default function HeadingLevelDropdown( {
|
|
33
|
+
export default function HeadingLevelDropdown( {
|
|
34
|
+
options = HEADING_LEVELS,
|
|
35
|
+
value,
|
|
36
|
+
onChange,
|
|
37
|
+
} ) {
|
|
34
38
|
const createLevelControl = (
|
|
35
39
|
targetLevel,
|
|
36
40
|
currentLevel,
|
|
@@ -53,9 +57,9 @@ export default function HeadingLevelDropdown( { selectedLevel, onChange } ) {
|
|
|
53
57
|
|
|
54
58
|
return (
|
|
55
59
|
<DropdownMenu
|
|
56
|
-
icon={ <HeadingLevelIcon level={
|
|
57
|
-
controls={
|
|
58
|
-
createLevelControl( index,
|
|
60
|
+
icon={ <HeadingLevelIcon level={ value } /> }
|
|
61
|
+
controls={ options.map( ( index ) =>
|
|
62
|
+
createLevelControl( index, value, onChange )
|
|
59
63
|
) }
|
|
60
64
|
label={ __( 'Change level' ) }
|
|
61
65
|
/>
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
|
|
21
21
|
// Reset unwanted margin-bottom from being applied to BaseControls within certain components.
|
|
22
22
|
.components-focal-point-picker-control,
|
|
23
|
-
.components-query-controls
|
|
23
|
+
.components-query-controls,
|
|
24
|
+
.components-range-control {
|
|
24
25
|
.components-base-control {
|
|
25
26
|
margin-bottom: 0;
|
|
26
27
|
}
|
|
@@ -7,51 +7,52 @@ import { View } from 'react-native';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { usePreferredColorSchemeStyle } from '@wordpress/compose';
|
|
10
|
-
import { alignmentHelpers } from '@wordpress/components';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Internal dependencies
|
|
14
13
|
*/
|
|
15
14
|
import styles from './block.scss';
|
|
16
15
|
|
|
16
|
+
const TEXT_BLOCKS_WITH_OUTLINE = [ 'core/missing' ];
|
|
17
|
+
|
|
17
18
|
function BlockOutline( {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
blockCategory,
|
|
20
|
+
hasInnerBlocks,
|
|
21
|
+
isRootList,
|
|
21
22
|
isSelected,
|
|
22
23
|
name,
|
|
23
|
-
screenWidth,
|
|
24
24
|
} ) {
|
|
25
|
-
const
|
|
26
|
-
const
|
|
25
|
+
const textBlockWithOutline = TEXT_BLOCKS_WITH_OUTLINE.includes( name );
|
|
26
|
+
const hasBlockTextCategory =
|
|
27
|
+
blockCategory === 'text' && ! textBlockWithOutline;
|
|
28
|
+
const hasBlockMediaCategory =
|
|
29
|
+
blockCategory === 'media' ||
|
|
30
|
+
blockCategory === 'embed' ||
|
|
31
|
+
! blockCategory;
|
|
32
|
+
const shouldShowCompactOutline =
|
|
33
|
+
( hasBlockMediaCategory && ! hasInnerBlocks ) || textBlockWithOutline;
|
|
27
34
|
|
|
28
35
|
const styleSolidBorder = [
|
|
29
36
|
styles.solidBorder,
|
|
30
|
-
isFullWidth( align ) && isScreenWidthWider && styles.borderFullWidth,
|
|
31
|
-
isFullWidth( align ) &&
|
|
32
|
-
isContainerRelated( name ) &&
|
|
33
|
-
isScreenWidthWider &&
|
|
34
|
-
styles.containerBorderFullWidth,
|
|
35
37
|
usePreferredColorSchemeStyle(
|
|
36
38
|
styles.solidBorderColor,
|
|
37
39
|
styles.solidBorderColorDark
|
|
38
40
|
),
|
|
41
|
+
shouldShowCompactOutline && styles.solidBorderCompact,
|
|
42
|
+
hasBlockTextCategory && styles.solidBorderTextContent,
|
|
39
43
|
];
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
|
|
45
|
+
const shoudlShowOutline =
|
|
46
|
+
isSelected &&
|
|
47
|
+
( ( hasBlockTextCategory && hasInnerBlocks ) ||
|
|
48
|
+
( ! hasBlockTextCategory && hasInnerBlocks ) ||
|
|
49
|
+
( ! hasBlockTextCategory && isRootList ) ||
|
|
50
|
+
textBlockWithOutline );
|
|
47
51
|
|
|
48
52
|
return (
|
|
49
|
-
|
|
50
|
-
{
|
|
51
|
-
|
|
52
|
-
) }
|
|
53
|
-
{ isParentSelected && <View style={ styleDashedBorder } /> }
|
|
54
|
-
</>
|
|
53
|
+
shoudlShowOutline && (
|
|
54
|
+
<View pointerEvents="box-none" style={ styleSolidBorder } />
|
|
55
|
+
)
|
|
55
56
|
);
|
|
56
57
|
}
|
|
57
58
|
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { Pressable,
|
|
4
|
+
import { Pressable, View } from 'react-native';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import { useCallback, useMemo,
|
|
9
|
+
import { useCallback, useMemo, useState } from '@wordpress/element';
|
|
10
10
|
import {
|
|
11
11
|
GlobalStylesContext,
|
|
12
12
|
getMergedGlobalStyles,
|
|
13
13
|
useMobileGlobalStylesColors,
|
|
14
|
-
alignmentHelpers,
|
|
15
14
|
useGlobalStyles,
|
|
16
15
|
} from '@wordpress/components';
|
|
17
16
|
import {
|
|
@@ -36,9 +35,7 @@ import { compose, ifCondition, pure } from '@wordpress/compose';
|
|
|
36
35
|
import BlockEdit from '../block-edit';
|
|
37
36
|
import BlockDraggable from '../block-draggable';
|
|
38
37
|
import BlockInvalidWarning from './block-invalid-warning';
|
|
39
|
-
import BlockMobileToolbar from '../block-mobile-toolbar';
|
|
40
38
|
import BlockOutline from './block-outline';
|
|
41
|
-
import styles from './block.scss';
|
|
42
39
|
import { store as blockEditorStore } from '../../store';
|
|
43
40
|
import { useLayout } from './layout';
|
|
44
41
|
import useSetting from '../use-setting';
|
|
@@ -63,27 +60,21 @@ function getWrapperProps( value, getWrapperPropsFunction ) {
|
|
|
63
60
|
|
|
64
61
|
function BlockWrapper( {
|
|
65
62
|
accessibilityLabel,
|
|
66
|
-
|
|
67
|
-
blockWidth,
|
|
63
|
+
blockCategory,
|
|
68
64
|
children,
|
|
69
65
|
clientId,
|
|
70
66
|
draggingClientId,
|
|
71
67
|
draggingEnabled,
|
|
68
|
+
hasInnerBlocks,
|
|
72
69
|
isDescendentBlockSelected,
|
|
73
|
-
|
|
70
|
+
isRootList,
|
|
74
71
|
isSelected,
|
|
75
|
-
isStackedHorizontally,
|
|
76
72
|
isTouchable,
|
|
77
73
|
marginHorizontal,
|
|
78
74
|
marginVertical,
|
|
79
|
-
|
|
75
|
+
name,
|
|
80
76
|
onFocus,
|
|
81
77
|
} ) {
|
|
82
|
-
const { width: screenWidth } = useWindowDimensions();
|
|
83
|
-
const anchorNodeRef = useRef();
|
|
84
|
-
const { isFullWidth } = alignmentHelpers;
|
|
85
|
-
const isScreenWidthEqual = blockWidth === screenWidth;
|
|
86
|
-
const isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;
|
|
87
78
|
const blockWrapperStyles = { flex: 1 };
|
|
88
79
|
const blockWrapperStyle = [
|
|
89
80
|
blockWrapperStyles,
|
|
@@ -104,9 +95,11 @@ function BlockWrapper( {
|
|
|
104
95
|
style={ blockWrapperStyle }
|
|
105
96
|
>
|
|
106
97
|
<BlockOutline
|
|
98
|
+
blockCategory={ blockCategory }
|
|
99
|
+
hasInnerBlocks={ hasInnerBlocks }
|
|
100
|
+
isRootList={ isRootList }
|
|
107
101
|
isSelected={ isSelected }
|
|
108
|
-
|
|
109
|
-
screenWidth={ screenWidth }
|
|
102
|
+
name={ name }
|
|
110
103
|
/>
|
|
111
104
|
<BlockDraggable
|
|
112
105
|
clientId={ clientId }
|
|
@@ -116,19 +109,6 @@ function BlockWrapper( {
|
|
|
116
109
|
>
|
|
117
110
|
{ children }
|
|
118
111
|
</BlockDraggable>
|
|
119
|
-
<View style={ styles.neutralToolbar } ref={ anchorNodeRef }>
|
|
120
|
-
{ isSelected && (
|
|
121
|
-
<BlockMobileToolbar
|
|
122
|
-
anchorNodeRef={ anchorNodeRef.current }
|
|
123
|
-
blockWidth={ blockWidth }
|
|
124
|
-
clientId={ clientId }
|
|
125
|
-
draggingClientId={ draggingClientId }
|
|
126
|
-
isFullWidth={ isFullWidthToolbar }
|
|
127
|
-
isStackedHorizontally={ isStackedHorizontally }
|
|
128
|
-
onDelete={ onDeleteBlock }
|
|
129
|
-
/>
|
|
130
|
-
) }
|
|
131
|
-
</View>
|
|
132
112
|
</Pressable>
|
|
133
113
|
);
|
|
134
114
|
}
|
|
@@ -159,9 +139,11 @@ function BlockListBlock( {
|
|
|
159
139
|
} ) {
|
|
160
140
|
const {
|
|
161
141
|
baseGlobalStyles,
|
|
142
|
+
blockCategory,
|
|
162
143
|
blockType,
|
|
163
144
|
draggingClientId,
|
|
164
145
|
draggingEnabled,
|
|
146
|
+
hasInnerBlocks,
|
|
165
147
|
isDescendantOfParentSelected,
|
|
166
148
|
isDescendentBlockSelected,
|
|
167
149
|
isParentSelected,
|
|
@@ -178,6 +160,7 @@ function BlockListBlock( {
|
|
|
178
160
|
hasSelectedInnerBlock,
|
|
179
161
|
} = select( blockEditorStore );
|
|
180
162
|
const currentBlockType = getBlockType( name || 'core/missing' );
|
|
163
|
+
const currentBlockCategory = currentBlockType?.category;
|
|
181
164
|
const blockOrder = getBlockIndex( clientId );
|
|
182
165
|
const descendentBlockSelected = hasSelectedInnerBlock(
|
|
183
166
|
clientId,
|
|
@@ -194,13 +177,15 @@ function BlockListBlock( {
|
|
|
194
177
|
const selectedParents = clientId ? parents : [];
|
|
195
178
|
const descendantOfParentSelected =
|
|
196
179
|
selectedParents.includes( rootClientId );
|
|
197
|
-
const
|
|
180
|
+
const blockHasInnerBlocks = getBlockCount( clientId ) > 0;
|
|
198
181
|
|
|
199
182
|
// For blocks with inner blocks, we only enable the dragging in the nested
|
|
200
183
|
// blocks if any of them are selected. This way we prevent the long-press
|
|
201
184
|
// gesture from being disabled for elements within the block UI.
|
|
202
185
|
const isDraggingEnabled =
|
|
203
|
-
!
|
|
186
|
+
! blockHasInnerBlocks ||
|
|
187
|
+
isSelected ||
|
|
188
|
+
! descendentBlockSelected;
|
|
204
189
|
// Dragging nested blocks is not supported yet. For this reason, the block to be dragged
|
|
205
190
|
// will be the top in the hierarchy.
|
|
206
191
|
const currentDraggingClientId =
|
|
@@ -211,9 +196,11 @@ function BlockListBlock( {
|
|
|
211
196
|
|
|
212
197
|
return {
|
|
213
198
|
baseGlobalStyles: globalStylesBaseStyles,
|
|
199
|
+
blockCategory: currentBlockCategory,
|
|
214
200
|
blockType: currentBlockType,
|
|
215
201
|
draggingClientId: currentDraggingClientId,
|
|
216
202
|
draggingEnabled: isDraggingEnabled,
|
|
203
|
+
hasInnerBlocks: blockHasInnerBlocks,
|
|
217
204
|
isDescendantOfParentSelected: descendantOfParentSelected,
|
|
218
205
|
isDescendentBlockSelected: descendentBlockSelected,
|
|
219
206
|
isParentSelected: parentSelected,
|
|
@@ -295,7 +282,6 @@ function BlockListBlock( {
|
|
|
295
282
|
),
|
|
296
283
|
] );
|
|
297
284
|
|
|
298
|
-
const { align } = attributes;
|
|
299
285
|
const isFocused = isSelected || isDescendentBlockSelected;
|
|
300
286
|
const isTouchable =
|
|
301
287
|
isSelected ||
|
|
@@ -312,20 +298,20 @@ function BlockListBlock( {
|
|
|
312
298
|
return (
|
|
313
299
|
<BlockWrapper
|
|
314
300
|
accessibilityLabel={ accessibilityLabel }
|
|
315
|
-
|
|
316
|
-
blockWidth={ blockWidth }
|
|
301
|
+
blockCategory={ blockCategory }
|
|
317
302
|
clientId={ clientId }
|
|
318
303
|
draggingClientId={ draggingClientId }
|
|
319
304
|
draggingEnabled={ draggingEnabled }
|
|
320
|
-
|
|
305
|
+
hasInnerBlocks={ hasInnerBlocks }
|
|
321
306
|
isDescendentBlockSelected={ isDescendentBlockSelected }
|
|
322
|
-
|
|
307
|
+
isFocused={ isFocused }
|
|
308
|
+
isRootList={ ! rootClientId }
|
|
323
309
|
isSelected={ isSelected }
|
|
324
310
|
isStackedHorizontally={ isStackedHorizontally }
|
|
325
311
|
isTouchable={ isTouchable }
|
|
326
312
|
marginHorizontal={ marginHorizontal }
|
|
327
313
|
marginVertical={ marginVertical }
|
|
328
|
-
|
|
314
|
+
name={ name }
|
|
329
315
|
onFocus={ onFocus }
|
|
330
316
|
>
|
|
331
317
|
{ () =>
|