@wordpress/block-editor 14.3.4 → 14.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +4 -0
- package/build/autocompleters/link.js +2 -1
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/block-actions/index.js +1 -13
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-inspector/index.js +56 -75
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +5 -19
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +5 -8
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +5 -3
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list/zoom-out-separator.js +14 -6
- package/build/components/block-list/zoom-out-separator.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +2 -4
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-parent-selector/index.js +13 -10
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +11 -13
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +2 -4
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -6
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +17 -14
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +16 -19
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
- package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build/components/block-tools/index.js +8 -11
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +1 -4
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -5
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +2 -12
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/block-variation-picker/index.js +2 -4
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +3 -4
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +2 -4
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +2 -4
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/global-styles/border-panel.js +1 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -4
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +3 -3
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -4
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +24 -29
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/inner-blocks/index.js +1 -9
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +1 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +24 -5
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +22 -12
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +23 -10
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +35 -13
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/menu.js +2 -2
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +5 -5
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -4
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +11 -8
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +4 -8
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/link-control/index.js +5 -10
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +2 -4
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/block-contents.js +1 -25
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +1 -4
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +12 -24
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +2 -4
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/tool-selector/index.js +13 -12
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-input/button.js +14 -16
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +2 -4
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +0 -61
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +2 -25
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/duotone.js +4 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/layout-child.js +3 -1
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +3 -2
- package/build/hooks/position.js.map +1 -1
- package/build/layouts/flex.js +6 -38
- package/build/layouts/flex.js.map +1 -1
- package/build/store/actions.js +13 -14
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +15 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +104 -7
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +22 -26
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +127 -56
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +4 -3
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +2 -0
- package/build/utils/block-bindings.js.map +1 -1
- package/build-module/autocompleters/link.js +2 -1
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/block-actions/index.js +1 -13
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +57 -76
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -19
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +5 -8
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +5 -3
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list/zoom-out-separator.js +14 -6
- package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +2 -4
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +13 -10
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +10 -20
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +11 -13
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +2 -4
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +79 -76
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +2 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +17 -14
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +17 -20
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
- package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build-module/components/block-tools/index.js +8 -11
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +1 -4
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -5
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +2 -12
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +2 -4
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +3 -4
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +2 -4
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +2 -4
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +1 -1
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +2 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +1 -1
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -4
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +25 -30
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +1 -9
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +1 -1
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +23 -10
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +35 -13
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/menu.js +2 -2
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +6 -6
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +4 -4
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +12 -9
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +4 -8
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/link-control/index.js +5 -10
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +2 -4
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +1 -25
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -5
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +12 -24
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +2 -4
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +13 -12
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-input/button.js +15 -17
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +2 -4
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +1 -62
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +3 -26
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/layout-child.js +4 -1
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/layouts/flex.js +7 -39
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/store/actions.js +12 -12
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +14 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +98 -7
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +21 -25
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +129 -58
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +3 -2
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/block-bindings.js +2 -0
- package/build-module/utils/block-bindings.js.map +1 -1
- package/build-style/content-rtl.css +14 -56
- package/build-style/content.css +14 -56
- package/build-style/default-editor-styles-rtl.css +10 -1
- package/build-style/default-editor-styles.css +10 -1
- package/build-style/style-rtl.css +51 -149
- package/build-style/style.css +51 -149
- package/package.json +32 -32
- package/src/autocompleters/link.js +2 -1
- package/src/components/block-actions/index.js +1 -13
- package/src/components/block-draggable/style.scss +2 -2
- package/src/components/block-inspector/index.js +79 -95
- package/src/components/block-inspector/style.scss +2 -0
- package/src/components/block-list/block.js +7 -28
- package/src/components/block-list/content.scss +1 -61
- package/src/components/block-list/index.js +21 -29
- package/src/components/block-list/use-block-props/index.js +3 -10
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +19 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -2
- package/src/components/block-list/zoom-out-separator.js +24 -8
- package/src/components/block-navigation/dropdown.js +1 -2
- package/src/components/block-parent-selector/index.js +13 -10
- package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
- package/src/components/block-patterns-paging/index.js +8 -7
- package/src/components/block-patterns-paging/style.scss +10 -27
- package/src/components/block-quick-navigation/index.js +1 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
- package/src/components/block-settings-menu-controls/index.js +0 -15
- package/src/components/block-switcher/index.js +37 -30
- package/src/components/block-toolbar/index.js +22 -34
- package/src/components/block-toolbar/style.scss +10 -1
- package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
- package/src/components/block-tools/index.js +7 -16
- package/src/components/block-tools/insertion-point.js +1 -4
- package/src/components/block-tools/style.scss +3 -88
- package/src/components/block-tools/use-show-block-tools.js +2 -12
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
- package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
- package/src/components/block-tools/zoom-out-toolbar.js +2 -13
- package/src/components/block-variation-picker/index.js +1 -2
- package/src/components/block-variation-transforms/index.js +2 -2
- package/src/components/button-block-appender/content.scss +0 -5
- package/src/components/button-block-appender/index.js +1 -2
- package/src/components/colors-gradients/dropdown.js +1 -5
- package/src/components/font-family/README.md +5 -1
- package/src/components/global-styles/border-panel.js +1 -1
- package/src/components/global-styles/color-panel.js +1 -5
- package/src/components/global-styles/dimensions-panel.js +1 -1
- package/src/components/global-styles/filters-panel.js +1 -2
- package/src/components/global-styles/shadow-panel-components.js +28 -33
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/inner-blocks/index.js +1 -16
- package/src/components/inserter/block-types-tab.js +1 -1
- package/src/components/inserter/hooks/use-block-types-state.js +34 -14
- package/src/components/inserter/hooks/use-insertion-point.js +35 -13
- package/src/components/inserter/hooks/use-patterns-state.js +46 -9
- package/src/components/inserter/media-tab/media-preview.js +38 -12
- package/src/components/inserter/menu.js +2 -2
- package/src/components/inserter/mobile-tab-navigation.js +10 -13
- package/src/components/inserter/quick-inserter.js +5 -4
- package/src/components/inserter/style.scss +0 -28
- package/src/components/inspector-controls-tabs/index.js +21 -20
- package/src/components/inspector-controls-tabs/style.scss +2 -6
- package/src/components/inspector-popover-header/index.js +2 -4
- package/src/components/inspector-popover-header/style.scss +0 -13
- package/src/components/link-control/index.js +2 -5
- package/src/components/link-control/settings-drawer.js +1 -2
- package/src/components/list-view/block-contents.js +1 -28
- package/src/components/list-view/block-select-button.js +2 -5
- package/src/components/list-view/style.scss +18 -14
- package/src/components/media-placeholder/index.js +6 -12
- package/src/components/skip-to-selected-block/index.js +1 -2
- package/src/components/skip-to-selected-block/style.scss +0 -9
- package/src/components/tool-selector/index.js +14 -9
- package/src/components/tool-selector/style.scss +5 -0
- package/src/components/url-input/button.js +16 -12
- package/src/components/url-input/index.js +1 -2
- package/src/components/url-input/style.scss +0 -6
- package/src/components/use-block-commands/index.js +0 -58
- package/src/components/writing-flow/use-tab-nav.js +4 -36
- package/src/content.scss +0 -1
- package/src/hooks/duotone.js +4 -1
- package/src/hooks/layout-child.js +4 -1
- package/src/hooks/position.js +4 -1
- package/src/layouts/flex.js +10 -53
- package/src/store/actions.js +14 -13
- package/src/store/private-actions.js +14 -0
- package/src/store/private-selectors.js +120 -16
- package/src/store/reducer.js +22 -28
- package/src/store/selectors.js +203 -114
- package/src/store/test/private-actions.js +15 -0
- package/src/store/test/private-selectors.js +34 -0
- package/src/store/test/reducer.js +40 -4
- package/src/store/test/selectors.js +183 -20
- package/src/store/utils.js +4 -2
- package/src/utils/block-bindings.js +2 -0
- package/build/components/block-controls/use-has-block-controls.js +0 -43
- package/build/components/block-controls/use-has-block-controls.js.map +0 -1
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
- package/build/components/block-tools/block-selection-button.js +0 -259
- package/build/components/block-tools/block-selection-button.js.map +0 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
- package/build/components/inserter/tabs.js +0 -78
- package/build/components/inserter/tabs.js.map +0 -1
- package/build-module/components/block-controls/use-has-block-controls.js +0 -34
- package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
- package/build-module/components/block-tools/block-selection-button.js +0 -254
- package/build-module/components/block-tools/block-selection-button.js.map +0 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
- package/build-module/components/inserter/tabs.js +0 -72
- package/build-module/components/inserter/tabs.js.map +0 -1
- package/src/components/block-controls/use-has-block-controls.js +0 -35
- package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
- package/src/components/block-tools/block-selection-button.js +0 -302
- package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
- package/src/components/inner-blocks/content.scss +0 -13
- package/src/components/inserter/tabs.js +0 -78
- package/src/components/inserter/test/block-types-tab.native.js +0 -67
|
@@ -12,11 +12,11 @@ import { createSelector, createRegistrySelector } from '@wordpress/data';
|
|
|
12
12
|
/**
|
|
13
13
|
* Internal dependencies
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
15
|
+
import { isFiltered, checkAllowListRecursive, checkAllowList, getAllPatternsDependants, getInsertBlockTypeDependants, getParsedPattern, getGrammar } from './utils';
|
|
16
16
|
import { orderBy } from '../utils/sorting';
|
|
17
17
|
import { STORE_NAME } from './constants';
|
|
18
18
|
import { unlock } from '../lock-unlock';
|
|
19
|
-
import { getContentLockingParent, getTemporarilyEditingAsBlocks, getTemporarilyEditingFocusModeToRevert, getSectionRootClientId } from './private-selectors';
|
|
19
|
+
import { getContentLockingParent, getTemporarilyEditingAsBlocks, getTemporarilyEditingFocusModeToRevert, getSectionRootClientId, isSectionBlock, getParentSectionBlock } from './private-selectors';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* A block selection object.
|
|
@@ -55,7 +55,9 @@ const EMPTY_ARRAY = [];
|
|
|
55
55
|
* @type {Set}
|
|
56
56
|
*/
|
|
57
57
|
const EMPTY_SET = new Set();
|
|
58
|
-
const
|
|
58
|
+
const DEFAULT_INSERTER_OPTIONS = {
|
|
59
|
+
[isFiltered]: true
|
|
60
|
+
};
|
|
59
61
|
|
|
60
62
|
/**
|
|
61
63
|
* Returns a block's name given its client ID, or null if no block exists with
|
|
@@ -1255,8 +1257,7 @@ export function isCaretWithinFormattedText() {
|
|
|
1255
1257
|
}
|
|
1256
1258
|
|
|
1257
1259
|
/**
|
|
1258
|
-
* Returns the
|
|
1259
|
-
* be placed. Defaults to the last index.
|
|
1260
|
+
* Returns the location of the insertion cue. Defaults to the last index.
|
|
1260
1261
|
*
|
|
1261
1262
|
* @param {Object} state Editor state.
|
|
1262
1263
|
*
|
|
@@ -1265,13 +1266,13 @@ export function isCaretWithinFormattedText() {
|
|
|
1265
1266
|
export const getBlockInsertionPoint = createSelector(state => {
|
|
1266
1267
|
let rootClientId, index;
|
|
1267
1268
|
const {
|
|
1268
|
-
|
|
1269
|
+
insertionCue,
|
|
1269
1270
|
selection: {
|
|
1270
1271
|
selectionEnd
|
|
1271
1272
|
}
|
|
1272
1273
|
} = state;
|
|
1273
|
-
if (
|
|
1274
|
-
return
|
|
1274
|
+
if (insertionCue !== null) {
|
|
1275
|
+
return insertionCue;
|
|
1275
1276
|
}
|
|
1276
1277
|
const {
|
|
1277
1278
|
clientId
|
|
@@ -1286,17 +1287,17 @@ export const getBlockInsertionPoint = createSelector(state => {
|
|
|
1286
1287
|
rootClientId,
|
|
1287
1288
|
index
|
|
1288
1289
|
};
|
|
1289
|
-
}, state => [state.
|
|
1290
|
+
}, state => [state.insertionCue, state.selection.selectionEnd.clientId, state.blocks.parents, state.blocks.order]);
|
|
1290
1291
|
|
|
1291
1292
|
/**
|
|
1292
|
-
* Returns true if
|
|
1293
|
+
* Returns true if the block insertion point is visible.
|
|
1293
1294
|
*
|
|
1294
1295
|
* @param {Object} state Global application state.
|
|
1295
1296
|
*
|
|
1296
1297
|
* @return {?boolean} Whether the insertion point is visible or not.
|
|
1297
1298
|
*/
|
|
1298
1299
|
export function isBlockInsertionPointVisible(state) {
|
|
1299
|
-
return state.
|
|
1300
|
+
return state.insertionCue !== null;
|
|
1300
1301
|
}
|
|
1301
1302
|
|
|
1302
1303
|
/**
|
|
@@ -1338,6 +1339,52 @@ export function getTemplateLock(state, rootClientId) {
|
|
|
1338
1339
|
return (_getBlockListSettings = getBlockListSettings(state, rootClientId)?.templateLock) !== null && _getBlockListSettings !== void 0 ? _getBlockListSettings : false;
|
|
1339
1340
|
}
|
|
1340
1341
|
|
|
1342
|
+
/**
|
|
1343
|
+
* Determines if the given block type is visible in the inserter.
|
|
1344
|
+
* Note that this is different than whether a block is allowed to be inserted.
|
|
1345
|
+
* In some cases, the block is not allowed in a given position but
|
|
1346
|
+
* it should still be visible in the inserter to be able to add it
|
|
1347
|
+
* to a different position.
|
|
1348
|
+
*
|
|
1349
|
+
* @param {Object} state Editor state.
|
|
1350
|
+
* @param {string|Object} blockNameOrType The block type object, e.g., the response
|
|
1351
|
+
* from the block directory; or a string name of
|
|
1352
|
+
* an installed block type, e.g.' core/paragraph'.
|
|
1353
|
+
*
|
|
1354
|
+
* @return {boolean} Whether the given block type is allowed to be inserted.
|
|
1355
|
+
*/
|
|
1356
|
+
const isBlockVisibleInTheInserter = (state, blockNameOrType) => {
|
|
1357
|
+
let blockType;
|
|
1358
|
+
let blockName;
|
|
1359
|
+
if (blockNameOrType && 'object' === typeof blockNameOrType) {
|
|
1360
|
+
blockType = blockNameOrType;
|
|
1361
|
+
blockName = blockNameOrType.name;
|
|
1362
|
+
} else {
|
|
1363
|
+
blockType = getBlockType(blockNameOrType);
|
|
1364
|
+
blockName = blockNameOrType;
|
|
1365
|
+
}
|
|
1366
|
+
if (!blockType) {
|
|
1367
|
+
return false;
|
|
1368
|
+
}
|
|
1369
|
+
const {
|
|
1370
|
+
allowedBlockTypes
|
|
1371
|
+
} = getSettings(state);
|
|
1372
|
+
const isBlockAllowedInEditor = checkAllowList(allowedBlockTypes, blockName, true);
|
|
1373
|
+
if (!isBlockAllowedInEditor) {
|
|
1374
|
+
return false;
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
// If parent blocks are not visible, child blocks should be hidden too.
|
|
1378
|
+
if (!!blockType.parent?.length) {
|
|
1379
|
+
return blockType.parent.some(name => isBlockVisibleInTheInserter(state, name) ||
|
|
1380
|
+
// Exception for blocks with post-content parent,
|
|
1381
|
+
// the root level is often consider as "core/post-content".
|
|
1382
|
+
// This exception should only apply to the post editor ideally though.
|
|
1383
|
+
name === 'core/post-content');
|
|
1384
|
+
}
|
|
1385
|
+
return true;
|
|
1386
|
+
};
|
|
1387
|
+
|
|
1341
1388
|
/**
|
|
1342
1389
|
* Determines if the given block type is allowed to be inserted into the block list.
|
|
1343
1390
|
* This function is not exported and not memoized because using a memoized selector
|
|
@@ -1352,6 +1399,9 @@ export function getTemplateLock(state, rootClientId) {
|
|
|
1352
1399
|
* @return {boolean} Whether the given block type is allowed to be inserted.
|
|
1353
1400
|
*/
|
|
1354
1401
|
const canInsertBlockTypeUnmemoized = (state, blockName, rootClientId = null) => {
|
|
1402
|
+
if (!isBlockVisibleInTheInserter(state, blockName)) {
|
|
1403
|
+
return false;
|
|
1404
|
+
}
|
|
1355
1405
|
let blockType;
|
|
1356
1406
|
if (blockName && 'object' === typeof blockName) {
|
|
1357
1407
|
blockType = blockName;
|
|
@@ -1359,20 +1409,14 @@ const canInsertBlockTypeUnmemoized = (state, blockName, rootClientId = null) =>
|
|
|
1359
1409
|
} else {
|
|
1360
1410
|
blockType = getBlockType(blockName);
|
|
1361
1411
|
}
|
|
1362
|
-
if (!blockType) {
|
|
1363
|
-
return false;
|
|
1364
|
-
}
|
|
1365
|
-
const {
|
|
1366
|
-
allowedBlockTypes
|
|
1367
|
-
} = getSettings(state);
|
|
1368
|
-
const isBlockAllowedInEditor = checkAllowList(allowedBlockTypes, blockName, true);
|
|
1369
|
-
if (!isBlockAllowedInEditor) {
|
|
1370
|
-
return false;
|
|
1371
|
-
}
|
|
1372
1412
|
const isLocked = !!getTemplateLock(state, rootClientId);
|
|
1373
1413
|
if (isLocked) {
|
|
1374
1414
|
return false;
|
|
1375
1415
|
}
|
|
1416
|
+
const _isSectionBlock = !!isSectionBlock(state, rootClientId);
|
|
1417
|
+
if (_isSectionBlock) {
|
|
1418
|
+
return false;
|
|
1419
|
+
}
|
|
1376
1420
|
if (getBlockEditingMode(state, rootClientId !== null && rootClientId !== void 0 ? rootClientId : '') === 'disabled') {
|
|
1377
1421
|
return false;
|
|
1378
1422
|
}
|
|
@@ -1478,6 +1522,10 @@ export function canRemoveBlock(state, clientId) {
|
|
|
1478
1522
|
if (getTemplateLock(state, rootClientId)) {
|
|
1479
1523
|
return false;
|
|
1480
1524
|
}
|
|
1525
|
+
const isBlockWithinSection = !!getParentSectionBlock(state, clientId);
|
|
1526
|
+
if (isBlockWithinSection) {
|
|
1527
|
+
return false;
|
|
1528
|
+
}
|
|
1481
1529
|
return getBlockEditingMode(state, rootClientId) !== 'disabled';
|
|
1482
1530
|
}
|
|
1483
1531
|
|
|
@@ -1701,6 +1749,7 @@ const buildBlockTypeItem = (state, {
|
|
|
1701
1749
|
description: blockType.description,
|
|
1702
1750
|
category: blockType.category,
|
|
1703
1751
|
keywords: blockType.keywords,
|
|
1752
|
+
parent: blockType.parent,
|
|
1704
1753
|
variations: inserterVariations,
|
|
1705
1754
|
example: blockType.example,
|
|
1706
1755
|
utility: 1 // Deprecated.
|
|
@@ -1736,7 +1785,7 @@ const buildBlockTypeItem = (state, {
|
|
|
1736
1785
|
* this item.
|
|
1737
1786
|
* @property {number} frecency Heuristic that combines frequency and recency.
|
|
1738
1787
|
*/
|
|
1739
|
-
export const getInserterItems = createRegistrySelector(select => createSelector((state, rootClientId = null, options =
|
|
1788
|
+
export const getInserterItems = createRegistrySelector(select => createSelector((state, rootClientId = null, options = DEFAULT_INSERTER_OPTIONS) => {
|
|
1740
1789
|
const buildReusableBlockInserterItem = reusableBlock => {
|
|
1741
1790
|
const icon = !reusableBlock.wp_pattern_sync_status ? {
|
|
1742
1791
|
src: symbol,
|
|
@@ -1771,35 +1820,13 @@ export const getInserterItems = createRegistrySelector(select => createSelector(
|
|
|
1771
1820
|
buildScope: 'inserter'
|
|
1772
1821
|
});
|
|
1773
1822
|
let blockTypeInserterItems = getBlockTypes().filter(blockType => hasBlockSupport(blockType, 'inserter', true)).map(buildBlockTypeInserterItem);
|
|
1774
|
-
if (options[
|
|
1775
|
-
blockTypeInserterItems = blockTypeInserterItems.reduce((accumulator, item) => {
|
|
1776
|
-
item.rootClientId = rootClientId !== null && rootClientId !== void 0 ? rootClientId : '';
|
|
1777
|
-
while (!canInsertBlockTypeUnmemoized(state, item.name, item.rootClientId)) {
|
|
1778
|
-
if (!item.rootClientId) {
|
|
1779
|
-
let sectionRootClientId;
|
|
1780
|
-
try {
|
|
1781
|
-
sectionRootClientId = getSectionRootClientId(state);
|
|
1782
|
-
} catch (e) {}
|
|
1783
|
-
if (sectionRootClientId && canInsertBlockTypeUnmemoized(state, item.name, sectionRootClientId)) {
|
|
1784
|
-
item.rootClientId = sectionRootClientId;
|
|
1785
|
-
} else {
|
|
1786
|
-
delete item.rootClientId;
|
|
1787
|
-
}
|
|
1788
|
-
break;
|
|
1789
|
-
} else {
|
|
1790
|
-
const parentClientId = getBlockRootClientId(state, item.rootClientId);
|
|
1791
|
-
item.rootClientId = parentClientId;
|
|
1792
|
-
}
|
|
1793
|
-
}
|
|
1794
|
-
|
|
1795
|
-
// We could also add non insertable items and gray them out.
|
|
1796
|
-
if (item.hasOwnProperty('rootClientId')) {
|
|
1797
|
-
accumulator.push(item);
|
|
1798
|
-
}
|
|
1799
|
-
return accumulator;
|
|
1800
|
-
}, []);
|
|
1801
|
-
} else {
|
|
1823
|
+
if (options[isFiltered] !== false) {
|
|
1802
1824
|
blockTypeInserterItems = blockTypeInserterItems.filter(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId));
|
|
1825
|
+
} else {
|
|
1826
|
+
blockTypeInserterItems = blockTypeInserterItems.filter(blockType => isBlockVisibleInTheInserter(state, blockType)).map(blockType => ({
|
|
1827
|
+
...blockType,
|
|
1828
|
+
isAllowedInCurrentRoot: canIncludeBlockTypeInInserter(state, blockType, rootClientId)
|
|
1829
|
+
}));
|
|
1803
1830
|
}
|
|
1804
1831
|
const items = blockTypeInserterItems.reduce((accumulator, item) => {
|
|
1805
1832
|
const {
|
|
@@ -1980,7 +2007,7 @@ const getAllowedPatternsDependants = select => (state, rootClientId) => [...getA
|
|
|
1980
2007
|
* @return {Array?} The list of allowed patterns.
|
|
1981
2008
|
*/
|
|
1982
2009
|
export const __experimentalGetAllowedPatterns = createRegistrySelector(select => {
|
|
1983
|
-
return createSelector((state, rootClientId = null) => {
|
|
2010
|
+
return createSelector((state, rootClientId = null, options = DEFAULT_INSERTER_OPTIONS) => {
|
|
1984
2011
|
const {
|
|
1985
2012
|
getAllPatterns
|
|
1986
2013
|
} = unlock(select(STORE_NAME));
|
|
@@ -2001,7 +2028,7 @@ export const __experimentalGetAllowedPatterns = createRegistrySelector(select =>
|
|
|
2001
2028
|
const availableParsedPatterns = parsedPatterns.filter(pattern => checkAllowListRecursive(getGrammar(pattern), allowedBlockTypes));
|
|
2002
2029
|
const patternsAllowed = availableParsedPatterns.filter(pattern => getGrammar(pattern).every(({
|
|
2003
2030
|
blockName: name
|
|
2004
|
-
}) => canInsertBlockType(state, name, rootClientId)));
|
|
2031
|
+
}) => options[isFiltered] !== false ? canInsertBlockType(state, name, rootClientId) : isBlockVisibleInTheInserter(state, name)));
|
|
2005
2032
|
return patternsAllowed;
|
|
2006
2033
|
}, getAllowedPatternsDependants(select));
|
|
2007
2034
|
});
|
|
@@ -2221,12 +2248,14 @@ export function __unstableGetEditorMode(state) {
|
|
|
2221
2248
|
/**
|
|
2222
2249
|
* Returns whether block moving mode is enabled.
|
|
2223
2250
|
*
|
|
2224
|
-
* @
|
|
2225
|
-
*
|
|
2226
|
-
* @return {string} Client Id of moving block.
|
|
2251
|
+
* @deprecated
|
|
2227
2252
|
*/
|
|
2228
|
-
export function hasBlockMovingClientId(
|
|
2229
|
-
|
|
2253
|
+
export function hasBlockMovingClientId() {
|
|
2254
|
+
deprecated('wp.data.select( "core/block-editor" ).hasBlockMovingClientId', {
|
|
2255
|
+
since: '6.7',
|
|
2256
|
+
hint: 'Block moving mode feature has been removed'
|
|
2257
|
+
});
|
|
2258
|
+
return false;
|
|
2230
2259
|
}
|
|
2231
2260
|
|
|
2232
2261
|
/**
|
|
@@ -2377,7 +2406,7 @@ export function __unstableHasActiveBlockOverlayActive(state, clientId) {
|
|
|
2377
2406
|
// (reusable block, template part, navigation), unless explicitly disabled
|
|
2378
2407
|
// with `supports.__experimentalDisableBlockOverlay`.
|
|
2379
2408
|
const blockSupportDisable = hasBlockSupport(getBlockName(state, clientId), '__experimentalDisableBlockOverlay', false);
|
|
2380
|
-
const shouldEnableIfUnselected =
|
|
2409
|
+
const shouldEnableIfUnselected = blockSupportDisable ? false : areInnerBlocksControlled(state, clientId);
|
|
2381
2410
|
return shouldEnableIfUnselected && !isBlockSelected(state, clientId) && !hasSelectedInnerBlock(state, clientId, true);
|
|
2382
2411
|
}
|
|
2383
2412
|
export function __unstableIsWithinBlockOverlay(state, clientId) {
|
|
@@ -2390,6 +2419,13 @@ export function __unstableIsWithinBlockOverlay(state, clientId) {
|
|
|
2390
2419
|
}
|
|
2391
2420
|
return false;
|
|
2392
2421
|
}
|
|
2422
|
+
function isWithinBlock(state, clientId, parentClientId) {
|
|
2423
|
+
let parent = state.blocks.parents.get(clientId);
|
|
2424
|
+
while (!!parent && parent !== parentClientId) {
|
|
2425
|
+
parent = state.blocks.parents.get(parent);
|
|
2426
|
+
}
|
|
2427
|
+
return parent === parentClientId;
|
|
2428
|
+
}
|
|
2393
2429
|
|
|
2394
2430
|
/**
|
|
2395
2431
|
* @typedef {import('../components/block-editing-mode').BlockEditingMode} BlockEditingMode
|
|
@@ -2450,15 +2486,49 @@ export const getBlockEditingMode = createRegistrySelector(select => (state, clie
|
|
|
2450
2486
|
}
|
|
2451
2487
|
return 'disabled';
|
|
2452
2488
|
}
|
|
2489
|
+
if (editorMode === 'navigation') {
|
|
2490
|
+
const sectionRootClientId = getSectionRootClientId(state);
|
|
2491
|
+
|
|
2492
|
+
// The root section is "default mode"
|
|
2493
|
+
if (clientId === sectionRootClientId) {
|
|
2494
|
+
return 'default';
|
|
2495
|
+
}
|
|
2496
|
+
|
|
2497
|
+
// Sections should always be contentOnly in navigation mode.
|
|
2498
|
+
const sectionsClientIds = getBlockOrder(state, sectionRootClientId);
|
|
2499
|
+
if (sectionsClientIds.includes(clientId)) {
|
|
2500
|
+
return 'contentOnly';
|
|
2501
|
+
}
|
|
2502
|
+
|
|
2503
|
+
// Blocks outside sections should be disabled.
|
|
2504
|
+
const isWithinSectionRoot = isWithinBlock(state, clientId, sectionRootClientId);
|
|
2505
|
+
if (!isWithinSectionRoot) {
|
|
2506
|
+
return 'disabled';
|
|
2507
|
+
}
|
|
2508
|
+
|
|
2509
|
+
// The rest of the blocks depend on whether they are content blocks or not.
|
|
2510
|
+
// This "flattens" the sections tree.
|
|
2511
|
+
const name = getBlockName(state, clientId);
|
|
2512
|
+
const {
|
|
2513
|
+
hasContentRoleAttribute
|
|
2514
|
+
} = unlock(select(blocksStore));
|
|
2515
|
+
const isContent = hasContentRoleAttribute(name);
|
|
2516
|
+
return isContent ? 'contentOnly' : 'disabled';
|
|
2517
|
+
}
|
|
2518
|
+
|
|
2519
|
+
// In normal mode, consider that an explicitely set editing mode takes over.
|
|
2453
2520
|
const blockEditingMode = state.blockEditingModes.get(clientId);
|
|
2454
2521
|
if (blockEditingMode) {
|
|
2455
2522
|
return blockEditingMode;
|
|
2456
2523
|
}
|
|
2524
|
+
|
|
2525
|
+
// In normal mode, top level is default mode.
|
|
2457
2526
|
if (!clientId) {
|
|
2458
2527
|
return 'default';
|
|
2459
2528
|
}
|
|
2460
2529
|
const rootClientId = getBlockRootClientId(state, clientId);
|
|
2461
2530
|
const templateLock = getTemplateLock(state, rootClientId);
|
|
2531
|
+
// If the parent of the block is contentOnly locked, check whether it's a content block.
|
|
2462
2532
|
if (templateLock === 'contentOnly') {
|
|
2463
2533
|
const name = getBlockName(state, clientId);
|
|
2464
2534
|
const {
|
|
@@ -2467,6 +2537,7 @@ export const getBlockEditingMode = createRegistrySelector(select => (state, clie
|
|
|
2467
2537
|
const isContent = hasContentRoleAttribute(name);
|
|
2468
2538
|
return isContent ? 'contentOnly' : 'disabled';
|
|
2469
2539
|
}
|
|
2540
|
+
// Otherwise, check if there's an ancestor that is contentOnly
|
|
2470
2541
|
const parentMode = getBlockEditingMode(state, rootClientId);
|
|
2471
2542
|
return parentMode === 'contentOnly' ? 'default' : parentMode;
|
|
2472
2543
|
});
|