@wordpress/block-editor 9.7.1-next.d6164808d3.0 → 10.0.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 +8 -0
- package/README.md +13 -1
- package/build/components/alignment-control/ui.js +6 -5
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-actions/index.js +5 -9
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +5 -5
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-content-overlay/index.js +2 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +2 -1
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-edit/edit.js +1 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-inspector/index.js +125 -17
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-compact.native.js +73 -0
- package/build/components/block-list/block-list-compact.native.js.map +1 -0
- package/build/components/block-list/block.js +40 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +4 -4
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +14 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -10
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +7 -12
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +20 -21
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +1 -7
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +3 -1
- package/build/components/block-lock/use-block-lock.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mover/button.js +4 -6
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +4 -6
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +24 -8
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-popover/inbetween.js +58 -16
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +14 -9
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +4 -2
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +3 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +7 -1
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +114 -25
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +9 -8
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +3 -2
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +13 -5
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +33 -15
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +4 -9
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +19 -10
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +131 -0
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
- package/build/components/block-vertical-alignment-control/ui.js +5 -2
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/colors-gradients/control.js +1 -0
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +1 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/iframe/index.js +31 -4
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +1 -7
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +6 -2
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -5
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +3 -6
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +14 -3
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +21 -8
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/tabs.js +11 -4
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js +6 -3
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +36 -5
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/block.js +23 -11
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +19 -2
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +8 -4
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +0 -1
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/provider/use-block-sync.js +1 -7
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +1 -1
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/rich-text/index.js +37 -19
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +11 -20
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +6 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +32 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/text-decoration-control/index.js +28 -17
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +21 -14
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +6 -11
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-popover/index.js +1 -1
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +7 -4
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +9 -28
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -0
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +7 -16
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/hooks/align.js +17 -3
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +3 -7
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/color-panel.js +2 -1
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/content-lock-ui.js +145 -0
- package/build/hooks/content-lock-ui.js.map +1 -0
- package/build/hooks/dimensions.js +6 -6
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +8 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-appearance.js +2 -1
- package/build/hooks/font-appearance.js.map +1 -1
- package/build/hooks/font-family.js +3 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +3 -1
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +23 -6
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +14 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +14 -10
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/letter-spacing.js +2 -1
- package/build/hooks/letter-spacing.js.map +1 -1
- package/build/hooks/line-height.js +2 -1
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js +3 -7
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/metadata-name.js +55 -0
- package/build/hooks/metadata-name.js.map +1 -0
- package/build/hooks/metadata.js +65 -0
- package/build/hooks/metadata.js.map +1 -0
- package/build/hooks/text-decoration.js +2 -1
- package/build/hooks/text-decoration.js.map +1 -1
- package/build/hooks/text-transform.js +2 -1
- package/build/hooks/text-transform.js.map +1 -1
- package/build/hooks/use-typography-props.js +51 -0
- package/build/hooks/use-typography-props.js.map +1 -0
- package/build/hooks/utils.js +3 -1
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/constrained.js +71 -22
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flow.js +30 -2
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +65 -21
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +39 -18
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +95 -9
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +1 -1
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +6 -5
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-actions/index.js +5 -8
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +5 -5
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +2 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +2 -1
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-edit/edit.js +1 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-inspector/index.js +127 -19
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-compact.native.js +58 -0
- package/build-module/components/block-list/block-list-compact.native.js.map +1 -0
- package/build-module/components/block-list/block.js +41 -9
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +4 -4
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +13 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -9
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +7 -12
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +20 -20
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +1 -6
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +3 -1
- package/build-module/components/block-lock/use-block-lock.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mover/button.js +4 -5
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -5
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +24 -7
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +59 -17
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +12 -9
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +4 -2
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +3 -1
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +6 -1
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +9 -8
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +12 -5
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +30 -15
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +4 -9
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +17 -10
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +119 -0
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
- package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +1 -0
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +1 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/iframe/index.js +32 -5
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +1 -6
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +5 -2
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -5
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -6
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +14 -3
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +20 -8
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/tabs.js +11 -4
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js +6 -2
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +37 -6
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/block.js +23 -11
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +19 -3
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +8 -4
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +0 -1
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +1 -6
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +1 -1
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +37 -18
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +11 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -2
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +30 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +25 -18
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +19 -15
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +6 -11
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-popover/index.js +1 -1
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +7 -4
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +9 -28
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -0
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +7 -15
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/hooks/align.js +16 -4
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +3 -6
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/color-panel.js +2 -1
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +128 -0
- package/build-module/hooks/content-lock-ui.js.map +1 -0
- package/build-module/hooks/dimensions.js +6 -6
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +6 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-appearance.js +2 -1
- package/build-module/hooks/font-appearance.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +3 -1
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +22 -6
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/index.js +4 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +15 -11
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/letter-spacing.js +2 -1
- package/build-module/hooks/letter-spacing.js.map +1 -1
- package/build-module/hooks/line-height.js +2 -1
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/lock.js +3 -6
- package/build-module/hooks/lock.js.map +1 -1
- package/build-module/hooks/metadata-name.js +45 -0
- package/build-module/hooks/metadata-name.js.map +1 -0
- package/build-module/hooks/metadata.js +50 -0
- package/build-module/hooks/metadata.js.map +1 -0
- package/build-module/hooks/text-decoration.js +2 -1
- package/build-module/hooks/text-decoration.js.map +1 -1
- package/build-module/hooks/text-transform.js +2 -1
- package/build-module/hooks/text-transform.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +38 -0
- package/build-module/hooks/use-typography-props.js.map +1 -0
- package/build-module/hooks/utils.js +4 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/constrained.js +74 -25
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flow.js +31 -3
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +58 -20
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +37 -18
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +80 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +1 -1
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-style/style-rtl.css +137 -86
- package/build-style/style.css +137 -86
- package/package.json +28 -28
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
- package/src/components/alignment-control/test/index.js +124 -33
- package/src/components/alignment-control/ui.js +8 -3
- package/src/components/block-actions/index.js +9 -8
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
- package/src/components/block-alignment-control/test/index.js +95 -31
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
- package/src/components/block-compare/test/block-view.js +3 -3
- package/src/components/block-content-overlay/index.js +2 -6
- package/src/components/block-content-overlay/style.scss +24 -3
- package/src/components/block-draggable/draggable-chip.js +4 -1
- package/src/components/block-edit/edit.js +5 -1
- package/src/components/block-edit/test/edit.js +23 -21
- package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
- package/src/components/block-icon/test/index.js +31 -16
- package/src/components/block-inspector/index.js +126 -12
- package/src/components/block-inspector/style.scss +7 -1
- package/src/components/block-list/block-list-compact.native.js +62 -0
- package/src/components/block-list/block.js +53 -13
- package/src/components/block-list/index.js +4 -4
- package/src/components/block-list/style.scss +68 -18
- package/src/components/block-list/test/block-list-context.native.js +11 -13
- package/src/components/block-list/use-block-props/index.js +10 -10
- package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
- package/src/components/block-list/use-block-props/use-focus-first-element.js +4 -9
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
- package/src/components/block-list/use-in-between-inserter.js +11 -13
- package/src/components/block-list-appender/index.js +27 -18
- package/src/components/block-list-appender/index.native.js +3 -6
- package/src/components/block-lock/use-block-lock.js +2 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
- package/src/components/block-mover/button.js +6 -5
- package/src/components/block-mover/index.js +8 -7
- package/src/components/block-mover/index.native.js +20 -13
- package/src/components/block-popover/inbetween.js +85 -21
- package/src/components/block-popover/index.js +25 -17
- package/src/components/block-popover/style.scss +3 -4
- package/src/components/block-preview/auto.js +4 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
- package/src/components/block-settings-menu-controls/README.md +9 -0
- package/src/components/block-settings-menu-controls/index.js +13 -2
- package/src/components/block-styles/preview-panel.js +3 -0
- package/src/components/block-switcher/block-transformations-menu.js +127 -33
- package/src/components/block-switcher/style.scss +4 -2
- package/src/components/block-switcher/test/index.js +1 -2
- package/src/components/block-title/test/index.js +28 -25
- package/src/components/block-toolbar/index.js +27 -17
- package/src/components/block-tools/block-contextual-toolbar.js +10 -3
- package/src/components/block-tools/block-selection-button.js +35 -16
- package/src/components/block-tools/index.js +40 -24
- package/src/components/block-tools/insertion-point.js +3 -7
- package/src/components/block-tools/selected-block-popover.js +16 -7
- package/src/components/block-tools/style.scss +5 -0
- package/src/components/block-tools/use-block-toolbar-popover-props.js +136 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
- package/src/components/block-vertical-alignment-control/test/index.js +92 -23
- package/src/components/block-vertical-alignment-control/ui.js +3 -2
- package/src/components/button-block-appender/style.scss +23 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
- package/src/components/colors/test/with-colors.js +37 -12
- package/src/components/colors-gradients/control.js +1 -0
- package/src/components/colors-gradients/dropdown.js +1 -1
- package/src/components/contrast-checker/test/index.js +135 -116
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
- package/src/components/default-block-appender/test/index.js +32 -18
- package/src/components/font-sizes/README.MD +9 -0
- package/src/components/iframe/index.js +64 -5
- package/src/components/inner-blocks/README.md +2 -1
- package/src/components/inner-blocks/default-block-appender.js +1 -6
- package/src/components/inner-blocks/index.js +3 -2
- package/src/components/inner-blocks/index.native.js +5 -1
- package/src/components/inner-blocks/use-inner-block-template-sync.js +9 -5
- package/src/components/inner-blocks/use-nested-settings-update.js +3 -1
- package/src/components/inserter/index.js +2 -8
- package/src/components/inserter/library.js +11 -5
- package/src/components/inserter/menu.js +42 -29
- package/src/components/inserter/preview-panel.js +1 -1
- package/src/components/inserter/stories/fixtures.js +44 -0
- package/src/components/inserter/stories/index.js +90 -0
- package/src/components/inserter/style.scss +21 -27
- package/src/components/inserter/tabs.js +8 -4
- package/src/components/link-control/link-preview.js +5 -3
- package/src/components/link-control/search-input.js +2 -2
- package/src/components/link-control/search-item.js +39 -7
- package/src/components/list-view/block.js +29 -10
- package/src/components/list-view/branch.js +27 -4
- package/src/components/list-view/index.js +8 -3
- package/src/components/list-view/use-block-selection.js +0 -1
- package/src/components/media-placeholder/test/index.js +2 -2
- package/src/components/media-replace-flow/README.md +1 -1
- package/src/components/provider/use-block-sync.js +3 -6
- package/src/components/publish-date-time-picker/index.js +1 -1
- package/src/components/rich-text/index.js +33 -35
- package/src/components/rich-text/index.native.js +8 -21
- package/src/components/spacing-sizes-control/spacing-input-control.js +5 -0
- package/src/components/spacing-sizes-control/test/utils.js +26 -0
- package/src/components/spacing-sizes-control/utils.js +36 -9
- package/src/components/text-decoration-control/index.js +41 -30
- package/src/components/text-decoration-control/stories/index.js +37 -0
- package/src/components/text-transform-control/index.js +27 -27
- package/src/components/text-transform-control/stories/index.js +37 -0
- package/src/components/tool-selector/index.js +9 -11
- package/src/components/url-input/test/button.js +145 -71
- package/src/components/url-popover/index.js +1 -1
- package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
- package/src/components/url-popover/test/index.js +14 -12
- package/src/components/use-block-drop-zone/index.js +15 -4
- package/src/components/use-moving-animation/index.js +9 -24
- package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
- package/src/components/warning/test/index.js +32 -29
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-select-all.js +13 -18
- package/src/hooks/align.js +24 -15
- package/src/hooks/anchor.js +1 -6
- package/src/hooks/color-panel.js +2 -1
- package/src/hooks/content-lock-ui.js +161 -0
- package/src/hooks/dimensions.js +7 -8
- package/src/hooks/duotone.js +13 -1
- package/src/hooks/font-appearance.js +1 -0
- package/src/hooks/font-family.js +2 -0
- package/src/hooks/font-size.js +2 -0
- package/src/hooks/gap.js +43 -25
- package/src/hooks/index.js +4 -0
- package/src/hooks/layout.js +27 -21
- package/src/hooks/layout.scss +7 -1
- package/src/hooks/letter-spacing.js +1 -0
- package/src/hooks/line-height.js +1 -0
- package/src/hooks/lock.js +1 -6
- package/src/hooks/metadata-name.js +48 -0
- package/src/hooks/metadata.js +64 -0
- package/src/hooks/test/gap.js +16 -22
- package/src/hooks/test/use-typography-props.js +28 -0
- package/src/hooks/text-decoration.js +1 -0
- package/src/hooks/text-transform.js +1 -0
- package/src/hooks/typography.scss +0 -6
- package/src/hooks/use-typography-props.js +41 -0
- package/src/hooks/utils.js +2 -11
- package/src/index.js +1 -0
- package/src/layouts/constrained.js +85 -33
- package/src/layouts/flow.js +21 -10
- package/src/store/actions.js +45 -4
- package/src/store/reducer.js +33 -21
- package/src/store/selectors.js +98 -19
- package/src/store/test/reducer.js +8 -5
- package/src/style.scss +0 -2
- package/src/utils/parse-css-unit-to-px.js +1 -1
- package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
- package/src/components/text-decoration-control/style.scss +0 -18
- package/src/components/text-transform-control/style.scss +0 -18
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -73,9 +73,9 @@ describe( 'BlockTitle', () => {
|
|
|
73
73
|
attributes: null,
|
|
74
74
|
} ) );
|
|
75
75
|
|
|
76
|
-
const
|
|
76
|
+
const { container } = render( <BlockTitle /> );
|
|
77
77
|
|
|
78
|
-
expect(
|
|
78
|
+
expect( container ).toBeEmptyDOMElement();
|
|
79
79
|
} );
|
|
80
80
|
|
|
81
81
|
it( 'renders nothing if block type does not exist', () => {
|
|
@@ -83,11 +83,12 @@ describe( 'BlockTitle', () => {
|
|
|
83
83
|
name: 'name-not-exists',
|
|
84
84
|
attributes: null,
|
|
85
85
|
} ) );
|
|
86
|
-
|
|
86
|
+
|
|
87
|
+
const { container } = render(
|
|
87
88
|
<BlockTitle clientId="afd1cb17-2c08-4e7a-91be-007ba7ddc3a1" />
|
|
88
89
|
);
|
|
89
90
|
|
|
90
|
-
expect(
|
|
91
|
+
expect( container ).toBeEmptyDOMElement();
|
|
91
92
|
} );
|
|
92
93
|
|
|
93
94
|
it( 'renders title if block type exists', () => {
|
|
@@ -96,9 +97,9 @@ describe( 'BlockTitle', () => {
|
|
|
96
97
|
attributes: null,
|
|
97
98
|
} ) );
|
|
98
99
|
|
|
99
|
-
|
|
100
|
+
render( <BlockTitle clientId="id-name-exists" /> );
|
|
100
101
|
|
|
101
|
-
expect(
|
|
102
|
+
expect( screen.getByText( 'Block Title' ) ).toBeVisible();
|
|
102
103
|
} );
|
|
103
104
|
|
|
104
105
|
it( 'renders label if it is set', () => {
|
|
@@ -107,9 +108,9 @@ describe( 'BlockTitle', () => {
|
|
|
107
108
|
attributes: null,
|
|
108
109
|
} ) );
|
|
109
110
|
|
|
110
|
-
|
|
111
|
+
render( <BlockTitle clientId="id-name-with-label" /> );
|
|
111
112
|
|
|
112
|
-
expect(
|
|
113
|
+
expect( screen.getByText( 'Test Label' ) ).toBeVisible();
|
|
113
114
|
} );
|
|
114
115
|
|
|
115
116
|
it( 'should prioritize reusable block title over title', () => {
|
|
@@ -119,9 +120,10 @@ describe( 'BlockTitle', () => {
|
|
|
119
120
|
attributes: null,
|
|
120
121
|
} ) );
|
|
121
122
|
|
|
122
|
-
|
|
123
|
+
render( <BlockTitle clientId="id-name-with-label" /> );
|
|
123
124
|
|
|
124
|
-
expect(
|
|
125
|
+
expect( screen.queryByText( 'Test Label' ) ).not.toBeInTheDocument();
|
|
126
|
+
expect( screen.getByText( 'Reuse me!' ) ).toBeVisible();
|
|
125
127
|
} );
|
|
126
128
|
|
|
127
129
|
it( 'should prioritize block label over title', () => {
|
|
@@ -130,11 +132,12 @@ describe( 'BlockTitle', () => {
|
|
|
130
132
|
attributes: null,
|
|
131
133
|
} ) );
|
|
132
134
|
|
|
133
|
-
|
|
135
|
+
render( <BlockTitle clientId="id-name-with-label" /> );
|
|
134
136
|
|
|
135
|
-
expect(
|
|
136
|
-
|
|
137
|
-
|
|
137
|
+
expect( screen.queryByText( 'Test Label' ) ).not.toBeInTheDocument();
|
|
138
|
+
expect(
|
|
139
|
+
screen.getByText( 'A Custom Label like a Block Variation Label' )
|
|
140
|
+
).toBeVisible();
|
|
138
141
|
} );
|
|
139
142
|
|
|
140
143
|
it( 'should default to block information title if no reusable title or block name is available', () => {
|
|
@@ -143,9 +146,9 @@ describe( 'BlockTitle', () => {
|
|
|
143
146
|
attributes: null,
|
|
144
147
|
} ) );
|
|
145
148
|
|
|
146
|
-
|
|
149
|
+
render( <BlockTitle clientId="id-name-with-label" /> );
|
|
147
150
|
|
|
148
|
-
expect(
|
|
151
|
+
expect( screen.getByText( 'Block With Label' ) ).toBeVisible();
|
|
149
152
|
} );
|
|
150
153
|
|
|
151
154
|
it( 'truncates the label with custom truncate length', () => {
|
|
@@ -154,14 +157,14 @@ describe( 'BlockTitle', () => {
|
|
|
154
157
|
attributes: null,
|
|
155
158
|
} ) );
|
|
156
159
|
|
|
157
|
-
|
|
160
|
+
render(
|
|
158
161
|
<BlockTitle
|
|
159
162
|
clientId="id-name-with-long-label"
|
|
160
163
|
maximumLength={ 12 }
|
|
161
164
|
/>
|
|
162
165
|
);
|
|
163
166
|
|
|
164
|
-
expect(
|
|
167
|
+
expect( screen.getByText( 'This is a...' ) ).toBeVisible();
|
|
165
168
|
} );
|
|
166
169
|
|
|
167
170
|
it( 'should not truncate the label if maximum length is undefined', () => {
|
|
@@ -170,12 +173,12 @@ describe( 'BlockTitle', () => {
|
|
|
170
173
|
attributes: null,
|
|
171
174
|
} ) );
|
|
172
175
|
|
|
173
|
-
|
|
174
|
-
<BlockTitle clientId="id-name-with-long-label" />
|
|
175
|
-
);
|
|
176
|
+
render( <BlockTitle clientId="id-name-with-long-label" /> );
|
|
176
177
|
|
|
177
|
-
expect(
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
expect(
|
|
179
|
+
screen.getByText(
|
|
180
|
+
'This is a longer label than typical for blocks to have.'
|
|
181
|
+
)
|
|
182
|
+
).toBeVisible();
|
|
180
183
|
} );
|
|
181
184
|
} );
|
|
@@ -37,6 +37,7 @@ const BlockToolbar = ( { hideDragHandle } ) => {
|
|
|
37
37
|
hasReducedUI,
|
|
38
38
|
isValid,
|
|
39
39
|
isVisual,
|
|
40
|
+
isContentLocked,
|
|
40
41
|
} = useSelect( ( select ) => {
|
|
41
42
|
const {
|
|
42
43
|
getBlockName,
|
|
@@ -45,6 +46,7 @@ const BlockToolbar = ( { hideDragHandle } ) => {
|
|
|
45
46
|
isBlockValid,
|
|
46
47
|
getBlockRootClientId,
|
|
47
48
|
getSettings,
|
|
49
|
+
__unstableGetContentLockingParent,
|
|
48
50
|
} = select( blockEditorStore );
|
|
49
51
|
const selectedBlockClientIds = getSelectedBlockClientIds();
|
|
50
52
|
const selectedBlockClientId = selectedBlockClientIds[ 0 ];
|
|
@@ -66,6 +68,9 @@ const BlockToolbar = ( { hideDragHandle } ) => {
|
|
|
66
68
|
isVisual: selectedBlockClientIds.every(
|
|
67
69
|
( id ) => getBlockMode( id ) === 'visual'
|
|
68
70
|
),
|
|
71
|
+
isContentLocked: !! __unstableGetContentLockingParent(
|
|
72
|
+
selectedBlockClientId
|
|
73
|
+
),
|
|
69
74
|
};
|
|
70
75
|
}, [] );
|
|
71
76
|
|
|
@@ -112,24 +117,27 @@ const BlockToolbar = ( { hideDragHandle } ) => {
|
|
|
112
117
|
|
|
113
118
|
return (
|
|
114
119
|
<div className={ classes }>
|
|
115
|
-
{ ! isMultiToolbar &&
|
|
116
|
-
|
|
117
|
-
|
|
120
|
+
{ ! isMultiToolbar &&
|
|
121
|
+
! displayHeaderToolbar &&
|
|
122
|
+
! isContentLocked && <BlockParentSelector /> }
|
|
118
123
|
<div ref={ nodeRef } { ...showMoversGestures }>
|
|
119
|
-
{ ( shouldShowVisualToolbar || isMultiToolbar ) &&
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
{ ( shouldShowVisualToolbar || isMultiToolbar ) &&
|
|
125
|
+
! isContentLocked && (
|
|
126
|
+
<ToolbarGroup className="block-editor-block-toolbar__block-controls">
|
|
127
|
+
<BlockSwitcher clientIds={ blockClientIds } />
|
|
128
|
+
{ ! isMultiToolbar && (
|
|
129
|
+
<BlockLockToolbar
|
|
130
|
+
clientId={ blockClientIds[ 0 ] }
|
|
131
|
+
/>
|
|
132
|
+
) }
|
|
133
|
+
<BlockMover
|
|
134
|
+
clientIds={ blockClientIds }
|
|
135
|
+
hideDragHandle={
|
|
136
|
+
hideDragHandle || hasReducedUI
|
|
137
|
+
}
|
|
125
138
|
/>
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
clientIds={ blockClientIds }
|
|
129
|
-
hideDragHandle={ hideDragHandle || hasReducedUI }
|
|
130
|
-
/>
|
|
131
|
-
</ToolbarGroup>
|
|
132
|
-
) }
|
|
139
|
+
</ToolbarGroup>
|
|
140
|
+
) }
|
|
133
141
|
</div>
|
|
134
142
|
{ shouldShowVisualToolbar && isMultiToolbar && (
|
|
135
143
|
<BlockGroupToolbar />
|
|
@@ -161,7 +169,9 @@ const BlockToolbar = ( { hideDragHandle } ) => {
|
|
|
161
169
|
</>
|
|
162
170
|
) }
|
|
163
171
|
<BlockEditVisuallyButton clientIds={ blockClientIds } />
|
|
164
|
-
|
|
172
|
+
{ ! isContentLocked && (
|
|
173
|
+
<BlockSettingsMenu clientIds={ blockClientIds } />
|
|
174
|
+
) }
|
|
165
175
|
</div>
|
|
166
176
|
);
|
|
167
177
|
};
|
|
@@ -20,8 +20,12 @@ import { store as blockEditorStore } from '../../store';
|
|
|
20
20
|
function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
|
|
21
21
|
const { blockType, hasParents, showParentSelector } = useSelect(
|
|
22
22
|
( select ) => {
|
|
23
|
-
const {
|
|
24
|
-
|
|
23
|
+
const {
|
|
24
|
+
getBlockName,
|
|
25
|
+
getBlockParents,
|
|
26
|
+
getSelectedBlockClientIds,
|
|
27
|
+
__unstableGetContentLockingParent,
|
|
28
|
+
} = select( blockEditorStore );
|
|
25
29
|
const { getBlockType } = select( blocksStore );
|
|
26
30
|
const selectedBlockClientIds = getSelectedBlockClientIds();
|
|
27
31
|
const selectedBlockClientId = selectedBlockClientIds[ 0 ];
|
|
@@ -42,7 +46,10 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
|
|
|
42
46
|
'__experimentalParentSelector',
|
|
43
47
|
true
|
|
44
48
|
) &&
|
|
45
|
-
selectedBlockClientIds.length <= 1
|
|
49
|
+
selectedBlockClientIds.length <= 1 &&
|
|
50
|
+
! __unstableGetContentLockingParent(
|
|
51
|
+
selectedBlockClientId
|
|
52
|
+
),
|
|
46
53
|
};
|
|
47
54
|
},
|
|
48
55
|
[]
|
|
@@ -39,6 +39,7 @@ import { store as blockEditorStore } from '../../store';
|
|
|
39
39
|
import BlockDraggable from '../block-draggable';
|
|
40
40
|
import useBlockDisplayInformation from '../use-block-display-information';
|
|
41
41
|
import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
|
|
42
|
+
import BlockMover from '../block-mover';
|
|
42
43
|
|
|
43
44
|
/**
|
|
44
45
|
* Block selection button component, displaying the label of the block. If the block
|
|
@@ -59,6 +60,7 @@ function BlockSelectionButton( { clientId, rootClientId } ) {
|
|
|
59
60
|
getBlockIndex,
|
|
60
61
|
hasBlockMovingClientId,
|
|
61
62
|
getBlockListSettings,
|
|
63
|
+
__unstableGetEditorMode,
|
|
62
64
|
} = select( blockEditorStore );
|
|
63
65
|
const index = getBlockIndex( clientId );
|
|
64
66
|
const { name, attributes } = getBlock( clientId );
|
|
@@ -69,11 +71,19 @@ function BlockSelectionButton( { clientId, rootClientId } ) {
|
|
|
69
71
|
attributes,
|
|
70
72
|
blockMovingMode,
|
|
71
73
|
orientation: getBlockListSettings( rootClientId )?.orientation,
|
|
74
|
+
editorMode: __unstableGetEditorMode(),
|
|
72
75
|
};
|
|
73
76
|
},
|
|
74
77
|
[ clientId, rootClientId ]
|
|
75
78
|
);
|
|
76
|
-
const {
|
|
79
|
+
const {
|
|
80
|
+
index,
|
|
81
|
+
name,
|
|
82
|
+
attributes,
|
|
83
|
+
blockMovingMode,
|
|
84
|
+
orientation,
|
|
85
|
+
editorMode,
|
|
86
|
+
} = selected;
|
|
77
87
|
const { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );
|
|
78
88
|
const ref = useRef();
|
|
79
89
|
|
|
@@ -236,25 +246,34 @@ function BlockSelectionButton( { clientId, rootClientId } ) {
|
|
|
236
246
|
<BlockIcon icon={ blockInformation?.icon } showColors />
|
|
237
247
|
</FlexItem>
|
|
238
248
|
<FlexItem>
|
|
239
|
-
|
|
240
|
-
{
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
249
|
+
{ editorMode === 'zoom-out' && (
|
|
250
|
+
<BlockMover clientIds={ [ clientId ] } hideDragHandle />
|
|
251
|
+
) }
|
|
252
|
+
{ editorMode === 'navigation' && (
|
|
253
|
+
<BlockDraggable clientIds={ [ clientId ] }>
|
|
254
|
+
{ ( draggableProps ) => (
|
|
255
|
+
<Button
|
|
256
|
+
icon={ dragHandle }
|
|
257
|
+
className="block-selection-button_drag-handle"
|
|
258
|
+
aria-hidden="true"
|
|
259
|
+
label={ dragHandleLabel }
|
|
260
|
+
// Should not be able to tab to drag handle as this
|
|
261
|
+
// button can only be used with a pointer device.
|
|
262
|
+
tabIndex="-1"
|
|
263
|
+
{ ...draggableProps }
|
|
264
|
+
/>
|
|
265
|
+
) }
|
|
266
|
+
</BlockDraggable>
|
|
267
|
+
) }
|
|
253
268
|
</FlexItem>
|
|
254
269
|
<FlexItem>
|
|
255
270
|
<Button
|
|
256
271
|
ref={ ref }
|
|
257
|
-
onClick={
|
|
272
|
+
onClick={
|
|
273
|
+
editorMode === 'navigation'
|
|
274
|
+
? () => setNavigationMode( false )
|
|
275
|
+
: undefined
|
|
276
|
+
}
|
|
258
277
|
onKeyDown={ onKeyDown }
|
|
259
278
|
label={ label }
|
|
260
279
|
showTooltip={ false }
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { first, last } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -10,15 +5,20 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
10
5
|
import { useViewportMatch } from '@wordpress/compose';
|
|
11
6
|
import { Popover } from '@wordpress/components';
|
|
12
7
|
import { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';
|
|
8
|
+
import { useRef } from '@wordpress/element';
|
|
13
9
|
|
|
14
10
|
/**
|
|
15
11
|
* Internal dependencies
|
|
16
12
|
*/
|
|
17
|
-
import
|
|
13
|
+
import {
|
|
14
|
+
InsertionPointOpenRef,
|
|
15
|
+
default as InsertionPoint,
|
|
16
|
+
} from './insertion-point';
|
|
18
17
|
import SelectedBlockPopover from './selected-block-popover';
|
|
19
18
|
import { store as blockEditorStore } from '../../store';
|
|
20
19
|
import BlockContextualToolbar from './block-contextual-toolbar';
|
|
21
20
|
import usePopoverScroll from '../block-popover/use-popover-scroll';
|
|
21
|
+
import ZoomOutModeInserters from './zoom-out-mode-inserters';
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Renders block tools (the block toolbar, select/navigation mode toolbar, the
|
|
@@ -35,10 +35,15 @@ export default function BlockTools( {
|
|
|
35
35
|
...props
|
|
36
36
|
} ) {
|
|
37
37
|
const isLargeViewport = useViewportMatch( 'medium' );
|
|
38
|
-
const hasFixedToolbar = useSelect(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
const { hasFixedToolbar, isZoomOutMode } = useSelect( ( select ) => {
|
|
39
|
+
const { __unstableGetEditorMode, getSettings } =
|
|
40
|
+
select( blockEditorStore );
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
isZoomOutMode: __unstableGetEditorMode() === 'zoom-out',
|
|
44
|
+
hasFixedToolbar: getSettings().hasFixedToolbar,
|
|
45
|
+
};
|
|
46
|
+
}, [] );
|
|
42
47
|
const isMatch = useShortcutEventMatch();
|
|
43
48
|
const { getSelectedBlockClientIds, getBlockRootClientId } =
|
|
44
49
|
useSelect( blockEditorStore );
|
|
@@ -59,14 +64,14 @@ export default function BlockTools( {
|
|
|
59
64
|
const clientIds = getSelectedBlockClientIds();
|
|
60
65
|
if ( clientIds.length ) {
|
|
61
66
|
event.preventDefault();
|
|
62
|
-
const rootClientId = getBlockRootClientId(
|
|
67
|
+
const rootClientId = getBlockRootClientId( clientIds[ 0 ] );
|
|
63
68
|
moveBlocksUp( clientIds, rootClientId );
|
|
64
69
|
}
|
|
65
70
|
} else if ( isMatch( 'core/block-editor/move-down', event ) ) {
|
|
66
71
|
const clientIds = getSelectedBlockClientIds();
|
|
67
72
|
if ( clientIds.length ) {
|
|
68
73
|
event.preventDefault();
|
|
69
|
-
const rootClientId = getBlockRootClientId(
|
|
74
|
+
const rootClientId = getBlockRootClientId( clientIds[ 0 ] );
|
|
70
75
|
moveBlocksDown( clientIds, rootClientId );
|
|
71
76
|
}
|
|
72
77
|
} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {
|
|
@@ -85,13 +90,13 @@ export default function BlockTools( {
|
|
|
85
90
|
const clientIds = getSelectedBlockClientIds();
|
|
86
91
|
if ( clientIds.length ) {
|
|
87
92
|
event.preventDefault();
|
|
88
|
-
insertAfterBlock(
|
|
93
|
+
insertAfterBlock( clientIds[ clientIds.length - 1 ] );
|
|
89
94
|
}
|
|
90
95
|
} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {
|
|
91
96
|
const clientIds = getSelectedBlockClientIds();
|
|
92
97
|
if ( clientIds.length ) {
|
|
93
98
|
event.preventDefault();
|
|
94
|
-
insertBeforeBlock(
|
|
99
|
+
insertBeforeBlock( clientIds[ 0 ] );
|
|
95
100
|
}
|
|
96
101
|
} else if ( isMatch( 'core/block-editor/unselect', event ) ) {
|
|
97
102
|
const clientIds = getSelectedBlockClientIds();
|
|
@@ -106,30 +111,41 @@ export default function BlockTools( {
|
|
|
106
111
|
}
|
|
107
112
|
}
|
|
108
113
|
|
|
114
|
+
const blockToolbarRef = usePopoverScroll( __unstableContentRef );
|
|
115
|
+
const blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );
|
|
116
|
+
|
|
109
117
|
return (
|
|
110
118
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
111
119
|
<div { ...props } onKeyDown={ onKeyDown }>
|
|
112
|
-
<
|
|
113
|
-
{
|
|
114
|
-
<
|
|
120
|
+
<InsertionPointOpenRef.Provider value={ useRef( false ) }>
|
|
121
|
+
{ ! isZoomOutMode && (
|
|
122
|
+
<InsertionPoint
|
|
123
|
+
__unstableContentRef={ __unstableContentRef }
|
|
124
|
+
/>
|
|
115
125
|
) }
|
|
126
|
+
{ ! isZoomOutMode &&
|
|
127
|
+
( hasFixedToolbar || ! isLargeViewport ) && (
|
|
128
|
+
<BlockContextualToolbar isFixed />
|
|
129
|
+
) }
|
|
116
130
|
{ /* Even if the toolbar is fixed, the block popover is still
|
|
117
|
-
needed for navigation and
|
|
131
|
+
needed for navigation and zoom-out mode. */ }
|
|
118
132
|
<SelectedBlockPopover
|
|
119
133
|
__unstableContentRef={ __unstableContentRef }
|
|
120
134
|
/>
|
|
121
135
|
{ /* Used for the inline rich text toolbar. */ }
|
|
122
|
-
<Popover.Slot
|
|
123
|
-
name="block-toolbar"
|
|
124
|
-
ref={ usePopoverScroll( __unstableContentRef ) }
|
|
125
|
-
/>
|
|
136
|
+
<Popover.Slot name="block-toolbar" ref={ blockToolbarRef } />
|
|
126
137
|
{ children }
|
|
127
138
|
{ /* Used for inline rich text popovers. */ }
|
|
128
139
|
<Popover.Slot
|
|
129
140
|
name="__unstable-block-tools-after"
|
|
130
|
-
ref={
|
|
141
|
+
ref={ blockToolbarAfterRef }
|
|
131
142
|
/>
|
|
132
|
-
|
|
143
|
+
{ isZoomOutMode && (
|
|
144
|
+
<ZoomOutModeInserters
|
|
145
|
+
__unstableContentRef={ __unstableContentRef }
|
|
146
|
+
/>
|
|
147
|
+
) }
|
|
148
|
+
</InsertionPointOpenRef.Provider>
|
|
133
149
|
</div>
|
|
134
150
|
);
|
|
135
151
|
}
|
|
@@ -200,6 +200,7 @@ function InsertionPointPopover( {
|
|
|
200
200
|
<motion.div
|
|
201
201
|
variants={ lineVariants }
|
|
202
202
|
className="block-editor-block-list__insertion-point-indicator"
|
|
203
|
+
data-testid="block-list-insertion-point-indicator"
|
|
203
204
|
/>
|
|
204
205
|
{ isInserterShown && (
|
|
205
206
|
<motion.div
|
|
@@ -227,15 +228,10 @@ function InsertionPointPopover( {
|
|
|
227
228
|
);
|
|
228
229
|
}
|
|
229
230
|
|
|
230
|
-
export default function InsertionPoint(
|
|
231
|
+
export default function InsertionPoint( props ) {
|
|
231
232
|
const isVisible = useSelect( ( select ) => {
|
|
232
233
|
return select( blockEditorStore ).isBlockInsertionPointVisible();
|
|
233
234
|
}, [] );
|
|
234
235
|
|
|
235
|
-
return
|
|
236
|
-
<InsertionPointOpenRef.Provider value={ useRef( false ) }>
|
|
237
|
-
{ isVisible && <InsertionPointPopover { ...props } /> }
|
|
238
|
-
{ children }
|
|
239
|
-
</InsertionPointOpenRef.Provider>
|
|
240
|
-
);
|
|
236
|
+
return isVisible && <InsertionPointPopover { ...props } />;
|
|
241
237
|
}
|
|
@@ -20,10 +20,11 @@ import BlockSelectionButton from './block-selection-button';
|
|
|
20
20
|
import BlockContextualToolbar from './block-contextual-toolbar';
|
|
21
21
|
import { store as blockEditorStore } from '../../store';
|
|
22
22
|
import BlockPopover from '../block-popover';
|
|
23
|
+
import useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';
|
|
23
24
|
|
|
24
25
|
function selector( select ) {
|
|
25
26
|
const {
|
|
26
|
-
|
|
27
|
+
__unstableGetEditorMode,
|
|
27
28
|
isMultiSelecting,
|
|
28
29
|
hasMultiSelection,
|
|
29
30
|
isTyping,
|
|
@@ -31,7 +32,7 @@ function selector( select ) {
|
|
|
31
32
|
getLastMultiSelectedBlockClientId,
|
|
32
33
|
} = select( blockEditorStore );
|
|
33
34
|
return {
|
|
34
|
-
|
|
35
|
+
editorMode: __unstableGetEditorMode(),
|
|
35
36
|
isMultiSelecting: isMultiSelecting(),
|
|
36
37
|
isTyping: isTyping(),
|
|
37
38
|
hasFixedToolbar: getSettings().hasFixedToolbar,
|
|
@@ -50,7 +51,7 @@ function SelectedBlockPopover( {
|
|
|
50
51
|
__unstableContentRef,
|
|
51
52
|
} ) {
|
|
52
53
|
const {
|
|
53
|
-
|
|
54
|
+
editorMode,
|
|
54
55
|
isMultiSelecting,
|
|
55
56
|
isTyping,
|
|
56
57
|
hasFixedToolbar,
|
|
@@ -79,17 +80,18 @@ function SelectedBlockPopover( {
|
|
|
79
80
|
const { stopTyping } = useDispatch( blockEditorStore );
|
|
80
81
|
|
|
81
82
|
const showEmptyBlockSideInserter =
|
|
82
|
-
! isTyping &&
|
|
83
|
-
const shouldShowBreadcrumb =
|
|
83
|
+
! isTyping && editorMode === 'edit' && isEmptyDefaultBlock;
|
|
84
|
+
const shouldShowBreadcrumb =
|
|
85
|
+
editorMode === 'navigation' || editorMode === 'zoom-out';
|
|
84
86
|
const shouldShowContextualToolbar =
|
|
85
|
-
|
|
87
|
+
editorMode === 'edit' &&
|
|
86
88
|
! hasFixedToolbar &&
|
|
87
89
|
isLargeViewport &&
|
|
88
90
|
! isMultiSelecting &&
|
|
89
91
|
! showEmptyBlockSideInserter &&
|
|
90
92
|
! isTyping;
|
|
91
93
|
const canFocusHiddenToolbar =
|
|
92
|
-
|
|
94
|
+
editorMode === 'edit' &&
|
|
93
95
|
! shouldShowContextualToolbar &&
|
|
94
96
|
! hasFixedToolbar &&
|
|
95
97
|
! isEmptyDefaultBlock;
|
|
@@ -113,6 +115,11 @@ function SelectedBlockPopover( {
|
|
|
113
115
|
// to it when re-mounting.
|
|
114
116
|
const initialToolbarItemIndexRef = useRef();
|
|
115
117
|
|
|
118
|
+
const popoverProps = useBlockToolbarPopoverProps( {
|
|
119
|
+
contentElement: __unstableContentRef?.current,
|
|
120
|
+
clientId,
|
|
121
|
+
} );
|
|
122
|
+
|
|
116
123
|
if ( ! shouldShowBreadcrumb && ! shouldShowContextualToolbar ) {
|
|
117
124
|
return null;
|
|
118
125
|
}
|
|
@@ -126,6 +133,8 @@ function SelectedBlockPopover( {
|
|
|
126
133
|
} ) }
|
|
127
134
|
__unstablePopoverSlot={ __unstablePopoverSlot }
|
|
128
135
|
__unstableContentRef={ __unstableContentRef }
|
|
136
|
+
resize={ false }
|
|
137
|
+
{ ...popoverProps }
|
|
129
138
|
>
|
|
130
139
|
{ shouldShowContextualToolbar && (
|
|
131
140
|
<BlockContextualToolbar
|