@wordpress/block-editor 9.8.1-next.957ca95e4c.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 +6 -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.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 +3 -9
- 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 +3 -2
- 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 +9 -8
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +13 -8
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- 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/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/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 +27 -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/text-decoration-control/index.js +1 -1
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +1 -1
- 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/use-select-all.js +1 -7
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/hooks/align.js +14 -2
- package/build/hooks/align.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/duotone.js +8 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +14 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +11 -9
- package/build/hooks/layout.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/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 +59 -20
- package/build/layouts/constrained.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.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 +3 -8
- 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 +3 -2
- 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 +9 -8
- 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 +13 -8
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- 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/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/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 +27 -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/text-decoration-control/index.js +1 -1
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +1 -1
- 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/use-select-all.js +1 -6
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/hooks/align.js +12 -2
- package/build-module/hooks/align.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/duotone.js +6 -1
- package/build-module/hooks/duotone.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 +11 -9
- package/build-module/hooks/layout.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/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 +61 -22
- package/build-module/layouts/constrained.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 +95 -45
- package/build-style/style.css +95 -45
- 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.js +53 -13
- package/src/components/block-list/index.js +4 -4
- package/src/components/block-list/style.scss +39 -12
- 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 +3 -8
- 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 +3 -2
- 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-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 +9 -7
- package/src/components/block-tools/style.scss +5 -0
- package/src/components/block-tools/use-block-toolbar-popover-props.js +19 -6
- 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/color-palette/test/__snapshots__/control.js.snap +3 -12
- package/src/components/colors/test/with-colors.js +37 -12
- 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/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 +24 -35
- package/src/components/rich-text/index.native.js +8 -21
- package/src/components/text-decoration-control/index.js +1 -1
- package/src/components/text-transform-control/index.js +1 -1
- 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/use-select-all.js +4 -6
- package/src/hooks/align.js +22 -13
- package/src/hooks/color-panel.js +2 -1
- package/src/hooks/content-lock-ui.js +161 -0
- package/src/hooks/duotone.js +13 -1
- package/src/hooks/index.js +4 -0
- package/src/hooks/layout.js +25 -19
- package/src/hooks/layout.scss +7 -1
- package/src/hooks/metadata-name.js +48 -0
- package/src/hooks/metadata.js +64 -0
- package/src/hooks/test/use-typography-props.js +28 -0
- 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 +73 -24
- 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/utils/parse-css-unit-to-px.js +1 -1
- package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
|
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
-
var _lodash = require("lodash");
|
|
15
|
-
|
|
16
14
|
var _data = require("@wordpress/data");
|
|
17
15
|
|
|
18
16
|
var _compose = require("@wordpress/compose");
|
|
@@ -21,7 +19,7 @@ var _components = require("@wordpress/components");
|
|
|
21
19
|
|
|
22
20
|
var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
|
|
23
21
|
|
|
24
|
-
var _insertionPoint =
|
|
22
|
+
var _insertionPoint = _interopRequireWildcard(require("./insertion-point"));
|
|
25
23
|
|
|
26
24
|
var _selectedBlockPopover = _interopRequireDefault(require("./selected-block-popover"));
|
|
27
25
|
|
|
@@ -31,9 +29,11 @@ var _blockContextualToolbar = _interopRequireDefault(require("./block-contextual
|
|
|
31
29
|
|
|
32
30
|
var _usePopoverScroll = _interopRequireDefault(require("../block-popover/use-popover-scroll"));
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
var _zoomOutModeInserters = _interopRequireDefault(require("./zoom-out-mode-inserters"));
|
|
33
|
+
|
|
34
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
|
+
|
|
36
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* WordPress dependencies
|
|
@@ -59,7 +59,19 @@ function BlockTools(_ref) {
|
|
|
59
59
|
...props
|
|
60
60
|
} = _ref;
|
|
61
61
|
const isLargeViewport = (0, _compose.useViewportMatch)('medium');
|
|
62
|
-
const
|
|
62
|
+
const {
|
|
63
|
+
hasFixedToolbar,
|
|
64
|
+
isZoomOutMode
|
|
65
|
+
} = (0, _data.useSelect)(select => {
|
|
66
|
+
const {
|
|
67
|
+
__unstableGetEditorMode,
|
|
68
|
+
getSettings
|
|
69
|
+
} = select(_store.store);
|
|
70
|
+
return {
|
|
71
|
+
isZoomOutMode: __unstableGetEditorMode() === 'zoom-out',
|
|
72
|
+
hasFixedToolbar: getSettings().hasFixedToolbar
|
|
73
|
+
};
|
|
74
|
+
}, []);
|
|
63
75
|
const isMatch = (0, _keyboardShortcuts.__unstableUseShortcutEventMatch)();
|
|
64
76
|
const {
|
|
65
77
|
getSelectedBlockClientIds,
|
|
@@ -83,7 +95,7 @@ function BlockTools(_ref) {
|
|
|
83
95
|
|
|
84
96
|
if (clientIds.length) {
|
|
85
97
|
event.preventDefault();
|
|
86
|
-
const rootClientId = getBlockRootClientId(
|
|
98
|
+
const rootClientId = getBlockRootClientId(clientIds[0]);
|
|
87
99
|
moveBlocksUp(clientIds, rootClientId);
|
|
88
100
|
}
|
|
89
101
|
} else if (isMatch('core/block-editor/move-down', event)) {
|
|
@@ -91,7 +103,7 @@ function BlockTools(_ref) {
|
|
|
91
103
|
|
|
92
104
|
if (clientIds.length) {
|
|
93
105
|
event.preventDefault();
|
|
94
|
-
const rootClientId = getBlockRootClientId(
|
|
106
|
+
const rootClientId = getBlockRootClientId(clientIds[0]);
|
|
95
107
|
moveBlocksDown(clientIds, rootClientId);
|
|
96
108
|
}
|
|
97
109
|
} else if (isMatch('core/block-editor/duplicate', event)) {
|
|
@@ -113,14 +125,14 @@ function BlockTools(_ref) {
|
|
|
113
125
|
|
|
114
126
|
if (clientIds.length) {
|
|
115
127
|
event.preventDefault();
|
|
116
|
-
insertAfterBlock(
|
|
128
|
+
insertAfterBlock(clientIds[clientIds.length - 1]);
|
|
117
129
|
}
|
|
118
130
|
} else if (isMatch('core/block-editor/insert-before', event)) {
|
|
119
131
|
const clientIds = getSelectedBlockClientIds();
|
|
120
132
|
|
|
121
133
|
if (clientIds.length) {
|
|
122
134
|
event.preventDefault();
|
|
123
|
-
insertBeforeBlock(
|
|
135
|
+
insertBeforeBlock(clientIds[0]);
|
|
124
136
|
}
|
|
125
137
|
} else if (isMatch('core/block-editor/unselect', event)) {
|
|
126
138
|
const clientIds = getSelectedBlockClientIds();
|
|
@@ -134,21 +146,27 @@ function BlockTools(_ref) {
|
|
|
134
146
|
}
|
|
135
147
|
}
|
|
136
148
|
|
|
149
|
+
const blockToolbarRef = (0, _usePopoverScroll.default)(__unstableContentRef);
|
|
150
|
+
const blockToolbarAfterRef = (0, _usePopoverScroll.default)(__unstableContentRef);
|
|
137
151
|
return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
138
152
|
(0, _element.createElement)("div", (0, _extends2.default)({}, props, {
|
|
139
153
|
onKeyDown: onKeyDown
|
|
140
|
-
}), (0, _element.createElement)(_insertionPoint.
|
|
154
|
+
}), (0, _element.createElement)(_insertionPoint.InsertionPointOpenRef.Provider, {
|
|
155
|
+
value: (0, _element.useRef)(false)
|
|
156
|
+
}, !isZoomOutMode && (0, _element.createElement)(_insertionPoint.default, {
|
|
141
157
|
__unstableContentRef: __unstableContentRef
|
|
142
|
-
}, (hasFixedToolbar || !isLargeViewport) && (0, _element.createElement)(_blockContextualToolbar.default, {
|
|
158
|
+
}), !isZoomOutMode && (hasFixedToolbar || !isLargeViewport) && (0, _element.createElement)(_blockContextualToolbar.default, {
|
|
143
159
|
isFixed: true
|
|
144
160
|
}), (0, _element.createElement)(_selectedBlockPopover.default, {
|
|
145
161
|
__unstableContentRef: __unstableContentRef
|
|
146
162
|
}), (0, _element.createElement)(_components.Popover.Slot, {
|
|
147
163
|
name: "block-toolbar",
|
|
148
|
-
ref:
|
|
164
|
+
ref: blockToolbarRef
|
|
149
165
|
}), children, (0, _element.createElement)(_components.Popover.Slot, {
|
|
150
166
|
name: "__unstable-block-tools-after",
|
|
151
|
-
ref:
|
|
167
|
+
ref: blockToolbarAfterRef
|
|
168
|
+
}), isZoomOutMode && (0, _element.createElement)(_zoomOutModeInserters.default, {
|
|
169
|
+
__unstableContentRef: __unstableContentRef
|
|
152
170
|
})))
|
|
153
171
|
);
|
|
154
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"names":["BlockTools","children","__unstableContentRef","props","isLargeViewport","hasFixedToolbar","select","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"names":["BlockTools","children","__unstableContentRef","props","isLargeViewport","hasFixedToolbar","isZoomOutMode","select","__unstableGetEditorMode","getSettings","blockEditorStore","isMatch","getSelectedBlockClientIds","getBlockRootClientId","duplicateBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","clearSelectedBlock","moveBlocksUp","moveBlocksDown","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","ownerDocument","defaultView","getSelection","removeAllRanges","current","focus","blockToolbarRef","blockToolbarAfterRef"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport SelectedBlockPopover from './selected-block-popover';\nimport { store as blockEditorStore } from '../../store';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { hasFixedToolbar, isZoomOutMode } = useSelect( ( select ) => {\n\t\tconst { __unstableGetEditorMode, getSettings } =\n\t\t\tselect( blockEditorStore );\n\n\t\treturn {\n\t\t\tisZoomOutMode: __unstableGetEditorMode() === 'zoom-out',\n\t\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\t};\n\t}, [] );\n\tconst isMatch = useShortcutEventMatch();\n\tconst { getSelectedBlockClientIds, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst {\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tclearSelectedBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) return;\n\n\t\tif ( isMatch( 'core/block-editor/move-up', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/move-down', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tclearSelectedBlock();\n\t\t\t\tevent.target.ownerDocument.defaultView\n\t\t\t\t\t.getSelection()\n\t\t\t\t\t.removeAllRanges();\n\t\t\t\t__unstableContentRef?.current.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isZoomOutMode && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isZoomOutMode &&\n\t\t\t\t\t( hasFixedToolbar || ! isLargeViewport ) && (\n\t\t\t\t\t\t<BlockContextualToolbar isFixed />\n\t\t\t\t\t) }\n\t\t\t\t{ /* Even if the toolbar is fixed, the block popover is still\n\t\t\t\t\tneeded for navigation and zoom-out mode. */ }\n\t\t\t\t<SelectedBlockPopover\n\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t/>\n\t\t\t\t{ /* Used for the inline rich text toolbar. */ }\n\t\t\t\t<Popover.Slot name=\"block-toolbar\" ref={ blockToolbarRef } />\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -214,7 +214,8 @@ function InsertionPointPopover(_ref) {
|
|
|
214
214
|
onHoverEnd: maybeHideInserterPoint
|
|
215
215
|
}, (0, _element.createElement)(_components.__unstableMotion.div, {
|
|
216
216
|
variants: lineVariants,
|
|
217
|
-
className: "block-editor-block-list__insertion-point-indicator"
|
|
217
|
+
className: "block-editor-block-list__insertion-point-indicator",
|
|
218
|
+
"data-testid": "block-list-insertion-point-indicator"
|
|
218
219
|
}), isInserterShown && (0, _element.createElement)(_components.__unstableMotion.div, {
|
|
219
220
|
variants: inserterVariants,
|
|
220
221
|
className: (0, _classnames.default)('block-editor-block-list__insertion-point-inserter')
|
|
@@ -232,16 +233,10 @@ function InsertionPointPopover(_ref) {
|
|
|
232
233
|
}))));
|
|
233
234
|
}
|
|
234
235
|
|
|
235
|
-
function InsertionPoint(
|
|
236
|
-
let {
|
|
237
|
-
children,
|
|
238
|
-
...props
|
|
239
|
-
} = _ref2;
|
|
236
|
+
function InsertionPoint(props) {
|
|
240
237
|
const isVisible = (0, _data.useSelect)(select => {
|
|
241
238
|
return select(_store.store).isBlockInsertionPointVisible();
|
|
242
239
|
}, []);
|
|
243
|
-
return (0, _element.createElement)(
|
|
244
|
-
value: (0, _element.useRef)(false)
|
|
245
|
-
}, isVisible && (0, _element.createElement)(InsertionPointPopover, props), children);
|
|
240
|
+
return isVisible && (0, _element.createElement)(InsertionPointPopover, props);
|
|
246
241
|
}
|
|
247
242
|
//# sourceMappingURL=insertion-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"names":["InsertionPointOpenRef","InsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","selectBlock","hideInsertionPoint","blockEditorStore","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","insertionPoint","order","length","_previousClientId","index","_nextClientId","__unstableWithInserter","isVertical","disableMotion","onClick","event","target","current","onFocus","maybeHideInserterPoint","horizontalLine","start","width","top","bottom","x","rest","hover","verticalLine","height","left","right","y","lineVariants","opacity","borderRadius","transition","delay","inserterVariants","scale","className","isOpen","InsertionPoint","children","props","isVisible","isBlockInsertionPointVisible"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, createContext, useContext } from '@wordpress/element';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopoverInbetween from '../block-popover/inbetween';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t};\n\t}, [] );\n\tconst isVertical = orientation === 'vertical';\n\n\tconst disableMotion = useReducedMotion();\n\n\tfunction onClick( event ) {\n\t\tif ( event.target === ref.current && nextClientId ) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\tfunction maybeHideInserterPoint( event ) {\n\t\t// Only hide the inserter if it's triggered on the wrapper,\n\t\t// and the inserter is not open.\n\t\tif ( event.target === ref.current && ! openRef.current ) {\n\t\t\thideInsertionPoint();\n\t\t}\n\t}\n\n\t// Define animation variants for the line element.\n\tconst horizontalLine = {\n\t\tstart: {\n\t\t\twidth: 0,\n\t\t\ttop: '50%',\n\t\t\tbottom: '50%',\n\t\t\tx: 0,\n\t\t},\n\t\trest: {\n\t\t\twidth: 4,\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tx: -2,\n\t\t},\n\t\thover: {\n\t\t\twidth: 4,\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tx: -2,\n\t\t},\n\t};\n\tconst verticalLine = {\n\t\tstart: {\n\t\t\theight: 0,\n\t\t\tleft: '50%',\n\t\t\tright: '50%',\n\t\t\ty: 0,\n\t\t},\n\t\trest: {\n\t\t\theight: 4,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ty: -2,\n\t\t},\n\t\thover: {\n\t\t\theight: 4,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ty: -2,\n\t\t},\n\t};\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\t...( ! isVertical ? horizontalLine.start : verticalLine.start ),\n\t\t\topacity: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\t...( ! isVertical ? horizontalLine.rest : verticalLine.rest ),\n\t\t\topacity: 1,\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: { delay: isInserterShown ? 0.4 : 0 },\n\t\t},\n\t\thover: {\n\t\t\t...( ! isVertical ? horizontalLine.hover : verticalLine.hover ),\n\t\t\topacity: 1,\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: { delay: 0.4 },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.2 },\n\t\t},\n\t};\n\n\tconst className = classnames(\n\t\t'block-editor-block-list__insertion-point',\n\t\t'is-' + orientation\n\t);\n\n\treturn (\n\t\t<BlockPopoverInbetween\n\t\t\tpreviousClientId={ previousClientId }\n\t\t\tnextClientId={ nextClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ classnames( className, {\n\t\t\t\t\t'is-with-inserter': isInserterShown,\n\t\t\t\t} ) }\n\t\t\t\tonHoverEnd={ maybeHideInserterPoint }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ isInserterShown && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</BlockPopoverInbetween>\n\t);\n}\n\nexport default function InsertionPoint( { children, ...props } ) {\n\tconst isVisible = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).isBlockInsertionPointVisible();\n\t}, [] );\n\n\treturn (\n\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t{ isVisible && <InsertionPointPopover { ...props } /> }\n\t\t\t{ children }\n\t\t</InsertionPointOpenRef.Provider>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"names":["InsertionPointOpenRef","InsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","selectBlock","hideInsertionPoint","blockEditorStore","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","insertionPoint","order","length","_previousClientId","index","_nextClientId","__unstableWithInserter","isVertical","disableMotion","onClick","event","target","current","onFocus","maybeHideInserterPoint","horizontalLine","start","width","top","bottom","x","rest","hover","verticalLine","height","left","right","y","lineVariants","opacity","borderRadius","transition","delay","inserterVariants","scale","className","isOpen","InsertionPoint","props","isVisible","isBlockInsertionPointVisible"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, createContext, useContext } from '@wordpress/element';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopoverInbetween from '../block-popover/inbetween';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t};\n\t}, [] );\n\tconst isVertical = orientation === 'vertical';\n\n\tconst disableMotion = useReducedMotion();\n\n\tfunction onClick( event ) {\n\t\tif ( event.target === ref.current && nextClientId ) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\tfunction maybeHideInserterPoint( event ) {\n\t\t// Only hide the inserter if it's triggered on the wrapper,\n\t\t// and the inserter is not open.\n\t\tif ( event.target === ref.current && ! openRef.current ) {\n\t\t\thideInsertionPoint();\n\t\t}\n\t}\n\n\t// Define animation variants for the line element.\n\tconst horizontalLine = {\n\t\tstart: {\n\t\t\twidth: 0,\n\t\t\ttop: '50%',\n\t\t\tbottom: '50%',\n\t\t\tx: 0,\n\t\t},\n\t\trest: {\n\t\t\twidth: 4,\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tx: -2,\n\t\t},\n\t\thover: {\n\t\t\twidth: 4,\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tx: -2,\n\t\t},\n\t};\n\tconst verticalLine = {\n\t\tstart: {\n\t\t\theight: 0,\n\t\t\tleft: '50%',\n\t\t\tright: '50%',\n\t\t\ty: 0,\n\t\t},\n\t\trest: {\n\t\t\theight: 4,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ty: -2,\n\t\t},\n\t\thover: {\n\t\t\theight: 4,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ty: -2,\n\t\t},\n\t};\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\t...( ! isVertical ? horizontalLine.start : verticalLine.start ),\n\t\t\topacity: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\t...( ! isVertical ? horizontalLine.rest : verticalLine.rest ),\n\t\t\topacity: 1,\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: { delay: isInserterShown ? 0.4 : 0 },\n\t\t},\n\t\thover: {\n\t\t\t...( ! isVertical ? horizontalLine.hover : verticalLine.hover ),\n\t\t\topacity: 1,\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: { delay: 0.4 },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.2 },\n\t\t},\n\t};\n\n\tconst className = classnames(\n\t\t'block-editor-block-list__insertion-point',\n\t\t'is-' + orientation\n\t);\n\n\treturn (\n\t\t<BlockPopoverInbetween\n\t\t\tpreviousClientId={ previousClientId }\n\t\t\tnextClientId={ nextClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ classnames( className, {\n\t\t\t\t\t'is-with-inserter': isInserterShown,\n\t\t\t\t} ) }\n\t\t\t\tonHoverEnd={ maybeHideInserterPoint }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\tdata-testid=\"block-list-insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ isInserterShown && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</BlockPopoverInbetween>\n\t);\n}\n\nexport default function InsertionPoint( props ) {\n\tconst isVisible = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).isBlockInsertionPointVisible();\n\t}, [] );\n\n\treturn isVisible && <InsertionPointPopover { ...props } />;\n}\n"]}
|
|
@@ -46,7 +46,7 @@ var _useBlockToolbarPopoverProps = _interopRequireDefault(require("./use-block-t
|
|
|
46
46
|
*/
|
|
47
47
|
function selector(select) {
|
|
48
48
|
const {
|
|
49
|
-
|
|
49
|
+
__unstableGetEditorMode,
|
|
50
50
|
isMultiSelecting,
|
|
51
51
|
hasMultiSelection,
|
|
52
52
|
isTyping,
|
|
@@ -54,7 +54,7 @@ function selector(select) {
|
|
|
54
54
|
getLastMultiSelectedBlockClientId
|
|
55
55
|
} = select(_store.store);
|
|
56
56
|
return {
|
|
57
|
-
|
|
57
|
+
editorMode: __unstableGetEditorMode(),
|
|
58
58
|
isMultiSelecting: isMultiSelecting(),
|
|
59
59
|
isTyping: isTyping(),
|
|
60
60
|
hasFixedToolbar: getSettings().hasFixedToolbar,
|
|
@@ -72,7 +72,7 @@ function SelectedBlockPopover(_ref) {
|
|
|
72
72
|
__unstableContentRef
|
|
73
73
|
} = _ref;
|
|
74
74
|
const {
|
|
75
|
-
|
|
75
|
+
editorMode,
|
|
76
76
|
isMultiSelecting,
|
|
77
77
|
isTyping,
|
|
78
78
|
hasFixedToolbar,
|
|
@@ -98,10 +98,10 @@ function SelectedBlockPopover(_ref) {
|
|
|
98
98
|
const {
|
|
99
99
|
stopTyping
|
|
100
100
|
} = (0, _data.useDispatch)(_store.store);
|
|
101
|
-
const showEmptyBlockSideInserter = !isTyping &&
|
|
102
|
-
const shouldShowBreadcrumb =
|
|
103
|
-
const shouldShowContextualToolbar =
|
|
104
|
-
const canFocusHiddenToolbar =
|
|
101
|
+
const showEmptyBlockSideInserter = !isTyping && editorMode === 'edit' && isEmptyDefaultBlock;
|
|
102
|
+
const shouldShowBreadcrumb = editorMode === 'navigation' || editorMode === 'zoom-out';
|
|
103
|
+
const shouldShowContextualToolbar = editorMode === 'edit' && !hasFixedToolbar && isLargeViewport && !isMultiSelecting && !showEmptyBlockSideInserter && !isTyping;
|
|
104
|
+
const canFocusHiddenToolbar = editorMode === 'edit' && !shouldShowContextualToolbar && !hasFixedToolbar && !isEmptyDefaultBlock;
|
|
105
105
|
(0, _keyboardShortcuts.useShortcut)('core/block-editor/focus-toolbar', () => {
|
|
106
106
|
isToolbarForced.current = true;
|
|
107
107
|
stopTyping(true);
|
|
@@ -130,7 +130,8 @@ function SelectedBlockPopover(_ref) {
|
|
|
130
130
|
'is-insertion-point-visible': isInsertionPointVisible
|
|
131
131
|
}),
|
|
132
132
|
__unstablePopoverSlot: __unstablePopoverSlot,
|
|
133
|
-
__unstableContentRef: __unstableContentRef
|
|
133
|
+
__unstableContentRef: __unstableContentRef,
|
|
134
|
+
resize: false
|
|
134
135
|
}, popoverProps), shouldShowContextualToolbar && (0, _element.createElement)(_blockContextualToolbar.default // If the toolbar is being shown because of being forced
|
|
135
136
|
// it should focus the toolbar right after the mount.
|
|
136
137
|
, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/selected-block-popover.js"],"names":["selector","select","isNavigationMode","isMultiSelecting","hasMultiSelection","isTyping","getSettings","getLastMultiSelectedBlockClientId","blockEditorStore","hasFixedToolbar","lastClientId","SelectedBlockPopover","clientId","rootClientId","isEmptyDefaultBlock","capturingClientId","__unstablePopoverSlot","__unstableContentRef","isInsertionPointVisible","isBlockInsertionPointVisible","getBlockInsertionPoint","getBlockOrder","insertionPoint","order","index","isLargeViewport","isToolbarForced","stopTyping","showEmptyBlockSideInserter","shouldShowBreadcrumb","shouldShowContextualToolbar","canFocusHiddenToolbar","current","isDisabled","initialToolbarItemIndexRef","popoverProps","contentElement","wrapperSelector","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlockRootClientId","getBlock","getBlockParents","__experimentalGetBlockListSettingsForBlocks","name","attributes","blockParentsClientIds","parentBlockListSettings","parentClientId","__experimentalCaptureToolbars","WrappedBlockPopover","selected"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\n\nfunction selector( select ) {\n\tconst {\n\t\tisNavigationMode,\n\t\tisMultiSelecting,\n\t\thasMultiSelection,\n\t\tisTyping,\n\t\tgetSettings,\n\t\tgetLastMultiSelectedBlockClientId,\n\t} = select( blockEditorStore );\n\treturn {\n\t\tisNavigationMode: isNavigationMode(),\n\t\tisMultiSelecting: isMultiSelecting(),\n\t\tisTyping: isTyping(),\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tlastClientId: hasMultiSelection()\n\t\t\t? getLastMultiSelectedBlockClientId()\n\t\t\t: null,\n\t};\n}\n\nfunction SelectedBlockPopover( {\n\tclientId,\n\trootClientId,\n\tisEmptyDefaultBlock,\n\tcapturingClientId,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst {\n\t\tisNavigationMode,\n\t\tisMultiSelecting,\n\t\tisTyping,\n\t\thasFixedToolbar,\n\t\tlastClientId,\n\t} = useSelect( selector, [] );\n\tconst isInsertionPointVisible = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( ! isBlockInsertionPointVisible() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\t\t\treturn order[ insertionPoint.index ] === clientId;\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isToolbarForced = useRef( false );\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tconst showEmptyBlockSideInserter =\n\t\t! isTyping && ! isNavigationMode && isEmptyDefaultBlock;\n\tconst shouldShowBreadcrumb = isNavigationMode;\n\tconst shouldShowContextualToolbar =\n\t\t! isNavigationMode &&\n\t\t! hasFixedToolbar &&\n\t\tisLargeViewport &&\n\t\t! isMultiSelecting &&\n\t\t! showEmptyBlockSideInserter &&\n\t\t! isTyping;\n\tconst canFocusHiddenToolbar =\n\t\t! isNavigationMode &&\n\t\t! shouldShowContextualToolbar &&\n\t\t! hasFixedToolbar &&\n\t\t! isEmptyDefaultBlock;\n\n\tuseShortcut(\n\t\t'core/block-editor/focus-toolbar',\n\t\t() => {\n\t\t\tisToolbarForced.current = true;\n\t\t\tstopTyping( true );\n\t\t},\n\t\t{\n\t\t\tisDisabled: ! canFocusHiddenToolbar,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\tif ( ! shouldShowBreadcrumb && ! shouldShowContextualToolbar ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockPopover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ classnames( 'block-editor-block-list__block-popover', {\n\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t} ) }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t} }\n\t\t\t\t\t// Resets the index whenever the active block changes so\n\t\t\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t<BlockSelectionButton\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BlockPopover>\n\t);\n}\n\nfunction wrapperSelector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlock,\n\t\tgetBlockParents,\n\t\t__experimentalGetBlockListSettingsForBlocks,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tif ( ! clientId ) {\n\t\treturn;\n\t}\n\n\tconst { name, attributes = {} } = getBlock( clientId ) || {};\n\tconst blockParentsClientIds = getBlockParents( clientId );\n\n\t// Get Block List Settings for all ancestors of the current Block clientId.\n\tconst parentBlockListSettings = __experimentalGetBlockListSettingsForBlocks(\n\t\tblockParentsClientIds\n\t);\n\n\t// Get the clientId of the topmost parent with the capture toolbars setting.\n\tconst capturingClientId = find(\n\t\tblockParentsClientIds,\n\t\t( parentClientId ) =>\n\t\t\tparentBlockListSettings[ parentClientId ]\n\t\t\t\t?.__experimentalCaptureToolbars\n\t);\n\n\treturn {\n\t\tclientId,\n\t\trootClientId: getBlockRootClientId( clientId ),\n\t\tname,\n\t\tisEmptyDefaultBlock:\n\t\t\tname && isUnmodifiedDefaultBlock( { name, attributes } ),\n\t\tcapturingClientId,\n\t};\n}\n\nexport default function WrappedBlockPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst selected = useSelect( wrapperSelector, [] );\n\n\tif ( ! selected ) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\tclientId,\n\t\trootClientId,\n\t\tname,\n\t\tisEmptyDefaultBlock,\n\t\tcapturingClientId,\n\t} = selected;\n\n\tif ( ! name ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectedBlockPopover\n\t\t\tclientId={ clientId }\n\t\t\trootClientId={ rootClientId }\n\t\t\tisEmptyDefaultBlock={ isEmptyDefaultBlock }\n\t\t\tcapturingClientId={ capturingClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t/>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/selected-block-popover.js"],"names":["selector","select","__unstableGetEditorMode","isMultiSelecting","hasMultiSelection","isTyping","getSettings","getLastMultiSelectedBlockClientId","blockEditorStore","editorMode","hasFixedToolbar","lastClientId","SelectedBlockPopover","clientId","rootClientId","isEmptyDefaultBlock","capturingClientId","__unstablePopoverSlot","__unstableContentRef","isInsertionPointVisible","isBlockInsertionPointVisible","getBlockInsertionPoint","getBlockOrder","insertionPoint","order","index","isLargeViewport","isToolbarForced","stopTyping","showEmptyBlockSideInserter","shouldShowBreadcrumb","shouldShowContextualToolbar","canFocusHiddenToolbar","current","isDisabled","initialToolbarItemIndexRef","popoverProps","contentElement","wrapperSelector","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlockRootClientId","getBlock","getBlockParents","__experimentalGetBlockListSettingsForBlocks","name","attributes","blockParentsClientIds","parentBlockListSettings","parentClientId","__experimentalCaptureToolbars","WrappedBlockPopover","selected"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\n\nfunction selector( select ) {\n\tconst {\n\t\t__unstableGetEditorMode,\n\t\tisMultiSelecting,\n\t\thasMultiSelection,\n\t\tisTyping,\n\t\tgetSettings,\n\t\tgetLastMultiSelectedBlockClientId,\n\t} = select( blockEditorStore );\n\treturn {\n\t\teditorMode: __unstableGetEditorMode(),\n\t\tisMultiSelecting: isMultiSelecting(),\n\t\tisTyping: isTyping(),\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tlastClientId: hasMultiSelection()\n\t\t\t? getLastMultiSelectedBlockClientId()\n\t\t\t: null,\n\t};\n}\n\nfunction SelectedBlockPopover( {\n\tclientId,\n\trootClientId,\n\tisEmptyDefaultBlock,\n\tcapturingClientId,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst {\n\t\teditorMode,\n\t\tisMultiSelecting,\n\t\tisTyping,\n\t\thasFixedToolbar,\n\t\tlastClientId,\n\t} = useSelect( selector, [] );\n\tconst isInsertionPointVisible = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( ! isBlockInsertionPointVisible() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\t\t\treturn order[ insertionPoint.index ] === clientId;\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isToolbarForced = useRef( false );\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tconst showEmptyBlockSideInserter =\n\t\t! isTyping && editorMode === 'edit' && isEmptyDefaultBlock;\n\tconst shouldShowBreadcrumb =\n\t\teditorMode === 'navigation' || editorMode === 'zoom-out';\n\tconst shouldShowContextualToolbar =\n\t\teditorMode === 'edit' &&\n\t\t! hasFixedToolbar &&\n\t\tisLargeViewport &&\n\t\t! isMultiSelecting &&\n\t\t! showEmptyBlockSideInserter &&\n\t\t! isTyping;\n\tconst canFocusHiddenToolbar =\n\t\teditorMode === 'edit' &&\n\t\t! shouldShowContextualToolbar &&\n\t\t! hasFixedToolbar &&\n\t\t! isEmptyDefaultBlock;\n\n\tuseShortcut(\n\t\t'core/block-editor/focus-toolbar',\n\t\t() => {\n\t\t\tisToolbarForced.current = true;\n\t\t\tstopTyping( true );\n\t\t},\n\t\t{\n\t\t\tisDisabled: ! canFocusHiddenToolbar,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\tif ( ! shouldShowBreadcrumb && ! shouldShowContextualToolbar ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockPopover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ classnames( 'block-editor-block-list__block-popover', {\n\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t} ) }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\tresize={ false }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t} }\n\t\t\t\t\t// Resets the index whenever the active block changes so\n\t\t\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t<BlockSelectionButton\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BlockPopover>\n\t);\n}\n\nfunction wrapperSelector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlock,\n\t\tgetBlockParents,\n\t\t__experimentalGetBlockListSettingsForBlocks,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tif ( ! clientId ) {\n\t\treturn;\n\t}\n\n\tconst { name, attributes = {} } = getBlock( clientId ) || {};\n\tconst blockParentsClientIds = getBlockParents( clientId );\n\n\t// Get Block List Settings for all ancestors of the current Block clientId.\n\tconst parentBlockListSettings = __experimentalGetBlockListSettingsForBlocks(\n\t\tblockParentsClientIds\n\t);\n\n\t// Get the clientId of the topmost parent with the capture toolbars setting.\n\tconst capturingClientId = find(\n\t\tblockParentsClientIds,\n\t\t( parentClientId ) =>\n\t\t\tparentBlockListSettings[ parentClientId ]\n\t\t\t\t?.__experimentalCaptureToolbars\n\t);\n\n\treturn {\n\t\tclientId,\n\t\trootClientId: getBlockRootClientId( clientId ),\n\t\tname,\n\t\tisEmptyDefaultBlock:\n\t\t\tname && isUnmodifiedDefaultBlock( { name, attributes } ),\n\t\tcapturingClientId,\n\t};\n}\n\nexport default function WrappedBlockPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst selected = useSelect( wrapperSelector, [] );\n\n\tif ( ! selected ) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\tclientId,\n\t\trootClientId,\n\t\tname,\n\t\tisEmptyDefaultBlock,\n\t\tcapturingClientId,\n\t} = selected;\n\n\tif ( ! name ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectedBlockPopover\n\t\t\tclientId={ clientId }\n\t\t\trootClientId={ rootClientId }\n\t\t\tisEmptyDefaultBlock={ isEmptyDefaultBlock }\n\t\t\tcapturingClientId={ capturingClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -26,16 +26,17 @@ var _useBlockRefs = require("../block-list/use-block-props/use-block-refs");
|
|
|
26
26
|
// down the toolbar will stay on screen by adopting a sticky position at the
|
|
27
27
|
// top of the viewport.
|
|
28
28
|
const DEFAULT_PROPS = {
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
flip: false,
|
|
30
|
+
shift: true
|
|
31
31
|
}; // When there isn't enough height between the top of the block and the editor
|
|
32
32
|
// canvas, the `shift` prop is set to `false`, as it will cause the block to be
|
|
33
|
-
// obscured. The `flip` behavior is enabled
|
|
34
|
-
//
|
|
33
|
+
// obscured. The `flip` behavior is enabled, which positions the toolbar below
|
|
34
|
+
// the block. This only happens if the block is smaller than the viewport, as
|
|
35
|
+
// otherwise the toolbar will be off-screen.
|
|
35
36
|
|
|
36
37
|
const RESTRICTED_HEIGHT_PROPS = {
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
flip: true,
|
|
39
|
+
shift: false
|
|
39
40
|
};
|
|
40
41
|
/**
|
|
41
42
|
* Get the popover props for the block toolbar, determined by the space at the top of the canvas and the toolbar height.
|
|
@@ -53,9 +54,13 @@ function getProps(contentElement, selectedBlockElement, toolbarHeight) {
|
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
const blockRect = selectedBlockElement.getBoundingClientRect();
|
|
56
|
-
const contentRect = contentElement.getBoundingClientRect();
|
|
57
|
+
const contentRect = contentElement.getBoundingClientRect(); // The document element's clientHeight represents the viewport height.
|
|
57
58
|
|
|
58
|
-
|
|
59
|
+
const viewportHeight = contentElement.ownerDocument.documentElement.clientHeight;
|
|
60
|
+
const hasSpaceForToolbarAbove = blockRect.top - contentRect.top > toolbarHeight;
|
|
61
|
+
const isBlockTallerThanViewport = blockRect.height > viewportHeight - toolbarHeight;
|
|
62
|
+
|
|
63
|
+
if (hasSpaceForToolbarAbove || isBlockTallerThanViewport) {
|
|
59
64
|
return DEFAULT_PROPS;
|
|
60
65
|
}
|
|
61
66
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/use-block-toolbar-popover-props.js"],"names":["DEFAULT_PROPS","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/use-block-toolbar-popover-props.js"],"names":["DEFAULT_PROPS","flip","shift","RESTRICTED_HEIGHT_PROPS","getProps","contentElement","selectedBlockElement","toolbarHeight","blockRect","getBoundingClientRect","contentRect","viewportHeight","ownerDocument","documentElement","clientHeight","hasSpaceForToolbarAbove","top","isBlockTallerThanViewport","height","useBlockToolbarPopoverProps","clientId","setToolbarHeight","props","setProps","blockIndex","select","blockEditorStore","getBlockIndex","popoverRef","popoverNode","offsetHeight","updateProps","contentView","defaultView","addEventHandler","resizeObserver","blockView","ResizeObserver","observe","removeEventHandler","disconnect","ref"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useCallback, useLayoutEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\n\n// By default the toolbar sets the `shift` prop. If the user scrolls the page\n// down the toolbar will stay on screen by adopting a sticky position at the\n// top of the viewport.\nconst DEFAULT_PROPS = {\n\tflip: false,\n\tshift: true,\n};\n\n// When there isn't enough height between the top of the block and the editor\n// canvas, the `shift` prop is set to `false`, as it will cause the block to be\n// obscured. The `flip` behavior is enabled, which positions the toolbar below\n// the block. This only happens if the block is smaller than the viewport, as\n// otherwise the toolbar will be off-screen.\nconst RESTRICTED_HEIGHT_PROPS = {\n\tflip: true,\n\tshift: false,\n};\n\n/**\n * Get the popover props for the block toolbar, determined by the space at the top of the canvas and the toolbar height.\n *\n * @param {Element} contentElement The DOM element that represents the editor content or canvas.\n * @param {Element} selectedBlockElement The outer DOM element of the first selected block.\n * @param {number} toolbarHeight The height of the toolbar in pixels.\n *\n * @return {Object} The popover props used to determine the position of the toolbar.\n */\nfunction getProps( contentElement, selectedBlockElement, toolbarHeight ) {\n\tif ( ! contentElement || ! selectedBlockElement ) {\n\t\treturn DEFAULT_PROPS;\n\t}\n\n\tconst blockRect = selectedBlockElement.getBoundingClientRect();\n\tconst contentRect = contentElement.getBoundingClientRect();\n\n\t// The document element's clientHeight represents the viewport height.\n\tconst viewportHeight =\n\t\tcontentElement.ownerDocument.documentElement.clientHeight;\n\n\tconst hasSpaceForToolbarAbove =\n\t\tblockRect.top - contentRect.top > toolbarHeight;\n\tconst isBlockTallerThanViewport =\n\t\tblockRect.height > viewportHeight - toolbarHeight;\n\n\tif ( hasSpaceForToolbarAbove || isBlockTallerThanViewport ) {\n\t\treturn DEFAULT_PROPS;\n\t}\n\n\treturn RESTRICTED_HEIGHT_PROPS;\n}\n\n/**\n * Determines the desired popover positioning behavior, returning a set of appropriate props.\n *\n * @param {Object} elements\n * @param {Element} elements.contentElement The DOM element that represents the editor content or canvas.\n * @param {string} elements.clientId The clientId of the first selected block.\n *\n * @return {Object} The popover props used to determine the position of the toolbar.\n */\nexport default function useBlockToolbarPopoverProps( {\n\tcontentElement,\n\tclientId,\n} ) {\n\tconst selectedBlockElement = useBlockElement( clientId );\n\tconst [ toolbarHeight, setToolbarHeight ] = useState( 0 );\n\tconst [ props, setProps ] = useState( () =>\n\t\tgetProps( contentElement, selectedBlockElement, toolbarHeight )\n\t);\n\tconst blockIndex = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlockIndex( clientId ),\n\t\t[ clientId ]\n\t);\n\n\tconst popoverRef = useRefEffect( ( popoverNode ) => {\n\t\tsetToolbarHeight( popoverNode.offsetHeight );\n\t}, [] );\n\n\tconst updateProps = useCallback(\n\t\t() =>\n\t\t\tsetProps(\n\t\t\t\tgetProps( contentElement, selectedBlockElement, toolbarHeight )\n\t\t\t),\n\t\t[ contentElement, selectedBlockElement, toolbarHeight ]\n\t);\n\n\t// Update props when the block is moved. This also ensures the props are\n\t// correct on initial mount, and when the selected block or content element\n\t// changes (since the callback ref will update).\n\tuseLayoutEffect( updateProps, [ blockIndex, updateProps ] );\n\n\t// Update props when the viewport is resized or the block is resized.\n\tuseLayoutEffect( () => {\n\t\tif ( ! contentElement || ! selectedBlockElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update the toolbar props on viewport resize.\n\t\tconst contentView = contentElement?.ownerDocument?.defaultView;\n\t\tcontentView?.addEventHandler?.( 'resize', updateProps );\n\n\t\t// Update the toolbar props on block resize.\n\t\tlet resizeObserver;\n\t\tconst blockView = selectedBlockElement?.ownerDocument?.defaultView;\n\t\tif ( blockView.ResizeObserver ) {\n\t\t\tresizeObserver = new blockView.ResizeObserver( updateProps );\n\t\t\tresizeObserver.observe( selectedBlockElement );\n\t\t}\n\n\t\treturn () => {\n\t\t\tcontentView?.removeEventHandler?.( 'resize', updateProps );\n\n\t\t\tif ( resizeObserver ) {\n\t\t\t\tresizeObserver.disconnect();\n\t\t\t}\n\t\t};\n\t}, [ updateProps, contentElement, selectedBlockElement ] );\n\n\treturn {\n\t\t...props,\n\t\tref: popoverRef,\n\t};\n}\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _data = require("@wordpress/data");
|
|
13
|
+
|
|
14
|
+
var _inbetween = _interopRequireDefault(require("../block-popover/inbetween"));
|
|
15
|
+
|
|
16
|
+
var _store = require("../../store");
|
|
17
|
+
|
|
18
|
+
var _inserter = _interopRequireDefault(require("../inserter"));
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* WordPress dependencies
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Internal dependencies
|
|
26
|
+
*/
|
|
27
|
+
function ZoomOutModeInserters(_ref) {
|
|
28
|
+
let {
|
|
29
|
+
__unstableContentRef
|
|
30
|
+
} = _ref;
|
|
31
|
+
const [isReady, setIsReady] = (0, _element.useState)(false);
|
|
32
|
+
const blockOrder = (0, _data.useSelect)(select => {
|
|
33
|
+
return select(_store.store).getBlockOrder();
|
|
34
|
+
}, []); // Defer the initial rendering to avoid the jumps due to the animation.
|
|
35
|
+
|
|
36
|
+
(0, _element.useEffect)(() => {
|
|
37
|
+
const timeout = setTimeout(() => {
|
|
38
|
+
setIsReady(true);
|
|
39
|
+
}, 500);
|
|
40
|
+
return () => {
|
|
41
|
+
clearTimeout(timeout);
|
|
42
|
+
};
|
|
43
|
+
}, []);
|
|
44
|
+
|
|
45
|
+
if (!isReady) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return blockOrder.map((clientId, index) => {
|
|
50
|
+
if (index === blockOrder.length - 1) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return (0, _element.createElement)(_inbetween.default, {
|
|
55
|
+
key: clientId,
|
|
56
|
+
previousClientId: clientId,
|
|
57
|
+
nextClientId: blockOrder[index + 1],
|
|
58
|
+
__unstableContentRef: __unstableContentRef
|
|
59
|
+
}, (0, _element.createElement)("div", {
|
|
60
|
+
className: "block-editor-block-list__insertion-point-inserter is-with-inserter"
|
|
61
|
+
}, (0, _element.createElement)(_inserter.default, {
|
|
62
|
+
position: "bottom center",
|
|
63
|
+
clientId: blockOrder[index + 1],
|
|
64
|
+
__experimentalIsQuick: true
|
|
65
|
+
})));
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
var _default = ZoomOutModeInserters;
|
|
70
|
+
exports.default = _default;
|
|
71
|
+
//# sourceMappingURL=zoom-out-mode-inserters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/zoom-out-mode-inserters.js"],"names":["ZoomOutModeInserters","__unstableContentRef","isReady","setIsReady","blockOrder","select","blockEditorStore","getBlockOrder","timeout","setTimeout","clearTimeout","map","clientId","index","length"],"mappings":";;;;;;;;;AAIA;;AADA;;AAMA;;AACA;;AACA;;AAXA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,oBAAT,OAA0D;AAAA,MAA3B;AAAEC,IAAAA;AAAF,GAA2B;AACzD,QAAM,CAAEC,OAAF,EAAWC,UAAX,IAA0B,uBAAU,KAAV,CAAhC;AACA,QAAMC,UAAU,GAAG,qBAAaC,MAAF,IAAc;AAC3C,WAAOA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,aAA3B,EAAP;AACA,GAFkB,EAEhB,EAFgB,CAAnB,CAFyD,CAMzD;;AACA,0BAAW,MAAM;AAChB,UAAMC,OAAO,GAAGC,UAAU,CAAE,MAAM;AACjCN,MAAAA,UAAU,CAAE,IAAF,CAAV;AACA,KAFyB,EAEvB,GAFuB,CAA1B;AAGA,WAAO,MAAM;AACZO,MAAAA,YAAY,CAAEF,OAAF,CAAZ;AACA,KAFD;AAGA,GAPD,EAOG,EAPH;;AASA,MAAK,CAAEN,OAAP,EAAiB;AAChB,WAAO,IAAP;AACA;;AAED,SAAOE,UAAU,CAACO,GAAX,CAAgB,CAAEC,QAAF,EAAYC,KAAZ,KAAuB;AAC7C,QAAKA,KAAK,KAAKT,UAAU,CAACU,MAAX,GAAoB,CAAnC,EAAuC;AACtC,aAAO,IAAP;AACA;;AACD,WACC,4BAAC,kBAAD;AACC,MAAA,GAAG,EAAGF,QADP;AAEC,MAAA,gBAAgB,EAAGA,QAFpB;AAGC,MAAA,YAAY,EAAGR,UAAU,CAAES,KAAK,GAAG,CAAV,CAH1B;AAIC,MAAA,oBAAoB,EAAGZ;AAJxB,OAMC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,4BAAC,iBAAD;AACC,MAAA,QAAQ,EAAC,eADV;AAEC,MAAA,QAAQ,EAAGG,UAAU,CAAES,KAAK,GAAG,CAAV,CAFtB;AAGC,MAAA,qBAAqB;AAHtB,MADD,CAND,CADD;AAgBA,GApBM,CAAP;AAqBA;;eAEcb,oB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport { store as blockEditorStore } from '../../store';\nimport Inserter from '../inserter';\n\nfunction ZoomOutModeInserters( { __unstableContentRef } ) {\n\tconst [ isReady, setIsReady ] = useState( false );\n\tconst blockOrder = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getBlockOrder();\n\t}, [] );\n\n\t// Defer the initial rendering to avoid the jumps due to the animation.\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tsetIsReady( true );\n\t\t}, 500 );\n\t\treturn () => {\n\t\t\tclearTimeout( timeout );\n\t\t};\n\t}, [] );\n\n\tif ( ! isReady ) {\n\t\treturn null;\n\t}\n\n\treturn blockOrder.map( ( clientId, index ) => {\n\t\tif ( index === blockOrder.length - 1 ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<BlockPopoverInbetween\n\t\t\t\tkey={ clientId }\n\t\t\t\tpreviousClientId={ clientId }\n\t\t\t\tnextClientId={ blockOrder[ index + 1 ] }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-list__insertion-point-inserter is-with-inserter\">\n\t\t\t\t\t<Inserter\n\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\tclientId={ blockOrder[ index + 1 ] }\n\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</BlockPopoverInbetween>\n\t\t);\n\t} );\n}\n\nexport default ZoomOutModeInserters;\n"]}
|
|
@@ -62,9 +62,12 @@ function BlockVerticalAlignmentUI(_ref) {
|
|
|
62
62
|
const UIComponent = isToolbar ? _components.ToolbarGroup : _components.ToolbarDropdownMenu;
|
|
63
63
|
const extraProps = isToolbar ? {
|
|
64
64
|
isCollapsed
|
|
65
|
-
} : {
|
|
65
|
+
} : {
|
|
66
|
+
popoverProps: {
|
|
67
|
+
POPOVER_PROPS
|
|
68
|
+
}
|
|
69
|
+
};
|
|
66
70
|
return (0, _element.createElement)(UIComponent, (0, _extends2.default)({
|
|
67
|
-
popoverProps: POPOVER_PROPS,
|
|
68
71
|
icon: activeAlignment ? activeAlignment.icon : defaultAlignmentControl.icon,
|
|
69
72
|
label: (0, _i18n._x)('Change vertical alignment', 'Block vertical alignment setting label'),
|
|
70
73
|
controls: controls.map(control => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-vertical-alignment-control/ui.js"],"names":["BLOCK_ALIGNMENTS_CONTROLS","top","icon","alignTop","title","center","alignCenter","bottom","alignBottom","DEFAULT_CONTROLS","DEFAULT_CONTROL","POPOVER_PROPS","isAlternate","BlockVerticalAlignmentUI","value","onChange","controls","isCollapsed","isToolbar","applyOrUnset","align","undefined","activeAlignment","defaultAlignmentControl","UIComponent","ToolbarGroup","ToolbarDropdownMenu","extraProps","map","control","isActive","role","onClick"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;;AAIA;AACA;AACA;AAGA,MAAMA,yBAAyB,GAAG;AACjCC,EAAAA,GAAG,EAAE;AACJC,IAAAA,IAAI,EAAEC,eADF;AAEJC,IAAAA,KAAK,EAAE,cAAI,WAAJ,EAAiB,kCAAjB;AAFH,GAD4B;AAKjCC,EAAAA,MAAM,EAAE;AACPH,IAAAA,IAAI,EAAEI,kBADC;AAEPF,IAAAA,KAAK,EAAE,cAAI,cAAJ,EAAoB,kCAApB;AAFA,GALyB;AASjCG,EAAAA,MAAM,EAAE;AACPL,IAAAA,IAAI,EAAEM,kBADC;AAEPJ,IAAAA,KAAK,EAAE,cAAI,cAAJ,EAAoB,kCAApB;AAFA;AATyB,CAAlC;AAeA,MAAMK,gBAAgB,GAAG,CAAE,KAAF,EAAS,QAAT,EAAmB,QAAnB,CAAzB;AACA,MAAMC,eAAe,GAAG,KAAxB;AAEA,MAAMC,aAAa,GAAG;AACrBC,EAAAA,WAAW,EAAE;AADQ,CAAtB;;AAIA,SAASC,wBAAT,OAMI;AAAA,MAN+B;AAClCC,IAAAA,KADkC;AAElCC,IAAAA,QAFkC;AAGlCC,IAAAA,QAAQ,GAAGP,gBAHuB;AAIlCQ,IAAAA,WAAW,GAAG,IAJoB;AAKlCC,IAAAA;AALkC,GAM/B;;AACH,WAASC,YAAT,CAAuBC,KAAvB,EAA+B;AAC9B,WAAO,MAAML,QAAQ,CAAED,KAAK,KAAKM,KAAV,GAAkBC,SAAlB,GAA8BD,KAAhC,CAArB;AACA;;AAED,QAAME,eAAe,GAAGtB,yBAAyB,CAAEc,KAAF,CAAjD;AACA,QAAMS,uBAAuB,GAC5BvB,yBAAyB,CAAEU,eAAF,CAD1B;AAGA,QAAMc,WAAW,GAAGN,SAAS,GAAGO,wBAAH,GAAkBC,+BAA/C;AACA,QAAMC,UAAU,GAAGT,SAAS,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-vertical-alignment-control/ui.js"],"names":["BLOCK_ALIGNMENTS_CONTROLS","top","icon","alignTop","title","center","alignCenter","bottom","alignBottom","DEFAULT_CONTROLS","DEFAULT_CONTROL","POPOVER_PROPS","isAlternate","BlockVerticalAlignmentUI","value","onChange","controls","isCollapsed","isToolbar","applyOrUnset","align","undefined","activeAlignment","defaultAlignmentControl","UIComponent","ToolbarGroup","ToolbarDropdownMenu","extraProps","popoverProps","map","control","isActive","role","onClick"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;;AAIA;AACA;AACA;AAGA,MAAMA,yBAAyB,GAAG;AACjCC,EAAAA,GAAG,EAAE;AACJC,IAAAA,IAAI,EAAEC,eADF;AAEJC,IAAAA,KAAK,EAAE,cAAI,WAAJ,EAAiB,kCAAjB;AAFH,GAD4B;AAKjCC,EAAAA,MAAM,EAAE;AACPH,IAAAA,IAAI,EAAEI,kBADC;AAEPF,IAAAA,KAAK,EAAE,cAAI,cAAJ,EAAoB,kCAApB;AAFA,GALyB;AASjCG,EAAAA,MAAM,EAAE;AACPL,IAAAA,IAAI,EAAEM,kBADC;AAEPJ,IAAAA,KAAK,EAAE,cAAI,cAAJ,EAAoB,kCAApB;AAFA;AATyB,CAAlC;AAeA,MAAMK,gBAAgB,GAAG,CAAE,KAAF,EAAS,QAAT,EAAmB,QAAnB,CAAzB;AACA,MAAMC,eAAe,GAAG,KAAxB;AAEA,MAAMC,aAAa,GAAG;AACrBC,EAAAA,WAAW,EAAE;AADQ,CAAtB;;AAIA,SAASC,wBAAT,OAMI;AAAA,MAN+B;AAClCC,IAAAA,KADkC;AAElCC,IAAAA,QAFkC;AAGlCC,IAAAA,QAAQ,GAAGP,gBAHuB;AAIlCQ,IAAAA,WAAW,GAAG,IAJoB;AAKlCC,IAAAA;AALkC,GAM/B;;AACH,WAASC,YAAT,CAAuBC,KAAvB,EAA+B;AAC9B,WAAO,MAAML,QAAQ,CAAED,KAAK,KAAKM,KAAV,GAAkBC,SAAlB,GAA8BD,KAAhC,CAArB;AACA;;AAED,QAAME,eAAe,GAAGtB,yBAAyB,CAAEc,KAAF,CAAjD;AACA,QAAMS,uBAAuB,GAC5BvB,yBAAyB,CAAEU,eAAF,CAD1B;AAGA,QAAMc,WAAW,GAAGN,SAAS,GAAGO,wBAAH,GAAkBC,+BAA/C;AACA,QAAMC,UAAU,GAAGT,SAAS,GACzB;AAAED,IAAAA;AAAF,GADyB,GAEzB;AAAEW,IAAAA,YAAY,EAAE;AAAEjB,MAAAA;AAAF;AAAhB,GAFH;AAIA,SACC,4BAAC,WAAD;AACC,IAAA,IAAI,EACHW,eAAe,GACZA,eAAe,CAACpB,IADJ,GAEZqB,uBAAuB,CAACrB,IAJ7B;AAMC,IAAA,KAAK,EAAG,cACP,2BADO,EAEP,wCAFO,CANT;AAUC,IAAA,QAAQ,EAAGc,QAAQ,CAACa,GAAT,CAAgBC,OAAF,IAAe;AACvC,aAAO,EACN,GAAG9B,yBAAyB,CAAE8B,OAAF,CADtB;AAENC,QAAAA,QAAQ,EAAEjB,KAAK,KAAKgB,OAFd;AAGNE,QAAAA,IAAI,EAAEf,WAAW,GAAG,eAAH,GAAqBI,SAHhC;AAINY,QAAAA,OAAO,EAAEd,YAAY,CAAEW,OAAF;AAJf,OAAP;AAMA,KAPU;AAVZ,KAkBMH,UAlBN,EADD;AAsBA;AAED;AACA;AACA;;;eACed,wB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\nimport { ToolbarGroup, ToolbarDropdownMenu } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { alignTop, alignCenter, alignBottom } from './icons';\n\nconst BLOCK_ALIGNMENTS_CONTROLS = {\n\ttop: {\n\t\ticon: alignTop,\n\t\ttitle: _x( 'Align top', 'Block vertical alignment setting' ),\n\t},\n\tcenter: {\n\t\ticon: alignCenter,\n\t\ttitle: _x( 'Align middle', 'Block vertical alignment setting' ),\n\t},\n\tbottom: {\n\t\ticon: alignBottom,\n\t\ttitle: _x( 'Align bottom', 'Block vertical alignment setting' ),\n\t},\n};\n\nconst DEFAULT_CONTROLS = [ 'top', 'center', 'bottom' ];\nconst DEFAULT_CONTROL = 'top';\n\nconst POPOVER_PROPS = {\n\tisAlternate: true,\n};\n\nfunction BlockVerticalAlignmentUI( {\n\tvalue,\n\tonChange,\n\tcontrols = DEFAULT_CONTROLS,\n\tisCollapsed = true,\n\tisToolbar,\n} ) {\n\tfunction applyOrUnset( align ) {\n\t\treturn () => onChange( value === align ? undefined : align );\n\t}\n\n\tconst activeAlignment = BLOCK_ALIGNMENTS_CONTROLS[ value ];\n\tconst defaultAlignmentControl =\n\t\tBLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];\n\n\tconst UIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst extraProps = isToolbar\n\t\t? { isCollapsed }\n\t\t: { popoverProps: { POPOVER_PROPS } };\n\n\treturn (\n\t\t<UIComponent\n\t\t\ticon={\n\t\t\t\tactiveAlignment\n\t\t\t\t\t? activeAlignment.icon\n\t\t\t\t\t: defaultAlignmentControl.icon\n\t\t\t}\n\t\t\tlabel={ _x(\n\t\t\t\t'Change vertical alignment',\n\t\t\t\t'Block vertical alignment setting label'\n\t\t\t) }\n\t\t\tcontrols={ controls.map( ( control ) => {\n\t\t\t\treturn {\n\t\t\t\t\t...BLOCK_ALIGNMENTS_CONTROLS[ control ],\n\t\t\t\t\tisActive: value === control,\n\t\t\t\t\trole: isCollapsed ? 'menuitemradio' : undefined,\n\t\t\t\t\tonClick: applyOrUnset( control ),\n\t\t\t\t};\n\t\t\t} ) }\n\t\t\t{ ...extraProps }\n\t\t/>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-vertical-alignment-toolbar/README.md\n */\nexport default BlockVerticalAlignmentUI;\n"]}
|