@wordpress/block-editor 12.13.0 → 12.15.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 +1 -1
- package/build/components/block-heading-level-dropdown/index.js +1 -1
- package/build/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -0
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +2 -9
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list-appender/index.js +16 -3
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-parent-selector/index.js +1 -1
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +25 -16
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +36 -19
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +6 -4
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-rename/index.js +28 -0
- package/build/components/block-rename/index.js.map +1 -0
- package/build/components/block-rename/is-empty-string.js +10 -0
- package/build/components/block-rename/is-empty-string.js.map +1 -0
- package/build/components/block-rename/modal.js +87 -0
- package/build/components/block-rename/modal.js.map +1 -0
- package/build/components/block-rename/rename-control.js +74 -0
- package/build/components/block-rename/rename-control.js.map +1 -0
- package/build/components/block-rename/use-block-rename.js +17 -0
- package/build/components/block-rename/use-block-rename.js.map +1 -0
- package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +7 -0
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +0 -8
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +18 -14
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-tools/back-compat.js +2 -2
- package/build/components/block-tools/back-compat.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +11 -81
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/empty-block-inserter.js +56 -0
- package/build/components/block-tools/empty-block-inserter.js.map +1 -0
- package/build/components/block-tools/index.js +48 -9
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/selected-block-tools.js +113 -0
- package/build/components/block-tools/selected-block-tools.js.map +1 -0
- package/build/components/block-tools/use-selected-block-tool-props.js +56 -0
- package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -0
- package/build/components/block-types-list/index.js +6 -2
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +8 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/editable-text/index.js +1 -2
- package/build/components/editable-text/index.js.map +1 -1
- package/build/components/global-styles/advanced-panel.js +1 -1
- package/build/components/global-styles/advanced-panel.js.map +1 -1
- package/build/components/iframe/index.js +4 -3
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-size-control/index.js +0 -5
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +3 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/{explorer.js → index.js} +7 -7
- package/build/components/inserter/block-patterns-explorer/index.js.map +1 -0
- package/build/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -0
- package/build/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +4 -4
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -0
- package/build/components/inserter/block-patterns-tab/index.js +75 -0
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -0
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +48 -0
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -0
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +108 -0
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -0
- package/build/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +18 -34
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -0
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +55 -0
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -0
- package/build/components/inserter/block-patterns-tab/utils.js +69 -0
- package/build/components/inserter/block-patterns-tab/utils.js.map +1 -0
- package/build/components/inserter/hooks/use-patterns-state.js +2 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +9 -5
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +15 -12
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/menu.js +3 -4
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter-listbox/index.js +11 -6
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +24 -23
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inserter-listbox/row.js +5 -5
- package/build/components/inserter-listbox/row.js.map +1 -1
- package/build/components/link-control/index.js +6 -5
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +39 -0
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +16 -3
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/index.js +3 -2
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
- package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +69 -18
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/preview-options/index.js +4 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +1 -14
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/index.js +0 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +4 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/format-edit.js +45 -0
- package/build/components/rich-text/native/format-edit.js.map +1 -0
- package/build/components/rich-text/native/get-format-colors.native.js +41 -0
- package/build/components/rich-text/native/get-format-colors.native.js.map +1 -0
- package/build/components/rich-text/native/index.js +9 -0
- package/build/components/rich-text/native/index.js.map +1 -0
- package/build/components/rich-text/native/index.native.js +1189 -0
- package/build/components/rich-text/native/index.native.js.map +1 -0
- package/build/components/rich-text/native/toolbar-button-with-options.native.js +58 -0
- package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -0
- package/build/components/rich-text/native/use-format-types.js +111 -0
- package/build/components/rich-text/native/use-format-types.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +30 -1
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +2 -5
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +2 -1
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +4 -1
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +2 -1
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-settings/index.js +2 -2
- package/build/components/use-settings/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +7 -3
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +10 -10
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +2 -2
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/anchor.js +7 -6
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/background.js +16 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +7 -8
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-renaming.js +42 -0
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/content-lock-ui.js +5 -5
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/custom-class-name.js +8 -7
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-fields.js +57 -52
- package/build/hooks/custom-fields.js.map +1 -1
- package/build/hooks/duotone.js +9 -20
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +0 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +103 -93
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/position.js +10 -9
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +10 -13
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +30 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +4 -3
- package/build/layouts/constrained.js.map +1 -1
- package/build/private-apis.js +3 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +30 -37
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +18 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +18 -13
- package/build/store/selectors.js.map +1 -1
- package/build/utils/transform-styles/index.js +26 -6
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.js +1 -1
- package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -0
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +3 -10
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +16 -3
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +1 -1
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +24 -15
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +36 -19
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +7 -5
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-rename/index.js +4 -0
- package/build-module/components/block-rename/index.js.map +1 -0
- package/build-module/components/block-rename/is-empty-string.js +4 -0
- package/build-module/components/block-rename/is-empty-string.js.map +1 -0
- package/build-module/components/block-rename/modal.js +79 -0
- package/build-module/components/block-rename/modal.js.map +1 -0
- package/build-module/components/block-rename/rename-control.js +66 -0
- package/build-module/components/block-rename/rename-control.js.map +1 -0
- package/build-module/components/block-rename/use-block-rename.js +10 -0
- package/build-module/components/block-rename/use-block-rename.js.map +1 -0
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +7 -0
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +0 -8
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +17 -13
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-tools/back-compat.js +1 -1
- package/build-module/components/block-tools/back-compat.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +11 -80
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/empty-block-inserter.js +48 -0
- package/build-module/components/block-tools/empty-block-inserter.js.map +1 -0
- package/build-module/components/block-tools/index.js +48 -9
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/selected-block-tools.js +105 -0
- package/build-module/components/block-tools/selected-block-tools.js.map +1 -0
- package/build-module/components/block-tools/use-selected-block-tool-props.js +50 -0
- package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -0
- package/build-module/components/block-types-list/index.js +6 -2
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +8 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/editable-text/index.js +1 -2
- package/build-module/components/editable-text/index.js.map +1 -1
- package/build-module/components/global-styles/advanced-panel.js +1 -1
- package/build-module/components/global-styles/advanced-panel.js.map +1 -1
- package/build-module/components/iframe/index.js +4 -3
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-size-control/index.js +0 -5
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/{explorer.js → index.js} +5 -5
- package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -0
- package/build-module/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -0
- package/build-module/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +3 -3
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab/index.js +66 -0
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +42 -0
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +100 -0
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -0
- package/build-module/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +7 -20
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +47 -0
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab/utils.js +57 -0
- package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -0
- package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +9 -5
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +15 -12
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/menu.js +4 -3
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +13 -8
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +25 -23
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inserter-listbox/row.js +6 -5
- package/build-module/components/inserter-listbox/row.js.map +1 -1
- package/build-module/components/link-control/index.js +7 -6
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +39 -0
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +16 -3
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/index.js +3 -2
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
- package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +69 -17
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +4 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +1 -14
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/index.js +0 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +4 -2
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/format-edit.js +38 -0
- package/build-module/components/rich-text/native/format-edit.js.map +1 -0
- package/build-module/components/rich-text/native/get-format-colors.native.js +34 -0
- package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -0
- package/build-module/components/rich-text/native/index.js +2 -0
- package/build-module/components/rich-text/native/index.js.map +1 -0
- package/build-module/components/rich-text/native/index.native.js +1179 -0
- package/build-module/components/rich-text/native/index.native.js.map +1 -0
- package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +51 -0
- package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -0
- package/build-module/components/rich-text/native/use-format-types.js +104 -0
- package/build-module/components/rich-text/native/use-format-types.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +31 -2
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +2 -5
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +2 -1
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +4 -1
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +2 -1
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +2 -2
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +7 -3
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +8 -8
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js +2 -2
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/anchor.js +5 -4
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/background.js +17 -5
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +5 -6
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-renaming.js +40 -0
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +3 -3
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +6 -5
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-fields.js +57 -52
- package/build-module/hooks/custom-fields.js.map +1 -1
- package/build-module/hooks/duotone.js +10 -21
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +0 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +103 -93
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/position.js +11 -10
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +10 -13
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +30 -1
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +4 -3
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/private-apis.js +4 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +29 -37
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +17 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +17 -13
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +24 -7
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +6 -6
- package/build-style/content.css +6 -6
- package/build-style/style-rtl.css +26 -20
- package/build-style/style.css +26 -20
- package/package.json +31 -31
- package/src/components/block-heading-level-dropdown/index.js +1 -1
- package/src/components/block-list/block.native.js +2 -0
- package/src/components/block-list/index.js +4 -18
- package/src/components/block-list-appender/index.js +20 -4
- package/src/components/block-parent-selector/index.js +1 -1
- package/src/components/block-pattern-setup/index.js +38 -22
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
- package/src/components/block-pattern-setup/style.scss +4 -1
- package/src/components/block-patterns-list/README.md +4 -4
- package/src/components/block-patterns-list/index.js +60 -34
- package/src/components/block-patterns-list/style.scss +7 -0
- package/src/components/block-quick-navigation/index.js +11 -5
- package/src/components/block-rename/index.js +3 -0
- package/src/components/block-rename/is-empty-string.js +3 -0
- package/src/components/block-rename/modal.js +115 -0
- package/src/components/block-rename/rename-control.js +80 -0
- package/src/components/block-rename/use-block-rename.js +10 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
- package/src/components/block-settings-menu-controls/index.js +9 -0
- package/src/components/block-styles/index.js +0 -10
- package/src/components/block-switcher/pattern-transformations-menu.js +20 -14
- package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
- package/src/components/block-toolbar/style.scss +8 -0
- package/src/components/block-tools/back-compat.js +1 -1
- package/src/components/block-tools/block-contextual-toolbar.js +11 -134
- package/src/components/block-tools/empty-block-inserter.js +56 -0
- package/src/components/block-tools/index.js +72 -16
- package/src/components/block-tools/selected-block-tools.js +127 -0
- package/src/components/block-tools/style.scss +0 -10
- package/src/components/block-tools/use-selected-block-tool-props.js +66 -0
- package/src/components/block-types-list/index.js +5 -4
- package/src/components/button-block-appender/content.scss +2 -2
- package/src/components/date-format-picker/index.js +7 -0
- package/src/components/editable-text/README.md +0 -36
- package/src/components/editable-text/index.js +1 -8
- package/src/components/global-styles/advanced-panel.js +1 -1
- package/src/components/iframe/index.js +4 -3
- package/src/components/image-size-control/index.js +0 -6
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
- package/src/components/inserter/block-patterns-explorer/{explorer.js → index.js} +4 -4
- package/src/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +9 -2
- package/src/components/inserter/block-patterns-tab/index.js +118 -0
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +48 -0
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +179 -0
- package/src/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +15 -21
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +101 -0
- package/src/components/inserter/block-patterns-tab/utils.js +78 -0
- package/src/components/inserter/hooks/use-patterns-state.js +3 -1
- package/src/components/inserter/media-tab/media-list.js +7 -7
- package/src/components/inserter/media-tab/media-preview.js +27 -22
- package/src/components/inserter/menu.js +4 -5
- package/src/components/inserter-listbox/index.js +11 -7
- package/src/components/inserter-listbox/item.js +11 -12
- package/src/components/inserter-listbox/row.js +6 -12
- package/src/components/link-control/README.md +2 -2
- package/src/components/link-control/index.js +15 -6
- package/src/components/link-control/style.scss +8 -5
- package/src/components/list-view/block-select-button.js +44 -1
- package/src/components/list-view/block.js +11 -11
- package/src/components/list-view/index.js +2 -0
- package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
- package/src/components/media-replace-flow/style.scss +2 -2
- package/src/components/navigable-toolbar/index.js +71 -25
- package/src/components/plain-text/README.md +2 -30
- package/src/components/preview-options/index.js +2 -0
- package/src/components/provider/use-block-sync.js +2 -21
- package/src/components/rich-text/README.md +6 -63
- package/src/components/rich-text/index.js +0 -1
- package/src/components/rich-text/index.native.js +4 -2
- package/src/components/rich-text/native/format-edit.js +44 -0
- package/src/components/rich-text/native/get-format-colors.native.js +54 -0
- package/src/components/rich-text/native/index.js +1 -0
- package/src/components/rich-text/native/index.native.js +1406 -0
- package/src/components/rich-text/native/style.native.scss +28 -0
- package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +79 -0
- package/src/components/rich-text/native/test/index.native.js +278 -0
- package/src/components/rich-text/native/test/performance/rich-text.native.js +44 -0
- package/src/components/rich-text/native/toolbar-button-with-options.native.js +61 -0
- package/src/components/rich-text/native/use-format-types.js +146 -0
- package/src/components/rich-text/use-input-rules.js +30 -2
- package/src/components/rich-text/use-paste-handler.js +1 -6
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/src/components/url-input/README.md +1 -74
- package/src/components/url-popover/image-url-input-ui.js +1 -0
- package/src/components/use-block-drop-zone/index.js +4 -1
- package/src/components/use-moving-animation/index.js +1 -1
- package/src/components/use-settings/index.js +2 -2
- package/src/components/use-settings/test/index.js +1 -1
- package/src/components/writing-flow/use-tab-nav.js +8 -3
- package/src/hooks/align.js +8 -8
- package/src/hooks/align.native.js +2 -2
- package/src/hooks/anchor.js +21 -23
- package/src/hooks/background.js +28 -6
- package/src/hooks/block-hooks.js +20 -16
- package/src/hooks/block-renaming.js +47 -0
- package/src/hooks/content-lock-ui.js +3 -3
- package/src/hooks/custom-class-name.js +7 -6
- package/src/hooks/custom-fields.js +73 -70
- package/src/hooks/duotone.js +23 -33
- package/src/hooks/index.js +0 -1
- package/src/hooks/layout.js +126 -113
- package/src/hooks/position.js +8 -21
- package/src/hooks/style.js +17 -31
- package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
- package/src/hooks/test/align.js +4 -4
- package/src/hooks/utils.js +33 -1
- package/src/layouts/constrained.js +57 -50
- package/src/private-apis.js +4 -1
- package/src/store/actions.js +26 -72
- package/src/store/reducer.js +19 -0
- package/src/store/selectors.js +15 -19
- package/src/style.scss +1 -1
- package/src/utils/test/transform-styles.js +49 -0
- package/src/utils/transform-styles/index.js +39 -13
- package/build/components/block-tools/selected-block-popover.js +0 -221
- package/build/components/block-tools/selected-block-popover.js.map +0 -1
- package/build/components/inserter/block-patterns-explorer/explorer.js.map +0 -1
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +0 -1
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +0 -1
- package/build/components/inserter/block-patterns-filter.js.map +0 -1
- package/build/components/inserter/block-patterns-tab.js +0 -270
- package/build/components/inserter/block-patterns-tab.js.map +0 -1
- package/build/hooks/block-rename-ui.js +0 -165
- package/build/hooks/block-rename-ui.js.map +0 -1
- package/build/store/utils.js +0 -22
- package/build/store/utils.js.map +0 -1
- package/build-module/components/block-tools/selected-block-popover.js +0 -213
- package/build-module/components/block-tools/selected-block-popover.js.map +0 -1
- package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +0 -1
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +0 -1
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +0 -1
- package/build-module/components/inserter/block-patterns-filter.js.map +0 -1
- package/build-module/components/inserter/block-patterns-tab.js +0 -254
- package/build-module/components/inserter/block-patterns-tab.js.map +0 -1
- package/build-module/hooks/block-rename-ui.js +0 -157
- package/build-module/hooks/block-rename-ui.js.map +0 -1
- package/build-module/store/utils.js +0 -16
- package/build-module/store/utils.js.map +0 -1
- package/src/components/block-tools/selected-block-popover.js +0 -265
- package/src/components/inserter/block-patterns-tab.js +0 -448
- package/src/hooks/block-rename-ui.js +0 -226
- package/src/store/utils.js +0 -12
- /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
- /package/src/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createElement, Fragment } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { MenuItem } from '@wordpress/components';
|
|
6
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
8
|
+
import { useState } from '@wordpress/element';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internal dependencies
|
|
12
|
+
*/
|
|
13
|
+
import { store as blockEditorStore } from '../../store';
|
|
14
|
+
import { useBlockDisplayInformation } from '..';
|
|
15
|
+
import isEmptyString from './is-empty-string';
|
|
16
|
+
import BlockRenameModal from './modal';
|
|
17
|
+
export default function BlockRenameControl({
|
|
18
|
+
clientId
|
|
19
|
+
}) {
|
|
20
|
+
const [renamingBlock, setRenamingBlock] = useState(false);
|
|
21
|
+
const {
|
|
22
|
+
metadata
|
|
23
|
+
} = useSelect(select => {
|
|
24
|
+
const {
|
|
25
|
+
getBlockAttributes
|
|
26
|
+
} = select(blockEditorStore);
|
|
27
|
+
const _metadata = getBlockAttributes(clientId)?.metadata;
|
|
28
|
+
return {
|
|
29
|
+
metadata: _metadata
|
|
30
|
+
};
|
|
31
|
+
}, [clientId]);
|
|
32
|
+
const {
|
|
33
|
+
updateBlockAttributes
|
|
34
|
+
} = useDispatch(blockEditorStore);
|
|
35
|
+
const customName = metadata?.name;
|
|
36
|
+
function onChange(newName) {
|
|
37
|
+
updateBlockAttributes([clientId], {
|
|
38
|
+
metadata: {
|
|
39
|
+
...(metadata && metadata),
|
|
40
|
+
name: newName
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const blockInformation = useBlockDisplayInformation(clientId);
|
|
45
|
+
return createElement(Fragment, null, createElement(MenuItem, {
|
|
46
|
+
onClick: () => {
|
|
47
|
+
setRenamingBlock(true);
|
|
48
|
+
},
|
|
49
|
+
"aria-expanded": renamingBlock,
|
|
50
|
+
"aria-haspopup": "dialog"
|
|
51
|
+
}, __('Rename')), renamingBlock && createElement(BlockRenameModal, {
|
|
52
|
+
blockName: customName || '',
|
|
53
|
+
originalBlockName: blockInformation?.title,
|
|
54
|
+
onClose: () => setRenamingBlock(false),
|
|
55
|
+
onSave: newName => {
|
|
56
|
+
// If the new value is the block's original name (e.g. `Group`)
|
|
57
|
+
// or it is an empty string then assume the intent is to reset
|
|
58
|
+
// the value. Therefore reset the metadata.
|
|
59
|
+
if (newName === blockInformation?.title || isEmptyString(newName)) {
|
|
60
|
+
newName = undefined;
|
|
61
|
+
}
|
|
62
|
+
onChange(newName);
|
|
63
|
+
}
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=rename-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MenuItem","useSelect","useDispatch","__","useState","store","blockEditorStore","useBlockDisplayInformation","isEmptyString","BlockRenameModal","BlockRenameControl","clientId","renamingBlock","setRenamingBlock","metadata","select","getBlockAttributes","_metadata","updateBlockAttributes","customName","name","onChange","newName","blockInformation","createElement","Fragment","onClick","blockName","originalBlockName","title","onClose","onSave","undefined"],"sources":["@wordpress/block-editor/src/components/block-rename/rename-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockDisplayInformation } from '..';\nimport isEmptyString from './is-empty-string';\nimport BlockRenameModal from './modal';\n\nexport default function BlockRenameControl( { clientId } ) {\n\tconst [ renamingBlock, setRenamingBlock ] = useState( false );\n\n\tconst { metadata } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\n\t\t\tconst _metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\treturn {\n\t\t\t\tmetadata: _metadata,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst customName = metadata?.name;\n\n\tfunction onChange( newName ) {\n\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\tmetadata: {\n\t\t\t\t...( metadata && metadata ),\n\t\t\t\tname: newName,\n\t\t\t},\n\t\t} );\n\t}\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetRenamingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ renamingBlock }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ renamingBlock && (\n\t\t\t\t<BlockRenameModal\n\t\t\t\t\tblockName={ customName || '' }\n\t\t\t\t\toriginalBlockName={ blockInformation?.title }\n\t\t\t\t\tonClose={ () => setRenamingBlock( false ) }\n\t\t\t\t\tonSave={ ( newName ) => {\n\t\t\t\t\t\t// If the new value is the block's original name (e.g. `Group`)\n\t\t\t\t\t\t// or it is an empty string then assume the intent is to reset\n\t\t\t\t\t\t// the value. Therefore reset the metadata.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnewName === blockInformation?.title ||\n\t\t\t\t\t\t\tisEmptyString( newName )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnewName = undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( newName );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,0BAA0B,QAAQ,IAAI;AAC/C,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,gBAAgB,MAAM,SAAS;AAEtC,eAAe,SAASC,kBAAkBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC1D,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGT,QAAQ,CAAE,KAAM,CAAC;EAE7D,MAAM;IAAEU;EAAS,CAAC,GAAGb,SAAS,CAC3Bc,MAAM,IAAM;IACb,MAAM;MAAEC;IAAmB,CAAC,GAAGD,MAAM,CAAET,gBAAiB,CAAC;IAEzD,MAAMW,SAAS,GAAGD,kBAAkB,CAAEL,QAAS,CAAC,EAAEG,QAAQ;IAC1D,OAAO;MACNA,QAAQ,EAAEG;IACX,CAAC;EACF,CAAC,EACD,CAAEN,QAAQ,CACX,CAAC;EAED,MAAM;IAAEO;EAAsB,CAAC,GAAGhB,WAAW,CAAEI,gBAAiB,CAAC;EAEjE,MAAMa,UAAU,GAAGL,QAAQ,EAAEM,IAAI;EAEjC,SAASC,QAAQA,CAAEC,OAAO,EAAG;IAC5BJ,qBAAqB,CAAE,CAAEP,QAAQ,CAAE,EAAE;MACpCG,QAAQ,EAAE;QACT,IAAKA,QAAQ,IAAIA,QAAQ,CAAE;QAC3BM,IAAI,EAAEE;MACP;IACD,CAAE,CAAC;EACJ;EAEA,MAAMC,gBAAgB,GAAGhB,0BAA0B,CAAEI,QAAS,CAAC;EAE/D,OACCa,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACxB,QAAQ;IACR0B,OAAO,EAAGA,CAAA,KAAM;MACfb,gBAAgB,CAAE,IAAK,CAAC;IACzB,CAAG;IACH,iBAAgBD,aAAe;IAC/B,iBAAc;EAAQ,GAEpBT,EAAE,CAAE,QAAS,CACN,CAAC,EACTS,aAAa,IACdY,aAAA,CAACf,gBAAgB;IAChBkB,SAAS,EAAGR,UAAU,IAAI,EAAI;IAC9BS,iBAAiB,EAAGL,gBAAgB,EAAEM,KAAO;IAC7CC,OAAO,EAAGA,CAAA,KAAMjB,gBAAgB,CAAE,KAAM,CAAG;IAC3CkB,MAAM,EAAKT,OAAO,IAAM;MACvB;MACA;MACA;MACA,IACCA,OAAO,KAAKC,gBAAgB,EAAEM,KAAK,IACnCrB,aAAa,CAAEc,OAAQ,CAAC,EACvB;QACDA,OAAO,GAAGU,SAAS;MACpB;MAEAX,QAAQ,CAAEC,OAAQ,CAAC;IACpB;EAAG,CACH,CAED,CAAC;AAEL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getBlockSupport","useBlockRename","name","canRename"],"sources":["@wordpress/block-editor/src/components/block-rename/use-block-rename.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\n\nexport default function useBlockRename( name ) {\n\treturn {\n\t\tcanRename: getBlockSupport( name, 'renaming', true ),\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,mBAAmB;AAEnD,eAAe,SAASC,cAAcA,CAAEC,IAAI,EAAG;EAC9C,OAAO;IACNC,SAAS,EAAEH,eAAe,CAAEE,IAAI,EAAE,UAAU,EAAE,IAAK;EACpD,CAAC;AACF"}
|
|
@@ -9,7 +9,7 @@ import { moreVertical } from '@wordpress/icons';
|
|
|
9
9
|
import { Children, cloneElement, useCallback, useRef } from '@wordpress/element';
|
|
10
10
|
import { __, sprintf } from '@wordpress/i18n';
|
|
11
11
|
import { store as keyboardShortcutsStore, __unstableUseShortcutEventMatch } from '@wordpress/keyboard-shortcuts';
|
|
12
|
-
import { pipe, useCopyToClipboard } from '@wordpress/compose';
|
|
12
|
+
import { pipe, useCopyToClipboard, useViewportMatch } from '@wordpress/compose';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Internal dependencies
|
|
@@ -38,6 +38,35 @@ function CopyMenuItem({
|
|
|
38
38
|
ref: ref
|
|
39
39
|
}, copyMenuItemLabel);
|
|
40
40
|
}
|
|
41
|
+
function ParentSelectorMenuItem({
|
|
42
|
+
parentClientId,
|
|
43
|
+
parentBlockType
|
|
44
|
+
}) {
|
|
45
|
+
const isSmallViewport = useViewportMatch('medium', '<');
|
|
46
|
+
const {
|
|
47
|
+
selectBlock
|
|
48
|
+
} = useDispatch(blockEditorStore);
|
|
49
|
+
|
|
50
|
+
// Allows highlighting the parent block outline when focusing or hovering
|
|
51
|
+
// the parent block selector within the child.
|
|
52
|
+
const menuItemRef = useRef();
|
|
53
|
+
const gesturesProps = useShowHoveredOrFocusedGestures({
|
|
54
|
+
ref: menuItemRef,
|
|
55
|
+
highlightParent: true
|
|
56
|
+
});
|
|
57
|
+
if (!isSmallViewport) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return createElement(MenuItem, {
|
|
61
|
+
...gesturesProps,
|
|
62
|
+
ref: menuItemRef,
|
|
63
|
+
icon: createElement(BlockIcon, {
|
|
64
|
+
icon: parentBlockType.icon
|
|
65
|
+
}),
|
|
66
|
+
onClick: () => selectBlock(parentClientId)
|
|
67
|
+
}, sprintf( /* translators: %s: Name of the block's parent. */
|
|
68
|
+
__('Select parent block (%s)'), parentBlockType.title));
|
|
69
|
+
}
|
|
41
70
|
export function BlockSettingsDropdown({
|
|
42
71
|
block,
|
|
43
72
|
clientIds,
|
|
@@ -99,9 +128,6 @@ export function BlockSettingsDropdown({
|
|
|
99
128
|
};
|
|
100
129
|
}, []);
|
|
101
130
|
const isMatch = __unstableUseShortcutEventMatch();
|
|
102
|
-
const {
|
|
103
|
-
selectBlock
|
|
104
|
-
} = useDispatch(blockEditorStore);
|
|
105
131
|
const hasSelectedBlocks = selectedBlockClientIds.length > 0;
|
|
106
132
|
const updateSelectionAfterDuplicate = useCallback(async clientIdsPromise => {
|
|
107
133
|
if (__experimentalSelectBlock) {
|
|
@@ -127,14 +153,6 @@ export function BlockSettingsDropdown({
|
|
|
127
153
|
}, [__experimentalSelectBlock, previousBlockClientId, firstParentClientId, getBlockOrder, hasSelectedBlocks, getSelectedBlockClientIds]);
|
|
128
154
|
const removeBlockLabel = count === 1 ? __('Delete') : __('Delete blocks');
|
|
129
155
|
|
|
130
|
-
// Allows highlighting the parent block outline when focusing or hovering
|
|
131
|
-
// the parent block selector within the child.
|
|
132
|
-
const selectParentButtonRef = useRef();
|
|
133
|
-
const showParentOutlineGestures = useShowHoveredOrFocusedGestures({
|
|
134
|
-
ref: selectParentButtonRef,
|
|
135
|
-
highlightParent: true
|
|
136
|
-
});
|
|
137
|
-
|
|
138
156
|
// This can occur when the selected block (the parent)
|
|
139
157
|
// displays child blocks within a List View.
|
|
140
158
|
const parentBlockIsSelected = selectedBlockClientIds?.includes(firstParentClientId);
|
|
@@ -209,15 +227,10 @@ export function BlockSettingsDropdown({
|
|
|
209
227
|
fillProps: {
|
|
210
228
|
onClose
|
|
211
229
|
}
|
|
212
|
-
}), !parentBlockIsSelected && !!firstParentClientId && createElement(
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
icon: parentBlockType.icon
|
|
217
|
-
}),
|
|
218
|
-
onClick: () => selectBlock(firstParentClientId)
|
|
219
|
-
}, sprintf( /* translators: %s: Name of the block's parent. */
|
|
220
|
-
__('Select parent block (%s)'), parentBlockType.title)), count === 1 && createElement(BlockHTMLConvertButton, {
|
|
230
|
+
}), !parentBlockIsSelected && !!firstParentClientId && createElement(ParentSelectorMenuItem, {
|
|
231
|
+
parentClientId: firstParentClientId,
|
|
232
|
+
parentBlockType: parentBlockType
|
|
233
|
+
}), count === 1 && createElement(BlockHTMLConvertButton, {
|
|
221
234
|
clientId: firstBlockClientId
|
|
222
235
|
}), createElement(CopyMenuItem, {
|
|
223
236
|
blocks: blocks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","keyboardShortcutsStore","__unstableUseShortcutEventMatch","pipe","useCopyToClipboard","BlockActions","BlockIcon","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","unlock","useShowHoveredOrFocusedGestures","POPOVER_PROPS","className","placement","CopyMenuItem","blocks","onCopy","label","ref","copyMenuItemBlocksLabel","length","copyMenuItemLabel","createElement","BlockSettingsDropdown","block","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","currentClientId","clientId","blockClientIds","Array","isArray","count","firstBlockClientId","firstParentClientId","onlyBlock","parentBlockType","previousBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","openedBlockSettingsMenu","getOpenedBlockSettingsMenu","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","isMatch","selectBlock","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","removeBlockLabel","selectParentButtonRef","showParentOutlineGestures","highlightParent","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","icon","popoverProps","noIcons","menuProps","onKeyDown","event","defaultPrevented","preventDefault","onClose","Fragment","Slot","fillProps","onClick","title","shortcut","map","child"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tstore as keyboardShortcutsStore,\n\t__unstableUseShortcutEventMatch,\n} from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { blocks, onCopy, label } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemBlocksLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy' );\n\tconst copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel;\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t__unstableDisplayLocation,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst blockClientIds = Array.isArray( clientIds )\n\t\t? clientIds\n\t\t: [ clientIds ];\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tonlyBlock: 1 === getBlockCount( _firstParentClientId ),\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst openedBlockSettingsMenu = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getOpenedBlockSettingsMenu(),\n\t\t[]\n\t);\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst isMatch = __unstableUseShortcutEventMatch();\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\tasync ( clientIdsPromise ) => {\n\t\t\tif ( __experimentalSelectBlock ) {\n\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst updateSelectionAfterRemove = useCallback( () => {\n\t\tif ( __experimentalSelectBlock ) {\n\t\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t\t// Focus the first block if there's no previous block nor parent block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\t// Only update the selection if the original selection is removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t\t}\n\t}, [\n\t\t__experimentalSelectBlock,\n\t\tpreviousBlockClientId,\n\t\tfirstParentClientId,\n\t\tgetBlockOrder,\n\t\thasSelectedBlocks,\n\t\tgetSelectedBlockClientIds,\n\t] );\n\n\tconst removeBlockLabel =\n\t\tcount === 1 ? __( 'Delete' ) : __( 'Delete blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst showParentOutlineGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: selectParentButtonRef,\n\t\thighlightParent: true,\n\t} );\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tconst onToggle = useCallback(\n\t\t( localOpen ) => {\n\t\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t\t} else if (\n\t\t\t\t! localOpen &&\n\t\t\t\topenedBlockSettingsMenu &&\n\t\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t\t) {\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t}\n\t\t},\n\t\t[ currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu ]\n\t);\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\topen={ open }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tnoIcons\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {KeyboardEvent} event\n\t\t\t\t\t\t */\n\t\t\t\t\t\tonKeyDown( event ) {\n\t\t\t\t\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisMatch( 'core/block-editor/remove', event ) &&\n\t\t\t\t\t\t\t\tcanRemove\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterRemove( onRemove() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/duplicate',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanDuplicate\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate( onDuplicate() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-after',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertAfter();\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-before',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertBefore();\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\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tselectBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Select parent block (%s)'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t{ canCopyStyles && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\tcanMove,\n\t\t\t\t\t\t\t\t\tonMoveTo,\n\t\t\t\t\t\t\t\t\tonlyBlock,\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t__unstableDisplayLocation={\n\t\t\t\t\t\t\t\t\t__unstableDisplayLocation\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\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</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","keyboardShortcutsStore","__unstableUseShortcutEventMatch","pipe","useCopyToClipboard","useViewportMatch","BlockActions","BlockIcon","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","unlock","useShowHoveredOrFocusedGestures","POPOVER_PROPS","className","placement","CopyMenuItem","blocks","onCopy","label","ref","copyMenuItemBlocksLabel","length","copyMenuItemLabel","createElement","ParentSelectorMenuItem","parentClientId","parentBlockType","isSmallViewport","selectBlock","menuItemRef","gesturesProps","highlightParent","icon","onClick","title","BlockSettingsDropdown","block","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","currentClientId","clientId","blockClientIds","Array","isArray","count","firstBlockClientId","firstParentClientId","onlyBlock","previousBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","openedBlockSettingsMenu","getOpenedBlockSettingsMenu","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","isMatch","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","removeBlockLabel","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","popoverProps","noIcons","menuProps","onKeyDown","event","defaultPrevented","preventDefault","onClose","Fragment","Slot","fillProps","shortcut","map","child"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tstore as keyboardShortcutsStore,\n\t__unstableUseShortcutEventMatch,\n} from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard, useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { blocks, onCopy, label } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemBlocksLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy' );\n\tconst copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel;\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nfunction ParentSelectorMenuItem( { parentClientId, parentBlockType } ) {\n\tconst isSmallViewport = useViewportMatch( 'medium', '<' );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst menuItemRef = useRef();\n\tconst gesturesProps = useShowHoveredOrFocusedGestures( {\n\t\tref: menuItemRef,\n\t\thighlightParent: true,\n\t} );\n\n\tif ( ! isSmallViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\t{ ...gesturesProps }\n\t\t\tref={ menuItemRef }\n\t\t\ticon={ <BlockIcon icon={ parentBlockType.icon } /> }\n\t\t\tonClick={ () => selectBlock( parentClientId ) }\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t__( 'Select parent block (%s)' ),\n\t\t\t\tparentBlockType.title\n\t\t\t) }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t__unstableDisplayLocation,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst blockClientIds = Array.isArray( clientIds )\n\t\t? clientIds\n\t\t: [ clientIds ];\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tonlyBlock: 1 === getBlockCount( _firstParentClientId ),\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst openedBlockSettingsMenu = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getOpenedBlockSettingsMenu(),\n\t\t[]\n\t);\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst isMatch = __unstableUseShortcutEventMatch();\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\tasync ( clientIdsPromise ) => {\n\t\t\tif ( __experimentalSelectBlock ) {\n\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst updateSelectionAfterRemove = useCallback( () => {\n\t\tif ( __experimentalSelectBlock ) {\n\t\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t\t// Focus the first block if there's no previous block nor parent block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\t// Only update the selection if the original selection is removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t\t}\n\t}, [\n\t\t__experimentalSelectBlock,\n\t\tpreviousBlockClientId,\n\t\tfirstParentClientId,\n\t\tgetBlockOrder,\n\t\thasSelectedBlocks,\n\t\tgetSelectedBlockClientIds,\n\t] );\n\n\tconst removeBlockLabel =\n\t\tcount === 1 ? __( 'Delete' ) : __( 'Delete blocks' );\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tconst onToggle = useCallback(\n\t\t( localOpen ) => {\n\t\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t\t} else if (\n\t\t\t\t! localOpen &&\n\t\t\t\topenedBlockSettingsMenu &&\n\t\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t\t) {\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t}\n\t\t},\n\t\t[ currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu ]\n\t);\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\topen={ open }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tnoIcons\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {KeyboardEvent} event\n\t\t\t\t\t\t */\n\t\t\t\t\t\tonKeyDown( event ) {\n\t\t\t\t\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisMatch( 'core/block-editor/remove', event ) &&\n\t\t\t\t\t\t\t\tcanRemove\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterRemove( onRemove() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/duplicate',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanDuplicate\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate( onDuplicate() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-after',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertAfter();\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-before',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertBefore();\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\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<ParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t{ canCopyStyles && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\tcanMove,\n\t\t\t\t\t\t\t\t\tonMoveTo,\n\t\t\t\t\t\t\t\t\tonlyBlock,\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t__unstableDisplayLocation={\n\t\t\t\t\t\t\t\t\t__unstableDisplayLocation\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\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</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import { useConvertToGroupButtonProps, ConvertToGroupButton } from '../convert-t
|
|
|
14
14
|
import { BlockLockMenuItem, useBlockLock } from '../block-lock';
|
|
15
15
|
import { store as blockEditorStore } from '../../store';
|
|
16
16
|
import BlockModeToggle from '../block-settings-menu/block-mode-toggle';
|
|
17
|
+
import { BlockRenameControl, useBlockRename } from '../block-rename';
|
|
17
18
|
const {
|
|
18
19
|
Fill,
|
|
19
20
|
Slot
|
|
@@ -40,7 +41,11 @@ const BlockSettingsMenuControlsSlot = ({
|
|
|
40
41
|
const {
|
|
41
42
|
canLock
|
|
42
43
|
} = useBlockLock(selectedClientIds[0]);
|
|
44
|
+
const {
|
|
45
|
+
canRename
|
|
46
|
+
} = useBlockRename(selectedBlocks[0]);
|
|
43
47
|
const showLockButton = selectedClientIds.length === 1 && canLock;
|
|
48
|
+
const showRenameButton = selectedClientIds.length === 1 && canRename;
|
|
44
49
|
|
|
45
50
|
// Check if current selection of blocks is Groupable or Ungroupable
|
|
46
51
|
// and pass this props down to ConvertToGroupButton.
|
|
@@ -66,6 +71,8 @@ const BlockSettingsMenuControlsSlot = ({
|
|
|
66
71
|
onClose: fillProps?.onClose
|
|
67
72
|
}), showLockButton && createElement(BlockLockMenuItem, {
|
|
68
73
|
clientId: selectedClientIds[0]
|
|
74
|
+
}), showRenameButton && createElement(BlockRenameControl, {
|
|
75
|
+
clientId: selectedClientIds[0]
|
|
69
76
|
}), fills, fillProps?.canMove && !fillProps?.onlyBlock && createElement(MenuItem, {
|
|
70
77
|
onClick: pipe(fillProps?.onClose, fillProps?.onMoveTo)
|
|
71
78
|
}, __('Move to')), fillProps?.count === 1 && createElement(BlockModeToggle, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSlotFill","MenuGroup","MenuItem","__experimentalStyleProvider","StyleProvider","useSelect","pipe","__","useConvertToGroupButtonProps","ConvertToGroupButton","BlockLockMenuItem","useBlockLock","store","blockEditorStore","BlockModeToggle","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","__unstableDisplayLocation","selectedBlocks","selectedClientIds","select","getBlockNamesByClientId","getSelectedBlockClientIds","ids","canLock","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","createElement","fills","onClose","clientId","canMove","onlyBlock","onClick","onMoveTo","count","firstBlockClientId","onToggle","BlockSettingsMenuControls","props","document"],"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { pipe } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockModeToggle from '../block-settings-menu/block-mode-toggle';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( {\n\tfillProps,\n\tclientIds = null,\n\t__unstableDisplayLocation,\n} ) => {\n\tconst { selectedBlocks, selectedClientIds } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockNamesByClientId, getSelectedBlockClientIds } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: getBlockNamesByClientId( ids ),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst showLockButton = selectedClientIds.length === 1 && canLock;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps =\n\t\tuseConvertToGroupButtonProps( selectedClientIds );\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton = isGroupable || isUngroupable;\n\n\treturn (\n\t\t<Slot\n\t\t\tfillProps={ {\n\t\t\t\t...fillProps,\n\t\t\t\t__unstableDisplayLocation,\n\t\t\t\tselectedBlocks,\n\t\t\t\tselectedClientIds,\n\t\t\t} }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ fillProps?.canMove && ! fillProps?.onlyBlock && (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\tfillProps?.onClose,\n\t\t\t\t\t\t\t\t\tfillProps?.onMoveTo\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fillProps?.count === 1 && (\n\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\tclientId={ fillProps?.firstBlockClientId }\n\t\t\t\t\t\t\t\tonToggle={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {Element} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,cAAc,EACdC,SAAS,EACTC,QAAQ,EACRC,2BAA2B,IAAIC,aAAa,QACtC,uBAAuB;AAC9B,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,IAAI,QAAQ,oBAAoB;AACzC,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SACCC,4BAA4B,EAC5BC,oBAAoB,QACd,6BAA6B;AACpC,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,eAAe;AAC/D,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,OAAOC,eAAe,MAAM,0CAA0C;AAEtE,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,
|
|
1
|
+
{"version":3,"names":["createSlotFill","MenuGroup","MenuItem","__experimentalStyleProvider","StyleProvider","useSelect","pipe","__","useConvertToGroupButtonProps","ConvertToGroupButton","BlockLockMenuItem","useBlockLock","store","blockEditorStore","BlockModeToggle","BlockRenameControl","useBlockRename","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","__unstableDisplayLocation","selectedBlocks","selectedClientIds","select","getBlockNamesByClientId","getSelectedBlockClientIds","ids","canLock","canRename","showLockButton","length","showRenameButton","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","createElement","fills","onClose","clientId","canMove","onlyBlock","onClick","onMoveTo","count","firstBlockClientId","onToggle","BlockSettingsMenuControls","props","document"],"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { pipe } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockModeToggle from '../block-settings-menu/block-mode-toggle';\n\nimport { BlockRenameControl, useBlockRename } from '../block-rename';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( {\n\tfillProps,\n\tclientIds = null,\n\t__unstableDisplayLocation,\n} ) => {\n\tconst { selectedBlocks, selectedClientIds } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockNamesByClientId, getSelectedBlockClientIds } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: getBlockNamesByClientId( ids ),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst { canRename } = useBlockRename( selectedBlocks[ 0 ] );\n\tconst showLockButton = selectedClientIds.length === 1 && canLock;\n\tconst showRenameButton = selectedClientIds.length === 1 && canRename;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps =\n\t\tuseConvertToGroupButtonProps( selectedClientIds );\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton = isGroupable || isUngroupable;\n\n\treturn (\n\t\t<Slot\n\t\t\tfillProps={ {\n\t\t\t\t...fillProps,\n\t\t\t\t__unstableDisplayLocation,\n\t\t\t\tselectedBlocks,\n\t\t\t\tselectedClientIds,\n\t\t\t} }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showRenameButton && (\n\t\t\t\t\t\t\t<BlockRenameControl\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ fillProps?.canMove && ! fillProps?.onlyBlock && (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\tfillProps?.onClose,\n\t\t\t\t\t\t\t\t\tfillProps?.onMoveTo\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fillProps?.count === 1 && (\n\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\tclientId={ fillProps?.firstBlockClientId }\n\t\t\t\t\t\t\t\tonToggle={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {Element} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ import classnames from 'classnames';
|
|
|
10
10
|
import { useState } from '@wordpress/element';
|
|
11
11
|
import { debounce, useViewportMatch } from '@wordpress/compose';
|
|
12
12
|
import { Button, __experimentalTruncate as Truncate, Popover } from '@wordpress/components';
|
|
13
|
-
import deprecated from '@wordpress/deprecated';
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
15
|
* Internal dependencies
|
|
@@ -95,11 +94,4 @@ function BlockStyles({
|
|
|
95
94
|
}))));
|
|
96
95
|
}
|
|
97
96
|
export default BlockStyles;
|
|
98
|
-
BlockStyles.Slot = () => {
|
|
99
|
-
deprecated('BlockStyles.Slot', {
|
|
100
|
-
version: '6.4',
|
|
101
|
-
since: '6.2'
|
|
102
|
-
});
|
|
103
|
-
return null;
|
|
104
|
-
};
|
|
105
97
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","useState","debounce","useViewportMatch","Button","__experimentalTruncate","Truncate","Popover","
|
|
1
|
+
{"version":3,"names":["classnames","useState","debounce","useViewportMatch","Button","__experimentalTruncate","Truncate","Popover","BlockStylesPreviewPanel","useStylesForBlocks","noop","BlockStyles","clientId","onSwitch","onHoverClassName","onSelect","stylesToRender","activeStyle","genericPreviewBlock","className","previewClassName","hoveredStyle","setHoveredStyle","isMobileViewport","length","debouncedSetHoveredStyle","onSelectStylePreview","style","cancel","styleItemHandler","item","_item$name","name","createElement","map","buttonText","label","__next40pxDefaultSize","key","variant","onMouseEnter","onFocus","onMouseLeave","onBlur","onClick","numberOfLines","placement","offset","focusOnMount"],"sources":["@wordpress/block-editor/src/components/block-styles/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { debounce, useViewportMatch } from '@wordpress/compose';\nimport {\n\tButton,\n\t__experimentalTruncate as Truncate,\n\tPopover,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockStylesPreviewPanel from './preview-panel';\nimport useStylesForBlocks from './use-styles-for-block';\n\nconst noop = () => {};\n\n// Block Styles component for the Settings Sidebar.\nfunction BlockStyles( { clientId, onSwitch = noop, onHoverClassName = noop } ) {\n\tconst {\n\t\tonSelect,\n\t\tstylesToRender,\n\t\tactiveStyle,\n\t\tgenericPreviewBlock,\n\t\tclassName: previewClassName,\n\t} = useStylesForBlocks( {\n\t\tclientId,\n\t\tonSwitch,\n\t} );\n\tconst [ hoveredStyle, setHoveredStyle ] = useState( null );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst debouncedSetHoveredStyle = debounce( setHoveredStyle, 250 );\n\n\tconst onSelectStylePreview = ( style ) => {\n\t\tonSelect( style );\n\t\tonHoverClassName( null );\n\t\tsetHoveredStyle( null );\n\t\tdebouncedSetHoveredStyle.cancel();\n\t};\n\n\tconst styleItemHandler = ( item ) => {\n\t\tif ( hoveredStyle === item ) {\n\t\t\tdebouncedSetHoveredStyle.cancel();\n\t\t\treturn;\n\t\t}\n\t\tdebouncedSetHoveredStyle( item );\n\t\tonHoverClassName( item?.name ?? null );\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-styles\">\n\t\t\t<div className=\"block-editor-block-styles__variants\">\n\t\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\t\tconst buttonText = style.label || style.name;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-block-styles__item',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\tactiveStyle.name === style.name,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tlabel={ buttonText }\n\t\t\t\t\t\t\tonMouseEnter={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonFocus={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonBlur={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonClick={ () => onSelectStylePreview( style ) }\n\t\t\t\t\t\t\taria-current={ activeStyle.name === style.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-styles__item-text\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ buttonText }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t\t{ hoveredStyle && ! isMobileViewport && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"left-start\"\n\t\t\t\t\toffset={ 20 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"block-editor-block-styles__preview-panel\"\n\t\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockStylesPreviewPanel\n\t\t\t\t\t\t\tactiveStyle={ activeStyle }\n\t\t\t\t\t\t\tclassName={ previewClassName }\n\t\t\t\t\t\t\tgenericPreviewBlock={ genericPreviewBlock }\n\t\t\t\t\t\t\tstyle={ hoveredStyle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default BlockStyles;\n"],"mappings":"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"}
|
|
@@ -6,13 +6,19 @@ import { __ } from '@wordpress/i18n';
|
|
|
6
6
|
import { useState } from '@wordpress/element';
|
|
7
7
|
import { useInstanceId } from '@wordpress/compose';
|
|
8
8
|
import { chevronRight } from '@wordpress/icons';
|
|
9
|
-
import { MenuGroup, MenuItem, Popover, VisuallyHidden,
|
|
9
|
+
import { MenuGroup, MenuItem, Popover, VisuallyHidden, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Internal dependencies
|
|
13
13
|
*/
|
|
14
14
|
import BlockPreview from '../block-preview';
|
|
15
15
|
import useTransformedPatterns from './use-transformed-patterns';
|
|
16
|
+
import { unlock } from '../../lock-unlock';
|
|
17
|
+
const {
|
|
18
|
+
CompositeV2: Composite,
|
|
19
|
+
CompositeItemV2: CompositeItem,
|
|
20
|
+
useCompositeStoreV2: useCompositeStore
|
|
21
|
+
} = unlock(componentsPrivateApis);
|
|
16
22
|
function PatternTransformationsMenu({
|
|
17
23
|
blocks,
|
|
18
24
|
patterns: statePatterns,
|
|
@@ -56,23 +62,21 @@ function BlockPatternsList({
|
|
|
56
62
|
patterns,
|
|
57
63
|
onSelect
|
|
58
64
|
}) {
|
|
59
|
-
const composite =
|
|
65
|
+
const composite = useCompositeStore();
|
|
60
66
|
return createElement(Composite, {
|
|
61
|
-
|
|
67
|
+
store: composite,
|
|
62
68
|
role: "listbox",
|
|
63
69
|
className: "block-editor-block-switcher__preview-patterns-container",
|
|
64
70
|
"aria-label": __('Patterns list')
|
|
65
71
|
}, patterns.map(pattern => createElement(BlockPattern, {
|
|
66
72
|
key: pattern.name,
|
|
67
73
|
pattern: pattern,
|
|
68
|
-
onSelect: onSelect
|
|
69
|
-
composite: composite
|
|
74
|
+
onSelect: onSelect
|
|
70
75
|
})));
|
|
71
76
|
}
|
|
72
77
|
function BlockPattern({
|
|
73
78
|
pattern,
|
|
74
|
-
onSelect
|
|
75
|
-
composite
|
|
79
|
+
onSelect
|
|
76
80
|
}) {
|
|
77
81
|
// TODO check pattern/preview width...
|
|
78
82
|
const baseClassName = 'block-editor-block-switcher__preview-patterns-container';
|
|
@@ -80,12 +84,12 @@ function BlockPattern({
|
|
|
80
84
|
return createElement("div", {
|
|
81
85
|
className: `${baseClassName}-list__list-item`
|
|
82
86
|
}, createElement(CompositeItem, {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
render: createElement("div", {
|
|
88
|
+
role: "option",
|
|
89
|
+
"aria-label": pattern.title,
|
|
90
|
+
"aria-describedby": pattern.description ? descriptionId : undefined,
|
|
91
|
+
className: `${baseClassName}-list__item`
|
|
92
|
+
}),
|
|
89
93
|
onClick: () => onSelect(pattern.transformedBlocks)
|
|
90
94
|
}, createElement(BlockPreview, {
|
|
91
95
|
blocks: pattern.transformedBlocks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","useState","useInstanceId","chevronRight","MenuGroup","MenuItem","Popover","VisuallyHidden","
|
|
1
|
+
{"version":3,"names":["__","useState","useInstanceId","chevronRight","MenuGroup","MenuItem","Popover","VisuallyHidden","privateApis","componentsPrivateApis","BlockPreview","useTransformedPatterns","unlock","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","PatternTransformationsMenu","blocks","patterns","statePatterns","onSelect","showTransforms","setShowTransforms","length","createElement","className","PreviewPatternsPopover","onClick","event","preventDefault","icon","position","BlockPatternsList","composite","store","role","map","pattern","BlockPattern","key","name","baseClassName","descriptionId","render","title","description","undefined","transformedBlocks","viewportWidth","id"],"sources":["@wordpress/block-editor/src/components/block-switcher/pattern-transformations-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } 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\tif ( ! patterns.length ) return null;\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\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover__preview__parent\">\n\t\t\t<div className=\"block-editor-block-switcher__popover__preview__container\">\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-block-switcher__preview__popover\"\n\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"block-editor-block-switcher__preview is-pattern-list-preview\">\n\t\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t</div>\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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"}
|
|
@@ -182,7 +182,7 @@ const BlockActionsMenu = ({
|
|
|
182
182
|
},
|
|
183
183
|
convertToRegularBlocks: {
|
|
184
184
|
id: 'convertToRegularBlocksOption',
|
|
185
|
-
label:
|
|
185
|
+
label: __('Detach'),
|
|
186
186
|
value: 'convertToRegularBlocksOption',
|
|
187
187
|
onSelect: () => {
|
|
188
188
|
/* translators: %s: name of the synced block */
|