@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
package/src/layouts/grid.js
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
Flex,
|
|
9
9
|
FlexItem,
|
|
10
10
|
RangeControl,
|
|
11
|
+
ToggleControl,
|
|
11
12
|
__experimentalNumberControl as NumberControl,
|
|
12
13
|
__experimentalToggleGroupControl as ToggleGroupControl,
|
|
13
14
|
__experimentalToggleGroupControlOption as ToggleGroupControlOption,
|
|
@@ -81,6 +82,9 @@ export default {
|
|
|
81
82
|
const showMinWidthControl =
|
|
82
83
|
! layout?.isManualPlacement ||
|
|
83
84
|
window.__experimentalEnableGridInteractivity;
|
|
85
|
+
// Auto-fit/auto-fill only applies when grid items are placed
|
|
86
|
+
// automatically, so the control is irrelevant in manual placement mode.
|
|
87
|
+
const showFillControl = ! layout?.isManualPlacement;
|
|
84
88
|
const defaultColumnCount = layout.isManualPlacement ? 3 : undefined;
|
|
85
89
|
const hasLayoutValue = ( key, defaultValue ) =>
|
|
86
90
|
( layout?.[ key ] ?? defaultValue ) !==
|
|
@@ -92,6 +96,7 @@ export default {
|
|
|
92
96
|
hasLayoutValue( 'rowCount' );
|
|
93
97
|
const hasMinimumColumnWidthValue = () =>
|
|
94
98
|
hasLayoutValue( 'minimumColumnWidth' );
|
|
99
|
+
const hasFillValue = () => hasLayoutValue( 'autoFit', false );
|
|
95
100
|
const resetGridType = () =>
|
|
96
101
|
onChange(
|
|
97
102
|
cleanEmptyObject( {
|
|
@@ -116,6 +121,13 @@ export default {
|
|
|
116
121
|
minimumColumnWidth: resetLayout?.minimumColumnWidth,
|
|
117
122
|
} )
|
|
118
123
|
);
|
|
124
|
+
const resetFill = () =>
|
|
125
|
+
onChange(
|
|
126
|
+
cleanEmptyObject( {
|
|
127
|
+
...layout,
|
|
128
|
+
autoFit: resetLayout?.autoFit,
|
|
129
|
+
} )
|
|
130
|
+
);
|
|
119
131
|
|
|
120
132
|
return (
|
|
121
133
|
<>
|
|
@@ -162,6 +174,19 @@ export default {
|
|
|
162
174
|
/>
|
|
163
175
|
</ToolsPanelItem>
|
|
164
176
|
) }
|
|
177
|
+
{ showFillControl && (
|
|
178
|
+
<ToolsPanelItem
|
|
179
|
+
label={ __( 'Fill available space' ) }
|
|
180
|
+
hasValue={ hasFillValue }
|
|
181
|
+
onDeselect={ resetFill }
|
|
182
|
+
panelId={ clientId }
|
|
183
|
+
>
|
|
184
|
+
<GridLayoutFillControl
|
|
185
|
+
layout={ layout }
|
|
186
|
+
onChange={ onChange }
|
|
187
|
+
/>
|
|
188
|
+
</ToolsPanelItem>
|
|
189
|
+
) }
|
|
165
190
|
</>
|
|
166
191
|
);
|
|
167
192
|
},
|
|
@@ -188,8 +213,13 @@ export default {
|
|
|
188
213
|
minimumColumnWidth = null,
|
|
189
214
|
columnCount = null,
|
|
190
215
|
rowCount = null,
|
|
216
|
+
autoFit = false,
|
|
191
217
|
} = effectiveLayout;
|
|
192
218
|
|
|
219
|
+
// When enabled, columns stretch to fill the available space using
|
|
220
|
+
// `auto-fit`; otherwise empty tracks are preserved with `auto-fill`.
|
|
221
|
+
const autoPlacement = autoFit ? 'auto-fit' : 'auto-fill';
|
|
222
|
+
|
|
193
223
|
// Check that the grid layout attributes are of the correct type, so that we don't accidentally
|
|
194
224
|
// write code that stores a string attribute instead of a number.
|
|
195
225
|
if ( process.env.NODE_ENV === 'development' ) {
|
|
@@ -205,6 +235,9 @@ export default {
|
|
|
205
235
|
if ( rowCount && typeof rowCount !== 'number' ) {
|
|
206
236
|
throw new Error( 'rowCount must be a number' );
|
|
207
237
|
}
|
|
238
|
+
if ( autoFit && typeof autoFit !== 'boolean' ) {
|
|
239
|
+
throw new Error( 'autoFit must be a boolean' );
|
|
240
|
+
}
|
|
208
241
|
}
|
|
209
242
|
|
|
210
243
|
// Use the global blockGap value as fallback when available.
|
|
@@ -236,6 +269,7 @@ export default {
|
|
|
236
269
|
! hasViewportOverrides ||
|
|
237
270
|
hasViewportOverride( 'minimumColumnWidth' ) ||
|
|
238
271
|
hasViewportOverride( 'columnCount' ) ||
|
|
272
|
+
hasViewportOverride( 'autoFit' ) ||
|
|
239
273
|
( hasBlockGapOverride && minimumColumnWidth && columnCount > 0 );
|
|
240
274
|
const shouldOutputGridRows =
|
|
241
275
|
( ! hasViewportOverrides || hasViewportOverride( 'rowCount' ) ) &&
|
|
@@ -256,7 +290,7 @@ export default {
|
|
|
256
290
|
columnCount - 1
|
|
257
291
|
}) ) / ${ columnCount })`;
|
|
258
292
|
rules.push(
|
|
259
|
-
`grid-template-columns: repeat(
|
|
293
|
+
`grid-template-columns: repeat(${ autoPlacement }, minmax(${ maxValue }, 1fr))`
|
|
260
294
|
);
|
|
261
295
|
} else if ( shouldOutputGridColumns && columnCount ) {
|
|
262
296
|
rules.push(
|
|
@@ -264,7 +298,7 @@ export default {
|
|
|
264
298
|
);
|
|
265
299
|
} else if ( shouldOutputGridColumns ) {
|
|
266
300
|
rules.push(
|
|
267
|
-
`grid-template-columns: repeat(
|
|
301
|
+
`grid-template-columns: repeat(${ autoPlacement }, minmax(min(${
|
|
268
302
|
minimumColumnWidth || '12rem'
|
|
269
303
|
}, 100%), 1fr))`
|
|
270
304
|
);
|
|
@@ -357,7 +391,6 @@ function GridLayoutMinimumWidthControl( { layout, onChange } ) {
|
|
|
357
391
|
<Flex gap={ 4 }>
|
|
358
392
|
<FlexItem isBlock>
|
|
359
393
|
<UnitControl
|
|
360
|
-
size="__unstable-large"
|
|
361
394
|
onChange={ ( newValue ) => {
|
|
362
395
|
onChange( {
|
|
363
396
|
...layout,
|
|
@@ -375,7 +408,6 @@ function GridLayoutMinimumWidthControl( { layout, onChange } ) {
|
|
|
375
408
|
</FlexItem>
|
|
376
409
|
<FlexItem isBlock>
|
|
377
410
|
<RangeControl
|
|
378
|
-
__next40pxDefaultSize
|
|
379
411
|
onChange={ handleSliderChange }
|
|
380
412
|
value={ quantity || 0 }
|
|
381
413
|
min={ 0 }
|
|
@@ -420,7 +452,6 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
420
452
|
<Flex gap={ 4 }>
|
|
421
453
|
<FlexItem isBlock>
|
|
422
454
|
<NumberControl
|
|
423
|
-
size="__unstable-large"
|
|
424
455
|
onChange={ ( value ) => {
|
|
425
456
|
// Allow unsetting the column count when in auto mode.
|
|
426
457
|
const defaultNewColumnCount = isManualPlacement
|
|
@@ -435,7 +466,7 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
435
466
|
columnCount: newColumnCount,
|
|
436
467
|
} );
|
|
437
468
|
} }
|
|
438
|
-
value={ columnCount }
|
|
469
|
+
value={ columnCount ?? '' }
|
|
439
470
|
min={ 1 }
|
|
440
471
|
label={ __( 'Columns' ) }
|
|
441
472
|
hideLabelFromVision={ ! isManualPlacement }
|
|
@@ -445,7 +476,6 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
445
476
|
<FlexItem isBlock>
|
|
446
477
|
{ allowSizingOnChildren && isManualPlacement ? (
|
|
447
478
|
<NumberControl
|
|
448
|
-
size="__unstable-large"
|
|
449
479
|
onChange={ ( value ) => {
|
|
450
480
|
// Don't allow unsetting the row count.
|
|
451
481
|
const newRowCount =
|
|
@@ -463,7 +493,6 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
463
493
|
/>
|
|
464
494
|
) : (
|
|
465
495
|
<RangeControl
|
|
466
|
-
__next40pxDefaultSize
|
|
467
496
|
value={ columnCount ?? 1 }
|
|
468
497
|
onChange={ ( value ) =>
|
|
469
498
|
onChange( {
|
|
@@ -488,6 +517,28 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
488
517
|
);
|
|
489
518
|
}
|
|
490
519
|
|
|
520
|
+
// Enables stretching grid columns to fill the available space (auto-fit)
|
|
521
|
+
// instead of leaving empty tracks at the end of a row (auto-fill).
|
|
522
|
+
function GridLayoutFillControl( { layout, onChange } ) {
|
|
523
|
+
const { autoFit = false } = layout;
|
|
524
|
+
|
|
525
|
+
return (
|
|
526
|
+
<ToggleControl
|
|
527
|
+
label={ __( 'Fill available space' ) }
|
|
528
|
+
help={ __(
|
|
529
|
+
'Stretch columns to fill the available space, instead of leaving gaps when there are too few items to fill a row.'
|
|
530
|
+
) }
|
|
531
|
+
checked={ autoFit }
|
|
532
|
+
onChange={ ( value ) =>
|
|
533
|
+
onChange( {
|
|
534
|
+
...layout,
|
|
535
|
+
autoFit: value,
|
|
536
|
+
} )
|
|
537
|
+
}
|
|
538
|
+
/>
|
|
539
|
+
);
|
|
540
|
+
}
|
|
541
|
+
|
|
491
542
|
// Enables switching between grid types
|
|
492
543
|
function GridLayoutTypeControl( { layout, onChange } ) {
|
|
493
544
|
const { columnCount, rowCount, minimumColumnWidth, isManualPlacement } =
|
|
@@ -535,7 +586,6 @@ function GridLayoutTypeControl( { layout, onChange } ) {
|
|
|
535
586
|
|
|
536
587
|
return (
|
|
537
588
|
<ToggleGroupControl
|
|
538
|
-
__next40pxDefaultSize
|
|
539
589
|
label={ __( 'Grid item position' ) }
|
|
540
590
|
value={ gridPlacement }
|
|
541
591
|
onChange={ onChangeType }
|
|
@@ -1,8 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
|
|
11
|
+
|
|
1
12
|
/**
|
|
2
13
|
* Internal dependencies
|
|
3
14
|
*/
|
|
4
15
|
import constrained from '../constrained';
|
|
5
16
|
|
|
17
|
+
const ConstrainedLayoutInspectorControls = constrained.inspectorControls;
|
|
18
|
+
const PANEL_ID = 'test-panel';
|
|
19
|
+
|
|
20
|
+
function renderInspectorControls( props = {} ) {
|
|
21
|
+
return render(
|
|
22
|
+
<ToolsPanel label="Layout" resetAll={ jest.fn() } panelId={ PANEL_ID }>
|
|
23
|
+
<ConstrainedLayoutInspectorControls
|
|
24
|
+
clientId={ PANEL_ID }
|
|
25
|
+
layout={ {} }
|
|
26
|
+
onChange={ jest.fn() }
|
|
27
|
+
{ ...props }
|
|
28
|
+
/>
|
|
29
|
+
</ToolsPanel>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
6
33
|
describe( 'getLayoutStyle', () => {
|
|
7
34
|
it( 'should return an empty string if no non-default params are provided', () => {
|
|
8
35
|
const expected = '';
|
|
@@ -18,4 +45,68 @@ describe( 'getLayoutStyle', () => {
|
|
|
18
45
|
|
|
19
46
|
expect( result ).toBe( expected );
|
|
20
47
|
} );
|
|
48
|
+
|
|
49
|
+
it( 'should reset constrained sizes when content width is unset in a viewport', () => {
|
|
50
|
+
const result = constrained.getLayoutStyle( {
|
|
51
|
+
selector: '.my-container',
|
|
52
|
+
layout: { type: 'constrained', contentSize: '800px' },
|
|
53
|
+
viewportOverrides: { contentSize: null },
|
|
54
|
+
style: {},
|
|
55
|
+
blockName: 'test-block',
|
|
56
|
+
hasBlockGapSupport: false,
|
|
57
|
+
layoutDefinitions: undefined,
|
|
58
|
+
} );
|
|
59
|
+
|
|
60
|
+
expect( result ).toContain(
|
|
61
|
+
'max-width: var(--wp--style--global--content-size, none);'
|
|
62
|
+
);
|
|
63
|
+
expect( result ).toContain(
|
|
64
|
+
'max-width: var(--wp--style--global--wide-size, none);'
|
|
65
|
+
);
|
|
66
|
+
} );
|
|
67
|
+
} );
|
|
68
|
+
|
|
69
|
+
describe( 'ConstrainedLayoutInspectorControls', () => {
|
|
70
|
+
it( 'renders an unset content width as an empty control value', () => {
|
|
71
|
+
renderInspectorControls( {
|
|
72
|
+
layout: { type: 'constrained', contentSize: null },
|
|
73
|
+
resetLayout: { type: 'constrained', contentSize: '800px' },
|
|
74
|
+
} );
|
|
75
|
+
|
|
76
|
+
expect(
|
|
77
|
+
screen.getByRole( 'spinbutton', { name: 'Content width' } )
|
|
78
|
+
).toHaveDisplayValue( '' );
|
|
79
|
+
} );
|
|
80
|
+
|
|
81
|
+
it.each( [
|
|
82
|
+
[ 'Content width', 'contentSize' ],
|
|
83
|
+
[ 'Wide width', 'wideSize' ],
|
|
84
|
+
] )(
|
|
85
|
+
'preserves a cleared %s value for viewport layout overrides',
|
|
86
|
+
async ( label, layoutKey ) => {
|
|
87
|
+
const user = userEvent.setup();
|
|
88
|
+
const onChange = jest.fn();
|
|
89
|
+
renderInspectorControls( {
|
|
90
|
+
layout: { type: 'constrained', [ layoutKey ]: '800px' },
|
|
91
|
+
resetLayout: { type: 'constrained', [ layoutKey ]: '800px' },
|
|
92
|
+
onChange,
|
|
93
|
+
} );
|
|
94
|
+
|
|
95
|
+
await user.click(
|
|
96
|
+
screen.getByRole( 'button', { name: /Layout options/i } )
|
|
97
|
+
);
|
|
98
|
+
await user.click(
|
|
99
|
+
screen.getByRole( 'menuitemcheckbox', {
|
|
100
|
+
name: `Show ${ label }`,
|
|
101
|
+
} )
|
|
102
|
+
);
|
|
103
|
+
await user.clear(
|
|
104
|
+
screen.getByRole( 'spinbutton', { name: label } )
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
const nextLayout = onChange.mock.lastCall?.[ 0 ];
|
|
108
|
+
expect( Object.hasOwn( nextLayout, layoutKey ) ).toBe( true );
|
|
109
|
+
expect( nextLayout[ layoutKey ] ).toBeUndefined();
|
|
110
|
+
}
|
|
111
|
+
);
|
|
21
112
|
} );
|
package/src/layouts/test/grid.js
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
|
|
10
|
+
|
|
1
11
|
/**
|
|
2
12
|
* Internal dependencies
|
|
3
13
|
*/
|
|
4
14
|
import grid from '../grid';
|
|
5
15
|
|
|
16
|
+
const GridLayoutInspectorControls = grid.inspectorControls;
|
|
17
|
+
const PANEL_ID = 'test-panel';
|
|
18
|
+
|
|
19
|
+
function renderInspectorControls( props = {} ) {
|
|
20
|
+
return render(
|
|
21
|
+
<ToolsPanel label="Layout" resetAll={ jest.fn() } panelId={ PANEL_ID }>
|
|
22
|
+
<GridLayoutInspectorControls
|
|
23
|
+
clientId={ PANEL_ID }
|
|
24
|
+
layout={ {} }
|
|
25
|
+
onChange={ jest.fn() }
|
|
26
|
+
{ ...props }
|
|
27
|
+
/>
|
|
28
|
+
</ToolsPanel>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
6
32
|
describe( 'getLayoutStyle', () => {
|
|
7
33
|
it( 'should return only `grid-template-columns` and `container-type` properties if no non-default params are provided', () => {
|
|
8
34
|
const expected = `.my-container { grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr)); container-type: inline-size; }`;
|
|
@@ -46,4 +72,49 @@ describe( 'getLayoutStyle', () => {
|
|
|
46
72
|
|
|
47
73
|
expect( result ).toBe( expected );
|
|
48
74
|
} );
|
|
75
|
+
it( 'should use `auto-fit` instead of `auto-fill` when autoFit is enabled', () => {
|
|
76
|
+
const expected = `.my-container { grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr)); container-type: inline-size; }`;
|
|
77
|
+
|
|
78
|
+
const result = grid.getLayoutStyle( {
|
|
79
|
+
selector: '.my-container',
|
|
80
|
+
layout: { autoFit: true },
|
|
81
|
+
style: {},
|
|
82
|
+
blockName: 'test-block',
|
|
83
|
+
hasBlockGapSupport: false,
|
|
84
|
+
layoutDefinitions: undefined,
|
|
85
|
+
} );
|
|
86
|
+
|
|
87
|
+
expect( result ).toBe( expected );
|
|
88
|
+
} );
|
|
89
|
+
it( 'should use `auto-fit` with max() function when autoFit is enabled and both minimumColumnWidth and columnCount are provided', () => {
|
|
90
|
+
const expected = `.my-container { grid-template-columns: repeat(auto-fit, minmax(max(min( 12rem, 100%), ( 100% - (1.2rem*2) ) / 3), 1fr)); container-type: inline-size; }`;
|
|
91
|
+
|
|
92
|
+
const result = grid.getLayoutStyle( {
|
|
93
|
+
selector: '.my-container',
|
|
94
|
+
layout: {
|
|
95
|
+
minimumColumnWidth: '12rem',
|
|
96
|
+
columnCount: 3,
|
|
97
|
+
autoFit: true,
|
|
98
|
+
},
|
|
99
|
+
style: {},
|
|
100
|
+
blockName: 'test-block',
|
|
101
|
+
hasBlockGapSupport: false,
|
|
102
|
+
layoutDefinitions: undefined,
|
|
103
|
+
} );
|
|
104
|
+
|
|
105
|
+
expect( result ).toBe( expected );
|
|
106
|
+
} );
|
|
107
|
+
} );
|
|
108
|
+
|
|
109
|
+
describe( 'GridLayoutInspectorControls', () => {
|
|
110
|
+
it( 'renders an unset column count as an empty control value', () => {
|
|
111
|
+
renderInspectorControls( {
|
|
112
|
+
layout: { type: 'grid', columnCount: null },
|
|
113
|
+
resetLayout: { type: 'grid', columnCount: 3 },
|
|
114
|
+
} );
|
|
115
|
+
|
|
116
|
+
expect(
|
|
117
|
+
screen.getByRole( 'spinbutton', { name: 'Columns' } )
|
|
118
|
+
).toHaveDisplayValue( '' );
|
|
119
|
+
} );
|
|
49
120
|
} );
|
package/src/private-apis.js
CHANGED
|
@@ -56,6 +56,7 @@ import {
|
|
|
56
56
|
isNavigationOverlayContextKey,
|
|
57
57
|
isNavigationPostEditorKey,
|
|
58
58
|
mediaUploadOnSuccessKey,
|
|
59
|
+
mediaSideloadFromUrlKey,
|
|
59
60
|
openMediaEditorModalKey,
|
|
60
61
|
} from './store/private-keys';
|
|
61
62
|
import { requiresWrapperOnCopy } from './components/writing-flow/utils';
|
|
@@ -77,6 +78,7 @@ import { LinkPicker } from './components/link-picker';
|
|
|
77
78
|
import useRemoteUrlData from './components/link-control/use-rich-url-data';
|
|
78
79
|
import { PrivateBlockContext } from './components/block-list/private-block-context';
|
|
79
80
|
import useListViewPanelState from './components/use-list-view-panel-state';
|
|
81
|
+
import InnerContent from './components/inner-content';
|
|
80
82
|
import {
|
|
81
83
|
isHashLink,
|
|
82
84
|
isRelativePath,
|
|
@@ -144,6 +146,7 @@ lock( privateApis, {
|
|
|
144
146
|
isNavigationOverlayContextKey,
|
|
145
147
|
isNavigationPostEditorKey,
|
|
146
148
|
mediaUploadOnSuccessKey,
|
|
149
|
+
mediaSideloadFromUrlKey,
|
|
147
150
|
openMediaEditorModalKey,
|
|
148
151
|
useBlockElement,
|
|
149
152
|
useBlockElementRef,
|
|
@@ -153,4 +156,5 @@ lock( privateApis, {
|
|
|
153
156
|
useListViewPanelState,
|
|
154
157
|
isHashLink,
|
|
155
158
|
isRelativePath,
|
|
159
|
+
InnerContent,
|
|
156
160
|
} );
|
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
|
}
|
|
@@ -15,4 +15,5 @@ export const isNavigationOverlayContextKey = Symbol(
|
|
|
15
15
|
);
|
|
16
16
|
export const isNavigationPostEditorKey = Symbol( 'isNavigationPostEditor' );
|
|
17
17
|
export const mediaUploadOnSuccessKey = Symbol( 'mediaUploadOnSuccess' );
|
|
18
|
+
export const mediaSideloadFromUrlKey = Symbol( 'mediaSideloadFromUrl' );
|
|
18
19
|
export const openMediaEditorModalKey = Symbol( 'openMediaEditorModal' );
|