@wordpress/block-editor 8.4.0 → 8.5.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 +56 -19
- package/build/components/alignment-control/index.js +13 -6
- package/build/components/alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/index.js +13 -6
- package/build/components/block-alignment-control/index.js.map +1 -1
- package/build/components/block-draggable/index.js +2 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-icon/index.js +4 -0
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +1 -6
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +14 -17
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js +7 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build/components/block-list-appender/index.js +6 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-lock/menu-item.js +9 -0
- package/build/components/block-lock/menu-item.js.map +1 -1
- package/build/components/block-lock/modal.js +4 -13
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +11 -3
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/index.js +4 -0
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +50 -5
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +2 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +1 -1
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/block-name-context.js +17 -0
- package/build/components/block-toolbar/block-name-context.js.map +1 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js +20 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build/components/block-toolbar/index.js +20 -5
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/index.js +0 -16
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +92 -47
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/index.js +13 -6
- package/build/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build/components/contrast-checker/index.js +4 -0
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +8 -0
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +105 -0
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build/components/copy-handler/index.js +4 -0
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/font-sizes/font-size-picker.js +4 -0
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/iframe/index.js +6 -9
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.js +18 -0
- package/build/components/index.js.map +1 -1
- package/build/components/justify-content-control/index.js +13 -6
- package/build/components/justify-content-control/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/line-height-control/index.js +10 -3
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +25 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +5 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +1 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/media-replace-flow/index.js +4 -0
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +1 -1
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/rich-text/index.js +26 -4
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/split-value.js +12 -2
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/use-firefox-compat.js +49 -0
- package/build/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +34 -2
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -0
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/writing-flow/index.js +9 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +3 -44
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js +68 -0
- package/build/components/writing-flow/use-click-selection.js.map +1 -0
- package/build/components/writing-flow/use-drag-selection.js +134 -0
- package/build/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build/components/writing-flow/use-input.js +116 -0
- package/build/components/writing-flow/use-input.js.map +1 -0
- package/build/components/writing-flow/use-multi-selection.js +18 -38
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +161 -0
- package/build/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build/components/writing-flow/use-tab-nav.js +1 -8
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/border-color.js +3 -3
- package/build/hooks/border-color.js.map +1 -1
- package/build/hooks/border.js +0 -14
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +20 -17
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/font-family.js +5 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +4 -2
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +23 -16
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/layout.js +7 -2
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/style.js +34 -3
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +29 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/flex.js +76 -12
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +9 -4
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +297 -51
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +5 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +25 -13
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +142 -18
- package/build/store/selectors.js.map +1 -1
- package/build/utils/dom.js +2 -1
- package/build/utils/dom.js.map +1 -1
- package/build-module/components/alignment-control/index.js +12 -4
- package/build-module/components/alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/index.js +12 -4
- package/build-module/components/block-alignment-control/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +2 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-icon/index.js +4 -0
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -4
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +15 -17
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js +7 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +6 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-lock/menu-item.js +9 -0
- package/build-module/components/block-lock/menu-item.js.map +1 -1
- package/build-module/components/block-lock/modal.js +5 -14
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +11 -3
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -0
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +50 -7
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-switcher/index.js +2 -2
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +2 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +1 -1
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/block-name-context.js +9 -0
- package/build-module/components/block-toolbar/block-name-context.js.map +1 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js +11 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +16 -4
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/index.js +0 -16
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +95 -49
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/index.js +12 -4
- package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +4 -0
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +2 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +90 -0
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build-module/components/copy-handler/index.js +4 -0
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/font-sizes/font-size-picker.js +4 -0
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/iframe/index.js +6 -9
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.js +2 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/justify-content-control/index.js +12 -4
- package/build-module/components/justify-content-control/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +9 -2
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +22 -6
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +5 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +4 -0
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +2 -2
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +25 -4
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/split-value.js +12 -2
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/use-firefox-compat.js +39 -0
- package/build-module/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +35 -4
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -0
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +5 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -45
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js +57 -0
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-drag-selection.js +124 -0
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-input.js +104 -0
- package/build-module/components/writing-flow/use-input.js.map +1 -0
- package/build-module/components/writing-flow/use-multi-selection.js +18 -37
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +150 -0
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build-module/components/writing-flow/use-tab-nav.js +1 -9
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/border-color.js +5 -5
- package/build-module/hooks/border-color.js.map +1 -1
- package/build-module/hooks/border.js +0 -12
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +19 -18
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +4 -3
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +22 -15
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +7 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/style.js +33 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +26 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/flex.js +76 -13
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +9 -5
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +286 -49
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +5 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +25 -13
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +138 -19
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/dom.js +2 -1
- package/build-module/utils/dom.js.map +1 -1
- package/build-style/style-rtl.css +107 -74
- package/build-style/style.css +107 -74
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +28 -28
- package/src/components/alignment-control/index.js +9 -4
- package/src/components/block-alignment-control/index.js +9 -4
- package/src/components/block-draggable/index.js +2 -5
- package/src/components/block-icon/index.js +3 -0
- package/src/components/block-inspector/index.js +4 -0
- package/src/components/block-list/style.scss +4 -5
- package/src/components/block-list/use-block-props/index.js +0 -5
- package/src/components/block-list/use-block-props/use-focus-first-element.js +19 -26
- package/src/components/block-list/use-block-props/use-focus-handler.js +8 -0
- package/src/components/block-list-appender/index.js +5 -0
- package/src/components/block-lock/menu-item.js +8 -1
- package/src/components/block-lock/modal.js +18 -13
- package/src/components/block-lock/style.scss +6 -3
- package/src/components/block-lock/toolbar.js +12 -2
- package/src/components/block-mover/index.js +3 -0
- package/src/components/block-mover/style.scss +4 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +62 -4
- package/src/components/block-switcher/index.js +2 -2
- package/src/components/block-switcher/style.scss +8 -1
- package/src/components/block-switcher/test/index.js +2 -2
- package/src/components/block-title/index.js +2 -2
- package/src/components/block-title/use-block-display-title.js +1 -1
- package/src/components/block-toolbar/block-name-context.js +8 -0
- package/src/components/block-toolbar/block-toolbar-last-item.js +12 -0
- package/src/components/block-toolbar/index.js +18 -2
- package/src/components/block-toolbar/style.scss +6 -0
- package/src/components/block-tools/index.js +0 -19
- package/src/components/block-tools/style.scss +3 -5
- package/src/components/block-variation-transforms/index.js +105 -36
- package/src/components/block-variation-transforms/style.scss +1 -1
- package/src/components/block-vertical-alignment-control/index.js +9 -4
- package/src/components/button-block-appender/style.scss +5 -1
- package/src/components/contrast-checker/index.js +3 -0
- package/src/components/convert-to-group-buttons/index.js +6 -1
- package/src/components/convert-to-group-buttons/toolbar.js +87 -0
- package/src/components/copy-handler/index.js +3 -0
- package/src/components/font-sizes/font-size-picker.js +3 -0
- package/src/components/iframe/index.js +5 -7
- package/src/components/index.js +2 -0
- package/src/components/justify-content-control/index.js +9 -4
- package/src/components/keyboard-shortcuts/index.js +1 -1
- package/src/components/line-height-control/index.js +8 -3
- package/src/components/list-view/block-select-button.js +21 -3
- package/src/components/list-view/block.js +8 -1
- package/src/components/list-view/branch.js +1 -1
- package/src/components/list-view/style.scss +56 -14
- package/src/components/media-placeholder/README.md +8 -0
- package/src/components/media-replace-flow/index.js +3 -0
- package/src/components/multi-selection-inspector/index.js +2 -2
- package/src/components/rich-text/index.js +24 -1
- package/src/components/rich-text/split-value.js +5 -1
- package/src/components/rich-text/use-firefox-compat.js +39 -0
- package/src/components/rich-text/use-input-rules.js +40 -3
- package/src/components/skip-to-selected-block/index.js +3 -0
- package/src/components/url-input/style.scss +3 -2
- package/src/components/writing-flow/index.js +8 -0
- package/src/components/writing-flow/readme.md +28 -0
- package/src/components/writing-flow/use-arrow-nav.js +4 -53
- package/src/components/writing-flow/use-click-selection.js +65 -0
- package/src/components/writing-flow/use-drag-selection.js +126 -0
- package/src/components/writing-flow/use-input.js +112 -0
- package/src/components/writing-flow/use-multi-selection.js +13 -36
- package/src/components/writing-flow/use-selection-observer.js +153 -0
- package/src/components/writing-flow/use-tab-nav.js +1 -11
- package/src/hooks/border-color.js +5 -5
- package/src/hooks/border.js +0 -13
- package/src/hooks/color.js +51 -24
- package/src/hooks/font-family.js +5 -2
- package/src/hooks/font-size.js +10 -7
- package/src/hooks/gap.js +25 -17
- package/src/hooks/layout.js +11 -1
- package/src/hooks/style.js +40 -4
- package/src/hooks/test/gap.js +25 -1
- package/src/hooks/test/style.js +94 -0
- package/src/hooks/test/utils.js +1 -1
- package/src/hooks/utils.js +26 -0
- package/src/layouts/flex.js +89 -5
- package/src/layouts/flow.js +15 -4
- package/src/store/actions.js +349 -32
- package/src/store/defaults.js +7 -2
- package/src/store/reducer.js +25 -10
- package/src/store/selectors.js +181 -24
- package/src/store/test/selectors.js +242 -5
- package/src/utils/dom.js +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-list/use-block-props/use-multi-selection.js +0 -205
- package/build/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build/components/block-list/use-block-props/use-scroll-into-view.js +0 -77
- package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +0 -192
- package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +0 -63
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/src/components/block-list/use-block-props/use-multi-selection.js +0 -227
- package/src/components/block-list/use-block-props/use-scroll-into-view.js +0 -73
package/build/store/selectors.js
CHANGED
|
@@ -8,10 +8,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.__experimentalGetGlobalBlocksByName = exports.__experimentalGetDirectInsertBlock = exports.__experimentalGetBlockListSettingsForBlocks = exports.__experimentalGetAllowedPatterns = exports.__experimentalGetAllowedBlocks = exports.__experimentalGetActiveBlockIdByBlockNames = void 0;
|
|
9
9
|
exports.__experimentalGetLastBlockAttributeChanges = __experimentalGetLastBlockAttributeChanges;
|
|
10
10
|
exports.__unstableGetClientIdsTree = exports.__unstableGetClientIdWithClientIdsTree = exports.__unstableGetBlockWithoutInnerBlocks = exports.__experimentalGetReusableBlockTitle = exports.__experimentalGetPatternsByBlockTypes = exports.__experimentalGetPatternTransformItems = exports.__experimentalGetParsedPattern = void 0;
|
|
11
|
+
exports.__unstableIsFullySelected = __unstableIsFullySelected;
|
|
11
12
|
exports.__unstableIsLastBlockChangeIgnored = __unstableIsLastBlockChangeIgnored;
|
|
13
|
+
exports.__unstableIsSelectionMergeable = __unstableIsSelectionMergeable;
|
|
12
14
|
exports.areInnerBlocksControlled = areInnerBlocksControlled;
|
|
13
15
|
exports.canInsertBlockType = void 0;
|
|
14
16
|
exports.canInsertBlocks = canInsertBlocks;
|
|
17
|
+
exports.canLockBlockType = canLockBlockType;
|
|
15
18
|
exports.canMoveBlock = canMoveBlock;
|
|
16
19
|
exports.canMoveBlocks = canMoveBlocks;
|
|
17
20
|
exports.canRemoveBlock = canRemoveBlock;
|
|
@@ -93,6 +96,8 @@ var _hooks = require("@wordpress/hooks");
|
|
|
93
96
|
|
|
94
97
|
var _icons = require("@wordpress/icons");
|
|
95
98
|
|
|
99
|
+
var _i18n = require("@wordpress/i18n");
|
|
100
|
+
|
|
96
101
|
/**
|
|
97
102
|
* External dependencies
|
|
98
103
|
*/
|
|
@@ -282,8 +287,9 @@ const __unstableGetClientIdsTree = (0, _rememo.default)(function (state) {
|
|
|
282
287
|
return (0, _lodash.map)(getBlockOrder(state, rootClientId), clientId => __unstableGetClientIdWithClientIdsTree(state, clientId));
|
|
283
288
|
}, state => [state.blocks.order]);
|
|
284
289
|
/**
|
|
285
|
-
* Returns an array containing the clientIds of all descendants
|
|
286
|
-
* of the
|
|
290
|
+
* Returns an array containing the clientIds of all descendants of the blocks
|
|
291
|
+
* given. Returned ids are ordered first by the order of the ids given, then
|
|
292
|
+
* by the order that they appear in the editor.
|
|
287
293
|
*
|
|
288
294
|
* @param {Object} state Global application state.
|
|
289
295
|
* @param {Array} clientIds Array of blocks to inspect.
|
|
@@ -293,25 +299,36 @@ const __unstableGetClientIdsTree = (0, _rememo.default)(function (state) {
|
|
|
293
299
|
|
|
294
300
|
|
|
295
301
|
exports.__unstableGetClientIdsTree = __unstableGetClientIdsTree;
|
|
302
|
+
const getClientIdsOfDescendants = (0, _rememo.default)((state, clientIds) => {
|
|
303
|
+
const collectedIds = [];
|
|
296
304
|
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
}
|
|
305
|
+
for (const givenId of clientIds) {
|
|
306
|
+
for (const descendantId of getBlockOrder(state, givenId)) {
|
|
307
|
+
collectedIds.push(descendantId, ...getClientIdsOfDescendants(state, [descendantId]));
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
return collectedIds;
|
|
312
|
+
}, state => [state.blocks.order]);
|
|
301
313
|
/**
|
|
302
|
-
* Returns an array containing the clientIds of the top-level blocks
|
|
303
|
-
*
|
|
314
|
+
* Returns an array containing the clientIds of the top-level blocks and
|
|
315
|
+
* their descendants of any depth (for nested blocks). Ids are returned
|
|
316
|
+
* in the same order that they appear in the editor.
|
|
304
317
|
*
|
|
305
318
|
* @param {Object} state Global application state.
|
|
306
319
|
*
|
|
307
320
|
* @return {Array} ids of top-level and descendant blocks.
|
|
308
321
|
*/
|
|
309
322
|
|
|
310
|
-
|
|
311
323
|
exports.getClientIdsOfDescendants = getClientIdsOfDescendants;
|
|
312
324
|
const getClientIdsWithDescendants = (0, _rememo.default)(state => {
|
|
313
|
-
const
|
|
314
|
-
|
|
325
|
+
const collectedIds = [];
|
|
326
|
+
|
|
327
|
+
for (const topLevelId of getBlockOrder(state)) {
|
|
328
|
+
collectedIds.push(topLevelId, ...getClientIdsOfDescendants(state, [topLevelId]));
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return collectedIds;
|
|
315
332
|
}, state => [state.blocks.order]);
|
|
316
333
|
/**
|
|
317
334
|
* Returns the total number of blocks, or the total number of blocks with a specific name in a post.
|
|
@@ -968,6 +985,72 @@ function getMultiSelectedBlocksEndClientId(state) {
|
|
|
968
985
|
|
|
969
986
|
return selectionEnd.clientId || null;
|
|
970
987
|
}
|
|
988
|
+
/**
|
|
989
|
+
* Returns true if the selection is not partial.
|
|
990
|
+
*
|
|
991
|
+
* @param {Object} state Editor state.
|
|
992
|
+
*
|
|
993
|
+
* @return {boolean} Whether the selection is mergeable.
|
|
994
|
+
*/
|
|
995
|
+
|
|
996
|
+
|
|
997
|
+
function __unstableIsFullySelected(state) {
|
|
998
|
+
const selectionAnchor = getSelectionStart(state);
|
|
999
|
+
const selectionFocus = getSelectionEnd(state);
|
|
1000
|
+
return !selectionAnchor.attributeKey && !selectionFocus.attributeKey && typeof selectionAnchor.offset === 'undefined' && typeof selectionFocus.offset === 'undefined';
|
|
1001
|
+
}
|
|
1002
|
+
/**
|
|
1003
|
+
* Check whether the selection is mergeable.
|
|
1004
|
+
*
|
|
1005
|
+
* @param {Object} state Editor state.
|
|
1006
|
+
* @param {boolean} isForward Whether to merge forwards.
|
|
1007
|
+
*
|
|
1008
|
+
* @return {boolean} Whether the selection is mergeable.
|
|
1009
|
+
*/
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
function __unstableIsSelectionMergeable(state, isForward) {
|
|
1013
|
+
const selectionAnchor = getSelectionStart(state);
|
|
1014
|
+
const selectionFocus = getSelectionEnd(state); // It's not mergeable if the start and end are within the same block.
|
|
1015
|
+
|
|
1016
|
+
if (selectionAnchor.clientId === selectionFocus.clientId) return false; // It's not mergeable if there's no rich text selection.
|
|
1017
|
+
|
|
1018
|
+
if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return false;
|
|
1019
|
+
const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId);
|
|
1020
|
+
const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); // It's not mergeable if the selection doesn't start and end in the same
|
|
1021
|
+
// block list. Maybe in the future it should be allowed.
|
|
1022
|
+
|
|
1023
|
+
if (anchorRootClientId !== focusRootClientId) {
|
|
1024
|
+
return false;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
const blockOrder = getBlockOrder(state, anchorRootClientId);
|
|
1028
|
+
const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId);
|
|
1029
|
+
const focusIndex = blockOrder.indexOf(selectionFocus.clientId); // Reassign selection start and end based on order.
|
|
1030
|
+
|
|
1031
|
+
let selectionStart, selectionEnd;
|
|
1032
|
+
|
|
1033
|
+
if (anchorIndex > focusIndex) {
|
|
1034
|
+
selectionStart = selectionFocus;
|
|
1035
|
+
selectionEnd = selectionAnchor;
|
|
1036
|
+
} else {
|
|
1037
|
+
selectionStart = selectionAnchor;
|
|
1038
|
+
selectionEnd = selectionFocus;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
const targetBlockClientId = isForward ? selectionEnd.clientId : selectionStart.clientId;
|
|
1042
|
+
const blockToMergeClientId = isForward ? selectionStart.clientId : selectionEnd.clientId;
|
|
1043
|
+
const targetBlock = getBlock(state, targetBlockClientId);
|
|
1044
|
+
const targetBlockType = (0, _blocks.getBlockType)(targetBlock.name);
|
|
1045
|
+
if (!targetBlockType.merge) return false;
|
|
1046
|
+
const blockToMerge = getBlock(state, blockToMergeClientId); // It's mergeable if the blocks are of the same type.
|
|
1047
|
+
|
|
1048
|
+
if (blockToMerge.name === targetBlock.name) return true; // If the blocks are of a different type, try to transform the block being
|
|
1049
|
+
// merged into the same type of block.
|
|
1050
|
+
|
|
1051
|
+
const blocksToMerge = (0, _blocks.switchToBlockType)(blockToMerge, targetBlock.name);
|
|
1052
|
+
return blocksToMerge && blocksToMerge.length;
|
|
1053
|
+
}
|
|
971
1054
|
/**
|
|
972
1055
|
* Returns an array containing all block client IDs in the editor in the order
|
|
973
1056
|
* they appear. Optionally accepts a root client ID of the block list for which
|
|
@@ -1380,7 +1463,15 @@ const canInsertBlockTypeUnmemoized = function (state, blockName) {
|
|
|
1380
1463
|
const blockAllowedParentBlocks = blockType.parent;
|
|
1381
1464
|
const parentName = getBlockName(state, rootClientId);
|
|
1382
1465
|
const hasBlockAllowedParent = checkAllowList(blockAllowedParentBlocks, parentName);
|
|
1383
|
-
|
|
1466
|
+
let hasBlockAllowedAncestor = true;
|
|
1467
|
+
const blockAllowedAncestorBlocks = blockType.ancestor;
|
|
1468
|
+
|
|
1469
|
+
if (blockAllowedAncestorBlocks) {
|
|
1470
|
+
const ancestors = [rootClientId, ...getBlockParents(state, rootClientId)];
|
|
1471
|
+
hasBlockAllowedAncestor = (0, _lodash.some)(ancestors, ancestorClientId => checkAllowList(blockAllowedAncestorBlocks, getBlockName(state, ancestorClientId)));
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
const canInsert = hasBlockAllowedAncestor && (hasParentAllowedBlock === null && hasBlockAllowedParent === null || hasParentAllowedBlock === true || hasBlockAllowedParent === true);
|
|
1384
1475
|
|
|
1385
1476
|
if (!canInsert) {
|
|
1386
1477
|
return canInsert;
|
|
@@ -1528,6 +1619,26 @@ function canMoveBlocks(state, clientIds) {
|
|
|
1528
1619
|
let rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1529
1620
|
return clientIds.every(clientId => canMoveBlock(state, clientId, rootClientId));
|
|
1530
1621
|
}
|
|
1622
|
+
/**
|
|
1623
|
+
* Determines if the given block type can be locked/unlocked by a user.
|
|
1624
|
+
*
|
|
1625
|
+
* @param {Object} state Editor state.
|
|
1626
|
+
* @param {(string|Object)} nameOrType Block name or type object.
|
|
1627
|
+
*
|
|
1628
|
+
* @return {boolean} Whether a given block type can be locked/unlocked.
|
|
1629
|
+
*/
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
function canLockBlockType(state, nameOrType) {
|
|
1633
|
+
var _state$settings;
|
|
1634
|
+
|
|
1635
|
+
if (!(0, _blocks.hasBlockSupport)(nameOrType, 'lock', true)) {
|
|
1636
|
+
return false;
|
|
1637
|
+
} // Use block editor settings as the default value.
|
|
1638
|
+
|
|
1639
|
+
|
|
1640
|
+
return !!((_state$settings = state.settings) !== null && _state$settings !== void 0 && _state$settings.canLockBlocks);
|
|
1641
|
+
}
|
|
1531
1642
|
/**
|
|
1532
1643
|
* Returns information about how recently and frequently a block has been inserted.
|
|
1533
1644
|
*
|
|
@@ -1858,7 +1969,10 @@ const getInserterItems = (0, _rememo.default)(function (state) {
|
|
|
1858
1969
|
|
|
1859
1970
|
exports.getInserterItems = getInserterItems;
|
|
1860
1971
|
const getBlockTransformItems = (0, _rememo.default)(function (state, blocks) {
|
|
1972
|
+
var _itemsByName$sourceBl;
|
|
1973
|
+
|
|
1861
1974
|
let rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1975
|
+
const [sourceBlock] = blocks;
|
|
1862
1976
|
const buildBlockTypeTransformItem = buildBlockTypeItem(state, {
|
|
1863
1977
|
buildScope: 'transform'
|
|
1864
1978
|
});
|
|
@@ -1868,16 +1982,26 @@ const getBlockTransformItems = (0, _rememo.default)(function (state, blocks) {
|
|
|
1868
1982
|
name
|
|
1869
1983
|
} = _ref5;
|
|
1870
1984
|
return name;
|
|
1871
|
-
});
|
|
1985
|
+
}); // Consider unwraping the highest priority.
|
|
1986
|
+
|
|
1987
|
+
itemsByName['*'] = {
|
|
1988
|
+
frecency: +Infinity,
|
|
1989
|
+
id: '*',
|
|
1990
|
+
isDisabled: false,
|
|
1991
|
+
name: '*',
|
|
1992
|
+
title: (0, _i18n.__)('Unwrap'),
|
|
1993
|
+
icon: (_itemsByName$sourceBl = itemsByName[sourceBlock.name]) === null || _itemsByName$sourceBl === void 0 ? void 0 : _itemsByName$sourceBl.icon
|
|
1994
|
+
};
|
|
1872
1995
|
const possibleTransforms = (0, _blocks.getPossibleBlockTransformations)(blocks).reduce((accumulator, block) => {
|
|
1873
|
-
if (
|
|
1996
|
+
if (block === '*') {
|
|
1997
|
+
accumulator.push(itemsByName['*']);
|
|
1998
|
+
} else if (itemsByName[block === null || block === void 0 ? void 0 : block.name]) {
|
|
1874
1999
|
accumulator.push(itemsByName[block.name]);
|
|
1875
2000
|
}
|
|
1876
2001
|
|
|
1877
2002
|
return accumulator;
|
|
1878
2003
|
}, []);
|
|
1879
|
-
|
|
1880
|
-
return possibleBlockTransformations;
|
|
2004
|
+
return (0, _lodash.orderBy)(possibleTransforms, block => itemsByName[block.name].frecency, 'desc');
|
|
1881
2005
|
}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId, state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, (0, _blocks.getBlockTypes)()]);
|
|
1882
2006
|
/**
|
|
1883
2007
|
* Determines whether there are items to show in the inserter.
|
|
@@ -2277,9 +2401,9 @@ function __experimentalGetLastBlockAttributeChanges(state) {
|
|
|
2277
2401
|
|
|
2278
2402
|
|
|
2279
2403
|
function getReusableBlocks(state) {
|
|
2280
|
-
var _state$settings$__exp, _state$
|
|
2404
|
+
var _state$settings$__exp, _state$settings2;
|
|
2281
2405
|
|
|
2282
|
-
return (_state$settings$__exp = state === null || state === void 0 ? void 0 : (_state$
|
|
2406
|
+
return (_state$settings$__exp = state === null || state === void 0 ? void 0 : (_state$settings2 = state.settings) === null || _state$settings2 === void 0 ? void 0 : _state$settings2.__experimentalReusableBlocks) !== null && _state$settings$__exp !== void 0 ? _state$settings$__exp : EMPTY_ARRAY;
|
|
2283
2407
|
}
|
|
2284
2408
|
/**
|
|
2285
2409
|
* Returns whether the navigation mode is enabled.
|