@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
|
@@ -48,33 +48,17 @@ const expanded = ( state, action ) => {
|
|
|
48
48
|
export const BLOCK_LIST_ITEM_HEIGHT = 36;
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
52
|
-
* recursive component (it renders itself), so this ensures TreeGrid is only
|
|
53
|
-
* present at the very top of the navigation grid.
|
|
51
|
+
* Show a hierarchical list of blocks.
|
|
54
52
|
*
|
|
55
|
-
* @param {Object} props
|
|
56
|
-
* @param {
|
|
57
|
-
* @param {
|
|
58
|
-
* @param {boolean} props.showBlockMovers
|
|
59
|
-
* @param {boolean} props.
|
|
60
|
-
* @param {
|
|
61
|
-
* @param {boolean} props.__experimentalHideContainerBlockActions Flag to hide actions of top level blocks (like core/widget-area)
|
|
62
|
-
* @param {string} props.id Unique identifier for the root list element (primarily for a11y purposes).
|
|
63
|
-
* @param {boolean} props.expandNested Flag to determine whether nested levels are expanded by default.
|
|
64
|
-
* @param {Object} ref Forwarded ref
|
|
53
|
+
* @param {Object} props Components props.
|
|
54
|
+
* @param {string} props.id An HTML element id for the root element of ListView.
|
|
55
|
+
* @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
|
|
56
|
+
* @param {boolean} props.showBlockMovers Flag to enable block movers
|
|
57
|
+
* @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.
|
|
58
|
+
* @param {Object} ref Forwarded ref
|
|
65
59
|
*/
|
|
66
60
|
function ListView(
|
|
67
|
-
{
|
|
68
|
-
blocks,
|
|
69
|
-
__experimentalFeatures,
|
|
70
|
-
__experimentalPersistentListViewFeatures,
|
|
71
|
-
__experimentalHideContainerBlockActions,
|
|
72
|
-
showNestedBlocks,
|
|
73
|
-
showBlockMovers,
|
|
74
|
-
id,
|
|
75
|
-
expandNested = false,
|
|
76
|
-
...props
|
|
77
|
-
},
|
|
61
|
+
{ id, blocks, showBlockMovers = false, isExpanded = false },
|
|
78
62
|
ref
|
|
79
63
|
) {
|
|
80
64
|
const {
|
|
@@ -131,7 +115,7 @@ function ListView(
|
|
|
131
115
|
BLOCK_LIST_ITEM_HEIGHT,
|
|
132
116
|
visibleBlockCount,
|
|
133
117
|
{
|
|
134
|
-
useWindowing:
|
|
118
|
+
useWindowing: true,
|
|
135
119
|
windowOverscan: 40,
|
|
136
120
|
}
|
|
137
121
|
);
|
|
@@ -181,25 +165,13 @@ function ListView(
|
|
|
181
165
|
|
|
182
166
|
const contextValue = useMemo(
|
|
183
167
|
() => ( {
|
|
184
|
-
__experimentalFeatures,
|
|
185
|
-
__experimentalPersistentListViewFeatures,
|
|
186
|
-
__experimentalHideContainerBlockActions,
|
|
187
168
|
isTreeGridMounted: isMounted.current,
|
|
188
169
|
draggedClientIds,
|
|
189
170
|
expandedState,
|
|
190
171
|
expand,
|
|
191
172
|
collapse,
|
|
192
173
|
} ),
|
|
193
|
-
[
|
|
194
|
-
__experimentalFeatures,
|
|
195
|
-
__experimentalPersistentListViewFeatures,
|
|
196
|
-
__experimentalHideContainerBlockActions,
|
|
197
|
-
isMounted.current,
|
|
198
|
-
draggedClientIds,
|
|
199
|
-
expandedState,
|
|
200
|
-
expand,
|
|
201
|
-
collapse,
|
|
202
|
-
]
|
|
174
|
+
[ isMounted.current, draggedClientIds, expandedState, expand, collapse ]
|
|
203
175
|
);
|
|
204
176
|
|
|
205
177
|
return (
|
|
@@ -221,12 +193,10 @@ function ListView(
|
|
|
221
193
|
<ListViewBranch
|
|
222
194
|
blocks={ clientIdsTree }
|
|
223
195
|
selectBlock={ selectEditorBlock }
|
|
224
|
-
showNestedBlocks={ showNestedBlocks }
|
|
225
196
|
showBlockMovers={ showBlockMovers }
|
|
226
197
|
fixedListWindow={ fixedListWindow }
|
|
227
198
|
selectedClientIds={ selectedClientIds }
|
|
228
|
-
|
|
229
|
-
{ ...props }
|
|
199
|
+
isExpanded={ isExpanded }
|
|
230
200
|
/>
|
|
231
201
|
</ListViewContext.Provider>
|
|
232
202
|
</TreeGrid>
|
|
@@ -396,10 +396,11 @@ $block-navigation-max-indent: 8;
|
|
|
396
396
|
}
|
|
397
397
|
|
|
398
398
|
// Reset some popover defaults for the drop indicator.
|
|
399
|
-
.block-editor-list-view-drop-indicator
|
|
399
|
+
.block-editor-list-view-drop-indicator > .components-popover__content {
|
|
400
400
|
margin-left: 0;
|
|
401
401
|
border: none;
|
|
402
402
|
box-shadow: none;
|
|
403
|
+
outline: none;
|
|
403
404
|
}
|
|
404
405
|
|
|
405
406
|
.block-editor-list-view-placeholder {
|
|
@@ -73,7 +73,6 @@ export function MediaPlaceholder( {
|
|
|
73
73
|
onDoubleClick,
|
|
74
74
|
onFilesPreUpload = noop,
|
|
75
75
|
onHTMLDrop = noop,
|
|
76
|
-
onClose = noop,
|
|
77
76
|
children,
|
|
78
77
|
mediaLibraryButton,
|
|
79
78
|
placeholder,
|
|
@@ -327,7 +326,6 @@ export function MediaPlaceholder( {
|
|
|
327
326
|
gallery={ multiple && onlyAllowsImages() }
|
|
328
327
|
multiple={ multiple }
|
|
329
328
|
onSelect={ onSelect }
|
|
330
|
-
onClose={ onClose }
|
|
331
329
|
allowedTypes={ allowedTypes }
|
|
332
330
|
value={
|
|
333
331
|
Array.isArray( value )
|
|
@@ -42,7 +42,6 @@ const MediaReplaceFlow = ( {
|
|
|
42
42
|
onSelect,
|
|
43
43
|
onSelectURL,
|
|
44
44
|
onFilesUpload = noop,
|
|
45
|
-
onCloseModal = noop,
|
|
46
45
|
name = __( 'Replace' ),
|
|
47
46
|
createNotice,
|
|
48
47
|
removeNotice,
|
|
@@ -158,7 +157,6 @@ const MediaReplaceFlow = ( {
|
|
|
158
157
|
selectMedia( media, onClose )
|
|
159
158
|
}
|
|
160
159
|
allowedTypes={ allowedTypes }
|
|
161
|
-
onClose={ onCloseModal }
|
|
162
160
|
render={ ( { open } ) => (
|
|
163
161
|
<MenuItem icon={ mediaIcon } onClick={ open }>
|
|
164
162
|
{ __( 'Open Media Library' ) }
|
|
@@ -39,6 +39,7 @@ export const OPTION_TAKE_VIDEO = __( 'Take a Video' );
|
|
|
39
39
|
export const OPTION_TAKE_PHOTO = __( 'Take a Photo' );
|
|
40
40
|
export const OPTION_TAKE_PHOTO_OR_VIDEO = __( 'Take a Photo or Video' );
|
|
41
41
|
export const OPTION_INSERT_FROM_URL = __( 'Insert from URL' );
|
|
42
|
+
export const OPTION_WORDPRESS_MEDIA_LIBRARY = __( 'WordPress Media Library' );
|
|
42
43
|
|
|
43
44
|
const URL_MEDIA_SOURCE = 'URL';
|
|
44
45
|
|
|
@@ -78,6 +79,8 @@ export class MediaUpload extends Component {
|
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
getAllSources() {
|
|
82
|
+
const { onSelectURL } = this.props;
|
|
83
|
+
|
|
81
84
|
const cameraImageSource = {
|
|
82
85
|
id: mediaSources.deviceCamera, // ID is the value sent to native.
|
|
83
86
|
value: mediaSources.deviceCamera + '-IMAGE', // This is needed to diferenciate image-camera from video-camera sources.
|
|
@@ -124,16 +127,17 @@ export class MediaUpload extends Component {
|
|
|
124
127
|
id: URL_MEDIA_SOURCE,
|
|
125
128
|
value: URL_MEDIA_SOURCE,
|
|
126
129
|
label: __( 'Insert from URL' ),
|
|
127
|
-
types: [ MEDIA_TYPE_AUDIO ],
|
|
130
|
+
types: [ MEDIA_TYPE_AUDIO, MEDIA_TYPE_IMAGE ],
|
|
128
131
|
icon: globe,
|
|
129
132
|
};
|
|
130
133
|
|
|
134
|
+
// Only include `urlSource` option if `onSelectURL` prop is present, in order to match the web behavior.
|
|
131
135
|
const internalSources = [
|
|
132
136
|
deviceLibrarySource,
|
|
133
137
|
cameraImageSource,
|
|
134
138
|
cameraVideoSource,
|
|
135
139
|
siteLibrarySource,
|
|
136
|
-
urlSource,
|
|
140
|
+
...( onSelectURL ? [ urlSource ] : [] ),
|
|
137
141
|
];
|
|
138
142
|
|
|
139
143
|
return internalSources.concat( this.state.otherMediaOptions );
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
OPTION_TAKE_VIDEO,
|
|
21
21
|
OPTION_TAKE_PHOTO,
|
|
22
22
|
OPTION_INSERT_FROM_URL,
|
|
23
|
+
OPTION_WORDPRESS_MEDIA_LIBRARY,
|
|
23
24
|
} from '../index';
|
|
24
25
|
|
|
25
26
|
const MEDIA_URL = 'http://host.media.type';
|
|
@@ -33,8 +34,11 @@ describe( 'MediaUpload component', () => {
|
|
|
33
34
|
expect( wrapper ).toBeTruthy();
|
|
34
35
|
} );
|
|
35
36
|
|
|
36
|
-
|
|
37
|
-
const expectOptionForMediaType = (
|
|
37
|
+
describe( 'Media capture options for different media block types', () => {
|
|
38
|
+
const expectOptionForMediaType = async (
|
|
39
|
+
mediaType,
|
|
40
|
+
expectedOptions
|
|
41
|
+
) => {
|
|
38
42
|
const wrapper = render(
|
|
39
43
|
<MediaUpload
|
|
40
44
|
allowedTypes={ [ mediaType ] }
|
|
@@ -52,11 +56,32 @@ describe( 'MediaUpload component', () => {
|
|
|
52
56
|
);
|
|
53
57
|
fireEvent.press( wrapper.getByText( 'Open Picker' ) );
|
|
54
58
|
|
|
55
|
-
|
|
59
|
+
expectedOptions.forEach( ( item ) => {
|
|
60
|
+
const option = wrapper.getByText( item );
|
|
61
|
+
expect( option ).toBeVisible();
|
|
62
|
+
} );
|
|
56
63
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
64
|
+
|
|
65
|
+
it( 'shows the correct media capture options for the Image block', () => {
|
|
66
|
+
expectOptionForMediaType( MEDIA_TYPE_IMAGE, [
|
|
67
|
+
OPTION_TAKE_PHOTO,
|
|
68
|
+
OPTION_WORDPRESS_MEDIA_LIBRARY,
|
|
69
|
+
OPTION_INSERT_FROM_URL,
|
|
70
|
+
] );
|
|
71
|
+
} );
|
|
72
|
+
|
|
73
|
+
it( 'shows the correct media capture options for the Video block', () => {
|
|
74
|
+
expectOptionForMediaType( MEDIA_TYPE_VIDEO, [
|
|
75
|
+
OPTION_TAKE_VIDEO,
|
|
76
|
+
OPTION_WORDPRESS_MEDIA_LIBRARY,
|
|
77
|
+
] );
|
|
78
|
+
} );
|
|
79
|
+
|
|
80
|
+
it( 'shows the correct media capture options for the Audio block', () => {
|
|
81
|
+
expectOptionForMediaType( MEDIA_TYPE_AUDIO, [
|
|
82
|
+
OPTION_INSERT_FROM_URL,
|
|
83
|
+
] );
|
|
84
|
+
} );
|
|
60
85
|
} );
|
|
61
86
|
|
|
62
87
|
const expectMediaPickerForOption = (
|
|
@@ -29,7 +29,12 @@ function hasFocusWithin( container ) {
|
|
|
29
29
|
function focusFirstTabbableIn( container ) {
|
|
30
30
|
const [ firstTabbable ] = focus.tabbable.find( container );
|
|
31
31
|
if ( firstTabbable ) {
|
|
32
|
-
firstTabbable.focus(
|
|
32
|
+
firstTabbable.focus( {
|
|
33
|
+
// When focusing newly mounted toolbars,
|
|
34
|
+
// the position of the popover is often not right on the first render
|
|
35
|
+
// This prevents the layout shifts when focusing the dialogs.
|
|
36
|
+
preventScroll: true,
|
|
37
|
+
} );
|
|
33
38
|
}
|
|
34
39
|
}
|
|
35
40
|
|
|
@@ -119,7 +124,12 @@ function useToolbarFocus(
|
|
|
119
124
|
const items = getAllToolbarItemsIn( ref.current );
|
|
120
125
|
const index = initialIndex || 0;
|
|
121
126
|
if ( items[ index ] && hasFocusWithin( ref.current ) ) {
|
|
122
|
-
items[ index ].focus(
|
|
127
|
+
items[ index ].focus( {
|
|
128
|
+
// When focusing newly mounted toolbars,
|
|
129
|
+
// the position of the popover is often not right on the first render
|
|
130
|
+
// This prevents the layout shifts when focusing the dialogs.
|
|
131
|
+
preventScroll: true,
|
|
132
|
+
} );
|
|
123
133
|
}
|
|
124
134
|
} );
|
|
125
135
|
}
|
|
@@ -7,7 +7,7 @@ import { TextInput, Platform, Dimensions } from 'react-native';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { Component } from '@wordpress/element';
|
|
10
|
-
import { getPxFromCssUnit } from '@wordpress/block-editor';
|
|
10
|
+
import { RichText, getPxFromCssUnit } from '@wordpress/block-editor';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Internal dependencies
|
|
@@ -18,6 +18,9 @@ export default class PlainText extends Component {
|
|
|
18
18
|
constructor() {
|
|
19
19
|
super( ...arguments );
|
|
20
20
|
this.isAndroid = Platform.OS === 'android';
|
|
21
|
+
|
|
22
|
+
this.onChangeTextInput = this.onChangeTextInput.bind( this );
|
|
23
|
+
this.onChangeRichText = this.onChangeRichText.bind( this );
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
componentDidMount() {
|
|
@@ -44,7 +47,7 @@ export default class PlainText extends Component {
|
|
|
44
47
|
|
|
45
48
|
componentDidUpdate( prevProps ) {
|
|
46
49
|
if ( ! this.props.isSelected && prevProps.isSelected ) {
|
|
47
|
-
this._input
|
|
50
|
+
this._input?.blur();
|
|
48
51
|
}
|
|
49
52
|
}
|
|
50
53
|
|
|
@@ -55,11 +58,11 @@ export default class PlainText extends Component {
|
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
focus() {
|
|
58
|
-
this._input
|
|
61
|
+
this._input?.focus();
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
blur() {
|
|
62
|
-
this._input
|
|
65
|
+
this._input?.blur();
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
getFontSize() {
|
|
@@ -79,20 +82,73 @@ export default class PlainText extends Component {
|
|
|
79
82
|
};
|
|
80
83
|
}
|
|
81
84
|
|
|
85
|
+
replaceLineBreakTags( value ) {
|
|
86
|
+
return value?.replace( RegExp( '<br>', 'gim' ), '\n' );
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
onChangeTextInput( event ) {
|
|
90
|
+
const { onChange } = this.props;
|
|
91
|
+
onChange( event.nativeEvent.text );
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
onChangeRichText( value ) {
|
|
95
|
+
const { onChange } = this.props;
|
|
96
|
+
// The <br> tags have to be replaced with new line characters
|
|
97
|
+
// as the content of plain text shouldn't contain HTML tags.
|
|
98
|
+
onChange( this.replaceLineBreakTags( value ) );
|
|
99
|
+
}
|
|
100
|
+
|
|
82
101
|
render() {
|
|
83
|
-
const {
|
|
102
|
+
const {
|
|
103
|
+
style,
|
|
104
|
+
__experimentalVersion,
|
|
105
|
+
onFocus,
|
|
106
|
+
...otherProps
|
|
107
|
+
} = this.props;
|
|
84
108
|
const textStyles = [
|
|
85
109
|
style || styles[ 'block-editor-plain-text' ],
|
|
86
110
|
this.getFontSize(),
|
|
87
111
|
];
|
|
88
112
|
|
|
113
|
+
if ( __experimentalVersion === 2 ) {
|
|
114
|
+
const disableFormattingProps = {
|
|
115
|
+
withoutInteractiveFormatting: true,
|
|
116
|
+
disableEditingMenu: true,
|
|
117
|
+
__unstableDisableFormats: true,
|
|
118
|
+
disableSuggestions: true,
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const forcePlainTextProps = {
|
|
122
|
+
preserveWhiteSpace: true,
|
|
123
|
+
__unstablePastePlainText: true,
|
|
124
|
+
multiline: false,
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const fontProps = {
|
|
128
|
+
fontFamily: style?.fontFamily,
|
|
129
|
+
fontSize: style?.fontSize,
|
|
130
|
+
fontWeight: style?.fontWeight,
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
return (
|
|
134
|
+
<RichText
|
|
135
|
+
{ ...otherProps }
|
|
136
|
+
{ ...disableFormattingProps }
|
|
137
|
+
{ ...forcePlainTextProps }
|
|
138
|
+
{ ...fontProps }
|
|
139
|
+
identifier="content"
|
|
140
|
+
style={ style }
|
|
141
|
+
onChange={ this.onChangeRichText }
|
|
142
|
+
unstableOnFocus={ onFocus }
|
|
143
|
+
/>
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
89
147
|
return (
|
|
90
148
|
<TextInput
|
|
91
149
|
{ ...this.props }
|
|
92
150
|
ref={ ( x ) => ( this._input = x ) }
|
|
93
|
-
onChange={
|
|
94
|
-
this.props.onChange( event.nativeEvent.text );
|
|
95
|
-
} }
|
|
151
|
+
onChange={ this.onChangeTextInput }
|
|
96
152
|
onFocus={ this.props.onFocus } // Always assign onFocus as a props.
|
|
97
153
|
onBlur={ this.props.onBlur } // Always assign onBlur as a props.
|
|
98
154
|
fontFamily={
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# `PublishDateTimePicker`
|
|
2
|
+
|
|
3
|
+
`<PublishDateTimePicker />` is a component used to select the date and time that
|
|
4
|
+
a post will be published. It wraps the `<DateTimePicker />` component found in
|
|
5
|
+
`@wordpress/components` and adds additional post-specific controls.
|
|
6
|
+
|
|
7
|
+
See [the documentation for DateTimePicker](/packages/components/src/date-time)
|
|
8
|
+
for more information.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```jsx
|
|
13
|
+
import { Dropdown, Button } from '@wordpress/components';
|
|
14
|
+
import { __experimentalPublishDateTimePicker as PublishDateTimePicker } from '@wordpress/block-editor';
|
|
15
|
+
import { useState } from '@wordpress/element';
|
|
16
|
+
|
|
17
|
+
const MyDateTimePicker = () => {
|
|
18
|
+
const [ date, setDate ] = useState( new Date() );
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<Dropdown
|
|
22
|
+
renderToggle={ ( { isOpen, onToggle } ) => (
|
|
23
|
+
<Button
|
|
24
|
+
onClick={ onToggle }
|
|
25
|
+
aria-expanded={ isOpen }
|
|
26
|
+
>
|
|
27
|
+
Select post date
|
|
28
|
+
</Button>
|
|
29
|
+
) }
|
|
30
|
+
renderContent={ ( { onClose } ) => (
|
|
31
|
+
<PublishDateTimePicker
|
|
32
|
+
currentDate={ date }
|
|
33
|
+
onChange={ ( newDate ) => setDate( newDate ) }
|
|
34
|
+
onClose={ onClose }
|
|
35
|
+
/>
|
|
36
|
+
) }
|
|
37
|
+
/>
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Props
|
|
43
|
+
|
|
44
|
+
`PublishDateTimePicker` supports all of the props that
|
|
45
|
+
[`DateTimePicker`](/packages/components/src/date-time#Props) supports, plus:
|
|
46
|
+
|
|
47
|
+
### onClose
|
|
48
|
+
|
|
49
|
+
Called when the user presses the close button.
|
|
50
|
+
|
|
51
|
+
- Type: `Function`
|
|
52
|
+
- Required: Yes
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
DateTimePicker,
|
|
6
|
+
__experimentalHStack as HStack,
|
|
7
|
+
__experimentalSpacer as Spacer,
|
|
8
|
+
Button,
|
|
9
|
+
} from '@wordpress/components';
|
|
10
|
+
import { closeSmall } from '@wordpress/icons';
|
|
11
|
+
import { __ } from '@wordpress/i18n';
|
|
12
|
+
import { forwardRef } from '@wordpress/element';
|
|
13
|
+
|
|
14
|
+
function PublishDateTimePicker(
|
|
15
|
+
{ onClose, onChange, ...additionalProps },
|
|
16
|
+
ref
|
|
17
|
+
) {
|
|
18
|
+
return (
|
|
19
|
+
<div ref={ ref } className="block-editor-publish-date-time-picker">
|
|
20
|
+
{ /* TODO: This header is essentially the same as the one in <PostVisiblity />. DRY it up. */ }
|
|
21
|
+
<HStack className="block-editor-publish-date-time-picker__header">
|
|
22
|
+
<h2 className="block-editor-publish-date-time-picker__heading">
|
|
23
|
+
{ __( 'Publish' ) }
|
|
24
|
+
</h2>
|
|
25
|
+
<Spacer />
|
|
26
|
+
<Button
|
|
27
|
+
className="block-editor-publish-date-time-picker__reset"
|
|
28
|
+
variant="tertiary"
|
|
29
|
+
onClick={ () => onChange?.( null ) }
|
|
30
|
+
>
|
|
31
|
+
{ __( 'Now' ) }
|
|
32
|
+
</Button>
|
|
33
|
+
<Button
|
|
34
|
+
className="block-editor-publish-date-time-picker__close"
|
|
35
|
+
icon={ closeSmall }
|
|
36
|
+
label={ __( 'Close' ) }
|
|
37
|
+
onClick={ onClose }
|
|
38
|
+
/>
|
|
39
|
+
</HStack>
|
|
40
|
+
<DateTimePicker
|
|
41
|
+
__nextRemoveHelpButton
|
|
42
|
+
__nextRemoveResetButton
|
|
43
|
+
onChange={ onChange }
|
|
44
|
+
{ ...additionalProps }
|
|
45
|
+
/>
|
|
46
|
+
</div>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default forwardRef( PublishDateTimePicker );
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.block-editor-publish-date-time-picker__header {
|
|
2
|
+
margin-bottom: 1em;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.block-editor-publish-date-time-picker__heading {
|
|
6
|
+
font-size: $default-font-size;
|
|
7
|
+
margin: 0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.block-editor-publish-date-time-picker__reset {
|
|
11
|
+
height: $icon-size;
|
|
12
|
+
margin: 0;
|
|
13
|
+
text-decoration: underline;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
[class].block-editor-publish-date-time-picker__close {
|
|
17
|
+
height: $icon-size;
|
|
18
|
+
min-width: $icon-size;
|
|
19
|
+
padding: 0;
|
|
20
|
+
}
|
|
@@ -76,6 +76,8 @@ function removeNativeProps( props ) {
|
|
|
76
76
|
'minWidth',
|
|
77
77
|
'maxWidth',
|
|
78
78
|
'setRef',
|
|
79
|
+
'disableSuggestions',
|
|
80
|
+
'disableAutocorrection',
|
|
79
81
|
] );
|
|
80
82
|
}
|
|
81
83
|
|
|
@@ -338,7 +340,7 @@ function RichTextWrapper(
|
|
|
338
340
|
{ isSelected && hasFormats && (
|
|
339
341
|
<FormatToolbarContainer
|
|
340
342
|
inline={ inlineToolbar }
|
|
341
|
-
anchorRef={ anchorRef
|
|
343
|
+
anchorRef={ anchorRef }
|
|
342
344
|
/>
|
|
343
345
|
) }
|
|
344
346
|
<TagName
|
|
@@ -111,6 +111,8 @@ function RichTextWrapper(
|
|
|
111
111
|
maxWidth,
|
|
112
112
|
onBlur,
|
|
113
113
|
setRef,
|
|
114
|
+
disableSuggestions,
|
|
115
|
+
disableAutocorrection,
|
|
114
116
|
...props
|
|
115
117
|
},
|
|
116
118
|
forwardedRef
|
|
@@ -635,6 +637,8 @@ function RichTextWrapper(
|
|
|
635
637
|
maxWidth={ maxWidth }
|
|
636
638
|
onBlur={ onBlur }
|
|
637
639
|
setRef={ setRef }
|
|
640
|
+
disableSuggestions={ disableSuggestions }
|
|
641
|
+
disableAutocorrection={ disableAutocorrection }
|
|
638
642
|
// Props to be set on the editable container are destructured on the
|
|
639
643
|
// element itself for web (see below), but passed through rich text
|
|
640
644
|
// for native.
|
|
@@ -42,17 +42,11 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
|
|
|
42
42
|
min-width: auto;
|
|
43
43
|
margin-bottom: $grid-unit-10;
|
|
44
44
|
box-shadow: none;
|
|
45
|
-
|
|
46
|
-
// Block UI appearance.
|
|
47
|
-
border: $border-width solid $gray-900;
|
|
48
|
-
border-radius: $radius-block-ui;
|
|
49
|
-
background-color: $white;
|
|
45
|
+
outline: none;
|
|
50
46
|
}
|
|
51
47
|
|
|
52
|
-
.components-toolbar-group,
|
|
53
48
|
.components-toolbar {
|
|
54
|
-
|
|
55
|
-
border: none;
|
|
49
|
+
border-radius: $radius-block-ui;
|
|
56
50
|
}
|
|
57
51
|
|
|
58
52
|
.components-toolbar__control,
|
|
@@ -303,6 +303,7 @@ class URLInput extends Component {
|
|
|
303
303
|
|
|
304
304
|
// Submitting while loading should trigger onSubmit.
|
|
305
305
|
case ENTER: {
|
|
306
|
+
event.preventDefault();
|
|
306
307
|
if ( this.props.onSubmit ) {
|
|
307
308
|
this.props.onSubmit( null, event );
|
|
308
309
|
}
|
|
@@ -350,6 +351,7 @@ class URLInput extends Component {
|
|
|
350
351
|
break;
|
|
351
352
|
}
|
|
352
353
|
case ENTER: {
|
|
354
|
+
event.preventDefault();
|
|
353
355
|
if ( this.state.selectedSuggestion !== null ) {
|
|
354
356
|
this.selectLink( suggestion );
|
|
355
357
|
|
|
@@ -418,7 +420,7 @@ class URLInput extends Component {
|
|
|
418
420
|
|
|
419
421
|
renderControl() {
|
|
420
422
|
const {
|
|
421
|
-
label,
|
|
423
|
+
label = null,
|
|
422
424
|
className,
|
|
423
425
|
isFullWidth,
|
|
424
426
|
instanceId,
|
|
@@ -435,8 +437,10 @@ class URLInput extends Component {
|
|
|
435
437
|
suggestionOptionIdPrefix,
|
|
436
438
|
} = this.state;
|
|
437
439
|
|
|
440
|
+
const inputId = `url-input-control-${ instanceId }`;
|
|
441
|
+
|
|
438
442
|
const controlProps = {
|
|
439
|
-
id:
|
|
443
|
+
id: inputId, // Passes attribute to label for the for attribute
|
|
440
444
|
label,
|
|
441
445
|
className: classnames( 'block-editor-url-input', className, {
|
|
442
446
|
'is-full-width': isFullWidth,
|
|
@@ -444,6 +448,7 @@ class URLInput extends Component {
|
|
|
444
448
|
};
|
|
445
449
|
|
|
446
450
|
const inputProps = {
|
|
451
|
+
id: inputId,
|
|
447
452
|
value,
|
|
448
453
|
required: true,
|
|
449
454
|
className: 'block-editor-url-input__input',
|
|
@@ -453,7 +458,7 @@ class URLInput extends Component {
|
|
|
453
458
|
placeholder,
|
|
454
459
|
onKeyDown: this.onKeyDown,
|
|
455
460
|
role: 'combobox',
|
|
456
|
-
'aria-label': __( 'URL' ),
|
|
461
|
+
'aria-label': label ? undefined : __( 'URL' ), // Ensure input always has an accessible label
|
|
457
462
|
'aria-expanded': showSuggestions,
|
|
458
463
|
'aria-autocomplete': 'list',
|
|
459
464
|
'aria-owns': suggestionsListboxId,
|
|
@@ -533,7 +538,7 @@ class URLInput extends Component {
|
|
|
533
538
|
!! suggestions.length
|
|
534
539
|
) {
|
|
535
540
|
return (
|
|
536
|
-
<Popover position="bottom"
|
|
541
|
+
<Popover position="bottom" focusOnMount={ false }>
|
|
537
542
|
<div
|
|
538
543
|
{ ...suggestionsListProps }
|
|
539
544
|
className={ classnames(
|