@wordpress/block-editor 15.23.0 → 16.0.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 +33 -0
- package/build/autocompleters/block.cjs +10 -2
- package/build/autocompleters/block.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +0 -2
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-canvas/index.cjs +6 -1
- package/build/components/block-canvas/index.cjs.map +2 -2
- package/build/components/block-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/edit-contents.cjs +3 -0
- package/build/components/block-inspector/edit-contents.cjs.map +3 -3
- package/build/components/block-inspector/index.cjs +2 -3
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-list/block-invalid-warning.cjs +8 -19
- package/build/components/block-list/block-invalid-warning.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 +3 -1
- 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 +12 -4
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
- package/build/components/block-styles/use-styles-for-block.cjs +2 -1
- package/build/components/block-styles/use-styles-for-block.cjs.map +2 -2
- package/build/components/block-title/use-block-display-title.cjs +7 -2
- package/build/components/block-title/use-block-display-title.cjs.map +2 -2
- package/build/components/block-toolbar/block-toolbar-icon.cjs +10 -14
- package/build/components/block-toolbar/block-toolbar-icon.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-tools/index.cjs +7 -2
- package/build/components/block-tools/index.cjs.map +2 -2
- package/build/components/block-variation-transforms/index.cjs +0 -1
- package/build/components/block-variation-transforms/index.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/child-layout-control/index.cjs +0 -6
- package/build/components/child-layout-control/index.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +5 -5
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/date-format-picker/index.cjs +0 -1
- package/build/components/date-format-picker/index.cjs.map +2 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +1 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +2 -2
- package/build/components/dimensions-tool/scale-tool.cjs +0 -1
- package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
- package/build/components/dimensions-tool/width-height-tool.cjs +2 -4
- package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
- package/build/components/font-appearance-control/index.cjs +6 -25
- package/build/components/font-appearance-control/index.cjs.map +3 -3
- package/build/components/font-family/index.cjs +6 -15
- package/build/components/font-family/index.cjs.map +3 -3
- package/build/components/font-sizes/font-size-picker.cjs +1 -2
- package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
- package/build/components/global-styles/border-panel.cjs +0 -1
- package/build/components/global-styles/border-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +0 -3
- package/build/components/global-styles/dimensions-panel.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/typography-panel.cjs +4 -11
- package/build/components/global-styles/typography-panel.cjs.map +2 -2
- package/build/components/height-control/index.cjs +0 -2
- package/build/components/height-control/index.cjs.map +2 -2
- package/build/components/html-element-control/index.cjs +0 -1
- package/build/components/html-element-control/index.cjs.map +2 -2
- package/build/components/image-editor/index.cjs +5 -0
- package/build/components/image-editor/index.cjs.map +3 -3
- package/build/components/image-editor/zoom-dropdown.cjs +0 -1
- package/build/components/image-editor/zoom-dropdown.cjs.map +2 -2
- package/build/components/image-size-control/index.cjs +3 -7
- package/build/components/image-size-control/index.cjs.map +2 -2
- package/build/components/inner-content/index.cjs +107 -0
- package/build/components/inner-content/index.cjs.map +7 -0
- package/build/components/inserter/hooks/use-block-types-state.cjs +10 -2
- package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
- package/build/components/inserter/media-tab/hooks.cjs +67 -12
- package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-list.cjs +3 -1
- package/build/components/inserter/media-tab/media-list.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-panel.cjs +287 -28
- package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
- package/build/components/inserter/media-tab/media-preview.cjs +32 -17
- package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-tab.cjs +26 -6
- package/build/components/inserter/media-tab/media-tab.cjs.map +2 -2
- package/build/components/inserter/mobile-tab-navigation.cjs +6 -1
- package/build/components/inserter/mobile-tab-navigation.cjs.map +2 -2
- package/build/components/inserter/no-results.cjs +2 -2
- package/build/components/inserter/no-results.cjs.map +2 -2
- package/build/components/inserter/preview-panel.cjs +2 -1
- package/build/components/inserter/preview-panel.cjs.map +2 -2
- package/build/components/inserter-list-item/index.cjs +8 -2
- package/build/components/inserter-list-item/index.cjs.map +2 -2
- package/build/components/keyboard-shortcuts/index.cjs +19 -11
- package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
- package/build/components/letter-spacing-control/index.cjs +0 -24
- package/build/components/letter-spacing-control/index.cjs.map +3 -3
- package/build/components/line-height-control/index.cjs +6 -22
- package/build/components/line-height-control/index.cjs.map +3 -3
- package/build/components/list-view/block-select-button.cjs +90 -84
- package/build/components/list-view/block-select-button.cjs.map +2 -2
- package/build/components/list-view/block.cjs +61 -21
- package/build/components/list-view/block.cjs.map +2 -2
- package/build/components/list-view/expander.cjs +1 -1
- package/build/components/list-view/expander.cjs.map +2 -2
- package/build/components/list-view/use-list-view-client-ids.cjs +2 -2
- package/build/components/list-view/use-list-view-client-ids.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/observe-typing/index.cjs +4 -3
- package/build/components/observe-typing/index.cjs.map +2 -2
- package/build/components/preset-input-control/custom-value-controls.cjs +1 -3
- package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +1 -3
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/resolution-tool/index.cjs +1 -2
- package/build/components/resolution-tool/index.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 +66 -17
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/text-alignment-control/index.cjs +0 -1
- package/build/components/text-alignment-control/index.cjs.map +2 -2
- package/build/components/text-decoration-control/index.cjs +0 -1
- package/build/components/text-decoration-control/index.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +0 -8
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/text-transform-control/index.cjs +0 -1
- package/build/components/text-transform-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/use-block-commands/index.cjs +21 -17
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/components/use-block-display-information/index.cjs +10 -8
- package/build/components/use-block-display-information/index.cjs.map +2 -2
- package/build/components/use-on-block-drop/index.cjs +3 -7
- package/build/components/use-on-block-drop/index.cjs.map +2 -2
- package/build/components/writing-flow/index.cjs +12 -1
- package/build/components/writing-flow/index.cjs.map +3 -3
- package/build/components/writing-flow/use-arrow-nav.cjs +18 -5
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-click-selection.cjs +2 -2
- 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.cjs +112 -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 +126 -20
- package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
- package/build/components/writing-flow/utils.cjs +39 -2
- package/build/components/writing-flow/utils.cjs.map +2 -2
- package/build/components/writing-mode-control/index.cjs +0 -1
- package/build/components/writing-mode-control/index.cjs.map +2 -2
- package/build/hooks/background.cjs +3 -2
- 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/elements.cjs +1 -1
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/font-size.cjs +1 -2
- package/build/hooks/font-size.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 +33 -16
- package/build/hooks/layout.cjs.map +3 -3
- package/build/hooks/position.cjs +36 -16
- package/build/hooks/position.cjs.map +2 -2
- package/build/hooks/states.cjs +29 -12
- 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 +1 -1
- package/build/hooks/typography.cjs.map +2 -2
- package/build/layouts/constrained.cjs +35 -27
- package/build/layouts/constrained.cjs.map +2 -2
- package/build/layouts/flex.cjs +27 -22
- package/build/layouts/flex.cjs.map +2 -2
- package/build/layouts/grid.cjs +51 -11
- package/build/layouts/grid.cjs.map +2 -2
- package/build/private-apis.cjs +4 -1
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs +2 -2
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-keys.cjs +3 -0
- package/build/store/private-keys.cjs.map +2 -2
- package/build/store/private-selectors.cjs +85 -6
- package/build/store/private-selectors.cjs.map +3 -3
- package/build/store/selectors.cjs +13 -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-module/autocompleters/block.mjs +10 -2
- package/build-module/autocompleters/block.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +0 -2
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-canvas/index.mjs +7 -2
- package/build-module/components/block-canvas/index.mjs.map +2 -2
- package/build-module/components/block-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/edit-contents.mjs +4 -1
- package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +2 -3
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block-invalid-warning.mjs +8 -19
- package/build-module/components/block-list/block-invalid-warning.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 +3 -1
- 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 +12 -4
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
- package/build-module/components/block-styles/use-styles-for-block.mjs +2 -1
- package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
- package/build-module/components/block-title/use-block-display-title.mjs +7 -2
- package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs +10 -14
- package/build-module/components/block-toolbar/block-toolbar-icon.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-tools/index.mjs +7 -2
- package/build-module/components/block-tools/index.mjs.map +2 -2
- package/build-module/components/block-variation-transforms/index.mjs +0 -1
- package/build-module/components/block-variation-transforms/index.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/child-layout-control/index.mjs +0 -6
- package/build-module/components/child-layout-control/index.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -5
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/date-format-picker/index.mjs +0 -1
- package/build-module/components/date-format-picker/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +1 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/scale-tool.mjs +0 -1
- package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/width-height-tool.mjs +2 -4
- package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
- package/build-module/components/font-appearance-control/index.mjs +6 -15
- package/build-module/components/font-appearance-control/index.mjs.map +2 -2
- package/build-module/components/font-family/index.mjs +6 -15
- package/build-module/components/font-family/index.mjs.map +2 -2
- package/build-module/components/font-sizes/font-size-picker.mjs +1 -2
- package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +0 -1
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +0 -3
- package/build-module/components/global-styles/dimensions-panel.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/typography-panel.mjs +4 -11
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/height-control/index.mjs +0 -2
- package/build-module/components/height-control/index.mjs.map +2 -2
- package/build-module/components/html-element-control/index.mjs +0 -1
- package/build-module/components/html-element-control/index.mjs.map +2 -2
- package/build-module/components/image-editor/index.mjs +5 -0
- package/build-module/components/image-editor/index.mjs.map +2 -2
- package/build-module/components/image-editor/zoom-dropdown.mjs +0 -1
- package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
- package/build-module/components/image-size-control/index.mjs +3 -7
- package/build-module/components/image-size-control/index.mjs.map +2 -2
- package/build-module/components/inner-content/index.mjs +82 -0
- package/build-module/components/inner-content/index.mjs.map +7 -0
- package/build-module/components/inserter/hooks/use-block-types-state.mjs +10 -2
- package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/hooks.mjs +66 -12
- package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-list.mjs +3 -1
- package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-panel.mjs +297 -32
- package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-preview.mjs +33 -18
- package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-tab.mjs +27 -7
- package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
- package/build-module/components/inserter/mobile-tab-navigation.mjs +6 -1
- package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
- package/build-module/components/inserter/no-results.mjs +2 -2
- package/build-module/components/inserter/no-results.mjs.map +2 -2
- package/build-module/components/inserter/preview-panel.mjs +2 -1
- package/build-module/components/inserter/preview-panel.mjs.map +2 -2
- package/build-module/components/inserter-list-item/index.mjs +8 -2
- package/build-module/components/inserter-list-item/index.mjs.map +2 -2
- package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
- package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
- package/build-module/components/letter-spacing-control/index.mjs +0 -14
- package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +6 -12
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/list-view/block-select-button.mjs +90 -84
- package/build-module/components/list-view/block-select-button.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +61 -21
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/list-view/expander.mjs +1 -1
- package/build-module/components/list-view/expander.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.mjs +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.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/observe-typing/index.mjs +4 -3
- package/build-module/components/observe-typing/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/custom-value-controls.mjs +1 -3
- package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +1 -3
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/resolution-tool/index.mjs +1 -2
- package/build-module/components/resolution-tool/index.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 +64 -13
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/text-alignment-control/index.mjs +0 -1
- package/build-module/components/text-alignment-control/index.mjs.map +2 -2
- package/build-module/components/text-decoration-control/index.mjs +0 -1
- package/build-module/components/text-decoration-control/index.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +0 -8
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/text-transform-control/index.mjs +0 -1
- package/build-module/components/text-transform-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/use-block-commands/index.mjs +21 -17
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/components/use-block-display-information/index.mjs +10 -8
- package/build-module/components/use-block-display-information/index.mjs.map +2 -2
- package/build-module/components/use-on-block-drop/index.mjs +4 -7
- package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +12 -1
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +19 -6
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs +2 -2
- 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.mjs +86 -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 +128 -19
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/components/writing-flow/utils.mjs +35 -1
- package/build-module/components/writing-flow/utils.mjs.map +2 -2
- package/build-module/components/writing-mode-control/index.mjs +0 -1
- package/build-module/components/writing-mode-control/index.mjs.map +2 -2
- package/build-module/hooks/background.mjs +3 -2
- 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/elements.mjs +1 -1
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/font-size.mjs +1 -2
- package/build-module/hooks/font-size.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 +32 -16
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/position.mjs +38 -18
- package/build-module/hooks/position.mjs.map +2 -2
- package/build-module/hooks/states.mjs +29 -12
- 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 +1 -1
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/layouts/constrained.mjs +35 -27
- package/build-module/layouts/constrained.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +27 -22
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +52 -11
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/private-apis.mjs +5 -1
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +3 -3
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-keys.mjs +2 -0
- package/build-module/store/private-keys.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +84 -6
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/selectors.mjs +13 -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-style/content-rtl.css +15 -14
- package/build-style/content.css +15 -14
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +144 -47
- package/build-style/style.css +144 -47
- 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 +46 -44
- package/src/autocompleters/block.js +10 -3
- package/src/autocompleters/test/block.js +53 -0
- package/src/components/background-image-control/index.js +0 -2
- package/src/components/block-canvas/index.js +9 -2
- package/src/components/block-card/style.scss +1 -1
- package/src/components/block-controls/groups.js +2 -0
- package/src/components/block-edit/edit.js +13 -31
- package/src/components/block-inspector/edit-contents.js +5 -1
- package/src/components/block-inspector/index.js +3 -2
- package/src/components/block-list/block-invalid-warning.js +8 -19
- package/src/components/block-list/block.js +6 -0
- package/src/components/block-list/index.js +0 -2
- package/src/components/block-list/use-block-props/index.js +2 -0
- 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 +34 -9
- 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-patterns-list/stories/index.story.jsx +1 -1
- package/src/components/block-quick-navigation/style.scss +1 -3
- package/src/components/block-styles/style.scss +2 -2
- package/src/components/block-styles/use-styles-for-block.js +1 -0
- package/src/components/block-title/use-block-display-title.js +7 -2
- package/src/components/block-toolbar/block-toolbar-icon.js +11 -16
- package/src/components/block-toolbar/index.js +41 -18
- package/src/components/block-toolbar/test/block-toolbar-icon.js +32 -9
- package/src/components/block-tools/index.js +7 -0
- package/src/components/block-types-list/style.scss +0 -1
- package/src/components/block-variation-transforms/index.js +0 -1
- 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/button-block-appender/content.scss +1 -7
- package/src/components/child-layout-control/index.js +0 -6
- package/src/components/color-palette/test/__snapshots__/control.js.snap +13 -108
- package/src/components/colors-gradients/control.js +4 -4
- package/src/components/colors-gradients/style.scss +2 -2
- package/src/components/date-format-picker/index.js +0 -1
- package/src/components/dimensions-tool/aspect-ratio-tool.js +0 -1
- package/src/components/dimensions-tool/scale-tool.js +0 -1
- package/src/components/dimensions-tool/width-height-tool.js +0 -2
- package/src/components/font-appearance-control/index.js +6 -19
- package/src/components/font-family/README.md +0 -9
- package/src/components/font-family/index.js +6 -19
- package/src/components/font-family/stories/index.story.jsx +1 -2
- package/src/components/font-sizes/font-size-picker.js +0 -1
- package/src/components/global-styles/border-panel.js +0 -1
- package/src/components/global-styles/dimensions-panel.js +0 -3
- package/src/components/global-styles/state-control-badges.js +45 -6
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/global-styles/test/state-control-badges.js +65 -0
- package/src/components/global-styles/typography-panel.js +0 -7
- package/src/components/height-control/index.js +0 -2
- package/src/components/html-element-control/index.js +0 -1
- package/src/components/iframe/content.scss +3 -3
- package/src/components/image-editor/index.js +22 -0
- package/src/components/image-editor/zoom-dropdown.js +0 -1
- package/src/components/image-size-control/index.js +0 -4
- package/src/components/inner-content/index.js +119 -0
- package/src/components/inner-content/test/index.js +81 -0
- package/src/components/inserter/hooks/use-block-types-state.js +10 -2
- package/src/components/inserter/media-tab/hooks.js +114 -16
- package/src/components/inserter/media-tab/media-list.js +2 -0
- package/src/components/inserter/media-tab/media-panel.js +354 -19
- package/src/components/inserter/media-tab/media-preview.js +34 -17
- package/src/components/inserter/media-tab/media-tab.js +20 -2
- package/src/components/inserter/media-tab/test/hooks.js +267 -0
- package/src/components/inserter/media-tab/test/media-panel.js +127 -0
- package/src/components/inserter/mobile-tab-navigation.js +6 -1
- package/src/components/inserter/no-results.js +2 -2
- package/src/components/inserter/preview-panel.js +1 -0
- package/src/components/inserter/style.scss +115 -3
- package/src/components/inserter-list-item/index.js +8 -2
- package/src/components/inserter-list-item/style.scss +0 -15
- package/src/components/keyboard-shortcuts/index.js +28 -11
- package/src/components/letter-spacing-control/README.md +0 -8
- package/src/components/letter-spacing-control/index.js +5 -23
- package/src/components/letter-spacing-control/stories/index.story.jsx +0 -12
- package/src/components/line-height-control/README.md +0 -8
- package/src/components/line-height-control/index.js +6 -16
- package/src/components/line-height-control/stories/index.story.jsx +0 -1
- package/src/components/line-height-control/test/index.js +1 -7
- 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/link-picker/test/index.js +3 -1
- package/src/components/list-view/block-select-button.js +5 -1
- package/src/components/list-view/block.js +69 -23
- package/src/components/list-view/expander.js +5 -1
- package/src/components/list-view/style.scss +23 -5
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/components/media-placeholder/index.js +0 -1
- package/src/components/multi-selection-inspector/style.scss +1 -1
- package/src/components/observe-typing/index.js +9 -4
- package/src/components/preset-input-control/custom-value-controls.js +0 -2
- package/src/components/preset-input-control/index.js +0 -2
- package/src/components/resolution-tool/index.js +0 -1
- package/src/components/responsive-block-control/style.scss +1 -1
- package/src/components/responsive-block-control/test/index.js +1 -5
- 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 +94 -25
- package/src/components/skip-to-selected-block/style.scss +1 -1
- package/src/components/text-alignment-control/index.js +0 -1
- package/src/components/text-decoration-control/index.js +0 -1
- package/src/components/text-indent-control/index.js +7 -16
- package/src/components/text-transform-control/index.js +0 -1
- package/src/components/typewriter/index.js +228 -224
- package/src/components/use-block-commands/index.js +27 -17
- package/src/components/use-block-display-information/index.js +9 -13
- package/src/components/use-block-display-information/test/index.js +47 -9
- package/src/components/use-on-block-drop/index.js +4 -7
- package/src/components/writing-flow/index.js +15 -1
- package/src/components/writing-flow/use-arrow-nav.js +39 -12
- package/src/components/writing-flow/use-click-selection.js +2 -3
- 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.js +182 -0
- package/src/components/writing-flow/use-home-end.js +63 -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 +197 -38
- package/src/components/writing-flow/utils.js +83 -0
- package/src/components/writing-mode-control/index.js +0 -1
- package/src/hooks/background.js +7 -9
- 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-hooks.scss +15 -0
- package/src/hooks/elements.js +0 -1
- package/src/hooks/font-size.js +0 -1
- package/src/hooks/grid-visualizer.js +40 -36
- package/src/hooks/layout-child.js +19 -9
- package/src/hooks/layout.js +53 -35
- package/src/hooks/position.js +44 -23
- package/src/hooks/states.js +36 -13
- package/src/hooks/style.js +67 -17
- package/src/hooks/test/cross-origin-isolation.js +0 -4
- package/src/hooks/test/layout.js +75 -1
- 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 +0 -1
- package/src/layouts/constrained.js +56 -29
- package/src/layouts/flex.js +5 -4
- package/src/layouts/grid.js +59 -9
- package/src/layouts/test/constrained.js +91 -0
- package/src/layouts/test/grid.js +71 -0
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +43 -14
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +166 -9
- package/src/store/selectors.js +41 -0
- package/src/store/test/actions.js +1 -1
- package/src/store/test/private-selectors.js +533 -0
- package/src/store/test/reducer.js +11 -11
- package/src/store/test/selectors.js +133 -0
- package/src/style.scss +1 -0
- package/src/utils/block-bindings.ts +50 -0
- package/src/utils/dom.ts +33 -0
- package/src/utils/test/block-bindings.js +181 -0
- package/build/components/rich-text/input-event.cjs +0 -50
- 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/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/rich-text/input-event.js +0 -31
- package/src/components/rich-text/shortcut.js +0 -32
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
&.zoom-out-animation {
|
|
21
|
-
$scroll-top: var(--wp-block-editor-iframe-zoom-out-scroll-top,
|
|
22
|
-
$scroll-top-next: var(--wp-block-editor-iframe-zoom-out-scroll-top-next,
|
|
21
|
+
$scroll-top: var(--wp-block-editor-iframe-zoom-out-scroll-top, 0px);
|
|
22
|
+
$scroll-top-next: var(--wp-block-editor-iframe-zoom-out-scroll-top-next, 0px);
|
|
23
23
|
$overflow-behavior: var(--wp-block-editor-iframe-zoom-out-overflow-behavior, scroll);
|
|
24
24
|
|
|
25
25
|
position: fixed;
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
&.is-zoomed-out {
|
|
36
36
|
$scale: var(--wp-block-editor-iframe-zoom-out-scale, 1);
|
|
37
|
-
$frame-size: var(--wp-block-editor-iframe-zoom-out-frame-size,
|
|
37
|
+
$frame-size: var(--wp-block-editor-iframe-zoom-out-frame-size, 0px);
|
|
38
38
|
$inner-height: var(--wp-block-editor-iframe-zoom-out-inner-height);
|
|
39
39
|
$content-height: var(--wp-block-editor-iframe-zoom-out-content-height);
|
|
40
40
|
$scale-container-width: var(--wp-block-editor-iframe-zoom-out-scale-container-width);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { ToolbarGroup, ToolbarItem } from '@wordpress/components';
|
|
5
|
+
import deprecated from '@wordpress/deprecated';
|
|
5
6
|
import { ImageCropperProvider } from '@wordpress/image-cropper';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -15,6 +16,22 @@ import ZoomDropdown from './zoom-dropdown';
|
|
|
15
16
|
import RotationButton from './rotation-button';
|
|
16
17
|
import FormControls from './form-controls';
|
|
17
18
|
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated since 7.1. The Media Editor modal is now the default crop
|
|
21
|
+
* experience for core blocks. This component (exported as
|
|
22
|
+
* `__experimentalImageEditor`) will be removed in a future major release.
|
|
23
|
+
*
|
|
24
|
+
* @param {Object} root0 Component props.
|
|
25
|
+
* @param {number} root0.id Media attachment ID.
|
|
26
|
+
* @param {string} root0.url Media URL.
|
|
27
|
+
* @param {number} root0.width Rendered image width.
|
|
28
|
+
* @param {number} root0.height Rendered image height.
|
|
29
|
+
* @param {number} root0.naturalHeight Natural image height.
|
|
30
|
+
* @param {number} root0.naturalWidth Natural image width.
|
|
31
|
+
* @param {Function} root0.onSaveImage Callback to save image attributes.
|
|
32
|
+
* @param {Function} root0.onFinishEditing Callback when editing finishes.
|
|
33
|
+
* @param {Object} root0.borderProps Border classes and styles.
|
|
34
|
+
*/
|
|
18
35
|
export default function ImageEditor( {
|
|
19
36
|
id,
|
|
20
37
|
url,
|
|
@@ -26,6 +43,11 @@ export default function ImageEditor( {
|
|
|
26
43
|
onFinishEditing,
|
|
27
44
|
borderProps,
|
|
28
45
|
} ) {
|
|
46
|
+
deprecated( 'wp.blockEditor.__experimentalImageEditor', {
|
|
47
|
+
since: '7.1',
|
|
48
|
+
hint: 'The Media Editor modal is now the default crop experience for core blocks. This component will be removed in a future major release.',
|
|
49
|
+
} );
|
|
50
|
+
|
|
29
51
|
return (
|
|
30
52
|
<ImageCropperProvider>
|
|
31
53
|
<ImageEditingProvider
|
|
@@ -96,7 +96,6 @@ export default function ImageSizeControl( {
|
|
|
96
96
|
options={ imageSizeOptions }
|
|
97
97
|
onChange={ onChangeImage }
|
|
98
98
|
help={ imageSizeHelp }
|
|
99
|
-
size="__unstable-large"
|
|
100
99
|
/>
|
|
101
100
|
) }
|
|
102
101
|
{ isResizable && (
|
|
@@ -109,7 +108,6 @@ export default function ImageSizeControl( {
|
|
|
109
108
|
onChange={ ( value ) =>
|
|
110
109
|
updateDimension( 'width', value )
|
|
111
110
|
}
|
|
112
|
-
size="__unstable-large"
|
|
113
111
|
/>
|
|
114
112
|
<NumberControl
|
|
115
113
|
label={ __( 'Height' ) }
|
|
@@ -118,7 +116,6 @@ export default function ImageSizeControl( {
|
|
|
118
116
|
onChange={ ( value ) =>
|
|
119
117
|
updateDimension( 'height', value )
|
|
120
118
|
}
|
|
121
|
-
size="__unstable-large"
|
|
122
119
|
/>
|
|
123
120
|
</HStack>
|
|
124
121
|
<ToggleGroupControl
|
|
@@ -127,7 +124,6 @@ export default function ImageSizeControl( {
|
|
|
127
124
|
onChange={ handleUpdateDimensions }
|
|
128
125
|
value={ selectedValue }
|
|
129
126
|
isBlock
|
|
130
|
-
__next40pxDefaultSize
|
|
131
127
|
>
|
|
132
128
|
{ IMAGE_SIZE_PRESETS.map( ( scale ) => {
|
|
133
129
|
return (
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
createPortal,
|
|
6
|
+
useLayoutEffect,
|
|
7
|
+
useMemo,
|
|
8
|
+
useRef,
|
|
9
|
+
useState,
|
|
10
|
+
} from '@wordpress/element';
|
|
11
|
+
import { AsyncModeProvider, useSelect } from '@wordpress/data';
|
|
12
|
+
import { safeHTML } from '@wordpress/dom';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
import { store as blockEditorStore } from '../../store';
|
|
18
|
+
import BlockListBlock from '../block-list/block';
|
|
19
|
+
import { LayoutProvider } from '../block-list/layout';
|
|
20
|
+
|
|
21
|
+
const SLOT_TAG_NAME = 'wp-inner-block-slot';
|
|
22
|
+
|
|
23
|
+
// The static markup surrounding the inner blocks is arbitrary HTML the block
|
|
24
|
+
// editor doesn't manage, so it provides no layout context: no alignments are
|
|
25
|
+
// available to the inner blocks.
|
|
26
|
+
const LAYOUT = { type: 'default', alignments: [] };
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Renders the static HTML fragments of a block with the `innerContent`
|
|
30
|
+
* support, mounting each inner block at the position of its `null`
|
|
31
|
+
* placeholder within the static markup.
|
|
32
|
+
*
|
|
33
|
+
* Unlike `InnerBlocks`, the rendered blocks are not a contiguous list: they
|
|
34
|
+
* live at arbitrary positions inside markup the block editor doesn't manage.
|
|
35
|
+
* The static fragments are sanitized with `safeHTML` before being injected
|
|
36
|
+
* into the canvas — the same treatment block save content receives elsewhere
|
|
37
|
+
* in the editor — and the inner blocks are portalled into placeholder
|
|
38
|
+
* elements. Inner blocks are locked: they can be edited in place but not
|
|
39
|
+
* moved, removed, or added to.
|
|
40
|
+
*
|
|
41
|
+
* @param {Object} props Component props.
|
|
42
|
+
* @param {string} props.clientId Client ID of the block whose inner content
|
|
43
|
+
* should be rendered.
|
|
44
|
+
*/
|
|
45
|
+
export default function InnerContent( { clientId } ) {
|
|
46
|
+
const { innerContent, order, selectedClientIds } = useSelect(
|
|
47
|
+
( select ) => {
|
|
48
|
+
const { getBlock, getBlockOrder, getSelectedBlockClientIds } =
|
|
49
|
+
select( blockEditorStore );
|
|
50
|
+
return {
|
|
51
|
+
innerContent: getBlock( clientId )?.innerContent,
|
|
52
|
+
order: getBlockOrder( clientId ),
|
|
53
|
+
selectedClientIds: getSelectedBlockClientIds(),
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
[ clientId ]
|
|
57
|
+
);
|
|
58
|
+
const html = useMemo( () => {
|
|
59
|
+
let slotIndex = 0;
|
|
60
|
+
return ( innerContent ?? [] )
|
|
61
|
+
.map( ( item ) =>
|
|
62
|
+
item === null
|
|
63
|
+
? `<${ SLOT_TAG_NAME } data-slot-index="${ slotIndex++ }" style="display: contents"></${ SLOT_TAG_NAME }>`
|
|
64
|
+
: item
|
|
65
|
+
)
|
|
66
|
+
.join( '' );
|
|
67
|
+
}, [ innerContent ] );
|
|
68
|
+
|
|
69
|
+
const containerRef = useRef();
|
|
70
|
+
const [ slots, setSlots ] = useState( [] );
|
|
71
|
+
|
|
72
|
+
useLayoutEffect( () => {
|
|
73
|
+
const container = containerRef.current;
|
|
74
|
+
|
|
75
|
+
// Sanitize before injecting into the canvas: `safeHTML` removes
|
|
76
|
+
// `<script>` elements and inline event handlers, matching how block
|
|
77
|
+
// save content is rendered elsewhere in the editor.
|
|
78
|
+
container.innerHTML = safeHTML( html );
|
|
79
|
+
|
|
80
|
+
setSlots(
|
|
81
|
+
Array.from( container.querySelectorAll( SLOT_TAG_NAME ) ).sort(
|
|
82
|
+
( a, b ) =>
|
|
83
|
+
Number( a.dataset.slotIndex ) -
|
|
84
|
+
Number( b.dataset.slotIndex )
|
|
85
|
+
)
|
|
86
|
+
);
|
|
87
|
+
}, [ html ] );
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<LayoutProvider value={ LAYOUT }>
|
|
91
|
+
<div
|
|
92
|
+
ref={ containerRef }
|
|
93
|
+
className="block-editor-inner-content"
|
|
94
|
+
style={ { display: 'contents' } }
|
|
95
|
+
/>
|
|
96
|
+
{ order.map( ( childClientId, index ) =>
|
|
97
|
+
slots[ index ]
|
|
98
|
+
? createPortal(
|
|
99
|
+
// Render the selected block synchronously, as the block list does.
|
|
100
|
+
<AsyncModeProvider
|
|
101
|
+
value={
|
|
102
|
+
! selectedClientIds.includes(
|
|
103
|
+
childClientId
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
>
|
|
107
|
+
<BlockListBlock
|
|
108
|
+
rootClientId={ clientId }
|
|
109
|
+
clientId={ childClientId }
|
|
110
|
+
/>
|
|
111
|
+
</AsyncModeProvider>,
|
|
112
|
+
slots[ index ],
|
|
113
|
+
childClientId
|
|
114
|
+
)
|
|
115
|
+
: null
|
|
116
|
+
) }
|
|
117
|
+
</LayoutProvider>
|
|
118
|
+
);
|
|
119
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { render } from '@testing-library/react';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import {
|
|
10
|
+
createBlock,
|
|
11
|
+
registerBlockType,
|
|
12
|
+
unregisterBlockType,
|
|
13
|
+
} from '@wordpress/blocks';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Internal dependencies
|
|
17
|
+
*/
|
|
18
|
+
import InnerContent from '../';
|
|
19
|
+
import { BlockEditorProvider } from '../../provider';
|
|
20
|
+
|
|
21
|
+
const BLOCK_NAME = 'core/html';
|
|
22
|
+
|
|
23
|
+
// These tests inspect the raw injected DOM to verify the static markup is
|
|
24
|
+
// sanitized before being added to the editor canvas, so direct node access is
|
|
25
|
+
// intentional.
|
|
26
|
+
/* eslint-disable testing-library/no-node-access, testing-library/no-container, testing-library/render-result-naming-convention */
|
|
27
|
+
|
|
28
|
+
function renderWithInnerContent( innerContent ) {
|
|
29
|
+
const block = createBlock( BLOCK_NAME, {}, [], innerContent );
|
|
30
|
+
const { container } = render(
|
|
31
|
+
<BlockEditorProvider value={ [ block ] }>
|
|
32
|
+
<InnerContent clientId={ block.clientId } />
|
|
33
|
+
</BlockEditorProvider>
|
|
34
|
+
);
|
|
35
|
+
return container.querySelector( '.block-editor-inner-content' );
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
describe( 'InnerContent', () => {
|
|
39
|
+
beforeAll( () => {
|
|
40
|
+
registerBlockType( BLOCK_NAME, {
|
|
41
|
+
apiVersion: 3,
|
|
42
|
+
title: 'Custom HTML',
|
|
43
|
+
category: 'text',
|
|
44
|
+
save: () => null,
|
|
45
|
+
} );
|
|
46
|
+
} );
|
|
47
|
+
|
|
48
|
+
afterAll( () => {
|
|
49
|
+
unregisterBlockType( BLOCK_NAME );
|
|
50
|
+
} );
|
|
51
|
+
|
|
52
|
+
it( 'renders the static fragments into the canvas', () => {
|
|
53
|
+
const root = renderWithInnerContent( [
|
|
54
|
+
'<div class="banner"><h1>Static heading</h1></div>',
|
|
55
|
+
] );
|
|
56
|
+
|
|
57
|
+
expect( root.querySelector( 'h1' ) ).toHaveTextContent(
|
|
58
|
+
'Static heading'
|
|
59
|
+
);
|
|
60
|
+
} );
|
|
61
|
+
|
|
62
|
+
it( 'strips script elements from the static fragments', () => {
|
|
63
|
+
const root = renderWithInnerContent( [
|
|
64
|
+
'<div><script>window.__innerContentRan = true;</script>Safe</div>',
|
|
65
|
+
] );
|
|
66
|
+
|
|
67
|
+
expect( root.querySelector( 'script' ) ).toBeNull();
|
|
68
|
+
expect( root ).toHaveTextContent( 'Safe' );
|
|
69
|
+
} );
|
|
70
|
+
|
|
71
|
+
it( 'strips inline event handlers from the static fragments', () => {
|
|
72
|
+
const root = renderWithInnerContent( [
|
|
73
|
+
'<button onclick="alert(1)">Click</button>',
|
|
74
|
+
] );
|
|
75
|
+
|
|
76
|
+
expect( root.querySelector( '[onclick]' ) ).toBeNull();
|
|
77
|
+
expect( root.querySelector( 'button' ) ).toHaveTextContent( 'Click' );
|
|
78
|
+
} );
|
|
79
|
+
} );
|
|
80
|
+
|
|
81
|
+
/* eslint-enable testing-library/no-node-access, testing-library/no-container, testing-library/render-result-naming-convention */
|
|
@@ -54,7 +54,14 @@ const useBlockTypesState = ( rootClientId, onInsert, isQuick ) => {
|
|
|
54
54
|
|
|
55
55
|
const onSelectItem = useCallback(
|
|
56
56
|
(
|
|
57
|
-
{
|
|
57
|
+
{
|
|
58
|
+
name,
|
|
59
|
+
initialAttributes,
|
|
60
|
+
innerBlocks,
|
|
61
|
+
innerContent,
|
|
62
|
+
syncStatus,
|
|
63
|
+
content,
|
|
64
|
+
},
|
|
58
65
|
shouldFocusBlock
|
|
59
66
|
) => {
|
|
60
67
|
const destinationClientId = getClosestAllowedInsertionPoint(
|
|
@@ -85,7 +92,8 @@ const useBlockTypesState = ( rootClientId, onInsert, isQuick ) => {
|
|
|
85
92
|
: createBlock(
|
|
86
93
|
name,
|
|
87
94
|
initialAttributes,
|
|
88
|
-
createBlocksFromInnerBlocksTemplate( innerBlocks )
|
|
95
|
+
createBlocksFromInnerBlocksTemplate( innerBlocks ),
|
|
96
|
+
innerContent
|
|
89
97
|
);
|
|
90
98
|
onInsert(
|
|
91
99
|
insertedBlock,
|
|
@@ -12,17 +12,41 @@ import { unlock } from '../../../lock-unlock';
|
|
|
12
12
|
|
|
13
13
|
/** @typedef {import('../../../store/actions').InserterMediaRequest} InserterMediaRequest */
|
|
14
14
|
/** @typedef {import('../../../store/actions').InserterMediaItem} InserterMediaItem */
|
|
15
|
+
/** @typedef {import('../../../store/actions').InserterMediaResponse} InserterMediaResponse */
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Normalizes the result of a media category's `fetch`, which may be either a
|
|
19
|
+
* plain array of media items or an `InserterMediaResponse` carrying pagination
|
|
20
|
+
* totals. Sources that don't report totals leave them `undefined`, which is how
|
|
21
|
+
* the panel knows to hide the pager.
|
|
22
|
+
*
|
|
23
|
+
* @param {InserterMediaItem[]|InserterMediaResponse|undefined} result The raw `fetch` result.
|
|
24
|
+
* @return {{ mediaItems: InserterMediaItem[], totalItems: number|undefined, totalPages: number|undefined }} The normalized result.
|
|
25
|
+
*/
|
|
26
|
+
function normalizeFetchResult( result ) {
|
|
27
|
+
if ( Array.isArray( result ) ) {
|
|
28
|
+
return { mediaItems: result };
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
mediaItems: result?.mediaItems ?? [],
|
|
32
|
+
totalItems: result?.totalItems,
|
|
33
|
+
totalPages: result?.totalPages,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
15
36
|
|
|
16
37
|
/**
|
|
17
38
|
* Fetches media items based on the provided category.
|
|
18
39
|
* Each media category is responsible for providing a `fetch` function.
|
|
19
40
|
*
|
|
20
|
-
* @param {Object} category
|
|
21
|
-
* @param {InserterMediaRequest} query
|
|
22
|
-
* @
|
|
41
|
+
* @param {Object} category The media category to fetch results for.
|
|
42
|
+
* @param {InserterMediaRequest} query The query args to use for the request.
|
|
43
|
+
* @param {any} refreshKey Optional value that, when changed, forces
|
|
44
|
+
* a refetch (e.g. after attaching/detaching).
|
|
45
|
+
* @return {{ mediaList: InserterMediaItem[], isLoading: boolean, totalItems: number|undefined, totalPages: number|undefined }} The media results and paging totals.
|
|
23
46
|
*/
|
|
24
|
-
export function useMediaResults( category, query = {} ) {
|
|
47
|
+
export function useMediaResults( category, query = {}, refreshKey ) {
|
|
25
48
|
const [ mediaList, setMediaList ] = useState();
|
|
49
|
+
const [ totals, setTotals ] = useState( {} );
|
|
26
50
|
const [ isLoading, setIsLoading ] = useState( false );
|
|
27
51
|
// We need to keep track of the last request made because
|
|
28
52
|
// multiple request can be fired without knowing the order
|
|
@@ -32,23 +56,93 @@ export function useMediaResults( category, query = {} ) {
|
|
|
32
56
|
// requests, but we don't for now as it involves adding support
|
|
33
57
|
// for this to `core-data` package.
|
|
34
58
|
const lastRequestRef = useRef();
|
|
59
|
+
const lastQueryKeyRef = useRef();
|
|
60
|
+
const lastFetchRef = useRef();
|
|
61
|
+
const lastSourceRef = useRef();
|
|
35
62
|
useEffect( () => {
|
|
36
63
|
( async () => {
|
|
37
64
|
const key = JSON.stringify( {
|
|
38
65
|
category: category.name,
|
|
39
66
|
...query,
|
|
40
67
|
} );
|
|
41
|
-
|
|
68
|
+
// Unique token so identical-query refreshes can't apply stale results.
|
|
69
|
+
const request = {};
|
|
70
|
+
lastRequestRef.current = request;
|
|
42
71
|
setIsLoading( true );
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
72
|
+
// Only clear the previous results when the category source or query
|
|
73
|
+
// changes, not on a manual refresh (a `refreshKey` bump after
|
|
74
|
+
// attach/detach). Keeping them lets the panel dim the existing grid
|
|
75
|
+
// during the refetch instead of blanking it.
|
|
76
|
+
if (
|
|
77
|
+
lastQueryKeyRef.current !== key ||
|
|
78
|
+
lastFetchRef.current !== category.fetch
|
|
79
|
+
) {
|
|
80
|
+
setMediaList( [] );
|
|
81
|
+
}
|
|
82
|
+
// Reset paging totals only when the source (category or its `fetch`)
|
|
83
|
+
// changes, so switching to an array-returning source doesn't leave a
|
|
84
|
+
// stale pager showing. A mere page change keeps the previous totals,
|
|
85
|
+
// which is what holds the footer mounted while the next page loads.
|
|
86
|
+
if (
|
|
87
|
+
lastSourceRef.current !== category.name ||
|
|
88
|
+
lastFetchRef.current !== category.fetch
|
|
89
|
+
) {
|
|
90
|
+
setTotals( {} );
|
|
91
|
+
}
|
|
92
|
+
lastQueryKeyRef.current = key;
|
|
93
|
+
lastFetchRef.current = category.fetch;
|
|
94
|
+
lastSourceRef.current = category.name;
|
|
95
|
+
// Omit the default first page so sources that forward the query to a
|
|
96
|
+
// strict external API don't receive an unexpected `page` arg.
|
|
97
|
+
const { page, ...queryWithoutPage } = query;
|
|
98
|
+
const fetchQuery = page > 1 ? query : queryWithoutPage;
|
|
99
|
+
const { mediaItems, totalItems, totalPages } = normalizeFetchResult(
|
|
100
|
+
await category.fetch?.( fetchQuery )
|
|
101
|
+
);
|
|
102
|
+
if ( request === lastRequestRef.current ) {
|
|
103
|
+
// Set together so the grid and the pager never disagree.
|
|
104
|
+
setMediaList( mediaItems );
|
|
105
|
+
setTotals( { totalItems, totalPages } );
|
|
47
106
|
setIsLoading( false );
|
|
48
107
|
}
|
|
49
108
|
} )();
|
|
50
|
-
}, [
|
|
51
|
-
|
|
109
|
+
}, [
|
|
110
|
+
category.name,
|
|
111
|
+
category.fetch,
|
|
112
|
+
...Object.values( query ),
|
|
113
|
+
refreshKey,
|
|
114
|
+
] );
|
|
115
|
+
return {
|
|
116
|
+
mediaList,
|
|
117
|
+
isLoading,
|
|
118
|
+
totalItems: totals.totalItems,
|
|
119
|
+
totalPages: totals.totalPages,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Delays surfacing a loading state until a request has been in flight for
|
|
125
|
+
* `delay` ms, so brief operations (e.g. a quick attach/detach refetch) don't
|
|
126
|
+
* flash a loading indicator at all. Mirrors the DataViews `useDelayedLoading`
|
|
127
|
+
* hook.
|
|
128
|
+
*
|
|
129
|
+
* @param {boolean} isLoading Whether a request is currently in flight.
|
|
130
|
+
* @param {number} delay Milliseconds to wait before showing the loader.
|
|
131
|
+
* @return {boolean} Whether the loading state should be shown yet.
|
|
132
|
+
*/
|
|
133
|
+
export function useDelayedLoading( isLoading, delay = 400 ) {
|
|
134
|
+
const [ showLoading, setShowLoading ] = useState( false );
|
|
135
|
+
useEffect( () => {
|
|
136
|
+
if ( ! isLoading ) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
const timeout = setTimeout( () => setShowLoading( true ), delay );
|
|
140
|
+
return () => {
|
|
141
|
+
clearTimeout( timeout );
|
|
142
|
+
setShowLoading( false );
|
|
143
|
+
};
|
|
144
|
+
}, [ isLoading, delay ] );
|
|
145
|
+
return showLoading;
|
|
52
146
|
}
|
|
53
147
|
|
|
54
148
|
export function useMediaCategories( rootClientId ) {
|
|
@@ -97,9 +191,10 @@ export function useMediaCategories( rootClientId ) {
|
|
|
97
191
|
}
|
|
98
192
|
let results = [];
|
|
99
193
|
try {
|
|
100
|
-
|
|
101
|
-
per_page: 1
|
|
102
|
-
|
|
194
|
+
const { mediaItems } = normalizeFetchResult(
|
|
195
|
+
await category.fetch( { per_page: 1 } )
|
|
196
|
+
);
|
|
197
|
+
results = mediaItems;
|
|
103
198
|
} catch {
|
|
104
199
|
// If the request fails, we shallow the error and just don't show
|
|
105
200
|
// the category, in order to not break the media tab.
|
|
@@ -110,7 +205,9 @@ export function useMediaCategories( rootClientId ) {
|
|
|
110
205
|
);
|
|
111
206
|
// We need to filter out categories that don't have any media items or
|
|
112
207
|
// whose corresponding block type is not allowed to be inserted, based
|
|
113
|
-
// on the category's `mediaType`.
|
|
208
|
+
// on the category's `mediaType`. A category that provides an
|
|
209
|
+
// `emptyMessage` stays in the list even when empty, so it can show
|
|
210
|
+
// that message (e.g. Attachments, to expose its "Attach" action).
|
|
114
211
|
const canInsertMediaType = {
|
|
115
212
|
image: canInsertImage,
|
|
116
213
|
video: canInsertVideo,
|
|
@@ -119,7 +216,8 @@ export function useMediaCategories( rootClientId ) {
|
|
|
119
216
|
inserterMediaCategories.forEach( ( category ) => {
|
|
120
217
|
if (
|
|
121
218
|
canInsertMediaType[ category.mediaType ] &&
|
|
122
|
-
categoriesHaveMedia.get( category.name )
|
|
219
|
+
( categoriesHaveMedia.get( category.name ) ||
|
|
220
|
+
category.emptyMessage )
|
|
123
221
|
) {
|
|
124
222
|
_categories.push( category );
|
|
125
223
|
}
|
|
@@ -13,6 +13,7 @@ function MediaList( {
|
|
|
13
13
|
mediaList,
|
|
14
14
|
category,
|
|
15
15
|
onClick,
|
|
16
|
+
onDetach,
|
|
16
17
|
label = __( 'Media List' ),
|
|
17
18
|
} ) {
|
|
18
19
|
return (
|
|
@@ -27,6 +28,7 @@ function MediaList( {
|
|
|
27
28
|
media={ media }
|
|
28
29
|
category={ category }
|
|
29
30
|
onClick={ onClick }
|
|
31
|
+
onDetach={ onDetach }
|
|
30
32
|
/>
|
|
31
33
|
) ) }
|
|
32
34
|
</Composite>
|