@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
|
@@ -29,7 +29,6 @@ function BlockRenameModal({
|
|
|
29
29
|
hasOverridesWarning
|
|
30
30
|
}) {
|
|
31
31
|
const [editedBlockName, setEditedBlockName] = (0, _element.useState)(blockName);
|
|
32
|
-
const descriptionId = (0, _element.useId)();
|
|
33
32
|
const nameHasChanged = editedBlockName !== blockName;
|
|
34
33
|
const nameIsOriginal = editedBlockName === originalBlockName;
|
|
35
34
|
const nameIsEmpty = (0, _isEmptyString.default)(editedBlockName);
|
|
@@ -52,11 +51,8 @@ function BlockRenameModal({
|
|
|
52
51
|
onRequestClose: onClose,
|
|
53
52
|
overlayClassName: "block-editor-block-rename-modal",
|
|
54
53
|
focusOnMount: "firstContentElement",
|
|
55
|
-
aria: {
|
|
56
|
-
describedby: descriptionId
|
|
57
|
-
},
|
|
58
54
|
size: "small",
|
|
59
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
55
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
|
|
60
56
|
onSubmit: e => {
|
|
61
57
|
e.preventDefault();
|
|
62
58
|
if (!isNameValid) {
|
|
@@ -64,17 +60,13 @@ function BlockRenameModal({
|
|
|
64
60
|
}
|
|
65
61
|
handleSubmit();
|
|
66
62
|
},
|
|
67
|
-
children:
|
|
68
|
-
id: descriptionId,
|
|
69
|
-
children: (0, _i18n.__)('Enter a custom name for this block.')
|
|
70
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
63
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
71
64
|
spacing: "3",
|
|
72
65
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
73
66
|
__nextHasNoMarginBottom: true,
|
|
74
67
|
__next40pxDefaultSize: true,
|
|
75
68
|
value: editedBlockName,
|
|
76
|
-
label: (0, _i18n.__)('
|
|
77
|
-
hideLabelFromVision: true,
|
|
69
|
+
label: (0, _i18n.__)('Name'),
|
|
78
70
|
help: hasOverridesWarning ? (0, _i18n.__)('This block allows overrides. Changing the name can cause problems with content entered into instances of this pattern.') : undefined,
|
|
79
71
|
placeholder: originalBlockName,
|
|
80
72
|
onChange: setEditedBlockName,
|
|
@@ -94,7 +86,7 @@ function BlockRenameModal({
|
|
|
94
86
|
children: (0, _i18n.__)('Save')
|
|
95
87
|
})]
|
|
96
88
|
})]
|
|
97
|
-
})
|
|
89
|
+
})
|
|
98
90
|
})
|
|
99
91
|
});
|
|
100
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_a11y","_isEmptyString","_interopRequireDefault","_jsxRuntime","BlockRenameModal","blockName","originalBlockName","onClose","onSave","hasOverridesWarning","editedBlockName","setEditedBlockName","useState","
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_a11y","_isEmptyString","_interopRequireDefault","_jsxRuntime","BlockRenameModal","blockName","originalBlockName","onClose","onSave","hasOverridesWarning","editedBlockName","setEditedBlockName","useState","nameHasChanged","nameIsOriginal","nameIsEmpty","isEmptyString","isNameValid","autoSelectInputText","event","target","select","handleSubmit","message","sprintf","__","speak","jsx","Modal","title","onRequestClose","overlayClassName","focusOnMount","size","children","onSubmit","e","preventDefault","jsxs","__experimentalVStack","spacing","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","label","help","undefined","placeholder","onChange","onFocus","__experimentalHStack","justify","Button","variant","onClick","type"],"sources":["@wordpress/block-editor/src/components/block-rename/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tTextControl,\n\tModal,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport isEmptyString from './is-empty-string';\n\nexport default function BlockRenameModal( {\n\tblockName,\n\toriginalBlockName,\n\tonClose,\n\tonSave,\n\t// Pattern Overrides is a WordPress-only feature but it also uses the Block Binding API.\n\t// Ideally this should not be inside the block editor package, but we keep it here for simplicity.\n\thasOverridesWarning,\n} ) {\n\tconst [ editedBlockName, setEditedBlockName ] = useState( blockName );\n\n\tconst nameHasChanged = editedBlockName !== blockName;\n\tconst nameIsOriginal = editedBlockName === originalBlockName;\n\tconst nameIsEmpty = isEmptyString( editedBlockName );\n\n\tconst isNameValid = nameHasChanged || nameIsOriginal;\n\n\tconst autoSelectInputText = ( event ) => event.target.select();\n\n\tconst handleSubmit = () => {\n\t\tconst message =\n\t\t\tnameIsOriginal || nameIsEmpty\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name reset to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name changed to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t );\n\n\t\t// Must be assertive to immediately announce change.\n\t\tspeak( message, 'assertive' );\n\t\tonSave( editedBlockName );\n\n\t\t// Immediate close avoids ability to hit save multiple times.\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\toverlayClassName=\"block-editor-block-rename-modal\"\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tif ( ! isNameValid ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\thandleSubmit();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ editedBlockName }\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\thasOverridesWarning\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'This block allows overrides. Changing the name can cause problems with content entered into instances of this pattern.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ originalBlockName }\n\t\t\t\t\t\tonChange={ setEditedBlockName }\n\t\t\t\t\t\tonFocus={ autoSelectInputText }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\taria-disabled={ ! isNameValid }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_components","_blocks2","_data","_icons","_store","_blockIcon","_interopRequireDefault","_blockTransformationsMenu","_blockVariationTransformations","_blockStylesMenu","_patternTransformationsMenu","_useBlockDisplayTitle","_jsxRuntime","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","isUsingBindings","replaceBlocks","multiSelect","updateBlockAttributes","useDispatch","blockEditorStore","possibleBlockTransformations","patterns","blocks","useSelect","select","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","Array","isArray","_blocks","blockVariationTransformations","useBlockVariationTransforms","selectForMultipleBlocks","insertedBlocks","length","clientId","onBlockTransform","name","newBlocks","switchToBlockType","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","isTemplatePart","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","jsx","className","children","__","connectedBlockDescription","_x","jsxs","default","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","MenuGroup","__experimentalText","BlockSwitcher","disabled","icon","invalidBlocks","isReusable","getBlockAttributes","canRemoveBlocks","getBlockStyles","getBlockType","getActiveBlockVariation","blocksStore","some","block","firstBlockName","_isSingleBlockSelected","blockType","_icon","match","isSelectionOfSameType","Set","map","size","copy","isReusableBlock","blockTitle","useBlockDisplayTitle","maximumLength","blockSwitcherLabel","hideDropdown","ToolbarGroup","ToolbarButton","title","Fragment","showColors","blockSwitcherDescription","sprintf","_n","ToolbarItem","toggleProps","DropdownMenu","label","popoverProps","placement","describedBy","menuProps","orientation","exports","_default"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n\tisUsingBindings,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\treturn {\n\t\t\t\tblocks: _blocks,\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {\n\tconst {\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocksByClientId, getBlockAttributes, canRemoveBlocks } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\n\t\t\tlet _icon;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst hideDropdown = disabled || ( ! hasBlockStyles && ! canRemove );\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t\t{ ( isReusable || isTemplate ) && (\n\t\t\t\t\t\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ( isReusable || isTemplate ) && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescribedBy: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t\tisUsingBindings={ isUsingBindings }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","_blocks2","_data","_icons","_store","_blockIcon","_interopRequireDefault","_blockTransformationsMenu","_blockVariationTransformations","_blockStylesMenu","_patternTransformationsMenu","_useBlockDisplayTitle","_jsxRuntime","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","isUsingBindings","replaceBlocks","multiSelect","updateBlockAttributes","useDispatch","blockEditorStore","possibleBlockTransformations","patterns","blocks","useSelect","select","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","Array","isArray","_blocks","blockVariationTransformations","useBlockVariationTransforms","selectForMultipleBlocks","insertedBlocks","length","clientId","onBlockTransform","name","newBlocks","switchToBlockType","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","isTemplatePart","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","jsx","className","children","__","connectedBlockDescription","_x","jsxs","default","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","MenuGroup","__experimentalText","BlockSwitcher","disabled","icon","invalidBlocks","isReusable","getBlockAttributes","canRemoveBlocks","getBlockStyles","getBlockType","getActiveBlockVariation","blocksStore","some","block","firstBlockName","_isSingleBlockSelected","blockType","_icon","match","isSelectionOfSameType","Set","map","size","copy","isReusableBlock","blockTitle","useBlockDisplayTitle","maximumLength","blockSwitcherLabel","hideDropdown","ToolbarGroup","ToolbarButton","title","Fragment","showColors","blockSwitcherDescription","sprintf","_n","ToolbarItem","toggleProps","DropdownMenu","label","popoverProps","placement","description","menuProps","orientation","exports","_default"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n\tisUsingBindings,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\treturn {\n\t\t\t\tblocks: _blocks,\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {\n\tconst {\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocksByClientId, getBlockAttributes, canRemoveBlocks } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\n\t\t\tlet _icon;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst hideDropdown = disabled || ( ! hasBlockStyles && ! canRemove );\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t\t{ ( isReusable || isTemplate ) && (\n\t\t\t\t\t\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ( isReusable || isTemplate ) && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t\tisUsingBindings={ isUsingBindings }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -56,19 +56,18 @@ function PreviewPatternsPopover({
|
|
|
56
56
|
patterns,
|
|
57
57
|
onSelect
|
|
58
58
|
}) {
|
|
59
|
+
const isMobile = (0, _compose.useViewportMatch)('medium', '<');
|
|
59
60
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
60
|
-
className: "block-editor-block-
|
|
61
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
62
|
-
className: "block-editor-block-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
onSelect: onSelect
|
|
71
|
-
})
|
|
61
|
+
className: "block-editor-block-switcher__popover-preview-container",
|
|
62
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Popover, {
|
|
63
|
+
className: "block-editor-block-switcher__popover-preview",
|
|
64
|
+
placement: isMobile ? 'bottom' : 'right-start',
|
|
65
|
+
offset: 16,
|
|
66
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
67
|
+
className: "block-editor-block-switcher__preview is-pattern-list-preview",
|
|
68
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockPatternsList, {
|
|
69
|
+
patterns: patterns,
|
|
70
|
+
onSelect: onSelect
|
|
72
71
|
})
|
|
73
72
|
})
|
|
74
73
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_element","_compose","_icons","_components","_blockPreview","_interopRequireDefault","_useTransformedPatterns","_lockUnlock","_jsxRuntime","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","unlock","componentsPrivateApis","PatternTransformationsMenu","blocks","patterns","statePatterns","onSelect","showTransforms","setShowTransforms","useState","useTransformedPatterns","length","jsxs","MenuGroup","className","children","jsx","PreviewPatternsPopover","MenuItem","onClick","event","preventDefault","icon","chevronRight","__","Popover","
|
|
1
|
+
{"version":3,"names":["_i18n","require","_element","_compose","_icons","_components","_blockPreview","_interopRequireDefault","_useTransformedPatterns","_lockUnlock","_jsxRuntime","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","unlock","componentsPrivateApis","PatternTransformationsMenu","blocks","patterns","statePatterns","onSelect","showTransforms","setShowTransforms","useState","useTransformedPatterns","length","jsxs","MenuGroup","className","children","jsx","PreviewPatternsPopover","MenuItem","onClick","event","preventDefault","icon","chevronRight","__","isMobile","useViewportMatch","Popover","placement","offset","BlockPatternsList","composite","store","role","map","pattern","BlockPattern","name","baseClassName","descriptionId","useInstanceId","render","title","description","undefined","transformedBlocks","default","viewportWidth","VisuallyHidden","id","_default","exports"],"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":[]}
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = PreviewBlockPopover;
|
|
8
8
|
var _i18n = require("@wordpress/i18n");
|
|
9
9
|
var _components = require("@wordpress/components");
|
|
10
|
+
var _compose = require("@wordpress/compose");
|
|
10
11
|
var _blockPreview = _interopRequireDefault(require("../block-preview"));
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
13
|
/**
|
|
@@ -20,24 +21,26 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
20
21
|
function PreviewBlockPopover({
|
|
21
22
|
blocks
|
|
22
23
|
}) {
|
|
24
|
+
const isMobile = (0, _compose.useViewportMatch)('medium', '<');
|
|
25
|
+
if (isMobile) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
23
28
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
24
|
-
className: "block-editor-block-
|
|
25
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
26
|
-
className: "block-editor-block-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
})]
|
|
40
|
-
})
|
|
29
|
+
className: "block-editor-block-switcher__popover-preview-container",
|
|
30
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Popover, {
|
|
31
|
+
className: "block-editor-block-switcher__popover-preview",
|
|
32
|
+
placement: "right-start",
|
|
33
|
+
focusOnMount: false,
|
|
34
|
+
offset: 16,
|
|
35
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
36
|
+
className: "block-editor-block-switcher__preview",
|
|
37
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
38
|
+
className: "block-editor-block-switcher__preview-title",
|
|
39
|
+
children: (0, _i18n.__)('Preview')
|
|
40
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockPreview.default, {
|
|
41
|
+
viewportWidth: 500,
|
|
42
|
+
blocks: blocks
|
|
43
|
+
})]
|
|
41
44
|
})
|
|
42
45
|
})
|
|
43
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_components","_blockPreview","_interopRequireDefault","_jsxRuntime","PreviewBlockPopover","blocks","jsx","className","children","Popover","placement","focusOnMount","jsxs","__","default","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":["_i18n","require","_components","_compose","_blockPreview","_interopRequireDefault","_jsxRuntime","PreviewBlockPopover","blocks","isMobile","useViewportMatch","jsx","className","children","Popover","placement","focusOnMount","offset","jsxs","__","default","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":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,aAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAA4C,IAAAK,WAAA,GAAAL,OAAA;AAV5C;AACA;AACA;;AAKA;AACA;AACA;;AAGe,SAASM,mBAAmBA,CAAE;EAAEC;AAAO,CAAC,EAAG;EACzD,MAAMC,QAAQ,GAAG,IAAAC,yBAAgB,EAAE,QAAQ,EAAE,GAAI,CAAC;EAElD,IAAKD,QAAQ,EAAG;IACf,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAH,WAAA,CAAAK,GAAA;IAAKC,SAAS,EAAC,wDAAwD;IAAAC,QAAA,eACtE,IAAAP,WAAA,CAAAK,GAAA,EAACT,WAAA,CAAAY,OAAO;MACPF,SAAS,EAAC,8CAA8C;MACxDG,SAAS,EAAC,aAAa;MACvBC,YAAY,EAAG,KAAO;MACtBC,MAAM,EAAG,EAAI;MAAAJ,QAAA,eAEb,IAAAP,WAAA,CAAAY,IAAA;QAAKN,SAAS,EAAC,sCAAsC;QAAAC,QAAA,gBACpD,IAAAP,WAAA,CAAAK,GAAA;UAAKC,SAAS,EAAC,4CAA4C;UAAAC,QAAA,EACxD,IAAAM,QAAE,EAAE,SAAU;QAAC,CACb,CAAC,eACN,IAAAb,WAAA,CAAAK,GAAA,EAACP,aAAA,CAAAgB,OAAY;UAACC,aAAa,EAAG,GAAK;UAACb,MAAM,EAAGA;QAAQ,CAAE,CAAC;MAAA,CACpD;IAAC,CACE;EAAC,CACN,CAAC;AAER","ignoreList":[]}
|
|
@@ -60,10 +60,13 @@ function Shuffle({
|
|
|
60
60
|
return EMPTY_ARRAY;
|
|
61
61
|
}
|
|
62
62
|
return patterns.filter(pattern => {
|
|
63
|
+
const isCorePattern = pattern.source === 'core' || pattern.source?.startsWith('pattern-directory') && pattern.source !== 'pattern-directory/theme';
|
|
63
64
|
return (
|
|
64
65
|
// Check if the pattern has only one top level block,
|
|
65
66
|
// otherwise we may shuffle to pattern that will not allow to continue shuffling.
|
|
66
|
-
pattern.blocks.length === 1 &&
|
|
67
|
+
pattern.blocks.length === 1 &&
|
|
68
|
+
// We exclude the core patterns and pattern directory patterns that are not theme patterns.
|
|
69
|
+
!isCorePattern && pattern.categories?.some(category => {
|
|
67
70
|
return categories.includes(category);
|
|
68
71
|
}) && (
|
|
69
72
|
// Check if the pattern is not a synced pattern.
|
|
@@ -71,7 +74,7 @@ function Shuffle({
|
|
|
71
74
|
);
|
|
72
75
|
});
|
|
73
76
|
}, [categories, patterns]);
|
|
74
|
-
if (sameCategoryPatternsWithSingleWrapper.length
|
|
77
|
+
if (sameCategoryPatternsWithSingleWrapper.length < 2) {
|
|
75
78
|
return null;
|
|
76
79
|
}
|
|
77
80
|
function getNextPattern() {
|
|
@@ -86,6 +89,7 @@ function Shuffle({
|
|
|
86
89
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentToUse, {
|
|
87
90
|
label: (0, _i18n.__)('Shuffle'),
|
|
88
91
|
icon: _icons.shuffle,
|
|
92
|
+
className: "block-editor-block-toolbar-shuffle",
|
|
89
93
|
onClick: () => {
|
|
90
94
|
const nextPattern = getNextPattern();
|
|
91
95
|
nextPattern.blocks[0].attributes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_icons","require","_components","_i18n","_element","_data","_store","_jsxRuntime","EMPTY_ARRAY","Container","props","jsx","ToolbarGroup","children","ToolbarButton","Shuffle","clientId","as","categories","patterns","patternName","useSelect","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","blockEditorStore","attributes","_categories","metadata","_patternName","rootBlock","_patterns","replaceBlocks","useDispatch","sameCategoryPatternsWithSingleWrapper","useMemo","length","filter","pattern","blocks","some","category","includes","syncStatus","id","getNextPattern","numberOfPatterns","patternIndex","findIndex","name","nextPatternIndex","ComponentToUse","label","__","icon","shuffle","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":["_icons","require","_components","_i18n","_element","_data","_store","_jsxRuntime","EMPTY_ARRAY","Container","props","jsx","ToolbarGroup","children","ToolbarButton","Shuffle","clientId","as","categories","patterns","patternName","useSelect","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","blockEditorStore","attributes","_categories","metadata","_patternName","rootBlock","_patterns","replaceBlocks","useDispatch","sameCategoryPatternsWithSingleWrapper","useMemo","length","filter","pattern","isCorePattern","source","startsWith","blocks","some","category","includes","syncStatus","id","getNextPattern","numberOfPatterns","patternIndex","findIndex","name","nextPatternIndex","ComponentToUse","label","__","icon","shuffle","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":[]}
|
|
@@ -20,8 +20,6 @@ var _blockIcon = _interopRequireDefault(require("../block-icon"));
|
|
|
20
20
|
var _store = require("../../store");
|
|
21
21
|
var _blockDraggable = _interopRequireDefault(require("../block-draggable"));
|
|
22
22
|
var _useBlockRefs = require("../block-list/use-block-props/use-block-refs");
|
|
23
|
-
var _blockMover = _interopRequireDefault(require("../block-mover"));
|
|
24
|
-
var _shuffle = _interopRequireDefault(require("../block-toolbar/shuffle"));
|
|
25
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
24
|
/**
|
|
27
25
|
* External dependencies
|
|
@@ -42,12 +40,13 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
42
40
|
*
|
|
43
41
|
* @param {string} props Component props.
|
|
44
42
|
* @param {string} props.clientId Client ID of block.
|
|
43
|
+
* @param {Object} ref Reference to the component.
|
|
45
44
|
*
|
|
46
45
|
* @return {Component} The component to be rendered.
|
|
47
46
|
*/function BlockSelectionButton({
|
|
48
47
|
clientId,
|
|
49
48
|
rootClientId
|
|
50
|
-
}) {
|
|
49
|
+
}, ref) {
|
|
51
50
|
const selected = (0, _data.useSelect)(select => {
|
|
52
51
|
const {
|
|
53
52
|
getBlock,
|
|
@@ -57,7 +56,6 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
57
56
|
__unstableGetEditorMode,
|
|
58
57
|
getNextBlockClientId,
|
|
59
58
|
getPreviousBlockClientId,
|
|
60
|
-
canRemoveBlock,
|
|
61
59
|
canMoveBlock
|
|
62
60
|
} = select(_store.store);
|
|
63
61
|
const {
|
|
@@ -72,35 +70,14 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
72
70
|
const blockType = getBlockType(name);
|
|
73
71
|
const orientation = getBlockListSettings(rootClientId)?.orientation;
|
|
74
72
|
const match = getActiveBlockVariation(name, attributes);
|
|
75
|
-
const isBlockTemplatePart = blockType?.name === 'core/template-part';
|
|
76
|
-
let isNextBlockTemplatePart = false;
|
|
77
|
-
const nextClientId = getNextBlockClientId();
|
|
78
|
-
if (nextClientId) {
|
|
79
|
-
const {
|
|
80
|
-
name: nextName
|
|
81
|
-
} = getBlock(nextClientId);
|
|
82
|
-
const nextBlockType = getBlockType(nextName);
|
|
83
|
-
isNextBlockTemplatePart = nextBlockType?.name === 'core/template-part';
|
|
84
|
-
}
|
|
85
|
-
let isPrevBlockTemplatePart = false;
|
|
86
|
-
const prevClientId = getPreviousBlockClientId();
|
|
87
|
-
if (prevClientId) {
|
|
88
|
-
const {
|
|
89
|
-
name: prevName
|
|
90
|
-
} = getBlock(prevClientId);
|
|
91
|
-
const prevBlockType = getBlockType(prevName);
|
|
92
|
-
isPrevBlockTemplatePart = prevBlockType?.name === 'core/template-part';
|
|
93
|
-
}
|
|
94
73
|
return {
|
|
95
74
|
blockMovingMode: hasBlockMovingClientId(),
|
|
96
75
|
editorMode: __unstableGetEditorMode(),
|
|
97
76
|
icon: match?.icon || blockType.icon,
|
|
98
77
|
label: (0, _blocks.__experimentalGetAccessibleBlockLabel)(blockType, attributes, index + 1, orientation),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
canRemove: canRemoveBlock(clientId),
|
|
103
|
-
canMove: canMoveBlock(clientId)
|
|
78
|
+
canMove: canMoveBlock(clientId, rootClientId),
|
|
79
|
+
getNextBlockClientId,
|
|
80
|
+
getPreviousBlockClientId
|
|
104
81
|
};
|
|
105
82
|
}, [clientId, rootClientId]);
|
|
106
83
|
const {
|
|
@@ -108,17 +85,12 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
108
85
|
icon,
|
|
109
86
|
blockMovingMode,
|
|
110
87
|
editorMode,
|
|
111
|
-
isBlockTemplatePart,
|
|
112
|
-
isNextBlockTemplatePart,
|
|
113
|
-
isPrevBlockTemplatePart,
|
|
114
|
-
canRemove,
|
|
115
88
|
canMove
|
|
116
89
|
} = selected;
|
|
117
90
|
const {
|
|
118
91
|
setNavigationMode,
|
|
119
92
|
removeBlock
|
|
120
93
|
} = (0, _data.useDispatch)(_store.store);
|
|
121
|
-
const ref = (0, _element.useRef)();
|
|
122
94
|
|
|
123
95
|
// Focus the breadcrumb in navigation mode.
|
|
124
96
|
(0, _element.useEffect)(() => {
|
|
@@ -157,11 +129,6 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
157
129
|
const isEnter = keyCode === _keycodes.ENTER;
|
|
158
130
|
const isSpace = keyCode === _keycodes.SPACE;
|
|
159
131
|
const isShift = event.shiftKey;
|
|
160
|
-
if (isEscape && editorMode === 'navigation') {
|
|
161
|
-
setNavigationMode(false);
|
|
162
|
-
event.preventDefault();
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
132
|
if (keyCode === _keycodes.BACKSPACE || keyCode === _keycodes.DELETE) {
|
|
166
133
|
removeBlock(clientId);
|
|
167
134
|
event.preventDefault();
|
|
@@ -240,7 +207,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
240
207
|
'is-block-moving-mode': !!blockMovingMode
|
|
241
208
|
});
|
|
242
209
|
const dragHandleLabel = (0, _i18n.__)('Drag');
|
|
243
|
-
const showBlockDraggable = canMove && editorMode === 'navigation'
|
|
210
|
+
const showBlockDraggable = canMove && editorMode === 'navigation';
|
|
244
211
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
245
212
|
className: classNames,
|
|
246
213
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Flex, {
|
|
@@ -266,24 +233,6 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
266
233
|
...draggableProps
|
|
267
234
|
})
|
|
268
235
|
})
|
|
269
|
-
}), editorMode === 'zoom-out' && !isBlockTemplatePart && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
|
|
270
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockMover.default, {
|
|
271
|
-
clientIds: [clientId],
|
|
272
|
-
hideDragHandle: true,
|
|
273
|
-
isBlockMoverUpButtonDisabled: isPrevBlockTemplatePart,
|
|
274
|
-
isBlockMoverDownButtonDisabled: isNextBlockTemplatePart
|
|
275
|
-
})
|
|
276
|
-
}), canMove && canRemove && editorMode === 'zoom-out' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_shuffle.default, {
|
|
277
|
-
clientId: clientId,
|
|
278
|
-
as: _components.Button
|
|
279
|
-
}), canRemove && editorMode === 'zoom-out' && !isBlockTemplatePart && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
|
|
280
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarButton, {
|
|
281
|
-
icon: _icons.trash,
|
|
282
|
-
label: "Delete",
|
|
283
|
-
onClick: () => {
|
|
284
|
-
removeBlock(clientId);
|
|
285
|
-
}
|
|
286
|
-
})
|
|
287
236
|
}), editorMode === 'navigation' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
|
|
288
237
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
289
238
|
ref: ref,
|
|
@@ -301,5 +250,5 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
301
250
|
})
|
|
302
251
|
});
|
|
303
252
|
}
|
|
304
|
-
var _default = exports.default = BlockSelectionButton;
|
|
253
|
+
var _default = exports.default = (0, _element.forwardRef)(BlockSelectionButton);
|
|
305
254
|
//# sourceMappingURL=block-selection-button.js.map
|