@wordpress/block-editor 15.22.1 → 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 +35 -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 +18 -36
- 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/use-resize-canvas/index.cjs +16 -53
- package/build/components/use-resize-canvas/index.cjs.map +3 -3
- 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 +32 -23
- 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 -2
- 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-actions.cjs +16 -0
- package/build/store/private-actions.cjs.map +2 -2
- package/build/store/private-keys.cjs +3 -3
- package/build/store/private-keys.cjs.map +2 -2
- package/build/store/private-selectors.cjs +109 -12
- package/build/store/private-selectors.cjs.map +3 -3
- package/build/store/reducer.cjs +19 -3
- package/build/store/reducer.cjs.map +2 -2
- 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 +18 -36
- 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/use-resize-canvas/index.mjs +6 -53
- package/build-module/components/use-resize-canvas/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 +32 -23
- 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 -3
- 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-actions.mjs +14 -0
- package/build-module/store/private-actions.mjs.map +2 -2
- package/build-module/store/private-keys.mjs +2 -2
- package/build-module/store/private-keys.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +106 -12
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +17 -3
- package/build-module/store/reducer.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 +25 -44
- 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/use-resize-canvas/index.js +10 -71
- 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 +55 -28
- 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 -2
- package/src/store/actions.js +43 -14
- package/src/store/private-actions.js +31 -0
- package/src/store/private-keys.js +1 -1
- package/src/store/private-selectors.js +209 -16
- package/src/store/reducer.js +37 -2
- package/src/store/selectors.js +41 -0
- package/src/store/test/actions.js +1 -1
- package/src/store/test/private-selectors.js +547 -10
- package/src/store/test/reducer.js +41 -13
- 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
- package/src/components/use-resize-canvas/README.md +0 -37
package/src/store/actions.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import {
|
|
6
6
|
cloneBlock,
|
|
7
|
-
|
|
7
|
+
cloneSanitizedBlock,
|
|
8
8
|
createBlock,
|
|
9
9
|
doBlocksMatchTemplate,
|
|
10
10
|
getBlockType,
|
|
@@ -1755,7 +1755,7 @@ export const duplicateBlocks =
|
|
|
1755
1755
|
clientIdsArray[ clientIdsArray.length - 1 ]
|
|
1756
1756
|
);
|
|
1757
1757
|
const clonedBlocks = blocks.map( ( block ) =>
|
|
1758
|
-
|
|
1758
|
+
cloneSanitizedBlock( block )
|
|
1759
1759
|
);
|
|
1760
1760
|
dispatch.insertBlocks(
|
|
1761
1761
|
clonedBlocks,
|
|
@@ -1935,6 +1935,7 @@ export function __unstableSetTemporarilyEditingAsBlocks( clientId ) {
|
|
|
1935
1935
|
*
|
|
1936
1936
|
* @typedef {Object} InserterMediaRequest
|
|
1937
1937
|
* @property {number} per_page How many items to fetch per page.
|
|
1938
|
+
* @property {number} [page] Which page of results to fetch. Defaults to the first page.
|
|
1938
1939
|
* @property {string} search The search term to use for filtering the results.
|
|
1939
1940
|
*/
|
|
1940
1941
|
|
|
@@ -1953,6 +1954,17 @@ export function __unstableSetTemporarilyEditingAsBlocks( clientId ) {
|
|
|
1953
1954
|
* @property {string} [caption] The caption of the media item.
|
|
1954
1955
|
*/
|
|
1955
1956
|
|
|
1957
|
+
/**
|
|
1958
|
+
* Interface for paginated inserter media responses. A media category's `fetch`
|
|
1959
|
+
* may return this instead of a plain array to opt into pagination, in which case
|
|
1960
|
+
* the media tab renders paging controls for the category.
|
|
1961
|
+
*
|
|
1962
|
+
* @typedef {Object} InserterMediaResponse
|
|
1963
|
+
* @property {InserterMediaItem[]} mediaItems The media items for the requested page.
|
|
1964
|
+
* @property {number} totalItems The total number of items across all pages.
|
|
1965
|
+
* @property {number} totalPages The total number of pages available.
|
|
1966
|
+
*/
|
|
1967
|
+
|
|
1956
1968
|
/**
|
|
1957
1969
|
* Registers a new inserter media category. Once registered, the media category is
|
|
1958
1970
|
* available in the inserter's media tab.
|
|
@@ -1966,6 +1978,7 @@ export function __unstableSetTemporarilyEditingAsBlocks( clientId ) {
|
|
|
1966
1978
|
* _Properties_
|
|
1967
1979
|
*
|
|
1968
1980
|
* - _per_page_ `number`: How many items to fetch per page.
|
|
1981
|
+
* - _page_ `[number]`: Which page of results to fetch. Defaults to the first page.
|
|
1969
1982
|
* - _search_ `string`: The search term to use for filtering the results.
|
|
1970
1983
|
*
|
|
1971
1984
|
* _Type Definition_
|
|
@@ -1984,7 +1997,19 @@ export function __unstableSetTemporarilyEditingAsBlocks( clientId ) {
|
|
|
1984
1997
|
* - _alt_ `[string]`: The alt text of the media item.
|
|
1985
1998
|
* - _caption_ `[string]`: The caption of the media item.
|
|
1986
1999
|
*
|
|
1987
|
-
*
|
|
2000
|
+
* _Type Definition_
|
|
2001
|
+
*
|
|
2002
|
+
* - _InserterMediaResponse_ `Object`: Interface for paginated inserter media responses. A media
|
|
2003
|
+
* category's `fetch` may return this instead of a plain array to opt into pagination, in which
|
|
2004
|
+
* case the media tab renders paging controls for the category.
|
|
2005
|
+
*
|
|
2006
|
+
* _Properties_
|
|
2007
|
+
*
|
|
2008
|
+
* - _mediaItems_ `InserterMediaItem[]`: The media items for the requested page.
|
|
2009
|
+
* - _totalItems_ `number`: The total number of items across all pages.
|
|
2010
|
+
* - _totalPages_ `number`: The total number of pages available.
|
|
2011
|
+
*
|
|
2012
|
+
* @param {InserterMediaCategory} category The inserter media category to register.
|
|
1988
2013
|
*
|
|
1989
2014
|
* @example
|
|
1990
2015
|
* ```js
|
|
@@ -2041,16 +2066,20 @@ export function __unstableSetTemporarilyEditingAsBlocks( clientId ) {
|
|
|
2041
2066
|
* ```
|
|
2042
2067
|
*
|
|
2043
2068
|
* @typedef {Object} InserterMediaCategory Interface for inserter media category.
|
|
2044
|
-
* @property {string}
|
|
2045
|
-
* @property {Object}
|
|
2046
|
-
* @property {string}
|
|
2047
|
-
* @property {string}
|
|
2048
|
-
* @property {('image'|'audio'|'video')}
|
|
2049
|
-
* @property {(InserterMediaRequest) => Promise<InserterMediaItem[]>} fetch The function to fetch media items for the category.
|
|
2050
|
-
*
|
|
2051
|
-
*
|
|
2052
|
-
* @property {
|
|
2053
|
-
*
|
|
2069
|
+
* @property {string} name The name of the media category, that should be unique among all media categories.
|
|
2070
|
+
* @property {Object} labels Labels for the media category.
|
|
2071
|
+
* @property {string} labels.name General name of the media category. It's used in the inserter media items list.
|
|
2072
|
+
* @property {string} [labels.search_items='Search'] Label for searching items. Default is ‘Search Posts’ / ‘Search Pages’.
|
|
2073
|
+
* @property {('image'|'audio'|'video')} mediaType The media type of the media category.
|
|
2074
|
+
* @property {(InserterMediaRequest) => Promise<InserterMediaItem[]|InserterMediaResponse>} fetch The function to fetch media items for the category. Returning an
|
|
2075
|
+
* `InserterMediaResponse` instead of a plain array opts the category into
|
|
2076
|
+
* pagination.
|
|
2077
|
+
* @property {(InserterMediaItem) => string} [getReportUrl] If the media category supports reporting media items, this function should return
|
|
2078
|
+
* the report url for the media item. It accepts the `InserterMediaItem` as an argument.
|
|
2079
|
+
* @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true.
|
|
2080
|
+
* This is used to avoid making a request to the external resource when checking
|
|
2081
|
+
* whether the category has any media items to display in the media tab.
|
|
2082
|
+
* @property {string} [emptyMessage] Optional message shown in place of the generic "No results found." when the source has no items and there is no active search. Providing it also keeps the source in the tab list while empty, so the message stays reachable.
|
|
2054
2083
|
*/
|
|
2055
2084
|
export const registerInserterMediaCategory =
|
|
2056
2085
|
( category ) =>
|
|
@@ -2079,7 +2108,7 @@ export const registerInserterMediaCategory =
|
|
|
2079
2108
|
}
|
|
2080
2109
|
if ( ! category.fetch || typeof category.fetch !== 'function' ) {
|
|
2081
2110
|
console.error(
|
|
2082
|
-
'Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise<InserterMediaItem[]>`.'
|
|
2111
|
+
'Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise<InserterMediaItem[]|InserterMediaResponse>`.'
|
|
2083
2112
|
);
|
|
2084
2113
|
return;
|
|
2085
2114
|
}
|
|
@@ -558,3 +558,34 @@ export function setSelectedBlockStyleStateCanvasPreview( clientId, value ) {
|
|
|
558
558
|
value,
|
|
559
559
|
};
|
|
560
560
|
}
|
|
561
|
+
|
|
562
|
+
/**
|
|
563
|
+
* Sets the globally selected viewport style state. When set to a value other
|
|
564
|
+
* than 'default', block style edits in the inspector apply to that viewport.
|
|
565
|
+
* Driven by the editor's device preview while Responsive editing is enabled.
|
|
566
|
+
*
|
|
567
|
+
* @param {string} viewport The selected viewport state (e.g. 'default', 'tablet', 'mobile').
|
|
568
|
+
*
|
|
569
|
+
* @return {Object} Action object.
|
|
570
|
+
*/
|
|
571
|
+
export function setStyleStateViewport( viewport ) {
|
|
572
|
+
return {
|
|
573
|
+
type: 'SET_STYLE_STATE_VIEWPORT',
|
|
574
|
+
viewport,
|
|
575
|
+
};
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* Sets whether Responsive editing is enabled. When enabled, the device preview
|
|
580
|
+
* also drives which viewport block style edits are applied to. Session-only.
|
|
581
|
+
*
|
|
582
|
+
* @param {boolean} enabled Whether Responsive editing is enabled.
|
|
583
|
+
*
|
|
584
|
+
* @return {Object} Action object.
|
|
585
|
+
*/
|
|
586
|
+
export function setResponsiveEditing( enabled ) {
|
|
587
|
+
return {
|
|
588
|
+
type: 'SET_RESPONSIVE_EDITING',
|
|
589
|
+
enabled,
|
|
590
|
+
};
|
|
591
|
+
}
|
|
@@ -10,10 +10,10 @@ export const mediaEditKey = Symbol( 'mediaEditKey' );
|
|
|
10
10
|
export const getMediaSelectKey = Symbol( 'getMediaSelect' );
|
|
11
11
|
export const isIsolatedEditorKey = Symbol( 'isIsolatedEditor' );
|
|
12
12
|
export const deviceTypeKey = Symbol( 'deviceTypeKey' );
|
|
13
|
-
export const onViewportStateChangeKey = Symbol( 'onViewportStateChangeKey' );
|
|
14
13
|
export const isNavigationOverlayContextKey = Symbol(
|
|
15
14
|
'isNavigationOverlayContext'
|
|
16
15
|
);
|
|
17
16
|
export const isNavigationPostEditorKey = Symbol( 'isNavigationPostEditor' );
|
|
18
17
|
export const mediaUploadOnSuccessKey = Symbol( 'mediaUploadOnSuccess' );
|
|
18
|
+
export const mediaSideloadFromUrlKey = Symbol( 'mediaSideloadFromUrl' );
|
|
19
19
|
export const openMediaEditorModalKey = Symbol( 'openMediaEditorModal' );
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
hasBlockSupport,
|
|
7
7
|
privateApis as blocksPrivateApis,
|
|
8
8
|
} from '@wordpress/blocks';
|
|
9
|
+
import { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Internal dependencies
|
|
@@ -42,9 +43,22 @@ import {
|
|
|
42
43
|
import { BLOCK_VISIBILITY_VIEWPORTS } from '../components/block-visibility/constants';
|
|
43
44
|
|
|
44
45
|
const { isContentBlock } = unlock( blocksPrivateApis );
|
|
46
|
+
const { getViewportBreakpoints } = unlock( globalStylesEnginePrivateApis );
|
|
45
47
|
|
|
46
48
|
export { getBlockSettings } from './get-block-settings';
|
|
47
49
|
|
|
50
|
+
function isViewportAvailable( state, viewport ) {
|
|
51
|
+
if ( viewport === BLOCK_VISIBILITY_VIEWPORTS.desktop.key ) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
getViewportBreakpoints(
|
|
57
|
+
getSettings( state )?.__experimentalFeatures?.viewport
|
|
58
|
+
)[ viewport ] !== undefined
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
48
62
|
/**
|
|
49
63
|
* Returns true if the block interface is hidden, or false otherwise.
|
|
50
64
|
*
|
|
@@ -159,16 +173,31 @@ export const getClientIdsTree = createSelector(
|
|
|
159
173
|
( state ) => [ state.blocks.order ]
|
|
160
174
|
);
|
|
161
175
|
|
|
162
|
-
|
|
176
|
+
/**
|
|
177
|
+
* Returns a tree of block objects filtered by a block inclusion callback.
|
|
178
|
+
* Excluded blocks are replaced by any included descendants.
|
|
179
|
+
*
|
|
180
|
+
* @param {Object} state Global application state.
|
|
181
|
+
* @param {?string} rootClientId Optional root client ID of block list.
|
|
182
|
+
* @param {Function} includesBlock Callback that returns whether to include a block.
|
|
183
|
+
*
|
|
184
|
+
* @return {Object[]} Tree of block objects with only clientID and innerBlocks set.
|
|
185
|
+
*/
|
|
186
|
+
function getFilteredClientIdsTreeUnmemoized(
|
|
187
|
+
state,
|
|
188
|
+
rootClientId,
|
|
189
|
+
includesBlock
|
|
190
|
+
) {
|
|
163
191
|
const blockOrder = getBlockOrder( state, rootClientId );
|
|
164
192
|
const result = [];
|
|
165
193
|
|
|
166
194
|
for ( const clientId of blockOrder ) {
|
|
167
|
-
const innerBlocks =
|
|
195
|
+
const innerBlocks = getFilteredClientIdsTreeUnmemoized(
|
|
168
196
|
state,
|
|
169
|
-
clientId
|
|
197
|
+
clientId,
|
|
198
|
+
includesBlock
|
|
170
199
|
);
|
|
171
|
-
if (
|
|
200
|
+
if ( includesBlock( state, clientId ) ) {
|
|
172
201
|
result.push( { clientId, innerBlocks } );
|
|
173
202
|
} else {
|
|
174
203
|
result.push( ...innerBlocks );
|
|
@@ -178,6 +207,100 @@ function getEnabledClientIdsTreeUnmemoized( state, rootClientId ) {
|
|
|
178
207
|
return result;
|
|
179
208
|
}
|
|
180
209
|
|
|
210
|
+
function getEnabledClientIdsTreeUnmemoized( state, rootClientId ) {
|
|
211
|
+
return getFilteredClientIdsTreeUnmemoized(
|
|
212
|
+
state,
|
|
213
|
+
rootClientId,
|
|
214
|
+
( _state, clientId ) =>
|
|
215
|
+
getBlockEditingMode( _state, clientId ) !== 'disabled'
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Returns whether the nearest explicit block editing mode in the block's
|
|
221
|
+
* ancestry is disabled.
|
|
222
|
+
*
|
|
223
|
+
* @param {Object} state Global application state.
|
|
224
|
+
* @param {string} clientId The block client ID.
|
|
225
|
+
*
|
|
226
|
+
* @return {boolean} Whether an explicit parent block editing mode disables this
|
|
227
|
+
* block.
|
|
228
|
+
*/
|
|
229
|
+
function hasExplicitDisabledParent( state, clientId ) {
|
|
230
|
+
let parent = state.blocks.parents.get( clientId );
|
|
231
|
+
|
|
232
|
+
while ( parent !== undefined ) {
|
|
233
|
+
const parentBlockEditingMode =
|
|
234
|
+
state.blocks.blockEditingModes.get( parent );
|
|
235
|
+
|
|
236
|
+
if ( parentBlockEditingMode ) {
|
|
237
|
+
return parentBlockEditingMode === 'disabled';
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
parent = state.blocks.parents.get( parent );
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Returns the block tree displayed by List View.
|
|
248
|
+
*
|
|
249
|
+
* @param {Object} state Global application state.
|
|
250
|
+
* @param {?string} rootClientId Optional root client ID of block list.
|
|
251
|
+
*
|
|
252
|
+
* @return {Object[]} Tree of block objects with only clientID and innerBlocks set.
|
|
253
|
+
*/
|
|
254
|
+
function getListViewClientIdsTreeUnmemoized( state, rootClientId ) {
|
|
255
|
+
return getFilteredClientIdsTreeUnmemoized(
|
|
256
|
+
state,
|
|
257
|
+
rootClientId,
|
|
258
|
+
( _state, clientId ) => {
|
|
259
|
+
// Non-disabled blocks are always shown in List view.
|
|
260
|
+
if ( getBlockEditingMode( _state, clientId ) !== 'disabled' ) {
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
const explicitBlockEditingMode =
|
|
265
|
+
_state.blocks.blockEditingModes.get( clientId );
|
|
266
|
+
if ( explicitBlockEditingMode ) {
|
|
267
|
+
return explicitBlockEditingMode !== 'disabled';
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
if ( hasExplicitDisabledParent( _state, clientId ) ) {
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// When a contentOnly section is being edited, there's some special handling.
|
|
275
|
+
if ( _state.editedContentOnlySection ) {
|
|
276
|
+
// Blocks within the edited content only section generally have their block
|
|
277
|
+
// editing mode flipped from disabled to default for editing, any disabled
|
|
278
|
+
// blocks can still be excluded.
|
|
279
|
+
if ( isWithinEditedContentOnlySection( _state, clientId ) ) {
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// Blocks that are not in another section but are disabled are shown.
|
|
284
|
+
// These are blocks that would usually be visible.
|
|
285
|
+
const parentSectionBlock = getParentSectionBlock(
|
|
286
|
+
_state,
|
|
287
|
+
clientId
|
|
288
|
+
);
|
|
289
|
+
if ( ! parentSectionBlock ) {
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// If a block is in another section, then it is only visible if its a content block.
|
|
294
|
+
if ( isContentBlock( getBlockName( _state, clientId ) ) ) {
|
|
295
|
+
return true;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
|
|
181
304
|
/**
|
|
182
305
|
* Returns a tree of block objects with only clientID and innerBlocks set.
|
|
183
306
|
* Blocks with a 'disabled' editing mode are not included.
|
|
@@ -195,6 +318,34 @@ export const getEnabledClientIdsTree = createRegistrySelector( () =>
|
|
|
195
318
|
] )
|
|
196
319
|
);
|
|
197
320
|
|
|
321
|
+
/**
|
|
322
|
+
* Returns the block tree displayed by List View.
|
|
323
|
+
*
|
|
324
|
+
* Blocks with a 'disabled' editing mode are usually not included. When a
|
|
325
|
+
* content-only section is being edited, List View keeps visible outside-section
|
|
326
|
+
* context blocks in the tree so they can be faded. Blocks that were already
|
|
327
|
+
* hidden because they are non-content blocks inside another content-only section
|
|
328
|
+
* remain hidden.
|
|
329
|
+
*
|
|
330
|
+
* @param {Object} state Global application state.
|
|
331
|
+
* @param {?string} rootClientId Optional root client ID of block list.
|
|
332
|
+
*
|
|
333
|
+
* @return {Object[]} Tree of block objects with only clientID and innerBlocks set.
|
|
334
|
+
*/
|
|
335
|
+
export const getListViewClientIdsTree = createRegistrySelector( () =>
|
|
336
|
+
createSelector( getListViewClientIdsTreeUnmemoized, ( state ) => [
|
|
337
|
+
state.blocks.order,
|
|
338
|
+
state.derivedBlockEditingModes,
|
|
339
|
+
state.blocks.blockEditingModes,
|
|
340
|
+
state.blocks.parents,
|
|
341
|
+
state.blocks.byClientId,
|
|
342
|
+
state.blocks.attributes,
|
|
343
|
+
state.blockListSettings,
|
|
344
|
+
state.editedContentOnlySection,
|
|
345
|
+
state.settings,
|
|
346
|
+
] )
|
|
347
|
+
);
|
|
348
|
+
|
|
198
349
|
/**
|
|
199
350
|
* Returns a list of a given block's ancestors, from top to bottom. Blocks with
|
|
200
351
|
* a 'disabled' editing mode are excluded.
|
|
@@ -788,12 +939,12 @@ export function getInsertionPoint( state ) {
|
|
|
788
939
|
* Returns true if the block is hidden anywhere, or false otherwise.
|
|
789
940
|
*
|
|
790
941
|
* This selector checks whether a block has visibility metadata set that would
|
|
791
|
-
* hide it at any viewport or everywhere. It's useful for flagging
|
|
792
|
-
* have visibility restrictions.
|
|
942
|
+
* hide it at any available viewport or everywhere. It's useful for flagging
|
|
943
|
+
* blocks that have active visibility restrictions.
|
|
793
944
|
*
|
|
794
945
|
* A block is considered hidden anywhere if:
|
|
795
946
|
* - blockVisibility is false (hidden everywhere)
|
|
796
|
-
* - blockVisibility.viewport has any viewport set to false (hidden at specific screen sizes)
|
|
947
|
+
* - blockVisibility.viewport has any available viewport set to false (hidden at specific screen sizes)
|
|
797
948
|
*
|
|
798
949
|
* @param {Object} state Global application state.
|
|
799
950
|
* @param {string} clientId Client ID of the block.
|
|
@@ -819,6 +970,7 @@ export const isBlockHiddenAnywhere = ( state, clientId ) => {
|
|
|
819
970
|
// Check if the block is hidden at any viewport.
|
|
820
971
|
return Object.values( BLOCK_VISIBILITY_VIEWPORTS ).some(
|
|
821
972
|
( viewport ) =>
|
|
973
|
+
isViewportAvailable( state, viewport.key ) &&
|
|
822
974
|
blockVisibility?.viewport?.[ viewport.key ] === false
|
|
823
975
|
);
|
|
824
976
|
}
|
|
@@ -873,7 +1025,7 @@ export const isBlockParentHiddenEverywhere = ( state, clientId ) => {
|
|
|
873
1025
|
*
|
|
874
1026
|
* A block is considered hidden at a viewport if:
|
|
875
1027
|
* - blockVisibility is false (hidden everywhere)
|
|
876
|
-
* - blockVisibility is an object with
|
|
1028
|
+
* - blockVisibility is an object with an available specified viewport set to false
|
|
877
1029
|
*
|
|
878
1030
|
* @param {Object} state Global application state.
|
|
879
1031
|
* @param {string} clientId Client ID of the block.
|
|
@@ -894,7 +1046,12 @@ export const isBlockHiddenAtViewport = ( state, clientId, viewport ) => {
|
|
|
894
1046
|
blockVisibilityViewport !== null &&
|
|
895
1047
|
typeof viewport === 'string'
|
|
896
1048
|
) {
|
|
897
|
-
|
|
1049
|
+
const viewportKey = viewport.toLowerCase();
|
|
1050
|
+
|
|
1051
|
+
return (
|
|
1052
|
+
isViewportAvailable( state, viewportKey ) &&
|
|
1053
|
+
blockVisibilityViewport?.[ viewportKey ] === false
|
|
1054
|
+
);
|
|
898
1055
|
}
|
|
899
1056
|
return false;
|
|
900
1057
|
};
|
|
@@ -1152,6 +1309,30 @@ const DEFAULT_BLOCK_STYLE_STATE = {
|
|
|
1152
1309
|
pseudo: 'default',
|
|
1153
1310
|
};
|
|
1154
1311
|
|
|
1312
|
+
/**
|
|
1313
|
+
* Returns the globally selected viewport style state. When set to a value other
|
|
1314
|
+
* than 'default', block style edits in the inspector apply to that viewport.
|
|
1315
|
+
*
|
|
1316
|
+
* @param {Object} state Global application state.
|
|
1317
|
+
*
|
|
1318
|
+
* @return {string} The selected viewport style state.
|
|
1319
|
+
*/
|
|
1320
|
+
export function getStyleStateViewport( state ) {
|
|
1321
|
+
return state.styleStateViewport ?? DEFAULT_BLOCK_STYLE_STATE.viewport;
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
/**
|
|
1325
|
+
* Returns whether Responsive editing is enabled. When enabled, the device
|
|
1326
|
+
* preview also drives which viewport block style edits are applied to.
|
|
1327
|
+
*
|
|
1328
|
+
* @param {Object} state Global application state.
|
|
1329
|
+
*
|
|
1330
|
+
* @return {boolean} Whether Responsive editing is enabled.
|
|
1331
|
+
*/
|
|
1332
|
+
export function isResponsiveEditing( state ) {
|
|
1333
|
+
return state.isResponsiveEditing;
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1155
1336
|
/**
|
|
1156
1337
|
* Returns the selected style state for a block's style controls.
|
|
1157
1338
|
*
|
|
@@ -1160,13 +1341,25 @@ const DEFAULT_BLOCK_STYLE_STATE = {
|
|
|
1160
1341
|
*
|
|
1161
1342
|
* @return {Object} The selected block style state.
|
|
1162
1343
|
*/
|
|
1163
|
-
export
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1344
|
+
export const getSelectedBlockStyleState = createSelector(
|
|
1345
|
+
( state, clientId ) => {
|
|
1346
|
+
const perBlockState =
|
|
1347
|
+
state.selectedBlockStyleState?.clientId === clientId
|
|
1348
|
+
? state.selectedBlockStyleState.value ??
|
|
1349
|
+
DEFAULT_BLOCK_STYLE_STATE
|
|
1350
|
+
: DEFAULT_BLOCK_STYLE_STATE;
|
|
1351
|
+
|
|
1352
|
+
return {
|
|
1353
|
+
...perBlockState,
|
|
1354
|
+
// The viewport is tracked globally, so inject it here. This way
|
|
1355
|
+
// consumers receive a single combined state object instead of
|
|
1356
|
+
// merging the global viewport themselves, and selectors derived
|
|
1357
|
+
// from this stay consistent.
|
|
1358
|
+
viewport: getStyleStateViewport( state ),
|
|
1359
|
+
};
|
|
1360
|
+
},
|
|
1361
|
+
( state ) => [ state.styleStateViewport, state.selectedBlockStyleState ]
|
|
1362
|
+
);
|
|
1170
1363
|
|
|
1171
1364
|
/**
|
|
1172
1365
|
* Returns whether a non-default style state is selected for a block.
|
package/src/store/reducer.js
CHANGED
|
@@ -2312,7 +2312,6 @@ export function selectedBlockStyleState( state = undefined, action ) {
|
|
|
2312
2312
|
clientId: action.clientId,
|
|
2313
2313
|
showStateOnCanvas,
|
|
2314
2314
|
value: {
|
|
2315
|
-
viewport: 'default',
|
|
2316
2315
|
pseudo: 'default',
|
|
2317
2316
|
...previousValue,
|
|
2318
2317
|
...action.value,
|
|
@@ -2332,7 +2331,6 @@ export function selectedBlockStyleState( state = undefined, action ) {
|
|
|
2332
2331
|
clientId: action.clientId,
|
|
2333
2332
|
showStateOnCanvas: action.value,
|
|
2334
2333
|
value: {
|
|
2335
|
-
viewport: 'default',
|
|
2336
2334
|
pseudo: 'default',
|
|
2337
2335
|
...previousValue,
|
|
2338
2336
|
},
|
|
@@ -2390,6 +2388,41 @@ export function selectedBlockStyleState( state = undefined, action ) {
|
|
|
2390
2388
|
return state;
|
|
2391
2389
|
}
|
|
2392
2390
|
|
|
2391
|
+
/**
|
|
2392
|
+
* Reducer holding the globally selected viewport style state. When set to a
|
|
2393
|
+
* value other than 'default', block style edits in the inspector are applied to
|
|
2394
|
+
* that viewport. Driven by the editor's device preview (Responsive editing).
|
|
2395
|
+
*
|
|
2396
|
+
* @param {string} state Current state.
|
|
2397
|
+
* @param {Object} action Dispatched action.
|
|
2398
|
+
*
|
|
2399
|
+
* @return {string} Updated state.
|
|
2400
|
+
*/
|
|
2401
|
+
export function styleStateViewport( state = 'default', action ) {
|
|
2402
|
+
if ( action.type === 'SET_STYLE_STATE_VIEWPORT' ) {
|
|
2403
|
+
return action.viewport ?? 'default';
|
|
2404
|
+
}
|
|
2405
|
+
|
|
2406
|
+
return state;
|
|
2407
|
+
}
|
|
2408
|
+
|
|
2409
|
+
/**
|
|
2410
|
+
* Reducer for whether Responsive editing is enabled. When enabled, the device
|
|
2411
|
+
* preview also drives which viewport block style edits are applied to.
|
|
2412
|
+
*
|
|
2413
|
+
* @param {boolean} state Current state.
|
|
2414
|
+
* @param {Object} action Dispatched action.
|
|
2415
|
+
*
|
|
2416
|
+
* @return {boolean} Updated state.
|
|
2417
|
+
*/
|
|
2418
|
+
export function isResponsiveEditing( state = false, action ) {
|
|
2419
|
+
if ( action.type === 'SET_RESPONSIVE_EDITING' ) {
|
|
2420
|
+
return action.enabled;
|
|
2421
|
+
}
|
|
2422
|
+
|
|
2423
|
+
return state;
|
|
2424
|
+
}
|
|
2425
|
+
|
|
2393
2426
|
const combinedReducers = combineReducers( {
|
|
2394
2427
|
blocks,
|
|
2395
2428
|
isDragging,
|
|
@@ -2426,6 +2459,8 @@ const combinedReducers = combineReducers( {
|
|
|
2426
2459
|
listViewContentPanelOpen,
|
|
2427
2460
|
requestedInspectorTab,
|
|
2428
2461
|
selectedBlockStyleState,
|
|
2462
|
+
styleStateViewport,
|
|
2463
|
+
isResponsiveEditing,
|
|
2429
2464
|
} );
|
|
2430
2465
|
|
|
2431
2466
|
/**
|
package/src/store/selectors.js
CHANGED
|
@@ -1692,6 +1692,12 @@ const canInsertBlockTypeUnmemoized = (
|
|
|
1692
1692
|
return false;
|
|
1693
1693
|
}
|
|
1694
1694
|
|
|
1695
|
+
// No insertion within static inner content: the inner blocks are fixed
|
|
1696
|
+
// at their placeholder positions within the static markup.
|
|
1697
|
+
if ( isInnerContentRoot( state, rootClientId ) ) {
|
|
1698
|
+
return false;
|
|
1699
|
+
}
|
|
1700
|
+
|
|
1695
1701
|
const blockEditingMode = getBlockEditingMode( state, rootClientId ?? '' );
|
|
1696
1702
|
|
|
1697
1703
|
// Compute section context early so the disabled check below can use it.
|
|
@@ -1899,6 +1905,24 @@ export function canInsertBlocks( state, clientIds, rootClientId = null ) {
|
|
|
1899
1905
|
);
|
|
1900
1906
|
}
|
|
1901
1907
|
|
|
1908
|
+
/**
|
|
1909
|
+
* Returns whether the given root block keeps its markup as static inner
|
|
1910
|
+
* content (the Custom HTML block). Its inner blocks are fixed at their
|
|
1911
|
+
* positions within the static markup: they can be edited in place, but not
|
|
1912
|
+
* moved or removed, and no blocks can be inserted alongside them. This only
|
|
1913
|
+
* applies to the direct children; deeper descendants are unaffected.
|
|
1914
|
+
*
|
|
1915
|
+
* @param {Object} state Editor state.
|
|
1916
|
+
* @param {?string} rootClientId Root block client ID.
|
|
1917
|
+
*
|
|
1918
|
+
* @return {boolean} Whether the root block uses static inner content.
|
|
1919
|
+
*/
|
|
1920
|
+
function isInnerContentRoot( state, rootClientId ) {
|
|
1921
|
+
return (
|
|
1922
|
+
!! rootClientId && getBlockName( state, rootClientId ) === 'core/html'
|
|
1923
|
+
);
|
|
1924
|
+
}
|
|
1925
|
+
|
|
1902
1926
|
/**
|
|
1903
1927
|
* Determines if the given block is allowed to be deleted.
|
|
1904
1928
|
*
|
|
@@ -1913,6 +1937,14 @@ export function canRemoveBlock( state, clientId ) {
|
|
|
1913
1937
|
return false;
|
|
1914
1938
|
}
|
|
1915
1939
|
|
|
1940
|
+
// Blocks within static inner content are fixed in place; a `lock`
|
|
1941
|
+
// attribute can't override the structural constraint.
|
|
1942
|
+
if (
|
|
1943
|
+
isInnerContentRoot( state, getBlockRootClientId( state, clientId ) )
|
|
1944
|
+
) {
|
|
1945
|
+
return false;
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1916
1948
|
const attributes = getBlockAttributes( state, clientId );
|
|
1917
1949
|
if ( attributes === null ) {
|
|
1918
1950
|
return true;
|
|
@@ -2014,6 +2046,14 @@ export function canMoveBlock( state, clientId ) {
|
|
|
2014
2046
|
return false;
|
|
2015
2047
|
}
|
|
2016
2048
|
|
|
2049
|
+
// Blocks within static inner content are fixed in place; a `lock`
|
|
2050
|
+
// attribute can't override the structural constraint.
|
|
2051
|
+
if (
|
|
2052
|
+
isInnerContentRoot( state, getBlockRootClientId( state, clientId ) )
|
|
2053
|
+
) {
|
|
2054
|
+
return false;
|
|
2055
|
+
}
|
|
2056
|
+
|
|
2017
2057
|
const attributes = getBlockAttributes( state, clientId );
|
|
2018
2058
|
if ( attributes === null ) {
|
|
2019
2059
|
return true;
|
|
@@ -2175,6 +2215,7 @@ const getItemFromVariation = ( state, item ) => ( variation ) => {
|
|
|
2175
2215
|
...variation.attributes,
|
|
2176
2216
|
},
|
|
2177
2217
|
innerBlocks: variation.innerBlocks,
|
|
2218
|
+
innerContent: variation.innerContent,
|
|
2178
2219
|
keywords: variation.keywords || item.keywords,
|
|
2179
2220
|
frecency: calculateFrecency( time, count ),
|
|
2180
2221
|
// Pass through search-only flag for block-scope variations.
|
|
@@ -1379,7 +1379,7 @@ describe( 'actions', () => {
|
|
|
1379
1379
|
fetch: 'c',
|
|
1380
1380
|
} )( {} );
|
|
1381
1381
|
expect( console ).toHaveErroredWith(
|
|
1382
|
-
'Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise<InserterMediaItem[]>`.'
|
|
1382
|
+
'Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise<InserterMediaItem[]|InserterMediaResponse>`.'
|
|
1383
1383
|
);
|
|
1384
1384
|
} );
|
|
1385
1385
|
it( 'has unique name', () => {
|