@wordpress/block-editor 12.0.0 → 12.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 +6 -0
- package/README.md +1 -1
- package/build/autocompleters/block.js +13 -5
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +6 -3
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-controls/slot.js +12 -4
- package/build/components/block-controls/slot.js.map +1 -1
- package/build/components/block-controls/slot.native.js +10 -1
- package/build/components/block-controls/slot.native.js.map +1 -1
- package/build/components/block-draggable/index.js +11 -7
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
- package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build/components/block-editing-mode/index.js +84 -0
- package/build/components/block-editing-mode/index.js.map +1 -0
- package/build/components/block-list/block-invalid-warning.native.js +15 -7
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block-list-block-context.js +15 -0
- package/build/components/block-list/block-list-block-context.js.map +1 -0
- package/build/components/block-list/block-list-item-cell.native.js +15 -2
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +158 -195
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +57 -0
- package/build/components/block-list/block-outline.native.js.map +1 -0
- package/build/components/block-list/block.js +29 -37
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +347 -311
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +260 -357
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/insertion-point.native.js +4 -2
- package/build/components/block-list/insertion-point.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +2 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +7 -5
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +15 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +15 -4
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +1 -2
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +8 -0
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +125 -0
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
- package/build/components/block-switcher/index.js +34 -12
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +9 -7
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +22 -65
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +11 -5
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +3 -8
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +7 -2
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.native.js +87 -3
- package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/global-styles/advanced-panel.js +86 -0
- package/build/components/global-styles/advanced-panel.js.map +1 -0
- package/build/components/global-styles/color-panel.js +4 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +9 -8
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +1 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +24 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +1 -1
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +27 -4
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +30 -0
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +14 -7
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +24 -8
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +7 -7
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +3 -7
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -4
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-results.js +19 -6
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +5 -0
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/fill.js +1 -1
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +1 -1
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/slot.js +3 -6
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls/slot.native.js +1 -1
- package/build/components/inspector-controls/slot.native.js.map +1 -1
- package/build/components/line-height-control/index.js +7 -2
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/use-internal-input-value.js +9 -8
- package/build/components/link-control/use-internal-input-value.js.map +1 -1
- package/build/components/list-view/appender.js +6 -1
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/block-contents.js +9 -2
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +25 -29
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +1 -3
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +43 -22
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +27 -3
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js +163 -11
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/media-placeholder/index.js +68 -7
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +2 -2
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/preview-options/index.js +6 -1
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +0 -2
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/url-input/index.js +4 -2
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +25 -15
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +8 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +13 -7
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/hooks/align.js +4 -8
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/behaviors.js +115 -0
- package/build/hooks/behaviors.js.map +1 -0
- package/build/hooks/border.js +1 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +1 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +8 -12
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/dimensions.js +0 -30
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +5 -9
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +8 -0
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout.js +10 -11
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/position.js +1 -1
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +1 -1
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
- package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
- package/build/hooks/use-typography-props.js +14 -10
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/index.native.js +31 -0
- package/build/index.native.js.map +1 -0
- package/build/private-apis.js +4 -7
- package/build/private-apis.js.map +1 -1
- package/build/store/private-actions.js +46 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +88 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +36 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +28 -18
- package/build/store/selectors.js.map +1 -1
- package/build/utils/order-inserter-block-items.js +41 -0
- package/build/utils/order-inserter-block-items.js.map +1 -0
- package/build/utils/use-should-contextual-toolbar-show.js +16 -12
- package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
- package/build-module/autocompleters/block.js +12 -5
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +5 -3
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-controls/slot.js +11 -4
- package/build-module/components/block-controls/slot.js.map +1 -1
- package/build-module/components/block-controls/slot.native.js +9 -1
- package/build-module/components/block-controls/slot.native.js.map +1 -1
- package/build-module/components/block-draggable/index.js +10 -6
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
- package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +72 -0
- package/build-module/components/block-editing-mode/index.js.map +1 -0
- package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-list-block-context.js +6 -0
- package/build-module/components/block-list/block-list-block-context.js.map +1 -0
- package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js +160 -190
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +44 -0
- package/build-module/components/block-list/block-outline.native.js.map +1 -0
- package/build-module/components/block-list/block.js +26 -34
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +345 -310
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +263 -355
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/insertion-point.native.js +4 -2
- package/build-module/components/block-list/insertion-point.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +6 -5
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +15 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +13 -5
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +1 -2
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
- package/build-module/components/block-switcher/index.js +33 -12
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +8 -7
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +22 -65
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +11 -5
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +3 -7
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +7 -2
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
- package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/global-styles/advanced-panel.js +74 -0
- package/build-module/components/global-styles/advanced-panel.js.map +1 -0
- package/build-module/components/global-styles/color-panel.js +5 -2
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +9 -8
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +1 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +3 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +1 -1
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +25 -4
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +25 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +15 -8
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +24 -8
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +7 -6
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -7
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -4
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-results.js +16 -6
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +4 -0
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +1 -1
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +1 -1
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +4 -7
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls/slot.native.js +1 -1
- package/build-module/components/inspector-controls/slot.native.js.map +1 -1
- package/build-module/components/line-height-control/index.js +7 -2
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/use-internal-input-value.js +9 -8
- package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
- package/build-module/components/list-view/appender.js +6 -2
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +9 -3
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +24 -29
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -3
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +44 -23
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +66 -7
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +2 -2
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +7 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +0 -2
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -2
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +25 -16
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +8 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/hooks/align.js +4 -7
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/behaviors.js +97 -0
- package/build-module/hooks/behaviors.js.map +1 -0
- package/build-module/hooks/border.js +1 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +1 -1
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +8 -11
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/dimensions.js +0 -28
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -7
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +1 -0
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout.js +9 -11
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/position.js +1 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +1 -1
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
- package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
- package/build-module/hooks/use-typography-props.js +14 -10
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/index.native.js +6 -0
- package/build-module/index.native.js.map +1 -0
- package/build-module/private-apis.js +3 -5
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-actions.js +42 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +79 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +34 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +26 -17
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/order-inserter-block-items.js +32 -0
- package/build-module/utils/order-inserter-block-items.js.map +1 -0
- package/build-module/utils/use-should-contextual-toolbar-show.js +16 -12
- package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
- package/build-style/content-rtl.css +32 -14
- package/build-style/content.css +32 -14
- 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 +56 -77
- package/build-style/style.css +57 -77
- package/package.json +32 -31
- package/src/autocompleters/block.js +15 -7
- package/src/components/block-breadcrumb/index.js +11 -3
- package/src/components/block-breadcrumb/style.scss +2 -1
- package/src/components/block-controls/slot.js +8 -4
- package/src/components/block-controls/slot.native.js +6 -1
- package/src/components/block-draggable/index.js +10 -6
- package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
- package/src/components/block-editing-mode/index.js +71 -0
- package/src/components/block-list/block-invalid-warning.native.js +17 -9
- package/src/components/block-list/block-list-block-context.js +6 -0
- package/src/components/block-list/block-list-item-cell.native.js +10 -1
- package/src/components/block-list/block-list-item.native.js +180 -208
- package/src/components/block-list/block-outline.native.js +58 -0
- package/src/components/block-list/block.js +38 -56
- package/src/components/block-list/block.native.js +531 -501
- package/src/components/block-list/content.scss +5 -6
- package/src/components/block-list/index.native.js +324 -382
- package/src/components/block-list/insertion-point.native.js +2 -2
- package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
- package/src/components/block-list/test/index.native.js +205 -0
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-in-between-inserter.js +7 -3
- package/src/components/block-list-appender/index.js +22 -4
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +26 -1
- package/src/components/block-mover/style.scss +1 -0
- package/src/components/block-pattern-setup/style.scss +1 -4
- package/src/components/block-patterns-list/style.scss +1 -4
- package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
- package/src/components/block-settings-menu-controls/index.js +24 -4
- package/src/components/block-styles/preview-panel.js +1 -3
- package/src/components/block-styles/style.scss +4 -4
- package/src/components/block-switcher/block-transformations-menu.js +12 -0
- package/src/components/block-switcher/block-variation-transformations.js +115 -0
- package/src/components/block-switcher/index.js +38 -5
- package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
- package/src/components/block-switcher/style.scss +6 -5
- package/src/components/block-toolbar/index.js +10 -11
- package/src/components/block-tools/block-contextual-toolbar.js +32 -67
- package/src/components/block-tools/insertion-point.js +23 -9
- package/src/components/block-tools/selected-block-popover.js +3 -5
- package/src/components/block-tools/style.scss +8 -0
- package/src/components/button-block-appender/content.scss +22 -0
- package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
- package/src/components/convert-to-group-buttons/index.js +9 -2
- package/src/components/convert-to-group-buttons/index.native.js +79 -1
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
- package/src/components/global-styles/advanced-panel.js +82 -0
- package/src/components/global-styles/color-panel.js +6 -1
- package/src/components/global-styles/dimensions-panel.js +9 -8
- package/src/components/global-styles/hooks.js +1 -5
- package/src/components/global-styles/index.js +6 -1
- package/src/components/global-styles/style.scss +17 -0
- package/src/components/global-styles/test/utils.js +57 -1
- package/src/components/global-styles/typography-panel.js +1 -1
- package/src/components/global-styles/use-global-styles-output.js +21 -3
- package/src/components/global-styles/utils.js +27 -0
- package/src/components/iframe/index.js +22 -12
- package/src/components/image-editor/use-save-image.js +20 -9
- package/src/components/inner-blocks/README.md +5 -0
- package/src/components/inner-blocks/index.js +2 -0
- package/src/components/inner-blocks/index.native.js +16 -6
- package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
- package/src/components/inserter/index.js +1 -9
- package/src/components/inserter/quick-inserter.js +0 -2
- package/src/components/inserter/search-results.js +32 -6
- package/src/components/inserter-draggable-blocks/index.js +4 -0
- package/src/components/inspector-controls/fill.js +1 -1
- package/src/components/inspector-controls/fill.native.js +1 -1
- package/src/components/inspector-controls/slot.js +4 -9
- package/src/components/inspector-controls/slot.native.js +1 -1
- package/src/components/line-height-control/index.js +7 -2
- package/src/components/line-height-control/stories/index.js +1 -1
- package/src/components/link-control/test/index.js +42 -0
- package/src/components/link-control/use-internal-input-value.js +8 -7
- package/src/components/list-view/appender.js +3 -2
- package/src/components/list-view/block-contents.js +32 -20
- package/src/components/list-view/block-select-button.js +5 -1
- package/src/components/list-view/block.js +34 -37
- package/src/components/list-view/branch.js +1 -7
- package/src/components/list-view/index.js +42 -17
- package/src/components/list-view/style.scss +7 -7
- package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
- package/src/components/list-view/use-list-view-client-ids.js +21 -4
- package/src/components/list-view/use-list-view-drop-zone.js +194 -11
- package/src/components/media-placeholder/index.js +74 -1
- package/src/components/multi-selection-inspector/index.js +2 -2
- package/src/components/preview-options/index.js +9 -2
- package/src/components/publish-date-time-picker/index.js +0 -2
- package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
- package/src/components/url-input/README.md +6 -0
- package/src/components/url-input/index.js +2 -2
- package/src/components/use-block-drop-zone/index.js +31 -17
- package/src/components/use-resize-canvas/index.js +9 -1
- package/src/components/writing-flow/test/index.js +15 -0
- package/src/components/writing-flow/use-arrow-nav.js +17 -4
- package/src/hooks/align.js +5 -12
- package/src/hooks/behaviors.js +104 -0
- package/src/hooks/border.js +2 -1
- package/src/hooks/color.js +2 -1
- package/src/hooks/content-lock-ui.js +3 -15
- package/src/hooks/dimensions.js +0 -40
- package/src/hooks/duotone.js +4 -11
- package/src/hooks/index.js +1 -0
- package/src/hooks/index.native.js +1 -0
- package/src/hooks/layout.js +14 -20
- package/src/hooks/position.js +2 -1
- package/src/hooks/style.js +2 -1
- package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
- package/src/hooks/test/use-typography-props.js +47 -2
- package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
- package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
- package/src/hooks/use-typography-props.js +10 -11
- package/src/index.native.js +6 -0
- package/src/private-apis.js +2 -4
- package/src/store/private-actions.js +39 -0
- package/src/store/private-selectors.js +95 -0
- package/src/store/reducer.js +27 -0
- package/src/store/selectors.js +25 -15
- package/src/store/test/private-actions.js +32 -1
- package/src/store/test/private-selectors.js +158 -0
- package/src/store/test/reducer.js +48 -0
- package/src/style.scss +0 -3
- package/src/utils/order-inserter-block-items.js +26 -0
- package/src/utils/use-should-contextual-toolbar-show.js +19 -9
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-list/block-list-compact.native.js +0 -75
- package/build/components/block-list/block-list-compact.native.js.map +0 -1
- package/build/components/off-canvas-editor/appender.js +0 -125
- package/build/components/off-canvas-editor/appender.js.map +0 -1
- package/build/components/off-canvas-editor/block-contents.js +0 -141
- package/build/components/off-canvas-editor/block-contents.js.map +0 -1
- package/build/components/off-canvas-editor/block-select-button.js +0 -126
- package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
- package/build/components/off-canvas-editor/block.js +0 -297
- package/build/components/off-canvas-editor/block.js.map +0 -1
- package/build/components/off-canvas-editor/branch.js +0 -197
- package/build/components/off-canvas-editor/branch.js.map +0 -1
- package/build/components/off-canvas-editor/context.js +0 -19
- package/build/components/off-canvas-editor/context.js.map +0 -1
- package/build/components/off-canvas-editor/drop-indicator.js +0 -118
- package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
- package/build/components/off-canvas-editor/expander.js +0 -41
- package/build/components/off-canvas-editor/expander.js.map +0 -1
- package/build/components/off-canvas-editor/index.js +0 -236
- package/build/components/off-canvas-editor/index.js.map +0 -1
- package/build/components/off-canvas-editor/leaf-more-menu.js +0 -146
- package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
- package/build/components/off-canvas-editor/leaf.js +0 -60
- package/build/components/off-canvas-editor/leaf.js.map +0 -1
- package/build/components/off-canvas-editor/link-ui.js +0 -186
- package/build/components/off-canvas-editor/link-ui.js.map +0 -1
- package/build/components/off-canvas-editor/update-attributes.js +0 -108
- package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
- package/build/components/off-canvas-editor/use-block-selection.js +0 -139
- package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
- package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
- package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
- package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
- package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
- package/build/components/off-canvas-editor/utils.js +0 -60
- package/build/components/off-canvas-editor/utils.js.map +0 -1
- package/build-module/components/block-list/block-list-compact.native.js +0 -60
- package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
- package/build-module/components/off-canvas-editor/appender.js +0 -108
- package/build-module/components/off-canvas-editor/appender.js.map +0 -1
- package/build-module/components/off-canvas-editor/block-contents.js +0 -121
- package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
- package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
- package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
- package/build-module/components/off-canvas-editor/block.js +0 -273
- package/build-module/components/off-canvas-editor/block.js.map +0 -1
- package/build-module/components/off-canvas-editor/branch.js +0 -179
- package/build-module/components/off-canvas-editor/branch.js.map +0 -1
- package/build-module/components/off-canvas-editor/context.js +0 -7
- package/build-module/components/off-canvas-editor/context.js.map +0 -1
- package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
- package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
- package/build-module/components/off-canvas-editor/expander.js +0 -32
- package/build-module/components/off-canvas-editor/expander.js.map +0 -1
- package/build-module/components/off-canvas-editor/index.js +0 -213
- package/build-module/components/off-canvas-editor/index.js.map +0 -1
- package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -128
- package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
- package/build-module/components/off-canvas-editor/leaf.js +0 -45
- package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
- package/build-module/components/off-canvas-editor/link-ui.js +0 -166
- package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
- package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
- package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
- package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
- package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
- package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
- package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
- package/build-module/components/off-canvas-editor/utils.js +0 -44
- package/build-module/components/off-canvas-editor/utils.js.map +0 -1
- package/src/components/block-list/block-list-compact.native.js +0 -63
- package/src/components/off-canvas-editor/README.md +0 -5
- package/src/components/off-canvas-editor/appender.js +0 -124
- package/src/components/off-canvas-editor/block-contents.js +0 -156
- package/src/components/off-canvas-editor/block-select-button.js +0 -128
- package/src/components/off-canvas-editor/block.js +0 -347
- package/src/components/off-canvas-editor/branch.js +0 -238
- package/src/components/off-canvas-editor/context.js +0 -8
- package/src/components/off-canvas-editor/drop-indicator.js +0 -126
- package/src/components/off-canvas-editor/expander.js +0 -26
- package/src/components/off-canvas-editor/index.js +0 -271
- package/src/components/off-canvas-editor/leaf-more-menu.js +0 -157
- package/src/components/off-canvas-editor/leaf.js +0 -52
- package/src/components/off-canvas-editor/link-ui.js +0 -167
- package/src/components/off-canvas-editor/style.scss +0 -34
- package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
- package/src/components/off-canvas-editor/test/utils.js +0 -50
- package/src/components/off-canvas-editor/update-attributes.js +0 -99
- package/src/components/off-canvas-editor/use-block-selection.js +0 -169
- package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
- package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
- package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
- package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
- package/src/components/off-canvas-editor/utils.js +0 -58
|
@@ -27,9 +27,9 @@ import { store as blockEditorStore } from '../../store';
|
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* An
|
|
30
|
+
* An object representing data for blocks in the DOM used by drag and drop.
|
|
31
31
|
*
|
|
32
|
-
* @typedef {Object}
|
|
32
|
+
* @typedef {Object} WPListViewDropZoneBlock
|
|
33
33
|
* @property {string} clientId The client id for the block.
|
|
34
34
|
* @property {string} rootClientId The root client id for the block.
|
|
35
35
|
* @property {number} blockIndex The block's index.
|
|
@@ -41,6 +41,12 @@ import { store as blockEditorStore } from '../../store';
|
|
|
41
41
|
* @property {boolean} canInsertDraggedBlocksAsChild Whether the dragged block can be a child of this block.
|
|
42
42
|
*/
|
|
43
43
|
|
|
44
|
+
/**
|
|
45
|
+
* An array representing data for blocks in the DOM used by drag and drop.
|
|
46
|
+
*
|
|
47
|
+
* @typedef {WPListViewDropZoneBlock[]} WPListViewDropZoneBlocks
|
|
48
|
+
*/
|
|
49
|
+
|
|
44
50
|
/**
|
|
45
51
|
* An object containing details of a drop target.
|
|
46
52
|
*
|
|
@@ -52,19 +58,110 @@ import { store as blockEditorStore } from '../../store';
|
|
|
52
58
|
* 'inside' refers to nesting as an inner block.
|
|
53
59
|
*/
|
|
54
60
|
|
|
61
|
+
// When the indentation level, the corresponding left margin in `style.scss`
|
|
62
|
+
// must be updated as well to ensure the drop zone is aligned with the indentation.
|
|
63
|
+
export const NESTING_LEVEL_INDENTATION = 28;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Determines whether the user is positioning the dragged block to be
|
|
67
|
+
* moved up to a parent level.
|
|
68
|
+
*
|
|
69
|
+
* Determined based on nesting level indentation of the current block.
|
|
70
|
+
*
|
|
71
|
+
* @param {WPPoint} point The point representing the cursor position when dragging.
|
|
72
|
+
* @param {DOMRect} rect The rectangle.
|
|
73
|
+
* @param {number} nestingLevel The nesting level of the block.
|
|
74
|
+
* @return {boolean} Whether the gesture is an upward gesture.
|
|
75
|
+
*/
|
|
76
|
+
function isUpGesture( point, rect, nestingLevel = 1 ) {
|
|
77
|
+
// If the block is nested, and the user is dragging to the bottom
|
|
78
|
+
// left of the block, then it is an upward gesture.
|
|
79
|
+
const blockIndentPosition =
|
|
80
|
+
rect.left + nestingLevel * NESTING_LEVEL_INDENTATION;
|
|
81
|
+
return point.x < blockIndentPosition;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Returns how many nesting levels up the user is attempting to drag to.
|
|
86
|
+
*
|
|
87
|
+
* The relative parent level is calculated based on how far
|
|
88
|
+
* the cursor is from the provided nesting level (e.g. of a candidate block
|
|
89
|
+
* that the user is hovering over). The nesting level is considered "desired"
|
|
90
|
+
* because it is not guaranteed that the user will be able to drag to the desired level.
|
|
91
|
+
*
|
|
92
|
+
* The returned integer can be used to access an ascending array
|
|
93
|
+
* of parent blocks, where the first item is the block the user
|
|
94
|
+
* is hovering over, and the last item is the root block.
|
|
95
|
+
*
|
|
96
|
+
* @param {WPPoint} point The point representing the cursor position when dragging.
|
|
97
|
+
* @param {DOMRect} rect The rectangle.
|
|
98
|
+
* @param {number} nestingLevel The nesting level of the block.
|
|
99
|
+
* @return {number} The desired relative parent level.
|
|
100
|
+
*/
|
|
101
|
+
function getDesiredRelativeParentLevel( point, rect, nestingLevel = 1 ) {
|
|
102
|
+
const blockIndentPosition =
|
|
103
|
+
rect.left + nestingLevel * NESTING_LEVEL_INDENTATION;
|
|
104
|
+
const desiredParentLevel = Math.round(
|
|
105
|
+
( point.x - blockIndentPosition ) / NESTING_LEVEL_INDENTATION
|
|
106
|
+
);
|
|
107
|
+
return Math.abs( desiredParentLevel );
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Returns an array of the parent blocks of the block the user is dropping to.
|
|
112
|
+
*
|
|
113
|
+
* @param {WPListViewDropZoneBlock} candidateBlockData The block the user is dropping to.
|
|
114
|
+
* @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view.
|
|
115
|
+
* @return {WPListViewDropZoneBlocks} An array of block parents, including the block the user is dropping to.
|
|
116
|
+
*/
|
|
117
|
+
function getCandidateBlockParents( candidateBlockData, blocksData ) {
|
|
118
|
+
const candidateBlockParents = [];
|
|
119
|
+
let currentBlockData = candidateBlockData;
|
|
120
|
+
|
|
121
|
+
while ( currentBlockData ) {
|
|
122
|
+
candidateBlockParents.push( { ...currentBlockData } );
|
|
123
|
+
currentBlockData = blocksData.find(
|
|
124
|
+
( blockData ) =>
|
|
125
|
+
blockData.clientId === currentBlockData.rootClientId
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return candidateBlockParents;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Given a list of blocks data and a block index, return the next non-dragged
|
|
134
|
+
* block. This is used to determine the block that the user is dropping to,
|
|
135
|
+
* while ignoring the dragged block.
|
|
136
|
+
*
|
|
137
|
+
* @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view.
|
|
138
|
+
* @param {number} index The index to begin searching from.
|
|
139
|
+
* @return {WPListViewDropZoneBlock | undefined} The next non-dragged block.
|
|
140
|
+
*/
|
|
141
|
+
function getNextNonDraggedBlock( blocksData, index ) {
|
|
142
|
+
const nextBlockData = blocksData[ index + 1 ];
|
|
143
|
+
if ( nextBlockData && nextBlockData.isDraggedBlock ) {
|
|
144
|
+
return getNextNonDraggedBlock( blocksData, index + 1 );
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return nextBlockData;
|
|
148
|
+
}
|
|
149
|
+
|
|
55
150
|
/**
|
|
56
151
|
* Determines whether the user positioning the dragged block to nest as an
|
|
57
152
|
* inner block.
|
|
58
153
|
*
|
|
59
|
-
*
|
|
60
|
-
* of the
|
|
154
|
+
* Determined based on nesting level indentation of the current block, plus
|
|
155
|
+
* the indentation of the next level of nesting.
|
|
61
156
|
*
|
|
62
|
-
* @param {WPPoint} point
|
|
63
|
-
* @param {DOMRect} rect
|
|
157
|
+
* @param {WPPoint} point The point representing the cursor position when dragging.
|
|
158
|
+
* @param {DOMRect} rect The rectangle.
|
|
159
|
+
* @param {number} nestingLevel The nesting level of the block.
|
|
64
160
|
*/
|
|
65
|
-
function isNestingGesture( point, rect ) {
|
|
66
|
-
const
|
|
67
|
-
|
|
161
|
+
function isNestingGesture( point, rect, nestingLevel = 1 ) {
|
|
162
|
+
const blockIndentPosition =
|
|
163
|
+
rect.left + nestingLevel * NESTING_LEVEL_INDENTATION;
|
|
164
|
+
return point.x > blockIndentPosition + NESTING_LEVEL_INDENTATION;
|
|
68
165
|
}
|
|
69
166
|
|
|
70
167
|
// Block navigation is always a vertical list, so only allow dropping
|
|
@@ -84,8 +181,10 @@ export function getListViewDropTarget( blocksData, position ) {
|
|
|
84
181
|
let candidateBlockData;
|
|
85
182
|
let candidateDistance;
|
|
86
183
|
let candidateRect;
|
|
184
|
+
let candidateBlockIndex;
|
|
87
185
|
|
|
88
|
-
for (
|
|
186
|
+
for ( let i = 0; i < blocksData.length; i++ ) {
|
|
187
|
+
const blockData = blocksData[ i ];
|
|
89
188
|
if ( blockData.isDraggedBlock ) {
|
|
90
189
|
continue;
|
|
91
190
|
}
|
|
@@ -121,10 +220,12 @@ export function getListViewDropTarget( blocksData, position ) {
|
|
|
121
220
|
candidateEdge = 'bottom';
|
|
122
221
|
candidateRect =
|
|
123
222
|
previousBlockData.element.getBoundingClientRect();
|
|
223
|
+
candidateBlockIndex = index - 1;
|
|
124
224
|
} else {
|
|
125
225
|
candidateBlockData = blockData;
|
|
126
226
|
candidateEdge = edge;
|
|
127
227
|
candidateRect = rect;
|
|
228
|
+
candidateBlockIndex = index;
|
|
128
229
|
}
|
|
129
230
|
|
|
130
231
|
// If the mouse position is within the block, break early
|
|
@@ -143,8 +244,79 @@ export function getListViewDropTarget( blocksData, position ) {
|
|
|
143
244
|
return;
|
|
144
245
|
}
|
|
145
246
|
|
|
247
|
+
const candidateBlockParents = getCandidateBlockParents(
|
|
248
|
+
candidateBlockData,
|
|
249
|
+
blocksData
|
|
250
|
+
);
|
|
251
|
+
|
|
146
252
|
const isDraggingBelow = candidateEdge === 'bottom';
|
|
147
253
|
|
|
254
|
+
// If the user is dragging towards the bottom of the block check whether
|
|
255
|
+
// they might be trying to move the block to be at a parent level.
|
|
256
|
+
if (
|
|
257
|
+
isDraggingBelow &&
|
|
258
|
+
candidateBlockData.rootClientId &&
|
|
259
|
+
isUpGesture( position, candidateRect, candidateBlockParents.length )
|
|
260
|
+
) {
|
|
261
|
+
const nextBlock = getNextNonDraggedBlock(
|
|
262
|
+
blocksData,
|
|
263
|
+
candidateBlockIndex
|
|
264
|
+
);
|
|
265
|
+
const currentLevel = candidateBlockData.nestingLevel;
|
|
266
|
+
const nextLevel = nextBlock ? nextBlock.nestingLevel : 1;
|
|
267
|
+
|
|
268
|
+
if ( currentLevel && nextLevel ) {
|
|
269
|
+
// Determine the desired relative level of the block to be dropped.
|
|
270
|
+
const desiredRelativeLevel = getDesiredRelativeParentLevel(
|
|
271
|
+
position,
|
|
272
|
+
candidateRect,
|
|
273
|
+
candidateBlockParents.length
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
const targetParentIndex = Math.max(
|
|
277
|
+
Math.min( desiredRelativeLevel, currentLevel - nextLevel ),
|
|
278
|
+
0
|
|
279
|
+
);
|
|
280
|
+
|
|
281
|
+
if ( candidateBlockParents[ targetParentIndex ] ) {
|
|
282
|
+
// Default to the block index of the candidate block.
|
|
283
|
+
let newBlockIndex = candidateBlockData.blockIndex;
|
|
284
|
+
|
|
285
|
+
// If the next block is at the same level, use that as the default
|
|
286
|
+
// block index. This ensures that the block is dropped in the correct
|
|
287
|
+
// position when dragging to the bottom of a block.
|
|
288
|
+
if (
|
|
289
|
+
candidateBlockParents[ targetParentIndex ].nestingLevel ===
|
|
290
|
+
nextBlock?.nestingLevel
|
|
291
|
+
) {
|
|
292
|
+
newBlockIndex = nextBlock?.blockIndex;
|
|
293
|
+
} else {
|
|
294
|
+
// Otherwise, search from the current block index back
|
|
295
|
+
// to find the last block index within the same target parent.
|
|
296
|
+
for ( let i = candidateBlockIndex; i >= 0; i-- ) {
|
|
297
|
+
const blockData = blocksData[ i ];
|
|
298
|
+
if (
|
|
299
|
+
blockData.rootClientId ===
|
|
300
|
+
candidateBlockParents[ targetParentIndex ]
|
|
301
|
+
.rootClientId
|
|
302
|
+
) {
|
|
303
|
+
newBlockIndex = blockData.blockIndex + 1;
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
return {
|
|
310
|
+
rootClientId:
|
|
311
|
+
candidateBlockParents[ targetParentIndex ].rootClientId,
|
|
312
|
+
clientId: candidateBlockData.clientId,
|
|
313
|
+
blockIndex: newBlockIndex,
|
|
314
|
+
dropPosition: candidateEdge,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
148
320
|
// If the user is dragging towards the bottom of the block check whether
|
|
149
321
|
// they might be trying to nest the block as a child.
|
|
150
322
|
// If the block already has inner blocks, and is expanded, this should be treated
|
|
@@ -156,7 +328,11 @@ export function getListViewDropTarget( blocksData, position ) {
|
|
|
156
328
|
candidateBlockData.canInsertDraggedBlocksAsChild &&
|
|
157
329
|
( ( candidateBlockData.innerBlockCount > 0 &&
|
|
158
330
|
candidateBlockData.isExpanded ) ||
|
|
159
|
-
isNestingGesture(
|
|
331
|
+
isNestingGesture(
|
|
332
|
+
position,
|
|
333
|
+
candidateRect,
|
|
334
|
+
candidateBlockParents.length
|
|
335
|
+
) )
|
|
160
336
|
) {
|
|
161
337
|
return {
|
|
162
338
|
rootClientId: candidateBlockData.clientId,
|
|
@@ -213,6 +389,12 @@ export default function useListViewDropZone() {
|
|
|
213
389
|
const blocksData = blockElements.map( ( blockElement ) => {
|
|
214
390
|
const clientId = blockElement.dataset.block;
|
|
215
391
|
const isExpanded = blockElement.dataset.expanded === 'true';
|
|
392
|
+
|
|
393
|
+
// Get nesting level from `aria-level` attribute because Firefox does not support `element.ariaLevel`.
|
|
394
|
+
const nestingLevel = parseInt(
|
|
395
|
+
blockElement.getAttribute( 'aria-level' ),
|
|
396
|
+
10
|
|
397
|
+
);
|
|
216
398
|
const rootClientId = getBlockRootClientId( clientId );
|
|
217
399
|
|
|
218
400
|
return {
|
|
@@ -221,6 +403,7 @@ export default function useListViewDropZone() {
|
|
|
221
403
|
rootClientId,
|
|
222
404
|
blockIndex: getBlockIndex( clientId ),
|
|
223
405
|
element: blockElement,
|
|
406
|
+
nestingLevel: nestingLevel || undefined,
|
|
224
407
|
isDraggedBlock: isBlockDrag
|
|
225
408
|
? draggedBlockClientIds.includes( clientId )
|
|
226
409
|
: false,
|
|
@@ -17,6 +17,8 @@ import { __ } from '@wordpress/i18n';
|
|
|
17
17
|
import { useState, useEffect } from '@wordpress/element';
|
|
18
18
|
import { useSelect } from '@wordpress/data';
|
|
19
19
|
import { keyboardReturn } from '@wordpress/icons';
|
|
20
|
+
import { pasteHandler } from '@wordpress/blocks';
|
|
21
|
+
import deprecated from '@wordpress/deprecated';
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* Internal dependencies
|
|
@@ -74,12 +76,19 @@ export function MediaPlaceholder( {
|
|
|
74
76
|
onToggleFeaturedImage,
|
|
75
77
|
onDoubleClick,
|
|
76
78
|
onFilesPreUpload = noop,
|
|
77
|
-
onHTMLDrop
|
|
79
|
+
onHTMLDrop: deprecatedOnHTMLDrop,
|
|
78
80
|
children,
|
|
79
81
|
mediaLibraryButton,
|
|
80
82
|
placeholder,
|
|
81
83
|
style,
|
|
82
84
|
} ) {
|
|
85
|
+
if ( deprecatedOnHTMLDrop ) {
|
|
86
|
+
deprecated( 'wp.blockEditor.MediaPlaceholder onHTMLDrop prop', {
|
|
87
|
+
since: '6.2',
|
|
88
|
+
version: '6.4',
|
|
89
|
+
} );
|
|
90
|
+
}
|
|
91
|
+
|
|
83
92
|
const mediaUpload = useSelect( ( select ) => {
|
|
84
93
|
const { getSettings } = select( blockEditorStore );
|
|
85
94
|
return getSettings().mediaUpload;
|
|
@@ -177,6 +186,70 @@ export function MediaPlaceholder( {
|
|
|
177
186
|
} );
|
|
178
187
|
};
|
|
179
188
|
|
|
189
|
+
async function handleBlocksDrop( blocks ) {
|
|
190
|
+
if ( ! blocks || ! Array.isArray( blocks ) ) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
function recursivelyFindMediaFromBlocks( _blocks ) {
|
|
195
|
+
return _blocks.flatMap( ( block ) =>
|
|
196
|
+
( block.name === 'core/image' ||
|
|
197
|
+
block.name === 'core/audio' ||
|
|
198
|
+
block.name === 'core/video' ) &&
|
|
199
|
+
block.attributes.url
|
|
200
|
+
? [ block ]
|
|
201
|
+
: recursivelyFindMediaFromBlocks( block.innerBlocks )
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const mediaBlocks = recursivelyFindMediaFromBlocks( blocks );
|
|
206
|
+
|
|
207
|
+
if ( ! mediaBlocks.length ) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const uploadedMediaList = await Promise.all(
|
|
212
|
+
mediaBlocks.map( ( block ) =>
|
|
213
|
+
block.attributes.id
|
|
214
|
+
? block.attributes
|
|
215
|
+
: new Promise( ( resolve, reject ) => {
|
|
216
|
+
window
|
|
217
|
+
.fetch( block.attributes.url )
|
|
218
|
+
.then( ( response ) => response.blob() )
|
|
219
|
+
.then( ( blob ) =>
|
|
220
|
+
mediaUpload( {
|
|
221
|
+
filesList: [ blob ],
|
|
222
|
+
additionalData: {
|
|
223
|
+
title: block.attributes.title,
|
|
224
|
+
alt_text: block.attributes.alt,
|
|
225
|
+
caption: block.attributes.caption,
|
|
226
|
+
},
|
|
227
|
+
onFileChange: ( [ media ] ) => {
|
|
228
|
+
if ( media.id ) {
|
|
229
|
+
resolve( media );
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
allowedTypes,
|
|
233
|
+
onError: reject,
|
|
234
|
+
} )
|
|
235
|
+
)
|
|
236
|
+
.catch( () => resolve( block.attributes.url ) );
|
|
237
|
+
} )
|
|
238
|
+
)
|
|
239
|
+
).catch( ( err ) => onError( err ) );
|
|
240
|
+
|
|
241
|
+
if ( multiple ) {
|
|
242
|
+
onSelect( uploadedMediaList );
|
|
243
|
+
} else {
|
|
244
|
+
onSelect( uploadedMediaList[ 0 ] );
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
async function onHTMLDrop( HTML ) {
|
|
249
|
+
const blocks = pasteHandler( { HTML } );
|
|
250
|
+
return await handleBlocksDrop( blocks );
|
|
251
|
+
}
|
|
252
|
+
|
|
180
253
|
const onUpload = ( event ) => {
|
|
181
254
|
onFilesUpload( event.target.files );
|
|
182
255
|
};
|
|
@@ -23,14 +23,14 @@ function MultiSelectionInspector( { blocks } ) {
|
|
|
23
23
|
<div className="block-editor-multi-selection-inspector__card-title">
|
|
24
24
|
{ sprintf(
|
|
25
25
|
/* translators: %d: number of blocks */
|
|
26
|
-
_n( '%d
|
|
26
|
+
_n( '%d Block', '%d Blocks', blocks.length ),
|
|
27
27
|
blocks.length
|
|
28
28
|
) }
|
|
29
29
|
</div>
|
|
30
30
|
<div className="block-editor-multi-selection-inspector__card-description">
|
|
31
31
|
{ sprintf(
|
|
32
32
|
/* translators: %d: number of words */
|
|
33
|
-
_n( '%d word', '%d words', words ),
|
|
33
|
+
_n( '%d word selected.', '%d words selected.', words ),
|
|
34
34
|
words
|
|
35
35
|
) }
|
|
36
36
|
</div>
|
|
@@ -9,7 +9,7 @@ import classnames from 'classnames';
|
|
|
9
9
|
import { useViewportMatch } from '@wordpress/compose';
|
|
10
10
|
import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
|
|
11
11
|
import { __ } from '@wordpress/i18n';
|
|
12
|
-
import { check } from '@wordpress/icons';
|
|
12
|
+
import { check, desktop, mobile, tablet } from '@wordpress/icons';
|
|
13
13
|
|
|
14
14
|
export default function PreviewOptions( {
|
|
15
15
|
children,
|
|
@@ -38,13 +38,20 @@ export default function PreviewOptions( {
|
|
|
38
38
|
const menuProps = {
|
|
39
39
|
'aria-label': __( 'View options' ),
|
|
40
40
|
};
|
|
41
|
+
|
|
42
|
+
const deviceIcons = {
|
|
43
|
+
mobile,
|
|
44
|
+
tablet,
|
|
45
|
+
desktop,
|
|
46
|
+
};
|
|
47
|
+
|
|
41
48
|
return (
|
|
42
49
|
<DropdownMenu
|
|
43
50
|
className="block-editor-post-preview__dropdown"
|
|
44
51
|
popoverProps={ popoverProps }
|
|
45
52
|
toggleProps={ toggleProps }
|
|
46
53
|
menuProps={ menuProps }
|
|
47
|
-
icon={
|
|
54
|
+
icon={ deviceIcons[ deviceType.toLowerCase() ] }
|
|
48
55
|
>
|
|
49
56
|
{ () => (
|
|
50
57
|
<>
|
|
@@ -139,6 +139,12 @@ _Required._ Called when the value changes. The second parameter is `null` unless
|
|
|
139
139
|
}
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
+
### `onKeydown`: `( event: KeyboardEvent ) => void`
|
|
143
|
+
|
|
144
|
+
A callback invoked on the keydown event.
|
|
145
|
+
|
|
146
|
+
- Required: No
|
|
147
|
+
|
|
142
148
|
### `label: String`
|
|
143
149
|
|
|
144
150
|
_Optional._ If this property is added, a label will be generated using label property as the content.
|
|
@@ -267,6 +267,7 @@ class URLInput extends Component {
|
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
onKeyDown( event ) {
|
|
270
|
+
this.props.onKeyDown?.( event );
|
|
270
271
|
const { showSuggestions, selectedSuggestion, suggestions, loading } =
|
|
271
272
|
this.state;
|
|
272
273
|
|
|
@@ -309,11 +310,10 @@ class URLInput extends Component {
|
|
|
309
310
|
|
|
310
311
|
// Submitting while loading should trigger onSubmit.
|
|
311
312
|
case ENTER: {
|
|
312
|
-
event.preventDefault();
|
|
313
313
|
if ( this.props.onSubmit ) {
|
|
314
|
+
event.preventDefault();
|
|
314
315
|
this.props.onSubmit( null, event );
|
|
315
316
|
}
|
|
316
|
-
|
|
317
317
|
break;
|
|
318
318
|
}
|
|
319
319
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useDispatch, useSelect } from '@wordpress/data';
|
|
4
|
+
import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
|
|
5
5
|
import { useCallback, useState } from '@wordpress/element';
|
|
6
6
|
import {
|
|
7
7
|
useThrottle,
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
isPointContainedByRect,
|
|
20
20
|
} from '../../utils/math';
|
|
21
21
|
import { store as blockEditorStore } from '../../store';
|
|
22
|
+
import { unlock } from '../../lock-unlock';
|
|
22
23
|
|
|
23
24
|
/** @typedef {import('../../utils/math').WPPoint} WPPoint */
|
|
24
25
|
/** @typedef {import('../use-on-block-drop/types').WPDropOperation} WPDropOperation */
|
|
@@ -142,6 +143,7 @@ export default function useBlockDropZone( {
|
|
|
142
143
|
// an empty string to represent top-level blocks.
|
|
143
144
|
rootClientId: targetRootClientId = '',
|
|
144
145
|
} = {} ) {
|
|
146
|
+
const registry = useRegistry();
|
|
145
147
|
const [ dropTarget, setDropTarget ] = useState( {
|
|
146
148
|
index: null,
|
|
147
149
|
operation: 'insert',
|
|
@@ -150,15 +152,13 @@ export default function useBlockDropZone( {
|
|
|
150
152
|
const isDisabled = useSelect(
|
|
151
153
|
( select ) => {
|
|
152
154
|
const {
|
|
153
|
-
getTemplateLock,
|
|
154
155
|
__unstableIsWithinBlockOverlay,
|
|
155
156
|
__unstableHasActiveBlockOverlayActive,
|
|
156
|
-
|
|
157
|
-
|
|
157
|
+
getBlockEditingMode,
|
|
158
|
+
} = unlock( select( blockEditorStore ) );
|
|
159
|
+
const blockEditingMode = getBlockEditingMode( targetRootClientId );
|
|
158
160
|
return (
|
|
159
|
-
|
|
160
|
-
( lock ) => lock === templateLock
|
|
161
|
-
) ||
|
|
161
|
+
blockEditingMode !== 'default' ||
|
|
162
162
|
__unstableHasActiveBlockOverlayActive( targetRootClientId ) ||
|
|
163
163
|
__unstableIsWithinBlockOverlay( targetRootClientId )
|
|
164
164
|
);
|
|
@@ -181,9 +181,14 @@ export default function useBlockDropZone( {
|
|
|
181
181
|
|
|
182
182
|
// The block list is empty, don't show the insertion point but still allow dropping.
|
|
183
183
|
if ( blocks.length === 0 ) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
184
|
+
registry.batch( () => {
|
|
185
|
+
setDropTarget( {
|
|
186
|
+
index: 0,
|
|
187
|
+
operation: 'insert',
|
|
188
|
+
} );
|
|
189
|
+
showInsertionPoint( targetRootClientId, 0, {
|
|
190
|
+
operation: 'insert',
|
|
191
|
+
} );
|
|
187
192
|
} );
|
|
188
193
|
return;
|
|
189
194
|
}
|
|
@@ -208,15 +213,24 @@ export default function useBlockDropZone( {
|
|
|
208
213
|
getBlockListSettings( targetRootClientId )?.orientation
|
|
209
214
|
);
|
|
210
215
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
216
|
+
registry.batch( () => {
|
|
217
|
+
setDropTarget( {
|
|
218
|
+
index: targetIndex,
|
|
219
|
+
operation,
|
|
220
|
+
} );
|
|
221
|
+
showInsertionPoint( targetRootClientId, targetIndex, {
|
|
222
|
+
operation,
|
|
223
|
+
} );
|
|
217
224
|
} );
|
|
218
225
|
},
|
|
219
|
-
[
|
|
226
|
+
[
|
|
227
|
+
getBlocks,
|
|
228
|
+
targetRootClientId,
|
|
229
|
+
getBlockListSettings,
|
|
230
|
+
registry,
|
|
231
|
+
showInsertionPoint,
|
|
232
|
+
getBlockIndex,
|
|
233
|
+
]
|
|
220
234
|
),
|
|
221
235
|
200
|
|
222
236
|
);
|
|
@@ -47,12 +47,20 @@ export default function useResizeCanvas( deviceType ) {
|
|
|
47
47
|
|
|
48
48
|
const contentInlineStyles = ( device ) => {
|
|
49
49
|
const height = device === 'Mobile' ? '768px' : '1024px';
|
|
50
|
+
const marginVertical = marginValue() + 'px';
|
|
51
|
+
const marginHorizontal = 'auto';
|
|
52
|
+
|
|
50
53
|
switch ( device ) {
|
|
51
54
|
case 'Tablet':
|
|
52
55
|
case 'Mobile':
|
|
53
56
|
return {
|
|
54
57
|
width: getCanvasWidth( device ),
|
|
55
|
-
margin
|
|
58
|
+
// Keeping margin styles separate to avoid warnings
|
|
59
|
+
// when those props get overridden in the iframe component
|
|
60
|
+
marginTop: marginVertical,
|
|
61
|
+
marginBottom: marginVertical,
|
|
62
|
+
marginLeft: marginHorizontal,
|
|
63
|
+
marginRight: marginHorizontal,
|
|
56
64
|
height,
|
|
57
65
|
borderRadius: '2px 2px 2px 2px',
|
|
58
66
|
border: '1px solid #ddd',
|
|
@@ -19,6 +19,9 @@ describe( 'isNavigationCandidate', () => {
|
|
|
19
19
|
elements.inputCheckbox = document.createElement( 'input' );
|
|
20
20
|
elements.inputCheckbox.setAttribute( 'type', 'checkbox' );
|
|
21
21
|
|
|
22
|
+
elements.inputNumber = document.createElement( 'input' );
|
|
23
|
+
elements.inputNumber.setAttribute( 'type', 'number' );
|
|
24
|
+
|
|
22
25
|
elements.contentEditable = document.createElement( 'p' );
|
|
23
26
|
elements.contentEditable.contentEditable = true;
|
|
24
27
|
} );
|
|
@@ -47,6 +50,18 @@ describe( 'isNavigationCandidate', () => {
|
|
|
47
50
|
} );
|
|
48
51
|
} );
|
|
49
52
|
|
|
53
|
+
it( 'should return false if vertically navigating inputs with vertial support like number', () => {
|
|
54
|
+
[ UP, DOWN ].forEach( ( keyCode ) => {
|
|
55
|
+
const result = isNavigationCandidate(
|
|
56
|
+
elements.inputNumber,
|
|
57
|
+
keyCode,
|
|
58
|
+
false
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
expect( result ).toBe( false );
|
|
62
|
+
} );
|
|
63
|
+
} );
|
|
64
|
+
|
|
50
65
|
it( 'should return false if horizontally navigating input', () => {
|
|
51
66
|
[ LEFT, RIGHT ].forEach( ( keyCode ) => {
|
|
52
67
|
const result = isNavigationCandidate(
|
|
@@ -32,19 +32,32 @@ import { store as blockEditorStore } from '../../store';
|
|
|
32
32
|
*/
|
|
33
33
|
export function isNavigationCandidate( element, keyCode, hasModifier ) {
|
|
34
34
|
const isVertical = keyCode === UP || keyCode === DOWN;
|
|
35
|
+
const { tagName } = element;
|
|
36
|
+
const elementType = element.getAttribute( 'type' );
|
|
35
37
|
|
|
36
|
-
//
|
|
38
|
+
// Native inputs should not navigate vertically, unless they are simple types that don't need up/down arrow keys.
|
|
37
39
|
if ( isVertical && ! hasModifier ) {
|
|
40
|
+
if ( tagName === 'INPUT' ) {
|
|
41
|
+
const verticalInputTypes = [
|
|
42
|
+
'date',
|
|
43
|
+
'datetime-local',
|
|
44
|
+
'month',
|
|
45
|
+
'number',
|
|
46
|
+
'range',
|
|
47
|
+
'time',
|
|
48
|
+
'week',
|
|
49
|
+
];
|
|
50
|
+
return ! verticalInputTypes.includes( elementType );
|
|
51
|
+
}
|
|
38
52
|
return true;
|
|
39
53
|
}
|
|
40
54
|
|
|
41
|
-
const { tagName } = element;
|
|
42
|
-
|
|
43
55
|
// Native inputs should not navigate horizontally, unless they are simple types that don't need left/right arrow keys.
|
|
44
56
|
if ( tagName === 'INPUT' ) {
|
|
45
57
|
const simpleInputTypes = [
|
|
46
58
|
'button',
|
|
47
59
|
'checkbox',
|
|
60
|
+
'number',
|
|
48
61
|
'color',
|
|
49
62
|
'file',
|
|
50
63
|
'image',
|
|
@@ -52,7 +65,7 @@ export function isNavigationCandidate( element, keyCode, hasModifier ) {
|
|
|
52
65
|
'reset',
|
|
53
66
|
'submit',
|
|
54
67
|
];
|
|
55
|
-
return simpleInputTypes.includes(
|
|
68
|
+
return simpleInputTypes.includes( elementType );
|
|
56
69
|
}
|
|
57
70
|
|
|
58
71
|
// Native textareas should not navigate horizontally.
|