@wordpress/block-editor 8.6.0 → 9.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 +11 -0
- package/README.md +5 -2
- package/build/components/block-alignment-control/constants.js +48 -0
- package/build/components/block-alignment-control/constants.js.map +1 -0
- package/build/components/block-alignment-control/ui.js +9 -40
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +92 -0
- package/build/components/block-alignment-control/ui.native.js.map +1 -0
- package/build/components/block-alignment-matrix-control/index.js +1 -6
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-content-overlay/index.js +4 -82
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.native.js +65 -0
- package/build/components/block-draggable/draggable-chip.native.js.map +1 -0
- package/build/components/block-draggable/dropping-insertion-point.native.js +157 -0
- package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
- package/build/components/block-draggable/index.native.js +488 -0
- package/build/components/block-draggable/index.native.js.map +1 -0
- package/build/components/block-draggable/use-scroll-when-dragging.native.js +130 -0
- package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
- package/build/components/block-list/block-list-context.native.js +195 -0
- package/build/components/block-list/block-list-context.native.js.map +1 -0
- package/build/components/block-list/block-list-item-cell.native.js +67 -0
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -0
- package/build/components/block-list/block-list-item.native.js +12 -9
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block.native.js +27 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +34 -32
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +75 -23
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +8 -4
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +1 -7
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +1 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +10 -3
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-mover/index.native.js +17 -4
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +11 -5
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-popover/inbetween.js +19 -8
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +20 -16
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/index.js +1 -1
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +1 -0
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +1 -29
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +16 -2
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +10 -3
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/color-style-selector/index.js +9 -0
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +122 -41
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +35 -60
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +22 -5
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/iframe/index.js +51 -50
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +3 -1
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/index.js +14 -23
- package/build/components/index.js.map +1 -1
- package/build/components/inserter/index.js +21 -7
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +2 -2
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -5
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/link-control/constants.js +11 -1
- package/build/components/link-control/constants.js.map +1 -1
- package/build/components/link-control/search-results.js +4 -3
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +4 -4
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block.js +15 -15
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +9 -13
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/context.js +1 -4
- package/build/components/list-view/context.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +0 -1
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js +15 -32
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/media-placeholder/index.js +0 -2
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +0 -2
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +10 -4
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +12 -2
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +62 -7
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +55 -0
- package/build/components/publish-date-time-picker/index.js.map +1 -0
- package/build/components/rich-text/format-toolbar-container.js +0 -1
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +2 -2
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +5 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/url-input/index.js +11 -4
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +167 -0
- package/build/components/use-block-drop-zone/index.native.js.map +1 -0
- package/build/components/use-on-block-drop/index.native.js +95 -0
- package/build/components/use-on-block-drop/index.native.js.map +1 -0
- package/build/components/use-setting/index.js +42 -18
- package/build/components/use-setting/index.js.map +1 -1
- package/build/components/warning/index.js +6 -1
- package/build/components/warning/index.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js +1 -3
- package/build/components/writing-flow/use-click-selection.js.map +1 -1
- package/build/components/writing-flow/use-input.js +15 -0
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +49 -8
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/elements/index.js +9 -0
- package/build/elements/index.js.map +1 -0
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/border.js +2 -7
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +14 -7
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color.js +8 -88
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/dimensions.js +16 -6
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/margin.js +64 -12
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +60 -12
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/settings.js +32 -0
- package/build/hooks/settings.js.map +1 -0
- package/build/hooks/style.js +14 -13
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +6 -2
- package/build/hooks/typography.js.map +1 -1
- package/build/index.js +14 -0
- package/build/index.js.map +1 -1
- package/build/layouts/flex.js +5 -2
- package/build/layouts/flex.js.map +1 -1
- package/build/store/actions.js +14 -0
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +0 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +17 -2
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +43 -13
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-alignment-control/constants.js +36 -0
- package/build-module/components/block-alignment-control/constants.js.map +1 -0
- package/build-module/components/block-alignment-control/ui.js +4 -35
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +78 -0
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -0
- package/build-module/components/block-alignment-matrix-control/index.js +1 -6
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +3 -78
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.native.js +51 -0
- package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -0
- package/build-module/components/block-draggable/dropping-insertion-point.native.js +137 -0
- package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
- package/build-module/components/block-draggable/index.native.js +453 -0
- package/build-module/components/block-draggable/index.native.js.map +1 -0
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +120 -0
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
- package/build-module/components/block-list/block-list-context.native.js +179 -0
- package/build-module/components/block-list/block-list-context.native.js.map +1 -0
- package/build-module/components/block-list/block-list-item-cell.native.js +59 -0
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -0
- package/build-module/components/block-list/block-list-item.native.js +12 -9
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block.native.js +26 -5
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +35 -33
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +72 -23
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +9 -5
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -7
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +9 -3
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +18 -5
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +10 -5
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +19 -8
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +21 -15
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/index.js +1 -1
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +1 -0
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +2 -29
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +13 -2
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +11 -4
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/color-style-selector/index.js +6 -0
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +124 -43
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +36 -64
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +23 -6
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/iframe/index.js +52 -51
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +2 -1
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/index.js +2 -3
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inserter/index.js +21 -7
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +2 -2
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +4 -5
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/link-control/constants.js +5 -0
- package/build-module/components/link-control/constants.js.map +1 -1
- package/build-module/components/link-control/search-results.js +3 -4
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +5 -5
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block.js +15 -16
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +9 -13
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/context.js +1 -4
- package/build-module/components/list-view/context.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +0 -1
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js +15 -31
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +0 -2
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +0 -2
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +8 -3
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +12 -2
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +63 -8
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +42 -0
- package/build-module/components/publish-date-time-picker/index.js.map +1 -0
- package/build-module/components/rich-text/format-toolbar-container.js +0 -1
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +2 -2
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +5 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +11 -4
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +148 -0
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -0
- package/build-module/components/use-on-block-drop/index.native.js +83 -0
- package/build-module/components/use-on-block-drop/index.native.js.map +1 -0
- package/build-module/components/use-setting/index.js +43 -19
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/components/warning/index.js +6 -1
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js +1 -3
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-input.js +15 -0
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +49 -8
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/elements/index.js +2 -0
- package/build-module/elements/index.js.map +1 -0
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/border.js +2 -7
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +11 -6
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color.js +8 -88
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/dimensions.js +19 -9
- package/build-module/hooks/dimensions.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/margin.js +61 -13
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +57 -13
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/settings.js +29 -0
- package/build-module/hooks/settings.js.map +1 -0
- package/build-module/hooks/style.js +15 -14
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +6 -2
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/flex.js +4 -2
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/store/actions.js +12 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +0 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +17 -2
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +37 -12
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +100 -225
- package/build-style/style.css +100 -225
- package/package.json +30 -30
- package/src/components/block-alignment-control/constants.js +45 -0
- package/src/components/block-alignment-control/ui.js +69 -109
- package/src/components/block-alignment-control/ui.native.js +86 -0
- package/src/components/block-alignment-matrix-control/index.js +1 -5
- package/src/components/block-content-overlay/index.js +8 -95
- package/src/components/block-content-overlay/style.scss +2 -12
- package/src/components/block-draggable/draggable-chip.native.js +49 -0
- package/src/components/block-draggable/dropping-insertion-point.native.js +181 -0
- package/src/components/block-draggable/dropping-insertion-point.native.scss +8 -0
- package/src/components/block-draggable/index.native.js +462 -0
- package/src/components/block-draggable/style.native.scss +19 -0
- package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +73 -0
- package/src/components/block-draggable/test/helpers.native.js +183 -0
- package/src/components/block-draggable/test/index.native.js +496 -0
- package/src/components/block-draggable/use-scroll-when-dragging.native.js +135 -0
- package/src/components/block-list/block-list-context.native.js +175 -0
- package/src/components/block-list/block-list-item-cell.native.js +49 -0
- package/src/components/block-list/block-list-item.native.js +7 -11
- package/src/components/block-list/block.native.js +37 -8
- package/src/components/block-list/index.js +44 -44
- package/src/components/block-list/index.native.js +54 -13
- package/src/components/block-list/style.scss +7 -18
- package/src/components/block-list/test/block-list-context.native.js +253 -0
- package/src/components/block-list/test/fixtures/block-list-context.native.js +79 -0
- package/src/components/block-list/use-block-props/index.js +10 -5
- package/src/components/block-list/use-block-props/use-block-class-names.js +1 -11
- package/src/components/block-list/use-in-between-inserter.js +1 -1
- package/src/components/block-mobile-toolbar/index.native.js +9 -1
- package/src/components/block-mover/index.native.js +22 -6
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -0
- package/src/components/block-navigation/dropdown.js +12 -8
- package/src/components/block-popover/inbetween.js +21 -8
- package/src/components/block-popover/index.js +18 -15
- package/src/components/block-popover/style.scss +4 -0
- package/src/components/block-preview/index.js +1 -4
- package/src/components/block-switcher/style.scss +2 -39
- package/src/components/block-tools/block-selection-button.js +1 -0
- package/src/components/block-tools/selected-block-popover.js +1 -36
- package/src/components/block-tools/style.scss +1 -12
- package/src/components/block-variation-transforms/index.js +6 -2
- package/src/components/border-radius-control/input-controls.js +16 -8
- package/src/components/border-radius-control/style.scss +3 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/color-style-selector/index.js +18 -9
- package/src/components/colors-gradients/dropdown.js +130 -62
- package/src/components/colors-gradients/panel-color-gradient-settings.js +30 -76
- package/src/components/colors-gradients/style.scss +52 -50
- package/src/components/convert-to-group-buttons/toolbar.js +30 -13
- package/src/components/duotone-control/style.scss +1 -7
- package/src/components/iframe/index.js +62 -54
- package/src/components/image-editor/use-save-image.js +2 -1
- package/src/components/image-size-control/README.md +1 -1
- package/src/components/index.js +2 -3
- package/src/components/inserter/index.js +20 -0
- package/src/components/inserter/index.native.js +2 -2
- package/src/components/inserter/quick-inserter.js +3 -11
- package/src/components/inserter/style.native.scss +1 -0
- package/src/components/inserter/style.scss +2 -1
- package/src/components/link-control/constants.js +11 -0
- package/src/components/link-control/search-results.js +4 -5
- package/src/components/link-control/use-search-handler.js +11 -5
- package/src/components/list-view/block.js +24 -34
- package/src/components/list-view/branch.js +10 -20
- package/src/components/list-view/context.js +1 -4
- package/src/components/list-view/drop-indicator.js +0 -1
- package/src/components/list-view/index.js +11 -41
- package/src/components/list-view/style.scss +2 -1
- package/src/components/media-placeholder/index.js +0 -2
- package/src/components/media-replace-flow/index.js +0 -2
- package/src/components/media-upload/index.native.js +6 -2
- package/src/components/media-upload/test/index.native.js +31 -6
- package/src/components/navigable-toolbar/index.js +12 -2
- package/src/components/plain-text/index.native.js +64 -8
- package/src/components/preview-options/style.scss +0 -4
- package/src/components/publish-date-time-picker/README.md +52 -0
- package/src/components/publish-date-time-picker/index.js +50 -0
- package/src/components/publish-date-time-picker/style.scss +20 -0
- package/src/components/rich-text/format-toolbar-container.js +0 -1
- package/src/components/rich-text/index.js +3 -1
- package/src/components/rich-text/index.native.js +4 -0
- package/src/components/rich-text/style.scss +2 -8
- package/src/components/url-input/index.js +9 -4
- package/src/components/use-block-drop-zone/index.native.js +173 -0
- package/src/components/use-on-block-drop/index.native.js +119 -0
- package/src/components/use-setting/index.js +57 -21
- package/src/components/warning/index.js +47 -42
- package/src/components/warning/test/__snapshots__/index.js.snap +15 -6
- package/src/components/warning/test/index.js +1 -1
- package/src/components/writing-flow/use-click-selection.js +1 -4
- package/src/components/writing-flow/use-input.js +12 -0
- package/src/components/writing-flow/use-selection-observer.js +55 -10
- package/src/elements/index.js +1 -0
- package/src/hooks/anchor.js +1 -1
- package/src/hooks/border.js +2 -11
- package/src/hooks/border.scss +0 -48
- package/src/hooks/color-panel.js +13 -9
- package/src/hooks/color.js +5 -74
- package/src/hooks/color.scss +5 -58
- package/src/hooks/dimensions.js +55 -41
- package/src/hooks/index.js +1 -0
- package/src/hooks/margin.js +64 -15
- package/src/hooks/padding.js +60 -15
- package/src/hooks/padding.scss +12 -0
- package/src/hooks/settings.js +32 -0
- package/src/hooks/style.js +25 -39
- package/src/hooks/test/settings.js +48 -0
- package/src/hooks/typography.js +2 -0
- package/src/index.js +1 -0
- package/src/layouts/flex.js +11 -3
- package/src/store/actions.js +12 -0
- package/src/store/defaults.js +0 -1
- package/src/store/reducer.js +14 -1
- package/src/store/selectors.js +42 -12
- package/src/store/test/reducer.js +5 -0
- package/src/store/test/selectors.js +17 -0
- package/src/style.scss +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/border-style-control/index.js +0 -60
- package/build/components/border-style-control/index.js.map +0 -1
- package/build/components/colors/color-panel.js +0 -82
- package/build/components/colors/color-panel.js.map +0 -1
- package/build/components/colors/color-panel.native.js +0 -11
- package/build/components/colors/color-panel.native.js.map +0 -1
- package/build/components/colors-gradients/tools-panel-color-dropdown.js +0 -89
- package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
- package/build-module/components/border-style-control/index.js +0 -50
- package/build-module/components/border-style-control/index.js.map +0 -1
- package/build-module/components/colors/color-panel.js +0 -70
- package/build-module/components/colors/color-panel.js.map +0 -1
- package/build-module/components/colors/color-panel.native.js +0 -4
- package/build-module/components/colors/color-panel.native.js.map +0 -1
- package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +0 -75
- package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
- package/src/components/block-alignment-matrix-control/style.scss +0 -10
- package/src/components/border-style-control/index.js +0 -47
- package/src/components/border-style-control/style.scss +0 -18
- package/src/components/colors/color-panel.js +0 -91
- package/src/components/colors/color-panel.native.js +0 -3
- package/src/components/colors-gradients/tools-panel-color-dropdown.js +0 -85
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
useState,
|
|
11
11
|
createPortal,
|
|
12
12
|
forwardRef,
|
|
13
|
-
useEffect,
|
|
14
13
|
useMemo,
|
|
15
14
|
useReducer,
|
|
16
15
|
} from '@wordpress/element';
|
|
@@ -34,61 +33,66 @@ const BLOCK_PREFIX = 'wp-block';
|
|
|
34
33
|
*
|
|
35
34
|
* Ideally, this hook should be removed in the future and styles should be added
|
|
36
35
|
* explicitly as editor styles.
|
|
37
|
-
*
|
|
38
|
-
* @param {Document} doc The document to append cloned stylesheets to.
|
|
39
36
|
*/
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const { ownerNode, cssRules } = styleSheet;
|
|
52
|
-
|
|
53
|
-
if ( ! cssRules ) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
37
|
+
function useStylesCompatibility() {
|
|
38
|
+
return useRefEffect( ( node ) => {
|
|
39
|
+
// Search the document for stylesheets targetting the editor canvas.
|
|
40
|
+
Array.from( document.styleSheets ).forEach( ( styleSheet ) => {
|
|
41
|
+
try {
|
|
42
|
+
// May fail for external styles.
|
|
43
|
+
// eslint-disable-next-line no-unused-expressions
|
|
44
|
+
styleSheet.cssRules;
|
|
45
|
+
} catch ( e ) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
56
48
|
|
|
57
|
-
|
|
58
|
-
// stylesheet later, which may or may not match the selectors.
|
|
59
|
-
if ( ownerNode.tagName !== 'LINK' ) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
49
|
+
const { ownerNode, cssRules } = styleSheet;
|
|
62
50
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if ( ownerNode.id === 'wp-reset-editor-styles-css' ) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const isMatch = Array.from( cssRules ).find(
|
|
71
|
-
( { selectorText } ) =>
|
|
72
|
-
selectorText &&
|
|
73
|
-
( selectorText.includes( `.${ BODY_CLASS_NAME }` ) ||
|
|
74
|
-
selectorText.includes( `.${ BLOCK_PREFIX }` ) )
|
|
75
|
-
);
|
|
51
|
+
if ( ! cssRules ) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
76
54
|
|
|
77
|
-
|
|
78
|
-
//
|
|
79
|
-
|
|
55
|
+
// Generally, ignore inline styles. We add inline styles belonging to a
|
|
56
|
+
// stylesheet later, which may or may not match the selectors.
|
|
57
|
+
if ( ownerNode.tagName !== 'LINK' ) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
80
60
|
|
|
81
|
-
|
|
61
|
+
// Don't try to add the reset styles, which were removed as a dependency
|
|
62
|
+
// from `edit-blocks` for the iframe since we don't need to reset admin
|
|
63
|
+
// styles.
|
|
64
|
+
if ( ownerNode.id === 'wp-reset-editor-styles-css' ) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
82
67
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
68
|
+
const isMatch = Array.from( cssRules ).find(
|
|
69
|
+
( { selectorText } ) =>
|
|
70
|
+
selectorText &&
|
|
71
|
+
( selectorText.includes( `.${ BODY_CLASS_NAME }` ) ||
|
|
72
|
+
selectorText.includes( `.${ BLOCK_PREFIX }` ) )
|
|
73
|
+
);
|
|
86
74
|
|
|
87
|
-
if (
|
|
88
|
-
|
|
75
|
+
if (
|
|
76
|
+
isMatch &&
|
|
77
|
+
! node.ownerDocument.getElementById( ownerNode.id )
|
|
78
|
+
) {
|
|
79
|
+
// Display warning once we have a way to add style dependencies to the editor.
|
|
80
|
+
// See: https://github.com/WordPress/gutenberg/pull/37466.
|
|
81
|
+
node.appendChild( ownerNode.cloneNode( true ) );
|
|
82
|
+
|
|
83
|
+
// Add inline styles belonging to the stylesheet.
|
|
84
|
+
const inlineCssId = ownerNode.id.replace(
|
|
85
|
+
'-css',
|
|
86
|
+
'-inline-css'
|
|
87
|
+
);
|
|
88
|
+
const inlineCssElement = document.getElementById( inlineCssId );
|
|
89
|
+
|
|
90
|
+
if ( inlineCssElement ) {
|
|
91
|
+
node.appendChild( inlineCssElement.cloneNode( true ) );
|
|
92
|
+
}
|
|
89
93
|
}
|
|
90
|
-
}
|
|
91
|
-
} );
|
|
94
|
+
} );
|
|
95
|
+
}, [] );
|
|
92
96
|
}
|
|
93
97
|
|
|
94
98
|
/**
|
|
@@ -222,12 +226,7 @@ function Iframe(
|
|
|
222
226
|
} );
|
|
223
227
|
}, [] );
|
|
224
228
|
const bodyRef = useMergeRefs( [ contentRef, clearerRef, writingFlowRef ] );
|
|
225
|
-
|
|
226
|
-
useEffect( () => {
|
|
227
|
-
if ( iframeDocument ) {
|
|
228
|
-
styleSheetsCompat( iframeDocument );
|
|
229
|
-
}
|
|
230
|
-
}, [ iframeDocument ] );
|
|
229
|
+
const styleCompatibilityRef = useStylesCompatibility();
|
|
231
230
|
|
|
232
231
|
head = (
|
|
233
232
|
<>
|
|
@@ -275,6 +274,15 @@ function Iframe(
|
|
|
275
274
|
...bodyClasses
|
|
276
275
|
) }
|
|
277
276
|
>
|
|
277
|
+
{ /*
|
|
278
|
+
* This is a wrapper for the extra styles and scripts
|
|
279
|
+
* rendered imperatively by cloning the parent,
|
|
280
|
+
* it's important that this div's content remains uncontrolled.
|
|
281
|
+
*/ }
|
|
282
|
+
<div
|
|
283
|
+
style={ { display: 'none' } }
|
|
284
|
+
ref={ styleCompatibilityRef }
|
|
285
|
+
/>
|
|
278
286
|
<StyleProvider document={ iframeDocument }>
|
|
279
287
|
{ children }
|
|
280
288
|
</StyleProvider>
|
|
@@ -6,6 +6,7 @@ import { useDispatch } from '@wordpress/data';
|
|
|
6
6
|
import { useCallback, useMemo, useState } from '@wordpress/element';
|
|
7
7
|
import { __, sprintf } from '@wordpress/i18n';
|
|
8
8
|
import { store as noticesStore } from '@wordpress/notices';
|
|
9
|
+
import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
|
|
9
10
|
|
|
10
11
|
export default function useSaveImage( {
|
|
11
12
|
crop,
|
|
@@ -60,7 +61,7 @@ export default function useSaveImage( {
|
|
|
60
61
|
sprintf(
|
|
61
62
|
/* translators: 1. Error message */
|
|
62
63
|
__( 'Could not edit image. %s' ),
|
|
63
|
-
error.message
|
|
64
|
+
stripHTML( error.message )
|
|
64
65
|
),
|
|
65
66
|
{
|
|
66
67
|
id: 'image-editing-error',
|
package/src/components/index.js
CHANGED
|
@@ -14,7 +14,7 @@ export {
|
|
|
14
14
|
export { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';
|
|
15
15
|
export { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';
|
|
16
16
|
export { default as BlockBreadcrumb } from './block-breadcrumb';
|
|
17
|
-
export { default as
|
|
17
|
+
export { default as __experimentalUseBlockOverlayActive } from './block-content-overlay';
|
|
18
18
|
export { BlockContextProvider } from './block-context';
|
|
19
19
|
export {
|
|
20
20
|
default as BlockControls,
|
|
@@ -33,7 +33,6 @@ export {
|
|
|
33
33
|
BlockVerticalAlignmentControl,
|
|
34
34
|
} from './block-vertical-alignment-control';
|
|
35
35
|
export { default as __experimentalBorderRadiusControl } from './border-radius-control';
|
|
36
|
-
export { default as __experimentalBorderStyleControl } from './border-style-control';
|
|
37
36
|
export {
|
|
38
37
|
// This is a typo, but kept here for back-compat.
|
|
39
38
|
ButtonBlockerAppender,
|
|
@@ -52,7 +51,6 @@ export { default as __experimentalTextTransformControl } from './text-transform-
|
|
|
52
51
|
export { default as __experimentalColorGradientControl } from './colors-gradients/control';
|
|
53
52
|
export { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';
|
|
54
53
|
export { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';
|
|
55
|
-
export { default as __experimentalToolsPanelColorDropdown } from './colors-gradients/tools-panel-color-dropdown';
|
|
56
54
|
export {
|
|
57
55
|
default as __experimentalImageEditor,
|
|
58
56
|
ImageEditingProvider as __experimentalImageEditingProvider,
|
|
@@ -149,6 +147,7 @@ export { default as useBlockDisplayInformation } from './use-block-display-infor
|
|
|
149
147
|
export { default as __unstableIframe } from './iframe';
|
|
150
148
|
export { default as __experimentalUseNoRecursiveRenders } from './use-no-recursive-renders';
|
|
151
149
|
export { default as __experimentalBlockPatternsList } from './block-patterns-list';
|
|
150
|
+
export { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';
|
|
152
151
|
|
|
153
152
|
/*
|
|
154
153
|
* State Related Components
|
|
@@ -30,6 +30,7 @@ const defaultRenderToggle = ( {
|
|
|
30
30
|
blockTitle,
|
|
31
31
|
hasSingleBlockType,
|
|
32
32
|
toggleProps = {},
|
|
33
|
+
prioritizePatterns,
|
|
33
34
|
} ) => {
|
|
34
35
|
let label;
|
|
35
36
|
if ( hasSingleBlockType ) {
|
|
@@ -38,6 +39,8 @@ const defaultRenderToggle = ( {
|
|
|
38
39
|
_x( 'Add %s', 'directly add the only allowed block' ),
|
|
39
40
|
blockTitle
|
|
40
41
|
);
|
|
42
|
+
} else if ( prioritizePatterns ) {
|
|
43
|
+
label = __( 'Add pattern' );
|
|
41
44
|
} else {
|
|
42
45
|
label = _x( 'Add block', 'Generic label for block inserter button' );
|
|
43
46
|
}
|
|
@@ -106,6 +109,7 @@ class Inserter extends Component {
|
|
|
106
109
|
toggleProps,
|
|
107
110
|
hasItems,
|
|
108
111
|
renderToggle = defaultRenderToggle,
|
|
112
|
+
prioritizePatterns,
|
|
109
113
|
} = this.props;
|
|
110
114
|
|
|
111
115
|
return renderToggle( {
|
|
@@ -116,6 +120,7 @@ class Inserter extends Component {
|
|
|
116
120
|
hasSingleBlockType,
|
|
117
121
|
directInsertBlock,
|
|
118
122
|
toggleProps,
|
|
123
|
+
prioritizePatterns,
|
|
119
124
|
} );
|
|
120
125
|
}
|
|
121
126
|
|
|
@@ -138,6 +143,7 @@ class Inserter extends Component {
|
|
|
138
143
|
// This prop is experimental to give some time for the quick inserter to mature
|
|
139
144
|
// Feel free to make them stable after a few releases.
|
|
140
145
|
__experimentalIsQuick: isQuick,
|
|
146
|
+
prioritizePatterns,
|
|
141
147
|
} = this.props;
|
|
142
148
|
|
|
143
149
|
if ( isQuick ) {
|
|
@@ -149,6 +155,7 @@ class Inserter extends Component {
|
|
|
149
155
|
rootClientId={ rootClientId }
|
|
150
156
|
clientId={ clientId }
|
|
151
157
|
isAppender={ isAppender }
|
|
158
|
+
prioritizePatterns={ prioritizePatterns }
|
|
152
159
|
/>
|
|
153
160
|
);
|
|
154
161
|
}
|
|
@@ -206,7 +213,11 @@ export default compose( [
|
|
|
206
213
|
hasInserterItems,
|
|
207
214
|
__experimentalGetAllowedBlocks,
|
|
208
215
|
__experimentalGetDirectInsertBlock,
|
|
216
|
+
getBlockIndex,
|
|
217
|
+
getBlockCount,
|
|
218
|
+
getSettings,
|
|
209
219
|
} = select( blockEditorStore );
|
|
220
|
+
|
|
210
221
|
const { getBlockVariations } = select( blocksStore );
|
|
211
222
|
|
|
212
223
|
rootClientId =
|
|
@@ -218,6 +229,10 @@ export default compose( [
|
|
|
218
229
|
rootClientId
|
|
219
230
|
);
|
|
220
231
|
|
|
232
|
+
const index = getBlockIndex( clientId );
|
|
233
|
+
const blockCount = getBlockCount();
|
|
234
|
+
const settings = getSettings();
|
|
235
|
+
|
|
221
236
|
const hasSingleBlockType =
|
|
222
237
|
size( allowedBlocks ) === 1 &&
|
|
223
238
|
size(
|
|
@@ -236,6 +251,11 @@ export default compose( [
|
|
|
236
251
|
allowedBlockType,
|
|
237
252
|
directInsertBlock,
|
|
238
253
|
rootClientId,
|
|
254
|
+
prioritizePatterns:
|
|
255
|
+
settings.__experimentalPreferPatternsOnRoot &&
|
|
256
|
+
! rootClientId &&
|
|
257
|
+
index > 0 &&
|
|
258
|
+
( index < blockCount || blockCount === 0 ),
|
|
239
259
|
};
|
|
240
260
|
} ),
|
|
241
261
|
withDispatch( ( dispatch, ownProps, { select } ) => {
|
|
@@ -52,7 +52,7 @@ const defaultRenderToggle = ( {
|
|
|
52
52
|
};
|
|
53
53
|
const expandedModeViewText = (
|
|
54
54
|
<Text style={ styles[ 'inserter-menu__add-block-button-text' ] }>
|
|
55
|
-
{ __( 'Add
|
|
55
|
+
{ __( 'Add blocks' ) }
|
|
56
56
|
</Text>
|
|
57
57
|
);
|
|
58
58
|
|
|
@@ -67,7 +67,7 @@ const defaultRenderToggle = ( {
|
|
|
67
67
|
extraProps={ {
|
|
68
68
|
hint: __( 'Double tap to add a block' ),
|
|
69
69
|
// testID is present to disambiguate this element for native UI tests. It's not
|
|
70
|
-
// usually required for components. See: https://
|
|
70
|
+
// usually required for components. See: https://github.com/WordPress/gutenberg/pull/18832#issuecomment-561411389.
|
|
71
71
|
testID: 'add-block-button',
|
|
72
72
|
onLongPress,
|
|
73
73
|
} }
|
|
@@ -30,6 +30,7 @@ export default function QuickInserter( {
|
|
|
30
30
|
rootClientId,
|
|
31
31
|
clientId,
|
|
32
32
|
isAppender,
|
|
33
|
+
prioritizePatterns,
|
|
33
34
|
} ) {
|
|
34
35
|
const [ filterValue, setFilterValue ] = useState( '' );
|
|
35
36
|
const [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {
|
|
@@ -48,11 +49,7 @@ export default function QuickInserter( {
|
|
|
48
49
|
destinationRootClientId
|
|
49
50
|
);
|
|
50
51
|
|
|
51
|
-
const {
|
|
52
|
-
setInserterIsOpened,
|
|
53
|
-
insertionIndex,
|
|
54
|
-
prioritizePatterns,
|
|
55
|
-
} = useSelect(
|
|
52
|
+
const { setInserterIsOpened, insertionIndex } = useSelect(
|
|
56
53
|
( select ) => {
|
|
57
54
|
const { getSettings, getBlockIndex, getBlockCount } = select(
|
|
58
55
|
blockEditorStore
|
|
@@ -63,15 +60,10 @@ export default function QuickInserter( {
|
|
|
63
60
|
|
|
64
61
|
return {
|
|
65
62
|
setInserterIsOpened: settings.__experimentalSetIsInserterOpened,
|
|
66
|
-
prioritizePatterns:
|
|
67
|
-
settings.__experimentalPreferPatternsOnRoot &&
|
|
68
|
-
! rootClientId &&
|
|
69
|
-
index > 0 &&
|
|
70
|
-
( index < blockCount || blockCount === 0 ),
|
|
71
63
|
insertionIndex: index === -1 ? blockCount : index,
|
|
72
64
|
};
|
|
73
65
|
},
|
|
74
|
-
[ clientId
|
|
66
|
+
[ clientId ]
|
|
75
67
|
);
|
|
76
68
|
|
|
77
69
|
const showPatterns =
|
|
@@ -23,6 +23,7 @@ $block-inserter-tabs-height: 44px;
|
|
|
23
23
|
.block-editor-inserter__popover.is-quick {
|
|
24
24
|
.components-popover__content {
|
|
25
25
|
border: none;
|
|
26
|
+
outline: none;
|
|
26
27
|
|
|
27
28
|
.block-editor-inserter__quick-inserter > * {
|
|
28
29
|
border-left: $border-width solid $gray-400;
|
|
@@ -310,7 +311,7 @@ $block-inserter-tabs-height: 44px;
|
|
|
310
311
|
border-top: $border-width solid $gray-300;
|
|
311
312
|
}
|
|
312
313
|
|
|
313
|
-
.block-editor-inserter__popover.is-quick > .components-popover__content
|
|
314
|
+
.block-editor-inserter__popover.is-quick > .components-popover__content {
|
|
314
315
|
padding: 0;
|
|
315
316
|
}
|
|
316
317
|
|
|
@@ -7,6 +7,17 @@ import { __ } from '@wordpress/i18n';
|
|
|
7
7
|
// Used to help distinguish the "Create" suggestion within the search results in
|
|
8
8
|
// order to handle it as a unique case.
|
|
9
9
|
export const CREATE_TYPE = '__CREATE__';
|
|
10
|
+
export const TEL_TYPE = 'tel';
|
|
11
|
+
export const URL_TYPE = 'URL';
|
|
12
|
+
export const MAILTO_TYPE = 'mailto';
|
|
13
|
+
export const INTERNAL_TYPE = 'internal';
|
|
14
|
+
|
|
15
|
+
export const LINK_ENTRY_TYPES = [
|
|
16
|
+
URL_TYPE,
|
|
17
|
+
MAILTO_TYPE,
|
|
18
|
+
TEL_TYPE,
|
|
19
|
+
INTERNAL_TYPE,
|
|
20
|
+
];
|
|
10
21
|
|
|
11
22
|
export const DEFAULT_LINK_SETTINGS = [
|
|
12
23
|
{
|
|
@@ -15,7 +15,7 @@ import { createElement, Fragment } from '@wordpress/element';
|
|
|
15
15
|
*/
|
|
16
16
|
import LinkControlSearchCreate from './search-create-button';
|
|
17
17
|
import LinkControlSearchItem from './search-item';
|
|
18
|
-
import { CREATE_TYPE } from './constants';
|
|
18
|
+
import { CREATE_TYPE, LINK_ENTRY_TYPES } from './constants';
|
|
19
19
|
|
|
20
20
|
export default function LinkControlSearchResults( {
|
|
21
21
|
instanceId,
|
|
@@ -38,10 +38,9 @@ export default function LinkControlSearchResults( {
|
|
|
38
38
|
}
|
|
39
39
|
);
|
|
40
40
|
|
|
41
|
-
const directLinkEntryTypes = [ 'url', 'mailto', 'tel', 'internal' ];
|
|
42
41
|
const isSingleDirectEntryResult =
|
|
43
42
|
suggestions.length === 1 &&
|
|
44
|
-
|
|
43
|
+
LINK_ENTRY_TYPES.includes( suggestions[ 0 ].type );
|
|
45
44
|
const shouldShowCreateSuggestion =
|
|
46
45
|
withCreateSuggestion &&
|
|
47
46
|
! isSingleDirectEntryResult &&
|
|
@@ -127,8 +126,8 @@ export default function LinkControlSearchResults( {
|
|
|
127
126
|
handleSuggestionClick( suggestion );
|
|
128
127
|
} }
|
|
129
128
|
isSelected={ index === selectedSuggestion }
|
|
130
|
-
isURL={
|
|
131
|
-
suggestion.type
|
|
129
|
+
isURL={ LINK_ENTRY_TYPES.includes(
|
|
130
|
+
suggestion.type
|
|
132
131
|
) }
|
|
133
132
|
searchTerm={ currentInputValue }
|
|
134
133
|
shouldShowType={ shouldShowSuggestionsTypes }
|
|
@@ -14,26 +14,32 @@ import { startsWith } from 'lodash';
|
|
|
14
14
|
* Internal dependencies
|
|
15
15
|
*/
|
|
16
16
|
import isURLLike from './is-url-like';
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
CREATE_TYPE,
|
|
19
|
+
TEL_TYPE,
|
|
20
|
+
MAILTO_TYPE,
|
|
21
|
+
INTERNAL_TYPE,
|
|
22
|
+
URL_TYPE,
|
|
23
|
+
} from './constants';
|
|
18
24
|
import { store as blockEditorStore } from '../../store';
|
|
19
25
|
|
|
20
26
|
export const handleNoop = () => Promise.resolve( [] );
|
|
21
27
|
|
|
22
28
|
export const handleDirectEntry = ( val ) => {
|
|
23
|
-
let type =
|
|
29
|
+
let type = URL_TYPE;
|
|
24
30
|
|
|
25
31
|
const protocol = getProtocol( val ) || '';
|
|
26
32
|
|
|
27
33
|
if ( protocol.includes( 'mailto' ) ) {
|
|
28
|
-
type =
|
|
34
|
+
type = MAILTO_TYPE;
|
|
29
35
|
}
|
|
30
36
|
|
|
31
37
|
if ( protocol.includes( 'tel' ) ) {
|
|
32
|
-
type =
|
|
38
|
+
type = TEL_TYPE;
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
if ( startsWith( val, '#' ) ) {
|
|
36
|
-
type =
|
|
42
|
+
type = INTERNAL_TYPE;
|
|
37
43
|
}
|
|
38
44
|
|
|
39
45
|
return Promise.resolve( [
|
|
@@ -6,6 +6,7 @@ import classnames from 'classnames';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
+
import { hasBlockSupport } from '@wordpress/blocks';
|
|
9
10
|
import {
|
|
10
11
|
__experimentalTreeGridCell as TreeGridCell,
|
|
11
12
|
__experimentalTreeGridItem as TreeGridItem,
|
|
@@ -19,7 +20,7 @@ import {
|
|
|
19
20
|
useCallback,
|
|
20
21
|
memo,
|
|
21
22
|
} from '@wordpress/element';
|
|
22
|
-
import { useDispatch } from '@wordpress/data';
|
|
23
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
23
24
|
import { sprintf, __ } from '@wordpress/i18n';
|
|
24
25
|
|
|
25
26
|
/**
|
|
@@ -66,6 +67,19 @@ function ListViewBlock( {
|
|
|
66
67
|
const { toggleBlockHighlight } = useDispatch( blockEditorStore );
|
|
67
68
|
|
|
68
69
|
const blockInformation = useBlockDisplayInformation( clientId );
|
|
70
|
+
const blockName = useSelect(
|
|
71
|
+
( select ) => select( blockEditorStore ).getBlockName( clientId ),
|
|
72
|
+
[ clientId ]
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
// When a block hides its toolbar it also hides the block settings menu,
|
|
76
|
+
// since that menu is part of the toolbar in the editor canvas.
|
|
77
|
+
// List View respects this by also hiding the block settings menu.
|
|
78
|
+
const showBlockActions = hasBlockSupport(
|
|
79
|
+
blockName,
|
|
80
|
+
'__experimentalToolbar',
|
|
81
|
+
true
|
|
82
|
+
);
|
|
69
83
|
const { isLocked } = useBlockLock( clientId );
|
|
70
84
|
const instanceId = useInstanceId( ListViewBlock );
|
|
71
85
|
const descriptionId = `list-view-block-select-button__${ instanceId }`;
|
|
@@ -98,14 +112,7 @@ function ListViewBlock( {
|
|
|
98
112
|
)
|
|
99
113
|
: __( 'Options' );
|
|
100
114
|
|
|
101
|
-
const {
|
|
102
|
-
__experimentalFeatures: withExperimentalFeatures,
|
|
103
|
-
__experimentalPersistentListViewFeatures: withExperimentalPersistentListViewFeatures,
|
|
104
|
-
__experimentalHideContainerBlockActions: hideContainerBlockActions,
|
|
105
|
-
isTreeGridMounted,
|
|
106
|
-
expand,
|
|
107
|
-
collapse,
|
|
108
|
-
} = useListViewContext();
|
|
115
|
+
const { isTreeGridMounted, expand, collapse } = useListViewContext();
|
|
109
116
|
|
|
110
117
|
const hasSiblings = siblingBlockCount > 0;
|
|
111
118
|
const hasRenderedMovers = showBlockMovers && hasSiblings;
|
|
@@ -123,27 +130,19 @@ function ListViewBlock( {
|
|
|
123
130
|
// only focus the selected list item on mount; otherwise the list would always
|
|
124
131
|
// try to steal the focus from the editor canvas.
|
|
125
132
|
useEffect( () => {
|
|
126
|
-
if (
|
|
127
|
-
withExperimentalPersistentListViewFeatures &&
|
|
128
|
-
! isTreeGridMounted &&
|
|
129
|
-
isSelected
|
|
130
|
-
) {
|
|
133
|
+
if ( ! isTreeGridMounted && isSelected ) {
|
|
131
134
|
cellRef.current.focus();
|
|
132
135
|
}
|
|
133
136
|
}, [] );
|
|
134
137
|
|
|
135
|
-
const highlightBlock = withExperimentalPersistentListViewFeatures
|
|
136
|
-
? toggleBlockHighlight
|
|
137
|
-
: () => {};
|
|
138
|
-
|
|
139
138
|
const onMouseEnter = useCallback( () => {
|
|
140
139
|
setIsHovered( true );
|
|
141
|
-
|
|
142
|
-
}, [ clientId, setIsHovered,
|
|
140
|
+
toggleBlockHighlight( clientId, true );
|
|
141
|
+
}, [ clientId, setIsHovered, toggleBlockHighlight ] );
|
|
143
142
|
const onMouseLeave = useCallback( () => {
|
|
144
143
|
setIsHovered( false );
|
|
145
|
-
|
|
146
|
-
}, [ clientId, setIsHovered,
|
|
144
|
+
toggleBlockHighlight( clientId, false );
|
|
145
|
+
}, [ clientId, setIsHovered, toggleBlockHighlight ] );
|
|
147
146
|
|
|
148
147
|
const selectEditorBlock = useCallback(
|
|
149
148
|
( event ) => {
|
|
@@ -174,18 +173,10 @@ function ListViewBlock( {
|
|
|
174
173
|
[ clientId, expand, collapse, isExpanded ]
|
|
175
174
|
);
|
|
176
175
|
|
|
177
|
-
const showBlockActions =
|
|
178
|
-
withExperimentalFeatures &&
|
|
179
|
-
// hide actions for blocks like core/widget-areas
|
|
180
|
-
( ! hideContainerBlockActions ||
|
|
181
|
-
( hideContainerBlockActions && level > 1 ) );
|
|
182
|
-
|
|
183
|
-
const hideBlockActions = withExperimentalFeatures && ! showBlockActions;
|
|
184
|
-
|
|
185
176
|
let colSpan;
|
|
186
177
|
if ( hasRenderedMovers ) {
|
|
187
178
|
colSpan = 2;
|
|
188
|
-
} else if (
|
|
179
|
+
} else if ( ! showBlockActions ) {
|
|
189
180
|
colSpan = 3;
|
|
190
181
|
}
|
|
191
182
|
|
|
@@ -193,10 +184,9 @@ function ListViewBlock( {
|
|
|
193
184
|
'is-selected': isSelected,
|
|
194
185
|
'is-first-selected': isFirstSelectedBlock,
|
|
195
186
|
'is-last-selected': isLastSelectedBlock,
|
|
196
|
-
'is-branch-selected':
|
|
197
|
-
withExperimentalPersistentListViewFeatures && isBranchSelected,
|
|
187
|
+
'is-branch-selected': isBranchSelected,
|
|
198
188
|
'is-dragging': isDragged,
|
|
199
|
-
'has-single-cell':
|
|
189
|
+
'has-single-cell': ! showBlockActions,
|
|
200
190
|
} );
|
|
201
191
|
|
|
202
192
|
// Only include all selected blocks if the currently clicked on block
|
|
@@ -85,21 +85,16 @@ function ListViewBranch( props ) {
|
|
|
85
85
|
blocks,
|
|
86
86
|
selectBlock,
|
|
87
87
|
showBlockMovers,
|
|
88
|
-
showNestedBlocks,
|
|
89
88
|
selectedClientIds,
|
|
90
89
|
level = 1,
|
|
91
90
|
path = '',
|
|
92
91
|
isBranchSelected = false,
|
|
93
92
|
listPosition = 0,
|
|
94
93
|
fixedListWindow,
|
|
95
|
-
|
|
94
|
+
isExpanded,
|
|
96
95
|
} = props;
|
|
97
96
|
|
|
98
|
-
const {
|
|
99
|
-
expandedState,
|
|
100
|
-
draggedClientIds,
|
|
101
|
-
__experimentalPersistentListViewFeatures,
|
|
102
|
-
} = useListViewContext();
|
|
97
|
+
const { expandedState, draggedClientIds } = useListViewContext();
|
|
103
98
|
|
|
104
99
|
const filteredBlocks = compact( blocks );
|
|
105
100
|
const blockCount = filteredBlocks.length;
|
|
@@ -115,26 +110,22 @@ function ListViewBranch( props ) {
|
|
|
115
110
|
filteredBlocks[ index - 1 ],
|
|
116
111
|
expandedState,
|
|
117
112
|
draggedClientIds,
|
|
118
|
-
|
|
113
|
+
isExpanded
|
|
119
114
|
);
|
|
120
115
|
}
|
|
121
116
|
|
|
122
|
-
const usesWindowing = __experimentalPersistentListViewFeatures;
|
|
123
|
-
|
|
124
117
|
const { itemInView } = fixedListWindow;
|
|
125
|
-
const blockInView =
|
|
126
|
-
! usesWindowing || itemInView( nextPosition );
|
|
118
|
+
const blockInView = itemInView( nextPosition );
|
|
127
119
|
|
|
128
120
|
const position = index + 1;
|
|
129
121
|
const updatedPath =
|
|
130
122
|
path.length > 0
|
|
131
123
|
? `${ path }_${ position }`
|
|
132
124
|
: `${ position }`;
|
|
133
|
-
const hasNestedBlocks =
|
|
134
|
-
showNestedBlocks && !! innerBlocks && !! innerBlocks.length;
|
|
125
|
+
const hasNestedBlocks = !! innerBlocks?.length;
|
|
135
126
|
|
|
136
|
-
const
|
|
137
|
-
? expandedState[ clientId ] ??
|
|
127
|
+
const shouldExpand = hasNestedBlocks
|
|
128
|
+
? expandedState[ clientId ] ?? isExpanded
|
|
138
129
|
: undefined;
|
|
139
130
|
|
|
140
131
|
const isDragged = !! draggedClientIds?.includes( clientId );
|
|
@@ -164,7 +155,7 @@ function ListViewBranch( props ) {
|
|
|
164
155
|
siblingBlockCount={ blockCount }
|
|
165
156
|
showBlockMovers={ showBlockMovers }
|
|
166
157
|
path={ updatedPath }
|
|
167
|
-
isExpanded={
|
|
158
|
+
isExpanded={ shouldExpand }
|
|
168
159
|
listPosition={ nextPosition }
|
|
169
160
|
selectedClientIds={ selectedClientIds }
|
|
170
161
|
/>
|
|
@@ -174,19 +165,18 @@ function ListViewBranch( props ) {
|
|
|
174
165
|
<td className="block-editor-list-view-placeholder" />
|
|
175
166
|
</tr>
|
|
176
167
|
) }
|
|
177
|
-
{ hasNestedBlocks &&
|
|
168
|
+
{ hasNestedBlocks && shouldExpand && ! isDragged && (
|
|
178
169
|
<ListViewBranch
|
|
179
170
|
blocks={ innerBlocks }
|
|
180
171
|
selectBlock={ selectBlock }
|
|
181
172
|
showBlockMovers={ showBlockMovers }
|
|
182
|
-
showNestedBlocks={ showNestedBlocks }
|
|
183
173
|
level={ level + 1 }
|
|
184
174
|
path={ updatedPath }
|
|
185
175
|
listPosition={ nextPosition + 1 }
|
|
186
176
|
fixedListWindow={ fixedListWindow }
|
|
187
177
|
isBranchSelected={ isSelectedBranch }
|
|
188
178
|
selectedClientIds={ selectedClientIds }
|
|
189
|
-
|
|
179
|
+
isExpanded={ isExpanded }
|
|
190
180
|
/>
|
|
191
181
|
) }
|
|
192
182
|
</AsyncModeProvider>
|
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { createContext, useContext } from '@wordpress/element';
|
|
5
5
|
|
|
6
|
-
export const ListViewContext = createContext( {
|
|
7
|
-
__experimentalFeatures: false,
|
|
8
|
-
__experimentalPersistentListViewFeatures: false,
|
|
9
|
-
} );
|
|
6
|
+
export const ListViewContext = createContext( {} );
|
|
10
7
|
|
|
11
8
|
export const useListViewContext = () => useContext( ListViewContext );
|