@wordpress/block-editor 16.0.1-next.v.202607070741.0 → 16.2.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 +66 -1
- package/README.md +21 -1
- package/build/autocompleters/block.cjs.map +2 -2
- package/build/components/alignment-control/index.cjs.map +2 -2
- package/build/components/alignment-control/ui.cjs +2 -4
- package/build/components/alignment-control/ui.cjs.map +2 -2
- package/build/components/autocomplete/index.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +40 -10
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-actions/index.cjs +2 -1
- package/build/components/block-actions/index.cjs.map +2 -2
- package/build/components/block-alignment-control/constants.cjs.map +2 -2
- package/build/components/block-alignment-control/index.cjs.map +2 -2
- package/build/components/block-alignment-control/ui.cjs +5 -3
- package/build/components/block-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-alignment-control/use-available-alignments.cjs.map +2 -2
- package/build/components/block-alignment-matrix-control/index.cjs.map +2 -2
- package/build/components/block-allowed-blocks/allowed-blocks-control.cjs.map +2 -2
- package/build/components/block-allowed-blocks/modal.cjs.map +2 -2
- package/build/components/block-bindings/attribute-control.cjs.map +2 -2
- package/build/components/block-bindings/index.cjs.map +2 -2
- package/build/components/block-bindings/source-fields-list.cjs.map +2 -2
- package/build/components/block-bindings/use-block-bindings-utils.cjs.map +2 -2
- package/build/components/block-breadcrumb/index.cjs.map +2 -2
- package/build/components/block-canvas/index.cjs +6 -1
- package/build/components/block-canvas/index.cjs.map +2 -2
- package/build/components/block-card/index.cjs.map +2 -2
- package/build/components/block-compare/block-view.cjs.map +2 -2
- package/build/components/block-compare/index.cjs.map +2 -2
- package/build/components/block-content-overlay/index.cjs.map +2 -2
- package/build/components/block-context/index.cjs.map +2 -2
- package/build/components/block-controls/fill.cjs.map +2 -2
- package/build/components/block-controls/groups.cjs +3 -1
- package/build/components/block-controls/groups.cjs.map +2 -2
- package/build/components/block-controls/hook.cjs.map +2 -2
- package/build/components/block-controls/index.cjs.map +2 -2
- package/build/components/block-controls/slot.cjs.map +2 -2
- package/build/components/block-draggable/draggable-chip.cjs.map +2 -2
- package/build/components/block-draggable/index.cjs.map +2 -2
- package/build/components/block-draggable/use-scroll-when-dragging.cjs.map +2 -2
- package/build/components/block-edit/context.cjs.map +2 -2
- package/build/components/block-edit/edit.cjs +10 -18
- package/build/components/block-edit/edit.cjs.map +2 -2
- package/build/components/block-edit/index.cjs.map +2 -2
- package/build/components/block-edit/multiple-usage-warning.cjs.map +2 -2
- package/build/components/block-edit-visually-button/index.cjs.map +2 -2
- package/build/components/block-editing-mode/index.cjs.map +2 -2
- package/build/components/block-full-height-alignment-control/index.cjs.map +2 -2
- package/build/components/block-heading-level-dropdown/heading-level-icon.cjs.map +2 -2
- package/build/components/block-heading-level-dropdown/index.cjs.map +2 -2
- package/build/components/block-icon/index.cjs.map +2 -2
- package/build/components/block-inspector/edit-contents.cjs +48 -40
- package/build/components/block-inspector/edit-contents.cjs.map +3 -3
- package/build/components/block-inspector/index.cjs +82 -50
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-inspector/inspector-pre-tabs-slot-fill.cjs.map +2 -2
- package/build/components/block-inspector/useBlockInspectorAnimationSettings.cjs.map +2 -2
- package/build/components/block-list/block-crash-boundary.cjs.map +2 -2
- package/build/components/block-list/block-crash-warning.cjs.map +2 -2
- package/build/components/block-list/block-html.cjs +4 -1
- package/build/components/block-list/block-html.cjs.map +2 -2
- package/build/components/block-list/block-invalid-warning.cjs.map +2 -2
- package/build/components/block-list/block.cjs +45 -13
- package/build/components/block-list/block.cjs.map +3 -3
- package/build/components/block-list/index.cjs +34 -12
- package/build/components/block-list/index.cjs.map +2 -2
- package/build/components/block-list/layout.cjs.map +2 -2
- package/build/components/block-list/private-block-context.cjs.map +2 -2
- package/build/components/block-list/subdirectory-icon.cjs.map +2 -2
- package/build/components/block-list/use-block-props/index.cjs +41 -2
- package/build/components/block-list/use-block-props/index.cjs.map +3 -3
- package/build/components/block-list/use-block-props/use-block-refs.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs +9 -4
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-handler.cjs +11 -4
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-intersection-observer.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-is-hovered.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs +48 -0
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs.map +7 -0
- package/build/components/block-list/use-block-props/use-scroll-into-view.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs.map +2 -2
- package/build/components/block-list/use-in-between-inserter.cjs.map +2 -2
- package/build/components/block-list/zoom-out-separator.cjs.map +2 -2
- package/build/components/block-list-appender/index.cjs.map +2 -2
- package/build/components/block-lock/menu-item.cjs.map +2 -2
- package/build/components/block-lock/modal.cjs.map +2 -2
- package/build/components/block-lock/toolbar.cjs.map +2 -2
- package/build/components/block-lock/use-block-lock.cjs.map +2 -2
- package/build/components/block-manager/category.cjs.map +2 -2
- package/build/components/block-manager/checklist.cjs.map +2 -2
- package/build/components/block-manager/index.cjs.map +2 -2
- package/build/components/block-mover/button.cjs +15 -9
- package/build/components/block-mover/button.cjs.map +2 -2
- package/build/components/block-mover/index.cjs.map +2 -2
- package/build/components/block-mover/mover-description.cjs.map +2 -2
- package/build/components/block-navigation/dropdown.cjs.map +2 -2
- package/build/components/block-parent-selector/index.cjs +2 -2
- package/build/components/block-parent-selector/index.cjs.map +2 -2
- package/build/components/block-pattern-setup/index.cjs.map +2 -2
- package/build/components/block-pattern-setup/setup-toolbar.cjs.map +2 -2
- package/build/components/block-pattern-setup/use-patterns-setup.cjs.map +2 -2
- package/build/components/block-patterns-list/index.cjs.map +2 -2
- package/build/components/block-patterns-paging/index.cjs.map +2 -2
- package/build/components/block-popover/cover.cjs.map +2 -2
- package/build/components/block-popover/drop-zone.cjs.map +2 -2
- package/build/components/block-popover/inbetween.cjs.map +2 -2
- package/build/components/block-popover/index.cjs.map +2 -2
- package/build/components/block-popover/use-popover-scroll.cjs.map +2 -2
- package/build/components/block-preview/async.cjs.map +2 -2
- package/build/components/block-preview/auto.cjs.map +2 -2
- package/build/components/block-preview/index.cjs.map +2 -2
- package/build/components/block-quick-navigation/index.cjs.map +2 -2
- package/build/components/block-removal-warning-modal/index.cjs.map +2 -2
- package/build/components/block-rename/modal.cjs.map +2 -2
- package/build/components/block-rename/rename-control.cjs.map +2 -2
- package/build/components/block-rename/use-block-rename.cjs.map +2 -2
- package/build/components/block-selection-clearer/index.cjs.map +2 -2
- package/build/components/block-settings-menu/block-html-convert-button.cjs.map +2 -2
- package/build/components/block-settings-menu/block-mode-toggle.cjs.map +2 -2
- package/build/components/block-settings-menu/block-parent-selector-menu-item.cjs.map +2 -2
- package/build/components/block-settings-menu/block-settings-dropdown.cjs +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.cjs.map +2 -2
- package/build/components/block-settings-menu/block-settings-menu-first-item.cjs.map +2 -2
- package/build/components/block-settings-menu/index.cjs.map +2 -2
- package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
- package/build/components/block-styles/index.cjs.map +2 -2
- package/build/components/block-styles/menu-items.cjs.map +2 -2
- package/build/components/block-styles/use-styles-for-block.cjs.map +2 -2
- package/build/components/block-styles/utils.cjs.map +2 -2
- package/build/components/block-switcher/block-styles-menu.cjs.map +2 -2
- package/build/components/block-switcher/block-transformations-menu.cjs.map +2 -2
- package/build/components/block-switcher/block-variation-transformations.cjs.map +2 -2
- package/build/components/block-switcher/index.cjs.map +2 -2
- package/build/components/block-switcher/pattern-transformations-menu.cjs.map +2 -2
- package/build/components/block-switcher/preview-block-popover.cjs.map +2 -2
- package/build/components/block-switcher/use-transformed-patterns.cjs.map +2 -2
- package/build/components/block-switcher/utils.cjs.map +2 -2
- package/build/components/block-title/index.cjs.map +2 -2
- package/build/components/block-title/use-block-display-title.cjs.map +2 -2
- package/build/components/block-toolbar/block-styles-dropdown.cjs.map +2 -2
- package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
- package/build/components/block-toolbar/block-toolbar-last-item.cjs.map +2 -2
- package/build/components/block-toolbar/change-design.cjs.map +2 -2
- package/build/components/block-toolbar/edit-section-button.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +43 -24
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-toolbar/pattern-overrides-dropdown.cjs.map +2 -2
- package/build/components/block-toolbar/switch-section-style.cjs +4 -2
- package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
- package/build/components/block-toolbar/use-has-block-toolbar.cjs.map +2 -2
- package/build/components/block-toolbar/utils.cjs.map +2 -2
- package/build/components/block-tools/block-toolbar-popover.cjs.map +2 -2
- package/build/components/block-tools/empty-block-inserter.cjs +2 -7
- package/build/components/block-tools/empty-block-inserter.cjs.map +2 -2
- package/build/components/block-tools/index.cjs +9 -6
- package/build/components/block-tools/index.cjs.map +2 -2
- package/build/components/block-tools/insertion-point.cjs.map +2 -2
- package/build/components/block-tools/use-block-toolbar-popover-props.cjs.map +2 -2
- package/build/components/block-tools/use-selected-block-tool-props.cjs.map +2 -2
- package/build/components/block-tools/use-show-block-tools.cjs.map +2 -2
- package/build/components/block-tools/zoom-out-mode-inserter-button.cjs.map +2 -2
- package/build/components/block-tools/zoom-out-mode-inserters.cjs.map +2 -2
- package/build/components/block-types-list/index.cjs.map +2 -2
- package/build/components/block-variation-picker/index.cjs.map +2 -2
- package/build/components/block-variation-transforms/index.cjs.map +2 -2
- package/build/components/block-vertical-alignment-control/index.cjs.map +2 -2
- package/build/components/block-vertical-alignment-control/ui.cjs +3 -5
- package/build/components/block-vertical-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-visibility/constants.cjs +1 -1
- package/build/components/block-visibility/constants.cjs.map +3 -3
- package/build/components/block-visibility/modal.cjs +20 -6
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/block-visibility/use-block-visibility.cjs +28 -20
- package/build/components/block-visibility/use-block-visibility.cjs.map +4 -4
- package/build/components/block-visibility/utils.cjs +15 -2
- package/build/components/block-visibility/utils.cjs.map +3 -3
- package/build/components/block-visibility/viewport-menu-item.cjs +7 -1
- package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
- package/build/components/block-visibility/viewport-toolbar.cjs +5 -0
- package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
- package/build/components/block-visibility/viewport-visibility-info.cjs +5 -1
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
- package/build/components/border-radius-control/constants.cjs.map +2 -2
- package/build/components/border-radius-control/index.cjs.map +2 -2
- package/build/components/border-radius-control/linked-button.cjs.map +2 -2
- package/build/components/border-radius-control/utils.cjs +8 -58
- package/build/components/border-radius-control/utils.cjs.map +2 -2
- package/build/components/button-block-appender/index.cjs.map +2 -2
- package/build/components/child-layout-control/index.cjs +0 -4
- package/build/components/child-layout-control/index.cjs.map +2 -2
- package/build/components/collab/note-icon-slot.cjs.map +2 -2
- package/build/components/collab/note-icon-toolbar-slot.cjs.map +2 -2
- package/build/components/color-palette/control.cjs.map +2 -2
- package/build/components/color-palette/index.cjs.map +2 -2
- package/build/components/color-palette/with-color-context.cjs.map +2 -2
- package/build/components/color-style-selector/index.cjs.map +2 -2
- package/build/components/colors/utils.cjs +2 -4
- package/build/components/colors/utils.cjs.map +3 -3
- package/build/components/colors/with-colors.cjs +2 -4
- package/build/components/colors/with-colors.cjs.map +3 -3
- package/build/components/colors-gradients/control.cjs +5 -3
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/colors-gradients/dropdown.cjs.map +2 -2
- package/build/components/colors-gradients/panel-color-gradient-settings.cjs +5 -5
- package/build/components/colors-gradients/panel-color-gradient-settings.cjs.map +2 -2
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.cjs.map +2 -2
- package/build/components/contrast-checker/index.cjs.map +2 -2
- package/build/components/convert-to-group-buttons/index.cjs +2 -5
- package/build/components/convert-to-group-buttons/index.cjs.map +2 -2
- package/build/components/convert-to-group-buttons/toolbar.cjs +2 -4
- package/build/components/convert-to-group-buttons/toolbar.cjs.map +2 -2
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.cjs.map +2 -2
- package/build/components/copy-handler/index.cjs.map +2 -2
- package/build/components/date-format-picker/index.cjs.map +2 -2
- package/build/components/default-block-appender/index.cjs.map +2 -2
- package/build/components/dimension-control/index.cjs +30 -20
- package/build/components/dimension-control/index.cjs.map +3 -3
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +9 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
- package/build/components/dimensions-tool/index.cjs.map +2 -2
- package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
- package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
- package/build/components/duotone-control/index.cjs.map +2 -2
- package/build/components/editable-text/index.cjs.map +2 -2
- package/build/components/editor-styles/index.cjs +9 -1
- package/build/components/editor-styles/index.cjs.map +2 -2
- package/build/components/fit-text-size-warning/index.cjs.map +2 -2
- package/build/components/floating-toolbar/nav-up-icon.cjs.map +2 -2
- package/build/components/font-appearance-control/index.cjs.map +2 -2
- package/build/components/font-family/index.cjs.map +2 -2
- package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
- package/build/components/font-sizes/utils.cjs +2 -4
- package/build/components/font-sizes/utils.cjs.map +3 -3
- package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
- package/build/components/global-styles/advanced-panel.cjs.map +2 -2
- package/build/components/global-styles/background-panel.cjs +66 -25
- package/build/components/global-styles/background-panel.cjs.map +3 -3
- package/build/components/global-styles/border-panel.cjs +153 -55
- package/build/components/global-styles/border-panel.cjs.map +3 -3
- package/build/components/global-styles/color-gradient-dropdown-item.cjs +46 -14
- package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +3 -3
- package/build/components/global-styles/color-panel.cjs +63 -17
- package/build/components/global-styles/color-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +242 -64
- package/build/components/global-styles/dimensions-panel.cjs.map +3 -3
- package/build/components/global-styles/filters-panel.cjs +59 -20
- package/build/components/global-styles/filters-panel.cjs.map +3 -3
- package/build/components/global-styles/hooks.cjs +4 -1
- package/build/components/global-styles/hooks.cjs.map +2 -2
- package/build/components/global-styles/image-settings-panel.cjs.map +2 -2
- package/build/components/global-styles/inheritance/index.cjs +142 -0
- package/build/components/global-styles/inheritance/index.cjs.map +7 -0
- package/build/components/global-styles/inherited-value-context.cjs +173 -0
- package/build/components/global-styles/inherited-value-context.cjs.map +7 -0
- package/build/components/global-styles/shadow-panel-components.cjs +38 -20
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/global-styles/state-control-badges.cjs +39 -3
- package/build/components/global-styles/state-control-badges.cjs.map +2 -2
- package/build/components/global-styles/state-control.cjs +1 -1
- package/build/components/global-styles/state-control.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +271 -79
- package/build/components/global-styles/typography-panel.cjs.map +3 -3
- package/build/components/global-styles/typography-utils.cjs.map +2 -2
- package/build/components/global-styles/utils.cjs.map +2 -2
- package/build/components/gradients/use-gradient.cjs.map +2 -2
- package/build/components/gradients/with-gradient.cjs.map +2 -2
- package/build/components/grid/grid-item-movers.cjs.map +2 -2
- package/build/components/grid/grid-item-resizer.cjs.map +2 -2
- package/build/components/grid/grid-visualizer.cjs.map +2 -2
- package/build/components/grid/use-get-number-of-blocks-before-cell.cjs.map +2 -2
- package/build/components/grid/use-grid-layout-sync.cjs.map +2 -2
- package/build/components/height-control/index.cjs.map +2 -2
- package/build/components/html-element-control/index.cjs.map +2 -2
- package/build/components/html-element-control/messages.cjs.map +2 -2
- package/build/components/iframe/index.cjs +19 -24
- package/build/components/iframe/index.cjs.map +2 -2
- package/build/components/iframe/use-scale-canvas.cjs +20 -6
- package/build/components/iframe/use-scale-canvas.cjs.map +2 -2
- package/build/components/image-editor/aspect-ratio-dropdown.cjs.map +2 -2
- package/build/components/image-editor/context.cjs.map +2 -2
- package/build/components/image-editor/cropper.cjs.map +2 -2
- package/build/components/image-editor/form-controls.cjs.map +2 -2
- package/build/components/image-editor/index.cjs.map +2 -2
- package/build/components/image-editor/rotation-button.cjs.map +2 -2
- package/build/components/image-editor/use-save-image.cjs.map +2 -2
- package/build/components/image-editor/use-transform-image.cjs.map +2 -2
- package/build/components/image-editor/zoom-dropdown.cjs.map +2 -2
- package/build/components/image-size-control/index.cjs +2 -4
- package/build/components/image-size-control/index.cjs.map +2 -2
- package/build/components/image-size-control/use-dimension-handler.cjs.map +2 -2
- package/build/components/inner-blocks/button-block-appender.cjs.map +2 -2
- package/build/components/inner-blocks/default-block-appender.cjs.map +2 -2
- package/build/components/inner-blocks/index.cjs.map +2 -2
- package/build/components/inner-blocks/use-block-context.cjs.map +2 -2
- package/build/components/inner-blocks/use-inner-block-template-sync.cjs +34 -7
- package/build/components/inner-blocks/use-inner-block-template-sync.cjs.map +3 -3
- package/build/components/inner-blocks/use-nested-settings-update.cjs.map +2 -2
- package/build/components/inner-content/index.cjs.map +2 -2
- package/build/components/inserter/block-patterns-explorer/index.cjs.map +2 -2
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.cjs.map +2 -2
- package/build/components/inserter/block-patterns-explorer/pattern-list.cjs.map +2 -2
- package/build/components/inserter/block-patterns-tab/index.cjs.map +2 -2
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.cjs.map +2 -2
- package/build/components/inserter/block-patterns-tab/patterns-filter.cjs.map +2 -2
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.cjs.map +2 -2
- package/build/components/inserter/block-patterns-tab/utils.cjs.map +2 -2
- package/build/components/inserter/block-types-tab.cjs.map +2 -2
- package/build/components/inserter/category-tabs/index.cjs.map +2 -2
- package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
- package/build/components/inserter/hooks/use-insertion-point.cjs.map +2 -2
- package/build/components/inserter/hooks/use-patterns-paging.cjs.map +2 -2
- package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
- package/build/components/inserter/index.cjs +4 -13
- package/build/components/inserter/index.cjs.map +2 -2
- package/build/components/inserter/library.cjs.map +2 -2
- package/build/components/inserter/media-tab/hooks.cjs +33 -6
- package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-list.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-panel.cjs +78 -16
- package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
- package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-tab.cjs.map +2 -2
- package/build/components/inserter/media-tab/utils.cjs.map +2 -2
- package/build/components/inserter/menu.cjs.map +2 -2
- package/build/components/inserter/mobile-tab-navigation.cjs.map +2 -2
- package/build/components/inserter/no-results.cjs.map +2 -2
- package/build/components/inserter/panel.cjs.map +2 -2
- package/build/components/inserter/preview-panel.cjs.map +2 -2
- package/build/components/inserter/quick-inserter.cjs.map +2 -2
- package/build/components/inserter/search-items.cjs.map +2 -2
- package/build/components/inserter/search-results.cjs.map +2 -2
- package/build/components/inserter/tips.cjs.map +2 -2
- package/build/components/inserter-button/sparkles.cjs.map +2 -2
- package/build/components/inserter-draggable-blocks/index.cjs.map +2 -2
- package/build/components/inserter-list-item/index.cjs.map +2 -2
- package/build/components/inserter-listbox/context.cjs.map +2 -2
- package/build/components/inserter-listbox/group.cjs.map +2 -2
- package/build/components/inserter-listbox/index.cjs.map +2 -2
- package/build/components/inserter-listbox/item.cjs.map +2 -2
- package/build/components/inserter-listbox/row.cjs.map +2 -2
- package/build/components/inserter-menu-extension/index.cjs.map +2 -2
- package/build/components/inspector-controls/block-support-slot-container.cjs.map +2 -2
- package/build/components/inspector-controls/block-support-tools-panel.cjs.map +2 -2
- package/build/components/inspector-controls/fill.cjs +15 -17
- package/build/components/inspector-controls/fill.cjs.map +2 -2
- package/build/components/inspector-controls/groups.cjs.map +2 -2
- package/build/components/inspector-controls/index.cjs.map +2 -2
- package/build/components/inspector-controls/last-item.cjs.map +2 -2
- package/build/components/inspector-controls/list-view-content-popover.cjs.map +2 -2
- package/build/components/inspector-controls/slot.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/advanced-controls-panel.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/content-tab.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/position-controls-panel.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/settings-tab.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/styles-tab.cjs +10 -1
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/utils.cjs.map +2 -2
- package/build/components/inspector-popover-header/index.cjs.map +2 -2
- package/build/components/justify-content-control/index.cjs.map +2 -2
- package/build/components/justify-content-control/ui.cjs.map +2 -2
- package/build/components/keyboard-shortcuts/index.cjs +19 -11
- package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
- package/build/components/letter-spacing-control/index.cjs.map +2 -2
- package/build/components/line-height-control/index.cjs +1 -2
- package/build/components/line-height-control/index.cjs.map +2 -2
- package/build/components/link-control/constants.cjs.map +2 -2
- package/build/components/link-control/index.cjs +3 -1
- package/build/components/link-control/index.cjs.map +2 -2
- package/build/components/link-control/is-url-like.cjs.map +2 -2
- package/build/components/link-control/link-preview.cjs.map +2 -2
- package/build/components/link-control/normalize-url.cjs.map +2 -2
- package/build/components/link-control/search-create-button.cjs.map +2 -2
- package/build/components/link-control/search-input.cjs.map +2 -2
- package/build/components/link-control/search-item.cjs.map +2 -2
- package/build/components/link-control/search-results.cjs +1 -1
- package/build/components/link-control/search-results.cjs.map +2 -2
- package/build/components/link-control/settings-drawer.cjs.map +2 -2
- package/build/components/link-control/settings.cjs.map +2 -2
- package/build/components/link-control/use-create-page.cjs.map +2 -2
- package/build/components/link-control/use-internal-value.cjs.map +2 -2
- package/build/components/link-control/use-rich-url-data.cjs +1 -1
- package/build/components/link-control/use-rich-url-data.cjs.map +2 -2
- package/build/components/link-control/use-search-handler.cjs.map +2 -2
- package/build/components/link-control/viewer-slot.cjs.map +2 -2
- package/build/components/link-picker/link-picker.cjs.map +2 -2
- package/build/components/link-picker/link-preview.cjs.map +2 -2
- package/build/components/list-view/appender.cjs +6 -3
- package/build/components/list-view/appender.cjs.map +2 -2
- package/build/components/list-view/aria-referenced-text.cjs +2 -9
- package/build/components/list-view/aria-referenced-text.cjs.map +2 -2
- package/build/components/list-view/block-contents.cjs +17 -20
- package/build/components/list-view/block-contents.cjs.map +2 -2
- package/build/components/list-view/block-select-button.cjs +40 -19
- package/build/components/list-view/block-select-button.cjs.map +3 -3
- package/build/components/list-view/block.cjs +48 -42
- package/build/components/list-view/block.cjs.map +3 -3
- package/build/components/list-view/branch.cjs +93 -77
- package/build/components/list-view/branch.cjs.map +3 -3
- package/build/components/list-view/context.cjs +16 -2
- package/build/components/list-view/context.cjs.map +2 -2
- package/build/components/list-view/drop-indicator.cjs +4 -3
- package/build/components/list-view/drop-indicator.cjs.map +3 -3
- package/build/components/list-view/expander.cjs.map +2 -2
- package/build/components/list-view/index.cjs +83 -96
- package/build/components/list-view/index.cjs.map +2 -2
- package/build/components/list-view/leaf.cjs.map +2 -2
- package/build/components/list-view/use-block-selection.cjs.map +2 -2
- package/build/components/list-view/use-clipboard-handler.cjs.map +2 -2
- package/build/components/list-view/use-list-view-block-indexes.cjs.map +2 -2
- package/build/components/list-view/use-list-view-client-ids.cjs.map +2 -2
- package/build/components/list-view/use-list-view-collapse-items.cjs +3 -4
- package/build/components/list-view/use-list-view-collapse-items.cjs.map +2 -2
- package/build/components/list-view/use-list-view-drop-zone.cjs +7 -13
- package/build/components/list-view/use-list-view-drop-zone.cjs.map +2 -2
- package/build/components/list-view/use-list-view-expand-selected-item.cjs +3 -3
- package/build/components/list-view/use-list-view-expand-selected-item.cjs.map +2 -2
- package/build/components/list-view/use-list-view-images.cjs +4 -3
- package/build/components/list-view/use-list-view-images.cjs.map +2 -2
- package/build/components/list-view/use-list-view-scroll-into-view.cjs.map +2 -2
- package/build/components/list-view/utils.cjs +6 -3
- package/build/components/list-view/utils.cjs.map +2 -2
- package/build/components/media-placeholder/index.cjs +0 -1
- package/build/components/media-placeholder/index.cjs.map +2 -2
- package/build/components/media-replace-flow/index.cjs.map +2 -2
- package/build/components/media-upload/check.cjs.map +2 -2
- package/build/components/media-upload/index.cjs.map +2 -2
- package/build/components/multi-selection-inspector/index.cjs +33 -12
- package/build/components/multi-selection-inspector/index.cjs.map +3 -3
- package/build/components/navigable-toolbar/index.cjs +29 -18
- package/build/components/navigable-toolbar/index.cjs.map +2 -2
- package/build/components/observe-typing/index.cjs.map +2 -2
- package/build/components/panel-color-settings/index.cjs.map +2 -2
- package/build/components/plain-text/index.cjs.map +2 -2
- package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +2 -1
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/preview-options/index.cjs.map +2 -2
- package/build/components/provider/block-refs-provider.cjs +8 -2
- package/build/components/provider/block-refs-provider.cjs.map +2 -2
- package/build/components/provider/index.cjs +1 -1
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/selection-context.cjs.map +2 -2
- package/build/components/provider/use-block-sync.cjs +18 -6
- package/build/components/provider/use-block-sync.cjs.map +2 -2
- package/build/components/provider/use-media-upload-settings.cjs +3 -1
- package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
- package/build/components/provider/with-registry-provider.cjs.map +2 -2
- package/build/components/publish-date-time-picker/index.cjs.map +2 -2
- package/build/components/recursion-provider/index.cjs.map +2 -2
- package/build/components/resizable-box-popover/index.cjs.map +2 -2
- package/build/components/resolution-tool/index.cjs.map +2 -2
- package/build/components/responsive-block-control/index.cjs.map +2 -2
- package/build/components/responsive-block-control/label.cjs.map +2 -2
- package/build/components/rich-text/content.cjs.map +2 -2
- package/build/components/rich-text/event-listeners/before-input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/delete.cjs +2 -3
- package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/enter.cjs +3 -2
- package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/firefox-compat.cjs.map +2 -2
- package/build/components/rich-text/event-listeners/index.cjs.map +2 -2
- package/build/components/rich-text/event-listeners/input-events.cjs +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-rules.cjs +16 -14
- package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/paste-handler.cjs +10 -2
- package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
- package/build/components/rich-text/format-edit.cjs.map +2 -2
- package/build/components/rich-text/format-toolbar/index.cjs.map +2 -2
- package/build/components/rich-text/format-toolbar-container.cjs.map +2 -2
- package/build/components/rich-text/get-rich-text-values.cjs.map +2 -2
- package/build/components/rich-text/index.cjs +76 -17
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/rich-text/multiline.cjs.map +2 -2
- package/build/components/rich-text/prevent-event-discovery.cjs.map +2 -2
- package/build/components/rich-text/toolbar-button.cjs.map +2 -2
- package/build/components/rich-text/use-mark-persistent.cjs.map +2 -2
- package/build/components/rich-text/utils.cjs.map +2 -2
- package/build/components/rich-text/with-deprecations.cjs.map +2 -2
- package/build/components/selection-scroll-into-view/index.cjs.map +2 -2
- package/build/components/skip-to-selected-block/index.cjs.map +2 -2
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.cjs.map +2 -2
- package/build/components/spacing-sizes-control/index.cjs +2 -2
- package/build/components/spacing-sizes-control/index.cjs.map +2 -2
- package/build/components/spacing-sizes-control/input-controls/axial.cjs.map +2 -2
- package/build/components/spacing-sizes-control/input-controls/separated.cjs.map +2 -2
- package/build/components/spacing-sizes-control/input-controls/single.cjs.map +2 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.cjs.map +2 -2
- package/build/components/spacing-sizes-control/linked-button.cjs.map +2 -2
- package/build/components/spacing-sizes-control/utils.cjs +6 -19
- package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
- package/build/components/tabbed-sidebar/index.cjs.map +2 -2
- package/build/components/text-alignment-control/index.cjs.map +2 -2
- package/build/components/text-decoration-control/index.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +8 -2
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/text-transform-control/index.cjs.map +2 -2
- package/build/components/tool-selector/index.cjs.map +2 -2
- package/build/components/typewriter/index.cjs +129 -136
- package/build/components/typewriter/index.cjs.map +3 -3
- package/build/components/unit-control/index.cjs.map +2 -2
- package/build/components/url-input/button.cjs.map +2 -2
- package/build/components/url-input/index.cjs +314 -373
- package/build/components/url-input/index.cjs.map +3 -3
- package/build/components/url-popover/image-url-input-ui.cjs +2 -2
- package/build/components/url-popover/image-url-input-ui.cjs.map +2 -2
- package/build/components/url-popover/index.cjs.map +2 -2
- package/build/components/url-popover/link-editor.cjs.map +2 -2
- package/build/components/url-popover/link-viewer-url.cjs.map +2 -2
- package/build/components/url-popover/link-viewer.cjs.map +2 -2
- package/build/components/use-block-commands/index.cjs +23 -18
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/components/use-block-display-information/index.cjs +6 -1
- package/build/components/use-block-display-information/index.cjs.map +2 -2
- package/build/components/use-block-drop-zone/index.cjs.map +2 -2
- package/build/components/use-flash-editable-blocks/index.cjs.map +2 -2
- package/build/components/use-list-view-panel-state/index.cjs.map +2 -2
- package/build/components/use-moving-animation/index.cjs +2 -2
- package/build/components/use-moving-animation/index.cjs.map +2 -2
- package/build/components/use-on-block-drop/index.cjs +1 -1
- package/build/components/use-on-block-drop/index.cjs.map +2 -2
- package/build/components/use-paste-styles/index.cjs.map +2 -2
- package/build/components/use-resize-canvas/index.cjs.map +2 -2
- package/build/components/use-settings/index.cjs.map +2 -2
- package/build/components/warning/index.cjs.map +2 -2
- package/build/components/writing-flow/index.cjs +14 -1
- package/build/components/writing-flow/index.cjs.map +3 -3
- package/build/components/writing-flow/use-arrow-nav.cjs +48 -7
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-click-selection.cjs +29 -3
- package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-clipboard-handler.cjs +33 -5
- package/build/components/writing-flow/use-clipboard-handler.cjs.map +3 -3
- package/build/components/writing-flow/use-drag-selection.cjs +3 -8
- package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs +179 -0
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs.map +7 -0
- package/build/components/writing-flow/use-editable-root.cjs +75 -0
- package/build/components/writing-flow/use-editable-root.cjs.map +7 -0
- package/build/components/writing-flow/use-home-end.cjs +64 -0
- package/build/components/writing-flow/use-home-end.cjs.map +7 -0
- package/build/components/writing-flow/use-input.cjs +15 -5
- package/build/components/writing-flow/use-input.cjs.map +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-preview-mode-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-select-all.cjs +14 -2
- package/build/components/writing-flow/use-select-all.cjs.map +2 -2
- package/build/components/writing-flow/use-selection-observer.cjs +132 -22
- package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
- package/build/components/writing-flow/use-tab-nav.cjs +3 -1
- package/build/components/writing-flow/use-tab-nav.cjs.map +2 -2
- package/build/components/writing-flow/utils.cjs +28 -2
- package/build/components/writing-flow/utils.cjs.map +2 -2
- package/build/components/writing-mode-control/index.cjs.map +2 -2
- package/build/hooks/align.cjs.map +2 -2
- package/build/hooks/allowed-blocks.cjs.map +2 -2
- package/build/hooks/anchor.cjs.map +2 -2
- package/build/hooks/aria-label.cjs.map +2 -2
- package/build/hooks/auto-inspector-controls.cjs.map +2 -2
- package/build/hooks/background.cjs +13 -12
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-bindings.cjs.map +2 -2
- package/build/hooks/block-fields/fields-dropdown-menu.cjs.map +2 -2
- package/build/hooks/block-fields/index.cjs.map +2 -2
- package/build/hooks/block-fields/link/index.cjs.map +2 -2
- package/build/hooks/block-fields/media/index.cjs.map +2 -2
- package/build/hooks/block-fields/rich-text/index.cjs +2 -3
- package/build/hooks/block-fields/rich-text/index.cjs.map +3 -3
- package/build/hooks/block-fields/use-inspector-popover-placement.cjs.map +2 -2
- package/build/hooks/block-hooks.cjs.map +2 -2
- package/build/hooks/block-renaming.cjs.map +2 -2
- package/build/hooks/block-style-state.cjs.map +2 -2
- package/build/hooks/block-style-variation.cjs +4 -45
- package/build/hooks/block-style-variation.cjs.map +3 -3
- package/build/hooks/border.cjs +19 -4
- package/build/hooks/border.cjs.map +2 -2
- package/build/hooks/color.cjs.map +2 -2
- package/build/hooks/compat.cjs.map +2 -2
- package/build/hooks/contrast-checker.cjs.map +2 -2
- package/build/hooks/custom-class-name.cjs.map +2 -2
- package/build/hooks/custom-css.cjs +6 -2
- package/build/hooks/custom-css.cjs.map +2 -2
- package/build/hooks/dimensions.cjs +15 -4
- package/build/hooks/dimensions.cjs.map +2 -2
- package/build/hooks/duotone.cjs +26 -14
- package/build/hooks/duotone.cjs.map +3 -3
- package/build/hooks/elements.cjs +15 -5
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/fit-text.cjs.map +2 -2
- package/build/hooks/font-family.cjs +2 -4
- package/build/hooks/font-family.cjs.map +3 -3
- package/build/hooks/font-size.cjs.map +2 -2
- package/build/hooks/gap.cjs.map +2 -2
- package/build/hooks/generated-class-name.cjs.map +2 -2
- package/build/hooks/grid-visualizer.cjs +5 -3
- package/build/hooks/grid-visualizer.cjs.map +2 -2
- package/build/hooks/index.cjs.map +2 -2
- package/build/hooks/layout-child.cjs +22 -12
- package/build/hooks/layout-child.cjs.map +3 -3
- package/build/hooks/layout.cjs +32 -17
- package/build/hooks/layout.cjs.map +3 -3
- package/build/hooks/line-height.cjs +1 -2
- package/build/hooks/line-height.cjs.map +2 -2
- package/build/hooks/list-view.cjs.map +2 -2
- package/build/hooks/lock.cjs.map +2 -2
- package/build/hooks/metadata.cjs.map +2 -2
- package/build/hooks/position.cjs.map +2 -2
- package/build/hooks/settings.cjs.map +2 -2
- package/build/hooks/spacing-visualizer.cjs.map +2 -2
- package/build/hooks/state-utils.cjs.map +2 -2
- package/build/hooks/states.cjs +27 -7
- package/build/hooks/states.cjs.map +3 -3
- package/build/hooks/style.cjs +31 -9
- package/build/hooks/style.cjs.map +3 -3
- package/build/hooks/supports.cjs.map +2 -2
- package/build/hooks/text-align.cjs +36 -6
- package/build/hooks/text-align.cjs.map +3 -3
- package/build/hooks/typography.cjs +14 -5
- package/build/hooks/typography.cjs.map +2 -2
- package/build/hooks/use-border-props.cjs.map +2 -2
- package/build/hooks/use-cached-truthy.cjs.map +2 -2
- package/build/hooks/use-color-props.cjs.map +2 -2
- package/build/hooks/use-content-only-section-edit.cjs.map +2 -2
- package/build/hooks/use-dimensions-props.cjs.map +2 -2
- package/build/hooks/use-shadow-props.cjs.map +2 -2
- package/build/hooks/use-spacing-props.cjs.map +2 -2
- package/build/hooks/use-typography-props.cjs +2 -4
- package/build/hooks/use-typography-props.cjs.map +3 -3
- package/build/hooks/use-zoom-out.cjs.map +2 -2
- package/build/hooks/utils.cjs.map +2 -2
- package/build/index.cjs.map +2 -2
- package/build/layouts/constrained.cjs +14 -6
- package/build/layouts/constrained.cjs.map +2 -2
- package/build/layouts/flex.cjs +27 -19
- package/build/layouts/flex.cjs.map +2 -2
- package/build/layouts/flow.cjs.map +2 -2
- package/build/layouts/grid.cjs +0 -2
- package/build/layouts/grid.cjs.map +2 -2
- package/build/layouts/index.cjs.map +2 -2
- package/build/layouts/utils.cjs.map +2 -2
- package/build/lock-unlock.cjs.map +2 -2
- package/build/private-apis.cjs +9 -5
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs +115 -42
- package/build/store/actions.cjs.map +3 -3
- package/build/store/defaults.cjs +2 -0
- package/build/store/defaults.cjs.map +2 -2
- package/build/store/get-block-settings.cjs.map +2 -2
- package/build/store/index.cjs.map +2 -2
- package/build/store/private-actions.cjs +19 -2
- package/build/store/private-actions.cjs.map +2 -2
- package/build/store/private-selectors.cjs +69 -13
- package/build/store/private-selectors.cjs.map +3 -3
- package/build/store/reducer.cjs +9 -7
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs +44 -8
- package/build/store/selectors.cjs.map +2 -2
- package/build/store/utils.cjs.map +2 -2
- package/build/utils/block-bindings.cjs +29 -0
- package/build/utils/block-bindings.cjs.map +2 -2
- package/build/utils/dom.cjs +14 -0
- package/build/utils/dom.cjs.map +2 -2
- package/build/utils/fit-text-frontend.cjs.map +2 -2
- package/build/utils/format-font-style.cjs.map +2 -2
- package/build/utils/format-font-weight.cjs.map +2 -2
- package/build/utils/get-font-styles-and-weights.cjs.map +2 -2
- package/build/utils/group-blocks.cjs +42 -0
- package/build/utils/group-blocks.cjs.map +7 -0
- package/build/{components/rich-text/input-event.cjs → utils/native-undo.cjs} +29 -24
- package/build/utils/native-undo.cjs.map +7 -0
- package/build/utils/pasting.cjs.map +2 -2
- package/build/utils/selection.cjs.map +2 -2
- package/build/utils/sibling-block-attributes.cjs +45 -0
- package/build/utils/sibling-block-attributes.cjs.map +7 -0
- package/build/utils/transform-styles/index.cjs.map +2 -2
- package/build/utils/use-notify-copy.cjs.map +2 -2
- package/build-module/autocompleters/block.mjs.map +2 -2
- package/build-module/components/alignment-control/index.mjs.map +2 -2
- package/build-module/components/alignment-control/ui.mjs +2 -4
- package/build-module/components/alignment-control/ui.mjs.map +2 -2
- package/build-module/components/autocomplete/index.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +43 -10
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-actions/index.mjs +3 -6
- package/build-module/components/block-actions/index.mjs.map +2 -2
- package/build-module/components/block-alignment-control/constants.mjs.map +2 -2
- package/build-module/components/block-alignment-control/index.mjs.map +2 -2
- package/build-module/components/block-alignment-control/ui.mjs +5 -3
- package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-alignment-control/use-available-alignments.mjs.map +2 -2
- package/build-module/components/block-alignment-matrix-control/index.mjs.map +2 -2
- package/build-module/components/block-allowed-blocks/allowed-blocks-control.mjs.map +2 -2
- package/build-module/components/block-allowed-blocks/modal.mjs.map +2 -2
- package/build-module/components/block-bindings/attribute-control.mjs.map +2 -2
- package/build-module/components/block-bindings/index.mjs.map +2 -2
- package/build-module/components/block-bindings/source-fields-list.mjs.map +2 -2
- package/build-module/components/block-bindings/use-block-bindings-utils.mjs.map +2 -2
- package/build-module/components/block-breadcrumb/index.mjs.map +2 -2
- package/build-module/components/block-canvas/index.mjs +7 -2
- package/build-module/components/block-canvas/index.mjs.map +2 -2
- package/build-module/components/block-card/index.mjs.map +2 -2
- package/build-module/components/block-compare/block-view.mjs.map +2 -2
- package/build-module/components/block-compare/index.mjs.map +2 -2
- package/build-module/components/block-content-overlay/index.mjs.map +2 -2
- package/build-module/components/block-context/index.mjs.map +2 -2
- package/build-module/components/block-controls/fill.mjs.map +2 -2
- package/build-module/components/block-controls/groups.mjs +3 -1
- package/build-module/components/block-controls/groups.mjs.map +2 -2
- package/build-module/components/block-controls/hook.mjs.map +2 -2
- package/build-module/components/block-controls/index.mjs.map +2 -2
- package/build-module/components/block-controls/slot.mjs.map +2 -2
- package/build-module/components/block-draggable/draggable-chip.mjs.map +2 -2
- package/build-module/components/block-draggable/index.mjs.map +2 -2
- package/build-module/components/block-draggable/use-scroll-when-dragging.mjs.map +2 -2
- package/build-module/components/block-edit/context.mjs.map +2 -2
- package/build-module/components/block-edit/edit.mjs +11 -18
- package/build-module/components/block-edit/edit.mjs.map +2 -2
- package/build-module/components/block-edit/index.mjs.map +2 -2
- package/build-module/components/block-edit/multiple-usage-warning.mjs.map +2 -2
- package/build-module/components/block-edit-visually-button/index.mjs.map +2 -2
- package/build-module/components/block-editing-mode/index.mjs.map +2 -2
- package/build-module/components/block-full-height-alignment-control/index.mjs.map +2 -2
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.mjs.map +2 -2
- package/build-module/components/block-heading-level-dropdown/index.mjs.map +2 -2
- package/build-module/components/block-icon/index.mjs.map +2 -2
- package/build-module/components/block-inspector/edit-contents.mjs +49 -41
- package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +83 -50
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-inspector/inspector-pre-tabs-slot-fill.mjs.map +2 -2
- package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.mjs.map +2 -2
- package/build-module/components/block-list/block-crash-boundary.mjs.map +2 -2
- package/build-module/components/block-list/block-crash-warning.mjs.map +2 -2
- package/build-module/components/block-list/block-html.mjs +4 -1
- package/build-module/components/block-list/block-html.mjs.map +2 -2
- package/build-module/components/block-list/block-invalid-warning.mjs.map +2 -2
- package/build-module/components/block-list/block.mjs +45 -13
- package/build-module/components/block-list/block.mjs.map +3 -3
- package/build-module/components/block-list/index.mjs +35 -13
- package/build-module/components/block-list/index.mjs.map +2 -2
- package/build-module/components/block-list/layout.mjs.map +2 -2
- package/build-module/components/block-list/private-block-context.mjs.map +2 -2
- package/build-module/components/block-list/subdirectory-icon.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/index.mjs +41 -2
- package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-block-refs.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs +9 -4
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +11 -4
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-intersection-observer.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-is-hovered.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs +28 -0
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs.map +7 -0
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs.map +2 -2
- package/build-module/components/block-list/use-in-between-inserter.mjs.map +2 -2
- package/build-module/components/block-list/zoom-out-separator.mjs.map +2 -2
- package/build-module/components/block-list-appender/index.mjs.map +2 -2
- package/build-module/components/block-lock/menu-item.mjs.map +2 -2
- package/build-module/components/block-lock/modal.mjs.map +2 -2
- package/build-module/components/block-lock/toolbar.mjs.map +2 -2
- package/build-module/components/block-lock/use-block-lock.mjs.map +2 -2
- package/build-module/components/block-manager/category.mjs.map +2 -2
- package/build-module/components/block-manager/checklist.mjs.map +2 -2
- package/build-module/components/block-manager/index.mjs.map +2 -2
- package/build-module/components/block-mover/button.mjs +17 -11
- package/build-module/components/block-mover/button.mjs.map +2 -2
- package/build-module/components/block-mover/index.mjs.map +2 -2
- package/build-module/components/block-mover/mover-description.mjs.map +2 -2
- package/build-module/components/block-navigation/dropdown.mjs.map +2 -2
- package/build-module/components/block-parent-selector/index.mjs +2 -2
- package/build-module/components/block-parent-selector/index.mjs.map +2 -2
- package/build-module/components/block-pattern-setup/index.mjs.map +2 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.mjs.map +2 -2
- package/build-module/components/block-pattern-setup/use-patterns-setup.mjs.map +2 -2
- package/build-module/components/block-patterns-list/index.mjs.map +2 -2
- package/build-module/components/block-patterns-paging/index.mjs.map +2 -2
- package/build-module/components/block-popover/cover.mjs.map +2 -2
- package/build-module/components/block-popover/drop-zone.mjs.map +2 -2
- package/build-module/components/block-popover/inbetween.mjs.map +2 -2
- package/build-module/components/block-popover/index.mjs.map +2 -2
- package/build-module/components/block-popover/use-popover-scroll.mjs.map +2 -2
- package/build-module/components/block-preview/async.mjs.map +2 -2
- package/build-module/components/block-preview/auto.mjs.map +2 -2
- package/build-module/components/block-preview/index.mjs.map +2 -2
- package/build-module/components/block-quick-navigation/index.mjs.map +2 -2
- package/build-module/components/block-removal-warning-modal/index.mjs.map +2 -2
- package/build-module/components/block-rename/modal.mjs.map +2 -2
- package/build-module/components/block-rename/rename-control.mjs.map +2 -2
- package/build-module/components/block-rename/use-block-rename.mjs.map +2 -2
- package/build-module/components/block-selection-clearer/index.mjs.map +2 -2
- package/build-module/components/block-settings-menu/block-html-convert-button.mjs.map +2 -2
- package/build-module/components/block-settings-menu/block-mode-toggle.mjs.map +2 -2
- package/build-module/components/block-settings-menu/block-parent-selector-menu-item.mjs.map +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.mjs +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.mjs.map +2 -2
- package/build-module/components/block-settings-menu/block-settings-menu-first-item.mjs.map +2 -2
- package/build-module/components/block-settings-menu/index.mjs.map +2 -2
- package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
- package/build-module/components/block-styles/index.mjs.map +2 -2
- package/build-module/components/block-styles/menu-items.mjs.map +2 -2
- package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
- package/build-module/components/block-styles/utils.mjs.map +2 -2
- package/build-module/components/block-switcher/block-styles-menu.mjs.map +2 -2
- package/build-module/components/block-switcher/block-transformations-menu.mjs.map +2 -2
- package/build-module/components/block-switcher/block-variation-transformations.mjs.map +2 -2
- package/build-module/components/block-switcher/index.mjs.map +2 -2
- package/build-module/components/block-switcher/pattern-transformations-menu.mjs.map +2 -2
- package/build-module/components/block-switcher/preview-block-popover.mjs.map +2 -2
- package/build-module/components/block-switcher/use-transformed-patterns.mjs.map +2 -2
- package/build-module/components/block-switcher/utils.mjs.map +2 -2
- package/build-module/components/block-title/index.mjs.map +2 -2
- package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-styles-dropdown.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-toolbar-last-item.mjs.map +2 -2
- package/build-module/components/block-toolbar/change-design.mjs.map +2 -2
- package/build-module/components/block-toolbar/edit-section-button.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +43 -24
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/pattern-overrides-dropdown.mjs.map +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs +4 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
- package/build-module/components/block-toolbar/use-has-block-toolbar.mjs.map +2 -2
- package/build-module/components/block-toolbar/utils.mjs.map +2 -2
- package/build-module/components/block-tools/block-toolbar-popover.mjs.map +2 -2
- package/build-module/components/block-tools/empty-block-inserter.mjs +2 -7
- package/build-module/components/block-tools/empty-block-inserter.mjs.map +2 -2
- package/build-module/components/block-tools/index.mjs +10 -11
- package/build-module/components/block-tools/index.mjs.map +2 -2
- package/build-module/components/block-tools/insertion-point.mjs.map +2 -2
- package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs.map +2 -2
- package/build-module/components/block-tools/use-selected-block-tool-props.mjs.map +2 -2
- package/build-module/components/block-tools/use-show-block-tools.mjs.map +2 -2
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.mjs.map +2 -2
- package/build-module/components/block-tools/zoom-out-mode-inserters.mjs.map +2 -2
- package/build-module/components/block-types-list/index.mjs.map +2 -2
- package/build-module/components/block-variation-picker/index.mjs.map +2 -2
- package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
- package/build-module/components/block-vertical-alignment-control/index.mjs.map +2 -2
- package/build-module/components/block-vertical-alignment-control/ui.mjs +4 -6
- package/build-module/components/block-vertical-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-visibility/constants.mjs +1 -1
- package/build-module/components/block-visibility/constants.mjs.map +3 -3
- package/build-module/components/block-visibility/modal.mjs +22 -10
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/use-block-visibility.mjs +29 -21
- package/build-module/components/block-visibility/use-block-visibility.mjs.map +3 -3
- package/build-module/components/block-visibility/utils.mjs +18 -3
- package/build-module/components/block-visibility/utils.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-menu-item.mjs +7 -1
- package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-toolbar.mjs +5 -0
- package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs +5 -1
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
- package/build-module/components/border-radius-control/constants.mjs.map +2 -2
- package/build-module/components/border-radius-control/index.mjs.map +2 -2
- package/build-module/components/border-radius-control/linked-button.mjs.map +2 -2
- package/build-module/components/border-radius-control/utils.mjs +11 -53
- package/build-module/components/border-radius-control/utils.mjs.map +2 -2
- package/build-module/components/button-block-appender/index.mjs.map +2 -2
- package/build-module/components/child-layout-control/index.mjs +0 -4
- package/build-module/components/child-layout-control/index.mjs.map +2 -2
- package/build-module/components/collab/note-icon-slot.mjs.map +2 -2
- package/build-module/components/collab/note-icon-toolbar-slot.mjs.map +2 -2
- package/build-module/components/color-palette/control.mjs.map +2 -2
- package/build-module/components/color-palette/index.mjs.map +2 -2
- package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
- package/build-module/components/color-style-selector/index.mjs.map +2 -2
- package/build-module/components/colors/utils.mjs +1 -3
- package/build-module/components/colors/utils.mjs.map +2 -2
- package/build-module/components/colors/with-colors.mjs +1 -3
- package/build-module/components/colors/with-colors.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -3
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
- package/build-module/components/colors-gradients/panel-color-gradient-settings.mjs +5 -5
- package/build-module/components/colors-gradients/panel-color-gradient-settings.mjs.map +2 -2
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.mjs.map +2 -2
- package/build-module/components/contrast-checker/index.mjs.map +2 -2
- package/build-module/components/convert-to-group-buttons/index.mjs +2 -5
- package/build-module/components/convert-to-group-buttons/index.mjs.map +2 -2
- package/build-module/components/convert-to-group-buttons/toolbar.mjs +3 -5
- package/build-module/components/convert-to-group-buttons/toolbar.mjs.map +2 -2
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.mjs.map +2 -2
- package/build-module/components/copy-handler/index.mjs.map +2 -2
- package/build-module/components/date-format-picker/index.mjs.map +2 -2
- package/build-module/components/default-block-appender/index.mjs.map +2 -2
- package/build-module/components/dimension-control/index.mjs +30 -20
- package/build-module/components/dimension-control/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +10 -6
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
- package/build-module/components/duotone-control/index.mjs.map +2 -2
- package/build-module/components/editable-text/index.mjs.map +2 -2
- package/build-module/components/editor-styles/index.mjs +9 -1
- package/build-module/components/editor-styles/index.mjs.map +2 -2
- package/build-module/components/fit-text-size-warning/index.mjs.map +2 -2
- package/build-module/components/floating-toolbar/nav-up-icon.mjs.map +2 -2
- package/build-module/components/font-appearance-control/index.mjs.map +2 -2
- package/build-module/components/font-family/index.mjs.map +2 -2
- package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
- package/build-module/components/font-sizes/utils.mjs +1 -3
- package/build-module/components/font-sizes/utils.mjs.map +2 -2
- package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
- package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
- package/build-module/components/global-styles/background-panel.mjs +71 -29
- package/build-module/components/global-styles/background-panel.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +157 -56
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +51 -15
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
- package/build-module/components/global-styles/color-panel.mjs +63 -17
- package/build-module/components/global-styles/color-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +248 -66
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +64 -21
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/hooks.mjs +4 -1
- package/build-module/components/global-styles/hooks.mjs.map +2 -2
- package/build-module/components/global-styles/image-settings-panel.mjs.map +2 -2
- package/build-module/components/global-styles/inheritance/index.mjs +108 -0
- package/build-module/components/global-styles/inheritance/index.mjs.map +7 -0
- package/build-module/components/global-styles/inherited-value-context.mjs +141 -0
- package/build-module/components/global-styles/inherited-value-context.mjs.map +7 -0
- package/build-module/components/global-styles/shadow-panel-components.mjs +38 -20
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/global-styles/state-control-badges.mjs +41 -5
- package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
- package/build-module/components/global-styles/state-control.mjs +1 -1
- package/build-module/components/global-styles/state-control.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +276 -80
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/global-styles/typography-utils.mjs.map +2 -2
- package/build-module/components/global-styles/utils.mjs.map +2 -2
- package/build-module/components/gradients/use-gradient.mjs.map +2 -2
- package/build-module/components/gradients/with-gradient.mjs.map +2 -2
- package/build-module/components/grid/grid-item-movers.mjs.map +2 -2
- package/build-module/components/grid/grid-item-resizer.mjs.map +2 -2
- package/build-module/components/grid/grid-visualizer.mjs.map +2 -2
- package/build-module/components/grid/use-get-number-of-blocks-before-cell.mjs.map +2 -2
- package/build-module/components/grid/use-grid-layout-sync.mjs.map +2 -2
- package/build-module/components/height-control/index.mjs.map +2 -2
- package/build-module/components/html-element-control/index.mjs.map +2 -2
- package/build-module/components/html-element-control/messages.mjs.map +2 -2
- package/build-module/components/iframe/index.mjs +19 -24
- package/build-module/components/iframe/index.mjs.map +2 -2
- package/build-module/components/iframe/use-scale-canvas.mjs +21 -7
- package/build-module/components/iframe/use-scale-canvas.mjs.map +2 -2
- package/build-module/components/image-editor/aspect-ratio-dropdown.mjs.map +2 -2
- package/build-module/components/image-editor/context.mjs.map +2 -2
- package/build-module/components/image-editor/cropper.mjs.map +2 -2
- package/build-module/components/image-editor/form-controls.mjs.map +2 -2
- package/build-module/components/image-editor/index.mjs.map +2 -2
- package/build-module/components/image-editor/rotation-button.mjs.map +2 -2
- package/build-module/components/image-editor/use-save-image.mjs.map +2 -2
- package/build-module/components/image-editor/use-transform-image.mjs.map +2 -2
- package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
- package/build-module/components/image-size-control/index.mjs +2 -4
- package/build-module/components/image-size-control/index.mjs.map +2 -2
- package/build-module/components/image-size-control/use-dimension-handler.mjs.map +2 -2
- package/build-module/components/inner-blocks/button-block-appender.mjs.map +2 -2
- package/build-module/components/inner-blocks/default-block-appender.mjs.map +2 -2
- package/build-module/components/inner-blocks/index.mjs.map +2 -2
- package/build-module/components/inner-blocks/use-block-context.mjs.map +2 -2
- package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs +35 -8
- package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs.map +2 -2
- package/build-module/components/inner-blocks/use-nested-settings-update.mjs.map +2 -2
- package/build-module/components/inner-content/index.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-explorer/index.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-tab/index.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-tab/utils.mjs.map +2 -2
- package/build-module/components/inserter/block-types-tab.mjs.map +2 -2
- package/build-module/components/inserter/category-tabs/index.mjs.map +2 -2
- package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
- package/build-module/components/inserter/hooks/use-insertion-point.mjs.map +2 -2
- package/build-module/components/inserter/hooks/use-patterns-paging.mjs.map +2 -2
- package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
- package/build-module/components/inserter/index.mjs +4 -13
- package/build-module/components/inserter/index.mjs.map +2 -2
- package/build-module/components/inserter/library.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
- package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-panel.mjs +86 -18
- package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/utils.mjs.map +2 -2
- package/build-module/components/inserter/menu.mjs.map +2 -2
- package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
- package/build-module/components/inserter/no-results.mjs.map +2 -2
- package/build-module/components/inserter/panel.mjs.map +2 -2
- package/build-module/components/inserter/preview-panel.mjs.map +2 -2
- package/build-module/components/inserter/quick-inserter.mjs.map +2 -2
- package/build-module/components/inserter/search-items.mjs.map +2 -2
- package/build-module/components/inserter/search-results.mjs.map +2 -2
- package/build-module/components/inserter/tips.mjs.map +2 -2
- package/build-module/components/inserter-button/sparkles.mjs.map +2 -2
- package/build-module/components/inserter-draggable-blocks/index.mjs.map +2 -2
- package/build-module/components/inserter-list-item/index.mjs.map +2 -2
- package/build-module/components/inserter-listbox/context.mjs.map +2 -2
- package/build-module/components/inserter-listbox/group.mjs.map +2 -2
- package/build-module/components/inserter-listbox/index.mjs.map +2 -2
- package/build-module/components/inserter-listbox/item.mjs.map +2 -2
- package/build-module/components/inserter-listbox/row.mjs.map +2 -2
- package/build-module/components/inserter-menu-extension/index.mjs.map +2 -2
- package/build-module/components/inspector-controls/block-support-slot-container.mjs.map +2 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls/fill.mjs +15 -17
- package/build-module/components/inspector-controls/fill.mjs.map +2 -2
- package/build-module/components/inspector-controls/groups.mjs.map +2 -2
- package/build-module/components/inspector-controls/index.mjs.map +2 -2
- package/build-module/components/inspector-controls/last-item.mjs.map +2 -2
- package/build-module/components/inspector-controls/list-view-content-popover.mjs.map +2 -2
- package/build-module/components/inspector-controls/slot.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/content-tab.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/position-controls-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +6 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/utils.mjs.map +2 -2
- package/build-module/components/inspector-popover-header/index.mjs.map +2 -2
- package/build-module/components/justify-content-control/index.mjs.map +2 -2
- package/build-module/components/justify-content-control/ui.mjs.map +2 -2
- package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
- package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
- package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +1 -2
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/link-control/constants.mjs.map +2 -2
- package/build-module/components/link-control/index.mjs +4 -2
- package/build-module/components/link-control/index.mjs.map +2 -2
- package/build-module/components/link-control/is-url-like.mjs.map +2 -2
- package/build-module/components/link-control/link-preview.mjs.map +2 -2
- package/build-module/components/link-control/normalize-url.mjs.map +2 -2
- package/build-module/components/link-control/search-create-button.mjs.map +2 -2
- package/build-module/components/link-control/search-input.mjs.map +2 -2
- package/build-module/components/link-control/search-item.mjs.map +2 -2
- package/build-module/components/link-control/search-results.mjs +1 -1
- package/build-module/components/link-control/search-results.mjs.map +2 -2
- package/build-module/components/link-control/settings-drawer.mjs.map +2 -2
- package/build-module/components/link-control/settings.mjs.map +2 -2
- package/build-module/components/link-control/use-create-page.mjs.map +2 -2
- package/build-module/components/link-control/use-internal-value.mjs.map +2 -2
- package/build-module/components/link-control/use-rich-url-data.mjs +1 -1
- package/build-module/components/link-control/use-rich-url-data.mjs.map +2 -2
- package/build-module/components/link-control/use-search-handler.mjs.map +2 -2
- package/build-module/components/link-control/viewer-slot.mjs.map +2 -2
- package/build-module/components/link-picker/link-picker.mjs.map +2 -2
- package/build-module/components/link-picker/link-preview.mjs.map +2 -2
- package/build-module/components/list-view/appender.mjs +7 -4
- package/build-module/components/list-view/appender.mjs.map +2 -2
- package/build-module/components/list-view/aria-referenced-text.mjs +2 -9
- package/build-module/components/list-view/aria-referenced-text.mjs.map +2 -2
- package/build-module/components/list-view/block-contents.mjs +18 -21
- package/build-module/components/list-view/block-contents.mjs.map +2 -2
- package/build-module/components/list-view/block-select-button.mjs +49 -26
- package/build-module/components/list-view/block-select-button.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +50 -48
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/list-view/branch.mjs +100 -80
- package/build-module/components/list-view/branch.mjs.map +2 -2
- package/build-module/components/list-view/context.mjs +11 -1
- package/build-module/components/list-view/context.mjs.map +2 -2
- package/build-module/components/list-view/drop-indicator.mjs +6 -6
- package/build-module/components/list-view/drop-indicator.mjs.map +2 -2
- package/build-module/components/list-view/expander.mjs.map +2 -2
- package/build-module/components/list-view/index.mjs +87 -95
- package/build-module/components/list-view/index.mjs.map +2 -2
- package/build-module/components/list-view/leaf.mjs.map +2 -2
- package/build-module/components/list-view/use-block-selection.mjs.map +2 -2
- package/build-module/components/list-view/use-clipboard-handler.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-block-indexes.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-collapse-items.mjs +3 -4
- package/build-module/components/list-view/use-list-view-collapse-items.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-drop-zone.mjs +7 -13
- package/build-module/components/list-view/use-list-view-drop-zone.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-expand-selected-item.mjs +3 -3
- package/build-module/components/list-view/use-list-view-expand-selected-item.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-images.mjs +4 -3
- package/build-module/components/list-view/use-list-view-images.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-scroll-into-view.mjs.map +2 -2
- package/build-module/components/list-view/utils.mjs +5 -3
- package/build-module/components/list-view/utils.mjs.map +2 -2
- package/build-module/components/media-placeholder/index.mjs +0 -1
- package/build-module/components/media-placeholder/index.mjs.map +2 -2
- package/build-module/components/media-replace-flow/index.mjs.map +2 -2
- package/build-module/components/media-upload/check.mjs.map +2 -2
- package/build-module/components/media-upload/index.mjs.map +2 -2
- package/build-module/components/multi-selection-inspector/index.mjs +33 -12
- package/build-module/components/multi-selection-inspector/index.mjs.map +2 -2
- package/build-module/components/navigable-toolbar/index.mjs +30 -18
- package/build-module/components/navigable-toolbar/index.mjs.map +2 -2
- package/build-module/components/observe-typing/index.mjs.map +2 -2
- package/build-module/components/panel-color-settings/index.mjs.map +2 -2
- package/build-module/components/plain-text/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +2 -1
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/preview-options/index.mjs.map +2 -2
- package/build-module/components/provider/block-refs-provider.mjs +8 -2
- package/build-module/components/provider/block-refs-provider.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +1 -1
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/selection-context.mjs.map +2 -2
- package/build-module/components/provider/use-block-sync.mjs +18 -6
- package/build-module/components/provider/use-block-sync.mjs.map +2 -2
- package/build-module/components/provider/use-media-upload-settings.mjs +3 -1
- package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
- package/build-module/components/provider/with-registry-provider.mjs.map +2 -2
- package/build-module/components/publish-date-time-picker/index.mjs.map +2 -2
- package/build-module/components/recursion-provider/index.mjs.map +2 -2
- package/build-module/components/resizable-box-popover/index.mjs.map +2 -2
- package/build-module/components/resolution-tool/index.mjs.map +2 -2
- package/build-module/components/responsive-block-control/index.mjs.map +2 -2
- package/build-module/components/responsive-block-control/label.mjs.map +2 -2
- package/build-module/components/rich-text/content.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/delete.mjs +7 -4
- package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/enter.mjs +8 -3
- package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/firefox-compat.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/index.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-events.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-rules.mjs +21 -15
- package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs +16 -3
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
- package/build-module/components/rich-text/format-edit.mjs.map +2 -2
- package/build-module/components/rich-text/format-toolbar/index.mjs.map +2 -2
- package/build-module/components/rich-text/format-toolbar-container.mjs.map +2 -2
- package/build-module/components/rich-text/get-rich-text-values.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +79 -14
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/rich-text/multiline.mjs.map +2 -2
- package/build-module/components/rich-text/prevent-event-discovery.mjs.map +2 -2
- package/build-module/components/rich-text/toolbar-button.mjs.map +2 -2
- package/build-module/components/rich-text/use-mark-persistent.mjs.map +2 -2
- package/build-module/components/rich-text/utils.mjs.map +2 -2
- package/build-module/components/rich-text/with-deprecations.mjs.map +2 -2
- package/build-module/components/selection-scroll-into-view/index.mjs.map +2 -2
- package/build-module/components/skip-to-selected-block/index.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/index.mjs +2 -2
- package/build-module/components/spacing-sizes-control/index.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/input-controls/axial.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/input-controls/separated.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/input-controls/single.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/linked-button.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/utils.mjs +6 -18
- package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
- package/build-module/components/tabbed-sidebar/index.mjs.map +2 -2
- package/build-module/components/text-alignment-control/index.mjs.map +2 -2
- package/build-module/components/text-decoration-control/index.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +8 -2
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/text-transform-control/index.mjs.map +2 -2
- package/build-module/components/tool-selector/index.mjs.map +2 -2
- package/build-module/components/typewriter/index.mjs +129 -136
- package/build-module/components/typewriter/index.mjs.map +2 -2
- package/build-module/components/unit-control/index.mjs.map +2 -2
- package/build-module/components/url-input/button.mjs.map +2 -2
- package/build-module/components/url-input/index.mjs +317 -382
- package/build-module/components/url-input/index.mjs.map +2 -2
- package/build-module/components/url-popover/image-url-input-ui.mjs +2 -2
- package/build-module/components/url-popover/image-url-input-ui.mjs.map +2 -2
- package/build-module/components/url-popover/index.mjs.map +2 -2
- package/build-module/components/url-popover/link-editor.mjs.map +2 -2
- package/build-module/components/url-popover/link-viewer-url.mjs.map +2 -2
- package/build-module/components/url-popover/link-viewer.mjs.map +2 -2
- package/build-module/components/use-block-commands/index.mjs +23 -18
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/components/use-block-display-information/index.mjs +2 -1
- package/build-module/components/use-block-display-information/index.mjs.map +2 -2
- package/build-module/components/use-block-drop-zone/index.mjs.map +2 -2
- package/build-module/components/use-flash-editable-blocks/index.mjs.map +2 -2
- package/build-module/components/use-list-view-panel-state/index.mjs.map +2 -2
- package/build-module/components/use-moving-animation/index.mjs +2 -2
- package/build-module/components/use-moving-animation/index.mjs.map +2 -2
- package/build-module/components/use-on-block-drop/index.mjs +2 -2
- package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
- package/build-module/components/use-paste-styles/index.mjs.map +2 -2
- package/build-module/components/use-resize-canvas/index.mjs.map +2 -2
- package/build-module/components/use-settings/index.mjs.map +2 -2
- package/build-module/components/warning/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +14 -1
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +53 -8
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs +29 -3
- package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs +36 -7
- package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
- package/build-module/components/writing-flow/use-drag-selection.mjs +1 -6
- package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs +154 -0
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs.map +7 -0
- package/build-module/components/writing-flow/use-editable-root.mjs +54 -0
- package/build-module/components/writing-flow/use-editable-root.mjs.map +7 -0
- package/build-module/components/writing-flow/use-home-end.mjs +43 -0
- package/build-module/components/writing-flow/use-home-end.mjs.map +7 -0
- package/build-module/components/writing-flow/use-input.mjs +15 -5
- package/build-module/components/writing-flow/use-input.mjs.map +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-preview-mode-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-select-all.mjs +19 -3
- package/build-module/components/writing-flow/use-select-all.mjs.map +2 -2
- package/build-module/components/writing-flow/use-selection-observer.mjs +134 -21
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/components/writing-flow/use-tab-nav.mjs +3 -1
- package/build-module/components/writing-flow/use-tab-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/utils.mjs +26 -1
- package/build-module/components/writing-flow/utils.mjs.map +2 -2
- package/build-module/components/writing-mode-control/index.mjs.map +2 -2
- package/build-module/hooks/align.mjs.map +2 -2
- package/build-module/hooks/allowed-blocks.mjs.map +2 -2
- package/build-module/hooks/anchor.mjs.map +2 -2
- package/build-module/hooks/aria-label.mjs.map +2 -2
- package/build-module/hooks/auto-inspector-controls.mjs.map +2 -2
- package/build-module/hooks/background.mjs +13 -12
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-bindings.mjs.map +2 -2
- package/build-module/hooks/block-fields/fields-dropdown-menu.mjs.map +2 -2
- package/build-module/hooks/block-fields/index.mjs.map +2 -2
- package/build-module/hooks/block-fields/link/index.mjs.map +2 -2
- package/build-module/hooks/block-fields/media/index.mjs.map +2 -2
- package/build-module/hooks/block-fields/rich-text/index.mjs +2 -6
- package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
- package/build-module/hooks/block-fields/use-inspector-popover-placement.mjs.map +2 -2
- package/build-module/hooks/block-hooks.mjs.map +2 -2
- package/build-module/hooks/block-renaming.mjs.map +2 -2
- package/build-module/hooks/block-style-state.mjs.map +2 -2
- package/build-module/hooks/block-style-variation.mjs +8 -44
- package/build-module/hooks/block-style-variation.mjs.map +2 -2
- package/build-module/hooks/border.mjs +19 -4
- package/build-module/hooks/border.mjs.map +2 -2
- package/build-module/hooks/color.mjs.map +2 -2
- package/build-module/hooks/compat.mjs.map +2 -2
- package/build-module/hooks/contrast-checker.mjs.map +2 -2
- package/build-module/hooks/custom-class-name.mjs.map +2 -2
- package/build-module/hooks/custom-css.mjs +7 -3
- package/build-module/hooks/custom-css.mjs.map +2 -2
- package/build-module/hooks/dimensions.mjs +15 -4
- package/build-module/hooks/dimensions.mjs.map +2 -2
- package/build-module/hooks/duotone.mjs +20 -9
- package/build-module/hooks/duotone.mjs.map +2 -2
- package/build-module/hooks/elements.mjs +15 -5
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/fit-text.mjs.map +2 -2
- package/build-module/hooks/font-family.mjs +1 -3
- package/build-module/hooks/font-family.mjs.map +2 -2
- package/build-module/hooks/font-size.mjs.map +2 -2
- package/build-module/hooks/gap.mjs.map +2 -2
- package/build-module/hooks/generated-class-name.mjs.map +2 -2
- package/build-module/hooks/grid-visualizer.mjs +5 -3
- package/build-module/hooks/grid-visualizer.mjs.map +2 -2
- package/build-module/hooks/index.mjs.map +2 -2
- package/build-module/hooks/layout-child.mjs +22 -12
- package/build-module/hooks/layout-child.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +30 -16
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/line-height.mjs +1 -2
- package/build-module/hooks/line-height.mjs.map +2 -2
- package/build-module/hooks/list-view.mjs.map +2 -2
- package/build-module/hooks/lock.mjs.map +2 -2
- package/build-module/hooks/metadata.mjs.map +2 -2
- package/build-module/hooks/position.mjs.map +2 -2
- package/build-module/hooks/settings.mjs.map +2 -2
- package/build-module/hooks/spacing-visualizer.mjs.map +2 -2
- package/build-module/hooks/state-utils.mjs.map +2 -2
- package/build-module/hooks/states.mjs +27 -7
- package/build-module/hooks/states.mjs.map +2 -2
- package/build-module/hooks/style.mjs +40 -11
- package/build-module/hooks/style.mjs.map +2 -2
- package/build-module/hooks/supports.mjs.map +2 -2
- package/build-module/hooks/text-align.mjs +39 -10
- package/build-module/hooks/text-align.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +14 -5
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/hooks/use-border-props.mjs.map +2 -2
- package/build-module/hooks/use-cached-truthy.mjs.map +2 -2
- package/build-module/hooks/use-color-props.mjs.map +2 -2
- package/build-module/hooks/use-content-only-section-edit.mjs.map +2 -2
- package/build-module/hooks/use-dimensions-props.mjs.map +2 -2
- package/build-module/hooks/use-shadow-props.mjs.map +2 -2
- package/build-module/hooks/use-spacing-props.mjs.map +2 -2
- package/build-module/hooks/use-typography-props.mjs +1 -3
- package/build-module/hooks/use-typography-props.mjs.map +2 -2
- package/build-module/hooks/use-zoom-out.mjs.map +2 -2
- package/build-module/hooks/utils.mjs.map +2 -2
- package/build-module/index.mjs.map +2 -2
- package/build-module/layouts/constrained.mjs +14 -6
- package/build-module/layouts/constrained.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +27 -19
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/layouts/flow.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +0 -2
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/layouts/index.mjs.map +2 -2
- package/build-module/layouts/utils.mjs.map +2 -2
- package/build-module/lock-unlock.mjs.map +2 -2
- package/build-module/private-apis.mjs +7 -3
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +116 -43
- package/build-module/store/actions.mjs.map +3 -3
- package/build-module/store/defaults.mjs +2 -0
- package/build-module/store/defaults.mjs.map +2 -2
- package/build-module/store/get-block-settings.mjs.map +2 -2
- package/build-module/store/index.mjs.map +2 -2
- package/build-module/store/private-actions.mjs +19 -2
- package/build-module/store/private-actions.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +69 -13
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +9 -7
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs +44 -8
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/store/utils.mjs.map +2 -2
- package/build-module/utils/block-bindings.mjs +28 -0
- package/build-module/utils/block-bindings.mjs.map +2 -2
- package/build-module/utils/dom.mjs +13 -0
- package/build-module/utils/dom.mjs.map +2 -2
- package/build-module/utils/fit-text-frontend.mjs.map +2 -2
- package/build-module/utils/format-font-style.mjs.map +2 -2
- package/build-module/utils/format-font-weight.mjs.map +2 -2
- package/build-module/utils/get-font-styles-and-weights.mjs.map +2 -2
- package/build-module/utils/group-blocks.mjs +21 -0
- package/build-module/utils/group-blocks.mjs.map +7 -0
- package/build-module/utils/native-undo.mjs +29 -0
- package/build-module/utils/native-undo.mjs.map +7 -0
- package/build-module/utils/pasting.mjs.map +2 -2
- package/build-module/utils/selection.mjs.map +2 -2
- package/build-module/utils/sibling-block-attributes.mjs +20 -0
- package/build-module/utils/sibling-block-attributes.mjs.map +7 -0
- package/build-module/utils/transform-styles/index.mjs.map +2 -2
- package/build-module/utils/use-notify-copy.mjs.map +2 -2
- package/build-style/content-rtl.css +16 -29
- package/build-style/content.css +16 -29
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +228 -66
- package/build-style/style.css +228 -66
- package/build-types/components/block-context/index.d.ts +7 -0
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/components/block-visibility/constants.d.ts +44 -0
- package/build-types/components/block-visibility/constants.d.ts.map +1 -0
- package/build-types/components/block-visibility/use-block-visibility.d.ts +35 -0
- package/build-types/components/block-visibility/use-block-visibility.d.ts.map +1 -0
- package/build-types/lock-unlock.d.ts +2 -0
- package/build-types/lock-unlock.d.ts.map +1 -0
- package/build-types/utils/block-bindings.d.ts +19 -0
- package/build-types/utils/block-bindings.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts +11 -0
- package/build-types/utils/dom.d.ts.map +1 -1
- package/build-types/utils/fit-text-frontend.d.ts +0 -5
- package/build-types/utils/fit-text-frontend.d.ts.map +1 -1
- package/build-types/utils/format-font-style.d.ts +0 -3
- package/build-types/utils/format-font-style.d.ts.map +1 -1
- package/build-types/utils/format-font-weight.d.ts +0 -3
- package/build-types/utils/format-font-weight.d.ts.map +1 -1
- package/build-types/utils/get-font-styles-and-weights.d.ts.map +1 -1
- package/build-types/utils/get-px-from-css-unit.d.ts +2 -2
- package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -1
- package/build-types/utils/pasting.d.ts +1 -1
- package/build-types/utils/pasting.d.ts.map +1 -1
- package/build-types/utils/selection.d.ts.map +1 -1
- package/build-types/utils/transform-styles/index.d.ts +0 -3
- package/build-types/utils/transform-styles/index.d.ts.map +1 -1
- package/package.json +45 -45
- package/src/autocompleters/block.js +0 -7
- package/src/autocompleters/test/block.js +0 -7
- package/src/components/alignment-control/index.js +0 -3
- package/src/components/alignment-control/stories/aliginment-toolbar.story.jsx +0 -7
- package/src/components/alignment-control/stories/index.story.jsx +0 -7
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +1 -1
- package/src/components/alignment-control/test/index.js +0 -11
- package/src/components/alignment-control/ui.js +2 -7
- package/src/components/autocomplete/index.js +0 -7
- package/src/components/background-image-control/index.js +74 -49
- package/src/components/background-image-control/style.scss +13 -4
- package/src/components/background-image-control/test/index.js +0 -4
- package/src/components/block-actions/README.md +67 -0
- package/src/components/block-actions/index.js +3 -14
- package/src/components/block-alignment-control/constants.js +0 -3
- package/src/components/block-alignment-control/index.js +0 -3
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-alignment-control/test/index.js +1 -8
- package/src/components/block-alignment-control/ui.js +4 -13
- package/src/components/block-alignment-control/use-available-alignments.js +0 -7
- package/src/components/block-alignment-matrix-control/index.js +0 -3
- package/src/components/block-alignment-matrix-control/stories/index.story.jsx +0 -7
- package/src/components/block-allowed-blocks/allowed-blocks-control.js +0 -7
- package/src/components/block-allowed-blocks/modal.js +0 -7
- package/src/components/block-bindings/attribute-control.js +10 -11
- package/src/components/block-bindings/index.js +0 -3
- package/src/components/block-bindings/source-fields-list.js +0 -11
- package/src/components/block-bindings/test/use-block-bindings-utils.js +1 -12
- package/src/components/block-bindings/use-block-bindings-utils.js +0 -7
- package/src/components/block-breadcrumb/index.js +0 -7
- package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-breadcrumb/test/index.js +0 -7
- package/src/components/block-canvas/index.js +9 -9
- package/src/components/block-card/index.js +0 -11
- package/src/components/block-card/style.scss +1 -1
- package/src/components/block-compare/block-view.js +0 -3
- package/src/components/block-compare/index.js +0 -11
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
- package/src/components/block-compare/test/block-view.js +0 -7
- package/src/components/block-content-overlay/index.js +0 -7
- package/src/components/block-context/README.md +0 -1
- package/src/components/block-context/index.js +0 -3
- package/src/components/block-controls/README.md +0 -3
- package/src/components/block-controls/fill.js +0 -7
- package/src/components/block-controls/groups.js +2 -3
- package/src/components/block-controls/hook.js +0 -7
- package/src/components/block-controls/index.js +0 -3
- package/src/components/block-controls/slot.js +0 -7
- package/src/components/block-controls/test/index.js +0 -11
- package/src/components/block-draggable/draggable-chip.js +0 -7
- package/src/components/block-draggable/index.js +0 -7
- package/src/components/block-draggable/stories/index.story.jsx +0 -3
- package/src/components/block-draggable/use-scroll-when-dragging.js +0 -3
- package/src/components/block-edit/context.js +0 -3
- package/src/components/block-edit/edit.js +13 -42
- package/src/components/block-edit/index.js +0 -7
- package/src/components/block-edit/multiple-usage-warning.js +0 -7
- package/src/components/block-edit/test/edit.js +0 -11
- package/src/components/block-edit-visually-button/index.js +0 -7
- package/src/components/block-editing-mode/index.js +0 -7
- package/src/components/block-full-height-alignment-control/index.js +0 -3
- package/src/components/block-heading-level-dropdown/heading-level-icon.js +0 -3
- package/src/components/block-heading-level-dropdown/index.js +0 -7
- package/src/components/block-heading-level-dropdown/stories/index.story.jsx +0 -7
- package/src/components/block-icon/index.js +0 -7
- package/src/components/block-icon/stories/index.story.ts +0 -7
- package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-icon/test/index.js +0 -11
- package/src/components/block-inspector/edit-contents.js +27 -32
- package/src/components/block-inspector/index.js +67 -39
- package/src/components/block-inspector/inspector-pre-tabs-slot-fill.js +0 -3
- package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +0 -7
- package/src/components/block-list/README.md +98 -0
- package/src/components/block-list/block-crash-boundary.js +0 -3
- package/src/components/block-list/block-crash-warning.js +0 -7
- package/src/components/block-list/block-html.js +5 -11
- package/src/components/block-list/block-invalid-warning.js +0 -7
- package/src/components/block-list/block.js +63 -23
- package/src/components/block-list/content.scss +1 -11
- package/src/components/block-list/index.js +62 -26
- package/src/components/block-list/layout.js +0 -7
- package/src/components/block-list/private-block-context.js +0 -3
- package/src/components/block-list/subdirectory-icon.js +0 -3
- package/src/components/block-list/use-block-props/index.js +63 -12
- package/src/components/block-list/use-block-props/use-block-refs.js +0 -7
- package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +0 -3
- package/src/components/block-list/use-block-props/use-focus-first-element.js +23 -11
- package/src/components/block-list/use-block-props/use-focus-handler.js +35 -16
- package/src/components/block-list/use-block-props/use-intersection-observer.js +0 -7
- package/src/components/block-list/use-block-props/use-is-hovered.js +0 -7
- package/src/components/block-list/use-block-props/use-register-block-event-handlers.js +38 -0
- package/src/components/block-list/use-block-props/use-scroll-into-view.js +0 -3
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +0 -7
- package/src/components/block-list/use-in-between-inserter.js +0 -7
- package/src/components/block-list/zoom-out-separator.js +0 -11
- package/src/components/block-list-appender/index.js +0 -11
- package/src/components/block-lock/README.md +66 -0
- package/src/components/block-lock/menu-item.js +0 -7
- package/src/components/block-lock/modal.js +0 -7
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-lock/toolbar.js +0 -7
- package/src/components/block-lock/use-block-lock.js +0 -7
- package/src/components/block-manager/category.js +0 -7
- package/src/components/block-manager/checklist.js +0 -7
- package/src/components/block-manager/index.js +0 -7
- package/src/components/block-manager/style.scss +1 -1
- package/src/components/block-mover/button.js +17 -26
- package/src/components/block-mover/index.js +0 -12
- package/src/components/block-mover/mover-description.js +0 -3
- package/src/components/block-mover/stories/index.story.jsx +0 -7
- package/src/components/block-mover/test/mover-description.js +0 -3
- package/src/components/block-navigation/dropdown.js +0 -11
- package/src/components/block-navigation/style.scss +1 -1
- package/src/components/block-parent-selector/index.js +5 -9
- package/src/components/block-pattern-setup/index.js +0 -8
- package/src/components/block-pattern-setup/setup-toolbar.js +0 -7
- package/src/components/block-pattern-setup/use-patterns-setup.js +0 -7
- package/src/components/block-patterns-list/index.js +0 -11
- package/src/components/block-patterns-list/stories/index.story.jsx +3 -10
- package/src/components/block-patterns-paging/index.js +0 -3
- package/src/components/block-popover/cover.js +0 -7
- package/src/components/block-popover/drop-zone.js +0 -7
- package/src/components/block-popover/inbetween.js +0 -11
- package/src/components/block-popover/index.js +0 -11
- package/src/components/block-popover/use-popover-scroll.js +0 -3
- package/src/components/block-preview/async.js +0 -3
- package/src/components/block-preview/auto.js +0 -7
- package/src/components/block-preview/index.js +0 -11
- package/src/components/block-preview/test/index.js +0 -11
- package/src/components/block-quick-navigation/index.js +0 -7
- package/src/components/block-quick-navigation/style.scss +1 -3
- package/src/components/block-removal-warning-modal/index.js +0 -7
- package/src/components/block-rename/modal.js +0 -7
- package/src/components/block-rename/rename-control.js +0 -7
- package/src/components/block-rename/use-block-rename.js +0 -3
- package/src/components/block-selection-clearer/index.js +0 -7
- package/src/components/block-selection-clearer/test/index.js +0 -11
- package/src/components/block-settings-menu/block-html-convert-button.js +0 -7
- package/src/components/block-settings-menu/block-mode-toggle.js +0 -7
- package/src/components/block-settings-menu/block-parent-selector-menu-item.js +0 -7
- package/src/components/block-settings-menu/block-settings-dropdown.js +1 -8
- package/src/components/block-settings-menu/block-settings-menu-first-item.js +0 -3
- package/src/components/block-settings-menu/index.js +0 -7
- package/src/components/block-settings-menu/test/block-mode-toggle.js +0 -11
- package/src/components/block-settings-menu-controls/index.js +0 -7
- package/src/components/block-styles/index.js +0 -11
- package/src/components/block-styles/menu-items.js +0 -3
- package/src/components/block-styles/style.scss +2 -2
- package/src/components/block-styles/test/utils.js +0 -3
- package/src/components/block-styles/use-styles-for-block.js +0 -7
- package/src/components/block-styles/utils.js +0 -3
- package/src/components/block-switcher/block-styles-menu.js +0 -7
- package/src/components/block-switcher/block-transformations-menu.js +0 -7
- package/src/components/block-switcher/block-variation-transformations.js +0 -7
- package/src/components/block-switcher/index.js +0 -7
- package/src/components/block-switcher/pattern-transformations-menu.js +0 -8
- package/src/components/block-switcher/preview-block-popover.js +0 -7
- package/src/components/block-switcher/test/index.js +0 -11
- package/src/components/block-switcher/test/use-transformed.patterns.js +0 -7
- package/src/components/block-switcher/test/utils.js +0 -7
- package/src/components/block-switcher/use-transformed-patterns.js +0 -7
- package/src/components/block-switcher/utils.js +0 -3
- package/src/components/block-title/index.js +0 -4
- package/src/components/block-title/stories/index.story.jsx +0 -7
- package/src/components/block-title/test/index.js +0 -11
- package/src/components/block-title/use-block-display-title.js +0 -7
- package/src/components/block-toolbar/block-styles-dropdown.js +0 -7
- package/src/components/block-toolbar/block-toolbar-icon.js +0 -7
- package/src/components/block-toolbar/block-toolbar-last-item.js +0 -3
- package/src/components/block-toolbar/change-design.js +0 -7
- package/src/components/block-toolbar/edit-section-button.js +0 -7
- package/src/components/block-toolbar/index.js +41 -29
- package/src/components/block-toolbar/pattern-overrides-dropdown.js +0 -7
- package/src/components/block-toolbar/switch-section-style.js +5 -9
- package/src/components/block-toolbar/test/block-toolbar-icon.js +0 -11
- package/src/components/block-toolbar/use-has-block-toolbar.js +0 -6
- package/src/components/block-toolbar/utils.js +0 -7
- package/src/components/block-tools/block-toolbar-popover.js +0 -9
- package/src/components/block-tools/empty-block-inserter.js +3 -14
- package/src/components/block-tools/index.js +10 -20
- package/src/components/block-tools/insertion-point.js +0 -11
- package/src/components/block-tools/use-block-toolbar-popover-props.js +0 -7
- package/src/components/block-tools/use-selected-block-tool-props.js +0 -7
- package/src/components/block-tools/use-show-block-tools.js +0 -7
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +0 -7
- package/src/components/block-tools/zoom-out-mode-inserters.js +0 -7
- package/src/components/block-types-list/index.js +0 -7
- package/src/components/block-types-list/style.scss +0 -1
- package/src/components/block-variation-picker/index.js +0 -7
- package/src/components/block-variation-transforms/index.js +0 -7
- package/src/components/block-vertical-alignment-control/index.js +0 -3
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-vertical-alignment-control/test/index.js +18 -9
- package/src/components/block-vertical-alignment-control/ui.js +3 -8
- package/src/components/block-visibility/{constants.js → constants.ts} +10 -4
- package/src/components/block-visibility/modal.js +24 -21
- package/src/components/block-visibility/style.scss +1 -1
- package/src/components/block-visibility/test/use-block-visibility.js +128 -47
- package/src/components/block-visibility/test/utils.js +11 -3
- package/src/components/block-visibility/use-block-visibility.ts +92 -0
- package/src/components/block-visibility/utils.js +31 -13
- package/src/components/block-visibility/viewport-menu-item.js +10 -8
- package/src/components/block-visibility/viewport-toolbar.js +6 -7
- package/src/components/block-visibility/viewport-visibility-info.js +5 -8
- package/src/components/border-radius-control/README.md +0 -3
- package/src/components/border-radius-control/constants.js +0 -3
- package/src/components/border-radius-control/index.js +0 -7
- package/src/components/border-radius-control/linked-button.js +0 -3
- package/src/components/border-radius-control/stories/index.story.jsx +0 -7
- package/src/components/border-radius-control/test/index.js +0 -12
- package/src/components/border-radius-control/test/utils.js +0 -44
- package/src/components/border-radius-control/utils.js +12 -110
- package/src/components/button-block-appender/content.scss +7 -9
- package/src/components/button-block-appender/index.js +0 -11
- package/src/components/child-layout-control/index.js +0 -11
- package/src/components/child-layout-control/test/index.js +0 -11
- package/src/components/collab/note-icon-slot.js +0 -3
- package/src/components/collab/note-icon-toolbar-slot.js +0 -3
- package/src/components/color-palette/control.js +0 -3
- package/src/components/color-palette/index.js +0 -7
- package/src/components/color-palette/stories/control.story.jsx +0 -7
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -3
- package/src/components/color-palette/test/control.js +0 -7
- package/src/components/color-palette/with-color-context.js +0 -7
- package/src/components/color-style-selector/index.js +0 -3
- package/src/components/colors/test/utils.js +0 -3
- package/src/components/colors/test/with-colors.js +0 -7
- package/src/components/colors/utils.js +1 -15
- package/src/components/colors/with-colors.js +1 -11
- package/src/components/colors-gradients/control.js +6 -14
- package/src/components/colors-gradients/dropdown.js +0 -15
- package/src/components/colors-gradients/panel-color-gradient-settings.js +21 -28
- package/src/components/colors-gradients/style.scss +17 -7
- package/src/components/colors-gradients/test/control.js +0 -7
- package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +0 -7
- package/src/components/contrast-checker/index.js +0 -7
- package/src/components/contrast-checker/stories/index.story.ts +0 -3
- package/src/components/contrast-checker/test/index.js +0 -11
- package/src/components/convert-to-group-buttons/index.js +2 -13
- package/src/components/convert-to-group-buttons/toolbar.js +3 -12
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +0 -7
- package/src/components/copy-handler/index.js +0 -7
- package/src/components/date-format-picker/index.js +0 -3
- package/src/components/date-format-picker/stories/index.story.jsx +0 -7
- package/src/components/default-block-appender/content.scss +6 -3
- package/src/components/default-block-appender/index.js +0 -11
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +1 -1
- package/src/components/default-block-appender/test/index.js +0 -7
- package/src/components/dimension-control/index.js +9 -8
- package/src/components/dimension-control/stories/index.story.jsx +0 -7
- package/src/components/dimensions-tool/aspect-ratio-tool.js +13 -12
- package/src/components/dimensions-tool/index.js +0 -7
- package/src/components/dimensions-tool/scale-tool.js +0 -3
- package/src/components/dimensions-tool/stories/aspect-ratio-tool.story.jsx +0 -7
- package/src/components/dimensions-tool/stories/index.story.jsx +0 -7
- package/src/components/dimensions-tool/stories/scale-tool.story.jsx +0 -7
- package/src/components/dimensions-tool/stories/width-height-tool.story.jsx +0 -7
- package/src/components/dimensions-tool/test/index.js +0 -11
- package/src/components/dimensions-tool/width-height-tool.js +0 -3
- package/src/components/duotone-control/index.js +0 -3
- package/src/components/editable-text/index.js +0 -7
- package/src/components/editor-styles/index.js +16 -12
- package/src/components/fit-text-size-warning/index.js +0 -3
- package/src/components/floating-toolbar/nav-up-icon.js +0 -3
- package/src/components/font-appearance-control/index.js +0 -7
- package/src/components/font-family/index.js +0 -11
- package/src/components/font-family/stories/index.story.jsx +1 -8
- package/src/components/font-sizes/font-size-picker.js +0 -7
- package/src/components/font-sizes/test/fluid-utils.js +0 -7
- package/src/components/font-sizes/test/utils.js +0 -7
- package/src/components/font-sizes/utils.js +1 -11
- package/src/components/font-sizes/with-font-sizes.js +0 -7
- package/src/components/global-styles/advanced-panel.js +0 -7
- package/src/components/global-styles/background-panel.js +107 -41
- package/src/components/global-styles/border-panel.js +219 -55
- package/src/components/global-styles/color-gradient-dropdown-item.js +93 -39
- package/src/components/global-styles/color-panel.js +92 -18
- package/src/components/global-styles/dimensions-panel.js +422 -82
- package/src/components/global-styles/filters-panel.js +88 -39
- package/src/components/global-styles/hooks.js +8 -8
- package/src/components/global-styles/image-settings-panel.js +0 -7
- package/src/components/global-styles/inheritance/index.js +197 -0
- package/src/components/global-styles/inheritance/style.scss +184 -0
- package/src/components/global-styles/inheritance/test/index.js +270 -0
- package/src/components/global-styles/inherited-value-context.js +264 -0
- package/src/components/global-styles/shadow-panel-components.js +44 -34
- package/src/components/global-styles/state-control-badges.js +45 -13
- package/src/components/global-styles/state-control.js +2 -5
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/global-styles/test/background-panel.js +334 -5
- package/src/components/global-styles/test/border-panel.js +434 -0
- package/src/components/global-styles/test/color-panel.js +182 -9
- package/src/components/global-styles/test/dimensions-panel.js +746 -0
- package/src/components/global-styles/test/filters-panel.js +187 -0
- package/src/components/global-styles/test/inherited-value-context-core.js +87 -0
- package/src/components/global-styles/test/inherited-value-context.js +442 -0
- package/src/components/global-styles/test/state-control-badges.js +58 -0
- package/src/components/global-styles/test/typography-panel-core.js +178 -0
- package/src/components/global-styles/test/typography-panel.js +845 -15
- package/src/components/global-styles/test/typography-utils.js +0 -3
- package/src/components/global-styles/typography-panel.js +449 -108
- package/src/components/global-styles/typography-utils.js +0 -3
- package/src/components/global-styles/utils.js +0 -3
- package/src/components/gradients/use-gradient.js +0 -7
- package/src/components/gradients/with-gradient.js +0 -3
- package/src/components/grid/grid-item-movers.js +0 -11
- package/src/components/grid/grid-item-resizer.js +0 -7
- package/src/components/grid/grid-visualizer.js +0 -11
- package/src/components/grid/use-get-number-of-blocks-before-cell.js +0 -7
- package/src/components/grid/use-grid-layout-sync.js +0 -7
- package/src/components/height-control/index.js +0 -7
- package/src/components/height-control/stories/index.story.jsx +0 -7
- package/src/components/html-element-control/index.js +0 -7
- package/src/components/html-element-control/messages.js +0 -3
- package/src/components/iframe/index.js +4 -16
- package/src/components/iframe/use-scale-canvas.js +38 -14
- package/src/components/image-editor/aspect-ratio-dropdown.js +0 -7
- package/src/components/image-editor/context.js +0 -7
- package/src/components/image-editor/cropper.js +0 -11
- package/src/components/image-editor/form-controls.js +0 -7
- package/src/components/image-editor/index.js +0 -7
- package/src/components/image-editor/rotation-button.js +0 -8
- package/src/components/image-editor/style.scss +33 -0
- package/src/components/image-editor/test/index.js +0 -3
- package/src/components/image-editor/use-save-image.js +0 -7
- package/src/components/image-editor/use-transform-image.js +0 -3
- package/src/components/image-editor/zoom-dropdown.js +0 -7
- package/src/components/image-size-control/index.js +0 -9
- package/src/components/image-size-control/test/index.js +0 -7
- package/src/components/image-size-control/use-dimension-handler.js +0 -3
- package/src/components/inner-blocks/README.md +2 -0
- package/src/components/inner-blocks/button-block-appender.js +0 -7
- package/src/components/inner-blocks/default-block-appender.js +0 -3
- package/src/components/inner-blocks/index.js +0 -11
- package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
- package/src/components/inner-blocks/test/index.js +0 -8
- package/src/components/inner-blocks/use-block-context.js +0 -7
- package/src/components/inner-blocks/use-inner-block-template-sync.js +47 -23
- package/src/components/inner-blocks/use-nested-settings-update.js +0 -7
- package/src/components/inner-content/index.js +0 -7
- package/src/components/inner-content/test/index.js +0 -11
- package/src/components/inserter/block-patterns-explorer/index.js +0 -7
- package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +0 -3
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +0 -7
- package/src/components/inserter/block-patterns-tab/index.js +0 -7
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +0 -8
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +0 -7
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +0 -8
- package/src/components/inserter/block-patterns-tab/utils.js +0 -4
- package/src/components/inserter/block-types-tab.js +0 -7
- package/src/components/inserter/category-tabs/index.js +0 -7
- package/src/components/inserter/hooks/use-block-types-state.js +0 -7
- package/src/components/inserter/hooks/use-insertion-point.js +0 -7
- package/src/components/inserter/hooks/use-patterns-paging.js +0 -3
- package/src/components/inserter/hooks/use-patterns-state.js +0 -7
- package/src/components/inserter/index.js +4 -28
- package/src/components/inserter/library.js +0 -7
- package/src/components/inserter/media-tab/hooks.js +55 -14
- package/src/components/inserter/media-tab/media-list.js +0 -7
- package/src/components/inserter/media-tab/media-panel.js +117 -32
- package/src/components/inserter/media-tab/media-preview.js +0 -12
- package/src/components/inserter/media-tab/media-tab.js +0 -7
- package/src/components/inserter/media-tab/test/hooks.js +63 -7
- package/src/components/inserter/media-tab/test/media-panel.js +120 -0
- package/src/components/inserter/media-tab/utils.js +0 -3
- package/src/components/inserter/menu.js +0 -11
- package/src/components/inserter/mobile-tab-navigation.js +0 -3
- package/src/components/inserter/no-results.js +0 -3
- package/src/components/inserter/panel.js +0 -3
- package/src/components/inserter/preview-panel.js +0 -7
- package/src/components/inserter/quick-inserter.js +0 -11
- package/src/components/inserter/search-items.js +0 -3
- package/src/components/inserter/search-results.js +0 -7
- package/src/components/inserter/stories/index.story.jsx +0 -7
- package/src/components/inserter/style.scss +19 -16
- package/src/components/inserter/test/get-appender-label.js +0 -3
- package/src/components/inserter/test/search-items.js +0 -3
- package/src/components/inserter/tips.js +0 -3
- package/src/components/inserter-button/sparkles.js +0 -3
- package/src/components/inserter-draggable-blocks/index.js +0 -7
- package/src/components/inserter-list-item/index.js +0 -11
- package/src/components/inserter-list-item/style.scss +0 -15
- package/src/components/inserter-listbox/context.js +0 -3
- package/src/components/inserter-listbox/group.js +0 -3
- package/src/components/inserter-listbox/index.js +0 -8
- package/src/components/inserter-listbox/item.js +0 -3
- package/src/components/inserter-listbox/row.js +0 -3
- package/src/components/inserter-menu-extension/index.js +0 -3
- package/src/components/inspector-controls/block-support-slot-container.js +0 -3
- package/src/components/inspector-controls/block-support-tools-panel.js +0 -7
- package/src/components/inspector-controls/fill.js +22 -37
- package/src/components/inspector-controls/groups.js +0 -3
- package/src/components/inspector-controls/index.js +0 -3
- package/src/components/inspector-controls/last-item.js +0 -7
- package/src/components/inspector-controls/list-view-content-popover.js +0 -7
- package/src/components/inspector-controls/slot.js +0 -7
- package/src/components/inspector-controls-tabs/advanced-controls-panel.js +0 -7
- package/src/components/inspector-controls-tabs/content-tab.js +0 -7
- package/src/components/inspector-controls-tabs/index.js +0 -8
- package/src/components/inspector-controls-tabs/position-controls-panel.js +0 -7
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -7
- package/src/components/inspector-controls-tabs/styles-tab.js +5 -8
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +0 -7
- package/src/components/inspector-controls-tabs/utils.js +0 -3
- package/src/components/inspector-popover-header/index.js +0 -3
- package/src/components/justify-content-control/index.js +0 -3
- package/src/components/justify-content-control/ui.js +0 -3
- package/src/components/keyboard-shortcuts/index.js +24 -14
- package/src/components/letter-spacing-control/index.js +0 -7
- package/src/components/letter-spacing-control/stories/index.story.jsx +0 -7
- package/src/components/line-height-control/index.js +1 -9
- package/src/components/line-height-control/stories/index.story.jsx +0 -7
- package/src/components/line-height-control/test/index.js +0 -11
- package/src/components/link-control/constants.js +0 -3
- package/src/components/link-control/index.js +7 -13
- package/src/components/link-control/is-url-like.js +0 -3
- package/src/components/link-control/link-preview.js +0 -13
- package/src/components/link-control/normalize-url.js +0 -7
- package/src/components/link-control/search-create-button.js +0 -3
- package/src/components/link-control/search-input.js +0 -7
- package/src/components/link-control/search-item.js +0 -3
- package/src/components/link-control/search-results.js +1 -12
- package/src/components/link-control/settings-drawer.js +0 -3
- package/src/components/link-control/settings.js +0 -3
- package/src/components/link-control/style.scss +3 -3
- package/src/components/link-control/test/index.js +6 -17
- package/src/components/link-control/test/is-url-like.js +0 -3
- package/src/components/link-control/test/url-normalization.test.js +0 -11
- package/src/components/link-control/use-create-page.js +0 -3
- package/src/components/link-control/use-internal-value.js +0 -7
- package/src/components/link-control/use-rich-url-data.js +1 -8
- package/src/components/link-control/use-search-handler.js +0 -7
- package/src/components/link-control/viewer-slot.js +0 -3
- package/src/components/link-picker/link-picker.js +0 -7
- package/src/components/link-picker/link-preview.js +0 -7
- package/src/components/link-picker/style.scss +1 -2
- package/src/components/link-picker/test/index.js +0 -11
- package/src/components/list-view/appender.js +7 -11
- package/src/components/list-view/aria-referenced-text.js +12 -19
- package/src/components/list-view/block-contents.js +28 -28
- package/src/components/list-view/block-select-button.js +62 -40
- package/src/components/list-view/block.js +53 -61
- package/src/components/list-view/branch.js +179 -169
- package/src/components/list-view/context.js +24 -3
- package/src/components/list-view/drop-indicator.js +6 -18
- package/src/components/list-view/expander.js +0 -3
- package/src/components/list-view/index.js +95 -110
- package/src/components/list-view/leaf.js +0 -11
- package/src/components/list-view/style.scss +28 -9
- package/src/components/list-view/test/use-list-view-drop-zone.js +0 -3
- package/src/components/list-view/test/utils.js +0 -3
- package/src/components/list-view/use-block-selection.js +0 -7
- package/src/components/list-view/use-clipboard-handler.js +0 -7
- package/src/components/list-view/use-list-view-block-indexes.js +0 -3
- package/src/components/list-view/use-list-view-client-ids.js +0 -8
- package/src/components/list-view/use-list-view-collapse-items.js +3 -11
- package/src/components/list-view/use-list-view-drop-zone.js +11 -28
- package/src/components/list-view/use-list-view-expand-selected-item.js +3 -10
- package/src/components/list-view/use-list-view-images.js +6 -10
- package/src/components/list-view/use-list-view-scroll-into-view.js +0 -3
- package/src/components/list-view/utils.js +7 -6
- package/src/components/media-placeholder/index.js +0 -12
- package/src/components/media-placeholder/test/get-computed-accept-attribute.js +0 -3
- package/src/components/media-placeholder/test/index.js +0 -7
- package/src/components/media-replace-flow/index.js +0 -11
- package/src/components/media-replace-flow/test/index.js +0 -10
- package/src/components/media-upload/check.js +0 -7
- package/src/components/media-upload/index.js +0 -3
- package/src/components/multi-selection-inspector/index.js +42 -21
- package/src/components/multi-selection-inspector/style.scss +6 -1
- package/src/components/navigable-toolbar/index.js +38 -27
- package/src/components/observe-typing/index.js +0 -7
- package/src/components/panel-color-settings/README.md +0 -7
- package/src/components/panel-color-settings/index.js +0 -3
- package/src/components/panel-color-settings/test/index.js +0 -7
- package/src/components/plain-text/index.js +0 -11
- package/src/components/plain-text/stories/index.story.jsx +0 -7
- package/src/components/preset-input-control/custom-value-controls.js +0 -4
- package/src/components/preset-input-control/index.js +4 -8
- package/src/components/preset-input-control/test/index.js +0 -7
- package/src/components/preset-input-control/test/utils.js +0 -3
- package/src/components/preview-options/index.js +0 -3
- package/src/components/provider/block-refs-provider.js +12 -5
- package/src/components/provider/index.js +2 -9
- package/src/components/provider/selection-context.js +0 -3
- package/src/components/provider/test/experimental-provider.js +0 -10
- package/src/components/provider/test/use-block-sync.js +0 -12
- package/src/components/provider/use-block-sync.js +18 -13
- package/src/components/provider/use-media-upload-settings.js +2 -3
- package/src/components/provider/with-registry-provider.js +0 -7
- package/src/components/publish-date-time-picker/index.js +0 -7
- package/src/components/recursion-provider/README.md +0 -3
- package/src/components/recursion-provider/index.js +0 -7
- package/src/components/recursion-provider/test/index.js +0 -7
- package/src/components/resizable-box-popover/index.js +0 -7
- package/src/components/resolution-tool/index.js +0 -3
- package/src/components/resolution-tool/stories/index.story.jsx +0 -7
- package/src/components/responsive-block-control/index.js +0 -11
- package/src/components/responsive-block-control/label.js +0 -3
- package/src/components/responsive-block-control/style.scss +1 -1
- package/src/components/responsive-block-control/test/index.js +0 -11
- package/src/components/rich-text/content.js +0 -11
- package/src/components/rich-text/event-listeners/before-input-rules.js +8 -12
- package/src/components/rich-text/event-listeners/delete.js +7 -11
- package/src/components/rich-text/event-listeners/enter.js +10 -11
- package/src/components/rich-text/event-listeners/firefox-compat.js +0 -3
- package/src/components/rich-text/event-listeners/index.js +0 -7
- package/src/components/rich-text/event-listeners/input-events.js +3 -10
- package/src/components/rich-text/event-listeners/input-rules.js +23 -25
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +3 -10
- package/src/components/rich-text/event-listeners/paste-handler.js +29 -11
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +3 -10
- package/src/components/rich-text/event-listeners/shortcuts.js +3 -10
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +3 -10
- package/src/components/rich-text/format-edit.js +0 -7
- package/src/components/rich-text/format-toolbar/index.js +0 -11
- package/src/components/rich-text/format-toolbar-container.js +0 -7
- package/src/components/rich-text/get-rich-text-values.js +0 -7
- package/src/components/rich-text/index.js +116 -37
- package/src/components/rich-text/multiline.js +0 -7
- package/src/components/rich-text/prevent-event-discovery.js +0 -3
- package/src/components/rich-text/toolbar-button.js +0 -3
- package/src/components/rich-text/use-mark-persistent.js +0 -7
- package/src/components/rich-text/utils.js +0 -3
- package/src/components/rich-text/with-deprecations.js +0 -7
- package/src/components/selection-scroll-into-view/index.js +0 -3
- package/src/components/skip-to-selected-block/index.js +0 -7
- package/src/components/skip-to-selected-block/style.scss +1 -1
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +0 -7
- package/src/components/spacing-sizes-control/index.js +2 -9
- package/src/components/spacing-sizes-control/input-controls/axial.js +0 -3
- package/src/components/spacing-sizes-control/input-controls/separated.js +0 -3
- package/src/components/spacing-sizes-control/input-controls/single.js +0 -3
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -7
- package/src/components/spacing-sizes-control/linked-button.js +0 -3
- package/src/components/spacing-sizes-control/test/index.js +0 -12
- package/src/components/spacing-sizes-control/test/utils.js +16 -8
- package/src/components/spacing-sizes-control/utils.js +7 -31
- package/src/components/tabbed-sidebar/index.js +0 -7
- package/src/components/tabbed-sidebar/stories/index.story.jsx +0 -7
- package/src/components/text-alignment-control/index.js +0 -7
- package/src/components/text-alignment-control/stories/index.story.jsx +0 -7
- package/src/components/text-decoration-control/index.js +0 -7
- package/src/components/text-decoration-control/stories/index.story.jsx +0 -7
- package/src/components/text-indent-control/index.js +8 -7
- package/src/components/text-transform-control/index.js +0 -7
- package/src/components/text-transform-control/stories/index.story.jsx +0 -7
- package/src/components/tool-selector/index.js +0 -3
- package/src/components/typewriter/index.js +228 -227
- package/src/components/unit-control/index.js +0 -7
- package/src/components/unit-control/stories/index.story.jsx +0 -7
- package/src/components/url-input/button.js +0 -7
- package/src/components/url-input/index.js +400 -488
- package/src/components/url-input/test/button.js +0 -11
- package/src/components/url-input/test/index.js +666 -0
- package/src/components/url-popover/image-url-input-ui.js +2 -9
- package/src/components/url-popover/index.js +0 -7
- package/src/components/url-popover/link-editor.js +0 -11
- package/src/components/url-popover/link-viewer-url.js +0 -7
- package/src/components/url-popover/link-viewer.js +0 -11
- package/src/components/url-popover/stories/index.story.jsx +0 -7
- package/src/components/url-popover/style.scss +5 -0
- package/src/components/use-block-commands/index.js +29 -26
- package/src/components/use-block-display-information/index.js +1 -8
- package/src/components/use-block-display-information/test/index.js +0 -11
- package/src/components/use-block-drop-zone/index.js +0 -7
- package/src/components/use-block-drop-zone/test/index.js +0 -3
- package/src/components/use-flash-editable-blocks/index.js +0 -7
- package/src/components/use-list-view-panel-state/index.js +0 -7
- package/src/components/use-moving-animation/index.js +9 -14
- package/src/components/use-on-block-drop/index.js +2 -9
- package/src/components/use-on-block-drop/test/index.js +1 -7
- package/src/components/use-paste-styles/index.js +0 -7
- package/src/components/use-resize-canvas/index.js +0 -3
- package/src/components/use-settings/index.js +0 -7
- package/src/components/warning/index.js +0 -7
- package/src/components/warning/stories/index.story.jsx +0 -7
- package/src/components/warning/test/__snapshots__/index.js.snap +1 -1
- package/src/components/warning/test/index.js +0 -7
- package/src/components/writing-flow/index.js +17 -12
- package/src/components/writing-flow/test/index.js +0 -7
- package/src/components/writing-flow/use-arrow-nav.js +112 -28
- package/src/components/writing-flow/use-click-selection.js +55 -12
- package/src/components/writing-flow/use-clipboard-handler.js +70 -13
- package/src/components/writing-flow/use-drag-selection.js +1 -21
- package/src/components/writing-flow/use-editable-root-event-handlers.js +259 -0
- package/src/components/writing-flow/use-editable-root.js +105 -0
- package/src/components/writing-flow/use-home-end.js +64 -0
- package/src/components/writing-flow/use-input.js +25 -15
- package/src/components/writing-flow/use-multi-selection.js +2 -10
- package/src/components/writing-flow/use-preview-mode-nav.js +0 -7
- package/src/components/writing-flow/use-select-all.js +33 -10
- package/src/components/writing-flow/use-selection-observer.js +218 -49
- package/src/components/writing-flow/use-tab-nav.js +7 -8
- package/src/components/writing-flow/utils.js +62 -7
- package/src/components/writing-mode-control/index.js +0 -7
- package/src/components/writing-mode-control/stories/index.story.jsx +0 -7
- package/src/elements/test/index.js +0 -3
- package/src/hooks/align.js +0 -11
- package/src/hooks/allowed-blocks.js +0 -7
- package/src/hooks/anchor.js +0 -7
- package/src/hooks/aria-label.js +0 -7
- package/src/hooks/auto-inspector-controls.js +0 -7
- package/src/hooks/background.js +28 -37
- package/src/hooks/block-bindings.js +0 -7
- package/src/hooks/block-fields/fields-dropdown-menu.js +0 -7
- package/src/hooks/block-fields/index.js +0 -1
- package/src/hooks/block-fields/link/index.js +0 -7
- package/src/hooks/block-fields/link/styles.scss +1 -6
- package/src/hooks/block-fields/media/index.js +0 -7
- package/src/hooks/block-fields/media/styles.scss +1 -6
- package/src/hooks/block-fields/rich-text/index.js +6 -16
- package/src/hooks/block-fields/rich-text/styles.scss +1 -1
- package/src/hooks/block-fields/use-inspector-popover-placement.js +0 -3
- package/src/hooks/block-hooks.js +0 -7
- package/src/hooks/block-renaming.js +0 -3
- package/src/hooks/block-style-state.js +0 -7
- package/src/hooks/block-style-variation.js +8 -81
- package/src/hooks/border.js +19 -15
- package/src/hooks/color.js +0 -11
- package/src/hooks/compat.js +0 -3
- package/src/hooks/contrast-checker.js +0 -8
- package/src/hooks/custom-class-name.js +0 -11
- package/src/hooks/custom-css.js +15 -6
- package/src/hooks/dimensions.js +17 -15
- package/src/hooks/duotone.js +26 -19
- package/src/hooks/elements.js +14 -11
- package/src/hooks/fit-text.js +0 -8
- package/src/hooks/font-family.js +1 -10
- package/src/hooks/font-size.js +0 -7
- package/src/hooks/gap.js +0 -3
- package/src/hooks/generated-class-name.js +0 -3
- package/src/hooks/grid-visualizer.js +40 -43
- package/src/hooks/index.js +0 -3
- package/src/hooks/layout-child.js +19 -16
- package/src/hooks/layout.js +49 -44
- package/src/hooks/line-height.js +0 -8
- package/src/hooks/list-view.js +0 -8
- package/src/hooks/lock.js +0 -3
- package/src/hooks/metadata.js +0 -3
- package/src/hooks/position.js +0 -11
- package/src/hooks/settings.js +0 -3
- package/src/hooks/spacing-visualizer.js +0 -7
- package/src/hooks/state-utils.js +0 -3
- package/src/hooks/states.js +38 -16
- package/src/hooks/style.js +67 -24
- package/src/hooks/supports.js +0 -3
- package/src/hooks/test/align.js +0 -7
- package/src/hooks/test/allowed-blocks.js +0 -7
- package/src/hooks/test/anchor.js +0 -7
- package/src/hooks/test/auto-inspector-controls.js +0 -7
- package/src/hooks/test/background.js +115 -3
- package/src/hooks/test/block-style-state.js +0 -3
- package/src/hooks/test/custom-class-name.js +0 -7
- package/src/hooks/test/dimensions.js +0 -7
- package/src/hooks/test/duotone.js +0 -3
- package/src/hooks/test/font-size.js +0 -11
- package/src/hooks/test/gap.js +0 -3
- package/src/hooks/test/generate-fields-from-attributes.js +0 -3
- package/src/hooks/test/generated-class-name.js +0 -7
- package/src/hooks/test/inherited-value-wiring.js +408 -0
- package/src/hooks/test/layout-child.js +0 -3
- package/src/hooks/test/layout.js +0 -3
- package/src/hooks/test/metadata.js +0 -7
- package/src/hooks/test/preset-round-trip.js +450 -0
- package/src/hooks/test/settings.js +0 -7
- package/src/hooks/test/state-utils.js +0 -7
- package/src/hooks/test/style.js +29 -7
- package/src/hooks/test/text-align.js +34 -8
- package/src/hooks/test/use-typography-props.js +0 -3
- package/src/hooks/test/utils.js +0 -3
- package/src/hooks/text-align.js +41 -21
- package/src/hooks/typography.js +35 -32
- package/src/hooks/use-border-props.js +0 -3
- package/src/hooks/use-cached-truthy.js +0 -3
- package/src/hooks/use-color-props.js +0 -11
- package/src/hooks/use-content-only-section-edit.js +0 -7
- package/src/hooks/use-dimensions-props.js +0 -3
- package/src/hooks/use-shadow-props.js +0 -3
- package/src/hooks/use-spacing-props.js +0 -3
- package/src/hooks/use-typography-props.js +1 -15
- package/src/hooks/use-zoom-out.js +0 -7
- package/src/hooks/utils.js +0 -11
- package/src/index.js +0 -3
- package/src/layouts/constrained.js +5 -8
- package/src/layouts/flex.js +5 -8
- package/src/layouts/flow.js +0 -7
- package/src/layouts/grid.js +0 -10
- package/src/layouts/index.js +0 -3
- package/src/layouts/test/constrained.js +0 -11
- package/src/layouts/test/flex.js +0 -11
- package/src/layouts/test/flow.js +0 -3
- package/src/layouts/test/grid.js +0 -11
- package/src/layouts/test/utils.js +0 -3
- package/src/layouts/utils.js +0 -7
- package/src/lock-unlock.ts +0 -3
- package/src/private-apis.js +7 -5
- package/src/store/actions.js +215 -72
- package/src/store/defaults.js +4 -3
- package/src/store/get-block-settings.js +0 -7
- package/src/store/index.js +0 -7
- package/src/store/private-actions.js +33 -5
- package/src/store/private-selectors.js +125 -23
- package/src/store/reducer.js +17 -21
- package/src/store/selectors.js +100 -29
- package/src/store/test/actions.js +204 -27
- package/src/store/test/array.js +0 -3
- package/src/store/test/get-block-settings.js +0 -7
- package/src/store/test/performance.js +0 -3
- package/src/store/test/private-actions.js +0 -3
- package/src/store/test/private-selectors.js +426 -18
- package/src/store/test/reducer.js +30 -11
- package/src/store/test/registry-selectors.js +0 -7
- package/src/store/test/selectors.js +143 -7
- package/src/store/utils.js +0 -7
- package/src/style.scss +2 -0
- package/src/utils/block-bindings.ts +50 -0
- package/src/utils/dom.ts +33 -0
- package/src/utils/fit-text-frontend.ts +0 -8
- package/src/utils/format-font-style.ts +0 -7
- package/src/utils/format-font-weight.ts +0 -7
- package/src/utils/get-font-styles-and-weights.ts +0 -7
- package/src/utils/group-blocks.js +36 -0
- package/src/utils/native-undo.js +53 -0
- package/src/utils/pasting.ts +0 -3
- package/src/utils/selection.ts +0 -3
- package/src/utils/sibling-block-attributes.js +30 -0
- package/src/utils/test/block-bindings.js +178 -0
- package/src/utils/test/color-values.js +0 -3
- package/src/utils/test/format-font-style.js +0 -3
- package/src/utils/test/format-font-weight.js +0 -3
- package/src/utils/test/get-font-styles-and-weights.js +0 -3
- package/src/utils/test/math.js +0 -3
- package/src/utils/test/object.js +0 -3
- package/src/utils/test/pasting.js +0 -3
- package/src/utils/test/selection.js +0 -3
- package/src/utils/test/sorting.js +0 -3
- package/src/utils/test/transform-styles.js +0 -3
- package/src/utils/transform-styles/index.ts +0 -8
- package/src/utils/use-notify-copy.js +0 -7
- package/build/components/duotone/utils.cjs +0 -87
- package/build/components/duotone/utils.cjs.map +0 -7
- package/build/components/rich-text/input-event.cjs.map +0 -7
- package/build/components/rich-text/shortcut.cjs +0 -51
- package/build/components/rich-text/shortcut.cjs.map +0 -7
- package/build-module/components/duotone/utils.mjs +0 -59
- package/build-module/components/duotone/utils.mjs.map +0 -7
- package/build-module/components/rich-text/input-event.mjs +0 -25
- package/build-module/components/rich-text/input-event.mjs.map +0 -7
- package/build-module/components/rich-text/shortcut.mjs +0 -26
- package/build-module/components/rich-text/shortcut.mjs.map +0 -7
- package/src/components/block-visibility/use-block-visibility.js +0 -54
- package/src/components/duotone/utils.js +0 -90
- package/src/components/rich-text/input-event.js +0 -31
- package/src/components/rich-text/shortcut.js +0 -32
- package/src/hooks/test/get-variation-styles-with-ref-values.js +0 -91
|
@@ -29,8 +29,10 @@ var import_dom = require("@wordpress/dom");
|
|
|
29
29
|
var import_keycodes = require("@wordpress/keycodes");
|
|
30
30
|
var import_data = require("@wordpress/data");
|
|
31
31
|
var import_compose = require("@wordpress/compose");
|
|
32
|
+
var import_blocks = require("@wordpress/blocks");
|
|
32
33
|
var import_dom2 = require("../../utils/dom.cjs");
|
|
33
34
|
var import_store = require("../../store/index.cjs");
|
|
35
|
+
var import_utils = require("./utils.cjs");
|
|
34
36
|
function isNavigationCandidate(element, keyCode, hasModifier) {
|
|
35
37
|
const isVertical = keyCode === import_keycodes.UP || keyCode === import_keycodes.DOWN;
|
|
36
38
|
const { tagName } = element;
|
|
@@ -79,13 +81,17 @@ function getClosestTabbable(target, isReverse, containerElement, onlyVertical) {
|
|
|
79
81
|
targetRect = target.getBoundingClientRect();
|
|
80
82
|
}
|
|
81
83
|
function isTabCandidate(node) {
|
|
82
|
-
if (node.
|
|
84
|
+
if (node.children.length === 1 && (0, import_dom2.isInSameBlock)(node, node.firstElementChild) && node.firstElementChild.getAttribute("contenteditable") === "true") {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const blockType = (0, import_blocks.getBlockType)(node.getAttribute("data-type"));
|
|
88
|
+
if (node.contentEditable !== "true" && (0, import_dom2.getBlockClientId)(node) && blockType && (blockType.merge || (0, import_blocks.hasBlockSupport)(blockType, "__experimentalOnMerge")) && import_dom.focus.focusable.find(node).filter((element) => !(0, import_dom.isFormElement)(element)).length !== 0) {
|
|
83
89
|
return false;
|
|
84
90
|
}
|
|
85
91
|
if (!import_dom.focus.tabbable.isTabbableIndex(node)) {
|
|
86
92
|
return false;
|
|
87
93
|
}
|
|
88
|
-
if (node.isContentEditable && node.contentEditable !== "true") {
|
|
94
|
+
if (node.isContentEditable && node.contentEditable !== "true" && (0, import_dom2.getBlockClientId)(node.closest('[contenteditable="true"]'))) {
|
|
89
95
|
return false;
|
|
90
96
|
}
|
|
91
97
|
if (onlyVertical) {
|
|
@@ -102,11 +108,15 @@ function useArrowNav() {
|
|
|
102
108
|
const {
|
|
103
109
|
getMultiSelectedBlocksStartClientId,
|
|
104
110
|
getMultiSelectedBlocksEndClientId,
|
|
111
|
+
getNextBlockClientId,
|
|
112
|
+
getPreviousBlockClientId,
|
|
113
|
+
getSelectedBlockClientId,
|
|
114
|
+
getSelectionStart,
|
|
105
115
|
getSettings,
|
|
106
116
|
hasMultiSelection,
|
|
107
117
|
__unstableIsFullySelected
|
|
108
118
|
} = (0, import_data.useSelect)(import_store.store);
|
|
109
|
-
const { selectBlock } = (0, import_data.useDispatch)(import_store.store);
|
|
119
|
+
const { selectBlock, multiSelect } = (0, import_data.useDispatch)(import_store.store);
|
|
110
120
|
return (0, import_compose.useRefEffect)((node) => {
|
|
111
121
|
let verticalRect;
|
|
112
122
|
function onMouseDown() {
|
|
@@ -124,7 +134,11 @@ function useArrowNav() {
|
|
|
124
134
|
if (event.defaultPrevented) {
|
|
125
135
|
return;
|
|
126
136
|
}
|
|
127
|
-
const { keyCode,
|
|
137
|
+
const { keyCode, shiftKey, ctrlKey, altKey, metaKey } = event;
|
|
138
|
+
const target = event.target === node && (0, import_dom2.getSelectionEditableElement)(
|
|
139
|
+
node.ownerDocument.defaultView.getSelection(),
|
|
140
|
+
node
|
|
141
|
+
) || event.target;
|
|
128
142
|
const isUp = keyCode === import_keycodes.UP;
|
|
129
143
|
const isDown = keyCode === import_keycodes.DOWN;
|
|
130
144
|
const isLeft = keyCode === import_keycodes.LEFT;
|
|
@@ -145,6 +159,16 @@ function useArrowNav() {
|
|
|
145
159
|
}
|
|
146
160
|
if (hasMultiSelection()) {
|
|
147
161
|
if (shiftKey) {
|
|
162
|
+
const selection = defaultView.getSelection();
|
|
163
|
+
if (__unstableIsFullySelected() && (!selection.rangeCount || selection.isCollapsed)) {
|
|
164
|
+
const anchorClientId = getMultiSelectedBlocksStartClientId();
|
|
165
|
+
const focusClientId = getMultiSelectedBlocksEndClientId();
|
|
166
|
+
const nextClientId = isReverse ? getPreviousBlockClientId(focusClientId) : getNextBlockClientId(focusClientId);
|
|
167
|
+
if (nextClientId) {
|
|
168
|
+
multiSelect(anchorClientId, nextClientId);
|
|
169
|
+
event.preventDefault();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
148
172
|
return;
|
|
149
173
|
}
|
|
150
174
|
if (!__unstableIsFullySelected()) {
|
|
@@ -158,6 +182,15 @@ function useArrowNav() {
|
|
|
158
182
|
}
|
|
159
183
|
return;
|
|
160
184
|
}
|
|
185
|
+
if (shiftKey && getSelectedBlockClientId() && !getSelectionStart().attributeKey) {
|
|
186
|
+
const selectedClientId = getSelectedBlockClientId();
|
|
187
|
+
const nextClientId = isReverse ? getPreviousBlockClientId(selectedClientId) : getNextBlockClientId(selectedClientId);
|
|
188
|
+
if (nextClientId) {
|
|
189
|
+
multiSelect(selectedClientId, nextClientId);
|
|
190
|
+
event.preventDefault();
|
|
191
|
+
}
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
161
194
|
if (!isNavigationCandidate(target, keyCode, hasModifier)) {
|
|
162
195
|
return;
|
|
163
196
|
}
|
|
@@ -169,9 +202,17 @@ function useArrowNav() {
|
|
|
169
202
|
const isReverseDir = (0, import_dom.isRTL)(target) ? !isReverse : isReverse;
|
|
170
203
|
const { keepCaretInsideBlock } = getSettings();
|
|
171
204
|
if (shiftKey) {
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
|
|
205
|
+
if (isNavEdge(target, isReverse)) {
|
|
206
|
+
if (isClosestTabbableABlock(target, isReverse)) {
|
|
207
|
+
(0, import_utils.setContentEditableWrapper)(node, true);
|
|
208
|
+
} else if (node.contentEditable === "true") {
|
|
209
|
+
const selection = defaultView.getSelection();
|
|
210
|
+
selection.extend(
|
|
211
|
+
target,
|
|
212
|
+
isReverse ? 0 : target.childNodes.length
|
|
213
|
+
);
|
|
214
|
+
event.preventDefault();
|
|
215
|
+
}
|
|
175
216
|
}
|
|
176
217
|
} else if (isVertical && (0, import_dom.isVerticalEdge)(target, isReverse) && // When Alt is pressed, only intercept if the caret is also at
|
|
177
218
|
// the horizontal edge.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/writing-flow/use-arrow-nav.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tcomputeCaretRect,\n\tfocus,\n\tisHorizontalEdge,\n\tisVerticalEdge,\n\tplaceCaretAtHorizontalEdge,\n\tplaceCaretAtVerticalEdge,\n\tisRTL,\n\tisFormElement,\n} from '@wordpress/dom';\nimport { UP, DOWN, LEFT, RIGHT } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getBlockClientId } from '../../utils/dom';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Returns true if the element should consider edge navigation upon a keyboard\n * event of the given directional key code, or false otherwise.\n *\n * @param {Element} element HTML element to test.\n * @param {number} keyCode KeyboardEvent keyCode to test.\n * @param {boolean} hasModifier Whether a modifier is pressed.\n *\n * @return {boolean} Whether element should consider edge navigation.\n */\nexport function isNavigationCandidate( element, keyCode, hasModifier ) {\n\tconst isVertical = keyCode === UP || keyCode === DOWN;\n\tconst { tagName } = element;\n\tconst elementType = element.getAttribute( 'type' );\n\n\t// Native inputs should not navigate vertically, unless they are simple types that don't need up/down arrow keys.\n\tif ( isVertical && ! hasModifier ) {\n\t\tif ( tagName === 'INPUT' ) {\n\t\t\tconst verticalInputTypes = [\n\t\t\t\t'date',\n\t\t\t\t'datetime-local',\n\t\t\t\t'month',\n\t\t\t\t'number',\n\t\t\t\t'range',\n\t\t\t\t'time',\n\t\t\t\t'week',\n\t\t\t];\n\t\t\treturn ! verticalInputTypes.includes( elementType );\n\t\t}\n\t\treturn true;\n\t}\n\n\t// Native inputs should not navigate horizontally, unless they are simple types that don't need left/right arrow keys.\n\tif ( tagName === 'INPUT' ) {\n\t\tconst simpleInputTypes = [\n\t\t\t'button',\n\t\t\t'checkbox',\n\t\t\t'number',\n\t\t\t'color',\n\t\t\t'file',\n\t\t\t'image',\n\t\t\t'radio',\n\t\t\t'reset',\n\t\t\t'submit',\n\t\t];\n\t\treturn simpleInputTypes.includes( elementType );\n\t}\n\n\t// Native textareas should not navigate horizontally.\n\treturn tagName !== 'TEXTAREA';\n}\n\n/**\n * Returns the optimal tab target from the given focused element in the desired\n * direction. A preference is made toward text fields, falling back to the block\n * focus stop if no other candidates exist for the block.\n *\n * @param {Element} target Currently focused text field.\n * @param {boolean} isReverse True if considering as the first field.\n * @param {Element} containerElement Element containing all blocks.\n * @param {boolean} onlyVertical Whether to only consider tabbable elements\n * that are visually above or under the\n * target.\n *\n * @return {?Element} Optimal tab target, if one exists.\n */\nexport function getClosestTabbable(\n\ttarget,\n\tisReverse,\n\tcontainerElement,\n\tonlyVertical\n) {\n\t// Since the current focus target is not guaranteed to be a text field, find\n\t// all focusables. Tabbability is considered later.\n\tlet focusableNodes = focus.focusable.find( containerElement );\n\n\tif ( isReverse ) {\n\t\tfocusableNodes.reverse();\n\t}\n\n\t// Consider as candidates those focusables after the current target. It's\n\t// assumed this can only be reached if the target is focusable (on its\n\t// keydown event), so no need to verify it exists in the set.\n\tfocusableNodes = focusableNodes.slice(\n\t\tfocusableNodes.indexOf( target ) + 1\n\t);\n\n\tlet targetRect;\n\n\tif ( onlyVertical ) {\n\t\ttargetRect = target.getBoundingClientRect();\n\t}\n\n\tfunction isTabCandidate( node ) {\n\t\t// If it's a block wrapper (not itself a contenteditable editing surface)\n\t\t// and there are nested focusable nodes, skip because there are better\n\t\t// candidates. We must not skip contenteditable nodes that happen to\n\t\t// contain links or other focusable inline elements, since those are the\n\t\t// correct navigation targets.\n\t\t//\n\t\t// See https://github.com/WordPress/gutenberg/pull/77474\n\t\t// TODO: Consider fixing focus.tabbable\n\t\tif (\n\t\t\tnode.contentEditable !== 'true' &&\n\t\t\tgetBlockClientId( node ) &&\n\t\t\tfocus.focusable\n\t\t\t\t.find( node )\n\t\t\t\t// Exclude form elements for now because primary+a cannot be\n\t\t\t\t// used to select the parent element.\n\t\t\t\t.filter( ( element ) => ! isFormElement( element ) ).length !==\n\t\t\t\t0\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Not a candidate if the node is not tabbable.\n\t\tif ( ! focus.tabbable.isTabbableIndex( node ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Skip focusable elements such as links within content editable nodes.\n\t\tif ( node.isContentEditable && node.contentEditable !== 'true' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( onlyVertical ) {\n\t\t\tconst nodeRect = node.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\tnodeRect.left >= targetRect.right ||\n\t\t\t\tnodeRect.right <= targetRect.left\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\treturn focusableNodes.find( isTabCandidate );\n}\n\nexport default function useArrowNav() {\n\tconst {\n\t\tgetMultiSelectedBlocksStartClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetSettings,\n\t\thasMultiSelection,\n\t\t__unstableIsFullySelected,\n\t} = useSelect( blockEditorStore );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\treturn useRefEffect( ( node ) => {\n\t\t// Here a DOMRect is stored while moving the caret vertically so\n\t\t// vertical position of the start position can be restored. This is to\n\t\t// recreate browser behaviour across blocks.\n\t\tlet verticalRect;\n\n\t\tfunction onMouseDown() {\n\t\t\tverticalRect = null;\n\t\t}\n\n\t\tfunction isClosestTabbableABlock( target, isReverse ) {\n\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\ttarget,\n\t\t\t\tisReverse,\n\t\t\t\tnode\n\t\t\t);\n\t\t\treturn closestTabbable && getBlockClientId( closestTabbable );\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\t\t\t// Abort if navigation has already been handled (e.g. RichText\n\t\t\t// inline boundaries).\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { keyCode, target, shiftKey, ctrlKey, altKey, metaKey } =\n\t\t\t\tevent;\n\t\t\tconst isUp = keyCode === UP;\n\t\t\tconst isDown = keyCode === DOWN;\n\t\t\tconst isLeft = keyCode === LEFT;\n\t\t\tconst isRight = keyCode === RIGHT;\n\t\t\tconst isReverse = isUp || isLeft;\n\t\t\tconst isHorizontal = isLeft || isRight;\n\t\t\tconst isVertical = isUp || isDown;\n\t\t\tconst isNav = isHorizontal || isVertical;\n\t\t\tconst hasModifier = shiftKey || ctrlKey || altKey || metaKey;\n\t\t\tconst isNavEdge = isVertical ? isVerticalEdge : isHorizontalEdge;\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tif ( ! isNav ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// In preview mode, navigation is handled by useSelectableBlocksNav.\n\t\t\tif ( getSettings().isPreviewMode ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If there is a multi-selection, the arrow keys should collapse the\n\t\t\t// selection to the start or end of the selection.\n\t\t\tif ( hasMultiSelection() ) {\n\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Only handle if we have a full selection (not a native partial\n\t\t\t\t// selection).\n\t\t\t\tif ( ! __unstableIsFullySelected() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( isReverse ) {\n\t\t\t\t\tselectBlock( getMultiSelectedBlocksStartClientId() );\n\t\t\t\t} else {\n\t\t\t\t\tselectBlock( getMultiSelectedBlocksEndClientId(), -1 );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Abort if our current target is not a candidate for navigation\n\t\t\t// (e.g. preserve native input behaviors).\n\t\t\tif ( ! isNavigationCandidate( target, keyCode, hasModifier ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// When presing any key other than up or down, the initial vertical\n\t\t\t// position must ALWAYS be reset. The vertical position is saved so\n\t\t\t// it can be restored as well as possible on sebsequent vertical\n\t\t\t// arrow key presses. It may not always be possible to restore the\n\t\t\t// exact same position (such as at an empty line), so it wouldn't be\n\t\t\t// good to compute the position right before any vertical arrow key\n\t\t\t// press.\n\t\t\tif ( ! isVertical ) {\n\t\t\t\tverticalRect = null;\n\t\t\t} else if ( ! verticalRect ) {\n\t\t\t\tverticalRect = computeCaretRect( defaultView );\n\t\t\t}\n\n\t\t\t// In the case of RTL scripts, right means previous and left means\n\t\t\t// next, which is the exact reverse of LTR.\n\t\t\tconst isReverseDir = isRTL( target ) ? ! isReverse : isReverse;\n\t\t\tconst { keepCaretInsideBlock } = getSettings();\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif (\n\t\t\t\t\tisClosestTabbableABlock( target, isReverse ) &&\n\t\t\t\t\tisNavEdge( target, isReverse )\n\t\t\t\t) {\n\t\t\t\t\tnode.contentEditable = true;\n\t\t\t\t\t// Firefox doesn't automatically move focus.\n\t\t\t\t\tnode.focus();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tisVertical &&\n\t\t\t\tisVerticalEdge( target, isReverse ) &&\n\t\t\t\t// When Alt is pressed, only intercept if the caret is also at\n\t\t\t\t// the horizontal edge.\n\t\t\t\t( altKey ? isHorizontalEdge( target, isReverseDir ) : true ) &&\n\t\t\t\t! keepCaretInsideBlock\n\t\t\t) {\n\t\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\t\ttarget,\n\t\t\t\t\tisReverse,\n\t\t\t\t\tnode,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\n\t\t\t\tif ( closestTabbable ) {\n\t\t\t\t\tplaceCaretAtVerticalEdge(\n\t\t\t\t\t\tclosestTabbable,\n\t\t\t\t\t\t// When Alt is pressed, place the caret at the furthest\n\t\t\t\t\t\t// horizontal edge and the furthest vertical edge.\n\t\t\t\t\t\taltKey ? ! isReverse : isReverse,\n\t\t\t\t\t\taltKey ? undefined : verticalRect\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tisHorizontal &&\n\t\t\t\tdefaultView.getSelection().isCollapsed &&\n\t\t\t\tisHorizontalEdge( target, isReverseDir ) &&\n\t\t\t\t! keepCaretInsideBlock\n\t\t\t) {\n\t\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\t\ttarget,\n\t\t\t\t\tisReverseDir,\n\t\t\t\t\tnode\n\t\t\t\t);\n\t\t\t\tplaceCaretAtHorizontalEdge( closestTabbable, isReverse );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import {\n\tcomputeCaretRect,\n\tfocus,\n\tisHorizontalEdge,\n\tisVerticalEdge,\n\tplaceCaretAtHorizontalEdge,\n\tplaceCaretAtVerticalEdge,\n\tisRTL,\n\tisFormElement,\n} from '@wordpress/dom';\nimport { UP, DOWN, LEFT, RIGHT } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport {\n\tgetBlockClientId,\n\tgetSelectionEditableElement,\n\tisInSameBlock,\n} from '../../utils/dom';\nimport { store as blockEditorStore } from '../../store';\nimport { setContentEditableWrapper } from './utils';\n\n/**\n * Returns true if the element should consider edge navigation upon a keyboard\n * event of the given directional key code, or false otherwise.\n *\n * @param {Element} element HTML element to test.\n * @param {number} keyCode KeyboardEvent keyCode to test.\n * @param {boolean} hasModifier Whether a modifier is pressed.\n *\n * @return {boolean} Whether element should consider edge navigation.\n */\nexport function isNavigationCandidate( element, keyCode, hasModifier ) {\n\tconst isVertical = keyCode === UP || keyCode === DOWN;\n\tconst { tagName } = element;\n\tconst elementType = element.getAttribute( 'type' );\n\n\t// Native inputs should not navigate vertically, unless they are simple types that don't need up/down arrow keys.\n\tif ( isVertical && ! hasModifier ) {\n\t\tif ( tagName === 'INPUT' ) {\n\t\t\tconst verticalInputTypes = [\n\t\t\t\t'date',\n\t\t\t\t'datetime-local',\n\t\t\t\t'month',\n\t\t\t\t'number',\n\t\t\t\t'range',\n\t\t\t\t'time',\n\t\t\t\t'week',\n\t\t\t];\n\t\t\treturn ! verticalInputTypes.includes( elementType );\n\t\t}\n\t\treturn true;\n\t}\n\n\t// Native inputs should not navigate horizontally, unless they are simple types that don't need left/right arrow keys.\n\tif ( tagName === 'INPUT' ) {\n\t\tconst simpleInputTypes = [\n\t\t\t'button',\n\t\t\t'checkbox',\n\t\t\t'number',\n\t\t\t'color',\n\t\t\t'file',\n\t\t\t'image',\n\t\t\t'radio',\n\t\t\t'reset',\n\t\t\t'submit',\n\t\t];\n\t\treturn simpleInputTypes.includes( elementType );\n\t}\n\n\t// Native textareas should not navigate horizontally.\n\treturn tagName !== 'TEXTAREA';\n}\n\n/**\n * Returns the optimal tab target from the given focused element in the desired\n * direction. A preference is made toward text fields, falling back to the block\n * focus stop if no other candidates exist for the block.\n *\n * @param {Element} target Currently focused text field.\n * @param {boolean} isReverse True if considering as the first field.\n * @param {Element} containerElement Element containing all blocks.\n * @param {boolean} onlyVertical Whether to only consider tabbable elements\n * that are visually above or under the\n * target.\n *\n * @return {?Element} Optimal tab target, if one exists.\n */\nexport function getClosestTabbable(\n\ttarget,\n\tisReverse,\n\tcontainerElement,\n\tonlyVertical\n) {\n\t// Since the current focus target is not guaranteed to be a text field, find\n\t// all focusables. Tabbability is considered later.\n\tlet focusableNodes = focus.focusable.find( containerElement );\n\n\tif ( isReverse ) {\n\t\tfocusableNodes.reverse();\n\t}\n\n\t// Consider as candidates those focusables after the current target. It's\n\t// assumed this can only be reached if the target is focusable (on its\n\t// keydown event), so no need to verify it exists in the set.\n\tfocusableNodes = focusableNodes.slice(\n\t\tfocusableNodes.indexOf( target ) + 1\n\t);\n\n\tlet targetRect;\n\n\tif ( onlyVertical ) {\n\t\ttargetRect = target.getBoundingClientRect();\n\t}\n\n\tfunction isTabCandidate( node ) {\n\t\t// Skip if there's only one child that is content editable (and thus a\n\t\t// better candidate).\n\t\tif (\n\t\t\tnode.children.length === 1 &&\n\t\t\tisInSameBlock( node, node.firstElementChild ) &&\n\t\t\tnode.firstElementChild.getAttribute( 'contenteditable' ) === 'true'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrappers that merge with the text flow dissolve into it: their\n\t\t// content is the better candidate. Any other container is a\n\t\t// boundary the caret stops on.\n\t\tconst blockType = getBlockType( node.getAttribute( 'data-type' ) );\n\t\tif (\n\t\t\tnode.contentEditable !== 'true' &&\n\t\t\tgetBlockClientId( node ) &&\n\t\t\tblockType &&\n\t\t\t( blockType.merge ||\n\t\t\t\thasBlockSupport( blockType, '__experimentalOnMerge' ) ) &&\n\t\t\tfocus.focusable\n\t\t\t\t.find( node )\n\t\t\t\t// Exclude form elements for now because primary+a cannot be\n\t\t\t\t// used to select the parent element.\n\t\t\t\t.filter( ( element ) => ! isFormElement( element ) ).length !==\n\t\t\t\t0\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Not a candidate if the node is not tabbable.\n\t\tif ( ! focus.tabbable.isTabbableIndex( node ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Skip focusable elements such as links within content editable\n\t\t// nodes: nodes whose closest editable host is an editable element\n\t\t// within a block. When an editable root (e.g. the canvas wrapper)\n\t\t// is the editing host, everything within it is content editable,\n\t\t// but focusables like block wrappers are not text content.\n\t\tif (\n\t\t\tnode.isContentEditable &&\n\t\t\tnode.contentEditable !== 'true' &&\n\t\t\tgetBlockClientId( node.closest( '[contenteditable=\"true\"]' ) )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( onlyVertical ) {\n\t\t\tconst nodeRect = node.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\tnodeRect.left >= targetRect.right ||\n\t\t\t\tnodeRect.right <= targetRect.left\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\treturn focusableNodes.find( isTabCandidate );\n}\n\nexport default function useArrowNav() {\n\tconst {\n\t\tgetMultiSelectedBlocksStartClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetNextBlockClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectedBlockClientId,\n\t\tgetSelectionStart,\n\t\tgetSettings,\n\t\thasMultiSelection,\n\t\t__unstableIsFullySelected,\n\t} = useSelect( blockEditorStore );\n\tconst { selectBlock, multiSelect } = useDispatch( blockEditorStore );\n\treturn useRefEffect( ( node ) => {\n\t\t// Here a DOMRect is stored while moving the caret vertically so\n\t\t// vertical position of the start position can be restored. This is to\n\t\t// recreate browser behaviour across blocks.\n\t\tlet verticalRect;\n\n\t\tfunction onMouseDown() {\n\t\t\tverticalRect = null;\n\t\t}\n\n\t\tfunction isClosestTabbableABlock( target, isReverse ) {\n\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\ttarget,\n\t\t\t\tisReverse,\n\t\t\t\tnode\n\t\t\t);\n\t\t\treturn closestTabbable && getBlockClientId( closestTabbable );\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\t\t\t// Abort if navigation has already been handled (e.g. RichText\n\t\t\t// inline boundaries).\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { keyCode, shiftKey, ctrlKey, altKey, metaKey } = event;\n\t\t\t// When the wrapper is contentEditable and holds focus (the\n\t\t\t// selected block supports `editableRoot`), the event targets the\n\t\t\t// wrapper; resolve the editable element containing the selection.\n\t\t\tconst target =\n\t\t\t\t( event.target === node &&\n\t\t\t\t\tgetSelectionEditableElement(\n\t\t\t\t\t\tnode.ownerDocument.defaultView.getSelection(),\n\t\t\t\t\t\tnode\n\t\t\t\t\t) ) ||\n\t\t\t\tevent.target;\n\t\t\tconst isUp = keyCode === UP;\n\t\t\tconst isDown = keyCode === DOWN;\n\t\t\tconst isLeft = keyCode === LEFT;\n\t\t\tconst isRight = keyCode === RIGHT;\n\t\t\tconst isReverse = isUp || isLeft;\n\t\t\tconst isHorizontal = isLeft || isRight;\n\t\t\tconst isVertical = isUp || isDown;\n\t\t\tconst isNav = isHorizontal || isVertical;\n\t\t\tconst hasModifier = shiftKey || ctrlKey || altKey || metaKey;\n\t\t\tconst isNavEdge = isVertical ? isVerticalEdge : isHorizontalEdge;\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tif ( ! isNav ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// In preview mode, navigation is handled by useSelectableBlocksNav.\n\t\t\tif ( getSettings().isPreviewMode ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If there is a multi-selection, the arrow keys should collapse the\n\t\t\t// selection to the start or end of the selection.\n\t\t\tif ( hasMultiSelection() ) {\n\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\t// A fully selected multi-selection has no native\n\t\t\t\t\t// selection to extend (use-multi-selection cleared it),\n\t\t\t\t\t// so grow or shrink it by one block at the focus end.\n\t\t\t\t\t// Only without a usable native selection: a selection\n\t\t\t\t\t// that is fully selected because it resolves to a\n\t\t\t\t\t// nesting ancestor keeps its native selection, which\n\t\t\t\t\t// the browser extends natively (and the observer\n\t\t\t\t\t// promotes to the common level).\n\t\t\t\t\tconst selection = defaultView.getSelection();\n\t\t\t\t\tif (\n\t\t\t\t\t\t__unstableIsFullySelected() &&\n\t\t\t\t\t\t( ! selection.rangeCount || selection.isCollapsed )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst anchorClientId =\n\t\t\t\t\t\t\tgetMultiSelectedBlocksStartClientId();\n\t\t\t\t\t\tconst focusClientId =\n\t\t\t\t\t\t\tgetMultiSelectedBlocksEndClientId();\n\t\t\t\t\t\tconst nextClientId = isReverse\n\t\t\t\t\t\t\t? getPreviousBlockClientId( focusClientId )\n\t\t\t\t\t\t\t: getNextBlockClientId( focusClientId );\n\n\t\t\t\t\t\tif ( nextClientId ) {\n\t\t\t\t\t\t\tmultiSelect( anchorClientId, nextClientId );\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Only handle if we have a full selection (not a native partial\n\t\t\t\t// selection).\n\t\t\t\tif ( ! __unstableIsFullySelected() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( isReverse ) {\n\t\t\t\t\tselectBlock( getMultiSelectedBlocksStartClientId() );\n\t\t\t\t} else {\n\t\t\t\t\tselectBlock( getMultiSelectedBlocksEndClientId(), -1 );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// A block selected without a text selection within it (e.g. an\n\t\t\t// image or spacer) has no native selection to extend: start a\n\t\t\t// block multi-selection with the adjacent block.\n\t\t\tif (\n\t\t\t\tshiftKey &&\n\t\t\t\tgetSelectedBlockClientId() &&\n\t\t\t\t! getSelectionStart().attributeKey\n\t\t\t) {\n\t\t\t\tconst selectedClientId = getSelectedBlockClientId();\n\t\t\t\tconst nextClientId = isReverse\n\t\t\t\t\t? getPreviousBlockClientId( selectedClientId )\n\t\t\t\t\t: getNextBlockClientId( selectedClientId );\n\n\t\t\t\tif ( nextClientId ) {\n\t\t\t\t\tmultiSelect( selectedClientId, nextClientId );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Abort if our current target is not a candidate for navigation\n\t\t\t// (e.g. preserve native input behaviors).\n\t\t\tif ( ! isNavigationCandidate( target, keyCode, hasModifier ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// When presing any key other than up or down, the initial vertical\n\t\t\t// position must ALWAYS be reset. The vertical position is saved so\n\t\t\t// it can be restored as well as possible on sebsequent vertical\n\t\t\t// arrow key presses. It may not always be possible to restore the\n\t\t\t// exact same position (such as at an empty line), so it wouldn't be\n\t\t\t// good to compute the position right before any vertical arrow key\n\t\t\t// press.\n\t\t\tif ( ! isVertical ) {\n\t\t\t\tverticalRect = null;\n\t\t\t} else if ( ! verticalRect ) {\n\t\t\t\tverticalRect = computeCaretRect( defaultView );\n\t\t\t}\n\n\t\t\t// In the case of RTL scripts, right means previous and left means\n\t\t\t// next, which is the exact reverse of LTR.\n\t\t\tconst isReverseDir = isRTL( target ) ? ! isReverse : isReverse;\n\t\t\tconst { keepCaretInsideBlock } = getSettings();\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif ( isNavEdge( target, isReverse ) ) {\n\t\t\t\t\tif ( isClosestTabbableABlock( target, isReverse ) ) {\n\t\t\t\t\t\tsetContentEditableWrapper( node, true );\n\t\t\t\t\t} else if ( node.contentEditable === 'true' ) {\n\t\t\t\t\t\t// There is no block to extend the selection into.\n\t\t\t\t\t\t// Within an editable wrapper the selection could\n\t\t\t\t\t\t// natively escape into surrounding editable elements\n\t\t\t\t\t\t// (e.g. the post title), so keep it inside the block\n\t\t\t\t\t\t// by extending it to the block's edge.\n\t\t\t\t\t\tconst selection = defaultView.getSelection();\n\t\t\t\t\t\tselection.extend(\n\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\tisReverse ? 0 : target.childNodes.length\n\t\t\t\t\t\t);\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tisVertical &&\n\t\t\t\tisVerticalEdge( target, isReverse ) &&\n\t\t\t\t// When Alt is pressed, only intercept if the caret is also at\n\t\t\t\t// the horizontal edge.\n\t\t\t\t( altKey ? isHorizontalEdge( target, isReverseDir ) : true ) &&\n\t\t\t\t! keepCaretInsideBlock\n\t\t\t) {\n\t\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\t\ttarget,\n\t\t\t\t\tisReverse,\n\t\t\t\t\tnode,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\n\t\t\t\tif ( closestTabbable ) {\n\t\t\t\t\tplaceCaretAtVerticalEdge(\n\t\t\t\t\t\tclosestTabbable,\n\t\t\t\t\t\t// When Alt is pressed, place the caret at the furthest\n\t\t\t\t\t\t// horizontal edge and the furthest vertical edge.\n\t\t\t\t\t\taltKey ? ! isReverse : isReverse,\n\t\t\t\t\t\taltKey ? undefined : verticalRect\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tisHorizontal &&\n\t\t\t\tdefaultView.getSelection().isCollapsed &&\n\t\t\t\tisHorizontalEdge( target, isReverseDir ) &&\n\t\t\t\t! keepCaretInsideBlock\n\t\t\t) {\n\t\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\t\ttarget,\n\t\t\t\t\tisReverseDir,\n\t\t\t\t\tnode\n\t\t\t\t);\n\t\t\t\tplaceCaretAtHorizontalEdge( closestTabbable, isReverse );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBASO;AACP,sBAAsC;AACtC,kBAAuC;AACvC,qBAA6B;AAC7B,oBAA8C;AAC9C,IAAAA,cAIO;AACP,mBAA0C;AAC1C,mBAA0C;AAYnC,SAAS,sBAAuB,SAAS,SAAS,aAAc;AACtE,QAAM,aAAa,YAAY,sBAAM,YAAY;AACjD,QAAM,EAAE,QAAQ,IAAI;AACpB,QAAM,cAAc,QAAQ,aAAc,MAAO;AAGjD,MAAK,cAAc,CAAE,aAAc;AAClC,QAAK,YAAY,SAAU;AAC1B,YAAM,qBAAqB;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,aAAO,CAAE,mBAAmB,SAAU,WAAY;AAAA,IACnD;AACA,WAAO;AAAA,EACR;AAGA,MAAK,YAAY,SAAU;AAC1B,UAAM,mBAAmB;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AACA,WAAO,iBAAiB,SAAU,WAAY;AAAA,EAC/C;AAGA,SAAO,YAAY;AACpB;AAgBO,SAAS,mBACf,QACA,WACA,kBACA,cACC;AAGD,MAAI,iBAAiB,iBAAM,UAAU,KAAM,gBAAiB;AAE5D,MAAK,WAAY;AAChB,mBAAe,QAAQ;AAAA,EACxB;AAKA,mBAAiB,eAAe;AAAA,IAC/B,eAAe,QAAS,MAAO,IAAI;AAAA,EACpC;AAEA,MAAI;AAEJ,MAAK,cAAe;AACnB,iBAAa,OAAO,sBAAsB;AAAA,EAC3C;AAEA,WAAS,eAAgB,MAAO;AAG/B,QACC,KAAK,SAAS,WAAW,SACzB,2BAAe,MAAM,KAAK,iBAAkB,KAC5C,KAAK,kBAAkB,aAAc,iBAAkB,MAAM,QAC5D;AACD;AAAA,IACD;AAKA,UAAM,gBAAY,4BAAc,KAAK,aAAc,WAAY,CAAE;AACjE,QACC,KAAK,oBAAoB,cACzB,8BAAkB,IAAK,KACvB,cACE,UAAU,aACX,+BAAiB,WAAW,uBAAwB,MACrD,iBAAM,UACJ,KAAM,IAAK,EAGX,OAAQ,CAAE,YAAa,KAAE,0BAAe,OAAQ,CAAE,EAAE,WACrD,GACA;AACD,aAAO;AAAA,IACR;AAGA,QAAK,CAAE,iBAAM,SAAS,gBAAiB,IAAK,GAAI;AAC/C,aAAO;AAAA,IACR;AAOA,QACC,KAAK,qBACL,KAAK,oBAAoB,cACzB,8BAAkB,KAAK,QAAS,0BAA2B,CAAE,GAC5D;AACD,aAAO;AAAA,IACR;AAEA,QAAK,cAAe;AACnB,YAAM,WAAW,KAAK,sBAAsB;AAE5C,UACC,SAAS,QAAQ,WAAW,SAC5B,SAAS,SAAS,WAAW,MAC5B;AACD,eAAO;AAAA,MACR;AAAA,IACD;AAEA,WAAO;AAAA,EACR;AAEA,SAAO,eAAe,KAAM,cAAe;AAC5C;AAEe,SAAR,cAA+B;AACrC,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,uBAAW,aAAAC,KAAiB;AAChC,QAAM,EAAE,aAAa,YAAY,QAAI,yBAAa,aAAAA,KAAiB;AACnE,aAAO,6BAAc,CAAE,SAAU;AAIhC,QAAI;AAEJ,aAAS,cAAc;AACtB,qBAAe;AAAA,IAChB;AAEA,aAAS,wBAAyB,QAAQ,WAAY;AACrD,YAAM,kBAAkB;AAAA,QACvB;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,aAAO,uBAAmB,8BAAkB,eAAgB;AAAA,IAC7D;AAEA,aAAS,UAAW,OAAQ;AAG3B,UAAK,MAAM,kBAAmB;AAC7B;AAAA,MACD;AAEA,YAAM,EAAE,SAAS,UAAU,SAAS,QAAQ,QAAQ,IAAI;AAIxD,YAAM,SACH,MAAM,WAAW,YAClB;AAAA,QACC,KAAK,cAAc,YAAY,aAAa;AAAA,QAC5C;AAAA,MACD,KACD,MAAM;AACP,YAAM,OAAO,YAAY;AACzB,YAAM,SAAS,YAAY;AAC3B,YAAM,SAAS,YAAY;AAC3B,YAAM,UAAU,YAAY;AAC5B,YAAM,YAAY,QAAQ;AAC1B,YAAM,eAAe,UAAU;AAC/B,YAAM,aAAa,QAAQ;AAC3B,YAAM,QAAQ,gBAAgB;AAC9B,YAAM,cAAc,YAAY,WAAW,UAAU;AACrD,YAAM,YAAY,aAAa,4BAAiB;AAChD,YAAM,EAAE,cAAc,IAAI;AAC1B,YAAM,EAAE,YAAY,IAAI;AAExB,UAAK,CAAE,OAAQ;AACd;AAAA,MACD;AAGA,UAAK,YAAY,EAAE,eAAgB;AAClC;AAAA,MACD;AAIA,UAAK,kBAAkB,GAAI;AAC1B,YAAK,UAAW;AASf,gBAAM,YAAY,YAAY,aAAa;AAC3C,cACC,0BAA0B,MACxB,CAAE,UAAU,cAAc,UAAU,cACrC;AACD,kBAAM,iBACL,oCAAoC;AACrC,kBAAM,gBACL,kCAAkC;AACnC,kBAAM,eAAe,YAClB,yBAA0B,aAAc,IACxC,qBAAsB,aAAc;AAEvC,gBAAK,cAAe;AACnB,0BAAa,gBAAgB,YAAa;AAC1C,oBAAM,eAAe;AAAA,YACtB;AAAA,UACD;AACA;AAAA,QACD;AAIA,YAAK,CAAE,0BAA0B,GAAI;AACpC;AAAA,QACD;AAEA,cAAM,eAAe;AAErB,YAAK,WAAY;AAChB,sBAAa,oCAAoC,CAAE;AAAA,QACpD,OAAO;AACN,sBAAa,kCAAkC,GAAG,EAAG;AAAA,QACtD;AAEA;AAAA,MACD;AAKA,UACC,YACA,yBAAyB,KACzB,CAAE,kBAAkB,EAAE,cACrB;AACD,cAAM,mBAAmB,yBAAyB;AAClD,cAAM,eAAe,YAClB,yBAA0B,gBAAiB,IAC3C,qBAAsB,gBAAiB;AAE1C,YAAK,cAAe;AACnB,sBAAa,kBAAkB,YAAa;AAC5C,gBAAM,eAAe;AAAA,QACtB;AACA;AAAA,MACD;AAIA,UAAK,CAAE,sBAAuB,QAAQ,SAAS,WAAY,GAAI;AAC9D;AAAA,MACD;AASA,UAAK,CAAE,YAAa;AACnB,uBAAe;AAAA,MAChB,WAAY,CAAE,cAAe;AAC5B,2BAAe,6BAAkB,WAAY;AAAA,MAC9C;AAIA,YAAM,mBAAe,kBAAO,MAAO,IAAI,CAAE,YAAY;AACrD,YAAM,EAAE,qBAAqB,IAAI,YAAY;AAE7C,UAAK,UAAW;AACf,YAAK,UAAW,QAAQ,SAAU,GAAI;AACrC,cAAK,wBAAyB,QAAQ,SAAU,GAAI;AACnD,wDAA2B,MAAM,IAAK;AAAA,UACvC,WAAY,KAAK,oBAAoB,QAAS;AAM7C,kBAAM,YAAY,YAAY,aAAa;AAC3C,sBAAU;AAAA,cACT;AAAA,cACA,YAAY,IAAI,OAAO,WAAW;AAAA,YACnC;AACA,kBAAM,eAAe;AAAA,UACtB;AAAA,QACD;AAAA,MACD,WACC,kBACA,2BAAgB,QAAQ,SAAU;AAAA;AAAA,OAGhC,aAAS,6BAAkB,QAAQ,YAAa,IAAI,SACtD,CAAE,sBACD;AACD,cAAM,kBAAkB;AAAA,UACvB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAEA,YAAK,iBAAkB;AACtB;AAAA,YACC;AAAA;AAAA;AAAA,YAGA,SAAS,CAAE,YAAY;AAAA,YACvB,SAAS,SAAY;AAAA,UACtB;AACA,gBAAM,eAAe;AAAA,QACtB;AAAA,MACD,WACC,gBACA,YAAY,aAAa,EAAE,mBAC3B,6BAAkB,QAAQ,YAAa,KACvC,CAAE,sBACD;AACD,cAAM,kBAAkB;AAAA,UACvB;AAAA,UACA;AAAA,UACA;AAAA,QACD;AACA,mDAA4B,iBAAiB,SAAU;AACvD,cAAM,eAAe;AAAA,MACtB;AAAA,IACD;AAEA,SAAK,iBAAkB,aAAa,WAAY;AAChD,SAAK,iBAAkB,WAAW,SAAU;AAC5C,WAAO,MAAM;AACZ,WAAK,oBAAqB,aAAa,WAAY;AACnD,WAAK,oBAAqB,WAAW,SAAU;AAAA,IAChD;AAAA,EACD,GAAG,CAAC,CAAE;AACP;",
|
|
6
6
|
"names": ["import_dom", "blockEditorStore"]
|
|
7
7
|
}
|
|
@@ -26,10 +26,16 @@ module.exports = __toCommonJS(use_click_selection_exports);
|
|
|
26
26
|
var import_data = require("@wordpress/data");
|
|
27
27
|
var import_compose = require("@wordpress/compose");
|
|
28
28
|
var import_store = require("../../store/index.cjs");
|
|
29
|
+
var import_utils = require("./utils.cjs");
|
|
29
30
|
var import_dom = require("../../utils/dom.cjs");
|
|
30
31
|
function useClickSelection() {
|
|
31
32
|
const { selectBlock } = (0, import_data.useDispatch)(import_store.store);
|
|
32
|
-
const {
|
|
33
|
+
const {
|
|
34
|
+
isSelectionEnabled,
|
|
35
|
+
getBlockSelectionStart,
|
|
36
|
+
getSelectionStart,
|
|
37
|
+
hasMultiSelection
|
|
38
|
+
} = (0, import_data.useSelect)(import_store.store);
|
|
33
39
|
return (0, import_compose.useRefEffect)(
|
|
34
40
|
(node) => {
|
|
35
41
|
function onMouseDown(event) {
|
|
@@ -40,8 +46,27 @@ function useClickSelection() {
|
|
|
40
46
|
const clickedClientId = (0, import_dom.getBlockClientId)(event.target);
|
|
41
47
|
if (event.shiftKey) {
|
|
42
48
|
if (startClientId && startClientId !== clickedClientId) {
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
const { clientId, attributeKey } = getSelectionStart();
|
|
50
|
+
(0, import_utils.setContentEditableWrapper)(node, true, {
|
|
51
|
+
focus: !!attributeKey
|
|
52
|
+
});
|
|
53
|
+
const { ownerDocument } = node;
|
|
54
|
+
const selection = ownerDocument.defaultView.getSelection();
|
|
55
|
+
const blockElement = !attributeKey && ownerDocument.getElementById(
|
|
56
|
+
`block-${clientId}`
|
|
57
|
+
);
|
|
58
|
+
if (blockElement && !(selection.anchorNode && blockElement.contains(selection.anchorNode))) {
|
|
59
|
+
const isForward = (
|
|
60
|
+
// eslint-disable-next-line no-bitwise
|
|
61
|
+
blockElement.compareDocumentPosition(
|
|
62
|
+
event.target
|
|
63
|
+
) & node.DOCUMENT_POSITION_FOLLOWING
|
|
64
|
+
);
|
|
65
|
+
selection.setPosition(
|
|
66
|
+
blockElement,
|
|
67
|
+
isForward ? 0 : blockElement.childNodes.length
|
|
68
|
+
);
|
|
69
|
+
}
|
|
45
70
|
}
|
|
46
71
|
} else if (hasMultiSelection()) {
|
|
47
72
|
selectBlock(clickedClientId);
|
|
@@ -56,6 +81,7 @@ function useClickSelection() {
|
|
|
56
81
|
selectBlock,
|
|
57
82
|
isSelectionEnabled,
|
|
58
83
|
getBlockSelectionStart,
|
|
84
|
+
getSelectionStart,
|
|
59
85
|
hasMultiSelection
|
|
60
86
|
]
|
|
61
87
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/writing-flow/use-click-selection.js"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\nimport { store as blockEditorStore } from '../../store';\nimport { setContentEditableWrapper } from './utils';\nimport { getBlockClientId } from '../../utils/dom';\n\nexport default function useClickSelection() {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst {\n\t\tisSelectionEnabled,\n\t\tgetBlockSelectionStart,\n\t\tgetSelectionStart,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tfunction onMouseDown( event ) {\n\t\t\t\t// The main button.\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n\t\t\t\tif ( ! isSelectionEnabled() || event.button !== 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst startClientId = getBlockSelectionStart();\n\t\t\t\tconst clickedClientId = getBlockClientId( event.target );\n\n\t\t\t\tif ( event.shiftKey ) {\n\t\t\t\t\t// When selecting a single block in a document by holding the shift key,\n\t\t\t\t\t// don't mark this action as multiselection.\n\t\t\t\t\tif ( startClientId && startClientId !== clickedClientId ) {\n\t\t\t\t\t\t// When the selected block has no text selection\n\t\t\t\t\t\t// within it (e.g. an image or spacer), there is no\n\t\t\t\t\t\t// native selection for the wrapper to adopt when it\n\t\t\t\t\t\t// is focused, so Safari inserts a caret at the start\n\t\t\t\t\t\t// of the wrapper and asynchronously reveals it,\n\t\t\t\t\t\t// scrolling a scrolled-down viewport back up, which\n\t\t\t\t\t\t// `preventScroll` does not cover. Leave focus alone\n\t\t\t\t\t\t// in that case: the click moves it.\n\t\t\t\t\t\tconst { clientId, attributeKey } = getSelectionStart();\n\t\t\t\t\t\tsetContentEditableWrapper( node, true, {\n\t\t\t\t\t\t\tfocus: !! attributeKey,\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// The browser extends the selection from the native\n\t\t\t\t\t\t// anchor. When a block is selected without a text\n\t\t\t\t\t\t// selection within it, there is no native anchor,\n\t\t\t\t\t\t// and browsers synthesize one at the nearest text\n\t\t\t\t\t\t// instead, excluding the block itself. Give the\n\t\t\t\t\t\t// browser the right anchor before it acts on the\n\t\t\t\t\t\t// click: the near edge of the selected block, so the\n\t\t\t\t\t\t// whole block ends up within the extended selection.\n\t\t\t\t\t\tconst { ownerDocument } = node;\n\t\t\t\t\t\tconst selection =\n\t\t\t\t\t\t\townerDocument.defaultView.getSelection();\n\t\t\t\t\t\tconst blockElement =\n\t\t\t\t\t\t\t! attributeKey &&\n\t\t\t\t\t\t\townerDocument.getElementById(\n\t\t\t\t\t\t\t\t`block-${ clientId }`\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tblockElement &&\n\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\tselection.anchorNode &&\n\t\t\t\t\t\t\t\tblockElement.contains( selection.anchorNode )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst isForward =\n\t\t\t\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\t\t\t\tblockElement.compareDocumentPosition(\n\t\t\t\t\t\t\t\t\tevent.target\n\t\t\t\t\t\t\t\t) & node.DOCUMENT_POSITION_FOLLOWING;\n\t\t\t\t\t\t\tselection.setPosition(\n\t\t\t\t\t\t\t\tblockElement,\n\t\t\t\t\t\t\t\tisForward ? 0 : blockElement.childNodes.length\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( hasMultiSelection() ) {\n\t\t\t\t\t// Allow user to escape out of a multi-selection to a\n\t\t\t\t\t// singular selection of a block via click. This is handled\n\t\t\t\t\t// here since focus handling excludes blocks when there is\n\t\t\t\t\t// multiselection, as focus can be incurred by starting a\n\t\t\t\t\t// multiselection (focus moved to first block's multi-\n\t\t\t\t\t// controls).\n\t\t\t\t\tselectBlock( clickedClientId );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tselectBlock,\n\t\t\tisSelectionEnabled,\n\t\t\tgetBlockSelectionStart,\n\t\t\tgetSelectionStart,\n\t\t\thasMultiSelection,\n\t\t]\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAuC;AACvC,qBAA6B;AAC7B,mBAA0C;AAC1C,mBAA0C;AAC1C,iBAAiC;AAElB,SAAR,oBAAqC;AAC3C,QAAM,EAAE,YAAY,QAAI,yBAAa,aAAAA,KAAiB;AACtD,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,uBAAW,aAAAA,KAAiB;AAChC,aAAO;AAAA,IACN,CAAE,SAAU;AACX,eAAS,YAAa,OAAQ;AAG7B,YAAK,CAAE,mBAAmB,KAAK,MAAM,WAAW,GAAI;AACnD;AAAA,QACD;AAEA,cAAM,gBAAgB,uBAAuB;AAC7C,cAAM,sBAAkB,6BAAkB,MAAM,MAAO;AAEvD,YAAK,MAAM,UAAW;AAGrB,cAAK,iBAAiB,kBAAkB,iBAAkB;AASzD,kBAAM,EAAE,UAAU,aAAa,IAAI,kBAAkB;AACrD,wDAA2B,MAAM,MAAM;AAAA,cACtC,OAAO,CAAC,CAAE;AAAA,YACX,CAAE;AAUF,kBAAM,EAAE,cAAc,IAAI;AAC1B,kBAAM,YACL,cAAc,YAAY,aAAa;AACxC,kBAAM,eACL,CAAE,gBACF,cAAc;AAAA,cACb,SAAU,QAAS;AAAA,YACpB;AAED,gBACC,gBACA,EACC,UAAU,cACV,aAAa,SAAU,UAAU,UAAW,IAE5C;AACD,oBAAM;AAAA;AAAA,gBAEL,aAAa;AAAA,kBACZ,MAAM;AAAA,gBACP,IAAI,KAAK;AAAA;AACV,wBAAU;AAAA,gBACT;AAAA,gBACA,YAAY,IAAI,aAAa,WAAW;AAAA,cACzC;AAAA,YACD;AAAA,UACD;AAAA,QACD,WAAY,kBAAkB,GAAI;AAOjC,sBAAa,eAAgB;AAAA,QAC9B;AAAA,MACD;AAEA,WAAK,iBAAkB,aAAa,WAAY;AAEhD,aAAO,MAAM;AACZ,aAAK,oBAAqB,aAAa,WAAY;AAAA,MACpD;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;",
|
|
6
6
|
"names": ["blockEditorStore"]
|
|
7
7
|
}
|
|
@@ -31,6 +31,15 @@ var import_store = require("../../store/index.cjs");
|
|
|
31
31
|
var import_use_notify_copy = require("../../utils/use-notify-copy.cjs");
|
|
32
32
|
var import_utils = require("./utils.cjs");
|
|
33
33
|
var import_pasting = require("../../utils/pasting.cjs");
|
|
34
|
+
var import_dom2 = require("../../utils/dom.cjs");
|
|
35
|
+
function isBlockEntirelySelected(ownerDocument, clientId) {
|
|
36
|
+
const selection = ownerDocument.defaultView.getSelection();
|
|
37
|
+
if ((0, import_dom2.getBlockClientId)(selection.anchorNode) !== clientId) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
const blockElement = ownerDocument.getElementById(`block-${clientId}`);
|
|
41
|
+
return !!blockElement?.isContentEditable && (0, import_dom.isEntirelySelected)(blockElement);
|
|
42
|
+
}
|
|
34
43
|
function useClipboardHandler() {
|
|
35
44
|
const registry = (0, import_data.useRegistry)();
|
|
36
45
|
const {
|
|
@@ -64,11 +73,14 @@ function useClipboardHandler() {
|
|
|
64
73
|
if (selectedBlockClientIds.length === 0) {
|
|
65
74
|
return;
|
|
66
75
|
}
|
|
76
|
+
const isWholeSingleBlockCopy = event.type === "copy" && !hasMultiSelection() && isBlockEntirelySelected(
|
|
77
|
+
event.target.ownerDocument,
|
|
78
|
+
selectedBlockClientIds[0]
|
|
79
|
+
);
|
|
67
80
|
if (!hasMultiSelection()) {
|
|
68
|
-
const {
|
|
69
|
-
const { ownerDocument } = target;
|
|
81
|
+
const { ownerDocument } = event.target;
|
|
70
82
|
const hasSelection = event.type === "copy" || event.type === "cut" ? (0, import_dom.documentHasUncollapsedSelection)(ownerDocument) : (0, import_dom.documentHasSelection)(ownerDocument) && !ownerDocument.activeElement.isContentEditable;
|
|
71
|
-
if (hasSelection) {
|
|
83
|
+
if (hasSelection && !isWholeSingleBlockCopy) {
|
|
72
84
|
return;
|
|
73
85
|
}
|
|
74
86
|
}
|
|
@@ -77,7 +89,7 @@ function useClipboardHandler() {
|
|
|
77
89
|
return;
|
|
78
90
|
}
|
|
79
91
|
const isSelectionMergeable = __unstableIsSelectionMergeable();
|
|
80
|
-
const shouldHandleWholeBlocks = __unstableIsSelectionCollapsed() || __unstableIsFullySelected();
|
|
92
|
+
const shouldHandleWholeBlocks = __unstableIsSelectionCollapsed() || __unstableIsFullySelected() || isWholeSingleBlockCopy;
|
|
81
93
|
const expandSelectionIsNeeded = !shouldHandleWholeBlocks && !isSelectionMergeable;
|
|
82
94
|
if (event.type === "copy" || event.type === "cut") {
|
|
83
95
|
event.preventDefault();
|
|
@@ -108,7 +120,10 @@ function useClipboardHandler() {
|
|
|
108
120
|
if (shouldHandleWholeBlocks && !expandSelectionIsNeeded) {
|
|
109
121
|
removeBlocks(selectedBlockClientIds);
|
|
110
122
|
} else {
|
|
111
|
-
|
|
123
|
+
(0, import_utils.setContentEditableWrapper)(
|
|
124
|
+
event.target.ownerDocument.activeElement,
|
|
125
|
+
false
|
|
126
|
+
);
|
|
112
127
|
__unstableDeleteSelection();
|
|
113
128
|
}
|
|
114
129
|
} else if (event.type === "paste") {
|
|
@@ -162,6 +177,19 @@ function useClipboardHandler() {
|
|
|
162
177
|
event.preventDefault();
|
|
163
178
|
return;
|
|
164
179
|
}
|
|
180
|
+
if (!hasMultiSelection() && isBlockEntirelySelected(
|
|
181
|
+
event.target.ownerDocument,
|
|
182
|
+
selectedBlockClientIds[0]
|
|
183
|
+
)) {
|
|
184
|
+
replaceBlocks(
|
|
185
|
+
selectedBlockClientIds,
|
|
186
|
+
blocks,
|
|
187
|
+
blocks.length - 1,
|
|
188
|
+
-1
|
|
189
|
+
);
|
|
190
|
+
event.preventDefault();
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
165
193
|
if (!hasMultiSelection() && !(0, import_blocks.hasBlockSupport)(
|
|
166
194
|
getBlockName(selectedBlockClientIds[0]),
|
|
167
195
|
"splitting",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/writing-flow/use-clipboard-handler.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tpasteHandler,\n\tfindTransform,\n\tgetBlockTransforms,\n\thasBlockSupport,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { setClipboardBlocks } from './utils';\nimport { getPasteEventData } from '../../utils/pasting';\n\nexport default function useClipboardHandler() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\tgetBlockName,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableSplitSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Let native copy/paste behaviour take over in input fields.\n\t\t\t// But always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument ) &&\n\t\t\t\t\t\t ! ownerDocument.activeElement.isContentEditable;\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { activeElement } = event.target.ownerDocument;\n\n\t\t\tif ( ! node.contains( activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tevent.target.ownerDocument.activeElement.contentEditable = false;\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\tmediaUpload,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst isInternal =\n\t\t\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\t\t\t\tif ( isInternal ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tconst isFullySelected = __unstableIsFullySelected();\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tif ( ! mediaUpload ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: isFullySelected ? 'BLOCKS' : 'AUTO',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Inline paste: let rich text handle it.\n\t\t\t\tif ( typeof blocks === 'string' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isFullySelected ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a block doesn't support splitting, let rich text paste\n\t\t\t\t// inline.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\t! hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( selectedBlockClientIds[ 0 ] ),\n\t\t\t\t\t\t'splitting',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) &&\n\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst [ firstSelectedClientId ] = selectedBlockClientIds;\n\t\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\t\tfirstSelectedClientId\n\t\t\t\t);\n\n\t\t\t\tconst newBlocks = [];\n\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif ( canInsertBlockType( block.name, rootClientId ) ) {\n\t\t\t\t\t\tnewBlocks.push( block );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If a block cannot be inserted in a root block, try\n\t\t\t\t\t\t// converting it to that root block type and insert the\n\t\t\t\t\t\t// inner blocks.\n\t\t\t\t\t\t// Example: paragraphs cannot be inserted into a list,\n\t\t\t\t\t\t// so convert the paragraphs to a list for list items.\n\t\t\t\t\t\tconst rootBlockName = getBlockName( rootClientId );\n\t\t\t\t\t\tconst switchedBlocks =\n\t\t\t\t\t\t\tblock.name !== rootBlockName\n\t\t\t\t\t\t\t\t? switchToBlockType( block, rootBlockName )\n\t\t\t\t\t\t\t\t: [ block ];\n\n\t\t\t\t\t\tif ( ! switchedBlocks ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( const switchedBlock of switchedBlocks ) {\n\t\t\t\t\t\t\tfor ( const innerBlock of switchedBlock.innerBlocks ) {\n\t\t\t\t\t\t\t\tnewBlocks.push( innerBlock );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t__unstableSplitSelection( newBlocks );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": ["blockEditorStore"]
|
|
4
|
+
"sourcesContent": ["import {\n\tpasteHandler,\n\tfindTransform,\n\tgetBlockTransforms,\n\thasBlockSupport,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n\tisEntirelySelected,\n} from '@wordpress/dom';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { setClipboardBlocks, setContentEditableWrapper } from './utils';\nimport { getPasteEventData } from '../../utils/pasting';\nimport { getBlockClientId } from '../../utils/dom';\n\n/**\n * Whether the DOM selection entirely spans the content of the given block,\n * and the block's editable element is the block element itself, like a\n * heading or a paragraph, not a field within a larger block, like a caption.\n *\n * @param {Document} ownerDocument The block's document.\n * @param {string} clientId The block's client ID.\n *\n * @return {boolean} Whether the block is entirely selected.\n */\nfunction isBlockEntirelySelected( ownerDocument, clientId ) {\n\tconst selection = ownerDocument.defaultView.getSelection();\n\n\tif ( getBlockClientId( selection.anchorNode ) !== clientId ) {\n\t\treturn false;\n\t}\n\n\tconst blockElement = ownerDocument.getElementById( `block-${ clientId }` );\n\n\treturn (\n\t\t!! blockElement?.isContentEditable && isEntirelySelected( blockElement )\n\t);\n}\n\nexport default function useClipboardHandler() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\tgetBlockName,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableSplitSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Whether the entire content of a block whose editable element\n\t\t\t// is the block itself is selected: copying all of a heading's\n\t\t\t// text should copy the heading block. Fields within a larger\n\t\t\t// block, like a caption, are not the block element and keep\n\t\t\t// the native copy.\n\t\t\t// Whether the entire text of a single selected block is\n\t\t\t// copied, in which case the block itself is copied.\n\t\t\tconst isWholeSingleBlockCopy =\n\t\t\t\tevent.type === 'copy' &&\n\t\t\t\t! hasMultiSelection() &&\n\t\t\t\tisBlockEntirelySelected(\n\t\t\t\t\tevent.target.ownerDocument,\n\t\t\t\t\tselectedBlockClientIds[ 0 ]\n\t\t\t\t);\n\n\t\t\t// Let native copy/paste behaviour take over in input fields.\n\t\t\t// But always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { ownerDocument } = event.target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument ) &&\n\t\t\t\t\t\t ! ownerDocument.activeElement.isContentEditable;\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection && ! isWholeSingleBlockCopy ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { activeElement } = event.target.ownerDocument;\n\n\t\t\tif ( ! node.contains( activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() ||\n\t\t\t\t__unstableIsFullySelected() ||\n\t\t\t\tisWholeSingleBlockCopy;\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tsetContentEditableWrapper(\n\t\t\t\t\t\tevent.target.ownerDocument.activeElement,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\tmediaUpload,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst isInternal =\n\t\t\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\t\t\t\tif ( isInternal ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tconst isFullySelected = __unstableIsFullySelected();\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tif ( ! mediaUpload ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: isFullySelected ? 'BLOCKS' : 'AUTO',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Inline paste: let rich text handle it.\n\t\t\t\tif ( typeof blocks === 'string' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isFullySelected ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Pasting over an entirely selected block replaces it, the\n\t\t\t\t// equivalent of pasting into an empty block.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\tisBlockEntirelySelected(\n\t\t\t\t\t\tevent.target.ownerDocument,\n\t\t\t\t\t\tselectedBlockClientIds[ 0 ]\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a block doesn't support splitting, let rich text paste\n\t\t\t\t// inline.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\t! hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( selectedBlockClientIds[ 0 ] ),\n\t\t\t\t\t\t'splitting',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) &&\n\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst [ firstSelectedClientId ] = selectedBlockClientIds;\n\t\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\t\tfirstSelectedClientId\n\t\t\t\t);\n\n\t\t\t\tconst newBlocks = [];\n\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif ( canInsertBlockType( block.name, rootClientId ) ) {\n\t\t\t\t\t\tnewBlocks.push( block );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If a block cannot be inserted in a root block, try\n\t\t\t\t\t\t// converting it to that root block type and insert the\n\t\t\t\t\t\t// inner blocks.\n\t\t\t\t\t\t// Example: paragraphs cannot be inserted into a list,\n\t\t\t\t\t\t// so convert the paragraphs to a list for list items.\n\t\t\t\t\t\tconst rootBlockName = getBlockName( rootClientId );\n\t\t\t\t\t\tconst switchedBlocks =\n\t\t\t\t\t\t\tblock.name !== rootBlockName\n\t\t\t\t\t\t\t\t? switchToBlockType( block, rootBlockName )\n\t\t\t\t\t\t\t\t: [ block ];\n\n\t\t\t\t\t\tif ( ! switchedBlocks ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( const switchedBlock of switchedBlocks ) {\n\t\t\t\t\t\t\tfor ( const innerBlock of switchedBlock.innerBlocks ) {\n\t\t\t\t\t\t\t\tnewBlocks.push( innerBlock );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t__unstableSplitSelection( newBlocks );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMO;AACP,iBAIO;AACP,kBAAoD;AACpD,qBAA6B;AAC7B,mBAA0C;AAC1C,6BAA8B;AAC9B,mBAA8D;AAC9D,qBAAkC;AAClC,IAAAA,cAAiC;AAYjC,SAAS,wBAAyB,eAAe,UAAW;AAC3D,QAAM,YAAY,cAAc,YAAY,aAAa;AAEzD,UAAK,8BAAkB,UAAU,UAAW,MAAM,UAAW;AAC5D,WAAO;AAAA,EACR;AAEA,QAAM,eAAe,cAAc,eAAgB,SAAU,QAAS,EAAG;AAEzE,SACC,CAAC,CAAE,cAAc,yBAAqB,+BAAoB,YAAa;AAEzE;AAEe,SAAR,sBAAuC;AAC7C,QAAM,eAAW,yBAAY;AAC7B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,uBAAW,aAAAC,KAAiB;AAChC,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,yBAAa,aAAAA,KAAiB;AAClC,QAAM,iBAAa,sCAAc;AAEjC,aAAO,6BAAc,CAAE,SAAU;AAChC,aAAS,QAAS,OAAQ;AACzB,UAAK,MAAM,kBAAmB;AAE7B;AAAA,MACD;AAEA,YAAM,yBAAyB,0BAA0B;AAEzD,UAAK,uBAAuB,WAAW,GAAI;AAC1C;AAAA,MACD;AASA,YAAM,yBACL,MAAM,SAAS,UACf,CAAE,kBAAkB,KACpB;AAAA,QACC,MAAM,OAAO;AAAA,QACb,uBAAwB,CAAE;AAAA,MAC3B;AAID,UAAK,CAAE,kBAAkB,GAAI;AAC5B,cAAM,EAAE,cAAc,IAAI,MAAM;AAGhC,cAAM,eACL,MAAM,SAAS,UAAU,MAAM,SAAS,YACrC,4CAAiC,aAAc,QAC/C,iCAAsB,aAAc,KACpC,CAAE,cAAc,cAAc;AAGlC,YAAK,gBAAgB,CAAE,wBAAyB;AAC/C;AAAA,QACD;AAAA,MACD;AAEA,YAAM,EAAE,cAAc,IAAI,MAAM,OAAO;AAEvC,UAAK,CAAE,KAAK,SAAU,aAAc,GAAI;AACvC;AAAA,MACD;AAEA,YAAM,uBAAuB,+BAA+B;AAC5D,YAAM,0BACL,+BAA+B,KAC/B,0BAA0B,KAC1B;AACD,YAAM,0BACL,CAAE,2BAA2B,CAAE;AAChC,UAAK,MAAM,SAAS,UAAU,MAAM,SAAS,OAAQ;AACpD,cAAM,eAAe;AAErB,YAAK,uBAAuB,WAAW,GAAI;AAC1C,qBAAY,uBAAwB,CAAE,CAAE;AAAA,QACzC;AAGA,YAAK,yBAA0B;AAC9B,oCAA0B;AAAA,QAC3B,OAAO;AACN,qBAAY,MAAM,MAAM,sBAAuB;AAC/C,cAAI;AAEJ,cAAK,yBAA0B;AAC9B,qBAAS,oBAAqB,sBAAuB;AAAA,UACtD,OAAO;AACN,kBAAM,CAAE,MAAM,IAAK,IAClB,gDAAgD;AACjD,kBAAM,kBAAkB;AAAA,cACvB,uBAAuB;AAAA,gBACtB;AAAA,gBACA,uBAAuB,SAAS;AAAA,cACjC;AAAA,YACD;AACA,qBAAS,CAAE,MAAM,GAAG,iBAAiB,IAAK;AAAA,UAC3C;AAEA,+CAAoB,OAAO,QAAQ,QAAS;AAAA,QAC7C;AAAA,MACD;AAEA,UAAK,MAAM,SAAS,OAAQ;AAI3B,YAAK,2BAA2B,CAAE,yBAA0B;AAC3D,uBAAc,sBAAuB;AAAA,QACtC,OAAO;AACN;AAAA,YACC,MAAM,OAAO,cAAc;AAAA,YAC3B;AAAA,UACD;AACA,oCAA0B;AAAA,QAC3B;AAAA,MACD,WAAY,MAAM,SAAS,SAAU;AACpC,cAAM;AAAA,UACL,wCACC;AAAA,UACD;AAAA,QACD,IAAI,YAAY;AAChB,cAAM,aACL,MAAM,cAAc,QAAS,WAAY,MAAM;AAChD,YAAK,YAAa;AACjB;AAAA,QACD;AACA,cAAM,EAAE,WAAW,MAAM,MAAM,QAAI,kCAAmB,KAAM;AAC5D,cAAM,kBAAkB,0BAA0B;AAClD,YAAI,SAAS,CAAC;AAEd,YAAK,MAAM,QAAS;AACnB,cAAK,CAAE,aAAc;AACpB,kBAAM,eAAe;AACrB;AAAA,UACD;AAEA,gBAAM,qBAAiB,kCAAoB,MAAO;AAClD,mBAAS,MACP,OAAQ,CAAE,aAAa,SAAU;AACjC,kBAAM,qBAAiB;AAAA,cACtB;AAAA,cACA,CAAE,cACD,UAAU,SAAS,WACnB,UAAU,QAAS,CAAE,IAAK,CAAE;AAAA,YAC9B;AACA,gBAAK,gBAAiB;AACrB,0BAAY;AAAA,gBACX,eAAe,UAAW,CAAE,IAAK,CAAE;AAAA,cACpC;AAAA,YACD;AACA,mBAAO;AAAA,UACR,GAAG,CAAC,CAAE,EACL,KAAK;AAAA,QACR,OAAO;AACN,uBAAS,4BAAc;AAAA,YACtB,MAAM;AAAA,YACN;AAAA,YACA,MAAM,kBAAkB,WAAW;AAAA,YACnC;AAAA,UACD,CAAE;AAAA,QACH;AAGA,YAAK,OAAO,WAAW,UAAW;AACjC;AAAA,QACD;AAEA,YAAK,iBAAkB;AACtB;AAAA,YACC;AAAA,YACA;AAAA,YACA,OAAO,SAAS;AAAA,YAChB;AAAA,UACD;AACA,gBAAM,eAAe;AACrB;AAAA,QACD;AAIA,YACC,CAAE,kBAAkB,KACpB;AAAA,UACC,MAAM,OAAO;AAAA,UACb,uBAAwB,CAAE;AAAA,QAC3B,GACC;AACD;AAAA,YACC;AAAA,YACA;AAAA,YACA,OAAO,SAAS;AAAA,YAChB;AAAA,UACD;AACA,gBAAM,eAAe;AACrB;AAAA,QACD;AAIA,YACC,CAAE,kBAAkB,KACpB,KAAE;AAAA,UACD,aAAc,uBAAwB,CAAE,CAAE;AAAA,UAC1C;AAAA,UACA;AAAA,QACD,KACA,CAAE,MAAM,qBACP;AACD;AAAA,QACD;AAEA,cAAM,CAAE,qBAAsB,IAAI;AAClC,cAAM,eAAe;AAAA,UACpB;AAAA,QACD;AAEA,cAAM,YAAY,CAAC;AAEnB,mBAAY,SAAS,QAAS;AAC7B,cAAK,mBAAoB,MAAM,MAAM,YAAa,GAAI;AACrD,sBAAU,KAAM,KAAM;AAAA,UACvB,OAAO;AAMN,kBAAM,gBAAgB,aAAc,YAAa;AACjD,kBAAM,iBACL,MAAM,SAAS,oBACZ,iCAAmB,OAAO,aAAc,IACxC,CAAE,KAAM;AAEZ,gBAAK,CAAE,gBAAiB;AACvB;AAAA,YACD;AAEA,uBAAY,iBAAiB,gBAAiB;AAC7C,yBAAY,cAAc,cAAc,aAAc;AACrD,0BAAU,KAAM,UAAW;AAAA,cAC5B;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAEA,iCAA0B,SAAU;AACpC,cAAM,eAAe;AAAA,MACtB;AAAA,IACD;AAEA,SAAK,cAAc,iBAAkB,QAAQ,OAAQ;AACrD,SAAK,cAAc,iBAAkB,OAAO,OAAQ;AACpD,SAAK,cAAc,iBAAkB,SAAS,OAAQ;AAEtD,WAAO,MAAM;AACZ,WAAK,cAAc,oBAAqB,QAAQ,OAAQ;AACxD,WAAK,cAAc,oBAAqB,OAAO,OAAQ;AACvD,WAAK,cAAc,oBAAqB,SAAS,OAAQ;AAAA,IAC1D;AAAA,EACD,GAAG,CAAC,CAAE;AACP;",
|
|
6
|
+
"names": ["import_dom", "blockEditorStore"]
|
|
7
7
|
}
|
|
@@ -26,12 +26,7 @@ module.exports = __toCommonJS(use_drag_selection_exports);
|
|
|
26
26
|
var import_data = require("@wordpress/data");
|
|
27
27
|
var import_compose = require("@wordpress/compose");
|
|
28
28
|
var import_store = require("../../store/index.cjs");
|
|
29
|
-
|
|
30
|
-
node.contentEditable = value;
|
|
31
|
-
if (value) {
|
|
32
|
-
node.focus();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
29
|
+
var import_utils = require("./utils.cjs");
|
|
35
30
|
function useDragSelection() {
|
|
36
31
|
const { startMultiSelect, stopMultiSelect } = (0, import_data.useDispatch)(import_store.store);
|
|
37
32
|
const {
|
|
@@ -54,7 +49,7 @@ function useDragSelection() {
|
|
|
54
49
|
if (!hasSelectedBlock()) {
|
|
55
50
|
return;
|
|
56
51
|
}
|
|
57
|
-
setContentEditableWrapper(node, false);
|
|
52
|
+
(0, import_utils.setContentEditableWrapper)(node, false);
|
|
58
53
|
const selection = defaultView.getSelection();
|
|
59
54
|
if (selection.rangeCount) {
|
|
60
55
|
const range = selection.getRangeAt(0);
|
|
@@ -100,7 +95,7 @@ function useDragSelection() {
|
|
|
100
95
|
anchorElement = target;
|
|
101
96
|
startMultiSelect();
|
|
102
97
|
defaultView.addEventListener("mouseup", onMouseUp);
|
|
103
|
-
setContentEditableWrapper(node, true);
|
|
98
|
+
(0, import_utils.setContentEditableWrapper)(node, true);
|
|
104
99
|
}
|
|
105
100
|
node.addEventListener("mouseout", onMouseLeave);
|
|
106
101
|
node.addEventListener("mousedown", onMouseDown);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/writing-flow/use-drag-selection.js"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\nimport { store as blockEditorStore } from '../../store';\nimport { setContentEditableWrapper } from './utils';\n\n/**\n * Sets a multi-selection based on the native selection across blocks.\n */\nexport default function useDragSelection() {\n\tconst { startMultiSelect, stopMultiSelect } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetSettings,\n\t\tisSelectionEnabled,\n\t\thasSelectedBlock,\n\t\tisDraggingBlocks,\n\t\tisMultiSelecting,\n\t} = useSelect( blockEditorStore );\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tlet anchorElement;\n\t\t\tlet rafId;\n\n\t\t\tfunction onMouseUp() {\n\t\t\t\tstopMultiSelect();\n\t\t\t\t// Equivalent to attaching the listener once.\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onMouseUp );\n\t\t\t\t// The browser selection won't have updated yet at this point,\n\t\t\t\t// so wait until the next animation frame to get the browser\n\t\t\t\t// selection.\n\t\t\t\trafId = defaultView.requestAnimationFrame( () => {\n\t\t\t\t\tif ( ! hasSelectedBlock() ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the selection is complete (on mouse up), and no\n\t\t\t\t\t// multiple blocks have been selected, set focus back to the\n\t\t\t\t\t// anchor element. if the anchor element contains the\n\t\t\t\t\t// selection. Additionally, the contentEditable wrapper can\n\t\t\t\t\t// now be disabled again.\n\t\t\t\t\tsetContentEditableWrapper( node, false );\n\n\t\t\t\t\tconst selection = defaultView.getSelection();\n\n\t\t\t\t\tif ( selection.rangeCount ) {\n\t\t\t\t\t\tconst range = selection.getRangeAt( 0 );\n\t\t\t\t\t\tconst { commonAncestorContainer } = range;\n\t\t\t\t\t\tconst clonedRange = range.cloneRange();\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tanchorElement.contains( commonAncestorContainer )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tanchorElement.focus();\n\t\t\t\t\t\t\tselection.removeAllRanges();\n\t\t\t\t\t\t\tselection.addRange( clonedRange );\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\tlet lastMouseDownTarget;\n\n\t\t\tfunction onMouseDown( { target } ) {\n\t\t\t\tlastMouseDownTarget = target;\n\t\t\t}\n\n\t\t\tfunction onMouseLeave( { buttons, target, relatedTarget } ) {\n\t\t\t\tif ( ! target.contains( lastMouseDownTarget ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If we're moving into a child element, ignore. We're tracking\n\t\t\t\t// the mouse leaving the element to a parent, no a child.\n\t\t\t\tif ( target.contains( relatedTarget ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Avoid triggering a multi-selection if the user is already\n\t\t\t\t// dragging blocks.\n\t\t\t\tif ( isDraggingBlocks() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The primary button must be pressed to initiate selection.\n\t\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n\t\t\t\tif ( buttons !== 1 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Abort if we are already multi-selecting.\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Abort if selection is leaving writing flow.\n\t\t\t\tif ( node === target ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check the attribute, not the contentEditable attribute. All\n\t\t\t\t// child elements of the content editable wrapper are editable\n\t\t\t\t// and return true for this property. We only want to start\n\t\t\t\t// multi selecting when the mouse leaves the wrapper.\n\t\t\t\t// In preview mode, allow drag selection from blocks since they\n\t\t\t\t// are not contenteditable.\n\t\t\t\tif (\n\t\t\t\t\ttarget.getAttribute( 'contenteditable' ) !== 'true' &&\n\t\t\t\t\t! getSettings().isPreviewMode\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelectionEnabled() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Do not rely on the active element because it may change after\n\t\t\t\t// the mouse leaves for the first time. See\n\t\t\t\t// https://github.com/WordPress/gutenberg/issues/48747.\n\t\t\t\tanchorElement = target;\n\n\t\t\t\tstartMultiSelect();\n\n\t\t\t\t// `onSelectionStart` is called after `mousedown` and\n\t\t\t\t// `mouseleave` (from a block). The selection ends when\n\t\t\t\t// `mouseup` happens anywhere in the window.\n\t\t\t\tdefaultView.addEventListener( 'mouseup', onMouseUp );\n\n\t\t\t\t// Allow cross contentEditable selection by temporarily making\n\t\t\t\t// all content editable. We can't rely on using the store and\n\t\t\t\t// React because re-rending happens too slowly. We need to be\n\t\t\t\t// able to select across instances immediately.\n\t\t\t\tsetContentEditableWrapper( node, true );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mouseout', onMouseLeave );\n\t\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mouseout', onMouseLeave );\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onMouseUp );\n\t\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tstartMultiSelect,\n\t\t\tstopMultiSelect,\n\t\t\tisSelectionEnabled,\n\t\t\thasSelectedBlock,\n\t\t]\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAuC;AACvC,qBAA6B;AAC7B,mBAA0C;AAC1C,mBAA0C;AAK3B,SAAR,mBAAoC;AAC1C,QAAM,EAAE,kBAAkB,gBAAgB,QACzC,yBAAa,aAAAA,KAAiB;AAC/B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,uBAAW,aAAAA,KAAiB;AAChC,aAAO;AAAA,IACN,CAAE,SAAU;AACX,YAAM,EAAE,cAAc,IAAI;AAC1B,YAAM,EAAE,YAAY,IAAI;AAExB,UAAI;AACJ,UAAI;AAEJ,eAAS,YAAY;AACpB,wBAAgB;AAEhB,oBAAY,oBAAqB,WAAW,SAAU;AAItD,gBAAQ,YAAY,sBAAuB,MAAM;AAChD,cAAK,CAAE,iBAAiB,GAAI;AAC3B;AAAA,UACD;AAOA,sDAA2B,MAAM,KAAM;AAEvC,gBAAM,YAAY,YAAY,aAAa;AAE3C,cAAK,UAAU,YAAa;AAC3B,kBAAM,QAAQ,UAAU,WAAY,CAAE;AACtC,kBAAM,EAAE,wBAAwB,IAAI;AACpC,kBAAM,cAAc,MAAM,WAAW;AAErC,gBACC,cAAc,SAAU,uBAAwB,GAC/C;AACD,4BAAc,MAAM;AACpB,wBAAU,gBAAgB;AAC1B,wBAAU,SAAU,WAAY;AAAA,YACjC;AAAA,UACD;AAAA,QACD,CAAE;AAAA,MACH;AAEA,UAAI;AAEJ,eAAS,YAAa,EAAE,OAAO,GAAI;AAClC,8BAAsB;AAAA,MACvB;AAEA,eAAS,aAAc,EAAE,SAAS,QAAQ,cAAc,GAAI;AAC3D,YAAK,CAAE,OAAO,SAAU,mBAAoB,GAAI;AAC/C;AAAA,QACD;AAIA,YAAK,OAAO,SAAU,aAAc,GAAI;AACvC;AAAA,QACD;AAIA,YAAK,iBAAiB,GAAI;AACzB;AAAA,QACD;AAIA,YAAK,YAAY,GAAI;AACpB;AAAA,QACD;AAGA,YAAK,iBAAiB,GAAI;AACzB;AAAA,QACD;AAGA,YAAK,SAAS,QAAS;AACtB;AAAA,QACD;AAQA,YACC,OAAO,aAAc,iBAAkB,MAAM,UAC7C,CAAE,YAAY,EAAE,eACf;AACD;AAAA,QACD;AAEA,YAAK,CAAE,mBAAmB,GAAI;AAC7B;AAAA,QACD;AAKA,wBAAgB;AAEhB,yBAAiB;AAKjB,oBAAY,iBAAkB,WAAW,SAAU;AAMnD,oDAA2B,MAAM,IAAK;AAAA,MACvC;AAEA,WAAK,iBAAkB,YAAY,YAAa;AAChD,WAAK,iBAAkB,aAAa,WAAY;AAEhD,aAAO,MAAM;AACZ,aAAK,oBAAqB,YAAY,YAAa;AACnD,oBAAY,oBAAqB,WAAW,SAAU;AACtD,oBAAY,qBAAsB,KAAM;AAAA,MACzC;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;",
|
|
6
6
|
"names": ["blockEditorStore"]
|
|
7
7
|
}
|