@wordpress/block-editor 16.0.1-next.v.202607070741.0 → 16.1.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 +27 -1
- package/README.md +8 -0
- package/build/components/alignment-control/ui.cjs +2 -4
- package/build/components/alignment-control/ui.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +40 -10
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-alignment-control/ui.cjs +5 -3
- package/build/components/block-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-canvas/index.cjs +6 -1
- package/build/components/block-canvas/index.cjs.map +2 -2
- package/build/components/block-controls/groups.cjs +3 -1
- package/build/components/block-controls/groups.cjs.map +2 -2
- package/build/components/block-edit/edit.cjs +10 -18
- package/build/components/block-edit/edit.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +73 -46
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-list/block-html.cjs +4 -1
- package/build/components/block-list/block-html.cjs.map +2 -2
- package/build/components/block-list/block.cjs +9 -3
- package/build/components/block-list/block.cjs.map +3 -3
- package/build/components/block-list/index.cjs +1 -3
- package/build/components/block-list/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/index.cjs +7 -2
- package/build/components/block-list/use-block-props/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs +9 -4
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-handler.cjs +11 -4
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs +48 -0
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs.map +7 -0
- package/build/components/block-parent-selector/index.cjs +2 -2
- package/build/components/block-parent-selector/index.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +43 -24
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-toolbar/switch-section-style.cjs +4 -2
- package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
- package/build/components/block-tools/empty-block-inserter.cjs +2 -7
- package/build/components/block-tools/empty-block-inserter.cjs.map +2 -2
- package/build/components/block-tools/index.cjs +7 -2
- package/build/components/block-tools/index.cjs.map +2 -2
- package/build/components/block-vertical-alignment-control/ui.cjs +3 -5
- package/build/components/block-vertical-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-visibility/modal.cjs +20 -6
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/block-visibility/use-block-visibility.cjs +16 -6
- package/build/components/block-visibility/use-block-visibility.cjs.map +3 -3
- package/build/components/block-visibility/utils.cjs +15 -2
- package/build/components/block-visibility/utils.cjs.map +3 -3
- package/build/components/block-visibility/viewport-menu-item.cjs +7 -1
- package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
- package/build/components/block-visibility/viewport-toolbar.cjs +5 -0
- package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
- package/build/components/block-visibility/viewport-visibility-info.cjs +5 -1
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
- package/build/components/border-radius-control/utils.cjs +8 -58
- package/build/components/border-radius-control/utils.cjs.map +2 -2
- package/build/components/child-layout-control/index.cjs +0 -4
- package/build/components/child-layout-control/index.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +5 -3
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/dimension-control/index.cjs +30 -20
- package/build/components/dimension-control/index.cjs.map +3 -3
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +9 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
- package/build/components/editor-styles/index.cjs +9 -1
- package/build/components/editor-styles/index.cjs.map +2 -2
- package/build/components/global-styles/background-panel.cjs +66 -25
- package/build/components/global-styles/background-panel.cjs.map +3 -3
- package/build/components/global-styles/border-panel.cjs +153 -55
- package/build/components/global-styles/border-panel.cjs.map +3 -3
- package/build/components/global-styles/color-gradient-dropdown-item.cjs +46 -14
- package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +3 -3
- package/build/components/global-styles/color-panel.cjs +63 -17
- package/build/components/global-styles/color-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +242 -64
- package/build/components/global-styles/dimensions-panel.cjs.map +3 -3
- package/build/components/global-styles/filters-panel.cjs +59 -20
- package/build/components/global-styles/filters-panel.cjs.map +3 -3
- package/build/components/global-styles/hooks.cjs +4 -1
- package/build/components/global-styles/hooks.cjs.map +2 -2
- package/build/components/global-styles/inheritance/index.cjs +142 -0
- package/build/components/global-styles/inheritance/index.cjs.map +7 -0
- package/build/components/global-styles/inherited-value-context.cjs +173 -0
- package/build/components/global-styles/inherited-value-context.cjs.map +7 -0
- package/build/components/global-styles/shadow-panel-components.cjs +38 -20
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/global-styles/state-control-badges.cjs +39 -3
- package/build/components/global-styles/state-control-badges.cjs.map +2 -2
- package/build/components/global-styles/state-control.cjs +1 -1
- package/build/components/global-styles/state-control.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +271 -79
- package/build/components/global-styles/typography-panel.cjs.map +3 -3
- package/build/components/image-size-control/index.cjs +2 -4
- package/build/components/image-size-control/index.cjs.map +2 -2
- package/build/components/inserter/media-tab/hooks.cjs +33 -6
- package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-panel.cjs +78 -16
- package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/styles-tab.cjs +10 -1
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
- package/build/components/keyboard-shortcuts/index.cjs +19 -11
- package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
- package/build/components/line-height-control/index.cjs +1 -2
- package/build/components/line-height-control/index.cjs.map +2 -2
- package/build/components/link-control/index.cjs +3 -1
- package/build/components/link-control/index.cjs.map +2 -2
- package/build/components/list-view/block.cjs +13 -4
- package/build/components/list-view/block.cjs.map +2 -2
- package/build/components/media-placeholder/index.cjs +0 -1
- package/build/components/media-placeholder/index.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +2 -1
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/provider/block-refs-provider.cjs +8 -2
- package/build/components/provider/block-refs-provider.cjs.map +2 -2
- package/build/components/provider/index.cjs +1 -1
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/use-block-sync.cjs +18 -6
- package/build/components/provider/use-block-sync.cjs.map +2 -2
- package/build/components/provider/use-media-upload-settings.cjs +3 -1
- package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
- package/build/components/rich-text/event-listeners/before-input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/delete.cjs +2 -3
- package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/enter.cjs +3 -2
- package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/paste-handler.cjs +2 -1
- package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
- package/build/components/rich-text/index.cjs +76 -17
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/spacing-sizes-control/utils.cjs +6 -19
- package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +8 -2
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/typewriter/index.cjs +129 -136
- package/build/components/typewriter/index.cjs.map +3 -3
- package/build/components/url-input/index.cjs +303 -344
- package/build/components/url-input/index.cjs.map +3 -3
- package/build/components/use-block-commands/index.cjs +21 -17
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/components/use-on-block-drop/index.cjs +1 -1
- package/build/components/use-on-block-drop/index.cjs.map +2 -2
- package/build/components/writing-flow/index.cjs +14 -1
- package/build/components/writing-flow/index.cjs.map +3 -3
- package/build/components/writing-flow/use-arrow-nav.cjs +42 -6
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-click-selection.cjs +29 -3
- package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-clipboard-handler.cjs +4 -1
- package/build/components/writing-flow/use-clipboard-handler.cjs.map +2 -2
- package/build/components/writing-flow/use-drag-selection.cjs +3 -8
- package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs +179 -0
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs.map +7 -0
- package/build/components/writing-flow/use-editable-root.cjs +75 -0
- package/build/components/writing-flow/use-editable-root.cjs.map +7 -0
- package/build/components/writing-flow/use-home-end.cjs +64 -0
- package/build/components/writing-flow/use-home-end.cjs.map +7 -0
- package/build/components/writing-flow/use-input.cjs +15 -5
- package/build/components/writing-flow/use-input.cjs.map +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-select-all.cjs +14 -2
- package/build/components/writing-flow/use-select-all.cjs.map +2 -2
- package/build/components/writing-flow/use-selection-observer.cjs +132 -22
- package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
- package/build/components/writing-flow/utils.cjs +28 -2
- package/build/components/writing-flow/utils.cjs.map +2 -2
- package/build/hooks/background.cjs +14 -10
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-fields/rich-text/index.cjs +2 -3
- package/build/hooks/block-fields/rich-text/index.cjs.map +3 -3
- package/build/hooks/block-style-variation.cjs +4 -45
- package/build/hooks/block-style-variation.cjs.map +3 -3
- package/build/hooks/border.cjs +19 -4
- package/build/hooks/border.cjs.map +2 -2
- package/build/hooks/custom-css.cjs +6 -2
- package/build/hooks/custom-css.cjs.map +2 -2
- package/build/hooks/dimensions.cjs +15 -4
- package/build/hooks/dimensions.cjs.map +2 -2
- package/build/hooks/duotone.cjs +26 -14
- package/build/hooks/duotone.cjs.map +3 -3
- package/build/hooks/elements.cjs +15 -5
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/grid-visualizer.cjs +5 -3
- package/build/hooks/grid-visualizer.cjs.map +2 -2
- package/build/hooks/layout-child.cjs +22 -12
- package/build/hooks/layout-child.cjs.map +3 -3
- package/build/hooks/layout.cjs +28 -13
- package/build/hooks/layout.cjs.map +3 -3
- package/build/hooks/line-height.cjs +1 -2
- package/build/hooks/line-height.cjs.map +2 -2
- package/build/hooks/states.cjs +27 -7
- package/build/hooks/states.cjs.map +3 -3
- package/build/hooks/style.cjs +31 -9
- package/build/hooks/style.cjs.map +3 -3
- package/build/hooks/text-align.cjs +36 -6
- package/build/hooks/text-align.cjs.map +3 -3
- package/build/hooks/typography.cjs +14 -5
- package/build/hooks/typography.cjs.map +2 -2
- package/build/layouts/constrained.cjs +14 -6
- package/build/layouts/constrained.cjs.map +2 -2
- package/build/layouts/flex.cjs +27 -19
- package/build/layouts/flex.cjs.map +2 -2
- package/build/layouts/grid.cjs +0 -2
- package/build/layouts/grid.cjs.map +2 -2
- package/build/private-apis.cjs +9 -5
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs +11 -6
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-selectors.cjs +41 -3
- package/build/store/private-selectors.cjs.map +3 -3
- package/build/store/reducer.cjs +6 -6
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs +23 -0
- package/build/store/selectors.cjs.map +2 -2
- package/build/utils/block-bindings.cjs +29 -0
- package/build/utils/block-bindings.cjs.map +2 -2
- package/build/utils/dom.cjs +14 -0
- package/build/utils/dom.cjs.map +2 -2
- package/build/{components/rich-text/input-event.cjs → utils/native-undo.cjs} +29 -24
- package/build/utils/native-undo.cjs.map +7 -0
- package/build-module/components/alignment-control/ui.mjs +2 -4
- package/build-module/components/alignment-control/ui.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +43 -10
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-alignment-control/ui.mjs +5 -3
- package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-canvas/index.mjs +7 -2
- package/build-module/components/block-canvas/index.mjs.map +2 -2
- package/build-module/components/block-controls/groups.mjs +3 -1
- package/build-module/components/block-controls/groups.mjs.map +2 -2
- package/build-module/components/block-edit/edit.mjs +11 -18
- package/build-module/components/block-edit/edit.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +74 -46
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block-html.mjs +4 -1
- package/build-module/components/block-list/block-html.mjs.map +2 -2
- package/build-module/components/block-list/block.mjs +9 -3
- package/build-module/components/block-list/block.mjs.map +3 -3
- package/build-module/components/block-list/index.mjs +1 -3
- package/build-module/components/block-list/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/index.mjs +7 -2
- package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs +9 -4
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +11 -4
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs +28 -0
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs.map +7 -0
- package/build-module/components/block-parent-selector/index.mjs +2 -2
- package/build-module/components/block-parent-selector/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +43 -24
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs +4 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
- package/build-module/components/block-tools/empty-block-inserter.mjs +2 -7
- package/build-module/components/block-tools/empty-block-inserter.mjs.map +2 -2
- package/build-module/components/block-tools/index.mjs +7 -2
- package/build-module/components/block-tools/index.mjs.map +2 -2
- package/build-module/components/block-vertical-alignment-control/ui.mjs +4 -6
- package/build-module/components/block-vertical-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs +22 -10
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/use-block-visibility.mjs +17 -7
- package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
- package/build-module/components/block-visibility/utils.mjs +18 -3
- package/build-module/components/block-visibility/utils.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-menu-item.mjs +7 -1
- package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-toolbar.mjs +5 -0
- package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs +5 -1
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
- package/build-module/components/border-radius-control/utils.mjs +11 -53
- package/build-module/components/border-radius-control/utils.mjs.map +2 -2
- package/build-module/components/child-layout-control/index.mjs +0 -4
- package/build-module/components/child-layout-control/index.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -3
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/dimension-control/index.mjs +30 -20
- package/build-module/components/dimension-control/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +10 -6
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/editor-styles/index.mjs +9 -1
- package/build-module/components/editor-styles/index.mjs.map +2 -2
- package/build-module/components/global-styles/background-panel.mjs +71 -29
- package/build-module/components/global-styles/background-panel.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +157 -56
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +51 -15
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
- package/build-module/components/global-styles/color-panel.mjs +63 -17
- package/build-module/components/global-styles/color-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +248 -66
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +64 -21
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/hooks.mjs +4 -1
- package/build-module/components/global-styles/hooks.mjs.map +2 -2
- package/build-module/components/global-styles/inheritance/index.mjs +108 -0
- package/build-module/components/global-styles/inheritance/index.mjs.map +7 -0
- package/build-module/components/global-styles/inherited-value-context.mjs +141 -0
- package/build-module/components/global-styles/inherited-value-context.mjs.map +7 -0
- package/build-module/components/global-styles/shadow-panel-components.mjs +38 -20
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/global-styles/state-control-badges.mjs +41 -5
- package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
- package/build-module/components/global-styles/state-control.mjs +1 -1
- package/build-module/components/global-styles/state-control.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +276 -80
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/image-size-control/index.mjs +2 -4
- package/build-module/components/image-size-control/index.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
- package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-panel.mjs +86 -18
- package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +6 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
- package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +1 -2
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/link-control/index.mjs +4 -2
- package/build-module/components/link-control/index.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +13 -4
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/media-placeholder/index.mjs +0 -1
- package/build-module/components/media-placeholder/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +2 -1
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/provider/block-refs-provider.mjs +8 -2
- package/build-module/components/provider/block-refs-provider.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +1 -1
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/use-block-sync.mjs +18 -6
- package/build-module/components/provider/use-block-sync.mjs.map +2 -2
- package/build-module/components/provider/use-media-upload-settings.mjs +3 -1
- package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/delete.mjs +7 -4
- package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/enter.mjs +8 -3
- package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-events.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs +8 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +79 -14
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/utils.mjs +6 -18
- package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +8 -2
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/typewriter/index.mjs +129 -136
- package/build-module/components/typewriter/index.mjs.map +2 -2
- package/build-module/components/url-input/index.mjs +306 -353
- package/build-module/components/url-input/index.mjs.map +2 -2
- package/build-module/components/use-block-commands/index.mjs +21 -17
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/components/use-on-block-drop/index.mjs +2 -2
- package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +14 -1
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +43 -7
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs +29 -3
- package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs +5 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
- package/build-module/components/writing-flow/use-drag-selection.mjs +1 -6
- package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs +154 -0
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs.map +7 -0
- package/build-module/components/writing-flow/use-editable-root.mjs +54 -0
- package/build-module/components/writing-flow/use-editable-root.mjs.map +7 -0
- package/build-module/components/writing-flow/use-home-end.mjs +43 -0
- package/build-module/components/writing-flow/use-home-end.mjs.map +7 -0
- package/build-module/components/writing-flow/use-input.mjs +15 -5
- package/build-module/components/writing-flow/use-input.mjs.map +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-select-all.mjs +19 -3
- package/build-module/components/writing-flow/use-select-all.mjs.map +2 -2
- package/build-module/components/writing-flow/use-selection-observer.mjs +134 -21
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/components/writing-flow/utils.mjs +26 -1
- package/build-module/components/writing-flow/utils.mjs.map +2 -2
- package/build-module/hooks/background.mjs +14 -10
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-fields/rich-text/index.mjs +2 -6
- package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
- package/build-module/hooks/block-style-variation.mjs +8 -44
- package/build-module/hooks/block-style-variation.mjs.map +2 -2
- package/build-module/hooks/border.mjs +19 -4
- package/build-module/hooks/border.mjs.map +2 -2
- package/build-module/hooks/custom-css.mjs +7 -3
- package/build-module/hooks/custom-css.mjs.map +2 -2
- package/build-module/hooks/dimensions.mjs +15 -4
- package/build-module/hooks/dimensions.mjs.map +2 -2
- package/build-module/hooks/duotone.mjs +20 -9
- package/build-module/hooks/duotone.mjs.map +2 -2
- package/build-module/hooks/elements.mjs +15 -5
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/grid-visualizer.mjs +5 -3
- package/build-module/hooks/grid-visualizer.mjs.map +2 -2
- package/build-module/hooks/layout-child.mjs +22 -12
- package/build-module/hooks/layout-child.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +28 -13
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/line-height.mjs +1 -2
- package/build-module/hooks/line-height.mjs.map +2 -2
- package/build-module/hooks/states.mjs +27 -7
- package/build-module/hooks/states.mjs.map +2 -2
- package/build-module/hooks/style.mjs +40 -11
- package/build-module/hooks/style.mjs.map +2 -2
- package/build-module/hooks/text-align.mjs +39 -10
- package/build-module/hooks/text-align.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +14 -5
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/layouts/constrained.mjs +14 -6
- package/build-module/layouts/constrained.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +27 -19
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +0 -2
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/private-apis.mjs +7 -3
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +12 -7
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +42 -3
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +6 -6
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs +23 -0
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/utils/block-bindings.mjs +28 -0
- package/build-module/utils/block-bindings.mjs.map +2 -2
- package/build-module/utils/dom.mjs +13 -0
- package/build-module/utils/dom.mjs.map +2 -2
- package/build-module/utils/native-undo.mjs +29 -0
- package/build-module/utils/native-undo.mjs.map +7 -0
- package/build-style/content-rtl.css +14 -27
- package/build-style/content.css +14 -27
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +191 -61
- package/build-style/style.css +191 -61
- package/build-types/components/block-context/index.d.ts +7 -0
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/block-bindings.d.ts +19 -0
- package/build-types/utils/block-bindings.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts +11 -0
- package/build-types/utils/dom.d.ts.map +1 -1
- package/build-types/utils/get-px-from-css-unit.d.ts +2 -2
- package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -1
- package/build-types/utils/pasting.d.ts +1 -1
- package/build-types/utils/pasting.d.ts.map +1 -1
- package/package.json +43 -44
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +1 -1
- package/src/components/alignment-control/ui.js +2 -4
- package/src/components/background-image-control/index.js +74 -37
- package/src/components/background-image-control/style.scss +13 -4
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-alignment-control/test/index.js +1 -1
- package/src/components/block-alignment-control/ui.js +4 -2
- package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-canvas/index.js +9 -2
- package/src/components/block-card/style.scss +1 -1
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
- package/src/components/block-controls/groups.js +2 -0
- package/src/components/block-edit/edit.js +13 -31
- package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-inspector/index.js +60 -31
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/block.js +6 -0
- package/src/components/block-list/content.scss +1 -11
- package/src/components/block-list/index.js +0 -2
- package/src/components/block-list/use-block-props/index.js +7 -1
- package/src/components/block-list/use-block-props/use-focus-first-element.js +23 -4
- package/src/components/block-list/use-block-props/use-focus-handler.js +35 -9
- package/src/components/block-list/use-block-props/use-register-block-event-handlers.js +45 -0
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-manager/style.scss +1 -1
- package/src/components/block-navigation/style.scss +1 -1
- package/src/components/block-parent-selector/index.js +5 -2
- package/src/components/block-quick-navigation/style.scss +1 -3
- package/src/components/block-styles/style.scss +2 -2
- package/src/components/block-toolbar/index.js +41 -18
- package/src/components/block-toolbar/switch-section-style.js +5 -2
- package/src/components/block-tools/empty-block-inserter.js +3 -7
- package/src/components/block-tools/index.js +7 -0
- package/src/components/block-types-list/style.scss +0 -1
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-vertical-alignment-control/test/index.js +18 -2
- package/src/components/block-vertical-alignment-control/ui.js +3 -5
- package/src/components/block-visibility/modal.js +24 -10
- package/src/components/block-visibility/style.scss +1 -1
- package/src/components/block-visibility/test/use-block-visibility.js +128 -35
- package/src/components/block-visibility/test/utils.js +11 -0
- package/src/components/block-visibility/use-block-visibility.js +33 -11
- package/src/components/block-visibility/utils.js +31 -6
- package/src/components/block-visibility/viewport-menu-item.js +10 -1
- package/src/components/block-visibility/viewport-toolbar.js +6 -0
- package/src/components/block-visibility/viewport-visibility-info.js +5 -1
- package/src/components/border-radius-control/test/utils.js +0 -41
- package/src/components/border-radius-control/utils.js +16 -107
- package/src/components/button-block-appender/content.scss +7 -9
- package/src/components/child-layout-control/index.js +0 -4
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -3
- package/src/components/colors-gradients/control.js +6 -3
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +1 -1
- package/src/components/dimension-control/index.js +13 -1
- package/src/components/dimensions-tool/aspect-ratio-tool.js +13 -6
- package/src/components/editor-styles/index.js +16 -1
- package/src/components/font-family/stories/index.story.jsx +1 -1
- package/src/components/global-styles/background-panel.js +107 -34
- package/src/components/global-styles/border-panel.js +219 -48
- package/src/components/global-styles/color-gradient-dropdown-item.js +93 -28
- package/src/components/global-styles/color-panel.js +92 -11
- package/src/components/global-styles/dimensions-panel.js +422 -71
- package/src/components/global-styles/filters-panel.js +88 -28
- package/src/components/global-styles/hooks.js +8 -1
- package/src/components/global-styles/inheritance/index.js +204 -0
- package/src/components/global-styles/inheritance/style.scss +184 -0
- package/src/components/global-styles/inheritance/test/index.js +281 -0
- package/src/components/global-styles/inherited-value-context.js +271 -0
- package/src/components/global-styles/shadow-panel-components.js +48 -26
- package/src/components/global-styles/state-control-badges.js +45 -6
- package/src/components/global-styles/state-control.js +2 -2
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/global-styles/test/background-panel.js +338 -1
- package/src/components/global-styles/test/border-panel.js +441 -0
- package/src/components/global-styles/test/color-panel.js +182 -2
- package/src/components/global-styles/test/dimensions-panel.js +753 -0
- package/src/components/global-styles/test/filters-panel.js +194 -0
- package/src/components/global-styles/test/inherited-value-context-core.js +98 -0
- package/src/components/global-styles/test/inherited-value-context.js +454 -0
- package/src/components/global-styles/test/state-control-badges.js +65 -0
- package/src/components/global-styles/test/typography-panel-core.js +185 -0
- package/src/components/global-styles/test/typography-panel.js +849 -12
- package/src/components/global-styles/typography-panel.js +449 -101
- package/src/components/image-editor/style.scss +33 -0
- package/src/components/image-size-control/index.js +0 -2
- package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
- package/src/components/inserter/media-tab/hooks.js +55 -7
- package/src/components/inserter/media-tab/media-panel.js +117 -21
- package/src/components/inserter/media-tab/test/hooks.js +63 -0
- package/src/components/inserter/media-tab/test/media-panel.js +127 -0
- package/src/components/inserter/style.scss +19 -16
- package/src/components/inserter-list-item/style.scss +0 -15
- package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
- package/src/components/keyboard-shortcuts/index.js +28 -11
- package/src/components/line-height-control/index.js +1 -2
- package/src/components/link-control/index.js +7 -2
- package/src/components/link-control/style.scss +2 -2
- package/src/components/link-control/test/index.js +6 -6
- package/src/components/link-picker/style.scss +1 -2
- package/src/components/list-view/block.js +13 -4
- package/src/components/list-view/style.scss +4 -5
- package/src/components/media-placeholder/index.js +0 -1
- package/src/components/multi-selection-inspector/style.scss +1 -1
- package/src/components/preset-input-control/index.js +4 -1
- package/src/components/provider/block-refs-provider.js +12 -2
- package/src/components/provider/index.js +2 -2
- package/src/components/provider/use-block-sync.js +18 -6
- package/src/components/provider/use-media-upload-settings.js +2 -0
- package/src/components/responsive-block-control/style.scss +1 -1
- package/src/components/rich-text/event-listeners/before-input-rules.js +8 -5
- package/src/components/rich-text/event-listeners/delete.js +7 -4
- package/src/components/rich-text/event-listeners/enter.js +10 -4
- package/src/components/rich-text/event-listeners/input-events.js +4 -3
- package/src/components/rich-text/event-listeners/input-rules.js +8 -5
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +4 -3
- package/src/components/rich-text/event-listeners/paste-handler.js +15 -3
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +4 -3
- package/src/components/rich-text/event-listeners/shortcuts.js +4 -3
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +4 -3
- package/src/components/rich-text/index.js +116 -26
- package/src/components/skip-to-selected-block/style.scss +1 -1
- package/src/components/spacing-sizes-control/test/utils.js +16 -5
- package/src/components/spacing-sizes-control/utils.js +11 -28
- package/src/components/text-indent-control/index.js +8 -0
- package/src/components/typewriter/index.js +228 -224
- package/src/components/url-input/index.js +363 -431
- package/src/components/url-input/test/index.js +592 -0
- package/src/components/use-block-commands/index.js +27 -17
- package/src/components/use-on-block-drop/index.js +2 -2
- package/src/components/warning/test/__snapshots__/index.js.snap +1 -1
- package/src/components/writing-flow/index.js +17 -1
- package/src/components/writing-flow/use-arrow-nav.js +90 -13
- package/src/components/writing-flow/use-click-selection.js +55 -5
- package/src/components/writing-flow/use-clipboard-handler.js +5 -2
- package/src/components/writing-flow/use-drag-selection.js +1 -14
- package/src/components/writing-flow/use-editable-root-event-handlers.js +266 -0
- package/src/components/writing-flow/use-editable-root.js +112 -0
- package/src/components/writing-flow/use-home-end.js +71 -0
- package/src/components/writing-flow/use-input.js +25 -8
- package/src/components/writing-flow/use-multi-selection.js +2 -3
- package/src/components/writing-flow/use-select-all.js +33 -3
- package/src/components/writing-flow/use-selection-observer.js +218 -42
- package/src/components/writing-flow/utils.js +62 -0
- package/src/hooks/background.js +27 -24
- package/src/hooks/block-fields/link/styles.scss +1 -6
- package/src/hooks/block-fields/media/styles.scss +1 -6
- package/src/hooks/block-fields/rich-text/index.js +6 -9
- package/src/hooks/block-fields/rich-text/styles.scss +1 -1
- package/src/hooks/block-style-variation.js +8 -74
- package/src/hooks/border.js +19 -4
- package/src/hooks/custom-css.js +15 -6
- package/src/hooks/dimensions.js +17 -4
- package/src/hooks/duotone.js +26 -8
- package/src/hooks/elements.js +14 -4
- package/src/hooks/grid-visualizer.js +40 -36
- package/src/hooks/layout-child.js +19 -9
- package/src/hooks/layout.js +48 -31
- package/src/hooks/line-height.js +0 -1
- package/src/hooks/states.js +38 -9
- package/src/hooks/style.js +67 -17
- package/src/hooks/test/inherited-value-wiring.js +411 -0
- package/src/hooks/test/preset-round-trip.js +456 -0
- package/src/hooks/test/style.js +29 -0
- package/src/hooks/test/text-align.js +34 -1
- package/src/hooks/text-align.js +41 -10
- package/src/hooks/typography.js +35 -24
- package/src/layouts/constrained.js +5 -1
- package/src/layouts/flex.js +5 -1
- package/src/layouts/grid.js +0 -2
- package/src/private-apis.js +11 -2
- package/src/store/actions.js +53 -19
- package/src/store/private-selectors.js +82 -6
- package/src/store/reducer.js +9 -9
- package/src/store/selectors.js +56 -8
- package/src/store/test/actions.js +1 -1
- package/src/store/test/private-selectors.js +271 -1
- package/src/style.scss +2 -0
- package/src/utils/block-bindings.ts +50 -0
- package/src/utils/dom.ts +33 -0
- package/src/utils/native-undo.js +56 -0
- package/src/utils/test/block-bindings.js +181 -0
- package/build/components/duotone/utils.cjs +0 -87
- package/build/components/duotone/utils.cjs.map +0 -7
- package/build/components/rich-text/input-event.cjs.map +0 -7
- package/build/components/rich-text/shortcut.cjs +0 -51
- package/build/components/rich-text/shortcut.cjs.map +0 -7
- package/build-module/components/duotone/utils.mjs +0 -59
- package/build-module/components/duotone/utils.mjs.map +0 -7
- package/build-module/components/rich-text/input-event.mjs +0 -25
- package/build-module/components/rich-text/input-event.mjs.map +0 -7
- package/build-module/components/rich-text/shortcut.mjs +0 -26
- package/build-module/components/rich-text/shortcut.mjs.map +0 -7
- package/src/components/duotone/utils.js +0 -90
- package/src/components/rich-text/input-event.js +0 -31
- package/src/components/rich-text/shortcut.js +0 -32
- package/src/hooks/test/get-variation-styles-with-ref-values.js +0 -91
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
5
|
import { useRefEffect } from '@wordpress/compose';
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
create,
|
|
8
|
+
privateApis as richTextPrivateApis,
|
|
9
|
+
} from '@wordpress/rich-text';
|
|
7
10
|
import { isSelectionForward } from '@wordpress/dom';
|
|
8
11
|
|
|
9
12
|
/**
|
|
@@ -11,6 +14,10 @@ import { isSelectionForward } from '@wordpress/dom';
|
|
|
11
14
|
*/
|
|
12
15
|
import { store as blockEditorStore } from '../../store';
|
|
13
16
|
import { getBlockClientId } from '../../utils/dom';
|
|
17
|
+
import { setContentEditableWrapper } from './utils';
|
|
18
|
+
import { unlock } from '../../lock-unlock';
|
|
19
|
+
|
|
20
|
+
const { ownsSelection } = unlock( richTextPrivateApis );
|
|
14
21
|
|
|
15
22
|
/**
|
|
16
23
|
* Extract the selection start node from the selection. When the anchor node is
|
|
@@ -39,11 +46,13 @@ function extractSelectionStartNode( selection ) {
|
|
|
39
46
|
* a text node, the selection offset is the index of a child node. The selection
|
|
40
47
|
* reaches up to but excluding that child node.
|
|
41
48
|
*
|
|
42
|
-
* @param {Selection} selection
|
|
49
|
+
* @param {Selection} selection The selection.
|
|
50
|
+
* @param {boolean} isTripleClick Whether the selection comes from a triple
|
|
51
|
+
* click.
|
|
43
52
|
*
|
|
44
53
|
* @return {Element} The selection start node.
|
|
45
54
|
*/
|
|
46
|
-
function extractSelectionEndNode( selection ) {
|
|
55
|
+
function extractSelectionEndNode( selection, isTripleClick ) {
|
|
47
56
|
const { focusNode, focusOffset } = selection;
|
|
48
57
|
|
|
49
58
|
if ( focusNode.nodeType === focusNode.TEXT_NODE ) {
|
|
@@ -54,11 +63,18 @@ function extractSelectionEndNode( selection ) {
|
|
|
54
63
|
return focusNode;
|
|
55
64
|
}
|
|
56
65
|
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
|
|
66
|
+
// A triple click selects the paragraph, but the browser extends the
|
|
67
|
+
// forward selection into the next element at an offset of 0. This may
|
|
68
|
+
// trigger multi selection even though the selection does not visually end
|
|
69
|
+
// in the next block. Keyboard selections that legitimately extend to the
|
|
70
|
+
// same boundary (e.g. Shift+ArrowDown into a focusable block, where the
|
|
71
|
+
// browser reports the boundary at the element instead of its first text
|
|
72
|
+
// position) must not be corrected, so only do this for triple clicks.
|
|
73
|
+
if (
|
|
74
|
+
focusOffset === 0 &&
|
|
75
|
+
isSelectionForward( selection ) &&
|
|
76
|
+
isTripleClick
|
|
77
|
+
) {
|
|
62
78
|
return focusNode.previousSibling ?? focusNode.parentElement;
|
|
63
79
|
}
|
|
64
80
|
|
|
@@ -75,26 +91,6 @@ function findDepth( a, b ) {
|
|
|
75
91
|
return depth;
|
|
76
92
|
}
|
|
77
93
|
|
|
78
|
-
/**
|
|
79
|
-
* Sets the `contenteditable` wrapper element to `value`.
|
|
80
|
-
*
|
|
81
|
-
* @param {HTMLElement} node Block element.
|
|
82
|
-
* @param {boolean} value `contentEditable` value (true or false)
|
|
83
|
-
*/
|
|
84
|
-
function setContentEditableWrapper( node, value ) {
|
|
85
|
-
// Since we are calling this on every selection change, check if the value
|
|
86
|
-
// needs to be updated first because it trigger the browser to recalculate
|
|
87
|
-
// style.
|
|
88
|
-
if ( node.contentEditable !== String( value ) ) {
|
|
89
|
-
node.contentEditable = value;
|
|
90
|
-
|
|
91
|
-
// Firefox doesn't automatically move focus.
|
|
92
|
-
if ( value ) {
|
|
93
|
-
node.focus();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
94
|
function getRichTextElement( node ) {
|
|
99
95
|
const element =
|
|
100
96
|
node.nodeType === node.ELEMENT_NODE ? node : node.parentElement;
|
|
@@ -105,15 +101,45 @@ function getRichTextElement( node ) {
|
|
|
105
101
|
* Sets a multi-selection based on the native selection across blocks.
|
|
106
102
|
*/
|
|
107
103
|
export default function useSelectionObserver() {
|
|
108
|
-
const {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
104
|
+
const {
|
|
105
|
+
multiSelect,
|
|
106
|
+
selectBlock,
|
|
107
|
+
selectionChange,
|
|
108
|
+
startMultiSelect,
|
|
109
|
+
stopMultiSelect,
|
|
110
|
+
} = useDispatch( blockEditorStore );
|
|
111
|
+
const {
|
|
112
|
+
getBlockParents,
|
|
113
|
+
getBlockSelectionStart,
|
|
114
|
+
isMultiSelecting,
|
|
115
|
+
getSelectionStart,
|
|
116
|
+
getSelectionEnd,
|
|
117
|
+
getSelectedBlockClientId,
|
|
118
|
+
canHostEditableRoot,
|
|
119
|
+
} = unlock( useSelect( blockEditorStore ) );
|
|
112
120
|
return useRefEffect(
|
|
113
121
|
( node ) => {
|
|
114
122
|
const { ownerDocument } = node;
|
|
115
123
|
const { defaultView } = ownerDocument;
|
|
116
124
|
|
|
125
|
+
let isTripleClick = false;
|
|
126
|
+
|
|
127
|
+
function onMouseDown( event ) {
|
|
128
|
+
isTripleClick = event.detail === 3;
|
|
129
|
+
// A shift+click makes a multi-selection: mark the gesture as
|
|
130
|
+
// in progress so the clicked block's focus handler does not
|
|
131
|
+
// select it (collapsing the native range being made), and so
|
|
132
|
+
// use-multi-selection does not clear the native selection.
|
|
133
|
+
// The selection is built on mouseup.
|
|
134
|
+
if ( event.shiftKey ) {
|
|
135
|
+
startMultiSelect();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function onKeyDown() {
|
|
140
|
+
isTripleClick = false;
|
|
141
|
+
}
|
|
142
|
+
|
|
117
143
|
function onSelectionChange( event ) {
|
|
118
144
|
const selection = defaultView.getSelection();
|
|
119
145
|
|
|
@@ -122,7 +148,10 @@ export default function useSelectionObserver() {
|
|
|
122
148
|
}
|
|
123
149
|
|
|
124
150
|
const startNode = extractSelectionStartNode( selection );
|
|
125
|
-
const endNode = extractSelectionEndNode(
|
|
151
|
+
const endNode = extractSelectionEndNode(
|
|
152
|
+
selection,
|
|
153
|
+
isTripleClick
|
|
154
|
+
);
|
|
126
155
|
|
|
127
156
|
if (
|
|
128
157
|
! node.contains( startNode ) ||
|
|
@@ -139,6 +168,46 @@ export default function useSelectionObserver() {
|
|
|
139
168
|
// For now we check if the event is a `mouse` event.
|
|
140
169
|
const isClickShift = event.shiftKey && event.type === 'mouseup';
|
|
141
170
|
if ( selection.isCollapsed && ! isClickShift ) {
|
|
171
|
+
const collapsedClientId = getBlockClientId( startNode );
|
|
172
|
+
|
|
173
|
+
// If the block supports an editable root, keep (or make)
|
|
174
|
+
// the wrapper contentEditable so the native selection can
|
|
175
|
+
// extend across blocks. The wrapper holds focus, so rich
|
|
176
|
+
// text instances don't sync the selection; do it here.
|
|
177
|
+
if (
|
|
178
|
+
! isMultiSelecting() &&
|
|
179
|
+
collapsedClientId &&
|
|
180
|
+
// Only keep the wrapper editable when the collapsed
|
|
181
|
+
// selection is in the block that is actually selected.
|
|
182
|
+
// A stale native selection may linger in a previously
|
|
183
|
+
// selected editable root block (e.g. Firefox does not
|
|
184
|
+
// always move it), which must not re-enable the wrapper
|
|
185
|
+
// after another block has been selected.
|
|
186
|
+
collapsedClientId === getSelectedBlockClientId() &&
|
|
187
|
+
canHostEditableRoot( collapsedClientId )
|
|
188
|
+
) {
|
|
189
|
+
setContentEditableWrapper( node, true );
|
|
190
|
+
|
|
191
|
+
// While the wrapper is editable it must hold focus: a
|
|
192
|
+
// nested editable element cannot retain it (the first
|
|
193
|
+
// DOM mutation moves focus to the host, inconsistently
|
|
194
|
+
// across browsers). Don't steal focus from UI elements
|
|
195
|
+
// (e.g. buttons) or editables outside the block (e.g.
|
|
196
|
+
// the post title). The rich text instance owning the
|
|
197
|
+
// selection syncs it to the store itself.
|
|
198
|
+
const { activeElement } = ownerDocument;
|
|
199
|
+
if (
|
|
200
|
+
activeElement !== node &&
|
|
201
|
+
activeElement?.isContentEditable &&
|
|
202
|
+
node.contains( activeElement ) &&
|
|
203
|
+
getBlockClientId( activeElement ) ===
|
|
204
|
+
collapsedClientId
|
|
205
|
+
) {
|
|
206
|
+
node.focus();
|
|
207
|
+
}
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
142
211
|
if (
|
|
143
212
|
node.contentEditable === 'true' &&
|
|
144
213
|
! isMultiSelecting()
|
|
@@ -210,7 +279,6 @@ export default function useSelectionObserver() {
|
|
|
210
279
|
return;
|
|
211
280
|
}
|
|
212
281
|
}
|
|
213
|
-
|
|
214
282
|
const isSingularSelection = startClientId === endClientId;
|
|
215
283
|
if ( isSingularSelection ) {
|
|
216
284
|
if ( ! isMultiSelecting() ) {
|
|
@@ -226,7 +294,16 @@ export default function useSelectionObserver() {
|
|
|
226
294
|
|
|
227
295
|
if (
|
|
228
296
|
richTextElement &&
|
|
229
|
-
|
|
297
|
+
// The rich text instance syncs the selection
|
|
298
|
+
// itself when its element is editable and owns the
|
|
299
|
+
// selection (also through a focused editing host).
|
|
300
|
+
// It may be temporarily non-editable while a drag
|
|
301
|
+
// that started outside it is in progress (see
|
|
302
|
+
// rich-text's preventFocusCapture).
|
|
303
|
+
( richTextElement.contentEditable !== 'true' ||
|
|
304
|
+
( ownerDocument.activeElement !==
|
|
305
|
+
richTextElement &&
|
|
306
|
+
! ownsSelection( richTextElement ) ) )
|
|
230
307
|
) {
|
|
231
308
|
const range = selection.getRangeAt( 0 );
|
|
232
309
|
const richTextData = create( {
|
|
@@ -234,7 +311,7 @@ export default function useSelectionObserver() {
|
|
|
234
311
|
range,
|
|
235
312
|
__unstableIsEditableTree: true,
|
|
236
313
|
} );
|
|
237
|
-
|
|
314
|
+
const selectionUpdate = {
|
|
238
315
|
start: {
|
|
239
316
|
clientId: startClientId,
|
|
240
317
|
attributeKey:
|
|
@@ -247,9 +324,34 @@ export default function useSelectionObserver() {
|
|
|
247
324
|
attributeKey:
|
|
248
325
|
richTextElement.dataset
|
|
249
326
|
.wpBlockAttributeKey,
|
|
250
|
-
offset
|
|
327
|
+
// Clamp the end offset to the element. A
|
|
328
|
+
// forward selection can overshoot past the
|
|
329
|
+
// rich text (e.g. a triple click extends
|
|
330
|
+
// into the next block at offset 0), leaving
|
|
331
|
+
// `end` undefined; that means the selection
|
|
332
|
+
// reaches through the end of this element's
|
|
333
|
+
// content.
|
|
334
|
+
offset:
|
|
335
|
+
richTextData.end ??
|
|
336
|
+
richTextData.text.length,
|
|
251
337
|
},
|
|
252
|
-
}
|
|
338
|
+
};
|
|
339
|
+
const { start, end } = selectionUpdate;
|
|
340
|
+
const selectionStart = getSelectionStart();
|
|
341
|
+
const selectionEnd = getSelectionEnd();
|
|
342
|
+
|
|
343
|
+
// Skip the dispatch when the store already holds
|
|
344
|
+
// the same selection.
|
|
345
|
+
if (
|
|
346
|
+
selectionStart.clientId !== start.clientId ||
|
|
347
|
+
selectionEnd.clientId !== end.clientId ||
|
|
348
|
+
selectionStart.attributeKey !==
|
|
349
|
+
start.attributeKey ||
|
|
350
|
+
selectionStart.offset !== start.offset ||
|
|
351
|
+
selectionEnd.offset !== end.offset
|
|
352
|
+
) {
|
|
353
|
+
selectionChange( selectionUpdate );
|
|
354
|
+
}
|
|
253
355
|
} else {
|
|
254
356
|
selectBlock( startClientId );
|
|
255
357
|
}
|
|
@@ -267,9 +369,19 @@ export default function useSelectionObserver() {
|
|
|
267
369
|
];
|
|
268
370
|
const depth = findDepth( startPath, endPath );
|
|
269
371
|
|
|
372
|
+
// If one path ends before they diverge, one block
|
|
373
|
+
// contains the other, so there are no sibling blocks
|
|
374
|
+
// to promote the selection to. Record the selection as
|
|
375
|
+
// is: it resolves to the outer block, which is treated
|
|
376
|
+
// as fully selected. See `getSelectionNestingAncestor`
|
|
377
|
+
// in the store.
|
|
378
|
+
const isAncestorDescendant =
|
|
379
|
+
depth >= startPath.length || depth >= endPath.length;
|
|
380
|
+
|
|
270
381
|
if (
|
|
271
|
-
|
|
272
|
-
|
|
382
|
+
! isAncestorDescendant &&
|
|
383
|
+
( startPath[ depth ] !== startClientId ||
|
|
384
|
+
endPath[ depth ] !== endClientId )
|
|
273
385
|
) {
|
|
274
386
|
multiSelect( startPath[ depth ], endPath[ depth ] );
|
|
275
387
|
return;
|
|
@@ -318,17 +430,81 @@ export default function useSelectionObserver() {
|
|
|
318
430
|
}
|
|
319
431
|
}
|
|
320
432
|
|
|
433
|
+
// Native `selectionchange` events are asynchronous: a clipboard
|
|
434
|
+
// event may fire before the store has been updated with a cross
|
|
435
|
+
// block selection that was just made. Sync it before the clipboard
|
|
436
|
+
// handlers (bubble phase) read the store.
|
|
437
|
+
function ensureMultiBlockSelectionSync( event ) {
|
|
438
|
+
const selection = defaultView.getSelection();
|
|
439
|
+
|
|
440
|
+
if ( ! selection.rangeCount || selection.isCollapsed ) {
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
// Only a selection across different blocks needs to be synced
|
|
445
|
+
// here; rich text owns selections within a single block.
|
|
446
|
+
const startClientId = getBlockClientId(
|
|
447
|
+
extractSelectionStartNode( selection )
|
|
448
|
+
);
|
|
449
|
+
const endClientId = getBlockClientId(
|
|
450
|
+
extractSelectionEndNode( selection, isTripleClick )
|
|
451
|
+
);
|
|
452
|
+
|
|
453
|
+
if ( startClientId !== endClientId ) {
|
|
454
|
+
onSelectionChange( event );
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
321
458
|
ownerDocument.addEventListener(
|
|
322
459
|
'selectionchange',
|
|
323
460
|
onSelectionChange
|
|
324
461
|
);
|
|
325
|
-
|
|
462
|
+
function onMouseUp( event ) {
|
|
463
|
+
onSelectionChange( event );
|
|
464
|
+
stopMultiSelect();
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
defaultView.addEventListener( 'mouseup', onMouseUp );
|
|
468
|
+
node.addEventListener( 'mousedown', onMouseDown );
|
|
469
|
+
node.addEventListener( 'keydown', onKeyDown );
|
|
470
|
+
ownerDocument.addEventListener(
|
|
471
|
+
'copy',
|
|
472
|
+
ensureMultiBlockSelectionSync,
|
|
473
|
+
true
|
|
474
|
+
);
|
|
475
|
+
ownerDocument.addEventListener(
|
|
476
|
+
'cut',
|
|
477
|
+
ensureMultiBlockSelectionSync,
|
|
478
|
+
true
|
|
479
|
+
);
|
|
480
|
+
ownerDocument.addEventListener(
|
|
481
|
+
'paste',
|
|
482
|
+
ensureMultiBlockSelectionSync,
|
|
483
|
+
true
|
|
484
|
+
);
|
|
326
485
|
return () => {
|
|
327
486
|
ownerDocument.removeEventListener(
|
|
328
487
|
'selectionchange',
|
|
329
488
|
onSelectionChange
|
|
330
489
|
);
|
|
331
|
-
defaultView.removeEventListener( 'mouseup',
|
|
490
|
+
defaultView.removeEventListener( 'mouseup', onMouseUp );
|
|
491
|
+
node.removeEventListener( 'mousedown', onMouseDown );
|
|
492
|
+
node.removeEventListener( 'keydown', onKeyDown );
|
|
493
|
+
ownerDocument.removeEventListener(
|
|
494
|
+
'copy',
|
|
495
|
+
ensureMultiBlockSelectionSync,
|
|
496
|
+
true
|
|
497
|
+
);
|
|
498
|
+
ownerDocument.removeEventListener(
|
|
499
|
+
'cut',
|
|
500
|
+
ensureMultiBlockSelectionSync,
|
|
501
|
+
true
|
|
502
|
+
);
|
|
503
|
+
ownerDocument.removeEventListener(
|
|
504
|
+
'paste',
|
|
505
|
+
ensureMultiBlockSelectionSync,
|
|
506
|
+
true
|
|
507
|
+
);
|
|
332
508
|
};
|
|
333
509
|
},
|
|
334
510
|
[ multiSelect, selectBlock, selectionChange, getBlockParents ]
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
4
5
|
import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
|
|
5
6
|
import {
|
|
6
7
|
serialize,
|
|
@@ -116,3 +117,64 @@ function toPlainText( html ) {
|
|
|
116
117
|
// Merge any consecutive line breaks
|
|
117
118
|
return plainText.replace( /\n\n+/g, '\n\n' );
|
|
118
119
|
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Makes the wrapper element an editing host, or stops it from being one. The
|
|
123
|
+
* ARIA attributes travel with the editability: while the wrapper is the
|
|
124
|
+
* active editing host it must present as a named multiline textbox, per the
|
|
125
|
+
* WAI-ARIA textbox role, which requires an accessible name.
|
|
126
|
+
*
|
|
127
|
+
* @param {HTMLElement} node Wrapper element.
|
|
128
|
+
* @param {boolean} value Whether the wrapper should be an
|
|
129
|
+
* editing host.
|
|
130
|
+
* @param {Object} options
|
|
131
|
+
* @param {boolean} options.focus Move focus to the wrapper when it
|
|
132
|
+
* becomes an editing host (Firefox does
|
|
133
|
+
* not automatically move it). Default
|
|
134
|
+
* true.
|
|
135
|
+
*
|
|
136
|
+
* @return {boolean} Whether the wrapper is an editing host now.
|
|
137
|
+
*/
|
|
138
|
+
export function setContentEditableWrapper(
|
|
139
|
+
node,
|
|
140
|
+
value,
|
|
141
|
+
{ focus = true } = {}
|
|
142
|
+
) {
|
|
143
|
+
// Check first: this is called on every selection change, and setting
|
|
144
|
+
// contentEditable triggers a style recalculation.
|
|
145
|
+
if ( node.contentEditable === String( value ) ) {
|
|
146
|
+
return value;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
node.contentEditable = value;
|
|
150
|
+
|
|
151
|
+
if ( ! value ) {
|
|
152
|
+
node.removeAttribute( 'role' );
|
|
153
|
+
node.removeAttribute( 'aria-multiline' );
|
|
154
|
+
node.removeAttribute( 'aria-label' );
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Only act as an editing host if the environment supports it (JSDOM
|
|
159
|
+
// does not implement contentEditable): without editing host semantics
|
|
160
|
+
// the wrapper must not claim focus or textbox semantics.
|
|
161
|
+
if ( ! node.isContentEditable ) {
|
|
162
|
+
node.removeAttribute( 'contenteditable' );
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Expose the host as a named multiline textbox so it has a role and
|
|
167
|
+
// accessible name once it takes focus. The label is generic because the
|
|
168
|
+
// host can span several blocks.
|
|
169
|
+
node.setAttribute( 'role', 'textbox' );
|
|
170
|
+
node.setAttribute( 'aria-multiline', 'true' );
|
|
171
|
+
node.setAttribute( 'aria-label', __( 'Editor canvas' ) );
|
|
172
|
+
|
|
173
|
+
if ( focus ) {
|
|
174
|
+
// Without preventScroll, focusing the wrapper scrolls the
|
|
175
|
+
// viewport to the top of the wrapper.
|
|
176
|
+
node.focus( { preventScroll: true } );
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return true;
|
|
180
|
+
}
|
package/src/hooks/background.js
CHANGED
|
@@ -24,13 +24,13 @@ import {
|
|
|
24
24
|
hasBackgroundImageValue,
|
|
25
25
|
hasBackgroundGradientValue,
|
|
26
26
|
} from '../components/global-styles/background-panel';
|
|
27
|
-
import { globalStylesDataKey } from '../store/private-keys';
|
|
28
27
|
import {
|
|
29
28
|
getStyleForState,
|
|
30
29
|
isDefaultBlockStyleState,
|
|
31
30
|
setStyleForState,
|
|
32
31
|
useBlockStyleState,
|
|
33
32
|
} from './block-style-state';
|
|
33
|
+
import { useResolvedStyle } from '../components/global-styles/inherited-value-context';
|
|
34
34
|
|
|
35
35
|
export const BACKGROUND_SUPPORT_KEY = 'background';
|
|
36
36
|
|
|
@@ -179,24 +179,25 @@ export function BackgroundImagePanel( {
|
|
|
179
179
|
asWrapper,
|
|
180
180
|
} ) {
|
|
181
181
|
const selectedState = useBlockStyleState();
|
|
182
|
-
const { style, className, backgroundColor, gradient
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
182
|
+
const { style, className, backgroundColor, gradient } = useSelect(
|
|
183
|
+
( select ) => {
|
|
184
|
+
const { getBlockAttributes } = select( blockEditorStore );
|
|
185
|
+
const blockAttributes = getBlockAttributes( clientId );
|
|
186
|
+
return {
|
|
187
|
+
style: blockAttributes?.style,
|
|
188
|
+
className: blockAttributes?.className,
|
|
189
|
+
backgroundColor: blockAttributes?.backgroundColor,
|
|
190
|
+
gradient: blockAttributes?.gradient,
|
|
191
|
+
};
|
|
192
|
+
},
|
|
193
|
+
[ clientId ]
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
const { value: inheritedValue } = useResolvedStyle(
|
|
197
|
+
name,
|
|
198
|
+
className,
|
|
199
|
+
selectedState
|
|
200
|
+
);
|
|
200
201
|
|
|
201
202
|
const backgroundGradientSupported = hasBackgroundSupport(
|
|
202
203
|
name,
|
|
@@ -234,13 +235,15 @@ export function BackgroundImagePanel( {
|
|
|
234
235
|
},
|
|
235
236
|
} ),
|
|
236
237
|
};
|
|
238
|
+
const value = isStateSelected
|
|
239
|
+
? getStyleForState( style, selectedState )
|
|
240
|
+
: styleValue;
|
|
237
241
|
|
|
238
242
|
// Skipped for gradients, which can't be reliably evaluated for contrast.
|
|
239
243
|
const enableContrastChecking =
|
|
240
|
-
!
|
|
241
|
-
!
|
|
242
|
-
|
|
243
|
-
!! styleValue?.color?.background &&
|
|
244
|
+
! value?.color?.gradient &&
|
|
245
|
+
! value?.background?.gradient &&
|
|
246
|
+
!! value?.color?.background &&
|
|
244
247
|
( settings?.color?.text || settings?.color?.link ) &&
|
|
245
248
|
false !== getBlockSupport( name, [ 'color', 'enableContrastChecker' ] );
|
|
246
249
|
|
|
@@ -379,7 +382,6 @@ export function BackgroundImagePanel( {
|
|
|
379
382
|
|
|
380
383
|
return (
|
|
381
384
|
<StylesBackgroundPanel
|
|
382
|
-
inheritedValue={ inheritedValue }
|
|
383
385
|
as={ Wrapper }
|
|
384
386
|
panelId={ clientId }
|
|
385
387
|
defaultValues={ BACKGROUND_BLOCK_DEFAULT_VALUES }
|
|
@@ -392,6 +394,7 @@ export function BackgroundImagePanel( {
|
|
|
392
394
|
: styleValue
|
|
393
395
|
}
|
|
394
396
|
contrastWarning={ contrastWarning }
|
|
397
|
+
inheritedValue={ inheritedValue }
|
|
395
398
|
/>
|
|
396
399
|
);
|
|
397
400
|
}
|
|
@@ -3,12 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
.block-editor-content-only-controls__link {
|
|
5
5
|
width: 100%;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
&:focus:not(:disabled) {
|
|
9
|
-
// Allow smooth transition between focused and unfocused box-shadow states.
|
|
10
|
-
box-shadow: 0 0 0 currentColor inset, 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
11
|
-
}
|
|
6
|
+
border-color: $gray-400;
|
|
12
7
|
}
|
|
13
8
|
|
|
14
9
|
.block-editor-content-only-controls__link-row {
|
|
@@ -3,13 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
.block-editor-content-only-controls__media {
|
|
5
5
|
width: 100%;
|
|
6
|
-
|
|
6
|
+
border-color: $gray-400;
|
|
7
7
|
padding-right: $grid-unit-40;
|
|
8
|
-
|
|
9
|
-
&:focus:not(:disabled) {
|
|
10
|
-
// Allow smooth transition between focused and unfocused box-shadow states.
|
|
11
|
-
box-shadow: 0 0 0 currentColor inset, 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
12
|
-
}
|
|
13
8
|
}
|
|
14
9
|
|
|
15
10
|
.block-editor-content-only-controls__media-replace-flow {
|
|
@@ -13,13 +13,10 @@ import { privateApis as richTextPrivateApis } from '@wordpress/rich-text';
|
|
|
13
13
|
import { getAllowedFormats } from '../../../components/rich-text/utils';
|
|
14
14
|
import { useEventListeners } from '../../../components/rich-text/event-listeners';
|
|
15
15
|
import FormatEdit from '../../../components/rich-text/format-edit';
|
|
16
|
-
import {
|
|
17
|
-
keyboardShortcutContext,
|
|
18
|
-
inputEventContext,
|
|
19
|
-
} from '../../../components/rich-text';
|
|
20
16
|
import { unlock } from '../../../lock-unlock';
|
|
21
17
|
|
|
22
|
-
const { useRichText } =
|
|
18
|
+
const { useRichText, KeyboardShortcutContext, InputEventContext } =
|
|
19
|
+
unlock( richTextPrivateApis );
|
|
23
20
|
|
|
24
21
|
export default function RichTextControl( {
|
|
25
22
|
data,
|
|
@@ -84,8 +81,8 @@ export default function RichTextControl( {
|
|
|
84
81
|
return (
|
|
85
82
|
<>
|
|
86
83
|
{ isSelected && (
|
|
87
|
-
<
|
|
88
|
-
<
|
|
84
|
+
<KeyboardShortcutContext.Provider value={ keyboardShortcuts }>
|
|
85
|
+
<InputEventContext.Provider value={ inputEvents }>
|
|
89
86
|
<div>
|
|
90
87
|
<FormatEdit
|
|
91
88
|
value={ value }
|
|
@@ -96,8 +93,8 @@ export default function RichTextControl( {
|
|
|
96
93
|
isVisible={ false }
|
|
97
94
|
/>
|
|
98
95
|
</div>
|
|
99
|
-
</
|
|
100
|
-
</
|
|
96
|
+
</InputEventContext.Provider>
|
|
97
|
+
</KeyboardShortcutContext.Provider>
|
|
101
98
|
) }
|
|
102
99
|
<BaseControl { ...baseControlProps }>
|
|
103
100
|
<div
|