@wordpress/block-editor 10.3.0 → 10.5.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 +13 -0
- package/README.md +0 -1
- package/build/components/alignment-control/ui.js +1 -1
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/constants.js +1 -1
- package/build/components/block-alignment-control/constants.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +1 -1
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-compare/index.js +1 -3
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-edit/index.js +4 -2
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-list/block.js +3 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-lock/menu-item.js +1 -1
- package/build/components/block-lock/menu-item.js.map +1 -1
- package/build/components/block-lock/modal.js +16 -9
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-popover/inbetween.js +2 -1
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +2 -1
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/index.js +2 -4
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +2 -8
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/utils.js +3 -3
- package/build/components/block-styles/utils.js.map +1 -1
- package/build/components/block-switcher/index.js +21 -12
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +1 -1
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +12 -2
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +27 -4
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-vertical-alignment-control/ui.js +1 -1
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/border-radius-control/all-input-control.js +2 -1
- package/build/components/border-radius-control/all-input-control.js.map +1 -1
- package/build/components/border-radius-control/index.js +2 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +2 -1
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/colors/with-colors.js +4 -3
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/duotone-control/index.js +1 -1
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +24 -40
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +8 -6
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/iframe/index.js +1 -1
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/constants.js +1 -1
- package/build/components/image-editor/constants.js.map +1 -1
- package/build/components/index.js +9 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +10 -4
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +2 -7
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.js +4 -1
- package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build/components/inserter/search-items.js +23 -2
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/line-height-control/index.js +2 -1
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +18 -34
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +1 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/use-internal-input-value.js +26 -0
- package/build/components/link-control/use-internal-input-value.js.map +1 -0
- package/build/components/list-view/block.js +5 -3
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +9 -3
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +2 -1
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/media-replace-flow/index.js +1 -1
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/off-canvas-editor/block-contents.js +100 -0
- package/build/components/off-canvas-editor/block-contents.js.map +1 -0
- package/build/components/off-canvas-editor/block-select-button.js +119 -0
- package/build/components/off-canvas-editor/block-select-button.js.map +1 -0
- package/build/components/off-canvas-editor/block.js +292 -0
- package/build/components/off-canvas-editor/block.js.map +1 -0
- package/build/components/off-canvas-editor/branch.js +181 -0
- package/build/components/off-canvas-editor/branch.js.map +1 -0
- package/build/components/off-canvas-editor/context.js +19 -0
- package/build/components/off-canvas-editor/context.js.map +1 -0
- package/build/components/off-canvas-editor/drop-indicator.js +118 -0
- package/build/components/off-canvas-editor/drop-indicator.js.map +1 -0
- package/build/components/off-canvas-editor/expander.js +41 -0
- package/build/components/off-canvas-editor/expander.js.map +1 -0
- package/build/components/off-canvas-editor/index.js +204 -0
- package/build/components/off-canvas-editor/index.js.map +1 -0
- package/build/components/off-canvas-editor/leaf.js +60 -0
- package/build/components/off-canvas-editor/leaf.js.map +1 -0
- package/build/components/off-canvas-editor/use-block-selection.js +139 -0
- package/build/components/off-canvas-editor/use-block-selection.js.map +1 -0
- package/build/components/off-canvas-editor/use-list-view-client-ids.js +33 -0
- package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +1 -0
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js +235 -0
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -0
- package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +60 -0
- package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +1 -0
- package/build/components/off-canvas-editor/utils.js +60 -0
- package/build/components/off-canvas-editor/utils.js.map +1 -0
- package/build/components/rich-text/format-toolbar/index.js +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +1 -1
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +1 -1
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/spacing-sizes-control/all-input-control.js +6 -2
- package/build/components/spacing-sizes-control/all-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/axial-input-controls.js +6 -2
- package/build/components/spacing-sizes-control/axial-input-controls.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js +6 -2
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls.js +6 -2
- package/build/components/spacing-sizes-control/input-controls.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +12 -5
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/url-input/index.js +1 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/index.js +31 -2
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/use-setting/index.js +1 -1
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/border.js +1 -0
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +17 -1
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color.js +1 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +13 -6
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/dimensions.js +72 -13
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/font-size.js +1 -0
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/layout.js +5 -4
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/margin.js +26 -18
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/min-height.js +145 -0
- package/build/hooks/min-height.js.map +1 -0
- package/build/hooks/padding.js +22 -13
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/style.js +3 -2
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +7 -6
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +0 -1
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +23 -22
- package/build/layouts/flex.js.map +1 -1
- package/build/store/actions.js +30 -0
- package/build/store/actions.js.map +1 -1
- package/build/store/array.js +1 -7
- package/build/store/array.js.map +1 -1
- package/build/store/reducer.js +46 -14
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +62 -31
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +1 -1
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/constants.js +1 -1
- package/build-module/components/block-alignment-control/constants.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-compare/index.js +2 -3
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-edit/index.js +4 -2
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-list/block.js +3 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-lock/menu-item.js +2 -2
- package/build-module/components/block-lock/menu-item.js.map +1 -1
- package/build-module/components/block-lock/modal.js +17 -10
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +2 -1
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +2 -1
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/index.js +2 -3
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -7
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/utils.js +3 -3
- package/build-module/components/block-styles/utils.js.map +1 -1
- package/build-module/components/block-switcher/index.js +21 -11
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +12 -2
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +27 -5
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/border-radius-control/all-input-control.js +2 -1
- package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +2 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +2 -1
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/colors/with-colors.js +5 -4
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/duotone-control/index.js +1 -1
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +24 -40
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +9 -7
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/iframe/index.js +1 -1
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/constants.js +1 -1
- package/build-module/components/image-editor/constants.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +10 -4
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +2 -6
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.js +3 -1
- package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build-module/components/inserter/search-items.js +23 -3
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/line-height-control/index.js +2 -1
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +17 -34
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +1 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/use-internal-input-value.js +18 -0
- package/build-module/components/link-control/use-internal-input-value.js.map +1 -0
- package/build-module/components/list-view/block.js +5 -3
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +9 -3
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +2 -1
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +1 -1
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/block-contents.js +85 -0
- package/build-module/components/off-canvas-editor/block-contents.js.map +1 -0
- package/build-module/components/off-canvas-editor/block-select-button.js +101 -0
- package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -0
- package/build-module/components/off-canvas-editor/block.js +268 -0
- package/build-module/components/off-canvas-editor/block.js.map +1 -0
- package/build-module/components/off-canvas-editor/branch.js +165 -0
- package/build-module/components/off-canvas-editor/branch.js.map +1 -0
- package/build-module/components/off-canvas-editor/context.js +7 -0
- package/build-module/components/off-canvas-editor/context.js.map +1 -0
- package/build-module/components/off-canvas-editor/drop-indicator.js +111 -0
- package/build-module/components/off-canvas-editor/drop-indicator.js.map +1 -0
- package/build-module/components/off-canvas-editor/expander.js +32 -0
- package/build-module/components/off-canvas-editor/expander.js.map +1 -0
- package/build-module/components/off-canvas-editor/index.js +181 -0
- package/build-module/components/off-canvas-editor/index.js.map +1 -0
- package/build-module/components/off-canvas-editor/leaf.js +45 -0
- package/build-module/components/off-canvas-editor/leaf.js.map +1 -0
- package/build-module/components/off-canvas-editor/use-block-selection.js +124 -0
- package/build-module/components/off-canvas-editor/use-block-selection.js.map +1 -0
- package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +24 -0
- package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +1 -0
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +220 -0
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -0
- package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +50 -0
- package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +1 -0
- package/build-module/components/off-canvas-editor/utils.js +44 -0
- package/build-module/components/off-canvas-editor/utils.js.map +1 -0
- package/build-module/components/rich-text/format-toolbar/index.js +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +1 -1
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/spacing-sizes-control/all-input-control.js +6 -2
- package/build-module/components/spacing-sizes-control/all-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/axial-input-controls.js +6 -2
- package/build-module/components/spacing-sizes-control/axial-input-controls.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js +6 -2
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -5
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/url-input/index.js +1 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/index.js +30 -3
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +1 -1
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/border.js +1 -0
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +17 -1
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color.js +1 -1
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +15 -8
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/dimensions.js +67 -12
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/font-size.js +1 -0
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/layout.js +6 -5
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/margin.js +27 -19
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/min-height.js +122 -0
- package/build-module/hooks/min-height.js.map +1 -0
- package/build-module/hooks/padding.js +23 -14
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/style.js +4 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +7 -7
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +0 -1
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +24 -23
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/store/actions.js +26 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/array.js +1 -6
- package/build-module/store/array.js.map +1 -1
- package/build-module/store/reducer.js +44 -14
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +59 -31
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +88 -88
- package/build-style/style.css +84 -84
- package/package.json +29 -28
- package/src/components/alignment-control/README.md +1 -1
- package/src/components/alignment-control/ui.js +1 -1
- package/src/components/block-alignment-control/constants.js +1 -1
- package/src/components/block-alignment-control/test/index.native.js +4 -4
- package/src/components/block-alignment-matrix-control/index.js +1 -1
- package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +13 -11
- package/src/components/block-breadcrumb/test/index.js +1 -1
- package/src/components/block-compare/index.js +3 -2
- package/src/components/block-draggable/test/helpers.native.js +3 -3
- package/src/components/block-draggable/test/index.native.js +27 -27
- package/src/components/block-edit/index.js +2 -1
- package/src/components/block-list/block.js +2 -0
- package/src/components/block-list/style.scss +11 -6
- package/src/components/block-lock/menu-item.js +5 -2
- package/src/components/block-lock/modal.js +19 -36
- package/src/components/block-lock/style.scss +8 -17
- package/src/components/block-mover/stories/index.js +1 -1
- package/src/components/block-mover/style.scss +35 -1
- package/src/components/block-popover/inbetween.js +1 -0
- package/src/components/block-popover/index.js +1 -0
- package/src/components/block-popover/style.scss +1 -5
- package/src/components/block-preview/index.js +8 -3
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -7
- package/src/components/block-styles/utils.js +3 -3
- package/src/components/block-switcher/index.js +21 -11
- package/src/components/block-switcher/preview-block-popover.js +1 -1
- package/src/components/block-tools/insertion-point.js +10 -1
- package/src/components/block-tools/selected-block-popover.js +80 -34
- package/src/components/block-tools/style.scss +15 -0
- package/src/components/block-variation-picker/README.md +1 -1
- package/src/components/block-vertical-alignment-control/ui.js +1 -1
- package/src/components/border-radius-control/all-input-control.js +1 -0
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/input-controls.js +1 -0
- package/src/components/border-radius-control/style.scss +15 -24
- package/src/components/color-palette/test/__snapshots__/control.js.snap +85 -83
- package/src/components/color-palette/test/control.js +1 -1
- package/src/components/colors/with-colors.js +13 -23
- package/src/components/default-block-appender/style.scss +1 -0
- package/src/components/duotone-control/index.js +1 -1
- package/src/components/font-sizes/fluid-utils.js +37 -64
- package/src/components/font-sizes/test/fluid-utils.js +5 -5
- package/src/components/font-sizes/with-font-sizes.js +15 -13
- package/src/components/iframe/index.js +1 -1
- package/src/components/image-editor/constants.js +1 -1
- package/src/components/index.js +1 -0
- package/src/components/inner-blocks/index.js +11 -4
- package/src/components/inner-blocks/test/index.js +4 -0
- package/src/components/inserter/hooks/use-insertion-point.js +3 -11
- package/src/components/inserter/reusable-blocks-tab.js +4 -2
- package/src/components/inserter/search-items.js +23 -3
- package/src/components/inserter/style.scss +8 -7
- package/src/components/inserter/test/reusable-blocks-tab.js +14 -57
- package/src/components/inserter/test/search-items.js +6 -0
- package/src/components/inserter-list-item/style.scss +2 -0
- package/src/components/letter-spacing-control/README.md +55 -0
- package/src/components/line-height-control/index.js +1 -0
- package/src/components/link-control/README.md +3 -3
- package/src/components/link-control/index.js +23 -39
- package/src/components/link-control/search-input.js +1 -1
- package/src/components/link-control/test/index.js +272 -241
- package/src/components/link-control/use-internal-input-value.js +22 -0
- package/src/components/list-view/block.js +4 -3
- package/src/components/list-view/branch.js +11 -6
- package/src/components/list-view/drop-indicator.js +1 -0
- package/src/components/list-view/style.scss +1 -36
- package/src/components/media-replace-flow/index.js +1 -1
- package/src/components/media-replace-flow/test/index.js +69 -51
- package/src/components/off-canvas-editor/README.md +5 -0
- package/src/components/off-canvas-editor/block-contents.js +89 -0
- package/src/components/off-canvas-editor/block-select-button.js +113 -0
- package/src/components/off-canvas-editor/block.js +335 -0
- package/src/components/off-canvas-editor/branch.js +210 -0
- package/src/components/off-canvas-editor/context.js +8 -0
- package/src/components/off-canvas-editor/drop-indicator.js +126 -0
- package/src/components/off-canvas-editor/expander.js +26 -0
- package/src/components/off-canvas-editor/index.js +216 -0
- package/src/components/off-canvas-editor/leaf.js +48 -0
- package/src/components/off-canvas-editor/style.scss +397 -0
- package/src/components/off-canvas-editor/test/utils.js +50 -0
- package/src/components/off-canvas-editor/use-block-selection.js +169 -0
- package/src/components/off-canvas-editor/use-list-view-client-ids.js +29 -0
- package/src/components/off-canvas-editor/use-list-view-drop-zone.js +260 -0
- package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +58 -0
- package/src/components/off-canvas-editor/utils.js +58 -0
- package/src/components/responsive-block-control/test/index.js +69 -92
- package/src/components/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/format-toolbar-container.js +1 -1
- package/src/components/rich-text/use-paste-handler.js +1 -1
- package/src/components/spacing-sizes-control/all-input-control.js +4 -0
- package/src/components/spacing-sizes-control/axial-input-controls.js +4 -0
- package/src/components/spacing-sizes-control/index.js +4 -0
- package/src/components/spacing-sizes-control/input-controls.js +4 -0
- package/src/components/spacing-sizes-control/spacing-input-control.js +10 -1
- package/src/components/spacing-sizes-control/style.scss +1 -0
- package/src/components/url-input/index.js +1 -1
- package/src/components/url-popover/README.md +12 -3
- package/src/components/url-popover/index.js +33 -3
- package/src/components/use-setting/index.js +7 -1
- package/src/hooks/border.js +1 -0
- package/src/hooks/color-panel.js +13 -1
- package/src/hooks/color.js +2 -0
- package/src/hooks/content-lock-ui.js +46 -34
- package/src/hooks/dimensions.js +106 -19
- package/src/hooks/font-size.js +1 -0
- package/src/hooks/layout.js +8 -11
- package/src/hooks/margin.js +23 -17
- package/src/hooks/min-height.js +121 -0
- package/src/hooks/padding.js +23 -19
- package/src/hooks/style.js +10 -2
- package/src/hooks/test/align.js +96 -72
- package/src/hooks/test/style.js +4 -0
- package/src/hooks/test/use-typography-props.js +1 -1
- package/src/hooks/utils.js +5 -6
- package/src/layouts/constrained.js +0 -1
- package/src/layouts/flex.js +44 -39
- package/src/store/actions.js +26 -0
- package/src/store/array.js +1 -6
- package/src/store/reducer.js +50 -40
- package/src/store/selectors.js +43 -29
- package/src/store/test/actions.js +18 -0
- package/src/store/test/reducer.js +40 -0
- package/src/store/test/selectors.js +20 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useState, useEffect } from '@wordpress/element';
|
|
5
|
+
|
|
6
|
+
export default function useInternalInputValue( value ) {
|
|
7
|
+
const [ internalInputValue, setInternalInputValue ] = useState(
|
|
8
|
+
value || ''
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
useEffect( () => {
|
|
12
|
+
/**
|
|
13
|
+
* If the value's `text` property changes then sync this
|
|
14
|
+
* back up with state.
|
|
15
|
+
*/
|
|
16
|
+
if ( value?.title && value.title !== internalInputValue ) {
|
|
17
|
+
setInternalInputValue( value.title );
|
|
18
|
+
}
|
|
19
|
+
}, [ value ] );
|
|
20
|
+
|
|
21
|
+
return [ internalInputValue, setInternalInputValue ];
|
|
22
|
+
}
|
|
@@ -59,7 +59,7 @@ function ListViewBlock( {
|
|
|
59
59
|
const [ isHovered, setIsHovered ] = useState( false );
|
|
60
60
|
const { clientId } = block;
|
|
61
61
|
|
|
62
|
-
const { isLocked, isContentLocked } = useBlockLock( clientId );
|
|
62
|
+
const { isLocked, isContentLocked, canEdit } = useBlockLock( clientId );
|
|
63
63
|
const forceSelectionContentLock = useSelect(
|
|
64
64
|
( select ) => {
|
|
65
65
|
if ( isSelected ) {
|
|
@@ -76,6 +76,7 @@ function ListViewBlock( {
|
|
|
76
76
|
[ isContentLocked, clientId, isSelected ]
|
|
77
77
|
);
|
|
78
78
|
|
|
79
|
+
const canExpand = isContentLocked ? false : canEdit;
|
|
79
80
|
const isFirstSelectedBlock =
|
|
80
81
|
forceSelectionContentLock ||
|
|
81
82
|
( isSelected && selectedClientIds[ 0 ] === clientId );
|
|
@@ -229,7 +230,7 @@ function ListViewBlock( {
|
|
|
229
230
|
path={ path }
|
|
230
231
|
id={ `list-view-block-${ clientId }` }
|
|
231
232
|
data-block={ clientId }
|
|
232
|
-
isExpanded={
|
|
233
|
+
isExpanded={ canExpand ? isExpanded : undefined }
|
|
233
234
|
aria-selected={ !! isSelected || forceSelectionContentLock }
|
|
234
235
|
>
|
|
235
236
|
<TreeGridCell
|
|
@@ -238,7 +239,7 @@ function ListViewBlock( {
|
|
|
238
239
|
ref={ cellRef }
|
|
239
240
|
aria-label={ blockAriaLabel }
|
|
240
241
|
aria-selected={ !! isSelected || forceSelectionContentLock }
|
|
241
|
-
aria-expanded={
|
|
242
|
+
aria-expanded={ canExpand ? isExpanded : undefined }
|
|
242
243
|
aria-describedby={ descriptionId }
|
|
243
244
|
>
|
|
244
245
|
{ ( { ref, tabIndex, onFocus } ) => (
|
|
@@ -94,20 +94,25 @@ function ListViewBranch( props ) {
|
|
|
94
94
|
shouldShowInnerBlocks = true,
|
|
95
95
|
} = props;
|
|
96
96
|
|
|
97
|
-
const
|
|
97
|
+
const canParentExpand = useSelect(
|
|
98
98
|
( select ) => {
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
if ( ! parentId ) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const isContentLocked =
|
|
101
104
|
select( blockEditorStore ).getTemplateLock( parentId ) ===
|
|
102
|
-
|
|
103
|
-
);
|
|
105
|
+
'contentOnly';
|
|
106
|
+
const canEdit = select( blockEditorStore ).canEditBlock( parentId );
|
|
107
|
+
|
|
108
|
+
return isContentLocked ? false : canEdit;
|
|
104
109
|
},
|
|
105
110
|
[ parentId ]
|
|
106
111
|
);
|
|
107
112
|
|
|
108
113
|
const { expandedState, draggedClientIds } = useListViewContext();
|
|
109
114
|
|
|
110
|
-
if (
|
|
115
|
+
if ( ! canParentExpand ) {
|
|
111
116
|
return null;
|
|
112
117
|
}
|
|
113
118
|
|
|
@@ -249,39 +249,12 @@
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
//
|
|
253
|
-
&:focus:enabled {
|
|
254
|
-
box-shadow: none;
|
|
255
|
-
outline: none;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// Focus style.
|
|
259
|
-
&:focus {
|
|
260
|
-
box-shadow: none;
|
|
261
|
-
outline: none;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
&:focus::before {
|
|
265
|
-
@include block-toolbar-button-style__focus();
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
// Focus and toggle pseudo elements.
|
|
252
|
+
// Tweak size and position of focus ring.
|
|
269
253
|
&::before {
|
|
270
|
-
content: "";
|
|
271
|
-
position: absolute;
|
|
272
|
-
display: block;
|
|
273
|
-
border-radius: $radius-block-ui;
|
|
274
254
|
height: 16px;
|
|
275
255
|
min-width: 100%;
|
|
276
|
-
|
|
277
|
-
// Position the focus rectangle.
|
|
278
256
|
left: 0;
|
|
279
257
|
right: 0;
|
|
280
|
-
|
|
281
|
-
// Animate in.
|
|
282
|
-
animation: components-button__appear-animation 0.1s ease;
|
|
283
|
-
animation-fill-mode: forwards;
|
|
284
|
-
@include reduce-motion("animation");
|
|
285
258
|
}
|
|
286
259
|
}
|
|
287
260
|
|
|
@@ -416,14 +389,6 @@ $block-navigation-max-indent: 8;
|
|
|
416
389
|
}
|
|
417
390
|
}
|
|
418
391
|
|
|
419
|
-
// Reset some popover defaults for the drop indicator.
|
|
420
|
-
.block-editor-list-view-drop-indicator > .components-popover__content {
|
|
421
|
-
margin-left: 0;
|
|
422
|
-
border: none;
|
|
423
|
-
box-shadow: none;
|
|
424
|
-
outline: none;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
392
|
.block-editor-list-view-placeholder {
|
|
428
393
|
padding: 0;
|
|
429
394
|
margin: 0;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render,
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* WordPress dependencies
|
|
@@ -31,80 +32,97 @@ function TestWrapper() {
|
|
|
31
32
|
);
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
function setUpMediaReplaceFlow() {
|
|
35
|
-
const { container } = render( <TestWrapper /> );
|
|
36
|
-
return container;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
35
|
describe( 'General media replace flow', () => {
|
|
40
36
|
it( 'renders successfully', () => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
'button
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
render( <TestWrapper /> );
|
|
38
|
+
|
|
39
|
+
expect(
|
|
40
|
+
screen.getByRole( 'button', {
|
|
41
|
+
expanded: false,
|
|
42
|
+
name: 'Replace',
|
|
43
|
+
} )
|
|
44
|
+
).toBeVisible();
|
|
48
45
|
} );
|
|
49
46
|
|
|
50
|
-
it( 'renders replace menu', () => {
|
|
51
|
-
const
|
|
47
|
+
it( 'renders replace menu', async () => {
|
|
48
|
+
const user = userEvent.setup( {
|
|
49
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
50
|
+
} );
|
|
52
51
|
|
|
53
|
-
|
|
54
|
-
'button[aria-expanded="false"]'
|
|
55
|
-
);
|
|
56
|
-
mediaReplaceButton.click();
|
|
52
|
+
render( <TestWrapper /> );
|
|
57
53
|
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
await user.click(
|
|
55
|
+
screen.getByRole( 'button', {
|
|
56
|
+
expanded: false,
|
|
57
|
+
name: 'Replace',
|
|
58
|
+
} )
|
|
60
59
|
);
|
|
61
60
|
|
|
62
|
-
|
|
61
|
+
const uploadMenu = screen.getByRole( 'menu' );
|
|
62
|
+
|
|
63
|
+
expect( uploadMenu ).toBeInTheDocument();
|
|
64
|
+
expect( uploadMenu ).not.toBeVisible();
|
|
63
65
|
} );
|
|
64
66
|
|
|
65
|
-
it( 'displays media URL', () => {
|
|
66
|
-
const
|
|
67
|
+
it( 'displays media URL', async () => {
|
|
68
|
+
const user = userEvent.setup( {
|
|
69
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
70
|
+
} );
|
|
67
71
|
|
|
68
|
-
|
|
69
|
-
'button[aria-expanded="false"]'
|
|
70
|
-
);
|
|
71
|
-
mediaReplaceButton.click();
|
|
72
|
+
render( <TestWrapper /> );
|
|
72
73
|
|
|
73
|
-
|
|
74
|
+
await user.click(
|
|
75
|
+
screen.getByRole( 'button', {
|
|
76
|
+
expanded: false,
|
|
77
|
+
name: 'Replace',
|
|
78
|
+
} )
|
|
79
|
+
);
|
|
74
80
|
|
|
75
|
-
expect(
|
|
81
|
+
expect(
|
|
82
|
+
screen.getByRole( 'link', {
|
|
83
|
+
name: 'example.media (opens in a new tab)',
|
|
84
|
+
} )
|
|
85
|
+
).toHaveAttribute( 'href', 'https://example.media' );
|
|
76
86
|
} );
|
|
77
87
|
|
|
78
|
-
it( 'edits media URL', () => {
|
|
79
|
-
const
|
|
88
|
+
it( 'edits media URL', async () => {
|
|
89
|
+
const user = userEvent.setup( {
|
|
90
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
91
|
+
} );
|
|
80
92
|
|
|
81
|
-
|
|
82
|
-
'button[aria-expanded="false"]'
|
|
83
|
-
);
|
|
84
|
-
mediaReplaceButton.click();
|
|
93
|
+
render( <TestWrapper /> );
|
|
85
94
|
|
|
86
|
-
|
|
87
|
-
|
|
95
|
+
await user.click(
|
|
96
|
+
screen.getByRole( 'button', {
|
|
97
|
+
expanded: false,
|
|
98
|
+
name: 'Replace',
|
|
99
|
+
} )
|
|
88
100
|
);
|
|
89
101
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
102
|
+
await user.click(
|
|
103
|
+
screen.getByRole( 'button', {
|
|
104
|
+
name: 'Edit',
|
|
105
|
+
} )
|
|
94
106
|
);
|
|
95
107
|
|
|
96
|
-
|
|
97
|
-
|
|
108
|
+
const mediaURLInput = screen.getByRole( 'combobox', {
|
|
109
|
+
name: 'URL',
|
|
110
|
+
expanded: false,
|
|
98
111
|
} );
|
|
99
112
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
saveMediaURLButton.click();
|
|
113
|
+
await user.clear( mediaURLInput );
|
|
114
|
+
await user.type( mediaURLInput, 'https://new.example.media' );
|
|
105
115
|
|
|
106
|
-
|
|
116
|
+
await user.click(
|
|
117
|
+
screen.getByRole( 'button', {
|
|
118
|
+
name: 'Submit',
|
|
119
|
+
} )
|
|
120
|
+
);
|
|
107
121
|
|
|
108
|
-
expect(
|
|
122
|
+
expect(
|
|
123
|
+
screen.getByRole( 'link', {
|
|
124
|
+
name: 'new.example.media (opens in a new tab)',
|
|
125
|
+
} )
|
|
126
|
+
).toHaveAttribute( 'href', 'https://new.example.media' );
|
|
109
127
|
} );
|
|
110
128
|
} );
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Experimental Off Canvas Editor
|
|
2
|
+
|
|
3
|
+
The __ExperimentalOffCanvasEditor component is a modified ListView compoent. It provides an overview of the hierarchical structure of all blocks in the editor. The blocks are presented vertically one below the other. It enables editing of hierarchy and addition of elements in the block tree without selecting the block instance on the canvas.
|
|
4
|
+
|
|
5
|
+
It is an experimental component which may end up completely merged into the ListView component via configuration props.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import classnames from 'classnames';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useSelect } from '@wordpress/data';
|
|
10
|
+
import { forwardRef } from '@wordpress/element';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import ListViewBlockSelectButton from './block-select-button';
|
|
16
|
+
import BlockDraggable from '../block-draggable';
|
|
17
|
+
import { store as blockEditorStore } from '../../store';
|
|
18
|
+
|
|
19
|
+
const ListViewBlockContents = forwardRef(
|
|
20
|
+
(
|
|
21
|
+
{
|
|
22
|
+
onClick,
|
|
23
|
+
onToggleExpanded,
|
|
24
|
+
block,
|
|
25
|
+
isSelected,
|
|
26
|
+
position,
|
|
27
|
+
siblingBlockCount,
|
|
28
|
+
level,
|
|
29
|
+
isExpanded,
|
|
30
|
+
selectedClientIds,
|
|
31
|
+
...props
|
|
32
|
+
},
|
|
33
|
+
ref
|
|
34
|
+
) => {
|
|
35
|
+
const { clientId } = block;
|
|
36
|
+
|
|
37
|
+
const { blockMovingClientId, selectedBlockInBlockEditor } = useSelect(
|
|
38
|
+
( select ) => {
|
|
39
|
+
const { hasBlockMovingClientId, getSelectedBlockClientId } =
|
|
40
|
+
select( blockEditorStore );
|
|
41
|
+
return {
|
|
42
|
+
blockMovingClientId: hasBlockMovingClientId(),
|
|
43
|
+
selectedBlockInBlockEditor: getSelectedBlockClientId(),
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
[ clientId ]
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const isBlockMoveTarget =
|
|
50
|
+
blockMovingClientId && selectedBlockInBlockEditor === clientId;
|
|
51
|
+
|
|
52
|
+
const className = classnames( 'block-editor-list-view-block-contents', {
|
|
53
|
+
'is-dropping-before': isBlockMoveTarget,
|
|
54
|
+
} );
|
|
55
|
+
|
|
56
|
+
// Only include all selected blocks if the currently clicked on block
|
|
57
|
+
// is one of the selected blocks. This ensures that if a user attempts
|
|
58
|
+
// to drag a block that isn't part of the selection, they're still able
|
|
59
|
+
// to drag it and rearrange its position.
|
|
60
|
+
const draggableClientIds = selectedClientIds.includes( clientId )
|
|
61
|
+
? selectedClientIds
|
|
62
|
+
: [ clientId ];
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<BlockDraggable clientIds={ draggableClientIds }>
|
|
66
|
+
{ ( { draggable, onDragStart, onDragEnd } ) => (
|
|
67
|
+
<ListViewBlockSelectButton
|
|
68
|
+
ref={ ref }
|
|
69
|
+
className={ className }
|
|
70
|
+
block={ block }
|
|
71
|
+
onClick={ onClick }
|
|
72
|
+
onToggleExpanded={ onToggleExpanded }
|
|
73
|
+
isSelected={ isSelected }
|
|
74
|
+
position={ position }
|
|
75
|
+
siblingBlockCount={ siblingBlockCount }
|
|
76
|
+
level={ level }
|
|
77
|
+
draggable={ draggable }
|
|
78
|
+
onDragStart={ onDragStart }
|
|
79
|
+
onDragEnd={ onDragEnd }
|
|
80
|
+
isExpanded={ isExpanded }
|
|
81
|
+
{ ...props }
|
|
82
|
+
/>
|
|
83
|
+
) }
|
|
84
|
+
</BlockDraggable>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
export default ListViewBlockContents;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import classnames from 'classnames';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import {
|
|
10
|
+
Button,
|
|
11
|
+
__experimentalHStack as HStack,
|
|
12
|
+
__experimentalTruncate as Truncate,
|
|
13
|
+
} from '@wordpress/components';
|
|
14
|
+
import { forwardRef } from '@wordpress/element';
|
|
15
|
+
import { Icon, lock } from '@wordpress/icons';
|
|
16
|
+
import { SPACE, ENTER } from '@wordpress/keycodes';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Internal dependencies
|
|
20
|
+
*/
|
|
21
|
+
import BlockIcon from '../block-icon';
|
|
22
|
+
import useBlockDisplayInformation from '../use-block-display-information';
|
|
23
|
+
import useBlockDisplayTitle from '../block-title/use-block-display-title';
|
|
24
|
+
import ListViewExpander from './expander';
|
|
25
|
+
import { useBlockLock } from '../block-lock';
|
|
26
|
+
|
|
27
|
+
function ListViewBlockSelectButton(
|
|
28
|
+
{
|
|
29
|
+
className,
|
|
30
|
+
block: { clientId },
|
|
31
|
+
onClick,
|
|
32
|
+
onToggleExpanded,
|
|
33
|
+
tabIndex,
|
|
34
|
+
onFocus,
|
|
35
|
+
onDragStart,
|
|
36
|
+
onDragEnd,
|
|
37
|
+
draggable,
|
|
38
|
+
},
|
|
39
|
+
ref
|
|
40
|
+
) {
|
|
41
|
+
const blockInformation = useBlockDisplayInformation( clientId );
|
|
42
|
+
const blockTitle = useBlockDisplayTitle( {
|
|
43
|
+
clientId,
|
|
44
|
+
context: 'list-view',
|
|
45
|
+
} );
|
|
46
|
+
const { isLocked } = useBlockLock( clientId );
|
|
47
|
+
|
|
48
|
+
// The `href` attribute triggers the browser's native HTML drag operations.
|
|
49
|
+
// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.
|
|
50
|
+
// We need to clear any HTML drag data to prevent `pasteHandler` from firing
|
|
51
|
+
// inside the `useOnBlockDrop` hook.
|
|
52
|
+
const onDragStartHandler = ( event ) => {
|
|
53
|
+
event.dataTransfer.clearData();
|
|
54
|
+
onDragStart?.( event );
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
function onKeyDownHandler( event ) {
|
|
58
|
+
if ( event.keyCode === ENTER || event.keyCode === SPACE ) {
|
|
59
|
+
onClick( event );
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<>
|
|
65
|
+
<Button
|
|
66
|
+
className={ classnames(
|
|
67
|
+
'block-editor-list-view-block-select-button',
|
|
68
|
+
className
|
|
69
|
+
) }
|
|
70
|
+
onClick={ onClick }
|
|
71
|
+
onKeyDown={ onKeyDownHandler }
|
|
72
|
+
ref={ ref }
|
|
73
|
+
tabIndex={ tabIndex }
|
|
74
|
+
onFocus={ onFocus }
|
|
75
|
+
onDragStart={ onDragStartHandler }
|
|
76
|
+
onDragEnd={ onDragEnd }
|
|
77
|
+
draggable={ draggable }
|
|
78
|
+
href={ `#block-${ clientId }` }
|
|
79
|
+
aria-hidden={ true }
|
|
80
|
+
>
|
|
81
|
+
<ListViewExpander onClick={ onToggleExpanded } />
|
|
82
|
+
<BlockIcon icon={ blockInformation?.icon } showColors />
|
|
83
|
+
<HStack
|
|
84
|
+
alignment="center"
|
|
85
|
+
className="block-editor-list-view-block-select-button__label-wrapper"
|
|
86
|
+
justify="flex-start"
|
|
87
|
+
spacing={ 1 }
|
|
88
|
+
>
|
|
89
|
+
<span className="block-editor-list-view-block-select-button__title">
|
|
90
|
+
<Truncate ellipsizeMode="auto">{ blockTitle }</Truncate>
|
|
91
|
+
</span>
|
|
92
|
+
{ blockInformation?.anchor && (
|
|
93
|
+
<span className="block-editor-list-view-block-select-button__anchor-wrapper">
|
|
94
|
+
<Truncate
|
|
95
|
+
className="block-editor-list-view-block-select-button__anchor"
|
|
96
|
+
ellipsizeMode="auto"
|
|
97
|
+
>
|
|
98
|
+
{ blockInformation.anchor }
|
|
99
|
+
</Truncate>
|
|
100
|
+
</span>
|
|
101
|
+
) }
|
|
102
|
+
{ isLocked && (
|
|
103
|
+
<span className="block-editor-list-view-block-select-button__lock">
|
|
104
|
+
<Icon icon={ lock } />
|
|
105
|
+
</span>
|
|
106
|
+
) }
|
|
107
|
+
</HStack>
|
|
108
|
+
</Button>
|
|
109
|
+
</>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export default forwardRef( ListViewBlockSelectButton );
|