@wordpress/block-editor 11.4.0 → 11.6.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 +8 -0
- package/build/components/block-inspector/index.js +11 -10
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-inspector/useBlockInspectorAnimationSettings.js +46 -0
- package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
- package/build/components/block-list/block-invalid-warning.js +63 -80
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-lock/modal.js +1 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +2 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.native.js +1 -0
- package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build/components/child-layout-control/index.js +107 -0
- package/build/components/child-layout-control/index.js.map +1 -0
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -3
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/date-format-picker/index.js +3 -3
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/global-styles/border-panel.js +306 -0
- package/build/components/global-styles/border-panel.js.map +1 -0
- package/build/components/global-styles/dimensions-panel.js +594 -0
- package/build/components/global-styles/dimensions-panel.js.map +1 -0
- package/build/components/global-styles/hooks.js +127 -37
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +36 -2
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +87 -27
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +21 -14
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +2 -0
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/index.native.js +23 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/index.js +29 -17
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +10 -11
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +5 -108
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +242 -0
- package/build/components/inserter/media-tab/media-preview.js.map +1 -0
- package/build/components/inserter/menu.js +1 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -2
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-results.js +10 -3
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/tabs.js +1 -1
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +38 -9
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/link-control/index.js +1 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-item.js +5 -2
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +1 -1
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/link-control/settings.js +1 -0
- package/build/components/link-control/settings.js.map +1 -1
- package/build/components/list-view/block.js +17 -3
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +2 -2
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/expander.js +2 -1
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/list-view/leaf.js +10 -6
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +1 -2
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/list-view/use-list-view-scroll-into-view.js +51 -0
- package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
- package/build/components/off-canvas-editor/appender.js +33 -13
- package/build/components/off-canvas-editor/appender.js.map +1 -1
- package/build/components/off-canvas-editor/branch.js +6 -3
- package/build/components/off-canvas-editor/branch.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +8 -2
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/leaf-more-menu.js +34 -4
- package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
- package/build/components/provider/use-block-sync.js +17 -3
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/responsive-block-control/index.js +1 -0
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +0 -3
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +9 -43
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-delete.js +73 -0
- package/build/components/rich-text/use-delete.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +14 -6
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +4 -1
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/hooks/align.js +3 -1
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/border.js +91 -240
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/custom-class-name.js +4 -4
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-class-name.native.js +3 -4
- package/build/hooks/custom-class-name.native.js.map +1 -1
- package/build/hooks/dimensions.js +72 -190
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +94 -25
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/gap.js +0 -202
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/layout.js +33 -27
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/margin.js +7 -163
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +7 -163
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/supports.js +7 -1
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.js +52 -66
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +101 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +6 -2
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +1 -0
- package/build/layouts/flex.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +28 -14
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +28 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +53 -47
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +24 -4
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +49 -10
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/components/block-inspector/index.js +9 -9
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js +37 -0
- package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
- package/build-module/components/block-list/block-invalid-warning.js +66 -78
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-lock/modal.js +1 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +1 -1
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +2 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -0
- package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +98 -0
- package/build-module/components/child-layout-control/index.js.map +1 -0
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -3
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +4 -4
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +291 -0
- package/build-module/components/global-styles/border-panel.js.map +1 -0
- package/build-module/components/global-styles/dimensions-panel.js +574 -0
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +123 -34
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +3 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +88 -27
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +21 -14
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +2 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/index.native.js +2 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/index.js +28 -16
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +10 -11
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +6 -105
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +222 -0
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -0
- package/build-module/components/inserter/menu.js +1 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +4 -2
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-results.js +10 -3
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/tabs.js +1 -1
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +39 -9
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/link-control/index.js +1 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-item.js +4 -2
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +1 -1
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/link-control/settings.js +1 -0
- package/build-module/components/link-control/settings.js.map +1 -1
- package/build-module/components/list-view/block.js +16 -3
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +2 -2
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/expander.js +2 -1
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/list-view/leaf.js +8 -4
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +1 -2
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/list-view/use-list-view-scroll-into-view.js +42 -0
- package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
- package/build-module/components/off-canvas-editor/appender.js +33 -14
- package/build-module/components/off-canvas-editor/appender.js.map +1 -1
- package/build-module/components/off-canvas-editor/branch.js +6 -3
- package/build-module/components/off-canvas-editor/branch.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +8 -2
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/leaf-more-menu.js +36 -7
- package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +17 -3
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js +1 -0
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +0 -3
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +9 -43
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-delete.js +62 -0
- package/build-module/components/rich-text/use-delete.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +14 -6
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +4 -1
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/hooks/align.js +3 -1
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/border.js +93 -240
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +4 -4
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-class-name.native.js +3 -4
- package/build-module/hooks/custom-class-name.native.js.map +1 -1
- package/build-module/hooks/dimensions.js +75 -187
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +86 -24
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/gap.js +0 -183
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +33 -27
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/margin.js +4 -143
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +4 -143
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/supports.js +7 -1
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.js +54 -66
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +96 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +6 -2
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +1 -0
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +28 -14
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +28 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +53 -45
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +22 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +49 -10
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-style/style-rtl.css +39 -27
- package/build-style/style.css +39 -27
- package/package.json +31 -31
- package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +24 -24
- package/src/components/block-inspector/index.js +11 -14
- package/src/components/block-inspector/style.scss +3 -0
- package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +53 -0
- package/src/components/block-list/block-invalid-warning.js +72 -64
- package/src/components/block-lock/modal.js +1 -0
- package/src/components/block-lock/style.scss +0 -9
- package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +20 -20
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +35 -17
- package/src/components/block-preview/test/index.js +0 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/src/components/block-settings-menu-controls/index.js +2 -1
- package/src/components/block-styles/index.js +5 -1
- package/src/components/block-styles/style.scss +2 -2
- package/src/components/block-switcher/block-transformations-menu.native.js +1 -0
- package/src/components/child-layout-control/index.js +106 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +17 -15
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +48 -38
- package/src/components/date-format-picker/index.js +6 -8
- package/src/components/date-format-picker/style.scss +0 -5
- package/src/components/global-styles/border-panel.js +285 -0
- package/src/components/global-styles/dimensions-panel.js +627 -0
- package/src/components/global-styles/hooks.js +160 -44
- package/src/components/global-styles/index.js +7 -1
- package/src/components/global-styles/test/use-global-styles-output.js +1 -1
- package/src/components/global-styles/typography-panel.js +81 -9
- package/src/components/global-styles/use-global-styles-output.js +17 -16
- package/src/components/global-styles/utils.js +2 -0
- package/src/components/index.native.js +5 -0
- package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
- package/src/components/inserter/index.js +30 -11
- package/src/components/inserter/media-tab/hooks.js +9 -8
- package/src/components/inserter/media-tab/media-list.js +3 -122
- package/src/components/inserter/media-tab/media-preview.js +268 -0
- package/src/components/inserter/menu.js +0 -1
- package/src/components/inserter/quick-inserter.js +2 -0
- package/src/components/inserter/search-results.js +7 -1
- package/src/components/inserter/style.scss +25 -0
- package/src/components/inserter/tabs.js +1 -9
- package/src/components/inserter/test/__snapshots__/index.native.js.snap +15 -15
- package/src/components/inspector-controls/block-support-tools-panel.js +0 -1
- package/src/components/inspector-controls/fill.js +32 -8
- package/src/components/link-control/index.js +1 -1
- package/src/components/link-control/search-item.js +3 -1
- package/src/components/link-control/settings-drawer.js +2 -1
- package/src/components/link-control/settings.js +1 -0
- package/src/components/link-control/style.scss +18 -12
- package/src/components/link-control/test/index.js +3 -5
- package/src/components/list-view/block.js +19 -1
- package/src/components/list-view/branch.js +1 -2
- package/src/components/list-view/expander.js +1 -0
- package/src/components/list-view/leaf.js +43 -29
- package/src/components/list-view/use-block-selection.js +0 -2
- package/src/components/list-view/use-list-view-scroll-into-view.js +48 -0
- package/src/components/media-replace-flow/style.scss +7 -9
- package/src/components/off-canvas-editor/appender.js +44 -21
- package/src/components/off-canvas-editor/branch.js +4 -1
- package/src/components/off-canvas-editor/index.js +7 -1
- package/src/components/off-canvas-editor/leaf-more-menu.js +57 -15
- package/src/components/provider/use-block-sync.js +21 -4
- package/src/components/responsive-block-control/index.js +1 -0
- package/src/components/rich-text/format-toolbar-container.js +1 -7
- package/src/components/rich-text/index.js +8 -44
- package/src/components/rich-text/use-delete.js +59 -0
- package/src/components/rich-text/use-input-rules.js +13 -5
- package/src/components/spacing-sizes-control/style.scss +1 -1
- package/src/components/url-popover/stories/index.js +1 -0
- package/src/components/url-popover/test/index.js +0 -2
- package/src/components/writing-flow/use-selection-observer.js +5 -1
- package/src/hooks/align.js +1 -1
- package/src/hooks/border.js +94 -225
- package/src/hooks/custom-class-name.js +4 -4
- package/src/hooks/custom-class-name.native.js +3 -4
- package/src/hooks/dimensions.js +85 -269
- package/src/hooks/duotone.js +100 -30
- package/src/hooks/gap.js +0 -208
- package/src/hooks/layout.js +38 -22
- package/src/hooks/margin.js +1 -164
- package/src/hooks/padding.js +1 -163
- package/src/hooks/supports.js +6 -0
- package/src/hooks/test/__snapshots__/align.native.js.snap +24 -24
- package/src/hooks/test/duotone.js +102 -0
- package/src/hooks/test/style.js +2 -1
- package/src/hooks/test/use-typography-props.js +2 -0
- package/src/hooks/typography.js +68 -88
- package/src/hooks/utils.js +126 -0
- package/src/layouts/constrained.js +23 -17
- package/src/layouts/flex.js +1 -0
- package/src/private-apis.js +2 -0
- package/src/store/actions.js +16 -6
- package/src/store/defaults.js +14 -1
- package/src/store/reducer.js +68 -43
- package/src/store/selectors.js +28 -4
- package/src/store/test/actions.js +4 -2
- package/src/utils/parse-css-unit-to-px.js +48 -13
- package/src/utils/test/parse-css-unit-to-px.js +13 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/hooks/border-radius.js +0 -100
- package/build/hooks/border-radius.js.map +0 -1
- package/build/hooks/child-layout.js +0 -213
- package/build/hooks/child-layout.js.map +0 -1
- package/build/hooks/min-height.js +0 -139
- package/build/hooks/min-height.js.map +0 -1
- package/build-module/hooks/border-radius.js +0 -84
- package/build-module/hooks/border-radius.js.map +0 -1
- package/build-module/hooks/child-layout.js +0 -193
- package/build-module/hooks/child-layout.js.map +0 -1
- package/build-module/hooks/min-height.js +0 -116
- package/build-module/hooks/min-height.js.map +0 -1
- package/src/hooks/border-radius.js +0 -70
- package/src/hooks/child-layout.js +0 -195
- package/src/hooks/min-height.js +0 -104
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
} from '@wordpress/components';
|
|
13
13
|
import warning from '@wordpress/warning';
|
|
14
14
|
import deprecated from '@wordpress/deprecated';
|
|
15
|
+
import { useEffect } from '@wordpress/element';
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Internal dependencies
|
|
@@ -23,6 +24,7 @@ export default function InspectorControlsFill( {
|
|
|
23
24
|
children,
|
|
24
25
|
group = 'default',
|
|
25
26
|
__experimentalGroup,
|
|
27
|
+
resetAllFilter,
|
|
26
28
|
} ) {
|
|
27
29
|
if ( __experimentalGroup ) {
|
|
28
30
|
deprecated(
|
|
@@ -50,18 +52,40 @@ export default function InspectorControlsFill( {
|
|
|
50
52
|
<StyleProvider document={ document }>
|
|
51
53
|
<Fill>
|
|
52
54
|
{ ( fillProps ) => {
|
|
53
|
-
// Children passed to InspectorControlsFill will not have
|
|
54
|
-
// access to any React Context whose Provider is part of
|
|
55
|
-
// the InspectorControlsSlot tree. So we re-create the
|
|
56
|
-
// Provider in this subtree.
|
|
57
|
-
const value = ! isEmpty( fillProps ) ? fillProps : null;
|
|
58
55
|
return (
|
|
59
|
-
<
|
|
60
|
-
{
|
|
61
|
-
|
|
56
|
+
<ToolsPanelInspectorControl
|
|
57
|
+
fillProps={ fillProps }
|
|
58
|
+
children={ children }
|
|
59
|
+
resetAllFilter={ resetAllFilter }
|
|
60
|
+
/>
|
|
62
61
|
);
|
|
63
62
|
} }
|
|
64
63
|
</Fill>
|
|
65
64
|
</StyleProvider>
|
|
66
65
|
);
|
|
67
66
|
}
|
|
67
|
+
|
|
68
|
+
function ToolsPanelInspectorControl( { children, resetAllFilter, fillProps } ) {
|
|
69
|
+
const { registerResetAllFilter, deregisterResetAllFilter } = fillProps;
|
|
70
|
+
useEffect( () => {
|
|
71
|
+
if ( resetAllFilter && registerResetAllFilter ) {
|
|
72
|
+
registerResetAllFilter( resetAllFilter );
|
|
73
|
+
}
|
|
74
|
+
return () => {
|
|
75
|
+
if ( resetAllFilter && deregisterResetAllFilter ) {
|
|
76
|
+
deregisterResetAllFilter( resetAllFilter );
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}, [ resetAllFilter, registerResetAllFilter, deregisterResetAllFilter ] );
|
|
80
|
+
|
|
81
|
+
// Children passed to InspectorControlsFill will not have
|
|
82
|
+
// access to any React Context whose Provider is part of
|
|
83
|
+
// the InspectorControlsSlot tree. So we re-create the
|
|
84
|
+
// Provider in this subtree.
|
|
85
|
+
const value = ! isEmpty( fillProps ) ? fillProps : null;
|
|
86
|
+
return (
|
|
87
|
+
<ToolsPanelContext.Provider value={ value }>
|
|
88
|
+
{ children }
|
|
89
|
+
</ToolsPanelContext.Provider>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
@@ -366,7 +366,7 @@ function LinkControl( {
|
|
|
366
366
|
<Button
|
|
367
367
|
variant="primary"
|
|
368
368
|
onClick={ handleSubmit }
|
|
369
|
-
className="
|
|
369
|
+
className="block-editor-link-control__search-submit"
|
|
370
370
|
disabled={ currentInputIsEmpty } // Disallow submitting empty values.
|
|
371
371
|
>
|
|
372
372
|
{ __( 'Apply' ) }
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
category,
|
|
19
19
|
file,
|
|
20
20
|
} from '@wordpress/icons';
|
|
21
|
+
import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
|
|
21
22
|
|
|
22
23
|
const ICONS_MAP = {
|
|
23
24
|
post: postList,
|
|
@@ -72,7 +73,8 @@ export const LinkControlSearchItem = ( {
|
|
|
72
73
|
<span className="block-editor-link-control__search-item-header">
|
|
73
74
|
<span className="block-editor-link-control__search-item-title">
|
|
74
75
|
<TextHighlight
|
|
75
|
-
text
|
|
76
|
+
// The component expects a plain text string.
|
|
77
|
+
text={ stripHTML( suggestion.title ) }
|
|
76
78
|
highlight={ searchTerm }
|
|
77
79
|
/>
|
|
78
80
|
</span>
|
|
@@ -11,6 +11,7 @@ import { settings as settingsIcon } from '@wordpress/icons';
|
|
|
11
11
|
import { useReducedMotion, useInstanceId } from '@wordpress/compose';
|
|
12
12
|
import { __ } from '@wordpress/i18n';
|
|
13
13
|
import { Fragment } from '@wordpress/element';
|
|
14
|
+
|
|
14
15
|
/**
|
|
15
16
|
* Internal dependencies
|
|
16
17
|
*/
|
|
@@ -46,7 +47,7 @@ function LinkSettingsDrawer( {
|
|
|
46
47
|
aria-expanded={ settingsOpen }
|
|
47
48
|
onClick={ () => setSettingsOpen( ! settingsOpen ) }
|
|
48
49
|
icon={ settingsIcon }
|
|
49
|
-
label={ __( '
|
|
50
|
+
label={ __( 'Link Settings' ) }
|
|
50
51
|
aria-controls={ settingsDrawerId }
|
|
51
52
|
/>
|
|
52
53
|
<MaybeAnimatePresence>
|
|
@@ -20,6 +20,7 @@ const LinkControlSettings = ( { value, onChange = noop, settings } ) => {
|
|
|
20
20
|
|
|
21
21
|
const theSettings = settings.map( ( setting ) => (
|
|
22
22
|
<ToggleControl
|
|
23
|
+
__nextHasNoMarginBottom
|
|
23
24
|
className="block-editor-link-control__setting"
|
|
24
25
|
key={ setting.id }
|
|
25
26
|
label={ setting.title }
|
|
@@ -22,6 +22,20 @@ $preview-image-height: 140px;
|
|
|
22
22
|
width: 90vw;
|
|
23
23
|
max-width: $modal-min-width;
|
|
24
24
|
}
|
|
25
|
+
|
|
26
|
+
.show-icon-labels & {
|
|
27
|
+
.components-button.has-icon {
|
|
28
|
+
// Hide the button icons when labels are set to display...
|
|
29
|
+
svg {
|
|
30
|
+
display: none;
|
|
31
|
+
}
|
|
32
|
+
// ... and display labels.
|
|
33
|
+
// Uses ::before as ::after is already used for active tab styling.
|
|
34
|
+
&::before {
|
|
35
|
+
content: attr(aria-label);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
25
39
|
}
|
|
26
40
|
|
|
27
41
|
// Provides positioning context for reset button. Without this then when an
|
|
@@ -72,7 +86,7 @@ $preview-image-height: 140px;
|
|
|
72
86
|
}
|
|
73
87
|
|
|
74
88
|
.block-editor-link-control__search-error {
|
|
75
|
-
margin: -$grid-unit-20*0.5 $grid-unit-20 $grid-unit-20; // negative margin to bring the error a bit closer to the button
|
|
89
|
+
margin: -$grid-unit-20 * 0.5 $grid-unit-20 $grid-unit-20; // negative margin to bring the error a bit closer to the button
|
|
76
90
|
}
|
|
77
91
|
|
|
78
92
|
.block-editor-link-control__search-actions {
|
|
@@ -83,10 +97,6 @@ $preview-image-height: 140px;
|
|
|
83
97
|
order: 20;
|
|
84
98
|
}
|
|
85
99
|
|
|
86
|
-
.components-button .block-editor-link-control__search-submit .has-icon {
|
|
87
|
-
margin: -1px;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
100
|
.block-editor-link-control__search-results-wrapper {
|
|
91
101
|
position: relative;
|
|
92
102
|
margin-top: -$grid-unit-20 + 1px;
|
|
@@ -103,7 +113,7 @@ $preview-image-height: 140px;
|
|
|
103
113
|
}
|
|
104
114
|
|
|
105
115
|
&::before {
|
|
106
|
-
height: $grid-unit-20*0.5;
|
|
116
|
+
height: $grid-unit-20 * 0.5;
|
|
107
117
|
top: 0;
|
|
108
118
|
bottom: auto;
|
|
109
119
|
}
|
|
@@ -123,7 +133,7 @@ $preview-image-height: 140px;
|
|
|
123
133
|
|
|
124
134
|
.block-editor-link-control__search-results {
|
|
125
135
|
margin: 0;
|
|
126
|
-
padding: $grid-unit-20*0.5 $grid-unit-20 $grid-unit-20*0.5;
|
|
136
|
+
padding: $grid-unit-20 * 0.5 $grid-unit-20 $grid-unit-20 * 0.5;
|
|
127
137
|
max-height: 200px;
|
|
128
138
|
overflow-y: auto; // allow results list to scroll
|
|
129
139
|
|
|
@@ -224,7 +234,6 @@ $preview-image-height: 140px;
|
|
|
224
234
|
max-height: 32px;
|
|
225
235
|
}
|
|
226
236
|
|
|
227
|
-
|
|
228
237
|
.block-editor-link-control__search-item-info,
|
|
229
238
|
.block-editor-link-control__search-item-title {
|
|
230
239
|
overflow: hidden;
|
|
@@ -344,16 +353,13 @@ $preview-image-height: 140px;
|
|
|
344
353
|
width: 100%;
|
|
345
354
|
}
|
|
346
355
|
|
|
347
|
-
|
|
348
356
|
.block-editor-link-control__search-item.is-fetching {
|
|
349
|
-
|
|
350
357
|
.block-editor-link-control__search-item-description {
|
|
351
358
|
&::before,
|
|
352
359
|
&::after {
|
|
353
360
|
animation: loadingpulse 1s linear infinite;
|
|
354
361
|
animation-delay: 0.5s; // avoid animating for fast network responses
|
|
355
362
|
}
|
|
356
|
-
|
|
357
363
|
}
|
|
358
364
|
|
|
359
365
|
.block-editor-link-control__search-item-image {
|
|
@@ -403,7 +409,7 @@ $preview-image-height: 140px;
|
|
|
403
409
|
&::before {
|
|
404
410
|
content: "";
|
|
405
411
|
position: absolute;
|
|
406
|
-
top: -#{$block-selected-child-margin*2};
|
|
412
|
+
top: -#{$block-selected-child-margin * 2};
|
|
407
413
|
left: 0;
|
|
408
414
|
display: block;
|
|
409
415
|
width: 100%;
|
|
@@ -51,8 +51,6 @@ jest.mock( '@wordpress/data/src/components/use-dispatch', () => ( {
|
|
|
51
51
|
useDispatch: () => ( { saveEntityRecords: jest.fn() } ),
|
|
52
52
|
} ) );
|
|
53
53
|
|
|
54
|
-
jest.useRealTimers();
|
|
55
|
-
|
|
56
54
|
jest.mock( '@wordpress/compose', () => ( {
|
|
57
55
|
...jest.requireActual( '@wordpress/compose' ),
|
|
58
56
|
useReducedMotion: jest.fn( () => true ),
|
|
@@ -1670,7 +1668,7 @@ describe( 'Addition Settings UI', () => {
|
|
|
1670
1668
|
render( <LinkControlConsumer /> );
|
|
1671
1669
|
|
|
1672
1670
|
const settingsToggle = screen.queryByRole( 'button', {
|
|
1673
|
-
name: '
|
|
1671
|
+
name: 'Link Settings',
|
|
1674
1672
|
ariaControls: 'link-settings-1',
|
|
1675
1673
|
} );
|
|
1676
1674
|
|
|
@@ -1690,7 +1688,7 @@ describe( 'Addition Settings UI', () => {
|
|
|
1690
1688
|
const user = userEvent.setup();
|
|
1691
1689
|
|
|
1692
1690
|
const settingsToggle = screen.queryByRole( 'button', {
|
|
1693
|
-
name: '
|
|
1691
|
+
name: 'Link Settings',
|
|
1694
1692
|
ariaControls: 'link-settings-1',
|
|
1695
1693
|
} );
|
|
1696
1694
|
|
|
@@ -2241,7 +2239,7 @@ describe( 'Controlling link title text', () => {
|
|
|
2241
2239
|
|
|
2242
2240
|
async function toggleSettingsDrawer( user ) {
|
|
2243
2241
|
const settingsToggle = screen.queryByRole( 'button', {
|
|
2244
|
-
name: '
|
|
2242
|
+
name: 'Link Settings',
|
|
2245
2243
|
} );
|
|
2246
2244
|
|
|
2247
2245
|
await user.click( settingsToggle );
|
|
@@ -27,6 +27,7 @@ import { sprintf, __ } from '@wordpress/i18n';
|
|
|
27
27
|
* Internal dependencies
|
|
28
28
|
*/
|
|
29
29
|
import ListViewLeaf from './leaf';
|
|
30
|
+
import useListViewScrollIntoView from './use-list-view-scroll-into-view';
|
|
30
31
|
import {
|
|
31
32
|
BlockMoverUpButton,
|
|
32
33
|
BlockMoverDownButton,
|
|
@@ -57,6 +58,7 @@ function ListViewBlock( {
|
|
|
57
58
|
isSyncedBranch,
|
|
58
59
|
} ) {
|
|
59
60
|
const cellRef = useRef( null );
|
|
61
|
+
const rowRef = useRef( null );
|
|
60
62
|
const [ isHovered, setIsHovered ] = useState( false );
|
|
61
63
|
const { clientId } = block;
|
|
62
64
|
|
|
@@ -220,6 +222,19 @@ function ListViewBlock( {
|
|
|
220
222
|
? selectedClientIds
|
|
221
223
|
: [ clientId ];
|
|
222
224
|
|
|
225
|
+
// Pass in a ref to the row, so that it can be scrolled
|
|
226
|
+
// into view when selected. For long lists, the placeholder for the
|
|
227
|
+
// selected block is also observed, within ListViewLeafPlaceholder.
|
|
228
|
+
useListViewScrollIntoView( {
|
|
229
|
+
isSelected,
|
|
230
|
+
rowItemRef: rowRef,
|
|
231
|
+
selectedClientIds,
|
|
232
|
+
} );
|
|
233
|
+
|
|
234
|
+
// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.
|
|
235
|
+
const currentlyEditingBlockInCanvas =
|
|
236
|
+
isSelected && selectedClientIds.length === 1;
|
|
237
|
+
|
|
223
238
|
return (
|
|
224
239
|
<ListViewLeaf
|
|
225
240
|
className={ classes }
|
|
@@ -235,6 +250,7 @@ function ListViewBlock( {
|
|
|
235
250
|
data-block={ clientId }
|
|
236
251
|
isExpanded={ canExpand ? isExpanded : undefined }
|
|
237
252
|
aria-selected={ !! isSelected || forceSelectionContentLock }
|
|
253
|
+
ref={ rowRef }
|
|
238
254
|
>
|
|
239
255
|
<TreeGridCell
|
|
240
256
|
className="block-editor-list-view-block__contents-cell"
|
|
@@ -256,7 +272,9 @@ function ListViewBlock( {
|
|
|
256
272
|
siblingBlockCount={ siblingBlockCount }
|
|
257
273
|
level={ level }
|
|
258
274
|
ref={ ref }
|
|
259
|
-
tabIndex={
|
|
275
|
+
tabIndex={
|
|
276
|
+
currentlyEditingBlockInCanvas ? 0 : tabIndex
|
|
277
|
+
}
|
|
260
278
|
onFocus={ onFocus }
|
|
261
279
|
isExpanded={ isExpanded }
|
|
262
280
|
selectedClientIds={ selectedClientIds }
|
|
@@ -155,8 +155,6 @@ function ListViewBranch( props ) {
|
|
|
155
155
|
|
|
156
156
|
const isDragged = !! draggedClientIds?.includes( clientId );
|
|
157
157
|
|
|
158
|
-
const showBlock = isDragged || blockInView;
|
|
159
|
-
|
|
160
158
|
// Make updates to the selected or dragged blocks synchronous,
|
|
161
159
|
// but asynchronous for any other block.
|
|
162
160
|
const isSelected = isClientIdSelected(
|
|
@@ -165,6 +163,7 @@ function ListViewBranch( props ) {
|
|
|
165
163
|
);
|
|
166
164
|
const isSelectedBranch =
|
|
167
165
|
isBranchSelected || ( isSelected && hasNestedBlocks );
|
|
166
|
+
const showBlock = isDragged || blockInView || isSelected;
|
|
168
167
|
return (
|
|
169
168
|
<AsyncModeProvider key={ clientId } value={ ! isSelected }>
|
|
170
169
|
{ showBlock && (
|
|
@@ -19,6 +19,7 @@ export default function ListViewExpander( { onClick } ) {
|
|
|
19
19
|
className="block-editor-list-view__expander"
|
|
20
20
|
onClick={ ( event ) => onClick( event, { forceToggle: true } ) }
|
|
21
21
|
aria-hidden="true"
|
|
22
|
+
data-testid="list-view-expander"
|
|
22
23
|
>
|
|
23
24
|
<Icon icon={ isRTL() ? chevronLeftSmall : chevronRightSmall } />
|
|
24
25
|
</span>
|
|
@@ -8,6 +8,8 @@ import classnames from 'classnames';
|
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { __experimentalTreeGridRow as TreeGridRow } from '@wordpress/components';
|
|
11
|
+
import { useMergeRefs } from '@wordpress/compose';
|
|
12
|
+
import { forwardRef } from '@wordpress/element';
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* Internal dependencies
|
|
@@ -16,33 +18,45 @@ import useMovingAnimation from '../use-moving-animation';
|
|
|
16
18
|
|
|
17
19
|
const AnimatedTreeGridRow = animated( TreeGridRow );
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
21
|
+
const ListViewLeaf = forwardRef(
|
|
22
|
+
(
|
|
23
|
+
{
|
|
24
|
+
isSelected,
|
|
25
|
+
position,
|
|
26
|
+
level,
|
|
27
|
+
rowCount,
|
|
28
|
+
children,
|
|
29
|
+
className,
|
|
30
|
+
path,
|
|
31
|
+
...props
|
|
32
|
+
},
|
|
33
|
+
ref
|
|
34
|
+
) => {
|
|
35
|
+
const animationRef = useMovingAnimation( {
|
|
36
|
+
isSelected,
|
|
37
|
+
adjustScrolling: false,
|
|
38
|
+
enableAnimation: true,
|
|
39
|
+
triggerAnimationOnChange: path,
|
|
40
|
+
} );
|
|
35
41
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
42
|
+
const mergedRef = useMergeRefs( [ ref, animationRef ] );
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<AnimatedTreeGridRow
|
|
46
|
+
ref={ mergedRef }
|
|
47
|
+
className={ classnames(
|
|
48
|
+
'block-editor-list-view-leaf',
|
|
49
|
+
className
|
|
50
|
+
) }
|
|
51
|
+
level={ level }
|
|
52
|
+
positionInSet={ position }
|
|
53
|
+
setSize={ rowCount }
|
|
54
|
+
{ ...props }
|
|
55
|
+
>
|
|
56
|
+
{ children }
|
|
57
|
+
</AnimatedTreeGridRow>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
export default ListViewLeaf;
|
|
@@ -21,7 +21,6 @@ export default function useBlockSelection() {
|
|
|
21
21
|
getBlockName,
|
|
22
22
|
getBlockParents,
|
|
23
23
|
getBlockSelectionStart,
|
|
24
|
-
getBlockSelectionEnd,
|
|
25
24
|
getSelectedBlockClientIds,
|
|
26
25
|
hasMultiSelection,
|
|
27
26
|
hasSelectedBlock,
|
|
@@ -154,7 +153,6 @@ export default function useBlockSelection() {
|
|
|
154
153
|
getBlockType,
|
|
155
154
|
getBlockParents,
|
|
156
155
|
getBlockSelectionStart,
|
|
157
|
-
getBlockSelectionEnd,
|
|
158
156
|
getSelectedBlockClientIds,
|
|
159
157
|
hasMultiSelection,
|
|
160
158
|
hasSelectedBlock,
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getScrollContainer } from '@wordpress/dom';
|
|
5
|
+
import { useLayoutEffect } from '@wordpress/element';
|
|
6
|
+
|
|
7
|
+
export default function useListViewScrollIntoView( {
|
|
8
|
+
isSelected,
|
|
9
|
+
selectedClientIds,
|
|
10
|
+
rowItemRef,
|
|
11
|
+
} ) {
|
|
12
|
+
const isSingleSelection = selectedClientIds.length === 1;
|
|
13
|
+
|
|
14
|
+
useLayoutEffect( () => {
|
|
15
|
+
// Skip scrolling into view if this particular block isn't selected,
|
|
16
|
+
// or if more than one block is selected overall. This is to avoid
|
|
17
|
+
// scrolling the view in a multi selection where the user has intentionally
|
|
18
|
+
// selected multiple blocks within the list view, but the initially
|
|
19
|
+
// selected block may be out of view.
|
|
20
|
+
if ( ! isSelected || ! isSingleSelection || ! rowItemRef.current ) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const scrollContainer = getScrollContainer( rowItemRef.current );
|
|
25
|
+
const { ownerDocument } = rowItemRef.current;
|
|
26
|
+
|
|
27
|
+
const windowScroll =
|
|
28
|
+
scrollContainer === ownerDocument.body ||
|
|
29
|
+
scrollContainer === ownerDocument.documentElement;
|
|
30
|
+
|
|
31
|
+
// If the there is no scroll container, of if the scroll container is the window,
|
|
32
|
+
// do not scroll into view, as the block is already in view.
|
|
33
|
+
if ( windowScroll || ! scrollContainer ) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const rowRect = rowItemRef.current.getBoundingClientRect();
|
|
38
|
+
const scrollContainerRect = scrollContainer.getBoundingClientRect();
|
|
39
|
+
|
|
40
|
+
// If the selected block is not currently visible, scroll to it.
|
|
41
|
+
if (
|
|
42
|
+
rowRect.top < scrollContainerRect.top ||
|
|
43
|
+
rowRect.bottom > scrollContainerRect.bottom
|
|
44
|
+
) {
|
|
45
|
+
rowItemRef.current.scrollIntoView();
|
|
46
|
+
}
|
|
47
|
+
}, [ isSelected, isSingleSelection, rowItemRef ] );
|
|
48
|
+
}
|
|
@@ -23,24 +23,22 @@
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
.block-editor-link-control {
|
|
26
|
-
width:
|
|
26
|
+
width: 300px; // Hardcoded width avoids resizing of control when switching between preview/edit.
|
|
27
27
|
|
|
28
28
|
.block-editor-url-input {
|
|
29
29
|
padding: 0; // Cancel unnecessary default 1px padding in this case.
|
|
30
30
|
margin: 0; // Reset default LinkControl margins.
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
.block-editor-link-control__search-item-title {
|
|
38
|
-
max-width: 180px;
|
|
33
|
+
.block-editor-link-control__search-item-title,
|
|
34
|
+
.block-editor-link-control__search-item-info {
|
|
35
|
+
max-width: 200px;
|
|
39
36
|
white-space: nowrap;
|
|
40
37
|
}
|
|
41
38
|
|
|
42
|
-
.block-editor-link-
|
|
43
|
-
|
|
39
|
+
.block-editor-link-control__tools {
|
|
40
|
+
justify-content: flex-end;
|
|
41
|
+
padding: $grid-unit-20 var(--wp-admin-border-width-focus) var(--wp-admin-border-width-focus);
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
.block-editor-link-control__search-item.is-current {
|
|
@@ -4,7 +4,12 @@
|
|
|
4
4
|
import { useInstanceId } from '@wordpress/compose';
|
|
5
5
|
import { speak } from '@wordpress/a11y';
|
|
6
6
|
import { useSelect } from '@wordpress/data';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
forwardRef,
|
|
9
|
+
useState,
|
|
10
|
+
useEffect,
|
|
11
|
+
useCallback,
|
|
12
|
+
} from '@wordpress/element';
|
|
8
13
|
import { __, sprintf } from '@wordpress/i18n';
|
|
9
14
|
|
|
10
15
|
/**
|
|
@@ -12,29 +17,33 @@ import { __, sprintf } from '@wordpress/i18n';
|
|
|
12
17
|
*/
|
|
13
18
|
import { store as blockEditorStore } from '../../store';
|
|
14
19
|
import useBlockDisplayTitle from '../block-title/use-block-display-title';
|
|
15
|
-
|
|
20
|
+
|
|
21
|
+
import { unlock } from '../../lock-unlock';
|
|
22
|
+
import { privateApis as blockEditorPrivateApis } from '../../private-apis';
|
|
23
|
+
|
|
24
|
+
const prioritizedInserterBlocks = [
|
|
25
|
+
'core/navigation-link/page',
|
|
26
|
+
'core/navigation-link',
|
|
27
|
+
];
|
|
16
28
|
|
|
17
29
|
export const Appender = forwardRef(
|
|
18
|
-
( { nestingLevel, blockCount, ...props }, ref ) => {
|
|
30
|
+
( { nestingLevel, blockCount, clientId, ...props }, ref ) => {
|
|
19
31
|
const [ insertedBlock, setInsertedBlock ] = useState( null );
|
|
20
32
|
|
|
21
33
|
const instanceId = useInstanceId( Appender );
|
|
22
|
-
const { hideInserter
|
|
23
|
-
|
|
24
|
-
getTemplateLock,
|
|
25
|
-
|
|
26
|
-
getSelectedBlockClientId,
|
|
27
|
-
} = select( blockEditorStore );
|
|
34
|
+
const { hideInserter } = useSelect(
|
|
35
|
+
( select ) => {
|
|
36
|
+
const { getTemplateLock, __unstableGetEditorMode } =
|
|
37
|
+
select( blockEditorStore );
|
|
28
38
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}, [] );
|
|
39
|
+
return {
|
|
40
|
+
hideInserter:
|
|
41
|
+
!! getTemplateLock( clientId ) ||
|
|
42
|
+
__unstableGetEditorMode() === 'zoom-out',
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
[ clientId ]
|
|
46
|
+
);
|
|
38
47
|
|
|
39
48
|
const blockTitle = useBlockDisplayTitle( {
|
|
40
49
|
clientId,
|
|
@@ -61,10 +70,23 @@ export const Appender = forwardRef(
|
|
|
61
70
|
);
|
|
62
71
|
}, [ insertedBlockTitle ] );
|
|
63
72
|
|
|
73
|
+
const orderInitialBlockItems = useCallback( ( items ) => {
|
|
74
|
+
items.sort( ( { id: aName }, { id: bName } ) => {
|
|
75
|
+
// Sort block items according to `prioritizedInserterBlocks`.
|
|
76
|
+
let aIndex = prioritizedInserterBlocks.indexOf( aName );
|
|
77
|
+
let bIndex = prioritizedInserterBlocks.indexOf( bName );
|
|
78
|
+
// All other block items should come after that.
|
|
79
|
+
if ( aIndex < 0 ) aIndex = prioritizedInserterBlocks.length;
|
|
80
|
+
if ( bIndex < 0 ) bIndex = prioritizedInserterBlocks.length;
|
|
81
|
+
return aIndex - bIndex;
|
|
82
|
+
} );
|
|
83
|
+
return items;
|
|
84
|
+
}, [] );
|
|
85
|
+
|
|
64
86
|
if ( hideInserter ) {
|
|
65
87
|
return null;
|
|
66
88
|
}
|
|
67
|
-
|
|
89
|
+
const { PrivateInserter } = unlock( blockEditorPrivateApis );
|
|
68
90
|
const descriptionId = `off-canvas-editor-appender__${ instanceId }`;
|
|
69
91
|
const description = sprintf(
|
|
70
92
|
/* translators: 1: The name of the block. 2: The numerical position of the block. 3: The level of nesting for the block. */
|
|
@@ -76,11 +98,11 @@ export const Appender = forwardRef(
|
|
|
76
98
|
|
|
77
99
|
return (
|
|
78
100
|
<div className="offcanvas-editor-appender">
|
|
79
|
-
<
|
|
101
|
+
<PrivateInserter
|
|
80
102
|
ref={ ref }
|
|
81
103
|
rootClientId={ clientId }
|
|
82
104
|
position="bottom right"
|
|
83
|
-
isAppender
|
|
105
|
+
isAppender
|
|
84
106
|
selectBlockOnInsert={ false }
|
|
85
107
|
shouldDirectInsert={ false }
|
|
86
108
|
__experimentalIsQuick
|
|
@@ -91,6 +113,7 @@ export const Appender = forwardRef(
|
|
|
91
113
|
setInsertedBlock( maybeInsertedBlock );
|
|
92
114
|
}
|
|
93
115
|
} }
|
|
116
|
+
orderInitialBlockItems={ orderInitialBlockItems }
|
|
94
117
|
/>
|
|
95
118
|
<div
|
|
96
119
|
className="offcanvas-editor-appender__description"
|
|
@@ -97,6 +97,7 @@ function ListViewBranch( props ) {
|
|
|
97
97
|
isExpanded,
|
|
98
98
|
parentId,
|
|
99
99
|
shouldShowInnerBlocks = true,
|
|
100
|
+
showAppender: showAppenderProp = true,
|
|
100
101
|
} = props;
|
|
101
102
|
|
|
102
103
|
const isContentLocked = useSelect(
|
|
@@ -117,7 +118,7 @@ function ListViewBranch( props ) {
|
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
// Only show the appender at the first level.
|
|
120
|
-
const showAppender = level === 1;
|
|
121
|
+
const showAppender = showAppenderProp && level === 1;
|
|
121
122
|
|
|
122
123
|
const filteredBlocks = blocks.filter( Boolean );
|
|
123
124
|
const blockCount = filteredBlocks.length;
|
|
@@ -205,6 +206,7 @@ function ListViewBranch( props ) {
|
|
|
205
206
|
isBranchSelected={ isSelectedBranch }
|
|
206
207
|
selectedClientIds={ selectedClientIds }
|
|
207
208
|
isExpanded={ isExpanded }
|
|
209
|
+
showAppender={ showAppenderProp }
|
|
208
210
|
/>
|
|
209
211
|
) }
|
|
210
212
|
</AsyncModeProvider>
|
|
@@ -220,6 +222,7 @@ function ListViewBranch( props ) {
|
|
|
220
222
|
<TreeGridCell>
|
|
221
223
|
{ ( treeGridCellProps ) => (
|
|
222
224
|
<Appender
|
|
225
|
+
clientId={ parentId }
|
|
223
226
|
nestingLevel={ level }
|
|
224
227
|
blockCount={ blockCount }
|
|
225
228
|
{ ...treeGridCellProps }
|