@wordpress/block-editor 12.9.0 → 12.10.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 +6 -0
- package/README.md +33 -3
- package/build/components/block-canvas/index.js +107 -0
- package/build/components/block-canvas/index.js.map +1 -0
- package/build/components/block-inspector/index.js +4 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +19 -4
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +66 -0
- package/build/components/block-patterns-paging/index.js.map +1 -0
- package/build/components/block-settings-menu/block-settings-dropdown.js +28 -0
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +4 -7
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +1 -0
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js +3 -7
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +18 -7
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +5 -1
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +1 -1
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +2 -4
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/default-block-appender/index.native.js +20 -1
- package/build/components/default-block-appender/index.native.js.map +1 -1
- package/build/components/duotone/utils.js +68 -0
- package/build/components/duotone/utils.js.map +1 -1
- package/build/components/editor-styles/index.js +28 -9
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/global-styles/hooks.js +2 -101
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +61 -0
- package/build/components/global-styles/image-settings-panel.js.map +1 -0
- package/build/components/global-styles/index.js +11 -17
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +19 -15
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +1 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +67 -33
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +2 -5
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-editor/use-transform-image.js +9 -9
- package/build/components/image-editor/use-transform-image.js.map +1 -1
- package/build/components/index.js +8 -12
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +6 -5
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +13 -7
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/explorer.js +12 -6
- package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +57 -23
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/sidebar.js +24 -9
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-source-filter.js +54 -0
- package/build/components/inserter/block-patterns-source-filter.js.map +1 -0
- package/build/components/inserter/block-patterns-sync-filter.js +46 -0
- package/build/components/inserter/block-patterns-sync-filter.js.map +1 -0
- package/build/components/inserter/block-patterns-tab.js +91 -45
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-paging.js +57 -0
- package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -0
- package/build/components/inserter/hooks/use-patterns-state.js +21 -10
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/menu.js +13 -11
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/search-results.js +4 -3
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/tabs.js +1 -12
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js +12 -1
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build/components/inspector-controls/fill.js +24 -13
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/groups.js +5 -3
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls/slot.js +13 -0
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/link-control/index.js +13 -2
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings.js +2 -1
- package/build/components/link-control/settings.js.map +1 -1
- package/build/components/list-view/block-select-button.js +1 -3
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +13 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +29 -24
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/media-placeholder/index.js +2 -2
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +11 -11
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +2 -3
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/constants.js +30 -0
- package/build/components/media-upload/constants.js.map +1 -0
- package/build/components/media-upload/index.native.js +63 -53
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +1 -1
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/index.js +34 -35
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +14 -32
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +95 -0
- package/build/components/rich-text/multiline.js.map +1 -0
- package/build/components/rich-text/split-value.js +10 -16
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/use-enter.js +31 -40
- package/build/components/rich-text/use-enter.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +18 -33
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/use-block-commands/index.js +30 -18
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +5 -2
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/hooks/background.js +258 -0
- package/build/hooks/background.js.map +1 -0
- package/build/hooks/block-hooks.js +188 -0
- package/build/hooks/block-hooks.js.map +1 -0
- package/build/hooks/block-rename-ui.js +160 -0
- package/build/hooks/block-rename-ui.js.map +1 -0
- package/build/hooks/duotone.js +29 -42
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +2 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +31 -14
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/position.js +4 -2
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +74 -25
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +4 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +2 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +33 -10
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +42 -8
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +23 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +43 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +84 -23
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +0 -4
- package/build/store/utils.js.map +1 -1
- package/build-module/components/block-canvas/index.js +97 -0
- package/build-module/components/block-canvas/index.js.map +1 -0
- package/build-module/components/block-inspector/index.js +4 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +20 -5
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +59 -0
- package/build-module/components/block-patterns-paging/index.js.map +1 -0
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -0
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +4 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +1 -0
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js +3 -7
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +18 -7
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +5 -1
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +1 -1
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +2 -4
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/default-block-appender/index.native.js +20 -1
- package/build-module/components/default-block-appender/index.native.js.map +1 -1
- package/build-module/components/duotone/utils.js +65 -0
- package/build-module/components/duotone/utils.js.map +1 -1
- package/build-module/components/editor-styles/index.js +28 -9
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +3 -100
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +53 -0
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -0
- package/build-module/components/global-styles/index.js +2 -2
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +18 -16
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +1 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +66 -33
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +2 -5
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-editor/use-transform-image.js +9 -9
- package/build-module/components/image-editor/use-transform-image.js.map +1 -1
- package/build-module/components/index.js +1 -1
- package/build-module/components/index.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/inner-blocks/use-nested-settings-update.js +14 -8
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/explorer.js +12 -6
- package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +59 -25
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +23 -9
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-source-filter.js +44 -0
- package/build-module/components/inserter/block-patterns-source-filter.js.map +1 -0
- package/build-module/components/inserter/block-patterns-sync-filter.js +38 -0
- package/build-module/components/inserter/block-patterns-sync-filter.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab.js +87 -46
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-paging.js +50 -0
- package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -0
- package/build-module/components/inserter/hooks/use-patterns-state.js +22 -10
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/menu.js +13 -11
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/search-results.js +4 -3
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/tabs.js +1 -12
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js +13 -2
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +25 -14
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +5 -3
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +15 -1
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/link-control/index.js +13 -2
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings.js +2 -1
- package/build-module/components/link-control/settings.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +1 -3
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +13 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +30 -25
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +2 -2
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +7 -7
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +2 -3
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/constants.js +14 -0
- package/build-module/components/media-upload/constants.js.map +1 -0
- package/build-module/components/media-upload/index.native.js +53 -34
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +1 -1
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +35 -37
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +15 -33
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +87 -0
- package/build-module/components/rich-text/multiline.js.map +1 -0
- package/build-module/components/rich-text/split-value.js +10 -16
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/use-enter.js +33 -42
- package/build-module/components/rich-text/use-enter.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +19 -34
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +2 -2
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +28 -16
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +5 -2
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/hooks/background.js +244 -0
- package/build-module/hooks/background.js.map +1 -0
- package/build-module/hooks/block-hooks.js +181 -0
- package/build-module/hooks/block-hooks.js.map +1 -0
- package/build-module/hooks/block-rename-ui.js +153 -0
- package/build-module/hooks/block-rename-ui.js.map +1 -0
- package/build-module/hooks/duotone.js +26 -39
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +2 -2
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +33 -16
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/position.js +4 -2
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +73 -24
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +4 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +2 -0
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +33 -10
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +39 -8
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +21 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +41 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +78 -22
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +0 -4
- package/build-module/store/utils.js.map +1 -1
- package/build-style/content-rtl.css +0 -1
- package/build-style/content.css +0 -1
- package/build-style/style-rtl.css +174 -131
- package/build-style/style.css +174 -131
- package/package.json +32 -32
- package/src/components/block-canvas/index.js +108 -0
- package/src/components/block-inspector/index.js +5 -1
- package/src/components/block-list/content.scss +0 -1
- package/src/components/block-patterns-list/index.js +32 -7
- package/src/components/block-patterns-list/style.scss +26 -9
- package/src/components/block-patterns-paging/index.js +92 -0
- package/src/components/block-patterns-paging/style.scss +42 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +44 -0
- package/src/components/block-settings-menu-controls/index.js +4 -9
- package/src/components/block-styles/index.js +1 -0
- package/src/components/block-styles/style.scss +3 -3
- package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -6
- package/src/components/block-tools/block-contextual-toolbar.js +16 -5
- package/src/components/block-tools/block-selection-button.js +9 -1
- package/src/components/block-tools/style.scss +0 -98
- package/src/components/border-radius-control/input-controls.js +1 -1
- package/src/components/border-radius-control/linked-button.js +8 -11
- package/src/components/color-palette/test/__snapshots__/control.js.snap +34 -21
- package/src/components/colors/with-colors.js +3 -2
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -35
- package/src/components/default-block-appender/index.native.js +26 -3
- package/src/components/duotone/utils.js +65 -0
- package/src/components/editor-styles/index.js +32 -23
- package/src/components/global-styles/hooks.js +4 -112
- package/src/components/global-styles/image-settings-panel.js +71 -0
- package/src/components/global-styles/index.js +4 -3
- package/src/components/global-styles/use-global-styles-output.js +25 -16
- package/src/components/global-styles/utils.js +1 -2
- package/src/components/iframe/index.js +72 -33
- package/src/components/image-editor/use-save-image.js +2 -9
- package/src/components/image-editor/use-transform-image.js +9 -9
- package/src/components/index.js +1 -1
- package/src/components/index.native.js +2 -2
- package/src/components/inner-blocks/use-nested-settings-update.js +15 -10
- package/src/components/inserter/block-patterns-explorer/explorer.js +17 -5
- package/src/components/inserter/block-patterns-explorer/patterns-list.js +109 -40
- package/src/components/inserter/block-patterns-explorer/sidebar.js +23 -8
- package/src/components/inserter/block-patterns-source-filter.js +40 -0
- package/src/components/inserter/block-patterns-sync-filter.js +35 -0
- package/src/components/inserter/block-patterns-tab.js +168 -57
- package/src/components/inserter/hooks/use-patterns-paging.js +65 -0
- package/src/components/inserter/hooks/use-patterns-state.js +27 -16
- package/src/components/inserter/menu.js +15 -17
- package/src/components/inserter/search-results.js +6 -4
- package/src/components/inserter/style.scss +23 -2
- package/src/components/inserter/tabs.js +2 -12
- package/src/components/inserter/test/index.native.js +8 -12
- package/src/components/inspector-controls/block-support-slot-container.js +19 -3
- package/src/components/inspector-controls/fill.js +28 -14
- package/src/components/inspector-controls/groups.js +6 -2
- package/src/components/inspector-controls/slot.js +28 -3
- package/src/components/inspector-controls-tabs/styles-tab.js +4 -0
- package/src/components/link-control/index.js +14 -0
- package/src/components/link-control/settings.js +1 -0
- package/src/components/link-control/style.scss +28 -7
- package/src/components/link-control/test/index.js +88 -6
- package/src/components/list-view/block-select-button.js +1 -3
- package/src/components/list-view/block.js +19 -1
- package/src/components/list-view/style.scss +1 -2
- package/src/components/list-view/use-block-selection.js +38 -32
- package/src/components/media-placeholder/README.md +2 -2
- package/src/components/media-placeholder/index.js +2 -2
- package/src/components/media-placeholder/index.native.js +11 -12
- package/src/components/media-replace-flow/index.js +2 -2
- package/src/components/media-replace-flow/test/index.js +5 -23
- package/src/components/media-upload/README.md +3 -2
- package/src/components/media-upload/constants.js +15 -0
- package/src/components/media-upload/index.native.js +66 -40
- package/src/components/media-upload/style.native.scss +4 -0
- package/src/components/media-upload/test/index.native.js +2 -2
- package/src/components/preview-options/README.md +7 -0
- package/src/components/preview-options/index.js +1 -1
- package/src/components/rich-text/index.js +48 -44
- package/src/components/rich-text/index.native.js +14 -42
- package/src/components/rich-text/multiline.js +121 -0
- package/src/components/rich-text/split-value.js +10 -35
- package/src/components/rich-text/use-enter.js +32 -42
- package/src/components/rich-text/use-paste-handler.js +16 -40
- package/src/components/spacing-sizes-control/style.scss +5 -7
- package/src/components/spacing-sizes-control/utils.js +1 -2
- package/src/components/use-block-commands/index.js +28 -20
- package/src/components/use-block-display-information/index.js +3 -0
- package/src/hooks/background.js +288 -0
- package/src/hooks/background.scss +57 -0
- package/src/hooks/block-hooks.js +257 -0
- package/src/hooks/block-hooks.scss +16 -0
- package/src/hooks/block-rename-ui.js +230 -0
- package/src/hooks/block-rename-ui.scss +3 -0
- package/src/hooks/duotone.js +42 -43
- package/src/hooks/index.js +2 -2
- package/src/hooks/layout.js +31 -33
- package/src/hooks/position.js +4 -3
- package/src/hooks/style.js +96 -37
- package/src/hooks/test/align.native.js +4 -3
- package/src/hooks/utils.js +4 -0
- package/src/private-apis.js +2 -0
- package/src/store/actions.js +52 -10
- package/src/store/private-actions.js +37 -6
- package/src/store/private-selectors.js +21 -0
- package/src/store/reducer.js +38 -0
- package/src/store/selectors.js +107 -26
- package/src/store/test/actions.js +19 -8
- package/src/store/test/private-actions.js +17 -0
- package/src/store/test/reducer.js +25 -0
- package/src/store/test/selectors.js +130 -123
- package/src/store/utils.js +3 -10
- package/src/style.scss +4 -0
- package/build/components/duotone/components.js +0 -135
- package/build/components/duotone/components.js.map +0 -1
- package/build/components/duotone/index.js +0 -38
- package/build/components/duotone/index.js.map +0 -1
- package/build/components/global-styles/behaviors-panel.js +0 -64
- package/build/components/global-styles/behaviors-panel.js.map +0 -1
- package/build/components/inserter/reusable-blocks-tab.js +0 -85
- package/build/components/inserter/reusable-blocks-tab.js.map +0 -1
- package/build/hooks/auto-inserting-blocks.js +0 -174
- package/build/hooks/auto-inserting-blocks.js.map +0 -1
- package/build/hooks/behaviors.js +0 -173
- package/build/hooks/behaviors.js.map +0 -1
- package/build-module/components/duotone/components.js +0 -126
- package/build-module/components/duotone/components.js.map +0 -1
- package/build-module/components/duotone/index.js +0 -3
- package/build-module/components/duotone/index.js.map +0 -1
- package/build-module/components/global-styles/behaviors-panel.js +0 -57
- package/build-module/components/global-styles/behaviors-panel.js.map +0 -1
- package/build-module/components/inserter/reusable-blocks-tab.js +0 -76
- package/build-module/components/inserter/reusable-blocks-tab.js.map +0 -1
- package/build-module/hooks/auto-inserting-blocks.js +0 -167
- package/build-module/hooks/auto-inserting-blocks.js.map +0 -1
- package/build-module/hooks/behaviors.js +0 -166
- package/build-module/hooks/behaviors.js.map +0 -1
- package/src/components/duotone/components.js +0 -133
- package/src/components/duotone/index.js +0 -7
- package/src/components/global-styles/behaviors-panel.js +0 -71
- package/src/components/inserter/reusable-blocks-tab.js +0 -84
- package/src/components/inserter/test/reusable-blocks-tab.js +0 -73
- package/src/hooks/auto-inserting-blocks.js +0 -232
- package/src/hooks/behaviors.js +0 -206
package/build/store/utils.js
CHANGED
|
@@ -13,13 +13,9 @@ exports.mapRichTextSettings = mapRichTextSettings;
|
|
|
13
13
|
*/
|
|
14
14
|
function mapRichTextSettings(attributeDefinition) {
|
|
15
15
|
const {
|
|
16
|
-
multiline: multilineTag,
|
|
17
|
-
__unstableMultilineWrapperTags: multilineWrapperTags,
|
|
18
16
|
__unstablePreserveWhiteSpace: preserveWhiteSpace
|
|
19
17
|
} = attributeDefinition;
|
|
20
18
|
return {
|
|
21
|
-
multilineTag,
|
|
22
|
-
multilineWrapperTags,
|
|
23
19
|
preserveWhiteSpace
|
|
24
20
|
};
|
|
25
21
|
}
|
package/build/store/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapRichTextSettings","attributeDefinition","
|
|
1
|
+
{"version":3,"names":["mapRichTextSettings","attributeDefinition","__unstablePreserveWhiteSpace","preserveWhiteSpace"],"sources":["@wordpress/block-editor/src/store/utils.js"],"sourcesContent":["/**\n * Helper function that maps attribute definition properties to the\n * ones used by RichText utils like `create, toHTMLString, etc..`.\n *\n * @param {Object} attributeDefinition A block's attribute definition object.\n * @return {Object} The mapped object.\n */\nexport function mapRichTextSettings( attributeDefinition ) {\n\tconst { __unstablePreserveWhiteSpace: preserveWhiteSpace } =\n\t\tattributeDefinition;\n\treturn { preserveWhiteSpace };\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAmBA,CAAEC,mBAAmB,EAAG;EAC1D,MAAM;IAAEC,4BAA4B,EAAEC;EAAmB,CAAC,GACzDF,mBAAmB;EACpB,OAAO;IAAEE;EAAmB,CAAC;AAC9B"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createElement, Fragment } from "@wordpress/element";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { useMergeRefs } from '@wordpress/compose';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import BlockList from '../block-list';
|
|
11
|
+
import EditorStyles from '../editor-styles';
|
|
12
|
+
import Iframe from '../iframe';
|
|
13
|
+
import WritingFlow from '../writing-flow';
|
|
14
|
+
import { useMouseMoveTypingReset } from '../observe-typing';
|
|
15
|
+
import { useClipboardHandler } from '../copy-handler';
|
|
16
|
+
import { useBlockSelectionClearer } from '../block-selection-clearer';
|
|
17
|
+
export function ExperimentalBlockCanvas({
|
|
18
|
+
shouldIframe = true,
|
|
19
|
+
height = '300px',
|
|
20
|
+
children = createElement(BlockList, null),
|
|
21
|
+
styles,
|
|
22
|
+
contentRef: contentRefProp,
|
|
23
|
+
iframeProps
|
|
24
|
+
}) {
|
|
25
|
+
const resetTypingRef = useMouseMoveTypingReset();
|
|
26
|
+
const copyHandler = useClipboardHandler();
|
|
27
|
+
const clearerRef = useBlockSelectionClearer();
|
|
28
|
+
const contentRef = useMergeRefs([copyHandler, contentRefProp, clearerRef]);
|
|
29
|
+
if (!shouldIframe) {
|
|
30
|
+
return createElement(Fragment, null, createElement(EditorStyles, {
|
|
31
|
+
styles: styles,
|
|
32
|
+
scope: ".editor-styles-wrapper"
|
|
33
|
+
}), createElement(WritingFlow, {
|
|
34
|
+
ref: contentRef,
|
|
35
|
+
className: "editor-styles-wrapper",
|
|
36
|
+
tabIndex: -1,
|
|
37
|
+
style: {
|
|
38
|
+
height
|
|
39
|
+
}
|
|
40
|
+
}, children));
|
|
41
|
+
}
|
|
42
|
+
return createElement(Iframe, {
|
|
43
|
+
...iframeProps,
|
|
44
|
+
ref: resetTypingRef,
|
|
45
|
+
contentRef: contentRef,
|
|
46
|
+
style: {
|
|
47
|
+
width: '100%',
|
|
48
|
+
height,
|
|
49
|
+
...iframeProps?.style
|
|
50
|
+
},
|
|
51
|
+
name: "editor-canvas"
|
|
52
|
+
}, createElement(EditorStyles, {
|
|
53
|
+
styles: styles
|
|
54
|
+
}), children);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* BlockCanvas component is a component used to display the canvas of the block editor.
|
|
59
|
+
* What we call the canvas is an iframe containing the block list that you can manipulate.
|
|
60
|
+
* The component is also responsible of wiring up all the necessary hooks to enable
|
|
61
|
+
* the keyboard navigation across blocks in the editor and inject content styles into the iframe.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
*
|
|
65
|
+
* ```jsx
|
|
66
|
+
* function MyBlockEditor() {
|
|
67
|
+
* const [ blocks, updateBlocks ] = useState([]);
|
|
68
|
+
* return (
|
|
69
|
+
* <BlockEditorProvider
|
|
70
|
+
* value={ blocks }
|
|
71
|
+
* onInput={ updateBlocks }
|
|
72
|
+
* onChange={ persistBlocks }
|
|
73
|
+
* >
|
|
74
|
+
* <BlockCanvas height="400px" />
|
|
75
|
+
* </BlockEditorProvider>
|
|
76
|
+
* );
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @param {Object} props Component props.
|
|
81
|
+
* @param {string} props.height Canvas height, defaults to 300px.
|
|
82
|
+
* @param {Array} props.styles Content styles to inject into the iframe.
|
|
83
|
+
* @param {WPElement} props.children Content of the canvas, defaults to the BlockList component.
|
|
84
|
+
* @return {WPElement} Block Breadcrumb.
|
|
85
|
+
*/
|
|
86
|
+
function BlockCanvas({
|
|
87
|
+
children,
|
|
88
|
+
height,
|
|
89
|
+
styles
|
|
90
|
+
}) {
|
|
91
|
+
return createElement(ExperimentalBlockCanvas, {
|
|
92
|
+
height: height,
|
|
93
|
+
styles: styles
|
|
94
|
+
}, children);
|
|
95
|
+
}
|
|
96
|
+
export default BlockCanvas;
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMergeRefs","BlockList","EditorStyles","Iframe","WritingFlow","useMouseMoveTypingReset","useClipboardHandler","useBlockSelectionClearer","ExperimentalBlockCanvas","shouldIframe","height","children","createElement","styles","contentRef","contentRefProp","iframeProps","resetTypingRef","copyHandler","clearerRef","Fragment","scope","ref","className","tabIndex","style","width","name","BlockCanvas"],"sources":["@wordpress/block-editor/src/components/block-canvas/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport EditorStyles from '../editor-styles';\nimport Iframe from '../iframe';\nimport WritingFlow from '../writing-flow';\nimport { useMouseMoveTypingReset } from '../observe-typing';\nimport { useClipboardHandler } from '../copy-handler';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\n\nexport function ExperimentalBlockCanvas( {\n\tshouldIframe = true,\n\theight = '300px',\n\tchildren = <BlockList />,\n\tstyles,\n\tcontentRef: contentRefProp,\n\tiframeProps,\n} ) {\n\tconst resetTypingRef = useMouseMoveTypingReset();\n\tconst copyHandler = useClipboardHandler();\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst contentRef = useMergeRefs( [\n\t\tcopyHandler,\n\t\tcontentRefProp,\n\t\tclearerRef,\n\t] );\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorStyles\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tscope=\".editor-styles-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ { height } }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Iframe\n\t\t\t{ ...iframeProps }\n\t\t\tref={ resetTypingRef }\n\t\t\tcontentRef={ contentRef }\n\t\t\tstyle={ {\n\t\t\t\twidth: '100%',\n\t\t\t\theight,\n\t\t\t\t...iframeProps?.style,\n\t\t\t} }\n\t\t\tname=\"editor-canvas\"\n\t\t>\n\t\t\t<EditorStyles styles={ styles } />\n\t\t\t{ children }\n\t\t</Iframe>\n\t);\n}\n\n/**\n * BlockCanvas component is a component used to display the canvas of the block editor.\n * What we call the canvas is an iframe containing the block list that you can manipulate.\n * The component is also responsible of wiring up all the necessary hooks to enable\n * the keyboard navigation across blocks in the editor and inject content styles into the iframe.\n *\n * @example\n *\n * ```jsx\n * function MyBlockEditor() {\n * const [ blocks, updateBlocks ] = useState([]);\n * return (\n * <BlockEditorProvider\n * value={ blocks }\n * onInput={ updateBlocks }\n * onChange={ persistBlocks }\n * >\n * <BlockCanvas height=\"400px\" />\n * </BlockEditorProvider>\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.height Canvas height, defaults to 300px.\n * @param {Array} props.styles Content styles to inject into the iframe.\n * @param {WPElement} props.children Content of the canvas, defaults to the BlockList component.\n * @return {WPElement} Block Breadcrumb.\n */\nfunction BlockCanvas( { children, height, styles } ) {\n\treturn (\n\t\t<ExperimentalBlockCanvas height={ height } styles={ styles }>\n\t\t\t{ children }\n\t\t</ExperimentalBlockCanvas>\n\t);\n}\n\nexport default BlockCanvas;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,eAAe;AACrC,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,MAAM,MAAM,WAAW;AAC9B,OAAOC,WAAW,MAAM,iBAAiB;AACzC,SAASC,uBAAuB,QAAQ,mBAAmB;AAC3D,SAASC,mBAAmB,QAAQ,iBAAiB;AACrD,SAASC,wBAAwB,QAAQ,4BAA4B;AAErE,OAAO,SAASC,uBAAuBA,CAAE;EACxCC,YAAY,GAAG,IAAI;EACnBC,MAAM,GAAG,OAAO;EAChBC,QAAQ,GAAGC,aAAA,CAACX,SAAS,MAAE,CAAC;EACxBY,MAAM;EACNC,UAAU,EAAEC,cAAc;EAC1BC;AACD,CAAC,EAAG;EACH,MAAMC,cAAc,GAAGZ,uBAAuB,CAAC,CAAC;EAChD,MAAMa,WAAW,GAAGZ,mBAAmB,CAAC,CAAC;EACzC,MAAMa,UAAU,GAAGZ,wBAAwB,CAAC,CAAC;EAC7C,MAAMO,UAAU,GAAGd,YAAY,CAAE,CAChCkB,WAAW,EACXH,cAAc,EACdI,UAAU,CACT,CAAC;EAEH,IAAK,CAAEV,YAAY,EAAG;IACrB,OACCG,aAAA,CAAAQ,QAAA,QACCR,aAAA,CAACV,YAAY;MACZW,MAAM,EAAGA,MAAQ;MACjBQ,KAAK,EAAC;IAAwB,CAC9B,CAAC,EACFT,aAAA,CAACR,WAAW;MACXkB,GAAG,EAAGR,UAAY;MAClBS,SAAS,EAAC,uBAAuB;MACjCC,QAAQ,EAAG,CAAC,CAAG;MACfC,KAAK,EAAG;QAAEf;MAAO;IAAG,GAElBC,QACU,CACZ,CAAC;EAEL;EAEA,OACCC,aAAA,CAACT,MAAM;IAAA,GACDa,WAAW;IAChBM,GAAG,EAAGL,cAAgB;IACtBH,UAAU,EAAGA,UAAY;IACzBW,KAAK,EAAG;MACPC,KAAK,EAAE,MAAM;MACbhB,MAAM;MACN,GAAGM,WAAW,EAAES;IACjB,CAAG;IACHE,IAAI,EAAC;EAAe,GAEpBf,aAAA,CAACV,YAAY;IAACW,MAAM,EAAGA;EAAQ,CAAE,CAAC,EAChCF,QACK,CAAC;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiB,WAAWA,CAAE;EAAEjB,QAAQ;EAAED,MAAM;EAAEG;AAAO,CAAC,EAAG;EACpD,OACCD,aAAA,CAACJ,uBAAuB;IAACE,MAAM,EAAGA,MAAQ;IAACG,MAAM,EAAGA;EAAQ,GACzDF,QACsB,CAAC;AAE5B;AAEA,eAAeiB,WAAW"}
|
|
@@ -35,7 +35,7 @@ function BlockInspectorLockedBlocks({
|
|
|
35
35
|
getBlockName,
|
|
36
36
|
getBlockEditingMode
|
|
37
37
|
} = select(blockEditorStore);
|
|
38
|
-
return getClientIdsOfDescendants(
|
|
38
|
+
return getClientIdsOfDescendants(topLevelLockedBlock).filter(clientId => getBlockName(clientId) !== 'core/list-item' && getBlockEditingMode(clientId) === 'contentOnly');
|
|
39
39
|
}, [topLevelLockedBlock]);
|
|
40
40
|
const blockInformation = useBlockDisplayInformation(topLevelLockedBlock);
|
|
41
41
|
return createElement("div", {
|
|
@@ -219,6 +219,9 @@ const BlockInspectorSingleBlock = ({
|
|
|
219
219
|
label: __('Border')
|
|
220
220
|
}), createElement(InspectorControls.Slot, {
|
|
221
221
|
group: "styles"
|
|
222
|
+
}), createElement(InspectorControls.Slot, {
|
|
223
|
+
group: "background",
|
|
224
|
+
label: __('Background')
|
|
222
225
|
}), createElement(PositionControls, null), createElement("div", null, createElement(AdvancedControls, null))), createElement(SkipToSelectedBlock, {
|
|
223
226
|
key: "back"
|
|
224
227
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__unstableMotion","motion","useSelect","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockStyles","DefaultStylePicker","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","BlockInfo","BlockQuickNavigation","BlockInspectorLockedBlocks","topLevelLockedBlock","contentClientIds","select","getClientIdsOfDescendants","getBlockName","getBlockEditingMode","filter","clientId","blockInformation","createElement","className","isSynced","blockClientId","Slot","title","clientIds","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","getSelectedBlockClientId","getSelectedBlockCount","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","name","showTabs","length","blockInspectorAnimationSettings","tabs","Fragment","group","label","isSelectedBlockUnregistered","BlockInspectorSingleBlockWrapper","animate","wrapper","children","AnimatedContainer","BlockInspectorSingleBlock","blockName","animationOrigin","enterDirection","div","x","opacity","transition","ease","duration","initial","key","hasBlockStyles","getBlockStyles","blockStyles"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( [ topLevelLockedBlock ] ).filter(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockName( clientId ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t</PanelBody>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__unstableMotion","motion","useSelect","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockStyles","DefaultStylePicker","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","BlockInfo","BlockQuickNavigation","BlockInspectorLockedBlocks","topLevelLockedBlock","contentClientIds","select","getClientIdsOfDescendants","getBlockName","getBlockEditingMode","filter","clientId","blockInformation","createElement","className","isSynced","blockClientId","Slot","title","clientIds","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","getSelectedBlockClientId","getSelectedBlockCount","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","name","showTabs","length","blockInspectorAnimationSettings","tabs","Fragment","group","label","isSelectedBlockUnregistered","BlockInspectorSingleBlockWrapper","animate","wrapper","children","AnimatedContainer","BlockInspectorSingleBlock","blockName","animationOrigin","enterDirection","div","x","opacity","transition","ease","duration","initial","key","hasBlockStyles","getBlockStyles","blockStyles"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( topLevelLockedBlock ).filter(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockName( clientId ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t</PanelBody>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { createElement, Fragment } from "@wordpress/element";
|
|
2
|
+
/**
|
|
3
|
+
* External dependencies
|
|
4
|
+
*/
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
|
|
2
7
|
/**
|
|
3
8
|
* WordPress dependencies
|
|
4
9
|
*/
|
|
5
10
|
import { useState } from '@wordpress/element';
|
|
6
|
-
import { VisuallyHidden, __unstableComposite as Composite, __unstableUseCompositeState as useCompositeState, __unstableCompositeItem as CompositeItem, Tooltip } from '@wordpress/components';
|
|
11
|
+
import { VisuallyHidden, __unstableComposite as Composite, __unstableUseCompositeState as useCompositeState, __unstableCompositeItem as CompositeItem, Tooltip, __experimentalHStack as HStack } from '@wordpress/components';
|
|
7
12
|
import { useInstanceId } from '@wordpress/compose';
|
|
8
13
|
import { __ } from '@wordpress/i18n';
|
|
14
|
+
import { Icon, symbol } from '@wordpress/icons';
|
|
9
15
|
|
|
10
16
|
/**
|
|
11
17
|
* Internal dependencies
|
|
@@ -64,13 +70,15 @@ function BlockPattern({
|
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
72
|
}, createElement(WithToolTip, {
|
|
67
|
-
showTooltip: showTooltip,
|
|
73
|
+
showTooltip: showTooltip && !pattern.id,
|
|
68
74
|
title: pattern.title
|
|
69
75
|
}, createElement(CompositeItem, {
|
|
70
76
|
role: "option",
|
|
71
77
|
as: "div",
|
|
72
78
|
...composite,
|
|
73
|
-
className:
|
|
79
|
+
className: classnames('block-editor-block-patterns-list__item', {
|
|
80
|
+
'block-editor-block-patterns-list__list-item-synced': pattern.id && !pattern.syncStatus
|
|
81
|
+
}),
|
|
74
82
|
onClick: () => {
|
|
75
83
|
onClick(pattern, blocks);
|
|
76
84
|
onHover?.(null);
|
|
@@ -87,9 +95,16 @@ function BlockPattern({
|
|
|
87
95
|
}, createElement(BlockPreview, {
|
|
88
96
|
blocks: blocks,
|
|
89
97
|
viewportWidth: viewportWidth
|
|
90
|
-
}),
|
|
98
|
+
}), createElement(HStack, {
|
|
99
|
+
className: "block-editor-patterns__pattern-details"
|
|
100
|
+
}, pattern.id && !pattern.syncStatus && createElement("div", {
|
|
101
|
+
className: "block-editor-patterns__pattern-icon-wrapper"
|
|
102
|
+
}, createElement(Icon, {
|
|
103
|
+
className: "block-editor-patterns__pattern-icon",
|
|
104
|
+
icon: symbol
|
|
105
|
+
})), (!showTooltip || pattern.id) && createElement("div", {
|
|
91
106
|
className: "block-editor-block-patterns-list__item-title"
|
|
92
|
-
}, pattern.title), !!pattern.description && createElement(VisuallyHidden, {
|
|
107
|
+
}, pattern.title)), !!pattern.description && createElement(VisuallyHidden, {
|
|
93
108
|
id: descriptionId
|
|
94
109
|
}, pattern.description)))));
|
|
95
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","VisuallyHidden","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","Tooltip","useInstanceId","__","BlockPreview","InserterDraggableBlocks","WithToolTip","showTooltip","title","children","createElement","text","Fragment","BlockPattern","isDraggable","pattern","onClick","onHover","composite","isDragging","setIsDragging","blocks","viewportWidth","instanceId","descriptionId","isEnabled","isPattern","draggable","onDragStart","onDragEnd","className","event","role","as","onMouseEnter","onMouseLeave","description","undefined","
|
|
1
|
+
{"version":3,"names":["classnames","useState","VisuallyHidden","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","Tooltip","__experimentalHStack","HStack","useInstanceId","__","Icon","symbol","BlockPreview","InserterDraggableBlocks","WithToolTip","showTooltip","title","children","createElement","text","Fragment","BlockPattern","isDraggable","pattern","onClick","onHover","composite","isDragging","setIsDragging","blocks","viewportWidth","instanceId","descriptionId","isEnabled","isPattern","draggable","onDragStart","onDragEnd","className","event","id","role","as","syncStatus","onMouseEnter","onMouseLeave","description","undefined","icon","BlockPatternPlaceholder","BlockPatternList","blockPatterns","shownPatterns","onClickPattern","orientation","label","showTitlesAsTooltip","map","isShown","includes","key","name"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n\tTooltip,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, symbol } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\n\nconst WithToolTip = ( { showTooltip, title, children } ) => {\n\tif ( showTooltip ) {\n\t\treturn <Tooltip text={ title }>{ children }</Tooltip>;\n\t}\n\treturn <>{ children }</>;\n};\n\nfunction BlockPattern( {\n\tisDraggable,\n\tpattern,\n\tonClick,\n\tonHover,\n\tcomposite,\n\tshowTooltip,\n} ) {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst { blocks, viewportWidth } = pattern;\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ blocks }\n\t\t\tisPattern={ !! pattern }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( true );\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( false );\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<WithToolTip\n\t\t\t\t\t\tshowTooltip={ showTooltip && ! pattern.id }\n\t\t\t\t\t\ttitle={ pattern.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\tas=\"div\"\n\t\t\t\t\t\t\t{ ...composite }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__item',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__list-item-synced':\n\t\t\t\t\t\t\t\t\t\tpattern.id && ! pattern.syncStatus,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonClick( pattern, blocks );\n\t\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\t\tif ( isDragging ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonHover?.( pattern );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseLeave={ () => onHover?.( null ) }\n\t\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<HStack className=\"block-editor-patterns__pattern-details\">\n\t\t\t\t\t\t\t\t{ pattern.id && ! pattern.syncStatus && (\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-patterns__pattern-icon-wrapper\">\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ symbol }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ( ! showTooltip || pattern.id ) && (\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\n\t\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t</WithToolTip>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction BlockPatternList( {\n\tisDraggable,\n\tblockPatterns,\n\tshownPatterns,\n\tonHover,\n\tonClickPattern,\n\torientation,\n\tlabel = __( 'Block Patterns' ),\n\tshowTitlesAsTooltip,\n} ) {\n\tconst composite = useCompositeState( { orientation } );\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t>\n\t\t\t{ blockPatterns.map( ( pattern ) => {\n\t\t\t\tconst isShown = shownPatterns.includes( pattern );\n\t\t\t\treturn isShown ? (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tshowTooltip={ showTitlesAsTooltip }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default BlockPatternList;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createElement } from "@wordpress/element";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { __experimentalVStack as VStack, __experimentalHStack as HStack, __experimentalText as Text, Button } from '@wordpress/components';
|
|
6
|
+
import { __, _x, _n, sprintf } from '@wordpress/i18n';
|
|
7
|
+
export default function Pagination({
|
|
8
|
+
currentPage,
|
|
9
|
+
numPages,
|
|
10
|
+
changePage,
|
|
11
|
+
totalItems
|
|
12
|
+
}) {
|
|
13
|
+
return createElement(VStack, null, createElement(Text, {
|
|
14
|
+
variant: "muted"
|
|
15
|
+
},
|
|
16
|
+
// translators: %s: Total number of patterns.
|
|
17
|
+
sprintf(
|
|
18
|
+
// translators: %s: Total number of patterns.
|
|
19
|
+
_n('%s item', '%s items', totalItems), totalItems)), createElement(HStack, {
|
|
20
|
+
expanded: false,
|
|
21
|
+
spacing: 3,
|
|
22
|
+
justify: "flex-start",
|
|
23
|
+
className: "block-editor-patterns__grid-pagination"
|
|
24
|
+
}, createElement(HStack, {
|
|
25
|
+
expanded: false,
|
|
26
|
+
spacing: 1,
|
|
27
|
+
className: "block-editor-patterns__grid-pagination-previous"
|
|
28
|
+
}, createElement(Button, {
|
|
29
|
+
variant: "tertiary",
|
|
30
|
+
onClick: () => changePage(1),
|
|
31
|
+
disabled: currentPage === 1,
|
|
32
|
+
"aria-label": __('First page')
|
|
33
|
+
}, createElement("span", null, "\xAB")), createElement(Button, {
|
|
34
|
+
variant: "tertiary",
|
|
35
|
+
onClick: () => changePage(currentPage - 1),
|
|
36
|
+
disabled: currentPage === 1,
|
|
37
|
+
"aria-label": __('Previous page')
|
|
38
|
+
}, createElement("span", null, "\u2039"))), createElement(Text, {
|
|
39
|
+
variant: "muted"
|
|
40
|
+
}, sprintf(
|
|
41
|
+
// translators: %1$s: Current page number, %2$s: Total number of pages.
|
|
42
|
+
_x('%1$s of %2$s', 'paging'), currentPage, numPages)), createElement(HStack, {
|
|
43
|
+
expanded: false,
|
|
44
|
+
spacing: 1,
|
|
45
|
+
className: "block-editor-patterns__grid-pagination-next"
|
|
46
|
+
}, createElement(Button, {
|
|
47
|
+
variant: "tertiary",
|
|
48
|
+
onClick: () => changePage(currentPage + 1),
|
|
49
|
+
disabled: currentPage === numPages,
|
|
50
|
+
"aria-label": __('Next page')
|
|
51
|
+
}, createElement("span", null, "\u203A")), createElement(Button, {
|
|
52
|
+
variant: "tertiary",
|
|
53
|
+
onClick: () => changePage(numPages),
|
|
54
|
+
disabled: currentPage === numPages,
|
|
55
|
+
"aria-label": __('Last page'),
|
|
56
|
+
size: "default"
|
|
57
|
+
}, createElement("span", null, "\xBB")))));
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalText","Text","Button","__","_x","_n","sprintf","Pagination","currentPage","numPages","changePage","totalItems","createElement","variant","expanded","spacing","justify","className","onClick","disabled","size"],"sources":["@wordpress/block-editor/src/components/block-patterns-paging/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\n\nexport default function Pagination( {\n\tcurrentPage,\n\tnumPages,\n\tchangePage,\n\ttotalItems,\n} ) {\n\treturn (\n\t\t<VStack>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{\n\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\t\t_n( '%s item', '%s items', totalItems ),\n\t\t\t\t\t\ttotalItems\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Text>\n\t\t\t<HStack\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 3 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"block-editor-patterns__grid-pagination\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\tclassName=\"block-editor-patterns__grid-pagination-previous\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => changePage( 1 ) }\n\t\t\t\t\t\tdisabled={ currentPage === 1 }\n\t\t\t\t\t\taria-label={ __( 'First page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>«</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => changePage( currentPage - 1 ) }\n\t\t\t\t\t\tdisabled={ currentPage === 1 }\n\t\t\t\t\t\taria-label={ __( 'Previous page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>‹</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t\t_x( '%1$s of %2$s', 'paging' ),\n\t\t\t\t\t\tcurrentPage,\n\t\t\t\t\t\tnumPages\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\tclassName=\"block-editor-patterns__grid-pagination-next\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => changePage( currentPage + 1 ) }\n\t\t\t\t\t\tdisabled={ currentPage === numPages }\n\t\t\t\t\t\taria-label={ __( 'Next page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>›</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => changePage( numPages ) }\n\t\t\t\t\t\tdisabled={ currentPage === numPages }\n\t\t\t\t\t\taria-label={ __( 'Last page' ) }\n\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>»</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,kBAAkB,IAAIC,IAAI,EAC1BC,MAAM,QACA,uBAAuB;AAC9B,SAASC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAErD,eAAe,SAASC,UAAUA,CAAE;EACnCC,WAAW;EACXC,QAAQ;EACRC,UAAU;EACVC;AACD,CAAC,EAAG;EACH,OACCC,aAAA,CAACf,MAAM,QACNe,aAAA,CAACX,IAAI;IAACY,OAAO,EAAC;EAAO;EAEnB;EACAP,OAAO;EACN;EACAD,EAAE,CAAE,SAAS,EAAE,UAAU,EAAEM,UAAW,CAAC,EACvCA,UACD,CAEI,CAAC,EACPC,aAAA,CAACb,MAAM;IACNe,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,YAAY;IACpBC,SAAS,EAAC;EAAwC,GAElDL,aAAA,CAACb,MAAM;IACNe,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbE,SAAS,EAAC;EAAiD,GAE3DL,aAAA,CAACV,MAAM;IACNW,OAAO,EAAC,UAAU;IAClBK,OAAO,EAAGA,CAAA,KAAMR,UAAU,CAAE,CAAE,CAAG;IACjCS,QAAQ,EAAGX,WAAW,KAAK,CAAG;IAC9B,cAAaL,EAAE,CAAE,YAAa;EAAG,GAEjCS,aAAA,eAAM,MAAO,CACN,CAAC,EACTA,aAAA,CAACV,MAAM;IACNW,OAAO,EAAC,UAAU;IAClBK,OAAO,EAAGA,CAAA,KAAMR,UAAU,CAAEF,WAAW,GAAG,CAAE,CAAG;IAC/CW,QAAQ,EAAGX,WAAW,KAAK,CAAG;IAC9B,cAAaL,EAAE,CAAE,eAAgB;EAAG,GAEpCS,aAAA,eAAM,QAAO,CACN,CACD,CAAC,EACTA,aAAA,CAACX,IAAI;IAACY,OAAO,EAAC;EAAO,GAClBP,OAAO;EACR;EACAF,EAAE,CAAE,cAAc,EAAE,QAAS,CAAC,EAC9BI,WAAW,EACXC,QACD,CACK,CAAC,EACPG,aAAA,CAACb,MAAM;IACNe,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbE,SAAS,EAAC;EAA6C,GAEvDL,aAAA,CAACV,MAAM;IACNW,OAAO,EAAC,UAAU;IAClBK,OAAO,EAAGA,CAAA,KAAMR,UAAU,CAAEF,WAAW,GAAG,CAAE,CAAG;IAC/CW,QAAQ,EAAGX,WAAW,KAAKC,QAAU;IACrC,cAAaN,EAAE,CAAE,WAAY;EAAG,GAEhCS,aAAA,eAAM,QAAO,CACN,CAAC,EACTA,aAAA,CAACV,MAAM;IACNW,OAAO,EAAC,UAAU;IAClBK,OAAO,EAAGA,CAAA,KAAMR,UAAU,CAAED,QAAS,CAAG;IACxCU,QAAQ,EAAGX,WAAW,KAAKC,QAAU;IACrC,cAAaN,EAAE,CAAE,WAAY,CAAG;IAChCiB,IAAI,EAAC;EAAS,GAEdR,aAAA,eAAM,MAAO,CACN,CACD,CACD,CACD,CAAC;AAEX"}
|
|
@@ -20,6 +20,7 @@ import BlockHTMLConvertButton from './block-html-convert-button';
|
|
|
20
20
|
import __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';
|
|
21
21
|
import BlockSettingsMenuControls from '../block-settings-menu-controls';
|
|
22
22
|
import { store as blockEditorStore } from '../../store';
|
|
23
|
+
import { unlock } from '../../lock-unlock';
|
|
23
24
|
import { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';
|
|
24
25
|
const POPOVER_PROPS = {
|
|
25
26
|
className: 'block-editor-block-settings-menu__popover',
|
|
@@ -38,12 +39,15 @@ function CopyMenuItem({
|
|
|
38
39
|
}, copyMenuItemLabel);
|
|
39
40
|
}
|
|
40
41
|
export function BlockSettingsDropdown({
|
|
42
|
+
block,
|
|
41
43
|
clientIds,
|
|
42
44
|
__experimentalSelectBlock,
|
|
43
45
|
children,
|
|
44
46
|
__unstableDisplayLocation,
|
|
45
47
|
...props
|
|
46
48
|
}) {
|
|
49
|
+
// Get the client id of the current block for this menu, if one is set.
|
|
50
|
+
const currentClientId = block?.clientId;
|
|
47
51
|
const blockClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
|
|
48
52
|
const count = blockClientIds.length;
|
|
49
53
|
const firstBlockClientId = blockClientIds[0];
|
|
@@ -79,6 +83,10 @@ export function BlockSettingsDropdown({
|
|
|
79
83
|
getBlockOrder,
|
|
80
84
|
getSelectedBlockClientIds
|
|
81
85
|
} = useSelect(blockEditorStore);
|
|
86
|
+
const openedBlockSettingsMenu = useSelect(select => unlock(select(blockEditorStore)).getOpenedBlockSettingsMenu(), []);
|
|
87
|
+
const {
|
|
88
|
+
setOpenedBlockSettingsMenu
|
|
89
|
+
} = unlock(useDispatch(blockEditorStore));
|
|
82
90
|
const shortcuts = useSelect(select => {
|
|
83
91
|
const {
|
|
84
92
|
getShortcutRepresentation
|
|
@@ -130,6 +138,22 @@ export function BlockSettingsDropdown({
|
|
|
130
138
|
// This can occur when the selected block (the parent)
|
|
131
139
|
// displays child blocks within a List View.
|
|
132
140
|
const parentBlockIsSelected = selectedBlockClientIds?.includes(firstParentClientId);
|
|
141
|
+
|
|
142
|
+
// When a currentClientId is in use, treat the menu as a controlled component.
|
|
143
|
+
// This ensures that only one block settings menu is open at a time.
|
|
144
|
+
// This is a temporary solution to work around an issue with `onFocusOutside`
|
|
145
|
+
// where it does not allow a dropdown to be closed if focus was never within
|
|
146
|
+
// the dropdown to begin with. Examples include a user either CMD+Clicking or
|
|
147
|
+
// right clicking into an inactive window.
|
|
148
|
+
// See: https://github.com/WordPress/gutenberg/pull/54083
|
|
149
|
+
const open = !currentClientId ? undefined : openedBlockSettingsMenu === currentClientId || false;
|
|
150
|
+
const onToggle = useCallback(localOpen => {
|
|
151
|
+
if (localOpen && openedBlockSettingsMenu !== currentClientId) {
|
|
152
|
+
setOpenedBlockSettingsMenu(currentClientId);
|
|
153
|
+
} else if (!localOpen && openedBlockSettingsMenu && openedBlockSettingsMenu === currentClientId) {
|
|
154
|
+
setOpenedBlockSettingsMenu(undefined);
|
|
155
|
+
}
|
|
156
|
+
}, [currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu]);
|
|
133
157
|
return createElement(BlockActions, {
|
|
134
158
|
clientIds: clientIds,
|
|
135
159
|
__experimentalUpdateSelection: !__experimentalSelectBlock
|
|
@@ -152,6 +176,8 @@ export function BlockSettingsDropdown({
|
|
|
152
176
|
label: __('Options'),
|
|
153
177
|
className: "block-editor-block-settings-menu",
|
|
154
178
|
popoverProps: POPOVER_PROPS,
|
|
179
|
+
open: open,
|
|
180
|
+
onToggle: onToggle,
|
|
155
181
|
noIcons: true,
|
|
156
182
|
menuProps: {
|
|
157
183
|
/**
|
|
@@ -167,9 +193,11 @@ export function BlockSettingsDropdown({
|
|
|
167
193
|
updateSelectionAfterDuplicate(onDuplicate());
|
|
168
194
|
} else if (isMatch('core/block-editor/insert-after', event) && canInsertDefaultBlock) {
|
|
169
195
|
event.preventDefault();
|
|
196
|
+
setOpenedBlockSettingsMenu(undefined);
|
|
170
197
|
onInsertAfter();
|
|
171
198
|
} else if (isMatch('core/block-editor/insert-before', event) && canInsertDefaultBlock) {
|
|
172
199
|
event.preventDefault();
|
|
200
|
+
setOpenedBlockSettingsMenu(undefined);
|
|
173
201
|
onInsertBefore();
|
|
174
202
|
}
|
|
175
203
|
}
|