@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_components","_blocks","_i18n","_data","_compose","_icons","_element","_notices","_reusableBlocks","_coreData","_moverDescription","_store","_blockTransformationsMenu","_interopRequireDefault","_convertToGroupButtons","BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","useState","getClipboard","blockActionsMenuPickerRef","useRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","rawHandler","HTML","isPasteEnabled","name","innerBlockCount","useSelect","select","blockEditorStore","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","getMoversSetup","convertToGroupButtonProps","useConvertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","convertToGroupButtons","useConvertToGroupButtons","allOptions","settings","id","label","__","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","serialize","setClipboard","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","sprintf","title","raw","options","length","group","ungroup","filter","Boolean","_react","createElement","ToolbarGroup","ToolbarButton","icon","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","findNodeHandle","undefined","onClick","extraProps","hint","Picker","testID","ref","onChange","destructiveButtonIndex","hideCancelButton","leftAlign","default","pickerRef","possibleTransformations","selectedBlock","EMPTY_BLOCK_LIST","_default","compose","withSelect","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","block","blockName","blockType","getBlockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","hasBlockSupport","isDefaultBlock","getDefaultBlockName","isEmptyContent","attributes","content","isExactlyOneBlock","isReusableBlock","coreStore","getEntityRecord","currentIndex","withDispatch","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","isUnmodifiedDefaultBlock","insertedBlock","createBlock","withInstanceId","exports"],"sources":["@wordpress/block-editor/src/components/block-toolbar/block-toolbar-menu.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarGroup,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect, useSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\nimport {\n\tuseConvertToGroupButtons,\n\tuseConvertToGroupButtonProps,\n} from '../convert-to-group-buttons';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst innerBlockCount = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockCount( selectedBlockClientId ),\n\t\t[ selectedBlockClientId ]\n\t);\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\t// Check if selected block is Groupable and/or Ungroupable.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps(\n\t\t// `selectedBlockClientId` can be undefined in some cases where this\n\t\t// component gets re-rendered right after the block is removed.\n\t\tselectedBlockClientId ? [ selectedBlockClientId ] : []\n\t);\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton = isGroupable || isUngroupable;\n\tconst convertToGroupButtons = useConvertToGroupButtons( {\n\t\t...convertToGroupButtonProps,\n\t} );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel:\n\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t? __( 'Detach patterns' )\n\t\t\t\t\t: __( 'Detach pattern' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\t/* translators: %s: name of the synced block */\n\t\t\t\tconst successNotice = __( '%s detached' );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\tsuccessNotice,\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tshowConvertToGroupButton && isGroupable && convertToGroupButtons.group,\n\t\tshowConvertToGroupButton &&\n\t\t\tisUngroupable &&\n\t\t\tconvertToGroupButtons.ungroup,\n\t\tisReusableBlockType &&\n\t\t\tinnerBlockCount > 0 &&\n\t\t\tallOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t].filter( Boolean );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\t\tdisabled={ true }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\ttestID=\"block-actions-menu\"\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nconst EMPTY_BLOCK_LIST = [];\n\nexport default compose(\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst blockName = getBlockName( clientId );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst currentBlockIndex = getBlockIndex( clientId );\n\t\tconst isFirst = currentBlockIndex === 0;\n\t\tconst isLast = currentBlockIndex === blockOrder.length - 1;\n\n\t\tconst innerBlocks = getBlocksByClientId( clientId );\n\n\t\tconst canDuplicate = innerBlocks.every( ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? getBlocksByClientId( selectedBlockClientId )[ 0 ]\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( selectedBlock, rootClientId )\n\t\t\t: EMPTY_BLOCK_LIST;\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: currentBlockIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientId, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlock,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\t\t\tdispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( [ clientId ] );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId, ...args ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlock( clientId, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_components","_blocks","_i18n","_data","_compose","_icons","_element","_notices","_reusableBlocks","_coreData","_moverDescription","_store","_blockTransformationsMenu","_interopRequireDefault","_convertToGroupButtons","BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","useState","getClipboard","blockActionsMenuPickerRef","useRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","rawHandler","HTML","isPasteEnabled","name","innerBlockCount","useSelect","select","blockEditorStore","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","getMoversSetup","convertToGroupButtonProps","useConvertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","convertToGroupButtons","useConvertToGroupButtons","allOptions","settings","id","label","__","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","serialize","setClipboard","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","sprintf","title","raw","options","length","group","ungroup","filter","Boolean","_react","createElement","ToolbarGroup","ToolbarButton","icon","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","findNodeHandle","undefined","onClick","extraProps","hint","Picker","testID","ref","onChange","destructiveButtonIndex","hideCancelButton","leftAlign","default","pickerRef","possibleTransformations","selectedBlock","EMPTY_BLOCK_LIST","_default","compose","withSelect","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","block","blockName","blockType","getBlockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","hasBlockSupport","isDefaultBlock","getDefaultBlockName","isEmptyContent","attributes","content","isExactlyOneBlock","isReusableBlock","coreStore","getEntityRecord","currentIndex","withDispatch","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","isUnmodifiedDefaultBlock","insertedBlock","createBlock","withInstanceId","exports"],"sources":["@wordpress/block-editor/src/components/block-toolbar/block-toolbar-menu.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarGroup,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect, useSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\nimport {\n\tuseConvertToGroupButtons,\n\tuseConvertToGroupButtonProps,\n} from '../convert-to-group-buttons';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst innerBlockCount = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockCount( selectedBlockClientId ),\n\t\t[ selectedBlockClientId ]\n\t);\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\t// Check if selected block is Groupable and/or Ungroupable.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps(\n\t\t// `selectedBlockClientId` can be undefined in some cases where this\n\t\t// component gets re-rendered right after the block is removed.\n\t\tselectedBlockClientId ? [ selectedBlockClientId ] : []\n\t);\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton = isGroupable || isUngroupable;\n\tconst convertToGroupButtons = useConvertToGroupButtons( {\n\t\t...convertToGroupButtonProps,\n\t} );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel: __( 'Detach' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\t/* translators: %s: name of the synced block */\n\t\t\t\tconst successNotice = __( '%s detached' );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\tsuccessNotice,\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tshowConvertToGroupButton && isGroupable && convertToGroupButtons.group,\n\t\tshowConvertToGroupButton &&\n\t\t\tisUngroupable &&\n\t\t\tconvertToGroupButtons.ungroup,\n\t\tisReusableBlockType &&\n\t\t\tinnerBlockCount > 0 &&\n\t\t\tallOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t].filter( Boolean );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\t\tdisabled={ true }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\ttestID=\"block-actions-menu\"\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nconst EMPTY_BLOCK_LIST = [];\n\nexport default compose(\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst blockName = getBlockName( clientId );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst currentBlockIndex = getBlockIndex( clientId );\n\t\tconst isFirst = currentBlockIndex === 0;\n\t\tconst isLast = currentBlockIndex === blockOrder.length - 1;\n\n\t\tconst innerBlocks = getBlocksByClientId( clientId );\n\n\t\tconst canDuplicate = innerBlocks.every( ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? getBlocksByClientId( selectedBlockClientId )[ 0 ]\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( selectedBlock, rootClientId )\n\t\t\t: EMPTY_BLOCK_LIST;\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: currentBlockIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientId, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlock,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\t\t\tdispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( [ clientId ] );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId, ...args ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlock( clientId, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ var _element = require("@wordpress/element");
|
|
|
10
10
|
var _components = require("@wordpress/components");
|
|
11
11
|
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
|
|
12
12
|
var _insertionPoint = _interopRequireWildcard(require("./insertion-point"));
|
|
13
|
-
var
|
|
13
|
+
var _selectedBlockTools = _interopRequireDefault(require("./selected-block-tools"));
|
|
14
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
16
|
/**
|
|
@@ -38,7 +38,7 @@ function BlockToolsBackCompat({
|
|
|
38
38
|
});
|
|
39
39
|
return (0, _react.createElement)(_insertionPoint.default, {
|
|
40
40
|
__unstablePopoverSlot: "block-toolbar"
|
|
41
|
-
}, (0, _react.createElement)(
|
|
41
|
+
}, (0, _react.createElement)(_selectedBlockTools.default, {
|
|
42
42
|
__unstablePopoverSlot: "block-toolbar"
|
|
43
43
|
}), children);
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_components","_deprecated","_interopRequireDefault","_insertionPoint","_interopRequireWildcard","
|
|
1
|
+
{"version":3,"names":["_element","require","_components","_deprecated","_interopRequireDefault","_insertionPoint","_interopRequireWildcard","_selectedBlockTools","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","BlockToolsBackCompat","children","openRef","useContext","InsertionPointOpenRef","isDisabled","Disabled","Context","deprecated","alternative","since","version","_react","createElement","__unstablePopoverSlot"],"sources":["@wordpress/block-editor/src/components/block-tools/back-compat.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { Disabled } from '@wordpress/components';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport InsertionPoint, { InsertionPointOpenRef } from './insertion-point';\nimport BlockPopover from './selected-block-tools';\n\nexport default function BlockToolsBackCompat( { children } ) {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isDisabled = useContext( Disabled.Context );\n\n\t// If context is set, `BlockTools` is a parent component.\n\tif ( openRef || isDisabled ) {\n\t\treturn children;\n\t}\n\n\tdeprecated( 'wp.components.Popover.Slot name=\"block-toolbar\"', {\n\t\talternative: 'wp.blockEditor.BlockTools',\n\t\tsince: '5.8',\n\t\tversion: '6.3',\n\t} );\n\n\treturn (\n\t\t<InsertionPoint __unstablePopoverSlot=\"block-toolbar\">\n\t\t\t<BlockPopover __unstablePopoverSlot=\"block-toolbar\" />\n\t\t\t{ children }\n\t\t</InsertionPoint>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AAKA,IAAAI,eAAA,GAAAC,uBAAA,CAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAH,sBAAA,CAAAH,OAAA;AAAkD,SAAAO,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAXlD;AACA;AACA;;AAKA;AACA;AACA;;AAIe,SAASW,oBAAoBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC5D,MAAMC,OAAO,GAAG,IAAAC,mBAAU,EAAEC,qCAAsB,CAAC;EACnD,MAAMC,UAAU,GAAG,IAAAF,mBAAU,EAAEG,oBAAQ,CAACC,OAAQ,CAAC;;EAEjD;EACA,IAAKL,OAAO,IAAIG,UAAU,EAAG;IAC5B,OAAOJ,QAAQ;EAChB;EAEA,IAAAO,mBAAU,EAAE,iDAAiD,EAAE;IAC9DC,WAAW,EAAE,2BAA2B;IACxCC,KAAK,EAAE,KAAK;IACZC,OAAO,EAAE;EACV,CAAE,CAAC;EAEH,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACtC,eAAA,CAAAU,OAAc;IAAC6B,qBAAqB,EAAC;EAAe,GACpD,IAAAF,MAAA,CAAAC,aAAA,EAACpC,mBAAA,CAAAQ,OAAY;IAAC6B,qBAAqB,EAAC;EAAe,CAAE,CAAC,EACpDb,QACa,CAAC;AAEnB"}
|
|
@@ -4,16 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.default =
|
|
7
|
+
exports.default = BlockContextualToolbar;
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
10
|
var _i18n = require("@wordpress/i18n");
|
|
11
|
-
var _element = require("@wordpress/element");
|
|
12
11
|
var _blocks = require("@wordpress/blocks");
|
|
13
12
|
var _data = require("@wordpress/data");
|
|
14
|
-
var _components = require("@wordpress/components");
|
|
15
|
-
var _icons = require("@wordpress/icons");
|
|
16
|
-
var _compose = require("@wordpress/compose");
|
|
17
13
|
var _navigableToolbar = _interopRequireDefault(require("../navigable-toolbar"));
|
|
18
14
|
var _blockToolbar = _interopRequireDefault(require("../block-toolbar"));
|
|
19
15
|
var _store = require("../../store");
|
|
@@ -35,10 +31,6 @@ function BlockContextualToolbar({
|
|
|
35
31
|
isFixed,
|
|
36
32
|
...props
|
|
37
33
|
}) {
|
|
38
|
-
// When the toolbar is fixed it can be collapsed
|
|
39
|
-
const [isCollapsed, setIsCollapsed] = (0, _element.useState)(false);
|
|
40
|
-
const toolbarButtonRef = (0, _element.useRef)();
|
|
41
|
-
const isLargeViewport = (0, _compose.useViewportMatch)('medium');
|
|
42
34
|
const {
|
|
43
35
|
blockType,
|
|
44
36
|
blockEditingMode,
|
|
@@ -69,60 +61,7 @@ function BlockContextualToolbar({
|
|
|
69
61
|
showParentSelector: parentBlockType && getBlockEditingMode(firstParentClientId) === 'default' && (0, _blocks.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1 && getBlockEditingMode(_selectedBlockClientId) === 'default'
|
|
70
62
|
};
|
|
71
63
|
}, []);
|
|
72
|
-
(0,
|
|
73
|
-
setIsCollapsed(false);
|
|
74
|
-
}, [selectedBlockClientId]);
|
|
75
|
-
const isLargerThanTabletViewport = (0, _compose.useViewportMatch)('large', '>=');
|
|
76
|
-
const isFullscreen = document.body.classList.contains('is-fullscreen-mode');
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* The following code is a workaround to fix the width of the toolbar
|
|
80
|
-
* it should be removed when the toolbar will be rendered inline
|
|
81
|
-
* FIXME: remove this layout effect when the toolbar is no longer
|
|
82
|
-
* absolutely positioned
|
|
83
|
-
*/
|
|
84
|
-
(0, _element.useLayoutEffect)(() => {
|
|
85
|
-
// don't do anything if not fixed toolbar
|
|
86
|
-
if (!isFixed) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
const blockToolbar = document.querySelector('.block-editor-block-contextual-toolbar');
|
|
90
|
-
if (!blockToolbar) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
if (!blockType) {
|
|
94
|
-
blockToolbar.style.width = 'initial';
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
if (!isLargerThanTabletViewport) {
|
|
98
|
-
// set the width of the toolbar to auto
|
|
99
|
-
blockToolbar.style = {};
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
if (isCollapsed) {
|
|
103
|
-
// set the width of the toolbar to auto
|
|
104
|
-
blockToolbar.style.width = 'auto';
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// get the width of the pinned items in the post editor or widget editor
|
|
109
|
-
const pinnedItems = document.querySelector('.edit-post-header__settings, .edit-widgets-header__actions');
|
|
110
|
-
// get the width of the left header in the site editor
|
|
111
|
-
const leftHeader = document.querySelector('.edit-site-header-edit-mode__end');
|
|
112
|
-
const computedToolbarStyle = window.getComputedStyle(blockToolbar);
|
|
113
|
-
const computedPinnedItemsStyle = pinnedItems ? window.getComputedStyle(pinnedItems) : false;
|
|
114
|
-
const computedLeftHeaderStyle = leftHeader ? window.getComputedStyle(leftHeader) : false;
|
|
115
|
-
const marginLeft = parseFloat(computedToolbarStyle.marginLeft);
|
|
116
|
-
const pinnedItemsWidth = computedPinnedItemsStyle ? parseFloat(computedPinnedItemsStyle.width) : 0;
|
|
117
|
-
const leftHeaderWidth = computedLeftHeaderStyle ? parseFloat(computedLeftHeaderStyle.width) : 0;
|
|
118
|
-
|
|
119
|
-
// set the new witdth of the toolbar
|
|
120
|
-
blockToolbar.style.width = `calc(100% - ${leftHeaderWidth + pinnedItemsWidth + marginLeft + (pinnedItems || leftHeader ? 2 : 0) + (
|
|
121
|
-
// Prevents button focus border from being cut off
|
|
122
|
-
isFullscreen ? 0 : 160) // the width of the admin sidebar expanded
|
|
123
|
-
}px)`;
|
|
124
|
-
}, [isFixed, isLargerThanTabletViewport, isCollapsed, isFullscreen, blockType]);
|
|
125
|
-
const isToolbarEnabled = !blockType || (0, _blocks.hasBlockSupport)(blockType, '__experimentalToolbar', true);
|
|
64
|
+
const isToolbarEnabled = blockType && (0, _blocks.hasBlockSupport)(blockType, '__experimentalToolbar', true);
|
|
126
65
|
const hasAnyBlockControls = (0, _useHasBlockControls.useHasAnyBlockControls)();
|
|
127
66
|
if (!isToolbarEnabled || blockEditingMode !== 'default' && !hasAnyBlockControls) {
|
|
128
67
|
return null;
|
|
@@ -131,31 +70,22 @@ function BlockContextualToolbar({
|
|
|
131
70
|
// Shifts the toolbar to make room for the parent block selector.
|
|
132
71
|
const classes = (0, _classnames.default)('block-editor-block-contextual-toolbar', {
|
|
133
72
|
'has-parent': hasParents && showParentSelector,
|
|
134
|
-
'is-fixed': isFixed
|
|
135
|
-
'is-collapsed': isCollapsed
|
|
73
|
+
'is-fixed': isFixed
|
|
136
74
|
});
|
|
137
75
|
return (0, _react.createElement)(_navigableToolbar.default, {
|
|
138
76
|
focusOnMount: focusOnMount,
|
|
77
|
+
focusEditorOnEscape: true,
|
|
139
78
|
className: classes
|
|
140
79
|
/* translators: accessibility text for the block toolbar */,
|
|
141
80
|
"aria-label": (0, _i18n.__)('Block tools'),
|
|
142
|
-
variant: isFixed ? 'unstyled' : undefined
|
|
81
|
+
variant: isFixed ? 'unstyled' : undefined
|
|
82
|
+
// Resets the index whenever the active block changes so
|
|
83
|
+
// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169
|
|
84
|
+
,
|
|
85
|
+
key: selectedBlockClientId,
|
|
143
86
|
...props
|
|
144
|
-
},
|
|
87
|
+
}, (0, _react.createElement)(_blockToolbar.default, {
|
|
145
88
|
hideDragHandle: isFixed
|
|
146
|
-
})
|
|
147
|
-
className: isCollapsed ? 'block-editor-block-toolbar__group-expand-fixed-toolbar' : 'block-editor-block-toolbar__group-collapse-fixed-toolbar'
|
|
148
|
-
}, (0, _react.createElement)(_components.ToolbarItem, {
|
|
149
|
-
as: _components.ToolbarButton,
|
|
150
|
-
ref: toolbarButtonRef,
|
|
151
|
-
icon: isCollapsed ? _icons.next : _icons.previous,
|
|
152
|
-
onClick: () => {
|
|
153
|
-
setIsCollapsed(collapsed => !collapsed);
|
|
154
|
-
toolbarButtonRef.current.focus();
|
|
155
|
-
},
|
|
156
|
-
label: isCollapsed ? (0, _i18n.__)('Show block tools') : (0, _i18n.__)('Hide block tools')
|
|
157
|
-
})));
|
|
89
|
+
}));
|
|
158
90
|
}
|
|
159
|
-
var _default = BlockContextualToolbar;
|
|
160
|
-
exports.default = _default;
|
|
161
91
|
//# sourceMappingURL=block-contextual-toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_element","_blocks","_data","_components","_icons","_compose","_navigableToolbar","_blockToolbar","_store","_useHasBlockControls","BlockContextualToolbar","focusOnMount","isFixed","props","isCollapsed","setIsCollapsed","useState","toolbarButtonRef","useRef","isLargeViewport","useViewportMatch","blockType","blockEditingMode","hasParents","showParentSelector","selectedBlockClientId","useSelect","select","getBlockName","getBlockParents","getSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","getBlockType","blocksStore","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","hasBlockSupport","useEffect","isLargerThanTabletViewport","isFullscreen","document","body","classList","contains","useLayoutEffect","blockToolbar","querySelector","style","width","pinnedItems","leftHeader","computedToolbarStyle","window","getComputedStyle","computedPinnedItemsStyle","computedLeftHeaderStyle","marginLeft","parseFloat","pinnedItemsWidth","leftHeaderWidth","isToolbarEnabled","hasAnyBlockControls","useHasAnyBlockControls","classes","classnames","_react","createElement","default","className","__","variant","undefined","hideDragHandle","ToolbarGroup","ToolbarItem","as","ToolbarButton","ref","icon","next","previous","onClick","collapsed","current","focus","label","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tToolbarItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { next, previous } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\nfunction BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {\n\t// When the toolbar is fixed it can be collapsed\n\tconst [ isCollapsed, setIsCollapsed ] = useState( false );\n\tconst toolbarButtonRef = useRef();\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tblockType,\n\t\tblockEditingMode,\n\t\thasParents,\n\t\tshowParentSelector,\n\t\tselectedBlockClientId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetBlockEditingMode,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockType } = select( blocksStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\treturn {\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tblockType:\n\t\t\t\t_selectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\tblockEditingMode: getBlockEditingMode( _selectedBlockClientId ),\n\t\t\thasParents: parents.length,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\tgetBlockEditingMode( _selectedBlockClientId ) === 'default',\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tsetIsCollapsed( false );\n\t}, [ selectedBlockClientId ] );\n\n\tconst isLargerThanTabletViewport = useViewportMatch( 'large', '>=' );\n\tconst isFullscreen =\n\t\tdocument.body.classList.contains( 'is-fullscreen-mode' );\n\n\t/**\n\t * The following code is a workaround to fix the width of the toolbar\n\t * it should be removed when the toolbar will be rendered inline\n\t * FIXME: remove this layout effect when the toolbar is no longer\n\t * \t\t\t\tabsolutely positioned\n\t */\n\tuseLayoutEffect( () => {\n\t\t// don't do anything if not fixed toolbar\n\t\tif ( ! isFixed ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockToolbar = document.querySelector(\n\t\t\t'.block-editor-block-contextual-toolbar'\n\t\t);\n\n\t\tif ( ! blockToolbar ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! blockType ) {\n\t\t\tblockToolbar.style.width = 'initial';\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! isLargerThanTabletViewport ) {\n\t\t\t// set the width of the toolbar to auto\n\t\t\tblockToolbar.style = {};\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isCollapsed ) {\n\t\t\t// set the width of the toolbar to auto\n\t\t\tblockToolbar.style.width = 'auto';\n\t\t\treturn;\n\t\t}\n\n\t\t// get the width of the pinned items in the post editor or widget editor\n\t\tconst pinnedItems = document.querySelector(\n\t\t\t'.edit-post-header__settings, .edit-widgets-header__actions'\n\t\t);\n\t\t// get the width of the left header in the site editor\n\t\tconst leftHeader = document.querySelector(\n\t\t\t'.edit-site-header-edit-mode__end'\n\t\t);\n\n\t\tconst computedToolbarStyle = window.getComputedStyle( blockToolbar );\n\t\tconst computedPinnedItemsStyle = pinnedItems\n\t\t\t? window.getComputedStyle( pinnedItems )\n\t\t\t: false;\n\t\tconst computedLeftHeaderStyle = leftHeader\n\t\t\t? window.getComputedStyle( leftHeader )\n\t\t\t: false;\n\n\t\tconst marginLeft = parseFloat( computedToolbarStyle.marginLeft );\n\t\tconst pinnedItemsWidth = computedPinnedItemsStyle\n\t\t\t? parseFloat( computedPinnedItemsStyle.width )\n\t\t\t: 0;\n\t\tconst leftHeaderWidth = computedLeftHeaderStyle\n\t\t\t? parseFloat( computedLeftHeaderStyle.width )\n\t\t\t: 0;\n\n\t\t// set the new witdth of the toolbar\n\t\tblockToolbar.style.width = `calc(100% - ${\n\t\t\tleftHeaderWidth +\n\t\t\tpinnedItemsWidth +\n\t\t\tmarginLeft +\n\t\t\t( pinnedItems || leftHeader ? 2 : 0 ) + // Prevents button focus border from being cut off\n\t\t\t( isFullscreen ? 0 : 160 ) // the width of the admin sidebar expanded\n\t\t}px)`;\n\t}, [\n\t\tisFixed,\n\t\tisLargerThanTabletViewport,\n\t\tisCollapsed,\n\t\tisFullscreen,\n\t\tblockType,\n\t] );\n\n\tconst isToolbarEnabled =\n\t\t! blockType ||\n\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( blockEditingMode !== 'default' && ! hasAnyBlockControls )\n\t) {\n\t\treturn null;\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t\t'is-collapsed': isCollapsed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\tvariant={ isFixed ? 'unstyled' : undefined }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ! isCollapsed && <BlockToolbar hideDragHandle={ isFixed } /> }\n\t\t\t{ isFixed && isLargeViewport && blockType && (\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t? 'block-editor-block-toolbar__group-expand-fixed-toolbar'\n\t\t\t\t\t\t\t: 'block-editor-block-toolbar__group-collapse-fixed-toolbar'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\tas={ ToolbarButton }\n\t\t\t\t\t\tref={ toolbarButtonRef }\n\t\t\t\t\t\ticon={ isCollapsed ? next : previous }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsCollapsed( ( collapsed ) => ! collapsed );\n\t\t\t\t\t\t\ttoolbarButtonRef.current.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t\t? __( 'Show block tools' )\n\t\t\t\t\t\t\t\t: __( 'Hide block tools' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default BlockContextualToolbar;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_blocks","_data","_navigableToolbar","_blockToolbar","_store","_useHasBlockControls","BlockContextualToolbar","focusOnMount","isFixed","props","blockType","blockEditingMode","hasParents","showParentSelector","selectedBlockClientId","useSelect","select","getBlockName","getBlockParents","getSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","getBlockType","blocksStore","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","hasBlockSupport","isToolbarEnabled","hasAnyBlockControls","useHasAnyBlockControls","classes","classnames","_react","createElement","default","focusEditorOnEscape","className","__","variant","undefined","key","hideDragHandle"],"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\nexport default function BlockContextualToolbar( {\n\tfocusOnMount,\n\tisFixed,\n\t...props\n} ) {\n\tconst {\n\t\tblockType,\n\t\tblockEditingMode,\n\t\thasParents,\n\t\tshowParentSelector,\n\t\tselectedBlockClientId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetBlockEditingMode,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockType } = select( blocksStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\treturn {\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tblockType:\n\t\t\t\t_selectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\tblockEditingMode: getBlockEditingMode( _selectedBlockClientId ),\n\t\t\thasParents: parents.length,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\tgetBlockEditingMode( _selectedBlockClientId ) === 'default',\n\t\t};\n\t}, [] );\n\n\tconst isToolbarEnabled =\n\t\tblockType &&\n\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( blockEditingMode !== 'default' && ! hasAnyBlockControls )\n\t) {\n\t\treturn null;\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\tvariant={ isFixed ? 'unstyled' : undefined }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ selectedBlockClientId }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<BlockToolbar hideDragHandle={ isFixed } />\n\t\t</NavigableToolbar>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = EmptyBlockInserter;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _blockPopover = _interopRequireDefault(require("../block-popover"));
|
|
11
|
+
var _useBlockToolbarPopoverProps = _interopRequireDefault(require("./use-block-toolbar-popover-props"));
|
|
12
|
+
var _inserter = _interopRequireDefault(require("../inserter"));
|
|
13
|
+
var _useSelectedBlockToolProps = _interopRequireDefault(require("./use-selected-block-tool-props"));
|
|
14
|
+
/**
|
|
15
|
+
* External dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Internal dependencies
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
function EmptyBlockInserter({
|
|
23
|
+
clientId,
|
|
24
|
+
__unstableContentRef
|
|
25
|
+
}) {
|
|
26
|
+
const {
|
|
27
|
+
capturingClientId,
|
|
28
|
+
isInsertionPointVisible,
|
|
29
|
+
lastClientId,
|
|
30
|
+
rootClientId
|
|
31
|
+
} = (0, _useSelectedBlockToolProps.default)(clientId);
|
|
32
|
+
const popoverProps = (0, _useBlockToolbarPopoverProps.default)({
|
|
33
|
+
contentElement: __unstableContentRef?.current,
|
|
34
|
+
clientId
|
|
35
|
+
});
|
|
36
|
+
return (0, _react.createElement)(_blockPopover.default, {
|
|
37
|
+
clientId: capturingClientId || clientId,
|
|
38
|
+
__unstableCoverTarget: true,
|
|
39
|
+
bottomClientId: lastClientId,
|
|
40
|
+
className: (0, _classnames.default)('block-editor-block-list__block-side-inserter-popover', {
|
|
41
|
+
'is-insertion-point-visible': isInsertionPointVisible
|
|
42
|
+
}),
|
|
43
|
+
__unstableContentRef: __unstableContentRef,
|
|
44
|
+
resize: false,
|
|
45
|
+
shift: false,
|
|
46
|
+
...popoverProps
|
|
47
|
+
}, (0, _react.createElement)("div", {
|
|
48
|
+
className: "block-editor-block-list__empty-block-inserter"
|
|
49
|
+
}, (0, _react.createElement)(_inserter.default, {
|
|
50
|
+
position: "bottom right",
|
|
51
|
+
rootClientId: rootClientId,
|
|
52
|
+
clientId: clientId,
|
|
53
|
+
__experimentalIsQuick: true
|
|
54
|
+
})));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=empty-block-inserter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blockPopover","_useBlockToolbarPopoverProps","_inserter","_useSelectedBlockToolProps","EmptyBlockInserter","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","useSelectedBlockToolProps","popoverProps","useBlockToolbarPopoverProps","contentElement","current","_react","createElement","default","__unstableCoverTarget","bottomClientId","className","classnames","resize","shift","position","__experimentalIsQuick"],"sources":["@wordpress/block-editor/src/components/block-tools/empty-block-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport Inserter from '../inserter';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\n\nexport default function EmptyBlockInserter( {\n\tclientId,\n\t__unstableContentRef,\n} ) {\n\tconst {\n\t\tcapturingClientId,\n\t\tisInsertionPointVisible,\n\t\tlastClientId,\n\t\trootClientId,\n\t} = useSelectedBlockToolProps( clientId );\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\treturn (\n\t\t<BlockPopover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t__unstableCoverTarget\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-list__block-side-inserter-popover',\n\t\t\t\t{\n\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\tresize={ false }\n\t\t\tshift={ false }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t<div className=\"block-editor-block-list__empty-block-inserter\">\n\t\t\t\t<Inserter\n\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</BlockPopover>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,4BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,SAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,0BAAA,GAAAL,sBAAA,CAAAC,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASK,kBAAkBA,CAAE;EAC3CC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAG,IAAAC,kCAAyB,EAAEN,QAAS,CAAC;EAEzC,MAAMO,YAAY,GAAG,IAAAC,oCAA2B,EAAE;IACjDC,cAAc,EAAER,oBAAoB,EAAES,OAAO;IAC7CV;EACD,CAAE,CAAC;EAEH,OACC,IAAAW,MAAA,CAAAC,aAAA,EAACjB,aAAA,CAAAkB,OAAY;IACZb,QAAQ,EAAGE,iBAAiB,IAAIF,QAAU;IAC1Cc,qBAAqB;IACrBC,cAAc,EAAGX,YAAc;IAC/BY,SAAS,EAAG,IAAAC,mBAAU,EACrB,sDAAsD,EACtD;MACC,4BAA4B,EAAEd;IAC/B,CACD,CAAG;IACHF,oBAAoB,EAAGA,oBAAsB;IAC7CiB,MAAM,EAAG,KAAO;IAChBC,KAAK,EAAG,KAAO;IAAA,GACVZ;EAAY,GAEjB,IAAAI,MAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAA+C,GAC7D,IAAAL,MAAA,CAAAC,aAAA,EAACf,SAAA,CAAAgB,OAAQ;IACRO,QAAQ,EAAC,cAAc;IACvBf,YAAY,EAAGA,YAAc;IAC7BL,QAAQ,EAAGA,QAAU;IACrBqB,qBAAqB;EAAA,CACrB,CACG,CACQ,CAAC;AAEjB"}
|
|
@@ -11,8 +11,10 @@ var _compose = require("@wordpress/compose");
|
|
|
11
11
|
var _components = require("@wordpress/components");
|
|
12
12
|
var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
|
|
13
13
|
var _element = require("@wordpress/element");
|
|
14
|
+
var _blocks = require("@wordpress/blocks");
|
|
15
|
+
var _emptyBlockInserter = _interopRequireDefault(require("./empty-block-inserter"));
|
|
14
16
|
var _insertionPoint = _interopRequireWildcard(require("./insertion-point"));
|
|
15
|
-
var
|
|
17
|
+
var _selectedBlockTools = _interopRequireDefault(require("./selected-block-tools"));
|
|
16
18
|
var _store = require("../../store");
|
|
17
19
|
var _blockContextualToolbar = _interopRequireDefault(require("./block-contextual-toolbar"));
|
|
18
20
|
var _usePopoverScroll = _interopRequireDefault(require("../block-popover/use-popover-scroll"));
|
|
@@ -29,14 +31,28 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
29
31
|
|
|
30
32
|
function selector(select) {
|
|
31
33
|
const {
|
|
32
|
-
|
|
34
|
+
getSelectedBlockClientId,
|
|
35
|
+
getFirstMultiSelectedBlockClientId,
|
|
36
|
+
getBlock,
|
|
33
37
|
getSettings,
|
|
38
|
+
__unstableGetEditorMode,
|
|
34
39
|
isTyping
|
|
35
40
|
} = select(_store.store);
|
|
41
|
+
const clientId = getSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();
|
|
42
|
+
const {
|
|
43
|
+
name = '',
|
|
44
|
+
attributes = {}
|
|
45
|
+
} = getBlock(clientId) || {};
|
|
36
46
|
return {
|
|
37
|
-
|
|
47
|
+
clientId,
|
|
38
48
|
hasFixedToolbar: getSettings().hasFixedToolbar,
|
|
39
|
-
|
|
49
|
+
hasSelectedBlock: clientId && name,
|
|
50
|
+
isTyping: isTyping(),
|
|
51
|
+
isZoomOutMode: __unstableGetEditorMode() === 'zoom-out',
|
|
52
|
+
showEmptyBlockSideInserter: clientId && !isTyping() && __unstableGetEditorMode() === 'edit' && (0, _blocks.isUnmodifiedDefaultBlock)({
|
|
53
|
+
name,
|
|
54
|
+
attributes
|
|
55
|
+
})
|
|
40
56
|
};
|
|
41
57
|
}
|
|
42
58
|
|
|
@@ -56,9 +72,12 @@ function BlockTools({
|
|
|
56
72
|
}) {
|
|
57
73
|
const isLargeViewport = (0, _compose.useViewportMatch)('medium');
|
|
58
74
|
const {
|
|
75
|
+
clientId,
|
|
59
76
|
hasFixedToolbar,
|
|
77
|
+
hasSelectedBlock,
|
|
78
|
+
isTyping,
|
|
60
79
|
isZoomOutMode,
|
|
61
|
-
|
|
80
|
+
showEmptyBlockSideInserter
|
|
62
81
|
} = (0, _data.useSelect)(selector, []);
|
|
63
82
|
const isMatch = (0, _keyboardShortcuts.__unstableUseShortcutEventMatch)();
|
|
64
83
|
const {
|
|
@@ -116,6 +135,14 @@ function BlockTools({
|
|
|
116
135
|
insertBeforeBlock(clientIds[0]);
|
|
117
136
|
}
|
|
118
137
|
} else if (isMatch('core/block-editor/unselect', event)) {
|
|
138
|
+
if (event.target.closest('[role=toolbar]')) {
|
|
139
|
+
// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:
|
|
140
|
+
// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar
|
|
141
|
+
// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.
|
|
142
|
+
// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.
|
|
143
|
+
// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
119
146
|
const clientIds = getSelectedBlockClientIds();
|
|
120
147
|
if (clientIds.length) {
|
|
121
148
|
event.preventDefault();
|
|
@@ -135,6 +162,12 @@ function BlockTools({
|
|
|
135
162
|
}
|
|
136
163
|
const blockToolbarRef = (0, _usePopoverScroll.default)(__unstableContentRef);
|
|
137
164
|
const blockToolbarAfterRef = (0, _usePopoverScroll.default)(__unstableContentRef);
|
|
165
|
+
|
|
166
|
+
// Conditions for fixed toolbar
|
|
167
|
+
// 1. Not zoom out mode
|
|
168
|
+
// 2. It's a large viewport. If it's a smaller viewport, let the floating toolbar handle it as it already has styles attached to make it render that way.
|
|
169
|
+
// 3. Fixed toolbar is enabled
|
|
170
|
+
const isTopToolbar = !isZoomOutMode && hasFixedToolbar && isLargeViewport;
|
|
138
171
|
return (
|
|
139
172
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
140
173
|
(0, _react.createElement)("div", {
|
|
@@ -144,11 +177,17 @@ function BlockTools({
|
|
|
144
177
|
value: (0, _element.useRef)(false)
|
|
145
178
|
}, !isTyping && (0, _react.createElement)(_insertionPoint.default, {
|
|
146
179
|
__unstableContentRef: __unstableContentRef
|
|
147
|
-
}), !
|
|
180
|
+
}), !isLargeViewport &&
|
|
181
|
+
// Small viewports always get a fixed toolbar
|
|
182
|
+
(0, _react.createElement)(_blockContextualToolbar.default, {
|
|
148
183
|
isFixed: true
|
|
149
|
-
}), (0, _react.createElement)(
|
|
150
|
-
__unstableContentRef: __unstableContentRef
|
|
151
|
-
|
|
184
|
+
}), showEmptyBlockSideInserter && (0, _react.createElement)(_emptyBlockInserter.default, {
|
|
185
|
+
__unstableContentRef: __unstableContentRef,
|
|
186
|
+
clientId: clientId
|
|
187
|
+
}), !showEmptyBlockSideInserter && hasSelectedBlock && (0, _react.createElement)(_selectedBlockTools.default, {
|
|
188
|
+
__unstableContentRef: __unstableContentRef,
|
|
189
|
+
clientId: clientId
|
|
190
|
+
}), !isTopToolbar && (0, _react.createElement)(_components.Popover.Slot, {
|
|
152
191
|
name: "block-toolbar",
|
|
153
192
|
ref: blockToolbarRef
|
|
154
193
|
}), children, (0, _react.createElement)(_components.Popover.Slot, {
|