@wordpress/block-editor 12.15.0 → 12.16.1-next.79a6196f.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/LICENSE.md +1 -1
- package/README.md +12 -10
- package/build/components/block-canvas/index.js +21 -7
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-card/index.js +2 -2
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-controls/hook.js +3 -23
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +6 -1
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-draggable/index.js +76 -6
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +0 -6
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
- package/build/components/block-edit/context.js +5 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/index.js +18 -9
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-editing-mode/index.js +2 -3
- package/build/components/block-editing-mode/index.js.map +1 -1
- package/build/components/block-info-slot-fill/index.js +3 -4
- package/build/components/block-info-slot-fill/index.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-item-cell.native.js +1 -0
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build/components/block-list/block.js +257 -95
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +58 -23
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +3 -5
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/private-block-context.js +14 -0
- package/build/components/block-list/private-block-context.js.map +1 -0
- package/build/components/block-list/use-block-props/index.js +49 -69
- 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 +4 -29
- 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-is-hovered.js +4 -14
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list/use-scroll-upon-insertion.native.js +41 -0
- package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
- package/build/components/block-lock/toolbar.js +21 -27
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/index.js +2 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +5 -5
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -9
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +3 -0
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-settings/container.native.js +6 -4
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-styles/index.js +1 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +3 -2
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-switcher/index.js +4 -4
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +90 -29
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build/components/block-tools/block-toolbar-popover.js +84 -0
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build/components/block-tools/index.js +27 -24
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +4 -3
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +2 -1
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +29 -2
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +1 -1
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/colors/utils.js +10 -2
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +6 -2
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +28 -17
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/duotone-control/index.js +1 -4
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/font-sizes/utils.js +10 -2
- package/build/components/font-sizes/utils.js.map +1 -1
- package/build/components/global-styles/border-panel.js +2 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +24 -21
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +4 -3
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/effects-panel.js +2 -1
- package/build/components/global-styles/effects-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +6 -3
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +192 -0
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -0
- package/build/components/global-styles/hooks.js +3 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +7 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/index.js +7 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +43 -36
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +22 -8
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +8 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/height-control/index.js +6 -2
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/image-link-destinations/index.native.js +118 -0
- package/build/components/image-link-destinations/index.native.js.map +1 -0
- package/build/components/image-size-control/index.js +2 -2
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.native.js +14 -5
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/index.js +61 -22
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +18 -4
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -6
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +5 -9
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +10 -9
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +10 -10
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +9 -9
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/utils.js +10 -14
- package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +4 -14
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +1 -2
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +3 -7
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +2 -2
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +26 -33
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +2 -2
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/tabs.js +21 -21
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter-button/index.native.js +98 -0
- package/build/components/inserter-button/index.native.js.map +1 -0
- package/build/components/inserter-button/sparkles.js +23 -0
- package/build/components/inserter-button/sparkles.js.map +1 -0
- package/build/components/inserter-draggable-blocks/index.js +8 -4
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inserter-list-item/index.js +2 -4
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +3 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +3 -3
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +3 -3
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +34 -23
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +4 -0
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +57 -3
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/media-upload-progress/constants.js +19 -0
- package/build/components/media-upload-progress/constants.js.map +1 -0
- package/build/components/media-upload-progress/index.native.js +42 -17
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +11 -16
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +8 -3
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +6 -62
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/index.js +3 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +7 -1
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/content.js +26 -23
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +2 -1
- package/build/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build/components/rich-text/index.js +19 -37
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +9 -16
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +22 -57
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +7 -3
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js +1 -1
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/rich-text/with-deprecations.js +50 -0
- package/build/components/rich-text/with-deprecations.js.map +1 -0
- 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-input/index.js +9 -6
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +14 -18
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +108 -17
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +100 -92
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +9 -12
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +4 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-settings/index.js +14 -0
- package/build/components/use-settings/index.js.map +1 -1
- package/build/components/writing-flow/index.js +0 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +15 -4
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +73 -27
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +7 -4
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +21 -69
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +11 -1
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/anchor.js +14 -30
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/aria-label.js +9 -1
- package/build/hooks/aria-label.js.map +1 -1
- package/build/hooks/background.js +198 -36
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +24 -32
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-renaming.js +18 -22
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/border.js +53 -80
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +79 -90
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +29 -29
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/custom-class-name.js +13 -30
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-class-name.native.js +9 -1
- package/build/hooks/custom-class-name.native.js.map +1 -1
- package/build/hooks/dimensions.js +13 -14
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +31 -61
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js +23 -28
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +52 -120
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +27 -16
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +15 -6
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout-child.js +68 -0
- package/build/hooks/layout-child.js.map +1 -0
- package/build/hooks/layout.js +25 -104
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/padding.js +2 -2
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/position.js +40 -62
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +52 -89
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +25 -10
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js +43 -18
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-typography-props.js +10 -2
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/utils.js +200 -10
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +2 -6
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +0 -2
- package/build/private-apis.native.js.map +1 -1
- package/build/store/actions.js +0 -16
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +54 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +46 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +18 -2
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +11 -73
- package/build/store/selectors.js.map +1 -1
- package/build/store/undo-ignore.js +12 -0
- package/build/store/undo-ignore.js.map +1 -0
- package/build/store/utils.js +66 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/get-px-from-css-unit.js +16 -0
- package/build/utils/get-px-from-css-unit.js.map +1 -0
- package/build/utils/index.js +2 -2
- package/build/utils/index.js.map +1 -1
- package/build/utils/object.js +38 -99
- package/build/utils/object.js.map +1 -1
- package/build/utils/selection.js +9 -1
- package/build/utils/selection.js.map +1 -1
- package/build/utils/use-can-block-toolbar-be-focused.js +46 -0
- package/build/utils/use-can-block-toolbar-be-focused.js.map +1 -0
- package/build-module/components/block-canvas/index.js +22 -8
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-card/index.js +2 -2
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-controls/hook.js +4 -24
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +6 -1
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-draggable/index.js +76 -6
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +1 -7
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
- package/build-module/components/block-edit/context.js +2 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/index.js +19 -10
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +3 -4
- package/build-module/components/block-editing-mode/index.js.map +1 -1
- package/build-module/components/block-info-slot-fill/index.js +3 -3
- package/build-module/components/block-info-slot-fill/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-item-cell.native.js +1 -0
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build-module/components/block-list/block.js +261 -99
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +60 -25
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +3 -5
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/private-block-context.js +6 -0
- package/build-module/components/block-list/private-block-context.js.map +1 -0
- package/build-module/components/block-list/use-block-props/index.js +50 -70
- 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 +4 -29
- 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-is-hovered.js +4 -14
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +3 -2
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list/use-scroll-upon-insertion.native.js +33 -0
- package/build-module/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
- package/build-module/components/block-lock/toolbar.js +22 -28
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/index.js +2 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +6 -6
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +3 -10
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +3 -0
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +4 -2
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-styles/index.js +1 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +3 -2
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-switcher/index.js +4 -4
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +89 -27
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build-module/components/block-tools/block-toolbar-popover.js +74 -0
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build-module/components/block-tools/index.js +27 -24
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +2 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +2 -1
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +30 -3
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +1 -1
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/colors/utils.js +9 -1
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +5 -1
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +29 -18
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/duotone-control/index.js +1 -4
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/font-sizes/utils.js +9 -1
- package/build-module/components/font-sizes/utils.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +26 -23
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +5 -4
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/effects-panel.js +3 -2
- package/build-module/components/global-styles/effects-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +8 -5
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +184 -0
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +3 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +7 -1
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -0
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +45 -38
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +15 -1
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +7 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/height-control/index.js +6 -2
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/image-link-destinations/index.native.js +109 -0
- package/build-module/components/image-link-destinations/index.native.js.map +1 -0
- package/build-module/components/image-size-control/index.js +2 -2
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.native.js +3 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +62 -23
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +18 -4
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -6
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +6 -10
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +11 -10
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +11 -11
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +11 -11
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/utils.js +7 -11
- package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +4 -14
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +2 -2
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +1 -2
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +3 -7
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +26 -33
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +2 -2
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/tabs.js +22 -22
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter-button/index.native.js +89 -0
- package/build-module/components/inserter-button/index.native.js.map +1 -0
- package/build-module/components/inserter-button/sparkles.js +15 -0
- package/build-module/components/inserter-button/sparkles.js.map +1 -0
- package/build-module/components/inserter-draggable-blocks/index.js +9 -5
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +2 -4
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +3 -3
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +3 -3
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +35 -24
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +4 -0
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +58 -4
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/media-upload-progress/constants.js +7 -0
- package/build-module/components/media-upload-progress/constants.js.map +1 -0
- package/build-module/components/media-upload-progress/index.native.js +37 -8
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +11 -16
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +6 -1
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +6 -62
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/index.js +3 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +7 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/content.js +25 -21
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +2 -1
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build-module/components/rich-text/index.js +21 -39
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +10 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +22 -56
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +7 -3
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/rich-text/with-deprecations.js +42 -0
- package/build-module/components/rich-text/with-deprecations.js.map +1 -0
- 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-input/index.js +9 -6
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +14 -18
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +107 -18
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +102 -94
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +9 -12
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +4 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +13 -1
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +0 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +15 -4
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +73 -27
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +7 -4
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +20 -67
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js +1 -0
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/anchor.js +12 -27
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/aria-label.js +7 -1
- package/build-module/hooks/aria-label.js.map +1 -1
- package/build-module/hooks/background.js +197 -37
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +22 -30
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-renaming.js +17 -21
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/border.js +52 -79
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +78 -88
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +27 -27
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +12 -28
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-class-name.native.js +7 -1
- package/build-module/hooks/custom-class-name.native.js.map +1 -1
- package/build-module/hooks/dimensions.js +15 -16
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +30 -61
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js +20 -25
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +50 -120
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +20 -16
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +10 -6
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout-child.js +60 -0
- package/build-module/hooks/layout-child.js.map +1 -0
- package/build-module/hooks/layout.js +21 -100
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/padding.js +2 -2
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/position.js +38 -59
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +52 -85
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +26 -11
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js +43 -17
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +9 -1
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/utils.js +194 -9
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +2 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +0 -2
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/actions.js +0 -15
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +52 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +44 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +18 -2
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +4 -65
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/undo-ignore.js +5 -0
- package/build-module/store/undo-ignore.js.map +1 -0
- package/build-module/store/utils.js +56 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/get-px-from-css-unit.js +9 -0
- package/build-module/utils/get-px-from-css-unit.js.map +1 -0
- package/build-module/utils/index.js +1 -1
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/object.js +37 -97
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/selection.js +9 -1
- package/build-module/utils/selection.js.map +1 -1
- package/build-module/utils/use-can-block-toolbar-be-focused.js +40 -0
- package/build-module/utils/use-can-block-toolbar-be-focused.js.map +1 -0
- package/build-style/content-rtl.css +7 -6
- package/build-style/content.css +7 -6
- package/build-style/style-rtl.css +164 -301
- package/build-style/style.css +164 -301
- package/package.json +31 -31
- package/src/components/alignment-control/README.md +0 -5
- package/src/components/block-alignment-control/README.md +0 -5
- package/src/components/block-alignment-matrix-control/README.md +0 -10
- package/src/components/block-breadcrumb/README.md +0 -5
- package/src/components/block-canvas/index.js +29 -17
- package/src/components/block-canvas/style.scss +6 -0
- package/src/components/block-caption/README.md +2 -7
- package/src/components/block-card/README.md +0 -5
- package/src/components/block-card/index.js +6 -4
- package/src/components/block-card/style.scss +7 -3
- package/src/components/block-controls/hook.js +8 -30
- package/src/components/block-controls/test/index.js +3 -3
- package/src/components/block-draggable/draggable-chip.js +11 -1
- package/src/components/block-draggable/index.js +116 -4
- package/src/components/block-draggable/index.native.js +0 -5
- package/src/components/block-draggable/style.scss +35 -0
- package/src/components/block-draggable/test/helpers.native.js +8 -7
- package/src/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
- package/src/components/block-edit/context.js +3 -0
- package/src/components/block-edit/index.js +36 -10
- package/src/components/block-editing-mode/index.js +3 -3
- package/src/components/block-icon/README.md +0 -5
- package/src/components/block-info-slot-fill/index.js +6 -3
- package/src/components/block-inspector/README.md +0 -5
- package/src/components/block-inspector/index.js +3 -1
- package/src/components/block-inspector/style.scss +0 -4
- package/src/components/block-list/block-list-item-cell.native.js +5 -1
- package/src/components/block-list/block.js +309 -104
- package/src/components/block-list/block.native.js +69 -21
- package/src/components/block-list/content.scss +14 -10
- package/src/components/block-list/index.native.js +3 -5
- package/src/components/block-list/{block-list-block-context.js → private-block-context.js} +1 -1
- package/src/components/block-list/use-block-props/index.js +43 -86
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
- package/src/components/block-list/use-in-between-inserter.js +4 -1
- package/src/components/block-list/use-scroll-upon-insertion.native.js +52 -0
- package/src/components/block-lock/toolbar.js +23 -34
- package/src/components/block-mover/README.md +0 -5
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-parent-selector/README.md +0 -5
- package/src/components/block-patterns-list/README.md +0 -5
- package/src/components/block-patterns-list/index.js +9 -6
- package/src/components/block-removal-warning-modal/index.js +7 -14
- package/src/components/block-rename/modal.js +7 -1
- package/src/components/block-settings/container.native.js +3 -5
- package/src/components/block-styles/index.js +1 -1
- package/src/components/block-styles/index.native.js +4 -2
- package/src/components/block-styles/style.scss +0 -11
- package/src/components/block-switcher/index.js +49 -59
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
- package/src/components/block-toolbar/README.md +0 -5
- package/src/components/block-toolbar/index.js +179 -95
- package/src/components/block-toolbar/style.scss +50 -66
- package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
- package/src/components/block-tools/block-toolbar-popover.js +84 -0
- package/src/components/block-tools/index.js +42 -29
- package/src/components/block-tools/style.scss +60 -172
- package/src/components/block-types-list/README.md +0 -5
- package/src/components/block-types-list/index.native.js +2 -1
- package/src/components/block-variation-picker/README.md +0 -5
- package/src/components/block-variation-picker/index.native.js +1 -1
- package/src/components/block-variation-transforms/README.md +0 -5
- package/src/components/block-variation-transforms/index.js +49 -3
- package/src/components/border-radius-control/linked-button.js +1 -1
- package/src/components/caption/README.md +0 -5
- package/src/components/color-palette/test/__snapshots__/control.js.snap +0 -1
- package/src/components/colors/utils.js +8 -1
- package/src/components/colors/with-colors.js +3 -1
- package/src/components/colors-gradients/control.js +49 -30
- package/src/components/colors-gradients/style.scss +0 -7
- package/src/components/contrast-checker/README.md +0 -4
- package/src/components/copy-handler/README.md +0 -10
- package/src/components/duotone-control/index.js +2 -5
- package/src/components/duotone-control/style.scss +1 -6
- package/src/components/font-sizes/utils.js +7 -1
- package/src/components/global-styles/border-panel.js +2 -1
- package/src/components/global-styles/color-panel.js +36 -26
- package/src/components/global-styles/dimensions-panel.js +4 -3
- package/src/components/global-styles/effects-panel.js +2 -1
- package/src/components/global-styles/filters-panel.js +6 -5
- package/src/components/global-styles/get-global-styles-changes.js +210 -0
- package/src/components/global-styles/hooks.js +5 -0
- package/src/components/global-styles/image-settings-panel.js +6 -0
- package/src/components/global-styles/index.js +1 -0
- package/src/components/global-styles/test/get-global-styles-changes.js +234 -0
- package/src/components/global-styles/typography-panel.js +60 -47
- package/src/components/global-styles/use-global-styles-output.js +9 -5
- package/src/components/global-styles/utils.js +7 -0
- package/src/components/height-control/README.md +2 -7
- package/src/components/height-control/index.js +4 -0
- package/src/components/image-link-destinations/index.native.js +152 -0
- package/src/components/image-link-destinations/style.native.scss +16 -0
- package/src/components/image-size-control/index.js +5 -2
- package/src/components/index.native.js +3 -2
- package/src/components/inner-blocks/README.md +13 -2
- package/src/components/inner-blocks/index.js +68 -29
- package/src/components/inner-blocks/index.native.js +19 -7
- package/src/components/inner-blocks/use-inner-block-template-sync.js +5 -7
- package/src/components/inner-blocks/use-nested-settings-update.js +6 -13
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +15 -15
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +15 -13
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +15 -18
- package/src/components/inserter/block-patterns-tab/utils.js +11 -12
- package/src/components/inserter/hooks/use-block-types-state.js +9 -11
- package/src/components/inserter/hooks/use-patterns-state.js +2 -2
- package/src/components/inserter/index.js +0 -1
- package/src/components/inserter/library.js +2 -8
- package/src/components/inserter/media-tab/media-panel.js +1 -1
- package/src/components/inserter/menu.js +26 -36
- package/src/components/inserter/preview-panel.js +2 -2
- package/src/components/inserter/style.scss +21 -21
- package/src/components/inserter/tabs.js +34 -25
- package/src/components/inserter-button/README.md +62 -0
- package/src/components/inserter-button/index.native.js +116 -0
- package/src/components/inserter-button/sparkles.js +15 -0
- package/src/components/inserter-button/style.native.scss +72 -0
- package/src/components/inserter-draggable-blocks/index.js +18 -5
- package/src/components/inserter-list-item/index.js +6 -6
- package/src/components/inspector-controls/block-support-tools-panel.js +2 -0
- package/src/components/inspector-controls/fill.js +6 -3
- package/src/components/inspector-controls/fill.native.js +6 -3
- package/src/components/inspector-controls-tabs/index.js +39 -28
- package/src/components/inspector-controls-tabs/style.scss +3 -2
- package/src/components/letter-spacing-control/README.md +0 -5
- package/src/components/line-height-control/README.md +0 -5
- package/src/components/link-control/style.scss +1 -1
- package/src/components/link-control/test/index.js +1 -1
- package/src/components/list-view/README.md +0 -5
- package/src/components/list-view/block-select-button.js +4 -0
- package/src/components/list-view/block.js +73 -2
- package/src/components/list-view/style.scss +6 -0
- package/src/components/media-upload-progress/constants.js +6 -0
- package/src/components/media-upload-progress/index.native.js +66 -14
- package/src/components/media-upload-progress/test/index.native.js +2 -2
- package/src/components/multi-selection-inspector/README.md +0 -5
- package/src/components/navigable-toolbar/README.md +2 -0
- package/src/components/navigable-toolbar/index.js +15 -13
- package/src/components/plain-text/index.native.js +6 -1
- package/src/components/preview-options/index.js +6 -86
- package/src/components/provider/index.js +1 -1
- package/src/components/provider/test/use-block-sync.js +20 -17
- package/src/components/provider/use-block-sync.js +6 -0
- package/src/components/rich-text/content.js +27 -20
- package/src/components/rich-text/get-rich-text-values.js +6 -1
- package/src/components/rich-text/index.js +23 -52
- package/src/components/rich-text/index.native.js +8 -25
- package/src/components/rich-text/native/get-format-colors.native.js +33 -40
- package/src/components/rich-text/native/index.native.js +22 -71
- package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +3 -3
- package/src/components/rich-text/native/test/index.native.js +72 -5
- package/src/components/rich-text/use-input-rules.js +8 -3
- package/src/components/rich-text/use-mark-persistent.js +1 -2
- package/src/components/rich-text/with-deprecations.js +51 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/src/components/text-decoration-control/README.md +40 -0
- package/src/components/text-transform-control/README.md +0 -4
- package/src/components/ungroup-button/README.md +0 -5
- package/src/components/unit-control/README.md +0 -4
- package/src/components/url-input/index.js +11 -11
- package/src/components/use-block-commands/index.js +18 -21
- package/src/components/use-block-drop-zone/index.js +181 -30
- package/src/components/use-moving-animation/index.js +107 -103
- package/src/components/use-on-block-drop/index.js +9 -24
- package/src/components/use-on-block-drop/test/index.js +12 -26
- package/src/components/use-resize-canvas/README.md +3 -7
- package/src/components/use-resize-canvas/index.js +4 -1
- package/src/components/use-settings/README.md +0 -4
- package/src/components/use-settings/index.js +15 -1
- package/src/components/writing-flow/index.js +0 -1
- package/src/components/writing-flow/use-drag-selection.js +18 -4
- package/src/components/writing-flow/use-selection-observer.js +99 -37
- package/src/components/writing-flow/use-tab-nav.js +7 -7
- package/src/hooks/align.js +16 -81
- package/src/hooks/align.native.js +1 -0
- package/src/hooks/anchor.js +14 -38
- package/src/hooks/aria-label.js +8 -5
- package/src/hooks/background.js +269 -32
- package/src/hooks/block-hooks.js +22 -51
- package/src/hooks/block-renaming.js +23 -37
- package/src/hooks/border.js +62 -124
- package/src/hooks/color.js +111 -138
- package/src/hooks/content-lock-ui.js +110 -122
- package/src/hooks/custom-class-name.js +9 -45
- package/src/hooks/custom-class-name.native.js +8 -5
- package/src/hooks/dimensions.js +14 -16
- package/src/hooks/duotone.js +70 -127
- package/src/hooks/font-family.js +14 -36
- package/src/hooks/font-size.js +67 -168
- package/src/hooks/index.js +58 -16
- package/src/hooks/index.native.js +22 -6
- package/src/hooks/layout-child.js +53 -0
- package/src/hooks/layout.js +17 -103
- package/src/hooks/padding.js +2 -2
- package/src/hooks/position.js +50 -90
- package/src/hooks/style.js +118 -193
- package/src/hooks/test/align.js +1 -178
- package/src/hooks/test/anchor.js +4 -9
- package/src/hooks/test/custom-class-name.js +3 -8
- package/src/hooks/test/style.js +4 -14
- package/src/hooks/typography.js +14 -16
- package/src/hooks/typography.native.js +31 -33
- package/src/hooks/use-typography-props.js +7 -1
- package/src/hooks/utils.js +261 -10
- package/src/private-apis.js +2 -6
- package/src/private-apis.native.js +0 -2
- package/src/store/actions.js +0 -15
- package/src/store/private-actions.js +48 -0
- package/src/store/private-selectors.js +56 -0
- package/src/store/reducer.js +20 -1
- package/src/store/selectors.js +10 -82
- package/src/store/undo-ignore.js +4 -0
- package/src/store/utils.js +74 -0
- package/src/style.scss +1 -2
- package/src/utils/get-px-from-css-unit.js +8 -0
- package/src/utils/index.js +1 -1
- package/src/utils/object.js +34 -104
- package/src/utils/selection.js +9 -2
- package/src/utils/test/object.js +1 -96
- package/src/utils/use-can-block-toolbar-be-focused.js +48 -0
- package/build/components/block-list/block-list-block-context.js +0 -14
- package/build/components/block-list/block-list-block-context.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
- package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build/components/block-tools/back-compat.js +0 -45
- package/build/components/block-tools/back-compat.js.map +0 -1
- package/build/components/block-tools/block-contextual-toolbar.js +0 -91
- package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build/components/block-tools/selected-block-tools.js +0 -113
- package/build/components/block-tools/selected-block-tools.js.map +0 -1
- package/build/components/inserter/hooks/use-debounced-input.js +0 -22
- package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build/components/use-display-block-controls/index.js +0 -39
- package/build/components/use-display-block-controls/index.js.map +0 -1
- package/build/components/use-display-block-controls/index.native.js +0 -39
- package/build/components/use-display-block-controls/index.native.js.map +0 -1
- package/build/hooks/custom-fields.js +0 -120
- package/build/hooks/custom-fields.js.map +0 -1
- package/build/utils/parse-css-unit-to-px.js +0 -302
- package/build/utils/parse-css-unit-to-px.js.map +0 -1
- package/build/utils/use-should-contextual-toolbar-show.js +0 -63
- package/build/utils/use-should-contextual-toolbar-show.js.map +0 -1
- package/build-module/components/block-list/block-list-block-context.js +0 -6
- package/build-module/components/block-list/block-list-block-context.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build-module/components/block-tools/back-compat.js +0 -35
- package/build-module/components/block-tools/back-compat.js.map +0 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build-module/components/block-tools/selected-block-tools.js +0 -105
- package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.js +0 -32
- package/build-module/components/use-display-block-controls/index.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.native.js +0 -32
- package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
- package/build-module/hooks/custom-fields.js +0 -118
- package/build-module/hooks/custom-fields.js.map +0 -1
- package/build-module/utils/parse-css-unit-to-px.js +0 -294
- package/build-module/utils/parse-css-unit-to-px.js.map +0 -1
- package/build-module/utils/use-should-contextual-toolbar-show.js +0 -57
- package/build-module/utils/use-should-contextual-toolbar-show.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
- package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
- package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
- package/src/components/block-parent-selector/style.scss +0 -11
- package/src/components/block-tools/back-compat.js +0 -35
- package/src/components/block-tools/block-contextual-toolbar.js +0 -100
- package/src/components/block-tools/selected-block-tools.js +0 -127
- package/src/components/inserter/hooks/use-debounced-input.js +0 -18
- package/src/components/preview-options/README.md +0 -94
- package/src/components/preview-options/style.scss +0 -64
- package/src/components/use-display-block-controls/index.js +0 -36
- package/src/components/use-display-block-controls/index.native.js +0 -37
- package/src/hooks/custom-fields.js +0 -142
- package/src/hooks/test/color.js +0 -112
- package/src/utils/parse-css-unit-to-px.js +0 -329
- package/src/utils/test/parse-css-unit-to-px.js +0 -172
- package/src/utils/use-should-contextual-toolbar-show.js +0 -85
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","useMemo","useCallback","RawHTML","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","withFilters","withDispatch","withSelect","useDispatch","useSelect","compose","pure","ifCondition","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","store","blockEditorStore","useLayout","BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","createElement","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","themeSupportsLayout","isTemporarilyEditingAsBlocks","blockEditingMode","select","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","supportsLayout","removeBlock","onRemove","parentLayout","blockEdit","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockType","tabIndex","getEditWrapperProps","isAligned","saveContent","Fragment","display","apiVersion","dataAlign","restWrapperProps","value","memoizedValue","values","Provider","fallback","applyWithSelect","rootClientId","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","templateLock","canMove","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback, RawHTML } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseDispatch,\n\tuseSelect,\n} from '@wordpress/data';\nimport { compose, pure, ifCondition } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { BlockListBlockContext } from './block-list-block-context';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA?.className && propsB?.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA?.style && propsB?.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tthemeSupportsLayout: getSettings().supportsLayout,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\tif ( blockEditingMode === 'disabled' ) {\n\t\twrapperProps = {\n\t\t\t...wrapperProps,\n\t\t\ttabIndex: -1,\n\t\t};\n\t}\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName=\"wp-block\"\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName: classnames(\n\t\t\t{\n\t\t\t\t'is-editing-disabled': blockEditingMode === 'disabled',\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\tclassName\n\t\t),\n\t\twrapperProps: restWrapperProps,\n\t\tisAligned,\n\t};\n\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","useCallback","RawHTML","useContext","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","isReusableBlock","getBlockDefaultClassName","store","blocksStore","withFilters","withDispatch","useDispatch","useSelect","compose","pure","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","blockEditorStore","useLayout","PrivateBlockContext","unlock","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","style","Block","children","isHtml","props","createElement","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","removeBlock","onRemove","parentLayout","blockEdit","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","Fragment","display","apiVersion","dataAlign","restWrapperProps","Provider","value","fallback","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","BlockListBlockProvider","selectedProps","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","isTyping","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","hasBlockMovingClientId","__unstableHasActiveBlockOverlayActive","__unstableGetEditorMode","getSelectedBlocksInitialCaretPosition","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","_isSelected","templateLock","canMove","blockName","match","outlineMode","supportsLayout","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","typing","hasLightBlockWrapper","movingClientId","isTemporarilyEditingAsBlocks","blockEditingMode","id","blockApiVersion","blockTitle","title","isSubtreeDisabled","isOutlineEnabled","hasOverlay","isHighlighted","isPartiallySelected","isReusable","isDragging","hasChildSelected","removeOutline","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","defaultClassName","privateContext"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, RawHTML, useContext } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose, pure } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\trestWrapperProps.className = classnames(\n\t\trestWrapperProps.className,\n\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t! ( dataAlign && isSticky ) && className\n\t);\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: restWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necesssary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisTyping,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! block ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst templateLock = getTemplateLock( rootClientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\t\t\tconst canMove = canMoveBlock( clientId, rootClientId );\n\t\t\tconst { name: blockName, attributes, isValid } = block;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst { outlineMode, supportsLayout } = getSettings();\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst typing = isTyping();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst movingClientId = hasBlockMovingClientId();\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! templateLock,\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t\t\t// access the block prop.\n\t\t\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t\t\t// This is kept for backward compatibility reasons.\n\t\t\t\tblock,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled: isBlockSubtreeDisabled( clientId ),\n\t\t\t\tisOutlineEnabled: outlineMode,\n\t\t\t\thasOverlay: __unstableHasActiveBlockOverlayActive( clientId ),\n\t\t\t\tinitialPosition:\n\t\t\t\t\t_isSelected && __unstableGetEditorMode() === 'edit'\n\t\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tremoveOutline: _isSelected && outlineMode && typing,\n\t\t\t\tisBlockMovingMode: !! movingClientId,\n\t\t\t\tcanInsertMovingBlock:\n\t\t\t\t\tmovingClientId &&\n\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\tgetBlockName( movingClientId ),\n\t\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t\t),\n\t\t\t\tisEditingDisabled:\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'disabled',\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tmode,\n\t\tisSelectionEnabled,\n\t\tisLocked,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\tclassName,\n\t\tdefaultClassName,\n\t} = selectedProps;\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\tisOutlineEnabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default pure( BlockListBlockProvider );\n"],"mappings":"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"}
|
|
@@ -3,12 +3,13 @@ import { createElement } from "react";
|
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
5
|
import { Pressable, View } from 'react-native';
|
|
6
|
+
import classnames from 'classnames';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* WordPress dependencies
|
|
9
10
|
*/
|
|
10
|
-
import { useCallback, useMemo, useState } from '@wordpress/element';
|
|
11
|
-
import { GlobalStylesContext, getMergedGlobalStyles, useMobileGlobalStylesColors, useGlobalStyles } from '@wordpress/components';
|
|
11
|
+
import { useCallback, useMemo, useState, useRef } from '@wordpress/element';
|
|
12
|
+
import { GlobalStylesContext, getMergedGlobalStyles, useMobileGlobalStylesColors, useGlobalStyles, withFilters } from '@wordpress/components';
|
|
12
13
|
import { __experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel, getBlockType, getDefaultBlockName, isUnmodifiedBlock, isUnmodifiedDefaultBlock, switchToBlockType } from '@wordpress/blocks';
|
|
13
14
|
import { useDispatch, useSelect, withDispatch, withSelect } from '@wordpress/data';
|
|
14
15
|
import { compose, ifCondition, pure } from '@wordpress/compose';
|
|
@@ -22,23 +23,35 @@ import BlockInvalidWarning from './block-invalid-warning';
|
|
|
22
23
|
import BlockOutline from './block-outline';
|
|
23
24
|
import { store as blockEditorStore } from '../../store';
|
|
24
25
|
import { useLayout } from './layout';
|
|
26
|
+
import useScrollUponInsertion from './use-scroll-upon-insertion';
|
|
25
27
|
import { useSettings } from '../use-settings';
|
|
26
28
|
const EMPTY_ARRAY = [];
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Merges wrapper props with special handling for classNames and styles.
|
|
32
|
+
*
|
|
33
|
+
* @param {Object} propsA
|
|
34
|
+
* @param {Object} propsB
|
|
35
|
+
*
|
|
36
|
+
* @return {Object} Merged props.
|
|
37
|
+
*/
|
|
38
|
+
function mergeWrapperProps(propsA, propsB) {
|
|
39
|
+
const newProps = {
|
|
40
|
+
...propsA,
|
|
41
|
+
...propsB
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// May be set to undefined, so check if the property is set!
|
|
45
|
+
if (propsA?.hasOwnProperty('className') && propsB?.hasOwnProperty('className')) {
|
|
46
|
+
newProps.className = classnames(propsA.className, propsB.className);
|
|
34
47
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
if (propsA?.hasOwnProperty('style') && propsB?.hasOwnProperty('style')) {
|
|
49
|
+
newProps.style = {
|
|
50
|
+
...propsA.style,
|
|
51
|
+
...propsB.style
|
|
52
|
+
};
|
|
40
53
|
}
|
|
41
|
-
return
|
|
54
|
+
return newProps;
|
|
42
55
|
}
|
|
43
56
|
function BlockWrapper({
|
|
44
57
|
accessibilityLabel,
|
|
@@ -65,13 +78,26 @@ function BlockWrapper({
|
|
|
65
78
|
marginHorizontal
|
|
66
79
|
}];
|
|
67
80
|
const accessible = !(isSelected || isDescendentBlockSelected);
|
|
81
|
+
const ref = useRef();
|
|
82
|
+
const [isLayoutCalculated, setIsLayoutCalculated] = useState();
|
|
83
|
+
useScrollUponInsertion({
|
|
84
|
+
clientId,
|
|
85
|
+
isSelected,
|
|
86
|
+
isLayoutCalculated,
|
|
87
|
+
elementRef: ref
|
|
88
|
+
});
|
|
89
|
+
const onLayout = useCallback(() => {
|
|
90
|
+
setIsLayoutCalculated(true);
|
|
91
|
+
}, []);
|
|
68
92
|
return createElement(Pressable, {
|
|
69
93
|
accessibilityLabel: accessibilityLabel,
|
|
70
94
|
accessibilityRole: "button",
|
|
71
95
|
accessible: accessible,
|
|
72
96
|
disabled: !isTouchable,
|
|
73
97
|
onPress: onFocus,
|
|
74
|
-
style: blockWrapperStyle
|
|
98
|
+
style: blockWrapperStyle,
|
|
99
|
+
ref: ref,
|
|
100
|
+
onLayout: onLayout
|
|
75
101
|
}, createElement(BlockOutline, {
|
|
76
102
|
blockCategory: blockCategory,
|
|
77
103
|
hasInnerBlocks: hasInnerBlocks,
|
|
@@ -107,7 +133,8 @@ function BlockListBlock({
|
|
|
107
133
|
parentWidth,
|
|
108
134
|
rootClientId,
|
|
109
135
|
setAttributes,
|
|
110
|
-
toggleSelection
|
|
136
|
+
toggleSelection,
|
|
137
|
+
wrapperProps
|
|
111
138
|
}) {
|
|
112
139
|
const {
|
|
113
140
|
baseGlobalStyles,
|
|
@@ -119,7 +146,8 @@ function BlockListBlock({
|
|
|
119
146
|
isDescendantOfParentSelected,
|
|
120
147
|
isDescendentBlockSelected,
|
|
121
148
|
isParentSelected,
|
|
122
|
-
order
|
|
149
|
+
order,
|
|
150
|
+
mayDisplayControls
|
|
123
151
|
} = useSelect(select => {
|
|
124
152
|
const {
|
|
125
153
|
getBlockCount,
|
|
@@ -128,7 +156,10 @@ function BlockListBlock({
|
|
|
128
156
|
getBlockParents,
|
|
129
157
|
getSelectedBlockClientId,
|
|
130
158
|
getSettings,
|
|
131
|
-
hasSelectedInnerBlock
|
|
159
|
+
hasSelectedInnerBlock,
|
|
160
|
+
getBlockName,
|
|
161
|
+
isFirstMultiSelectedBlock,
|
|
162
|
+
getMultiSelectedBlockClientIds
|
|
132
163
|
} = select(blockEditorStore);
|
|
133
164
|
const currentBlockType = getBlockType(name || 'core/missing');
|
|
134
165
|
const currentBlockCategory = currentBlockType?.category;
|
|
@@ -161,7 +192,8 @@ function BlockListBlock({
|
|
|
161
192
|
isDescendantOfParentSelected: descendantOfParentSelected,
|
|
162
193
|
isDescendentBlockSelected: descendentBlockSelected,
|
|
163
194
|
isParentSelected: parentSelected,
|
|
164
|
-
order: blockOrder
|
|
195
|
+
order: blockOrder,
|
|
196
|
+
mayDisplayControls: isSelected || isFirstMultiSelectedBlock(clientId) && getMultiSelectedBlockClientIds().every(id => getBlockName(id) === name)
|
|
165
197
|
};
|
|
166
198
|
}, [clientId, isSelected, name, rootClientId]);
|
|
167
199
|
const {
|
|
@@ -192,12 +224,14 @@ function BlockListBlock({
|
|
|
192
224
|
}
|
|
193
225
|
}, [blockWidth, setBlockWidth]);
|
|
194
226
|
|
|
195
|
-
//
|
|
196
|
-
|
|
227
|
+
// Determine whether the block has props to apply to the wrapper.
|
|
228
|
+
if (blockType?.getEditWrapperProps) {
|
|
229
|
+
wrapperProps = mergeWrapperProps(wrapperProps, blockType.getEditWrapperProps(attributes));
|
|
230
|
+
}
|
|
197
231
|
|
|
198
232
|
// Inherited styles merged with block level styles.
|
|
199
233
|
const mergedStyle = useMemo(() => {
|
|
200
|
-
return getMergedGlobalStyles(baseGlobalStyles, globalStyle, wrapperProps
|
|
234
|
+
return getMergedGlobalStyles(baseGlobalStyles, globalStyle, wrapperProps?.style, attributes, defaultColors, name, fontSizes || EMPTY_ARRAY);
|
|
201
235
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
202
236
|
}, [
|
|
203
237
|
// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.
|
|
@@ -210,7 +244,7 @@ function BlockListBlock({
|
|
|
210
244
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
211
245
|
JSON.stringify(globalStyle),
|
|
212
246
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
213
|
-
JSON.stringify(wrapperProps
|
|
247
|
+
JSON.stringify(wrapperProps?.style),
|
|
214
248
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
215
249
|
JSON.stringify(Object.fromEntries(Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}).filter(([key]) => GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes(key))))]);
|
|
216
250
|
const isFocused = isSelected || isDescendentBlockSelected;
|
|
@@ -257,7 +291,8 @@ function BlockListBlock({
|
|
|
257
291
|
style: mergedStyle,
|
|
258
292
|
toggleSelection: toggleSelection,
|
|
259
293
|
__unstableParentLayout: Object.keys(parentLayout).length ? parentLayout : undefined,
|
|
260
|
-
wrapperProps: wrapperProps
|
|
294
|
+
wrapperProps: wrapperProps,
|
|
295
|
+
mayDisplayControls: mayDisplayControls
|
|
261
296
|
}), createElement(View, {
|
|
262
297
|
onLayout: onLayout
|
|
263
298
|
})));
|
|
@@ -480,5 +515,5 @@ export default compose(pure, applyWithSelect, applyWithDispatch,
|
|
|
480
515
|
// https://github.com/WordPress/gutenberg/issues/17013
|
|
481
516
|
ifCondition(({
|
|
482
517
|
block
|
|
483
|
-
}) => !!block))(BlockListBlock);
|
|
518
|
+
}) => !!block), withFilters('editor.BlockListBlock'))(BlockListBlock);
|
|
484
519
|
//# sourceMappingURL=block.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Pressable","View","useCallback","useMemo","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockOutline","store","blockEditorStore","useLayout","useSettings","EMPTY_ARRAY","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","createElement","accessibilityRole","disabled","onPress","style","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","currentBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","Provider","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Pressable","View","classnames","useCallback","useMemo","useState","useRef","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","useGlobalStyles","withFilters","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockOutline","store","blockEditorStore","useLayout","useScrollUponInsertion","useSettings","EMPTY_ARRAY","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","style","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","ref","isLayoutCalculated","setIsLayoutCalculated","elementRef","onLayout","createElement","accessibilityRole","disabled","onPress","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","wrapperProps","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","mayDisplayControls","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","getBlockName","isFirstMultiSelectedBlock","getMultiSelectedBlockClientIds","currentBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","every","id","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","Provider","value","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState, useRef } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n\twithFilters,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useScrollUponInsertion from './use-scroll-upon-insertion';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\tconst ref = useRef();\n\tconst [ isLayoutCalculated, setIsLayoutCalculated ] = useState();\n\tuseScrollUponInsertion( {\n\t\tclientId,\n\t\tisSelected,\n\t\tisLayoutCalculated,\n\t\telementRef: ref,\n\t} );\n\tconst onLayout = useCallback( () => {\n\t\tsetIsLayoutCalculated( true );\n\t}, [] );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t\tref={ ref }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n\twrapperProps,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t\tmayDisplayControls,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\tisSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === name\n\t\t\t\t\t\t) ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps?.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps?.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
@@ -113,7 +113,7 @@ export default function BlockList({
|
|
|
113
113
|
const addBlockToEndOfPost = newBlock => {
|
|
114
114
|
insertBlock(newBlock, blockCount);
|
|
115
115
|
};
|
|
116
|
-
const
|
|
116
|
+
const scrollRef = useRef(null);
|
|
117
117
|
const shouldFlatListPreventAutomaticScroll = () => blockInsertionPointIsVisible;
|
|
118
118
|
const shouldShowInnerBlockAppender = () => renderAppender && blockClientIds.length > 0;
|
|
119
119
|
const getExtraData = () => {
|
|
@@ -198,7 +198,7 @@ export default function BlockList({
|
|
|
198
198
|
}, isRootList ? createElement(BlockListProvider, {
|
|
199
199
|
value: {
|
|
200
200
|
...DEFAULT_BLOCK_LIST_CONTEXT,
|
|
201
|
-
scrollRef:
|
|
201
|
+
scrollRef: scrollRef.current
|
|
202
202
|
}
|
|
203
203
|
}, createElement(BlockDraggableWrapper, {
|
|
204
204
|
isRTL: isRTL
|
|
@@ -210,9 +210,7 @@ export default function BlockList({
|
|
|
210
210
|
} : {}),
|
|
211
211
|
// Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541
|
|
212
212
|
accessibilityLabel: "block-list",
|
|
213
|
-
|
|
214
|
-
scrollViewRef.current = ref;
|
|
215
|
-
},
|
|
213
|
+
ref: scrollRef,
|
|
216
214
|
extraScrollHeight: extraScrollHeight,
|
|
217
215
|
keyboardShouldPersistTaps: "always",
|
|
218
216
|
scrollViewStyle: {
|