@wordpress/block-editor 9.7.1-next.d6164808d3.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +13 -1
- package/build/components/alignment-control/ui.js +6 -5
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-actions/index.js +5 -9
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +5 -5
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-content-overlay/index.js +2 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +2 -1
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-edit/edit.js +1 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-inspector/index.js +125 -17
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-compact.native.js +73 -0
- package/build/components/block-list/block-list-compact.native.js.map +1 -0
- package/build/components/block-list/block.js +40 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +4 -4
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +14 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -10
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +7 -12
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +20 -21
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +1 -7
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +3 -1
- package/build/components/block-lock/use-block-lock.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mover/button.js +4 -6
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +4 -6
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +24 -8
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-popover/inbetween.js +58 -16
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +14 -9
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +4 -2
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +3 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +7 -1
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +114 -25
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +9 -8
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +3 -2
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +13 -5
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +33 -15
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +4 -9
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +19 -10
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +131 -0
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
- package/build/components/block-vertical-alignment-control/ui.js +5 -2
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/colors-gradients/control.js +1 -0
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +1 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/iframe/index.js +31 -4
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +1 -7
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +6 -2
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -5
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +3 -6
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +14 -3
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +21 -8
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/tabs.js +11 -4
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js +6 -3
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +36 -5
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/block.js +23 -11
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +19 -2
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +8 -4
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +0 -1
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/provider/use-block-sync.js +1 -7
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +1 -1
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/rich-text/index.js +37 -19
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +11 -20
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +6 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +32 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/text-decoration-control/index.js +28 -17
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +21 -14
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +6 -11
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-popover/index.js +1 -1
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +7 -4
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +9 -28
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -0
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +7 -16
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/hooks/align.js +17 -3
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +3 -7
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/color-panel.js +2 -1
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/content-lock-ui.js +145 -0
- package/build/hooks/content-lock-ui.js.map +1 -0
- package/build/hooks/dimensions.js +6 -6
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +8 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-appearance.js +2 -1
- package/build/hooks/font-appearance.js.map +1 -1
- package/build/hooks/font-family.js +3 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +3 -1
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +23 -6
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +14 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +14 -10
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/letter-spacing.js +2 -1
- package/build/hooks/letter-spacing.js.map +1 -1
- package/build/hooks/line-height.js +2 -1
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js +3 -7
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/metadata-name.js +55 -0
- package/build/hooks/metadata-name.js.map +1 -0
- package/build/hooks/metadata.js +65 -0
- package/build/hooks/metadata.js.map +1 -0
- package/build/hooks/text-decoration.js +2 -1
- package/build/hooks/text-decoration.js.map +1 -1
- package/build/hooks/text-transform.js +2 -1
- package/build/hooks/text-transform.js.map +1 -1
- package/build/hooks/use-typography-props.js +51 -0
- package/build/hooks/use-typography-props.js.map +1 -0
- package/build/hooks/utils.js +3 -1
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/constrained.js +71 -22
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flow.js +30 -2
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +65 -21
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +39 -18
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +95 -9
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +1 -1
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +6 -5
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-actions/index.js +5 -8
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +5 -5
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +2 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +2 -1
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-edit/edit.js +1 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-inspector/index.js +127 -19
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-compact.native.js +58 -0
- package/build-module/components/block-list/block-list-compact.native.js.map +1 -0
- package/build-module/components/block-list/block.js +41 -9
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +4 -4
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +13 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -9
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +7 -12
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +20 -20
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +1 -6
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +3 -1
- package/build-module/components/block-lock/use-block-lock.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mover/button.js +4 -5
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -5
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +24 -7
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +59 -17
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +12 -9
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +4 -2
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +3 -1
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +6 -1
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +9 -8
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +12 -5
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +30 -15
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +4 -9
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +17 -10
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +119 -0
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
- package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +1 -0
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +1 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/iframe/index.js +32 -5
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +1 -6
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +5 -2
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -5
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -6
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +14 -3
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +20 -8
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/tabs.js +11 -4
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js +6 -2
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +37 -6
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/block.js +23 -11
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +19 -3
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +8 -4
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +0 -1
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +1 -6
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +1 -1
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +37 -18
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +11 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -2
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +30 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +25 -18
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +19 -15
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +6 -11
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-popover/index.js +1 -1
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +7 -4
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +9 -28
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -0
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +7 -15
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/hooks/align.js +16 -4
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +3 -6
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/color-panel.js +2 -1
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +128 -0
- package/build-module/hooks/content-lock-ui.js.map +1 -0
- package/build-module/hooks/dimensions.js +6 -6
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +6 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-appearance.js +2 -1
- package/build-module/hooks/font-appearance.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +3 -1
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +22 -6
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/index.js +4 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +15 -11
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/letter-spacing.js +2 -1
- package/build-module/hooks/letter-spacing.js.map +1 -1
- package/build-module/hooks/line-height.js +2 -1
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/lock.js +3 -6
- package/build-module/hooks/lock.js.map +1 -1
- package/build-module/hooks/metadata-name.js +45 -0
- package/build-module/hooks/metadata-name.js.map +1 -0
- package/build-module/hooks/metadata.js +50 -0
- package/build-module/hooks/metadata.js.map +1 -0
- package/build-module/hooks/text-decoration.js +2 -1
- package/build-module/hooks/text-decoration.js.map +1 -1
- package/build-module/hooks/text-transform.js +2 -1
- package/build-module/hooks/text-transform.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +38 -0
- package/build-module/hooks/use-typography-props.js.map +1 -0
- package/build-module/hooks/utils.js +4 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/constrained.js +74 -25
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flow.js +31 -3
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +58 -20
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +37 -18
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +80 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +1 -1
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-style/style-rtl.css +137 -86
- package/build-style/style.css +137 -86
- package/package.json +28 -28
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
- package/src/components/alignment-control/test/index.js +124 -33
- package/src/components/alignment-control/ui.js +8 -3
- package/src/components/block-actions/index.js +9 -8
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
- package/src/components/block-alignment-control/test/index.js +95 -31
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
- package/src/components/block-compare/test/block-view.js +3 -3
- package/src/components/block-content-overlay/index.js +2 -6
- package/src/components/block-content-overlay/style.scss +24 -3
- package/src/components/block-draggable/draggable-chip.js +4 -1
- package/src/components/block-edit/edit.js +5 -1
- package/src/components/block-edit/test/edit.js +23 -21
- package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
- package/src/components/block-icon/test/index.js +31 -16
- package/src/components/block-inspector/index.js +126 -12
- package/src/components/block-inspector/style.scss +7 -1
- package/src/components/block-list/block-list-compact.native.js +62 -0
- package/src/components/block-list/block.js +53 -13
- package/src/components/block-list/index.js +4 -4
- package/src/components/block-list/style.scss +68 -18
- package/src/components/block-list/test/block-list-context.native.js +11 -13
- package/src/components/block-list/use-block-props/index.js +10 -10
- package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
- package/src/components/block-list/use-block-props/use-focus-first-element.js +4 -9
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
- package/src/components/block-list/use-in-between-inserter.js +11 -13
- package/src/components/block-list-appender/index.js +27 -18
- package/src/components/block-list-appender/index.native.js +3 -6
- package/src/components/block-lock/use-block-lock.js +2 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
- package/src/components/block-mover/button.js +6 -5
- package/src/components/block-mover/index.js +8 -7
- package/src/components/block-mover/index.native.js +20 -13
- package/src/components/block-popover/inbetween.js +85 -21
- package/src/components/block-popover/index.js +25 -17
- package/src/components/block-popover/style.scss +3 -4
- package/src/components/block-preview/auto.js +4 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
- package/src/components/block-settings-menu-controls/README.md +9 -0
- package/src/components/block-settings-menu-controls/index.js +13 -2
- package/src/components/block-styles/preview-panel.js +3 -0
- package/src/components/block-switcher/block-transformations-menu.js +127 -33
- package/src/components/block-switcher/style.scss +4 -2
- package/src/components/block-switcher/test/index.js +1 -2
- package/src/components/block-title/test/index.js +28 -25
- package/src/components/block-toolbar/index.js +27 -17
- package/src/components/block-tools/block-contextual-toolbar.js +10 -3
- package/src/components/block-tools/block-selection-button.js +35 -16
- package/src/components/block-tools/index.js +40 -24
- package/src/components/block-tools/insertion-point.js +3 -7
- package/src/components/block-tools/selected-block-popover.js +16 -7
- package/src/components/block-tools/style.scss +5 -0
- package/src/components/block-tools/use-block-toolbar-popover-props.js +136 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
- package/src/components/block-vertical-alignment-control/test/index.js +92 -23
- package/src/components/block-vertical-alignment-control/ui.js +3 -2
- package/src/components/button-block-appender/style.scss +23 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
- package/src/components/colors/test/with-colors.js +37 -12
- package/src/components/colors-gradients/control.js +1 -0
- package/src/components/colors-gradients/dropdown.js +1 -1
- package/src/components/contrast-checker/test/index.js +135 -116
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
- package/src/components/default-block-appender/test/index.js +32 -18
- package/src/components/font-sizes/README.MD +9 -0
- package/src/components/iframe/index.js +64 -5
- package/src/components/inner-blocks/README.md +2 -1
- package/src/components/inner-blocks/default-block-appender.js +1 -6
- package/src/components/inner-blocks/index.js +3 -2
- package/src/components/inner-blocks/index.native.js +5 -1
- package/src/components/inner-blocks/use-inner-block-template-sync.js +9 -5
- package/src/components/inner-blocks/use-nested-settings-update.js +3 -1
- package/src/components/inserter/index.js +2 -8
- package/src/components/inserter/library.js +11 -5
- package/src/components/inserter/menu.js +42 -29
- package/src/components/inserter/preview-panel.js +1 -1
- package/src/components/inserter/stories/fixtures.js +44 -0
- package/src/components/inserter/stories/index.js +90 -0
- package/src/components/inserter/style.scss +21 -27
- package/src/components/inserter/tabs.js +8 -4
- package/src/components/link-control/link-preview.js +5 -3
- package/src/components/link-control/search-input.js +2 -2
- package/src/components/link-control/search-item.js +39 -7
- package/src/components/list-view/block.js +29 -10
- package/src/components/list-view/branch.js +27 -4
- package/src/components/list-view/index.js +8 -3
- package/src/components/list-view/use-block-selection.js +0 -1
- package/src/components/media-placeholder/test/index.js +2 -2
- package/src/components/media-replace-flow/README.md +1 -1
- package/src/components/provider/use-block-sync.js +3 -6
- package/src/components/publish-date-time-picker/index.js +1 -1
- package/src/components/rich-text/index.js +33 -35
- package/src/components/rich-text/index.native.js +8 -21
- package/src/components/spacing-sizes-control/spacing-input-control.js +5 -0
- package/src/components/spacing-sizes-control/test/utils.js +26 -0
- package/src/components/spacing-sizes-control/utils.js +36 -9
- package/src/components/text-decoration-control/index.js +41 -30
- package/src/components/text-decoration-control/stories/index.js +37 -0
- package/src/components/text-transform-control/index.js +27 -27
- package/src/components/text-transform-control/stories/index.js +37 -0
- package/src/components/tool-selector/index.js +9 -11
- package/src/components/url-input/test/button.js +145 -71
- package/src/components/url-popover/index.js +1 -1
- package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
- package/src/components/url-popover/test/index.js +14 -12
- package/src/components/use-block-drop-zone/index.js +15 -4
- package/src/components/use-moving-animation/index.js +9 -24
- package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
- package/src/components/warning/test/index.js +32 -29
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-select-all.js +13 -18
- package/src/hooks/align.js +24 -15
- package/src/hooks/anchor.js +1 -6
- package/src/hooks/color-panel.js +2 -1
- package/src/hooks/content-lock-ui.js +161 -0
- package/src/hooks/dimensions.js +7 -8
- package/src/hooks/duotone.js +13 -1
- package/src/hooks/font-appearance.js +1 -0
- package/src/hooks/font-family.js +2 -0
- package/src/hooks/font-size.js +2 -0
- package/src/hooks/gap.js +43 -25
- package/src/hooks/index.js +4 -0
- package/src/hooks/layout.js +27 -21
- package/src/hooks/layout.scss +7 -1
- package/src/hooks/letter-spacing.js +1 -0
- package/src/hooks/line-height.js +1 -0
- package/src/hooks/lock.js +1 -6
- package/src/hooks/metadata-name.js +48 -0
- package/src/hooks/metadata.js +64 -0
- package/src/hooks/test/gap.js +16 -22
- package/src/hooks/test/use-typography-props.js +28 -0
- package/src/hooks/text-decoration.js +1 -0
- package/src/hooks/text-transform.js +1 -0
- package/src/hooks/typography.scss +0 -6
- package/src/hooks/use-typography-props.js +41 -0
- package/src/hooks/utils.js +2 -11
- package/src/index.js +1 -0
- package/src/layouts/constrained.js +85 -33
- package/src/layouts/flow.js +21 -10
- package/src/store/actions.js +45 -4
- package/src/store/reducer.js +33 -21
- package/src/store/selectors.js +98 -19
- package/src/store/test/reducer.js +8 -5
- package/src/style.scss +0 -2
- package/src/utils/parse-css-unit-to-px.js +1 -1
- package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
- package/src/components/text-decoration-control/style.scss +0 -18
- package/src/components/text-transform-control/style.scss +0 -18
|
@@ -5,7 +5,6 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
5
5
|
* External dependencies
|
|
6
6
|
*/
|
|
7
7
|
import classnames from 'classnames';
|
|
8
|
-
import { castArray, first, last } from 'lodash';
|
|
9
8
|
/**
|
|
10
9
|
* WordPress dependencies
|
|
11
10
|
*/
|
|
@@ -68,7 +67,8 @@ const BlockMoverButton = forwardRef((_ref, ref) => {
|
|
|
68
67
|
...props
|
|
69
68
|
} = _ref;
|
|
70
69
|
const instanceId = useInstanceId(BlockMoverButton);
|
|
71
|
-
const
|
|
70
|
+
const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
|
|
71
|
+
const blocksCount = normalizedClientIds.length;
|
|
72
72
|
const {
|
|
73
73
|
blockType,
|
|
74
74
|
isDisabled,
|
|
@@ -85,11 +85,10 @@ const BlockMoverButton = forwardRef((_ref, ref) => {
|
|
|
85
85
|
getBlock,
|
|
86
86
|
getBlockListSettings
|
|
87
87
|
} = select(blockEditorStore);
|
|
88
|
-
const
|
|
89
|
-
const firstClientId = first(normalizedClientIds);
|
|
88
|
+
const firstClientId = normalizedClientIds[0];
|
|
90
89
|
const blockRootClientId = getBlockRootClientId(firstClientId);
|
|
91
90
|
const firstBlockIndex = getBlockIndex(firstClientId);
|
|
92
|
-
const lastBlockIndex = getBlockIndex(
|
|
91
|
+
const lastBlockIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
|
|
93
92
|
const blockOrder = getBlockOrder(blockRootClientId);
|
|
94
93
|
const block = getBlock(firstClientId);
|
|
95
94
|
const isFirstBlock = firstBlockIndex === 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/button.js"],"names":["classnames","castArray","first","last","getBlockType","Button","VisuallyHidden","useInstanceId","useSelect","useDispatch","forwardRef","__","isRTL","chevronLeft","chevronRight","chevronUp","chevronDown","getBlockMoverDescription","store","blockEditorStore","getArrowIcon","direction","orientation","getMovementDirectionLabel","moveDirection","BlockMoverButton","ref","clientIds","moverOrientation","props","instanceId","blocksCount","length","blockType","isDisabled","rootClientId","isFirst","isLast","firstIndex","select","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlock","getBlockListSettings","normalizedClientIds","firstClientId","blockRootClientId","firstBlockIndex","lastBlockIndex","blockOrder","block","isFirstBlock","isLastBlock","blockListOrientation","name","moveBlocksDown","moveBlocksUp","moverFunction","onClick","event","descriptionId","title","BlockMoverUpButton","BlockMoverDownButton"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { castArray, first, last } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { getBlockMoverDescription } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nconst getArrowIcon = ( direction, orientation ) => {\n\tif ( direction === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronRight : chevronLeft;\n\t\t}\n\t\treturn chevronUp;\n\t} else if ( direction === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronLeft : chevronRight;\n\t\t}\n\t\treturn chevronDown;\n\t}\n\treturn null;\n};\n\nconst getMovementDirectionLabel = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move right' ) : __( 'Move left' );\n\t\t}\n\t\treturn __( 'Move up' );\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move left' ) : __( 'Move right' );\n\t\t}\n\t\treturn __( 'Move down' );\n\t}\n\treturn null;\n};\n\nconst BlockMoverButton = forwardRef(\n\t(\n\t\t{ clientIds, direction, orientation: moverOrientation, ...props },\n\t\tref\n\t) => {\n\t\tconst instanceId = useInstanceId( BlockMoverButton );\n\t\tconst blocksCount = castArray( clientIds ).length;\n\n\t\tconst {\n\t\t\tblockType,\n\t\t\tisDisabled,\n\t\t\trootClientId,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tfirstIndex,\n\t\t\torientation = 'vertical',\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst normalizedClientIds = castArray( clientIds );\n\t\t\t\tconst firstClientId = first( normalizedClientIds );\n\t\t\t\tconst blockRootClientId = getBlockRootClientId( firstClientId );\n\t\t\t\tconst firstBlockIndex = getBlockIndex( firstClientId );\n\t\t\t\tconst lastBlockIndex = getBlockIndex(\n\t\t\t\t\tlast( normalizedClientIds )\n\t\t\t\t);\n\t\t\t\tconst blockOrder = getBlockOrder( blockRootClientId );\n\t\t\t\tconst block = getBlock( firstClientId );\n\t\t\t\tconst isFirstBlock = firstBlockIndex === 0;\n\t\t\t\tconst isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\t\t\t\tconst { orientation: blockListOrientation } =\n\t\t\t\t\tgetBlockListSettings( blockRootClientId ) || {};\n\n\t\t\t\treturn {\n\t\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\t\tisDisabled: direction === 'up' ? isFirstBlock : isLastBlock,\n\t\t\t\t\trootClientId: blockRootClientId,\n\t\t\t\t\tfirstIndex: firstBlockIndex,\n\t\t\t\t\tisFirst: isFirstBlock,\n\t\t\t\t\tisLast: isLastBlock,\n\t\t\t\t\torientation: moverOrientation || blockListOrientation,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds, direction ]\n\t\t);\n\n\t\tconst { moveBlocksDown, moveBlocksUp } =\n\t\t\tuseDispatch( blockEditorStore );\n\t\tconst moverFunction =\n\t\t\tdirection === 'up' ? moveBlocksUp : moveBlocksDown;\n\n\t\tconst onClick = ( event ) => {\n\t\t\tmoverFunction( clientIds, rootClientId );\n\t\t\tif ( props.onClick ) {\n\t\t\t\tprops.onClick( event );\n\t\t\t}\n\t\t};\n\n\t\tconst descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t`is-${ direction }-button`\n\t\t\t\t\t) }\n\t\t\t\t\ticon={ getArrowIcon( direction, orientation ) }\n\t\t\t\t\tlabel={ getMovementDirectionLabel(\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t/>\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ getBlockMoverDescription(\n\t\t\t\t\t\tblocksCount,\n\t\t\t\t\t\tblockType && blockType.title,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tdirection === 'up' ? -1 : 1,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport const BlockMoverUpButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"up\" ref={ ref } { ...props } />;\n} );\n\nexport const BlockMoverDownButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"down\" ref={ ref } { ...props } />;\n} );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/button.js"],"names":["classnames","getBlockType","Button","VisuallyHidden","useInstanceId","useSelect","useDispatch","forwardRef","__","isRTL","chevronLeft","chevronRight","chevronUp","chevronDown","getBlockMoverDescription","store","blockEditorStore","getArrowIcon","direction","orientation","getMovementDirectionLabel","moveDirection","BlockMoverButton","ref","clientIds","moverOrientation","props","instanceId","normalizedClientIds","Array","isArray","blocksCount","length","blockType","isDisabled","rootClientId","isFirst","isLast","firstIndex","select","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlock","getBlockListSettings","firstClientId","blockRootClientId","firstBlockIndex","lastBlockIndex","blockOrder","block","isFirstBlock","isLastBlock","blockListOrientation","name","moveBlocksDown","moveBlocksUp","moverFunction","onClick","event","descriptionId","title","BlockMoverUpButton","BlockMoverDownButton"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { getBlockMoverDescription } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nconst getArrowIcon = ( direction, orientation ) => {\n\tif ( direction === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronRight : chevronLeft;\n\t\t}\n\t\treturn chevronUp;\n\t} else if ( direction === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronLeft : chevronRight;\n\t\t}\n\t\treturn chevronDown;\n\t}\n\treturn null;\n};\n\nconst getMovementDirectionLabel = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move right' ) : __( 'Move left' );\n\t\t}\n\t\treturn __( 'Move up' );\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move left' ) : __( 'Move right' );\n\t\t}\n\t\treturn __( 'Move down' );\n\t}\n\treturn null;\n};\n\nconst BlockMoverButton = forwardRef(\n\t(\n\t\t{ clientIds, direction, orientation: moverOrientation, ...props },\n\t\tref\n\t) => {\n\t\tconst instanceId = useInstanceId( BlockMoverButton );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst blocksCount = normalizedClientIds.length;\n\n\t\tconst {\n\t\t\tblockType,\n\t\t\tisDisabled,\n\t\t\trootClientId,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tfirstIndex,\n\t\t\torientation = 'vertical',\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\t\tconst blockRootClientId = getBlockRootClientId( firstClientId );\n\t\t\t\tconst firstBlockIndex = getBlockIndex( firstClientId );\n\t\t\t\tconst lastBlockIndex = getBlockIndex(\n\t\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t\t);\n\t\t\t\tconst blockOrder = getBlockOrder( blockRootClientId );\n\t\t\t\tconst block = getBlock( firstClientId );\n\t\t\t\tconst isFirstBlock = firstBlockIndex === 0;\n\t\t\t\tconst isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\t\t\t\tconst { orientation: blockListOrientation } =\n\t\t\t\t\tgetBlockListSettings( blockRootClientId ) || {};\n\n\t\t\t\treturn {\n\t\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\t\tisDisabled: direction === 'up' ? isFirstBlock : isLastBlock,\n\t\t\t\t\trootClientId: blockRootClientId,\n\t\t\t\t\tfirstIndex: firstBlockIndex,\n\t\t\t\t\tisFirst: isFirstBlock,\n\t\t\t\t\tisLast: isLastBlock,\n\t\t\t\t\torientation: moverOrientation || blockListOrientation,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds, direction ]\n\t\t);\n\n\t\tconst { moveBlocksDown, moveBlocksUp } =\n\t\t\tuseDispatch( blockEditorStore );\n\t\tconst moverFunction =\n\t\t\tdirection === 'up' ? moveBlocksUp : moveBlocksDown;\n\n\t\tconst onClick = ( event ) => {\n\t\t\tmoverFunction( clientIds, rootClientId );\n\t\t\tif ( props.onClick ) {\n\t\t\t\tprops.onClick( event );\n\t\t\t}\n\t\t};\n\n\t\tconst descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t`is-${ direction }-button`\n\t\t\t\t\t) }\n\t\t\t\t\ticon={ getArrowIcon( direction, orientation ) }\n\t\t\t\t\tlabel={ getMovementDirectionLabel(\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t/>\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ getBlockMoverDescription(\n\t\t\t\t\t\tblocksCount,\n\t\t\t\t\t\tblockType && blockType.title,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tdirection === 'up' ? -1 : 1,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport const BlockMoverUpButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"up\" ref={ ref } { ...props } />;\n} );\n\nexport const BlockMoverDownButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"down\" ref={ ref } { ...props } />;\n} );\n"]}
|
|
@@ -4,7 +4,6 @@ import { createElement } from "@wordpress/element";
|
|
|
4
4
|
/**
|
|
5
5
|
* External dependencies
|
|
6
6
|
*/
|
|
7
|
-
import { first, last, castArray } from 'lodash';
|
|
8
7
|
import classnames from 'classnames';
|
|
9
8
|
/**
|
|
10
9
|
* WordPress dependencies
|
|
@@ -43,13 +42,13 @@ function BlockMover(_ref) {
|
|
|
43
42
|
getBlockOrder,
|
|
44
43
|
getBlockRootClientId
|
|
45
44
|
} = select(blockEditorStore);
|
|
46
|
-
const normalizedClientIds =
|
|
47
|
-
const firstClientId =
|
|
45
|
+
const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
|
|
46
|
+
const firstClientId = normalizedClientIds[0];
|
|
48
47
|
|
|
49
|
-
const _rootClientId = getBlockRootClientId(
|
|
48
|
+
const _rootClientId = getBlockRootClientId(firstClientId);
|
|
50
49
|
|
|
51
50
|
const firstIndex = getBlockIndex(firstClientId);
|
|
52
|
-
const lastIndex = getBlockIndex(
|
|
51
|
+
const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
|
|
53
52
|
const blockOrder = getBlockOrder(_rootClientId);
|
|
54
53
|
return {
|
|
55
54
|
canMove: canMoveBlocks(clientIds, _rootClientId),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"names":["classnames","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","BlockMover","clientIds","hideDragHandle","canMove","rootClientId","isFirst","isLast","orientation","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","dragHandleLabel","draggableProps","itemProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( { clientIds, hideDragHandle } ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds, _rootClientId ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds }>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</div>\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"]}
|
|
@@ -3,7 +3,6 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { first, last, partial, castArray } from 'lodash';
|
|
7
6
|
import { Platform } from 'react-native';
|
|
8
7
|
/**
|
|
9
8
|
* WordPress dependencies
|
|
@@ -141,12 +140,12 @@ export default compose(withSelect((select, _ref2) => {
|
|
|
141
140
|
getBlockRootClientId,
|
|
142
141
|
getBlockOrder
|
|
143
142
|
} = select(blockEditorStore);
|
|
144
|
-
const normalizedClientIds =
|
|
145
|
-
const firstClientId =
|
|
143
|
+
const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
|
|
144
|
+
const firstClientId = normalizedClientIds[0];
|
|
146
145
|
const rootClientId = getBlockRootClientId(firstClientId);
|
|
147
146
|
const blockOrder = getBlockOrder(rootClientId);
|
|
148
147
|
const firstIndex = getBlockIndex(firstClientId);
|
|
149
|
-
const lastIndex = getBlockIndex(
|
|
148
|
+
const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
|
|
150
149
|
return {
|
|
151
150
|
firstIndex,
|
|
152
151
|
numberOfBlocks: blockOrder.length - 1,
|
|
@@ -166,9 +165,27 @@ export default compose(withSelect((select, _ref2) => {
|
|
|
166
165
|
moveBlocksToPosition
|
|
167
166
|
} = dispatch(blockEditorStore);
|
|
168
167
|
return {
|
|
169
|
-
onMoveDown:
|
|
170
|
-
|
|
171
|
-
|
|
168
|
+
onMoveDown: function () {
|
|
169
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
170
|
+
args[_key] = arguments[_key];
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
return moveBlocksDown(clientIds, rootClientId, ...args);
|
|
174
|
+
},
|
|
175
|
+
onMoveUp: function () {
|
|
176
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
177
|
+
args[_key2] = arguments[_key2];
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return moveBlocksUp(clientIds, rootClientId, ...args);
|
|
181
|
+
},
|
|
182
|
+
onLongMove: targetIndex => function () {
|
|
183
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
184
|
+
args[_key3] = arguments[_key3];
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return moveBlocksToPosition(clientIds, rootClientId, targetIndex, ...args);
|
|
188
|
+
}
|
|
172
189
|
};
|
|
173
190
|
}), withInstanceId)(BlockMover);
|
|
174
191
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["first","last","partial","castArray","Platform","__","Picker","ToolbarButton","withInstanceId","compose","withSelect","withDispatch","useCallback","useEffect","useRef","useState","getMoversSetup","store","blockEditorStore","BLOCK_MOVER_DIRECTION_TOP","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","shouldPresentPicker","setShouldPresentPicker","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","blockPageMoverOptions","label","value","onSelect","filter","el","onPickerSelect","option","find","onLongPressMoveUp","onLongPressMoveDown","hint","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","normalizedClientIds","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","targetIndex"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, partial, castArray } from 'lodash';\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ shouldPresentPicker, setShouldPresentPicker ] = useState( false );\n\tconst [ blockPageMoverState, setBlockPageMoverState ] =\n\t\tuseState( undefined );\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tsetShouldPresentPicker( true );\n\t};\n\n\t// Ensure that the picker is only presented after state updates.\n\tuseEffect( () => {\n\t\tif ( shouldPresentPicker ) {\n\t\t\tpickerRef.current?.presentPicker();\n\t\t\tsetShouldPresentPicker( false );\n\t\t}\n\t}, [ shouldPresentPicker ] );\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) option.onSelect();\n\t};\n\n\tconst onLongPressMoveUp = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ),\n\t\t[]\n\t);\n\tconst onLongPressMoveDown = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_BOTTOM ),\n\t\t[]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ onLongPressMoveUp }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ onLongPressMoveDown }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign={ true }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = castArray( clientIds );\n\t\tconst firstClientId = first( normalizedClientIds );\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex( last( normalizedClientIds ) );\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),\n\t\t\tonMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),\n\t\t\tonLongMove: ( targetIndex ) =>\n\t\t\t\tpartial(\n\t\t\t\t\tmoveBlocksToPosition,\n\t\t\t\t\tclientIds,\n\t\t\t\t\trootClientId,\n\t\t\t\t\ttargetIndex\n\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["Platform","__","Picker","ToolbarButton","withInstanceId","compose","withSelect","withDispatch","useCallback","useEffect","useRef","useState","getMoversSetup","store","blockEditorStore","BLOCK_MOVER_DIRECTION_TOP","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","shouldPresentPicker","setShouldPresentPicker","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","blockPageMoverOptions","label","value","onSelect","filter","el","onPickerSelect","option","find","onLongPressMoveUp","onLongPressMoveDown","hint","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","normalizedClientIds","Array","isArray","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","args","targetIndex"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ shouldPresentPicker, setShouldPresentPicker ] = useState( false );\n\tconst [ blockPageMoverState, setBlockPageMoverState ] =\n\t\tuseState( undefined );\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tsetShouldPresentPicker( true );\n\t};\n\n\t// Ensure that the picker is only presented after state updates.\n\tuseEffect( () => {\n\t\tif ( shouldPresentPicker ) {\n\t\t\tpickerRef.current?.presentPicker();\n\t\t\tsetShouldPresentPicker( false );\n\t\t}\n\t}, [ shouldPresentPicker ] );\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) option.onSelect();\n\t};\n\n\tconst onLongPressMoveUp = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ),\n\t\t[]\n\t);\n\tconst onLongPressMoveDown = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_BOTTOM ),\n\t\t[]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ onLongPressMoveUp }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ onLongPressMoveDown }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign={ true }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\tonLongMove:\n\t\t\t\t( targetIndex ) =>\n\t\t\t\t( ...args ) =>\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tclientIds,\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\ttargetIndex,\n\t\t\t\t\t\t...args\n\t\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"]}
|
|
@@ -10,7 +10,7 @@ import classnames from 'classnames';
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { useSelect } from '@wordpress/data';
|
|
13
|
-
import { useCallback, useMemo, createContext } from '@wordpress/element';
|
|
13
|
+
import { useCallback, useMemo, createContext, useReducer, useLayoutEffect } from '@wordpress/element';
|
|
14
14
|
import { Popover } from '@wordpress/components';
|
|
15
15
|
import { isRTL } from '@wordpress/i18n';
|
|
16
16
|
/**
|
|
@@ -31,6 +31,8 @@ function BlockPopoverInbetween(_ref) {
|
|
|
31
31
|
__unstableContentRef,
|
|
32
32
|
...props
|
|
33
33
|
} = _ref;
|
|
34
|
+
// This is a temporary hack to get the inbetween inserter to recompute properly.
|
|
35
|
+
const [positionRecompute, forceRecompute] = useReducer(s => s + 1, 0);
|
|
34
36
|
const {
|
|
35
37
|
orientation,
|
|
36
38
|
rootClientId,
|
|
@@ -44,14 +46,14 @@ function BlockPopoverInbetween(_ref) {
|
|
|
44
46
|
isBlockVisible
|
|
45
47
|
} = select(blockEditorStore);
|
|
46
48
|
|
|
47
|
-
const _rootClientId = getBlockRootClientId(previousClientId);
|
|
49
|
+
const _rootClientId = getBlockRootClientId(previousClientId !== null && previousClientId !== void 0 ? previousClientId : nextClientId);
|
|
48
50
|
|
|
49
51
|
return {
|
|
50
52
|
orientation: ((_getBlockListSettings = getBlockListSettings(_rootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation) || 'vertical',
|
|
51
53
|
rootClientId: _rootClientId,
|
|
52
54
|
isVisible: isBlockVisible(previousClientId) && isBlockVisible(nextClientId)
|
|
53
55
|
};
|
|
54
|
-
}, [previousClientId]);
|
|
56
|
+
}, [previousClientId, nextClientId]);
|
|
55
57
|
const previousElement = useBlockElement(previousClientId);
|
|
56
58
|
const nextElement = useBlockElement(nextClientId);
|
|
57
59
|
const isVertical = orientation === 'vertical';
|
|
@@ -65,7 +67,7 @@ function BlockPopoverInbetween(_ref) {
|
|
|
65
67
|
|
|
66
68
|
if (isVertical) {
|
|
67
69
|
return {
|
|
68
|
-
width:
|
|
70
|
+
width: previousRect ? previousRect.width : nextRect.width,
|
|
69
71
|
height: nextRect && previousRect ? nextRect.top - previousRect.bottom : 0
|
|
70
72
|
};
|
|
71
73
|
}
|
|
@@ -78,9 +80,9 @@ function BlockPopoverInbetween(_ref) {
|
|
|
78
80
|
|
|
79
81
|
return {
|
|
80
82
|
width,
|
|
81
|
-
height:
|
|
83
|
+
height: previousRect ? previousRect.height : nextRect.height
|
|
82
84
|
};
|
|
83
|
-
}, [previousElement, nextElement, isVertical]);
|
|
85
|
+
}, [previousElement, nextElement, isVertical, positionRecompute, isVisible]);
|
|
84
86
|
const getAnchorRect = useCallback(() => {
|
|
85
87
|
if (!previousElement && !nextElement || !isVisible) {
|
|
86
88
|
return {};
|
|
@@ -97,8 +99,8 @@ function BlockPopoverInbetween(_ref) {
|
|
|
97
99
|
return {
|
|
98
100
|
top: previousRect ? previousRect.bottom : nextRect.top,
|
|
99
101
|
left: previousRect ? previousRect.right : nextRect.right,
|
|
100
|
-
right: previousRect ? previousRect.
|
|
101
|
-
bottom:
|
|
102
|
+
right: previousRect ? previousRect.right : nextRect.right,
|
|
103
|
+
bottom: previousRect ? previousRect.bottom : nextRect.top,
|
|
102
104
|
height: 0,
|
|
103
105
|
width: 0,
|
|
104
106
|
ownerDocument
|
|
@@ -108,8 +110,8 @@ function BlockPopoverInbetween(_ref) {
|
|
|
108
110
|
return {
|
|
109
111
|
top: previousRect ? previousRect.bottom : nextRect.top,
|
|
110
112
|
left: previousRect ? previousRect.left : nextRect.left,
|
|
111
|
-
right: previousRect ? previousRect.
|
|
112
|
-
bottom:
|
|
113
|
+
right: previousRect ? previousRect.left : nextRect.left,
|
|
114
|
+
bottom: previousRect ? previousRect.bottom : nextRect.top,
|
|
113
115
|
height: 0,
|
|
114
116
|
width: 0,
|
|
115
117
|
ownerDocument
|
|
@@ -120,8 +122,8 @@ function BlockPopoverInbetween(_ref) {
|
|
|
120
122
|
return {
|
|
121
123
|
top: previousRect ? previousRect.top : nextRect.top,
|
|
122
124
|
left: previousRect ? previousRect.left : nextRect.right,
|
|
123
|
-
right:
|
|
124
|
-
bottom: previousRect ? previousRect.
|
|
125
|
+
right: previousRect ? previousRect.left : nextRect.right,
|
|
126
|
+
bottom: previousRect ? previousRect.top : nextRect.top,
|
|
125
127
|
height: 0,
|
|
126
128
|
width: 0,
|
|
127
129
|
ownerDocument
|
|
@@ -131,14 +133,51 @@ function BlockPopoverInbetween(_ref) {
|
|
|
131
133
|
return {
|
|
132
134
|
top: previousRect ? previousRect.top : nextRect.top,
|
|
133
135
|
left: previousRect ? previousRect.right : nextRect.left,
|
|
134
|
-
right:
|
|
135
|
-
bottom: previousRect ? previousRect.
|
|
136
|
+
right: previousRect ? previousRect.right : nextRect.left,
|
|
137
|
+
bottom: previousRect ? previousRect.left : nextRect.right,
|
|
136
138
|
height: 0,
|
|
137
139
|
width: 0,
|
|
138
140
|
ownerDocument
|
|
139
141
|
};
|
|
140
|
-
}, [previousElement, nextElement]);
|
|
141
|
-
const popoverScrollRef = usePopoverScroll(__unstableContentRef); //
|
|
142
|
+
}, [previousElement, nextElement, positionRecompute, isVisible]);
|
|
143
|
+
const popoverScrollRef = usePopoverScroll(__unstableContentRef); // This is only needed for a smooth transition when moving blocks.
|
|
144
|
+
|
|
145
|
+
useLayoutEffect(() => {
|
|
146
|
+
if (!previousElement) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const observer = new window.MutationObserver(forceRecompute);
|
|
151
|
+
observer.observe(previousElement, {
|
|
152
|
+
attributes: true
|
|
153
|
+
});
|
|
154
|
+
return () => {
|
|
155
|
+
observer.disconnect();
|
|
156
|
+
};
|
|
157
|
+
}, [previousElement]);
|
|
158
|
+
useLayoutEffect(() => {
|
|
159
|
+
if (!nextElement) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
const observer = new window.MutationObserver(forceRecompute);
|
|
164
|
+
observer.observe(nextElement, {
|
|
165
|
+
attributes: true
|
|
166
|
+
});
|
|
167
|
+
return () => {
|
|
168
|
+
observer.disconnect();
|
|
169
|
+
};
|
|
170
|
+
}, [nextElement]);
|
|
171
|
+
useLayoutEffect(() => {
|
|
172
|
+
if (!previousElement) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
previousElement.ownerDocument.defaultView.addEventListener('resize', forceRecompute);
|
|
177
|
+
return () => {
|
|
178
|
+
previousElement.ownerDocument.defaultView.removeEventListener('resize', forceRecompute);
|
|
179
|
+
};
|
|
180
|
+
}, [previousElement]); // If there's either a previous or a next element, show the inbetween popover.
|
|
142
181
|
// Note that drag and drop uses the inbetween popover to show the drop indicator
|
|
143
182
|
// before the first block and after the last block.
|
|
144
183
|
|
|
@@ -167,8 +206,11 @@ function BlockPopoverInbetween(_ref) {
|
|
|
167
206
|
key: nextClientId + '--' + rootClientId
|
|
168
207
|
}, props, {
|
|
169
208
|
className: classnames('block-editor-block-popover', 'block-editor-block-popover__inbetween', props.className),
|
|
170
|
-
|
|
209
|
+
resize: false,
|
|
210
|
+
flip: false,
|
|
211
|
+
placement: "bottom-start"
|
|
171
212
|
}), createElement("div", {
|
|
213
|
+
className: "block-editor-block-popover__inbetween-container",
|
|
172
214
|
style: style
|
|
173
215
|
}, children));
|
|
174
216
|
/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/inbetween.js"],"names":["classnames","useSelect","useCallback","useMemo","createContext","Popover","isRTL","store","blockEditorStore","__unstableUseBlockElement","useBlockElement","usePopoverScroll","InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","props","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","_rootClientId","previousElement","nextElement","isVertical","style","previousRect","getBoundingClientRect","nextRect","width","offsetWidth","height","top","bottom","left","right","offsetHeight","getAnchorRect","ownerDocument","popoverScrollRef","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useCallback, useMemo, createContext } from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\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';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction BlockPopoverInbetween( {\n\tpreviousClientId,\n\tnextClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { orientation, rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockVisible,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId( previousClientId );\n\t\t\treturn {\n\t\t\t\torientation:\n\t\t\t\t\tgetBlockListSettings( _rootClientId )?.orientation ||\n\t\t\t\t\t'vertical',\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\tisBlockVisible( previousClientId ) &&\n\t\t\t\t\tisBlockVisible( nextClientId ),\n\t\t\t};\n\t\t},\n\t\t[ previousClientId ]\n\t);\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\tconst style = useMemo( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\treturn {\n\t\t\t\twidth: previousElement\n\t\t\t\t\t? previousElement.offsetWidth\n\t\t\t\t\t: nextElement.offsetWidth,\n\t\t\t\theight:\n\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( previousRect && nextRect ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousElement\n\t\t\t\t? previousElement.offsetHeight\n\t\t\t\t: nextElement.offsetHeight,\n\t\t};\n\t}, [ previousElement, nextElement, isVertical ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst { ownerDocument } = previousElement || nextElement;\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\tif ( isRTL() ) {\n\t\t\t\treturn {\n\t\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\tleft: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tright: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\t\theight: 0,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\townerDocument,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tright: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tright: nextRect ? nextRect.right : previousRect.left,\n\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\tleft: previousRect ? previousRect.right : nextRect.left,\n\t\t\tright: nextRect ? nextRect.left : previousRect.right,\n\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\townerDocument,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\t// If there's either a previous or a next element, show the inbetween popover.\n\t// Note that drag and drop uses the inbetween popover to show the drop indicator\n\t// before the first block and after the last block.\n\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\t'block-editor-block-popover__inbetween',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t\t__unstableForcePosition\n\t\t>\n\t\t\t<div style={ style }>{ children }</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default BlockPopoverInbetween;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/inbetween.js"],"names":["classnames","useSelect","useCallback","useMemo","createContext","useReducer","useLayoutEffect","Popover","isRTL","store","blockEditorStore","__unstableUseBlockElement","useBlockElement","usePopoverScroll","InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","props","positionRecompute","forceRecompute","s","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","_rootClientId","previousElement","nextElement","isVertical","style","previousRect","getBoundingClientRect","nextRect","width","height","top","bottom","left","right","getAnchorRect","ownerDocument","popoverScrollRef","observer","window","MutationObserver","observe","attributes","disconnect","defaultView","addEventListener","removeEventListener","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SACCC,WADD,EAECC,OAFD,EAGCC,aAHD,EAICC,UAJD,EAKCC,eALD,QAMO,oBANP;AAOA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,KAAT,QAAsB,iBAAtB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AAEA,OAAO,MAAMC,qBAAqB,GAAGV,aAAa,EAA3C;;AAEP,SAASW,qBAAT,OAOI;AAAA,MAP4B;AAC/BC,IAAAA,gBAD+B;AAE/BC,IAAAA,YAF+B;AAG/BC,IAAAA,QAH+B;AAI/BC,IAAAA,qBAJ+B;AAK/BC,IAAAA,oBAL+B;AAM/B,OAAGC;AAN4B,GAO5B;AACH;AACA,QAAM,CAAEC,iBAAF,EAAqBC,cAArB,IAAwClB,UAAU,CACrDmB,CAAF,IAASA,CAAC,GAAG,CAD0C,EAEvD,CAFuD,CAAxD;AAKA,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA,YAAf;AAA6BC,IAAAA;AAA7B,MAA2C1B,SAAS,CACvD2B,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,oBADK;AAELC,MAAAA,oBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAElB,gBAAF,CAJV;;AAMA,UAAMsB,aAAa,GAAGF,oBAAoB,CACzCd,gBADyC,aACzCA,gBADyC,cACzCA,gBADyC,GACrBC,YADqB,CAA1C;;AAGA,WAAO;AACNQ,MAAAA,WAAW,EACV,0BAAAI,oBAAoB,CAAEG,aAAF,CAApB,gFAAuCP,WAAvC,KACA,UAHK;AAINC,MAAAA,YAAY,EAAEM,aAJR;AAKNL,MAAAA,SAAS,EACRI,cAAc,CAAEf,gBAAF,CAAd,IACAe,cAAc,CAAEd,YAAF;AAPT,KAAP;AASA,GApBwD,EAqBzD,CAAED,gBAAF,EAAoBC,YAApB,CArByD,CAA1D;AAuBA,QAAMgB,eAAe,GAAGrB,eAAe,CAAEI,gBAAF,CAAvC;AACA,QAAMkB,WAAW,GAAGtB,eAAe,CAAEK,YAAF,CAAnC;AACA,QAAMkB,UAAU,GAAGV,WAAW,KAAK,UAAnC;AACA,QAAMW,KAAK,GAAGjC,OAAO,CAAE,MAAM;AAC5B,QAAO,CAAE8B,eAAF,IAAqB,CAAEC,WAAzB,IAA0C,CAAEP,SAAjD,EAA6D;AAC5D,aAAO,EAAP;AACA;;AAED,UAAMU,YAAY,GAAGJ,eAAe,GACjCA,eAAe,CAACK,qBAAhB,EADiC,GAEjC,IAFH;AAGA,UAAMC,QAAQ,GAAGL,WAAW,GACzBA,WAAW,CAACI,qBAAZ,EADyB,GAEzB,IAFH;;AAIA,QAAKH,UAAL,EAAkB;AACjB,aAAO;AACNK,QAAAA,KAAK,EAAEH,YAAY,GAAGA,YAAY,CAACG,KAAhB,GAAwBD,QAAQ,CAACC,KAD9C;AAENC,QAAAA,MAAM,EACLF,QAAQ,IAAIF,YAAZ,GACGE,QAAQ,CAACG,GAAT,GAAeL,YAAY,CAACM,MAD/B,GAEG;AALE,OAAP;AAOA;;AAED,QAAIH,KAAK,GAAG,CAAZ;;AACA,QAAKH,YAAY,IAAIE,QAArB,EAAgC;AAC/BC,MAAAA,KAAK,GAAGhC,KAAK,KACV6B,YAAY,CAACO,IAAb,GAAoBL,QAAQ,CAACM,KADnB,GAEVN,QAAQ,CAACK,IAAT,GAAgBP,YAAY,CAACQ,KAFhC;AAGA;;AAED,WAAO;AACNL,MAAAA,KADM;AAENC,MAAAA,MAAM,EAAEJ,YAAY,GAAGA,YAAY,CAACI,MAAhB,GAAyBF,QAAQ,CAACE;AAFhD,KAAP;AAIA,GAjCoB,EAiClB,CACFR,eADE,EAEFC,WAFE,EAGFC,UAHE,EAIFb,iBAJE,EAKFK,SALE,CAjCkB,CAArB;AAyCA,QAAMmB,aAAa,GAAG5C,WAAW,CAAE,MAAM;AACxC,QAAO,CAAE+B,eAAF,IAAqB,CAAEC,WAAzB,IAA0C,CAAEP,SAAjD,EAA6D;AAC5D,aAAO,EAAP;AACA;;AAED,UAAM;AAAEoB,MAAAA;AAAF,QAAoBd,eAAe,IAAIC,WAA7C;AAEA,UAAMG,YAAY,GAAGJ,eAAe,GACjCA,eAAe,CAACK,qBAAhB,EADiC,GAEjC,IAFH;AAGA,UAAMC,QAAQ,GAAGL,WAAW,GACzBA,WAAW,CAACI,qBAAZ,EADyB,GAEzB,IAFH;;AAIA,QAAKH,UAAL,EAAkB;AACjB,UAAK3B,KAAK,EAAV,EAAe;AACd,eAAO;AACNkC,UAAAA,GAAG,EAAEL,YAAY,GAAGA,YAAY,CAACM,MAAhB,GAAyBJ,QAAQ,CAACG,GAD7C;AAENE,UAAAA,IAAI,EAAEP,YAAY,GAAGA,YAAY,CAACQ,KAAhB,GAAwBN,QAAQ,CAACM,KAF7C;AAGNA,UAAAA,KAAK,EAAER,YAAY,GAAGA,YAAY,CAACQ,KAAhB,GAAwBN,QAAQ,CAACM,KAH9C;AAINF,UAAAA,MAAM,EAAEN,YAAY,GAAGA,YAAY,CAACM,MAAhB,GAAyBJ,QAAQ,CAACG,GAJhD;AAKND,UAAAA,MAAM,EAAE,CALF;AAMND,UAAAA,KAAK,EAAE,CAND;AAONO,UAAAA;AAPM,SAAP;AASA;;AAED,aAAO;AACNL,QAAAA,GAAG,EAAEL,YAAY,GAAGA,YAAY,CAACM,MAAhB,GAAyBJ,QAAQ,CAACG,GAD7C;AAENE,QAAAA,IAAI,EAAEP,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACK,IAF5C;AAGNC,QAAAA,KAAK,EAAER,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACK,IAH7C;AAIND,QAAAA,MAAM,EAAEN,YAAY,GAAGA,YAAY,CAACM,MAAhB,GAAyBJ,QAAQ,CAACG,GAJhD;AAKND,QAAAA,MAAM,EAAE,CALF;AAMND,QAAAA,KAAK,EAAE,CAND;AAONO,QAAAA;AAPM,OAAP;AASA;;AAED,QAAKvC,KAAK,EAAV,EAAe;AACd,aAAO;AACNkC,QAAAA,GAAG,EAAEL,YAAY,GAAGA,YAAY,CAACK,GAAhB,GAAsBH,QAAQ,CAACG,GAD1C;AAENE,QAAAA,IAAI,EAAEP,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACM,KAF5C;AAGNA,QAAAA,KAAK,EAAER,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACM,KAH7C;AAINF,QAAAA,MAAM,EAAEN,YAAY,GAAGA,YAAY,CAACK,GAAhB,GAAsBH,QAAQ,CAACG,GAJ7C;AAKND,QAAAA,MAAM,EAAE,CALF;AAMND,QAAAA,KAAK,EAAE,CAND;AAONO,QAAAA;AAPM,OAAP;AASA;;AAED,WAAO;AACNL,MAAAA,GAAG,EAAEL,YAAY,GAAGA,YAAY,CAACK,GAAhB,GAAsBH,QAAQ,CAACG,GAD1C;AAENE,MAAAA,IAAI,EAAEP,YAAY,GAAGA,YAAY,CAACQ,KAAhB,GAAwBN,QAAQ,CAACK,IAF7C;AAGNC,MAAAA,KAAK,EAAER,YAAY,GAAGA,YAAY,CAACQ,KAAhB,GAAwBN,QAAQ,CAACK,IAH9C;AAIND,MAAAA,MAAM,EAAEN,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACM,KAJ9C;AAKNJ,MAAAA,MAAM,EAAE,CALF;AAMND,MAAAA,KAAK,EAAE,CAND;AAONO,MAAAA;AAPM,KAAP;AASA,GA3DgC,EA2D9B,CAAEd,eAAF,EAAmBC,WAAnB,EAAgCZ,iBAAhC,EAAmDK,SAAnD,CA3D8B,CAAjC;AA6DA,QAAMqB,gBAAgB,GAAGnC,gBAAgB,CAAEO,oBAAF,CAAzC,CAvIG,CAyIH;;AACAd,EAAAA,eAAe,CAAE,MAAM;AACtB,QAAK,CAAE2B,eAAP,EAAyB;AACxB;AACA;;AACD,UAAMgB,QAAQ,GAAG,IAAIC,MAAM,CAACC,gBAAX,CAA6B5B,cAA7B,CAAjB;AACA0B,IAAAA,QAAQ,CAACG,OAAT,CAAkBnB,eAAlB,EAAmC;AAAEoB,MAAAA,UAAU,EAAE;AAAd,KAAnC;AAEA,WAAO,MAAM;AACZJ,MAAAA,QAAQ,CAACK,UAAT;AACA,KAFD;AAGA,GAVc,EAUZ,CAAErB,eAAF,CAVY,CAAf;AAYA3B,EAAAA,eAAe,CAAE,MAAM;AACtB,QAAK,CAAE4B,WAAP,EAAqB;AACpB;AACA;;AACD,UAAMe,QAAQ,GAAG,IAAIC,MAAM,CAACC,gBAAX,CAA6B5B,cAA7B,CAAjB;AACA0B,IAAAA,QAAQ,CAACG,OAAT,CAAkBlB,WAAlB,EAA+B;AAAEmB,MAAAA,UAAU,EAAE;AAAd,KAA/B;AAEA,WAAO,MAAM;AACZJ,MAAAA,QAAQ,CAACK,UAAT;AACA,KAFD;AAGA,GAVc,EAUZ,CAAEpB,WAAF,CAVY,CAAf;AAYA5B,EAAAA,eAAe,CAAE,MAAM;AACtB,QAAK,CAAE2B,eAAP,EAAyB;AACxB;AACA;;AACDA,IAAAA,eAAe,CAACc,aAAhB,CAA8BQ,WAA9B,CAA0CC,gBAA1C,CACC,QADD,EAECjC,cAFD;AAIA,WAAO,MAAM;AACZU,MAAAA,eAAe,CAACc,aAAhB,CAA8BQ,WAA9B,CAA0CE,mBAA1C,CACC,QADD,EAEClC,cAFD;AAIA,KALD;AAMA,GAdc,EAcZ,CAAEU,eAAF,CAdY,CAAf,CAlKG,CAkLH;AACA;AACA;;AACA,MAAO,CAAEA,eAAF,IAAqB,CAAEC,WAAzB,IAA0C,CAAEP,SAAjD,EAA6D;AAC5D,WAAO,IAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGqB,gBADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,aAAa,EAAGF,aAHjB;AAIC,IAAA,YAAY,EAAG,KAJhB,CAKC;AACA;AAND;AAOC,IAAA,kBAAkB,EAAG3B,qBAAqB,IAAI,IAP/C,CAQC;AACA;AATD;AAUC,IAAA,GAAG,EAAGF,YAAY,GAAG,IAAf,GAAsBS;AAV7B,KAWML,KAXN;AAYC,IAAA,SAAS,EAAGrB,UAAU,CACrB,4BADqB,EAErB,uCAFqB,EAGrBqB,KAAK,CAACqC,SAHe,CAZvB;AAiBC,IAAA,MAAM,EAAG,KAjBV;AAkBC,IAAA,IAAI,EAAG,KAlBR;AAmBC,IAAA,SAAS,EAAC;AAnBX,MAqBC;AACC,IAAA,SAAS,EAAC,iDADX;AAEC,IAAA,KAAK,EAAGtB;AAFT,KAIGlB,QAJH,CArBD,CADD;AA8BA;AACA;;AAED,eAAeH,qBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tcreateContext,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\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';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction BlockPopoverInbetween( {\n\tpreviousClientId,\n\tnextClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\t// This is a temporary hack to get the inbetween inserter to recompute properly.\n\tconst [ positionRecompute, forceRecompute ] = useReducer(\n\t\t( s ) => s + 1,\n\t\t0\n\t);\n\n\tconst { orientation, rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockVisible,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\tpreviousClientId ?? nextClientId\n\t\t\t);\n\t\t\treturn {\n\t\t\t\torientation:\n\t\t\t\t\tgetBlockListSettings( _rootClientId )?.orientation ||\n\t\t\t\t\t'vertical',\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\tisBlockVisible( previousClientId ) &&\n\t\t\t\t\tisBlockVisible( nextClientId ),\n\t\t\t};\n\t\t},\n\t\t[ previousClientId, nextClientId ]\n\t);\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\tconst style = useMemo( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\treturn {\n\t\t\t\twidth: previousRect ? previousRect.width : nextRect.width,\n\t\t\t\theight:\n\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( previousRect && nextRect ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousRect ? previousRect.height : nextRect.height,\n\t\t};\n\t}, [\n\t\tpreviousElement,\n\t\tnextElement,\n\t\tisVertical,\n\t\tpositionRecompute,\n\t\tisVisible,\n\t] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst { ownerDocument } = previousElement || nextElement;\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\tif ( isRTL() ) {\n\t\t\t\treturn {\n\t\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\tleft: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tright: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\theight: 0,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\townerDocument,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tright: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tright: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tbottom: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\tleft: previousRect ? previousRect.right : nextRect.left,\n\t\t\tright: previousRect ? previousRect.right : nextRect.left,\n\t\t\tbottom: previousRect ? previousRect.left : nextRect.right,\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\townerDocument,\n\t\t};\n\t}, [ previousElement, nextElement, positionRecompute, isVisible ] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\t// This is only needed for a smooth transition when moving blocks.\n\tuseLayoutEffect( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( forceRecompute );\n\t\tobserver.observe( previousElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ previousElement ] );\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! nextElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( forceRecompute );\n\t\tobserver.observe( nextElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ nextElement ] );\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn;\n\t\t}\n\t\tpreviousElement.ownerDocument.defaultView.addEventListener(\n\t\t\t'resize',\n\t\t\tforceRecompute\n\t\t);\n\t\treturn () => {\n\t\t\tpreviousElement.ownerDocument.defaultView.removeEventListener(\n\t\t\t\t'resize',\n\t\t\t\tforceRecompute\n\t\t\t);\n\t\t};\n\t}, [ previousElement ] );\n\n\t// If there's either a previous or a next element, show the inbetween popover.\n\t// Note that drag and drop uses the inbetween popover to show the drop indicator\n\t// before the first block and after the last block.\n\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\t'block-editor-block-popover__inbetween',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tplacement=\"bottom-start\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-block-popover__inbetween-container\"\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default BlockPopoverInbetween;\n"]}
|
|
@@ -9,15 +9,17 @@ import classnames from 'classnames';
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
import { useMergeRefs } from '@wordpress/compose';
|
|
12
13
|
import { Popover } from '@wordpress/components';
|
|
13
|
-
import { useMemo } from '@wordpress/element';
|
|
14
|
+
import { forwardRef, useMemo } from '@wordpress/element';
|
|
14
15
|
/**
|
|
15
16
|
* Internal dependencies
|
|
16
17
|
*/
|
|
17
18
|
|
|
18
19
|
import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
|
|
19
20
|
import usePopoverScroll from './use-popover-scroll';
|
|
20
|
-
|
|
21
|
+
|
|
22
|
+
function BlockPopover(_ref, ref) {
|
|
21
23
|
let {
|
|
22
24
|
clientId,
|
|
23
25
|
bottomClientId,
|
|
@@ -30,7 +32,7 @@ export default function BlockPopover(_ref) {
|
|
|
30
32
|
} = _ref;
|
|
31
33
|
const selectedElement = useBlockElement(clientId);
|
|
32
34
|
const lastSelectedElement = useBlockElement(bottomClientId !== null && bottomClientId !== void 0 ? bottomClientId : clientId);
|
|
33
|
-
const
|
|
35
|
+
const mergedRefs = useMergeRefs([ref, usePopoverScroll(__unstableContentRef)]);
|
|
34
36
|
const style = useMemo(() => {
|
|
35
37
|
if (!selectedElement || lastSelectedElement !== selectedElement) {
|
|
36
38
|
return {};
|
|
@@ -52,22 +54,23 @@ export default function BlockPopover(_ref) {
|
|
|
52
54
|
bottom: lastSelectedElement
|
|
53
55
|
};
|
|
54
56
|
return createElement(Popover, _extends({
|
|
55
|
-
ref:
|
|
57
|
+
ref: mergedRefs,
|
|
56
58
|
animate: false,
|
|
57
59
|
position: "top right left",
|
|
58
60
|
focusOnMount: false,
|
|
59
61
|
anchorRef: anchorRef // Render in the old slot if needed for backward compatibility,
|
|
60
62
|
// otherwise render in place (not in the default popover slot).
|
|
61
63
|
,
|
|
62
|
-
__unstableSlotName: __unstablePopoverSlot || null
|
|
63
|
-
,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
__unstableShift: true
|
|
64
|
+
__unstableSlotName: __unstablePopoverSlot || null,
|
|
65
|
+
resize: false,
|
|
66
|
+
flip: false,
|
|
67
|
+
shift: true
|
|
67
68
|
}, props, {
|
|
68
69
|
className: classnames('block-editor-block-popover', props.className)
|
|
69
70
|
}), __unstableCoverTarget && createElement("div", {
|
|
70
71
|
style: style
|
|
71
72
|
}, children), !__unstableCoverTarget && children);
|
|
72
73
|
}
|
|
74
|
+
|
|
75
|
+
export default forwardRef(BlockPopover);
|
|
73
76
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["classnames","Popover","useMemo","__unstableUseBlockElement","useBlockElement","usePopoverScroll","BlockPopover","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["classnames","useMergeRefs","Popover","forwardRef","useMemo","__unstableUseBlockElement","useBlockElement","usePopoverScroll","BlockPopover","ref","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","mergedRefs","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,QAA6B,oBAA7B;AACA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,UAAT,EAAqBC,OAArB,QAAoC,oBAApC;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;;AAEA,SAASC,YAAT,OAWCC,GAXD,EAYE;AAAA,MAXD;AACCC,IAAAA,QADD;AAECC,IAAAA,cAFD;AAGCC,IAAAA,QAHD;AAICC,IAAAA,qBAJD;AAKCC,IAAAA,qBAAqB,GAAG,KALzB;AAMCC,IAAAA,qBAND;AAOCC,IAAAA,oBAPD;AAQC,OAAGC;AARJ,GAWC;AACD,QAAMC,eAAe,GAAGZ,eAAe,CAAEI,QAAF,CAAvC;AACA,QAAMS,mBAAmB,GAAGb,eAAe,CAAEK,cAAF,aAAEA,cAAF,cAAEA,cAAF,GAAoBD,QAApB,CAA3C;AACA,QAAMU,UAAU,GAAGnB,YAAY,CAAE,CAChCQ,GADgC,EAEhCF,gBAAgB,CAAES,oBAAF,CAFgB,CAAF,CAA/B;AAIA,QAAMK,KAAK,GAAGjB,OAAO,CAAE,MAAM;AAC5B,QAAK,CAAEc,eAAF,IAAqBC,mBAAmB,KAAKD,eAAlD,EAAoE;AACnE,aAAO,EAAP;AACA;;AAED,WAAO;AACNI,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAEL,eAAe,CAACM,WAFjB;AAGNC,MAAAA,MAAM,EAAEP,eAAe,CAACQ;AAHlB,KAAP;AAKA,GAVoB,EAUlB,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVkB,CAArB;;AAYA,MAAK,CAAEK,eAAF,IAAuBP,cAAc,IAAI,CAAEQ,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAMQ,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEV,eADY;AAEjBW,IAAAA,MAAM,EAAEV;AAFS,GAAlB;AAKA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGC,UADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,QAAQ,EAAC,gBAHV;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAGO,SALb,CAMC;AACA;AAPD;AAQC,IAAA,kBAAkB,EAAGZ,qBAAqB,IAAI,IAR/C;AASC,IAAA,MAAM,EAAG,KATV;AAUC,IAAA,IAAI,EAAG,KAVR;AAWC,IAAA,KAAK;AAXN,KAYME,KAZN;AAaC,IAAA,SAAS,EAAGjB,UAAU,CACrB,4BADqB,EAErBiB,KAAK,CAACa,SAFe;AAbvB,MAkBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAlB5B,EAmBG,CAAEE,qBAAF,IAA2BF,QAnB9B,CADD;AAuBA;;AAED,eAAeT,UAAU,CAAEK,YAAF,CAAzB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport { forwardRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstableRefreshSize,\n\t\t__unstableCoverTarget = false,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\tconst style = useMemo( () => {\n\t\tif ( ! selectedElement || lastSelectedElement !== selectedElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth: selectedElement.offsetWidth,\n\t\t\theight: selectedElement.offsetHeight,\n\t\t};\n\t}, [ selectedElement, lastSelectedElement, __unstableRefreshSize ] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst anchorRef = {\n\t\ttop: selectedElement,\n\t\tbottom: lastSelectedElement,\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tposition=\"top right left\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchorRef={ anchorRef }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tshift\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t>\n\t\t\t{ __unstableCoverTarget && <div style={ style }>{ children }</div> }\n\t\t\t{ ! __unstableCoverTarget && children }\n\t\t</Popover>\n\t);\n}\n\nexport default forwardRef( BlockPopover );\n"]}
|
|
@@ -89,9 +89,11 @@ function AutoBlockPreview(_ref) {
|
|
|
89
89
|
documentElement.classList.add('block-editor-block-preview__content-iframe');
|
|
90
90
|
documentElement.style.position = 'absolute';
|
|
91
91
|
documentElement.style.width = '100%';
|
|
92
|
-
bodyElement.style.padding = __experimentalPadding + 'px'; //
|
|
92
|
+
bodyElement.style.padding = __experimentalPadding + 'px'; // Necessary for contentResizeListener to work.
|
|
93
93
|
|
|
94
|
-
bodyElement.style.
|
|
94
|
+
bodyElement.style.boxSizing = 'border-box';
|
|
95
|
+
bodyElement.style.position = 'absolute';
|
|
96
|
+
bodyElement.style.width = '100%';
|
|
95
97
|
}, []),
|
|
96
98
|
"aria-hidden": true,
|
|
97
99
|
tabIndex: -1,
|