@wordpress/block-editor 13.2.0 → 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +0 -5
- package/build/components/alignment-control/ui.js +2 -2
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +1 -1
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +12 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -3
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
- 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 +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +0 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +1 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +5 -7
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +20 -17
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -0
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +4 -12
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +20 -17
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +6 -2
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +7 -58
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/index.js +14 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +9 -8
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +58 -0
- package/build/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build/components/block-tools/zoom-out-toolbar.js +138 -0
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build/components/button-block-appender/index.js +3 -1
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +26 -18
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +7 -4
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/dimensions-tool/index.js +6 -4
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +22 -62
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +185 -116
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +2 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +2 -1
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +13 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +45 -24
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +121 -0
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +47 -13
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +17 -7
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +90 -48
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-item-resizer.js +2 -2
- package/build/components/grid/grid-item-resizer.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +117 -37
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +60 -41
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/index.js +1 -9
- package/build/components/index.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/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +1 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +26 -4
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +20 -3
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +10 -3
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build/components/inspector-controls-tabs/settings-tab.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/list-view/block-select-button.js +2 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +2 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +19 -23
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +66 -0
- package/build/components/tabbed-sidebar/index.js.map +1 -0
- package/build/components/url-popover/image-url-input-ui.js +3 -3
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +3 -0
- package/build/components/url-popover/index.js.map +1 -1
- package/build/hooks/background.js +26 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +11 -17
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +169 -4
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/duotone.js +16 -11
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/grid-visualizer.js +62 -0
- package/build/hooks/grid-visualizer.js.map +1 -0
- package/build/hooks/index.js +15 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +47 -23
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +4 -15
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +96 -55
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/utils.js +2 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +50 -4
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +92 -51
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +6 -4
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +18 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +0 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js +0 -3
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/format-font-style.js +45 -0
- package/build/utils/format-font-style.js.map +1 -0
- package/build/utils/format-font-weight.js +68 -0
- package/build/utils/format-font-weight.js.map +1 -0
- package/build/utils/get-editor-region.js +34 -0
- package/build/utils/get-editor-region.js.map +1 -0
- package/build/utils/get-font-styles-and-weights.js +167 -0
- package/build/utils/get-font-styles-and-weights.js.map +1 -0
- package/build/utils/pasting.js +5 -13
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +2 -2
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +1 -1
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +12 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -3
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -1
- 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-refs.js +11 -4
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
- 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 +3 -2
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +0 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +1 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +5 -7
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +20 -17
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +2 -0
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +5 -13
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-switcher/index.js +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +20 -17
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +6 -2
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +10 -61
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/index.js +14 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +9 -8
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +49 -0
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build-module/components/button-block-appender/index.js +3 -1
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +27 -19
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -2
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +7 -4
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js +6 -4
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +24 -62
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +188 -119
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -2
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +3 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +3 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +13 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +3 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +47 -26
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +117 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +47 -13
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +15 -6
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +93 -50
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-item-resizer.js +2 -2
- package/build-module/components/grid/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +118 -38
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +61 -42
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.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/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +26 -4
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +20 -3
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +10 -3
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.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/list-view/block-select-button.js +3 -7
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +2 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +19 -23
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +60 -0
- package/build-module/components/tabbed-sidebar/index.js.map +1 -0
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +3 -0
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/hooks/background.js +26 -4
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +11 -17
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +168 -4
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/duotone.js +16 -11
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/grid-visualizer.js +61 -0
- package/build-module/hooks/grid-visualizer.js.map +1 -0
- package/build-module/hooks/index.js +3 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +47 -23
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -15
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +96 -56
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/utils.js +2 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +50 -4
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +92 -51
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +8 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +15 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +0 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js +0 -3
- package/build-module/store/defaults.native.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +10 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/format-font-style.js +39 -0
- package/build-module/utils/format-font-style.js.map +1 -0
- package/build-module/utils/format-font-weight.js +62 -0
- package/build-module/utils/format-font-weight.js.map +1 -0
- package/build-module/utils/get-editor-region.js +28 -0
- package/build-module/utils/get-editor-region.js.map +1 -0
- package/build-module/utils/get-font-styles-and-weights.js +160 -0
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
- package/build-module/utils/pasting.js +5 -13
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +7 -6
- package/build-style/content.css +7 -6
- package/build-style/style-rtl.css +356 -181
- package/build-style/style.css +356 -181
- package/build-types/components/block-context/index.d.ts +2 -2
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +32 -32
- package/src/components/alignment-control/ui.js +2 -2
- package/src/components/block-alignment-control/ui.js +1 -1
- package/src/components/block-alignment-control/ui.native.js +1 -1
- package/src/components/block-breadcrumb/index.js +16 -1
- package/src/components/block-context/README.md +4 -4
- package/src/components/block-inspector/index.js +8 -4
- package/src/components/block-list/content.scss +2 -16
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
- package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -1
- package/src/components/block-lock/modal.js +10 -2
- package/src/components/block-lock/style.scss +4 -8
- package/src/components/block-lock/toolbar.js +0 -1
- package/src/components/block-mover/button.js +1 -1
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/src/components/block-patterns-paging/index.js +8 -11
- package/src/components/block-patterns-paging/style.scss +0 -5
- package/src/components/block-quick-navigation/index.js +21 -28
- package/src/components/block-removal-warning-modal/index.js +10 -2
- package/src/components/block-rename/modal.js +2 -8
- package/src/components/block-switcher/index.js +1 -1
- package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
- package/src/components/block-switcher/preview-block-popover.js +20 -14
- package/src/components/block-switcher/style.scss +8 -17
- package/src/components/block-switcher/test/index.js +6 -6
- package/src/components/block-toolbar/shuffle.js +9 -1
- package/src/components/block-toolbar/style.scss +1 -11
- package/src/components/block-tools/block-selection-button.js +11 -83
- package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
- package/src/components/block-tools/index.js +21 -1
- package/src/components/block-tools/style.scss +23 -0
- package/src/components/block-tools/use-show-block-tools.js +21 -10
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
- package/src/components/block-tools/zoom-out-popover.js +50 -0
- package/src/components/block-tools/zoom-out-toolbar.js +140 -0
- package/src/components/button-block-appender/index.js +2 -1
- package/src/components/child-layout-control/index.js +41 -23
- package/src/components/date-format-picker/index.js +2 -2
- package/src/components/date-format-picker/style.scss +0 -9
- package/src/components/default-block-appender/index.js +11 -4
- package/src/components/dimensions-tool/index.js +97 -89
- package/src/components/font-appearance-control/index.js +24 -82
- package/src/components/font-appearance-control/style.scss +3 -5
- package/src/components/global-styles/background-panel.js +266 -167
- package/src/components/global-styles/border-panel.js +3 -2
- package/src/components/global-styles/color-panel.js +3 -2
- package/src/components/global-styles/dimensions-panel.js +3 -2
- package/src/components/global-styles/filters-panel.js +3 -2
- package/src/components/global-styles/hooks.js +14 -1
- package/src/components/global-styles/image-settings-panel.js +3 -2
- package/src/components/global-styles/style.scss +116 -19
- package/src/components/global-styles/test/typography-utils.js +594 -0
- package/src/components/global-styles/test/use-global-styles-output.js +3 -1
- package/src/components/global-styles/typography-panel.js +56 -27
- package/src/components/global-styles/typography-utils.js +159 -0
- package/src/components/global-styles/use-global-styles-output.js +45 -10
- package/src/components/global-styles/utils.js +17 -6
- package/src/components/grid/grid-item-movers.js +140 -86
- package/src/components/grid/grid-item-resizer.js +3 -2
- package/src/components/grid/grid-visualizer.js +172 -55
- package/src/components/grid/style.scss +157 -8
- package/src/components/grid/use-grid-layout-sync.js +88 -46
- package/src/components/iframe/content.scss +2 -1
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
- package/src/components/inserter/media-tab/media-panel.js +1 -0
- package/src/components/inserter/menu.js +47 -13
- package/src/components/inserter/preview-panel.js +27 -4
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +58 -92
- package/src/components/inserter-draggable-blocks/index.js +11 -3
- package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
- package/src/components/inspector-controls-tabs/style.scss +0 -21
- package/src/components/link-control/link-preview.js +1 -1
- package/src/components/list-view/block-select-button.js +3 -13
- package/src/components/list-view/block.js +10 -3
- package/src/components/list-view/style.scss +2 -1
- package/src/components/list-view/utils.js +13 -2
- package/src/components/media-placeholder/index.js +22 -32
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
- package/src/components/tabbed-sidebar/README.md +76 -0
- package/src/components/tabbed-sidebar/index.js +70 -0
- package/src/components/tabbed-sidebar/style.scss +53 -0
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/url-popover/index.js +3 -0
- package/src/components/url-popover/style.scss +1 -0
- package/src/hooks/background.js +25 -10
- package/src/hooks/block-hooks.js +9 -16
- package/src/hooks/block-style-variation.js +202 -3
- package/src/hooks/duotone.js +16 -12
- package/src/hooks/grid-visualizer.js +62 -0
- package/src/hooks/index.js +3 -0
- package/src/hooks/layout-child.js +64 -39
- package/src/hooks/position.js +3 -20
- package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
- package/src/hooks/use-bindings-attributes.js +107 -63
- package/src/hooks/utils.js +2 -0
- package/src/layouts/constrained.js +53 -4
- package/src/layouts/grid.js +148 -51
- package/src/private-apis.js +12 -7
- package/src/store/actions.js +15 -0
- package/src/store/defaults.js +0 -2
- package/src/store/defaults.native.js +0 -3
- package/src/store/private-keys.js +1 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +10 -0
- package/src/style.scss +1 -1
- package/src/utils/format-font-style.js +40 -0
- package/src/utils/format-font-weight.js +63 -0
- package/src/utils/get-editor-region.js +31 -0
- package/src/utils/get-font-styles-and-weights.js +191 -0
- package/src/utils/pasting.js +5 -12
- package/src/utils/test/format-font-style.js +34 -0
- package/src/utils/test/format-font-weight.js +66 -0
- package/src/utils/test/get-font-styles-and-weights.js +513 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +0 -71
- package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/src/components/inserter/reusable-block-rename-hint.js +0 -69
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
- package/src/hooks/position.scss +0 -18
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { useState } from '@wordpress/element';
|
|
6
|
-
import { useInstanceId } from '@wordpress/compose';
|
|
6
|
+
import { useInstanceId, useViewportMatch } from '@wordpress/compose';
|
|
7
7
|
import { chevronRight } from '@wordpress/icons';
|
|
8
8
|
import { MenuGroup, MenuItem, Popover, VisuallyHidden, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
9
9
|
|
|
@@ -49,19 +49,18 @@ function PreviewPatternsPopover({
|
|
|
49
49
|
patterns,
|
|
50
50
|
onSelect
|
|
51
51
|
}) {
|
|
52
|
+
const isMobile = useViewportMatch('medium', '<');
|
|
52
53
|
return /*#__PURE__*/_jsx("div", {
|
|
53
|
-
className: "block-editor-block-
|
|
54
|
-
children: /*#__PURE__*/_jsx(
|
|
55
|
-
className: "block-editor-block-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
onSelect: onSelect
|
|
64
|
-
})
|
|
54
|
+
className: "block-editor-block-switcher__popover-preview-container",
|
|
55
|
+
children: /*#__PURE__*/_jsx(Popover, {
|
|
56
|
+
className: "block-editor-block-switcher__popover-preview",
|
|
57
|
+
placement: isMobile ? 'bottom' : 'right-start',
|
|
58
|
+
offset: 16,
|
|
59
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
60
|
+
className: "block-editor-block-switcher__preview is-pattern-list-preview",
|
|
61
|
+
children: /*#__PURE__*/_jsx(BlockPatternsList, {
|
|
62
|
+
patterns: patterns,
|
|
63
|
+
onSelect: onSelect
|
|
65
64
|
})
|
|
66
65
|
})
|
|
67
66
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","useState","useInstanceId","chevronRight","MenuGroup","MenuItem","Popover","VisuallyHidden","privateApis","componentsPrivateApis","BlockPreview","useTransformedPatterns","unlock","jsx","_jsx","jsxs","_jsxs","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","PatternTransformationsMenu","blocks","patterns","statePatterns","onSelect","showTransforms","setShowTransforms","length","className","children","PreviewPatternsPopover","onClick","event","preventDefault","icon","
|
|
1
|
+
{"version":3,"names":["__","useState","useInstanceId","useViewportMatch","chevronRight","MenuGroup","MenuItem","Popover","VisuallyHidden","privateApis","componentsPrivateApis","BlockPreview","useTransformedPatterns","unlock","jsx","_jsx","jsxs","_jsxs","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","PatternTransformationsMenu","blocks","patterns","statePatterns","onSelect","showTransforms","setShowTransforms","length","className","children","PreviewPatternsPopover","onClick","event","preventDefault","icon","isMobile","placement","offset","BlockPatternsList","composite","store","role","map","pattern","BlockPattern","name","baseClassName","descriptionId","render","title","description","undefined","transformedBlocks","viewportWidth","id"],"sources":["@wordpress/block-editor/src/components/block-switcher/pattern-transformations-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId, useViewportMatch } from '@wordpress/compose';\nimport { chevronRight } from '@wordpress/icons';\n\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tPopover,\n\tVisuallyHidden,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport useTransformedPatterns from './use-transformed-patterns';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\nfunction PatternTransformationsMenu( {\n\tblocks,\n\tpatterns: statePatterns,\n\tonSelect,\n} ) {\n\tconst [ showTransforms, setShowTransforms ] = useState( false );\n\tconst patterns = useTransformedPatterns( statePatterns, blocks );\n\n\tif ( ! patterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuGroup className=\"block-editor-block-switcher__pattern__transforms__menugroup\">\n\t\t\t{ showTransforms && (\n\t\t\t\t<PreviewPatternsPopover\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<MenuItem\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetShowTransforms( ! showTransforms );\n\t\t\t\t} }\n\t\t\t\ticon={ chevronRight }\n\t\t\t>\n\t\t\t\t{ __( 'Patterns' ) }\n\t\t\t</MenuItem>\n\t\t</MenuGroup>\n\t);\n}\n\nfunction PreviewPatternsPopover( { patterns, onSelect } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement={ isMobile ? 'bottom' : 'right-start' }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview is-pattern-list-preview\">\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsList( { patterns, onSelect } ) {\n\tconst composite = useCompositeStore();\n\treturn (\n\t\t<Composite\n\t\t\tstore={ composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-switcher__preview-patterns-container\"\n\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t>\n\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t<BlockPattern\n\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nfunction BlockPattern( { pattern, onSelect } ) {\n\t// TODO check pattern/preview width...\n\tconst baseClassName =\n\t\t'block-editor-block-switcher__preview-patterns-container';\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }-list__item-description`\n\t);\n\treturn (\n\t\t<div className={ `${ baseClassName }-list__list-item` }>\n\t\t\t<CompositeItem\n\t\t\t\trender={\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclassName={ `${ baseClassName }-list__item` }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tonClick={ () => onSelect( pattern.transformedBlocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ pattern.transformedBlocks }\n\t\t\t\t\tviewportWidth={ pattern.viewportWidth || 500 }\n\t\t\t\t/>\n\t\t\t\t<div className={ `${ baseClassName }-list__item-title` }>\n\t\t\t\t\t{ pattern.title }\n\t\t\t\t</div>\n\t\t\t</CompositeItem>\n\t\t\t{ !! pattern.description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ pattern.description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default PatternTransformationsMenu;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { Popover } from '@wordpress/components';
|
|
6
|
+
import { useViewportMatch } from '@wordpress/compose';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Internal dependencies
|
|
@@ -13,24 +14,26 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
14
|
export default function PreviewBlockPopover({
|
|
14
15
|
blocks
|
|
15
16
|
}) {
|
|
17
|
+
const isMobile = useViewportMatch('medium', '<');
|
|
18
|
+
if (isMobile) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
16
21
|
return /*#__PURE__*/_jsx("div", {
|
|
17
|
-
className: "block-editor-block-
|
|
18
|
-
children: /*#__PURE__*/_jsx(
|
|
19
|
-
className: "block-editor-block-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
})]
|
|
33
|
-
})
|
|
22
|
+
className: "block-editor-block-switcher__popover-preview-container",
|
|
23
|
+
children: /*#__PURE__*/_jsx(Popover, {
|
|
24
|
+
className: "block-editor-block-switcher__popover-preview",
|
|
25
|
+
placement: "right-start",
|
|
26
|
+
focusOnMount: false,
|
|
27
|
+
offset: 16,
|
|
28
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
29
|
+
className: "block-editor-block-switcher__preview",
|
|
30
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
31
|
+
className: "block-editor-block-switcher__preview-title",
|
|
32
|
+
children: __('Preview')
|
|
33
|
+
}), /*#__PURE__*/_jsx(BlockPreview, {
|
|
34
|
+
viewportWidth: 500,
|
|
35
|
+
blocks: blocks
|
|
36
|
+
})]
|
|
34
37
|
})
|
|
35
38
|
})
|
|
36
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","Popover","BlockPreview","jsx","_jsx","jsxs","_jsxs","PreviewBlockPopover","blocks","className","children","placement","focusOnMount","viewportWidth"],"sources":["@wordpress/block-editor/src/components/block-switcher/preview-block-popover.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Popover } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\n\nexport default function PreviewBlockPopover( { blocks } ) {\n\
|
|
1
|
+
{"version":3,"names":["__","Popover","useViewportMatch","BlockPreview","jsx","_jsx","jsxs","_jsxs","PreviewBlockPopover","blocks","isMobile","className","children","placement","focusOnMount","offset","viewportWidth"],"sources":["@wordpress/block-editor/src/components/block-switcher/preview-block-popover.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Popover } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\n\nexport default function PreviewBlockPopover( { blocks } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement=\"right-start\"\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview\">\n\t\t\t\t\t<div className=\"block-editor-block-switcher__preview-title\">\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<BlockPreview viewportWidth={ 500 } blocks={ blocks } />\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA;AACA;AACA,OAAOC,YAAY,MAAM,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE5C,eAAe,SAASC,mBAAmBA,CAAE;EAAEC;AAAO,CAAC,EAAG;EACzD,MAAMC,QAAQ,GAAGR,gBAAgB,CAAE,QAAQ,EAAE,GAAI,CAAC;EAElD,IAAKQ,QAAQ,EAAG;IACf,OAAO,IAAI;EACZ;EAEA,oBACCL,IAAA;IAAKM,SAAS,EAAC,wDAAwD;IAAAC,QAAA,eACtEP,IAAA,CAACJ,OAAO;MACPU,SAAS,EAAC,8CAA8C;MACxDE,SAAS,EAAC,aAAa;MACvBC,YAAY,EAAG,KAAO;MACtBC,MAAM,EAAG,EAAI;MAAAH,QAAA,eAEbL,KAAA;QAAKI,SAAS,EAAC,sCAAsC;QAAAC,QAAA,gBACpDP,IAAA;UAAKM,SAAS,EAAC,4CAA4C;UAAAC,QAAA,EACxDZ,EAAE,CAAE,SAAU;QAAC,CACb,CAAC,eACNK,IAAA,CAACF,YAAY;UAACa,aAAa,EAAG,GAAK;UAACP,MAAM,EAAGA;QAAQ,CAAE,CAAC;MAAA,CACpD;IAAC,CACE;EAAC,CACN,CAAC;AAER","ignoreList":[]}
|
|
@@ -53,10 +53,13 @@ export default function Shuffle({
|
|
|
53
53
|
return EMPTY_ARRAY;
|
|
54
54
|
}
|
|
55
55
|
return patterns.filter(pattern => {
|
|
56
|
+
const isCorePattern = pattern.source === 'core' || pattern.source?.startsWith('pattern-directory') && pattern.source !== 'pattern-directory/theme';
|
|
56
57
|
return (
|
|
57
58
|
// Check if the pattern has only one top level block,
|
|
58
59
|
// otherwise we may shuffle to pattern that will not allow to continue shuffling.
|
|
59
|
-
pattern.blocks.length === 1 &&
|
|
60
|
+
pattern.blocks.length === 1 &&
|
|
61
|
+
// We exclude the core patterns and pattern directory patterns that are not theme patterns.
|
|
62
|
+
!isCorePattern && pattern.categories?.some(category => {
|
|
60
63
|
return categories.includes(category);
|
|
61
64
|
}) && (
|
|
62
65
|
// Check if the pattern is not a synced pattern.
|
|
@@ -64,7 +67,7 @@ export default function Shuffle({
|
|
|
64
67
|
);
|
|
65
68
|
});
|
|
66
69
|
}, [categories, patterns]);
|
|
67
|
-
if (sameCategoryPatternsWithSingleWrapper.length
|
|
70
|
+
if (sameCategoryPatternsWithSingleWrapper.length < 2) {
|
|
68
71
|
return null;
|
|
69
72
|
}
|
|
70
73
|
function getNextPattern() {
|
|
@@ -79,6 +82,7 @@ export default function Shuffle({
|
|
|
79
82
|
return /*#__PURE__*/_jsx(ComponentToUse, {
|
|
80
83
|
label: __('Shuffle'),
|
|
81
84
|
icon: shuffle,
|
|
85
|
+
className: "block-editor-block-toolbar-shuffle",
|
|
82
86
|
onClick: () => {
|
|
83
87
|
const nextPattern = getNextPattern();
|
|
84
88
|
nextPattern.blocks[0].attributes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["shuffle","ToolbarButton","ToolbarGroup","__","useMemo","useSelect","useDispatch","store","blockEditorStore","jsx","_jsx","EMPTY_ARRAY","Container","props","children","Shuffle","clientId","as","categories","patterns","patternName","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","attributes","_categories","metadata","_patternName","rootBlock","_patterns","replaceBlocks","sameCategoryPatternsWithSingleWrapper","length","filter","pattern","blocks","some","category","includes","syncStatus","id","getNextPattern","numberOfPatterns","patternIndex","findIndex","name","nextPatternIndex","ComponentToUse","label","icon","onClick","nextPattern"],"sources":["@wordpress/block-editor/src/components/block-toolbar/shuffle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { shuffle } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction Container( props ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton { ...props } />\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default function Shuffle( { clientId, as = Container } ) {\n\tconst { categories, patterns, patternName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetAllowedPatterns,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst _categories = attributes?.metadata?.categories || EMPTY_ARRAY;\n\t\t\tconst _patternName = attributes?.metadata?.patternName;\n\t\t\tconst rootBlock = getBlockRootClientId( clientId );\n\t\t\tconst _patterns = __experimentalGetAllowedPatterns( rootBlock );\n\t\t\treturn {\n\t\t\t\tcategories: _categories,\n\t\t\t\tpatterns: _patterns,\n\t\t\t\tpatternName: _patternName,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst sameCategoryPatternsWithSingleWrapper = useMemo( () => {\n\t\tif (\n\t\t\t! categories ||\n\t\t\tcategories.length === 0 ||\n\t\t\t! patterns ||\n\t\t\tpatterns.length === 0\n\t\t) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn patterns.filter( ( pattern ) => {\n\t\t\treturn (\n\t\t\t\t// Check if the pattern has only one top level block,\n\t\t\t\t// otherwise we may shuffle to pattern that will not allow to continue shuffling.\n\t\t\t\tpattern.blocks.length === 1 &&\n\t\t\t\tpattern.categories?.some( ( category ) => {\n\t\t\t\t\treturn categories.includes( category );\n\t\t\t\t} ) &&\n\t\t\t\t// Check if the pattern is not a synced pattern.\n\t\t\t\t( pattern.syncStatus === 'unsynced' || ! pattern.id )\n\t\t\t);\n\t\t} );\n\t}, [ categories, patterns ] );\n\tif ( sameCategoryPatternsWithSingleWrapper.length
|
|
1
|
+
{"version":3,"names":["shuffle","ToolbarButton","ToolbarGroup","__","useMemo","useSelect","useDispatch","store","blockEditorStore","jsx","_jsx","EMPTY_ARRAY","Container","props","children","Shuffle","clientId","as","categories","patterns","patternName","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","attributes","_categories","metadata","_patternName","rootBlock","_patterns","replaceBlocks","sameCategoryPatternsWithSingleWrapper","length","filter","pattern","isCorePattern","source","startsWith","blocks","some","category","includes","syncStatus","id","getNextPattern","numberOfPatterns","patternIndex","findIndex","name","nextPatternIndex","ComponentToUse","label","icon","className","onClick","nextPattern"],"sources":["@wordpress/block-editor/src/components/block-toolbar/shuffle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { shuffle } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction Container( props ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton { ...props } />\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default function Shuffle( { clientId, as = Container } ) {\n\tconst { categories, patterns, patternName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetAllowedPatterns,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst _categories = attributes?.metadata?.categories || EMPTY_ARRAY;\n\t\t\tconst _patternName = attributes?.metadata?.patternName;\n\t\t\tconst rootBlock = getBlockRootClientId( clientId );\n\t\t\tconst _patterns = __experimentalGetAllowedPatterns( rootBlock );\n\t\t\treturn {\n\t\t\t\tcategories: _categories,\n\t\t\t\tpatterns: _patterns,\n\t\t\t\tpatternName: _patternName,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst sameCategoryPatternsWithSingleWrapper = useMemo( () => {\n\t\tif (\n\t\t\t! categories ||\n\t\t\tcategories.length === 0 ||\n\t\t\t! patterns ||\n\t\t\tpatterns.length === 0\n\t\t) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn patterns.filter( ( pattern ) => {\n\t\t\tconst isCorePattern =\n\t\t\t\tpattern.source === 'core' ||\n\t\t\t\t( pattern.source?.startsWith( 'pattern-directory' ) &&\n\t\t\t\t\tpattern.source !== 'pattern-directory/theme' );\n\t\t\treturn (\n\t\t\t\t// Check if the pattern has only one top level block,\n\t\t\t\t// otherwise we may shuffle to pattern that will not allow to continue shuffling.\n\t\t\t\tpattern.blocks.length === 1 &&\n\t\t\t\t// We exclude the core patterns and pattern directory patterns that are not theme patterns.\n\t\t\t\t! isCorePattern &&\n\t\t\t\tpattern.categories?.some( ( category ) => {\n\t\t\t\t\treturn categories.includes( category );\n\t\t\t\t} ) &&\n\t\t\t\t// Check if the pattern is not a synced pattern.\n\t\t\t\t( pattern.syncStatus === 'unsynced' || ! pattern.id )\n\t\t\t);\n\t\t} );\n\t}, [ categories, patterns ] );\n\n\tif ( sameCategoryPatternsWithSingleWrapper.length < 2 ) {\n\t\treturn null;\n\t}\n\n\tfunction getNextPattern() {\n\t\tconst numberOfPatterns = sameCategoryPatternsWithSingleWrapper.length;\n\t\tconst patternIndex = sameCategoryPatternsWithSingleWrapper.findIndex(\n\t\t\t( { name } ) => name === patternName\n\t\t);\n\t\tconst nextPatternIndex =\n\t\t\tpatternIndex + 1 < numberOfPatterns ? patternIndex + 1 : 0;\n\t\treturn sameCategoryPatternsWithSingleWrapper[ nextPatternIndex ];\n\t}\n\n\tconst ComponentToUse = as;\n\treturn (\n\t\t<ComponentToUse\n\t\t\tlabel={ __( 'Shuffle' ) }\n\t\t\ticon={ shuffle }\n\t\t\tclassName=\"block-editor-block-toolbar-shuffle\"\n\t\t\tonClick={ () => {\n\t\t\t\tconst nextPattern = getNextPattern();\n\t\t\t\tnextPattern.blocks[ 0 ].attributes = {\n\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\tcategories,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\treplaceBlocks( clientId, nextPattern.blocks );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,10 +6,10 @@ import clsx from 'clsx';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import { dragHandle
|
|
10
|
-
import { Button, Flex, FlexItem
|
|
9
|
+
import { dragHandle } from '@wordpress/icons';
|
|
10
|
+
import { Button, Flex, FlexItem } from '@wordpress/components';
|
|
11
11
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
12
|
-
import {
|
|
12
|
+
import { forwardRef, useEffect } from '@wordpress/element';
|
|
13
13
|
import { BACKSPACE, DELETE, UP, DOWN, LEFT, RIGHT, TAB, ESCAPE, ENTER, SPACE } from '@wordpress/keycodes';
|
|
14
14
|
import { __experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel, store as blocksStore } from '@wordpress/blocks';
|
|
15
15
|
import { speak } from '@wordpress/a11y';
|
|
@@ -24,8 +24,6 @@ import BlockIcon from '../block-icon';
|
|
|
24
24
|
import { store as blockEditorStore } from '../../store';
|
|
25
25
|
import BlockDraggable from '../block-draggable';
|
|
26
26
|
import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
|
|
27
|
-
import BlockMover from '../block-mover';
|
|
28
|
-
import Shuffle from '../block-toolbar/shuffle';
|
|
29
27
|
|
|
30
28
|
/**
|
|
31
29
|
* Block selection button component, displaying the label of the block. If the block
|
|
@@ -34,6 +32,7 @@ import Shuffle from '../block-toolbar/shuffle';
|
|
|
34
32
|
*
|
|
35
33
|
* @param {string} props Component props.
|
|
36
34
|
* @param {string} props.clientId Client ID of block.
|
|
35
|
+
* @param {Object} ref Reference to the component.
|
|
37
36
|
*
|
|
38
37
|
* @return {Component} The component to be rendered.
|
|
39
38
|
*/
|
|
@@ -42,7 +41,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
42
41
|
function BlockSelectionButton({
|
|
43
42
|
clientId,
|
|
44
43
|
rootClientId
|
|
45
|
-
}) {
|
|
44
|
+
}, ref) {
|
|
46
45
|
const selected = useSelect(select => {
|
|
47
46
|
const {
|
|
48
47
|
getBlock,
|
|
@@ -52,7 +51,6 @@ function BlockSelectionButton({
|
|
|
52
51
|
__unstableGetEditorMode,
|
|
53
52
|
getNextBlockClientId,
|
|
54
53
|
getPreviousBlockClientId,
|
|
55
|
-
canRemoveBlock,
|
|
56
54
|
canMoveBlock
|
|
57
55
|
} = select(blockEditorStore);
|
|
58
56
|
const {
|
|
@@ -67,35 +65,14 @@ function BlockSelectionButton({
|
|
|
67
65
|
const blockType = getBlockType(name);
|
|
68
66
|
const orientation = getBlockListSettings(rootClientId)?.orientation;
|
|
69
67
|
const match = getActiveBlockVariation(name, attributes);
|
|
70
|
-
const isBlockTemplatePart = blockType?.name === 'core/template-part';
|
|
71
|
-
let isNextBlockTemplatePart = false;
|
|
72
|
-
const nextClientId = getNextBlockClientId();
|
|
73
|
-
if (nextClientId) {
|
|
74
|
-
const {
|
|
75
|
-
name: nextName
|
|
76
|
-
} = getBlock(nextClientId);
|
|
77
|
-
const nextBlockType = getBlockType(nextName);
|
|
78
|
-
isNextBlockTemplatePart = nextBlockType?.name === 'core/template-part';
|
|
79
|
-
}
|
|
80
|
-
let isPrevBlockTemplatePart = false;
|
|
81
|
-
const prevClientId = getPreviousBlockClientId();
|
|
82
|
-
if (prevClientId) {
|
|
83
|
-
const {
|
|
84
|
-
name: prevName
|
|
85
|
-
} = getBlock(prevClientId);
|
|
86
|
-
const prevBlockType = getBlockType(prevName);
|
|
87
|
-
isPrevBlockTemplatePart = prevBlockType?.name === 'core/template-part';
|
|
88
|
-
}
|
|
89
68
|
return {
|
|
90
69
|
blockMovingMode: hasBlockMovingClientId(),
|
|
91
70
|
editorMode: __unstableGetEditorMode(),
|
|
92
71
|
icon: match?.icon || blockType.icon,
|
|
93
72
|
label: getAccessibleBlockLabel(blockType, attributes, index + 1, orientation),
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
canRemove: canRemoveBlock(clientId),
|
|
98
|
-
canMove: canMoveBlock(clientId)
|
|
73
|
+
canMove: canMoveBlock(clientId, rootClientId),
|
|
74
|
+
getNextBlockClientId,
|
|
75
|
+
getPreviousBlockClientId
|
|
99
76
|
};
|
|
100
77
|
}, [clientId, rootClientId]);
|
|
101
78
|
const {
|
|
@@ -103,17 +80,12 @@ function BlockSelectionButton({
|
|
|
103
80
|
icon,
|
|
104
81
|
blockMovingMode,
|
|
105
82
|
editorMode,
|
|
106
|
-
isBlockTemplatePart,
|
|
107
|
-
isNextBlockTemplatePart,
|
|
108
|
-
isPrevBlockTemplatePart,
|
|
109
|
-
canRemove,
|
|
110
83
|
canMove
|
|
111
84
|
} = selected;
|
|
112
85
|
const {
|
|
113
86
|
setNavigationMode,
|
|
114
87
|
removeBlock
|
|
115
88
|
} = useDispatch(blockEditorStore);
|
|
116
|
-
const ref = useRef();
|
|
117
89
|
|
|
118
90
|
// Focus the breadcrumb in navigation mode.
|
|
119
91
|
useEffect(() => {
|
|
@@ -152,11 +124,6 @@ function BlockSelectionButton({
|
|
|
152
124
|
const isEnter = keyCode === ENTER;
|
|
153
125
|
const isSpace = keyCode === SPACE;
|
|
154
126
|
const isShift = event.shiftKey;
|
|
155
|
-
if (isEscape && editorMode === 'navigation') {
|
|
156
|
-
setNavigationMode(false);
|
|
157
|
-
event.preventDefault();
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
127
|
if (keyCode === BACKSPACE || keyCode === DELETE) {
|
|
161
128
|
removeBlock(clientId);
|
|
162
129
|
event.preventDefault();
|
|
@@ -235,7 +202,7 @@ function BlockSelectionButton({
|
|
|
235
202
|
'is-block-moving-mode': !!blockMovingMode
|
|
236
203
|
});
|
|
237
204
|
const dragHandleLabel = __('Drag');
|
|
238
|
-
const showBlockDraggable = canMove && editorMode === 'navigation'
|
|
205
|
+
const showBlockDraggable = canMove && editorMode === 'navigation';
|
|
239
206
|
return /*#__PURE__*/_jsx("div", {
|
|
240
207
|
className: classNames,
|
|
241
208
|
children: /*#__PURE__*/_jsxs(Flex, {
|
|
@@ -261,24 +228,6 @@ function BlockSelectionButton({
|
|
|
261
228
|
...draggableProps
|
|
262
229
|
})
|
|
263
230
|
})
|
|
264
|
-
}), editorMode === 'zoom-out' && !isBlockTemplatePart && /*#__PURE__*/_jsx(FlexItem, {
|
|
265
|
-
children: /*#__PURE__*/_jsx(BlockMover, {
|
|
266
|
-
clientIds: [clientId],
|
|
267
|
-
hideDragHandle: true,
|
|
268
|
-
isBlockMoverUpButtonDisabled: isPrevBlockTemplatePart,
|
|
269
|
-
isBlockMoverDownButtonDisabled: isNextBlockTemplatePart
|
|
270
|
-
})
|
|
271
|
-
}), canMove && canRemove && editorMode === 'zoom-out' && /*#__PURE__*/_jsx(Shuffle, {
|
|
272
|
-
clientId: clientId,
|
|
273
|
-
as: Button
|
|
274
|
-
}), canRemove && editorMode === 'zoom-out' && !isBlockTemplatePart && /*#__PURE__*/_jsx(FlexItem, {
|
|
275
|
-
children: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
276
|
-
icon: trash,
|
|
277
|
-
label: "Delete",
|
|
278
|
-
onClick: () => {
|
|
279
|
-
removeBlock(clientId);
|
|
280
|
-
}
|
|
281
|
-
})
|
|
282
231
|
}), editorMode === 'navigation' && /*#__PURE__*/_jsx(FlexItem, {
|
|
283
232
|
children: /*#__PURE__*/_jsx(Button, {
|
|
284
233
|
ref: ref,
|
|
@@ -296,5 +245,5 @@ function BlockSelectionButton({
|
|
|
296
245
|
})
|
|
297
246
|
});
|
|
298
247
|
}
|
|
299
|
-
export default BlockSelectionButton;
|
|
248
|
+
export default forwardRef(BlockSelectionButton);
|
|
300
249
|
//# sourceMappingURL=block-selection-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","dragHandle","trash","Button","Flex","FlexItem","ToolbarButton","useSelect","useDispatch","useEffect","useRef","BACKSPACE","DELETE","UP","DOWN","LEFT","RIGHT","TAB","ESCAPE","ENTER","SPACE","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","store","blocksStore","speak","focus","__","BlockTitle","BlockIcon","blockEditorStore","BlockDraggable","__unstableUseBlockElement","useBlockElement","BlockMover","Shuffle","jsx","_jsx","jsxs","_jsxs","BlockSelectionButton","clientId","rootClientId","selected","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","getActiveBlockVariation","getBlockType","index","name","attributes","blockType","orientation","match","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","editorMode","icon","label","canRemove","canMove","setNavigationMode","removeBlock","ref","current","blockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","isDown","isLeft","isRight","isTab","isEscape","isEnter","isSpace","isShift","shiftKey","preventDefault","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","_getBlockRootClientId","_getClientIdsOfDescen","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","dragHandleLabel","showBlockDraggable","className","children","justify","showColors","clientIds","draggableProps","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","onClick","undefined","showTooltip","maximumLength"],"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle, trash } from '@wordpress/icons';\nimport { Button, Flex, FlexItem, ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockMover from '../block-mover';\nimport Shuffle from '../block-toolbar/shuffle';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {Component} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockType } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst orientation =\n\t\t\t\tgetBlockListSettings( rootClientId )?.orientation;\n\t\t\tconst match = getActiveBlockVariation( name, attributes );\n\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t\ticon: match?.icon || blockType.icon,\n\t\t\t\tlabel: getAccessibleBlockLabel(\n\t\t\t\t\tblockType,\n\t\t\t\t\tattributes,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\torientation\n\t\t\t\t),\n\t\t\t\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst {\n\t\tlabel,\n\t\ticon,\n\t\tblockMovingMode,\n\t\teditorMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t} = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tif ( editorMode === 'navigation' ) {\n\t\t\tref.current.focus();\n\t\t\tspeak( label );\n\t\t}\n\t}, [ label, editorMode ] );\n\tconst blockElement = useBlockElement( clientId );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\t\tif ( isEscape && editorMode === 'navigation' ) {\n\t\t\tsetNavigationMode( false );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( selectedBlockClientId )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\t// Prevent the block from being moved into itself.\n\t\tif (\n\t\t\tstartingBlockClientId &&\n\t\t\tselectedBlockClientId === startingBlockClientId &&\n\t\t\tnavigateIn\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = clsx(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\tconst showBlockDraggable =\n\t\t( canMove && editorMode === 'navigation' ) ||\n\t\t( editorMode === 'zoom-out' && canMove && ! isBlockTemplatePart );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t{ showBlockDraggable && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\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\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ editorMode === 'zoom-out' && ! isBlockTemplatePart && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\thideDragHandle\n\t\t\t\t\t\t\tisBlockMoverUpButtonDisabled={\n\t\t\t\t\t\t\t\tisPrevBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlockMoverDownButtonDisabled={\n\t\t\t\t\t\t\t\tisNextBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ canMove && canRemove && editorMode === 'zoom-out' && (\n\t\t\t\t\t<Shuffle clientId={ clientId } as={ Button } />\n\t\t\t\t) }\n\t\t\t\t{ canRemove &&\n\t\t\t\t\teditorMode === 'zoom-out' &&\n\t\t\t\t\t! isBlockTemplatePart && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ticon={ trash }\n\t\t\t\t\t\t\t\tlabel=\"Delete\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t{ editorMode === 'navigation' && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\teditorMode === 'navigation'\n\t\t\t\t\t\t\t\t\t? () => setNavigationMode( false )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","dragHandle","Button","Flex","FlexItem","useSelect","useDispatch","forwardRef","useEffect","BACKSPACE","DELETE","UP","DOWN","LEFT","RIGHT","TAB","ESCAPE","ENTER","SPACE","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","store","blocksStore","speak","focus","__","BlockTitle","BlockIcon","blockEditorStore","BlockDraggable","__unstableUseBlockElement","useBlockElement","jsx","_jsx","jsxs","_jsxs","BlockSelectionButton","clientId","rootClientId","ref","selected","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","getNextBlockClientId","getPreviousBlockClientId","canMoveBlock","getActiveBlockVariation","getBlockType","index","name","attributes","blockType","orientation","match","blockMovingMode","editorMode","icon","label","canMove","setNavigationMode","removeBlock","current","blockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","isDown","isLeft","isRight","isTab","isEscape","isEnter","isSpace","isShift","shiftKey","preventDefault","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","_getBlockRootClientId","_getClientIdsOfDescen","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","dragHandleLabel","showBlockDraggable","className","children","justify","showColors","clientIds","draggableProps","tabIndex","onClick","undefined","showTooltip","maximumLength"],"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle } from '@wordpress/icons';\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef, useEffect } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n * @param {Object} ref Reference to the component.\n *\n * @return {Component} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId }, ref ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanMoveBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockType } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst orientation =\n\t\t\t\tgetBlockListSettings( rootClientId )?.orientation;\n\t\t\tconst match = getActiveBlockVariation( name, attributes );\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t\ticon: match?.icon || blockType.icon,\n\t\t\t\tlabel: getAccessibleBlockLabel(\n\t\t\t\t\tblockType,\n\t\t\t\t\tattributes,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\torientation\n\t\t\t\t),\n\t\t\t\tcanMove: canMoveBlock( clientId, rootClientId ),\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst { label, icon, blockMovingMode, editorMode, canMove } = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tif ( editorMode === 'navigation' ) {\n\t\t\tref.current.focus();\n\t\t\tspeak( label );\n\t\t}\n\t}, [ label, editorMode ] );\n\tconst blockElement = useBlockElement( clientId );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( selectedBlockClientId )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\t// Prevent the block from being moved into itself.\n\t\tif (\n\t\t\tstartingBlockClientId &&\n\t\t\tselectedBlockClientId === startingBlockClientId &&\n\t\t\tnavigateIn\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = clsx(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\tconst showBlockDraggable = canMove && editorMode === 'navigation';\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t{ showBlockDraggable && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\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\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ editorMode === 'navigation' && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\teditorMode === 'navigation'\n\t\t\t\t\t\t\t\t\t? () => setNavigationMode( false )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( BlockSelectionButton );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import clsx from 'clsx';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { forwardRef } from '@wordpress/element';
|
|
10
|
+
|
|
6
11
|
/**
|
|
7
12
|
* Internal dependencies
|
|
8
13
|
*/
|
|
@@ -11,10 +16,10 @@ import { PrivateBlockPopover } from '../block-popover';
|
|
|
11
16
|
import useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';
|
|
12
17
|
import useSelectedBlockToolProps from './use-selected-block-tool-props';
|
|
13
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
-
|
|
19
|
+
function BlockToolbarBreadcrumb({
|
|
15
20
|
clientId,
|
|
16
21
|
__unstableContentRef
|
|
17
|
-
}) {
|
|
22
|
+
}, ref) {
|
|
18
23
|
const {
|
|
19
24
|
capturingClientId,
|
|
20
25
|
isInsertionPointVisible,
|
|
@@ -34,9 +39,11 @@ export default function BlockToolbarBreadcrumb({
|
|
|
34
39
|
resize: false,
|
|
35
40
|
...popoverProps,
|
|
36
41
|
children: /*#__PURE__*/_jsx(BlockSelectionButton, {
|
|
42
|
+
ref: ref,
|
|
37
43
|
clientId: clientId,
|
|
38
44
|
rootClientId: rootClientId
|
|
39
45
|
})
|
|
40
46
|
});
|
|
41
47
|
}
|
|
48
|
+
export default forwardRef(BlockToolbarBreadcrumb);
|
|
42
49
|
//# sourceMappingURL=block-toolbar-breadcrumb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","BlockSelectionButton","PrivateBlockPopover","useBlockToolbarPopoverProps","useSelectedBlockToolProps","jsx","_jsx","BlockToolbarBreadcrumb","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","popoverProps","contentElement","current","bottomClientId","className","resize","children"],"sources":["@wordpress/block-editor/src/components/block-tools/block-toolbar-breadcrumb.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport { PrivateBlockPopover } from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\n\
|
|
1
|
+
{"version":3,"names":["clsx","forwardRef","BlockSelectionButton","PrivateBlockPopover","useBlockToolbarPopoverProps","useSelectedBlockToolProps","jsx","_jsx","BlockToolbarBreadcrumb","clientId","__unstableContentRef","ref","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","popoverProps","contentElement","current","bottomClientId","className","resize","children"],"sources":["@wordpress/block-editor/src/components/block-tools/block-toolbar-breadcrumb.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport { PrivateBlockPopover } from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\n\nfunction BlockToolbarBreadcrumb( { clientId, __unstableContentRef }, ref ) {\n\tconst {\n\t\tcapturingClientId,\n\t\tisInsertionPointVisible,\n\t\tlastClientId,\n\t\trootClientId,\n\t} = useSelectedBlockToolProps( clientId );\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\treturn (\n\t\t<PrivateBlockPopover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ clsx( 'block-editor-block-list__block-popover', {\n\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t} ) }\n\t\t\tresize={ false }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t<BlockSelectionButton\n\t\t\t\tref={ ref }\n\t\t\t\tclientId={ clientId }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t</PrivateBlockPopover>\n\t);\n}\n\nexport default forwardRef( BlockToolbarBreadcrumb );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,OAAOC,yBAAyB,MAAM,iCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExE,SAASC,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC;AAAqB,CAAC,EAAEC,GAAG,EAAG;EAC1E,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAGV,yBAAyB,CAAEI,QAAS,CAAC;EAEzC,MAAMO,YAAY,GAAGZ,2BAA2B,CAAE;IACjDa,cAAc,EAAEP,oBAAoB,EAAEQ,OAAO;IAC7CT;EACD,CAAE,CAAC;EAEH,oBACCF,IAAA,CAACJ,mBAAmB;IACnBM,QAAQ,EAAGG,iBAAiB,IAAIH,QAAU;IAC1CU,cAAc,EAAGL,YAAc;IAC/BM,SAAS,EAAGpB,IAAI,CAAE,wCAAwC,EAAE;MAC3D,4BAA4B,EAAEa;IAC/B,CAAE,CAAG;IACLQ,MAAM,EAAG,KAAO;IAAA,GACXL,YAAY;IAAAM,QAAA,eAEjBf,IAAA,CAACL,oBAAoB;MACpBS,GAAG,EAAGA,GAAK;MACXF,QAAQ,EAAGA,QAAU;MACrBM,YAAY,EAAGA;IAAc,CAC7B;EAAC,CACkB,CAAC;AAExB;AAEA,eAAed,UAAU,CAAEO,sBAAuB,CAAC","ignoreList":[]}
|
|
@@ -17,11 +17,13 @@ import EmptyBlockInserter from './empty-block-inserter';
|
|
|
17
17
|
import { InsertionPointOpenRef, default as InsertionPoint } from './insertion-point';
|
|
18
18
|
import BlockToolbarPopover from './block-toolbar-popover';
|
|
19
19
|
import BlockToolbarBreadcrumb from './block-toolbar-breadcrumb';
|
|
20
|
+
import ZoomOutPopover from './zoom-out-popover';
|
|
20
21
|
import { store as blockEditorStore } from '../../store';
|
|
21
22
|
import usePopoverScroll from '../block-popover/use-popover-scroll';
|
|
22
23
|
import ZoomOutModeInserters from './zoom-out-mode-inserters';
|
|
23
24
|
import { useShowBlockTools } from './use-show-block-tools';
|
|
24
25
|
import { unlock } from '../../lock-unlock';
|
|
26
|
+
import getEditorRegion from '../../utils/get-editor-region';
|
|
25
27
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
26
28
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
29
|
function selector(select) {
|
|
@@ -75,9 +77,11 @@ export default function BlockTools({
|
|
|
75
77
|
const {
|
|
76
78
|
showEmptyBlockSideInserter,
|
|
77
79
|
showBreadcrumb,
|
|
78
|
-
showBlockToolbarPopover
|
|
80
|
+
showBlockToolbarPopover,
|
|
81
|
+
showZoomOutToolbar
|
|
79
82
|
} = useShowBlockTools();
|
|
80
83
|
const {
|
|
84
|
+
clearSelectedBlock,
|
|
81
85
|
duplicateBlocks,
|
|
82
86
|
removeBlocks,
|
|
83
87
|
replaceBlocks,
|
|
@@ -88,6 +92,7 @@ export default function BlockTools({
|
|
|
88
92
|
moveBlocksDown,
|
|
89
93
|
expandBlock
|
|
90
94
|
} = unlock(useDispatch(blockEditorStore));
|
|
95
|
+
const blockSelectionButtonRef = useRef();
|
|
91
96
|
function onKeyDown(event) {
|
|
92
97
|
if (event.defaultPrevented) {
|
|
93
98
|
return;
|
|
@@ -146,6 +151,10 @@ export default function BlockTools({
|
|
|
146
151
|
// block so that focus is directed back to the beginning of the selection.
|
|
147
152
|
// In effect, to the user this feels like deselecting the multi-selection.
|
|
148
153
|
selectBlock(clientIds[0]);
|
|
154
|
+
} else if (clientIds.length === 1 && event.target === blockSelectionButtonRef?.current) {
|
|
155
|
+
event.preventDefault();
|
|
156
|
+
clearSelectedBlock();
|
|
157
|
+
getEditorRegion(__unstableContentRef.current)?.focus();
|
|
149
158
|
}
|
|
150
159
|
} else if (isMatch('core/block-editor/collapse-list-view', event)) {
|
|
151
160
|
// If focus is currently within a text field, such as a rich text block or other editable field,
|
|
@@ -188,6 +197,10 @@ export default function BlockTools({
|
|
|
188
197
|
clientId: clientId,
|
|
189
198
|
isTyping: isTyping
|
|
190
199
|
}), showBreadcrumb && /*#__PURE__*/_jsx(BlockToolbarBreadcrumb, {
|
|
200
|
+
ref: blockSelectionButtonRef,
|
|
201
|
+
__unstableContentRef: __unstableContentRef,
|
|
202
|
+
clientId: clientId
|
|
203
|
+
}), showZoomOutToolbar && /*#__PURE__*/_jsx(ZoomOutPopover, {
|
|
191
204
|
__unstableContentRef: __unstableContentRef,
|
|
192
205
|
clientId: clientId
|
|
193
206
|
}), !isZoomOutMode && !hasFixedToolbar && /*#__PURE__*/_jsx(Popover.Slot, {
|