@wordpress/block-editor 14.6.0 → 14.7.1-next.082ed6819.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 +2 -0
- package/build/components/block-controls/slot.js +6 -3
- package/build/components/block-controls/slot.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -2
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +14 -28
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-lock/modal.js +1 -1
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-manager/category.js +79 -0
- package/build/components/block-manager/category.js.map +1 -0
- package/build/components/block-manager/checklist.js +40 -0
- package/build/components/block-manager/checklist.js.map +1 -0
- package/build/components/block-manager/index.js +108 -0
- package/build/components/block-manager/index.js.map +1 -0
- package/build/components/block-patterns-list/index.js +23 -26
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-popover/index.js +1 -1
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/async.js +51 -0
- package/build/components/block-preview/async.js.map +1 -0
- package/build/components/block-preview/index.js +4 -1
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-toolbar/change-design.js +1 -4
- package/build/components/block-toolbar/change-design.js.map +1 -1
- package/build/components/block-toolbar/index.js +7 -2
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/switch-section-style.js +105 -0
- package/build/components/block-toolbar/switch-section-style.js.map +1 -0
- package/build/components/block-tools/index.js +12 -9
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +4 -1
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/collab/block-comment-icon-slot.js +2 -6
- package/build/components/collab/block-comment-icon-slot.js.map +1 -1
- package/build/components/collab/block-comment-icon-toolbar-slot.js +2 -6
- package/build/components/collab/block-comment-icon-toolbar-slot.js.map +1 -1
- package/build/components/color-palette/with-color-context.js +4 -2
- package/build/components/color-palette/with-color-context.js.map +1 -1
- package/build/components/font-family/index.js +14 -13
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +26 -14
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +1 -1
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/iframe/get-compatibility-styles.js +4 -4
- package/build/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build/components/iframe/index.js +156 -23
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +1 -2
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -6
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +3 -0
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/utils.js +5 -1
- package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +7 -8
- package/build/components/inserter/category-tabs/index.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-paging.js +0 -5
- package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -1
- package/build/components/inserter/search-results.js +0 -2
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +2 -1
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/slot.js +7 -4
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +4 -4
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/media-placeholder/index.js +33 -25
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +1 -1
- package/build/components/tabbed-sidebar/index.js.map +1 -1
- package/build/components/url-input/index.js +3 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +5 -6
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/hooks/border.js +3 -3
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +1 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/dimensions.js +2 -2
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/font-family.js +1 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/style.js +6 -6
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/supports.js +7 -7
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.js +6 -6
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +3 -3
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/flex.js +11 -9
- package/build/layouts/flex.js.map +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/private-apis.js +4 -4
- package/build/private-apis.js.map +1 -1
- package/build/store/private-selectors.js +3 -3
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/selectors.js +12 -8
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +5 -4
- package/build/store/utils.js.map +1 -1
- package/build/utils/dom.js +27 -22
- package/build/utils/dom.js.map +1 -1
- package/build-module/components/block-controls/slot.js +6 -3
- package/build-module/components/block-controls/slot.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -2
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +15 -27
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-lock/modal.js +1 -1
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-manager/category.js +71 -0
- package/build-module/components/block-manager/category.js.map +1 -0
- package/build-module/components/block-manager/checklist.js +32 -0
- package/build-module/components/block-manager/checklist.js.map +1 -0
- package/build-module/components/block-manager/index.js +102 -0
- package/build-module/components/block-manager/index.js.map +1 -0
- package/build-module/components/block-patterns-list/index.js +23 -26
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-popover/index.js +2 -2
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/async.js +44 -0
- package/build-module/components/block-preview/async.js.map +1 -0
- package/build-module/components/block-preview/index.js +4 -1
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +2 -2
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-toolbar/change-design.js +1 -4
- package/build-module/components/block-toolbar/change-design.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +7 -2
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/switch-section-style.js +97 -0
- package/build-module/components/block-toolbar/switch-section-style.js.map +1 -0
- package/build-module/components/block-tools/index.js +13 -10
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -2
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +4 -1
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/collab/block-comment-icon-slot.js +2 -6
- package/build-module/components/collab/block-comment-icon-slot.js.map +1 -1
- package/build-module/components/collab/block-comment-icon-toolbar-slot.js +2 -6
- package/build-module/components/collab/block-comment-icon-toolbar-slot.js.map +1 -1
- package/build-module/components/color-palette/with-color-context.js +4 -2
- package/build-module/components/color-palette/with-color-context.js.map +1 -1
- package/build-module/components/font-family/index.js +15 -14
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +26 -14
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js +4 -4
- package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build-module/components/iframe/index.js +157 -24
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +1 -2
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +5 -7
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +4 -1
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/utils.js +4 -0
- package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +8 -9
- package/build-module/components/inserter/category-tabs/index.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-paging.js +1 -6
- package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -1
- package/build-module/components/inserter/search-results.js +0 -2
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +2 -1
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +7 -4
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +4 -4
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +33 -25
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +1 -1
- package/build-module/components/tabbed-sidebar/index.js.map +1 -1
- package/build-module/components/url-input/index.js +3 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +4 -4
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/hooks/border.js +3 -3
- package/build-module/hooks/border.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/dimensions.js +2 -2
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/font-family.js +1 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/style.js +6 -6
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/supports.js +7 -7
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.js +6 -6
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +3 -3
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/flex.js +11 -9
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/private-apis.js +6 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-selectors.js +3 -3
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/selectors.js +12 -8
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +3 -3
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/dom.js +25 -21
- package/build-module/utils/dom.js.map +1 -1
- package/build-style/content-rtl.css +30 -15
- package/build-style/content.css +30 -15
- package/build-style/style-rtl.css +92 -3
- package/build-style/style.css +92 -3
- package/build-types/utils/dom.d.ts +7 -9
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +32 -31
- package/src/components/block-canvas/style.scss +1 -1
- package/src/components/block-controls/slot.js +5 -3
- package/src/components/block-inspector/index.js +0 -2
- package/src/components/block-inspector/style.scss +2 -1
- package/src/components/block-list/block.js +28 -48
- package/src/components/block-lock/modal.js +1 -1
- package/src/components/block-manager/category.js +102 -0
- package/src/components/block-manager/checklist.js +34 -0
- package/src/components/block-manager/index.js +127 -0
- package/src/components/block-manager/style.scss +82 -0
- package/src/components/block-mover/README.md +15 -8
- package/src/components/block-mover/stories/index.story.js +73 -71
- package/src/components/block-mover/style.scss +3 -0
- package/src/components/block-patterns-list/README.md +8 -8
- package/src/components/block-patterns-list/index.js +35 -51
- package/src/components/block-patterns-list/stories/index.story.js +2 -19
- package/src/components/block-popover/index.js +4 -4
- package/src/components/block-preview/async.js +43 -0
- package/src/components/block-preview/index.js +6 -1
- package/src/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/src/components/block-settings-menu/index.js +2 -2
- package/src/components/block-toolbar/change-design.js +1 -7
- package/src/components/block-toolbar/index.js +6 -0
- package/src/components/block-toolbar/switch-section-style.js +115 -0
- package/src/components/block-tools/index.js +26 -10
- package/src/components/block-tools/style.scss +12 -0
- package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -2
- package/src/components/block-tools/use-show-block-tools.js +3 -1
- package/src/components/collab/block-comment-icon-slot.js +2 -6
- package/src/components/collab/block-comment-icon-toolbar-slot.js +3 -5
- package/src/components/color-palette/with-color-context.js +25 -7
- package/src/components/default-block-appender/content.scss +13 -19
- package/src/components/font-family/index.js +13 -13
- package/src/components/global-styles/dimensions-panel.js +22 -16
- package/src/components/global-styles/test/use-global-styles-output.js +1 -1
- package/src/components/global-styles/use-global-styles-output.js +1 -1
- package/src/components/iframe/content.scss +16 -3
- package/src/components/iframe/get-compatibility-styles.js +4 -9
- package/src/components/iframe/index.js +204 -44
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +3 -6
- package/src/components/inserter/block-patterns-tab/index.js +0 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +15 -17
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +8 -0
- package/src/components/inserter/block-patterns-tab/utils.js +5 -0
- package/src/components/inserter/category-tabs/index.js +8 -9
- package/src/components/inserter/hooks/use-block-types-state.js +6 -1
- package/src/components/inserter/hooks/use-patterns-paging.js +1 -6
- package/src/components/inserter/search-results.js +0 -6
- package/src/components/inserter-draggable-blocks/index.js +10 -1
- package/src/components/inspector-controls/README.md +2 -0
- package/src/components/inspector-controls/slot.js +6 -4
- package/src/components/inspector-controls-tabs/position-controls-panel.js +1 -3
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +10 -10
- package/src/components/media-placeholder/index.js +41 -37
- package/src/components/provider/test/use-block-sync.js +3 -1
- package/src/components/rich-text/content.scss +15 -10
- package/src/components/rich-text/index.js +8 -1
- package/src/components/tabbed-sidebar/index.js +1 -1
- package/src/components/tabbed-sidebar/style.scss +1 -1
- package/src/components/url-input/index.js +3 -4
- package/src/components/use-block-commands/index.js +245 -234
- package/src/hooks/border.js +3 -9
- package/src/hooks/color.js +1 -1
- package/src/hooks/dimensions.js +2 -2
- package/src/hooks/font-family.js +1 -1
- package/src/hooks/style.js +6 -12
- package/src/hooks/supports.js +7 -7
- package/src/hooks/test/style.js +1 -2
- package/src/hooks/typography.js +6 -6
- package/src/hooks/utils.js +8 -3
- package/src/layouts/flex.js +26 -18
- package/src/private-apis.js +6 -6
- package/src/store/private-selectors.js +6 -7
- package/src/store/selectors.js +60 -45
- package/src/store/test/private-selectors.js +5 -0
- package/src/store/test/selectors.js +87 -58
- package/src/store/utils.js +12 -11
- package/src/style.scss +1 -0
- package/src/utils/dom.js +26 -21
- package/src/utils/test/dom.js +224 -0
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-info-slot-fill/index.js +0 -39
- package/build/components/block-info-slot-fill/index.js.map +0 -1
- package/build-module/components/block-info-slot-fill/index.js +0 -32
- package/build-module/components/block-info-slot-fill/index.js.map +0 -1
- package/src/components/block-info-slot-fill/index.js +0 -27
- /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
|
@@ -42,8 +42,7 @@ function BlockPattern({
|
|
|
42
42
|
pattern,
|
|
43
43
|
onClick,
|
|
44
44
|
onHover,
|
|
45
|
-
|
|
46
|
-
showTooltip,
|
|
45
|
+
showTitlesAsTooltip,
|
|
47
46
|
category
|
|
48
47
|
}) {
|
|
49
48
|
const [isDragging, setIsDragging] = useState(false);
|
|
@@ -53,6 +52,7 @@ function BlockPattern({
|
|
|
53
52
|
} = pattern;
|
|
54
53
|
const instanceId = useInstanceId(BlockPattern);
|
|
55
54
|
const descriptionId = `block-editor-block-patterns-list__item-description-${instanceId}`;
|
|
55
|
+
const isUserPattern = pattern.type === INSERTER_PATTERN_TYPES.user;
|
|
56
56
|
|
|
57
57
|
// When we have a selected category and the pattern is draggable, we need to update the
|
|
58
58
|
// pattern's categories in metadata to only contain the selected category, and pass this to
|
|
@@ -95,7 +95,7 @@ function BlockPattern({
|
|
|
95
95
|
}
|
|
96
96
|
},
|
|
97
97
|
children: /*#__PURE__*/_jsx(WithToolTip, {
|
|
98
|
-
showTooltip:
|
|
98
|
+
showTooltip: showTitlesAsTooltip && !isUserPattern,
|
|
99
99
|
title: pattern.title,
|
|
100
100
|
children: /*#__PURE__*/_jsxs(Composite.Item, {
|
|
101
101
|
render: /*#__PURE__*/_jsx("div", {
|
|
@@ -118,19 +118,22 @@ function BlockPattern({
|
|
|
118
118
|
onHover?.(pattern);
|
|
119
119
|
},
|
|
120
120
|
onMouseLeave: () => onHover?.(null),
|
|
121
|
-
children: [/*#__PURE__*/_jsx(BlockPreview, {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
children: [/*#__PURE__*/_jsx(BlockPreview.Async, {
|
|
122
|
+
placeholder: /*#__PURE__*/_jsx(BlockPatternPlaceholder, {}),
|
|
123
|
+
children: /*#__PURE__*/_jsx(BlockPreview, {
|
|
124
|
+
blocks: blocks,
|
|
125
|
+
viewportWidth: viewportWidth
|
|
126
|
+
})
|
|
127
|
+
}), (!showTitlesAsTooltip || isUserPattern) && /*#__PURE__*/_jsxs(HStack, {
|
|
125
128
|
className: "block-editor-patterns__pattern-details",
|
|
126
129
|
spacing: 2,
|
|
127
|
-
children: [
|
|
130
|
+
children: [isUserPattern && !pattern.syncStatus && /*#__PURE__*/_jsx("div", {
|
|
128
131
|
className: "block-editor-patterns__pattern-icon-wrapper",
|
|
129
132
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
130
133
|
className: "block-editor-patterns__pattern-icon",
|
|
131
134
|
icon: symbol
|
|
132
135
|
})
|
|
133
|
-
}),
|
|
136
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
134
137
|
className: "block-editor-block-patterns-list__item-title",
|
|
135
138
|
children: pattern.title
|
|
136
139
|
})]
|
|
@@ -151,13 +154,11 @@ function BlockPatternPlaceholder() {
|
|
|
151
154
|
function BlockPatternsList({
|
|
152
155
|
isDraggable,
|
|
153
156
|
blockPatterns,
|
|
154
|
-
shownPatterns,
|
|
155
157
|
onHover,
|
|
156
158
|
onClickPattern,
|
|
157
159
|
orientation,
|
|
158
160
|
label = __('Block patterns'),
|
|
159
161
|
category,
|
|
160
|
-
showTitle = true,
|
|
161
162
|
showTitlesAsTooltip,
|
|
162
163
|
pagingProps
|
|
163
164
|
}, ref) {
|
|
@@ -166,9 +167,9 @@ function BlockPatternsList({
|
|
|
166
167
|
// Reset the active composite item whenever the available patterns change,
|
|
167
168
|
// to make sure that Composite widget can receive focus correctly when its
|
|
168
169
|
// composite items change. The first composite item will receive focus.
|
|
169
|
-
const firstCompositeItemId = blockPatterns
|
|
170
|
+
const firstCompositeItemId = blockPatterns[0]?.name;
|
|
170
171
|
setActiveCompositeId(firstCompositeItemId);
|
|
171
|
-
}, [
|
|
172
|
+
}, [blockPatterns]);
|
|
172
173
|
return /*#__PURE__*/_jsxs(Composite, {
|
|
173
174
|
orientation: orientation,
|
|
174
175
|
activeId: activeCompositeId,
|
|
@@ -177,19 +178,15 @@ function BlockPatternsList({
|
|
|
177
178
|
className: "block-editor-block-patterns-list",
|
|
178
179
|
"aria-label": label,
|
|
179
180
|
ref: ref,
|
|
180
|
-
children: [blockPatterns.map(pattern => {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
showTooltip: showTitlesAsTooltip,
|
|
190
|
-
category: category
|
|
191
|
-
}, pattern.name) : /*#__PURE__*/_jsx(BlockPatternPlaceholder, {}, pattern.name);
|
|
192
|
-
}), pagingProps && /*#__PURE__*/_jsx(BlockPatternsPaging, {
|
|
181
|
+
children: [blockPatterns.map(pattern => /*#__PURE__*/_jsx(BlockPattern, {
|
|
182
|
+
id: pattern.name,
|
|
183
|
+
pattern: pattern,
|
|
184
|
+
onClick: onClickPattern,
|
|
185
|
+
onHover: onHover,
|
|
186
|
+
isDraggable: isDraggable,
|
|
187
|
+
showTitlesAsTooltip: showTitlesAsTooltip,
|
|
188
|
+
category: category
|
|
189
|
+
}, pattern.name)), pagingProps && /*#__PURE__*/_jsx(BlockPatternsPaging, {
|
|
193
190
|
...pagingProps
|
|
194
191
|
})]
|
|
195
192
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","cloneBlock","useEffect","useState","forwardRef","useMemo","Composite","VisuallyHidden","Tooltip","__experimentalHStack","HStack","useInstanceId","__","Icon","symbol","BlockPreview","InserterDraggableBlocks","BlockPatternsPaging","INSERTER_PATTERN_TYPES","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","WithToolTip","showTooltip","title","children","text","BlockPattern","id","isDraggable","pattern","onClick","onHover","showTitle","category","isDragging","setIsDragging","blocks","viewportWidth","instanceId","descriptionId","patternBlocks","map","block","clonedBlock","attributes","metadata","categories","includes","isEnabled","draggable","onDragStart","onDragEnd","className","event","type","user","Item","render","role","description","undefined","syncStatus","onMouseEnter","onMouseLeave","spacing","icon","BlockPatternPlaceholder","BlockPatternsList","blockPatterns","shownPatterns","onClickPattern","orientation","label","showTitlesAsTooltip","pagingProps","ref","activeCompositeId","setActiveCompositeId","firstCompositeItemId","find","name","activeId","setActiveId","isShown"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useEffect, useState, forwardRef, useMemo } from '@wordpress/element';\nimport {\n\tComposite,\n\tVisuallyHidden,\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';\nimport BlockPatternsPaging from '../block-patterns-paging';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\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\tid,\n\tisDraggable,\n\tpattern,\n\tonClick,\n\tonHover,\n\tshowTitle = true,\n\tshowTooltip,\n\tcategory,\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\t// When we have a selected category and the pattern is draggable, we need to update the\n\t// pattern's categories in metadata to only contain the selected category, and pass this to\n\t// InserterDraggableBlocks component. We do that because we use this information for pattern\n\t// shuffling and it makes more sense to show only the ones from the initially selected category during insertion.\n\tconst patternBlocks = useMemo( () => {\n\t\tif ( ! category || ! isDraggable ) {\n\t\t\treturn blocks;\n\t\t}\n\t\treturn ( blocks ?? [] ).map( ( block ) => {\n\t\t\tconst clonedBlock = cloneBlock( block );\n\t\t\tif (\n\t\t\t\tclonedBlock.attributes.metadata?.categories?.includes(\n\t\t\t\t\tcategory\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tclonedBlock.attributes.metadata.categories = [ category ];\n\t\t\t}\n\t\t\treturn clonedBlock;\n\t\t} );\n\t}, [ blocks, isDraggable, category ] );\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ patternBlocks }\n\t\t\tpattern={ 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={\n\t\t\t\t\t\t\tshowTooltip &&\n\t\t\t\t\t\t\t! pattern.type !== INSERTER_PATTERN_TYPES.user\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ pattern.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\tpattern.description\n\t\t\t\t\t\t\t\t\t\t\t? descriptionId\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\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\t\t\tpattern.type ===\n\t\t\t\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user &&\n\t\t\t\t\t\t\t\t\t\t\t\t! pattern.syncStatus,\n\t\t\t\t\t\t\t\t\t\t}\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}\n\t\t\t\t\t\t\tid={ id }\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>\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{ showTitle && (\n\t\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-patterns__pattern-details\"\n\t\t\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ pattern.type ===\n\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user &&\n\t\t\t\t\t\t\t\t\t\t! pattern.syncStatus && (\n\t\t\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\t\t<Icon\n\t\t\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\t\t\ticon={ symbol }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( ! showTooltip ||\n\t\t\t\t\t\t\t\t\t\tpattern.type ===\n\t\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user ) && (\n\t\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\t{ pattern.title }\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t) }\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</Composite.Item>\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 BlockPatternsList(\n\t{\n\t\tisDraggable,\n\t\tblockPatterns,\n\t\tshownPatterns,\n\t\tonHover,\n\t\tonClickPattern,\n\t\torientation,\n\t\tlabel = __( 'Block patterns' ),\n\t\tcategory,\n\t\tshowTitle = true,\n\t\tshowTitlesAsTooltip,\n\t\tpagingProps,\n\t},\n\tref\n) {\n\tconst [ activeCompositeId, setActiveCompositeId ] = useState( undefined );\n\n\tuseEffect( () => {\n\t\t// Reset the active composite item whenever the available patterns change,\n\t\t// to make sure that Composite widget can receive focus correctly when its\n\t\t// composite items change. The first composite item will receive focus.\n\t\tconst firstCompositeItemId = blockPatterns.find( ( pattern ) =>\n\t\t\tshownPatterns.includes( pattern )\n\t\t)?.name;\n\t\tsetActiveCompositeId( firstCompositeItemId );\n\t}, [ shownPatterns, blockPatterns ] );\n\n\treturn (\n\t\t<Composite\n\t\t\torientation={ orientation }\n\t\t\tactiveId={ activeCompositeId }\n\t\t\tsetActiveId={ setActiveCompositeId }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t\tref={ ref }\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\tid={ 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\tshowTitle={ showTitle }\n\t\t\t\t\t\tshowTooltip={ showTitlesAsTooltip }\n\t\t\t\t\t\tcategory={ category }\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\t{ pagingProps && <BlockPatternsPaging { ...pagingProps } /> }\n\t\t</Composite>\n\t);\n}\n\nexport default forwardRef( BlockPatternsList );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","cloneBlock","useEffect","useState","forwardRef","useMemo","Composite","VisuallyHidden","Tooltip","__experimentalHStack","HStack","useInstanceId","__","Icon","symbol","BlockPreview","InserterDraggableBlocks","BlockPatternsPaging","INSERTER_PATTERN_TYPES","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","WithToolTip","showTooltip","title","children","text","BlockPattern","id","isDraggable","pattern","onClick","onHover","showTitlesAsTooltip","category","isDragging","setIsDragging","blocks","viewportWidth","instanceId","descriptionId","isUserPattern","type","user","patternBlocks","map","block","clonedBlock","attributes","metadata","categories","includes","isEnabled","draggable","onDragStart","onDragEnd","className","event","Item","render","role","description","undefined","syncStatus","onMouseEnter","onMouseLeave","Async","placeholder","BlockPatternPlaceholder","spacing","icon","BlockPatternsList","blockPatterns","onClickPattern","orientation","label","pagingProps","ref","activeCompositeId","setActiveCompositeId","firstCompositeItemId","name","activeId","setActiveId"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useEffect, useState, forwardRef, useMemo } from '@wordpress/element';\nimport {\n\tComposite,\n\tVisuallyHidden,\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';\nimport BlockPatternsPaging from '../block-patterns-paging';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\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\tid,\n\tisDraggable,\n\tpattern,\n\tonClick,\n\tonHover,\n\tshowTitlesAsTooltip,\n\tcategory,\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\tconst isUserPattern = pattern.type === INSERTER_PATTERN_TYPES.user;\n\n\t// When we have a selected category and the pattern is draggable, we need to update the\n\t// pattern's categories in metadata to only contain the selected category, and pass this to\n\t// InserterDraggableBlocks component. We do that because we use this information for pattern\n\t// shuffling and it makes more sense to show only the ones from the initially selected category during insertion.\n\tconst patternBlocks = useMemo( () => {\n\t\tif ( ! category || ! isDraggable ) {\n\t\t\treturn blocks;\n\t\t}\n\t\treturn ( blocks ?? [] ).map( ( block ) => {\n\t\t\tconst clonedBlock = cloneBlock( block );\n\t\t\tif (\n\t\t\t\tclonedBlock.attributes.metadata?.categories?.includes(\n\t\t\t\t\tcategory\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tclonedBlock.attributes.metadata.categories = [ category ];\n\t\t\t}\n\t\t\treturn clonedBlock;\n\t\t} );\n\t}, [ blocks, isDraggable, category ] );\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ patternBlocks }\n\t\t\tpattern={ 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={ showTitlesAsTooltip && ! isUserPattern }\n\t\t\t\t\t\ttitle={ pattern.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\tpattern.description\n\t\t\t\t\t\t\t\t\t\t\t? descriptionId\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\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\t\t\tpattern.type ===\n\t\t\t\t\t\t\t\t\t\t\t\t\tINSERTER_PATTERN_TYPES.user &&\n\t\t\t\t\t\t\t\t\t\t\t\t! pattern.syncStatus,\n\t\t\t\t\t\t\t\t\t\t}\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}\n\t\t\t\t\t\t\tid={ id }\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>\n\t\t\t\t\t\t\t<BlockPreview.Async\n\t\t\t\t\t\t\t\tplaceholder={ <BlockPatternPlaceholder /> }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</BlockPreview.Async>\n\t\t\t\t\t\t\t{ ( ! showTitlesAsTooltip || isUserPattern ) && (\n\t\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-patterns__pattern-details\"\n\t\t\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isUserPattern && ! pattern.syncStatus && (\n\t\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\t<Icon\n\t\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\t\ticon={ symbol }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) }\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</HStack>\n\t\t\t\t\t\t\t) }\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</Composite.Item>\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 BlockPatternsList(\n\t{\n\t\tisDraggable,\n\t\tblockPatterns,\n\t\tonHover,\n\t\tonClickPattern,\n\t\torientation,\n\t\tlabel = __( 'Block patterns' ),\n\t\tcategory,\n\t\tshowTitlesAsTooltip,\n\t\tpagingProps,\n\t},\n\tref\n) {\n\tconst [ activeCompositeId, setActiveCompositeId ] = useState( undefined );\n\n\tuseEffect( () => {\n\t\t// Reset the active composite item whenever the available patterns change,\n\t\t// to make sure that Composite widget can receive focus correctly when its\n\t\t// composite items change. The first composite item will receive focus.\n\t\tconst firstCompositeItemId = blockPatterns[ 0 ]?.name;\n\t\tsetActiveCompositeId( firstCompositeItemId );\n\t}, [ blockPatterns ] );\n\n\treturn (\n\t\t<Composite\n\t\t\torientation={ orientation }\n\t\t\tactiveId={ activeCompositeId }\n\t\t\tsetActiveId={ setActiveCompositeId }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t{ blockPatterns.map( ( pattern ) => (\n\t\t\t\t<BlockPattern\n\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\tid={ pattern.name }\n\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t\t\tcategory={ category }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ pagingProps && <BlockPatternsPaging { ...pagingProps } /> }\n\t\t</Composite>\n\t);\n}\n\nexport default forwardRef( BlockPatternsList );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@ import { forwardRef, useMemo, useReducer, useLayoutEffect } from '@wordpress/ele
|
|
|
15
15
|
*/
|
|
16
16
|
import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
|
|
17
17
|
import usePopoverScroll from './use-popover-scroll';
|
|
18
|
-
import { rectUnion,
|
|
18
|
+
import { rectUnion, getElementBounds } from '../../utils/dom';
|
|
19
19
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
20
|
const MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;
|
|
21
21
|
function BlockPopover({
|
|
@@ -63,7 +63,7 @@ function BlockPopover({
|
|
|
63
63
|
}
|
|
64
64
|
return {
|
|
65
65
|
getBoundingClientRect() {
|
|
66
|
-
return lastSelectedElement ? rectUnion(
|
|
66
|
+
return lastSelectedElement ? rectUnion(getElementBounds(selectedElement), getElementBounds(lastSelectedElement)) : getElementBounds(selectedElement);
|
|
67
67
|
},
|
|
68
68
|
contextElement: selectedElement
|
|
69
69
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useMergeRefs","Popover","forwardRef","useMemo","useReducer","useLayoutEffect","useBlockElement","usePopoverScroll","rectUnion","
|
|
1
|
+
{"version":3,"names":["clsx","useMergeRefs","Popover","forwardRef","useMemo","useReducer","useLayoutEffect","useBlockElement","usePopoverScroll","rectUnion","getElementBounds","jsx","_jsx","MAX_POPOVER_RECOMPUTE_COUNTER","Number","MAX_SAFE_INTEGER","BlockPopover","clientId","bottomClientId","children","__unstablePopoverSlot","__unstableContentRef","shift","props","ref","selectedElement","lastSelectedElement","mergedRefs","popoverDimensionsRecomputeCounter","forceRecomputePopoverDimensions","s","observer","window","MutationObserver","observe","attributes","disconnect","popoverAnchor","undefined","getBoundingClientRect","contextElement","animate","focusOnMount","anchor","__unstableSlotName","inline","placement","resize","flip","className","variant","PrivateBlockPopover","PublicBlockPopover"],"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\nimport { rectUnion, getElementBounds } from '../../utils/dom';\n\nconst MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\tshift = true,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\n\tconst [\n\t\tpopoverDimensionsRecomputeCounter,\n\t\tforceRecomputePopoverDimensions,\n\t] = useReducer(\n\t\t// Module is there to make sure that the counter doesn't overflow.\n\t\t( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,\n\t\t0\n\t);\n\n\t// When blocks are moved up/down, they are animated to their new position by\n\t// updating the `transform` property manually (i.e. without using CSS\n\t// transitions or animations). The animation, which can also scroll the block\n\t// editor, can sometimes cause the position of the Popover to get out of sync.\n\t// A MutationObserver is therefore used to make sure that changes to the\n\t// selectedElement's attribute (i.e. `transform`) can be tracked and used to\n\t// trigger the Popover to rerender.\n\tuseLayoutEffect( () => {\n\t\tif ( ! selectedElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new window.MutationObserver(\n\t\t\tforceRecomputePopoverDimensions\n\t\t);\n\t\tobserver.observe( selectedElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ selectedElement ] );\n\n\tconst popoverAnchor = useMemo( () => {\n\t\tif (\n\t\t\t// popoverDimensionsRecomputeCounter is by definition always equal or greater\n\t\t\t// than 0. This check is only there to satisfy the correctness of the\n\t\t\t// exhaustive-deps rule for the `useMemo` hook.\n\t\t\tpopoverDimensionsRecomputeCounter < 0 ||\n\t\t\t! selectedElement ||\n\t\t\t( bottomClientId && ! lastSelectedElement )\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn lastSelectedElement\n\t\t\t\t\t? rectUnion(\n\t\t\t\t\t\t\tgetElementBounds( selectedElement ),\n\t\t\t\t\t\t\tgetElementBounds( lastSelectedElement )\n\t\t\t\t\t )\n\t\t\t\t\t: getElementBounds( selectedElement );\n\t\t\t},\n\t\t\tcontextElement: selectedElement,\n\t\t};\n\t}, [\n\t\tpopoverDimensionsRecomputeCounter,\n\t\tselectedElement,\n\t\tbottomClientId,\n\t\tlastSelectedElement,\n\t] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot }\n\t\t\tinline={ ! __unstablePopoverSlot }\n\t\t\tplacement=\"top-start\"\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tshift={ shift }\n\t\t\t{ ...props }\n\t\t\tclassName={ clsx( 'block-editor-block-popover', props.className ) }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t{ children }\n\t\t</Popover>\n\t);\n}\n\nexport const PrivateBlockPopover = forwardRef( BlockPopover );\n\nconst PublicBlockPopover = (\n\t{ clientId, bottomClientId, children, ...props },\n\tref\n) => (\n\t<PrivateBlockPopover\n\t\t{ ...props }\n\t\tbottomClientId={ bottomClientId }\n\t\tclientId={ clientId }\n\t\t__unstableContentRef={ undefined }\n\t\t__unstablePopoverSlot={ undefined }\n\t\tref={ ref }\n\t>\n\t\t{ children }\n\t</PrivateBlockPopover>\n);\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-popover/README.md\n */\nexport default forwardRef( PublicBlockPopover );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useEffect, useState, flushSync } from '@wordpress/element';
|
|
5
|
+
import { createQueue } from '@wordpress/priority-queue';
|
|
6
|
+
const blockPreviewQueue = createQueue();
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Renders a component at the next idle time.
|
|
10
|
+
* @param {*} props
|
|
11
|
+
*/
|
|
12
|
+
export function Async({
|
|
13
|
+
children,
|
|
14
|
+
placeholder
|
|
15
|
+
}) {
|
|
16
|
+
const [shouldRender, setShouldRender] = useState(false);
|
|
17
|
+
|
|
18
|
+
// In the future, we could try to use startTransition here, but currently
|
|
19
|
+
// react will batch all transitions, which means all previews will be
|
|
20
|
+
// rendered at the same time.
|
|
21
|
+
// https://react.dev/reference/react/startTransition#caveats
|
|
22
|
+
// > If there are multiple ongoing Transitions, React currently batches them
|
|
23
|
+
// > together. This is a limitation that will likely be removed in a future
|
|
24
|
+
// > release.
|
|
25
|
+
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
const context = {};
|
|
28
|
+
blockPreviewQueue.add(context, () => {
|
|
29
|
+
// Synchronously run all renders so it consumes timeRemaining.
|
|
30
|
+
// See https://github.com/WordPress/gutenberg/pull/48238
|
|
31
|
+
flushSync(() => {
|
|
32
|
+
setShouldRender(true);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return () => {
|
|
36
|
+
blockPreviewQueue.cancel(context);
|
|
37
|
+
};
|
|
38
|
+
}, []);
|
|
39
|
+
if (!shouldRender) {
|
|
40
|
+
return placeholder;
|
|
41
|
+
}
|
|
42
|
+
return children;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","flushSync","createQueue","blockPreviewQueue","Async","children","placeholder","shouldRender","setShouldRender","context","add","cancel"],"sources":["@wordpress/block-editor/src/components/block-preview/async.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, flushSync } from '@wordpress/element';\nimport { createQueue } from '@wordpress/priority-queue';\n\nconst blockPreviewQueue = createQueue();\n\n/**\n * Renders a component at the next idle time.\n * @param {*} props\n */\nexport function Async( { children, placeholder } ) {\n\tconst [ shouldRender, setShouldRender ] = useState( false );\n\n\t// In the future, we could try to use startTransition here, but currently\n\t// react will batch all transitions, which means all previews will be\n\t// rendered at the same time.\n\t// https://react.dev/reference/react/startTransition#caveats\n\t// > If there are multiple ongoing Transitions, React currently batches them\n\t// > together. This is a limitation that will likely be removed in a future\n\t// > release.\n\n\tuseEffect( () => {\n\t\tconst context = {};\n\t\tblockPreviewQueue.add( context, () => {\n\t\t\t// Synchronously run all renders so it consumes timeRemaining.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/48238\n\t\t\tflushSync( () => {\n\t\t\t\tsetShouldRender( true );\n\t\t\t} );\n\t\t} );\n\t\treturn () => {\n\t\t\tblockPreviewQueue.cancel( context );\n\t\t};\n\t}, [] );\n\n\tif ( ! shouldRender ) {\n\t\treturn placeholder;\n\t}\n\n\treturn children;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;AACnE,SAASC,WAAW,QAAQ,2BAA2B;AAEvD,MAAMC,iBAAiB,GAAGD,WAAW,CAAC,CAAC;;AAEvC;AACA;AACA;AACA;AACA,OAAO,SAASE,KAAKA,CAAE;EAAEC,QAAQ;EAAEC;AAAY,CAAC,EAAG;EAClD,MAAM,CAAEC,YAAY,EAAEC,eAAe,CAAE,GAAGR,QAAQ,CAAE,KAAM,CAAC;;EAE3D;EACA;EACA;EACA;EACA;EACA;EACA;;EAEAD,SAAS,CAAE,MAAM;IAChB,MAAMU,OAAO,GAAG,CAAC,CAAC;IAClBN,iBAAiB,CAACO,GAAG,CAAED,OAAO,EAAE,MAAM;MACrC;MACA;MACAR,SAAS,CAAE,MAAM;QAChBO,eAAe,CAAE,IAAK,CAAC;MACxB,CAAE,CAAC;IACJ,CAAE,CAAC;IACH,OAAO,MAAM;MACZL,iBAAiB,CAACQ,MAAM,CAAEF,OAAQ,CAAC;IACpC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEF,YAAY,EAAG;IACrB,OAAOD,WAAW;EACnB;EAEA,OAAOD,QAAQ;AAChB","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ import AutoHeightBlockPreview from './auto';
|
|
|
19
19
|
import EditorStyles from '../editor-styles';
|
|
20
20
|
import { store as blockEditorStore } from '../../store';
|
|
21
21
|
import { BlockListItems } from '../block-list';
|
|
22
|
+
import { Async } from './async';
|
|
22
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
24
|
const EMPTY_ADDITIONAL_STYLES = [];
|
|
24
25
|
export function BlockPreview({
|
|
@@ -69,6 +70,8 @@ export function BlockPreview({
|
|
|
69
70
|
})
|
|
70
71
|
});
|
|
71
72
|
}
|
|
73
|
+
const MemoizedBlockPreview = memo(BlockPreview);
|
|
74
|
+
MemoizedBlockPreview.Async = Async;
|
|
72
75
|
|
|
73
76
|
/**
|
|
74
77
|
* BlockPreview renders a preview of a block or array of blocks.
|
|
@@ -81,7 +84,7 @@ export function BlockPreview({
|
|
|
81
84
|
*
|
|
82
85
|
* @return {Component} The component to be rendered.
|
|
83
86
|
*/
|
|
84
|
-
export default
|
|
87
|
+
export default MemoizedBlockPreview;
|
|
85
88
|
|
|
86
89
|
/**
|
|
87
90
|
* This hook is used to lightly mark an element as a block preview wrapper
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useDisabled","useMergeRefs","useSelect","memo","useMemo","deprecated","ExperimentalBlockEditorProvider","AutoHeightBlockPreview","EditorStyles","store","blockEditorStore","BlockListItems","jsx","_jsx","jsxs","_jsxs","EMPTY_ADDITIONAL_STYLES","BlockPreview","blocks","viewportWidth","minHeight","additionalStyles","__experimentalMinHeight","__experimentalPadding","since","version","alternative","css","originalSettings","select","getSettings","settings","focusMode","isPreviewMode","renderedBlocks","Array","isArray","length","value","children","useBlockPreview","props","layout","styles","undefined","disabledRef","ref","renderAppender","className"],"sources":["@wordpress/block-editor/src/components/block-preview/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useDisabled, useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { memo, useMemo } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { ExperimentalBlockEditorProvider } from '../provider';\nimport AutoHeightBlockPreview from './auto';\nimport EditorStyles from '../editor-styles';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockListItems } from '../block-list';\n\nconst EMPTY_ADDITIONAL_STYLES = [];\n\nexport function BlockPreview( {\n\tblocks,\n\tviewportWidth = 1200,\n\tminHeight,\n\tadditionalStyles = EMPTY_ADDITIONAL_STYLES,\n\t// Deprecated props:\n\t__experimentalMinHeight,\n\t__experimentalPadding,\n} ) {\n\tif ( __experimentalMinHeight ) {\n\t\tminHeight = __experimentalMinHeight;\n\t\tdeprecated( 'The __experimentalMinHeight prop', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t\talternative: 'minHeight',\n\t\t} );\n\t}\n\tif ( __experimentalPadding ) {\n\t\tadditionalStyles = [\n\t\t\t...additionalStyles,\n\t\t\t{ css: `body { padding: ${ __experimentalPadding }px; }` },\n\t\t];\n\t\tdeprecated( 'The __experimentalPadding prop of BlockPreview', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t\talternative: 'additionalStyles',\n\t\t} );\n\t}\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tif ( ! blocks || blocks.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ renderedBlocks }\n\t\t\tsettings={ settings }\n\t\t>\n\t\t\t<AutoHeightBlockPreview\n\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t/>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\n/**\n * BlockPreview renders a preview of a block or array of blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-preview/README.md\n *\n * @param {Object} preview options for how the preview should be shown\n * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.\n * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.\n *\n * @return {Component} The component to be rendered.\n */\nexport default
|
|
1
|
+
{"version":3,"names":["clsx","useDisabled","useMergeRefs","useSelect","memo","useMemo","deprecated","ExperimentalBlockEditorProvider","AutoHeightBlockPreview","EditorStyles","store","blockEditorStore","BlockListItems","Async","jsx","_jsx","jsxs","_jsxs","EMPTY_ADDITIONAL_STYLES","BlockPreview","blocks","viewportWidth","minHeight","additionalStyles","__experimentalMinHeight","__experimentalPadding","since","version","alternative","css","originalSettings","select","getSettings","settings","focusMode","isPreviewMode","renderedBlocks","Array","isArray","length","value","children","MemoizedBlockPreview","useBlockPreview","props","layout","styles","undefined","disabledRef","ref","renderAppender","className"],"sources":["@wordpress/block-editor/src/components/block-preview/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useDisabled, useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { memo, useMemo } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { ExperimentalBlockEditorProvider } from '../provider';\nimport AutoHeightBlockPreview from './auto';\nimport EditorStyles from '../editor-styles';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockListItems } from '../block-list';\nimport { Async } from './async';\n\nconst EMPTY_ADDITIONAL_STYLES = [];\n\nexport function BlockPreview( {\n\tblocks,\n\tviewportWidth = 1200,\n\tminHeight,\n\tadditionalStyles = EMPTY_ADDITIONAL_STYLES,\n\t// Deprecated props:\n\t__experimentalMinHeight,\n\t__experimentalPadding,\n} ) {\n\tif ( __experimentalMinHeight ) {\n\t\tminHeight = __experimentalMinHeight;\n\t\tdeprecated( 'The __experimentalMinHeight prop', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t\talternative: 'minHeight',\n\t\t} );\n\t}\n\tif ( __experimentalPadding ) {\n\t\tadditionalStyles = [\n\t\t\t...additionalStyles,\n\t\t\t{ css: `body { padding: ${ __experimentalPadding }px; }` },\n\t\t];\n\t\tdeprecated( 'The __experimentalPadding prop of BlockPreview', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t\talternative: 'additionalStyles',\n\t\t} );\n\t}\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tif ( ! blocks || blocks.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ renderedBlocks }\n\t\t\tsettings={ settings }\n\t\t>\n\t\t\t<AutoHeightBlockPreview\n\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t/>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nconst MemoizedBlockPreview = memo( BlockPreview );\n\nMemoizedBlockPreview.Async = Async;\n\n/**\n * BlockPreview renders a preview of a block or array of blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-preview/README.md\n *\n * @param {Object} preview options for how the preview should be shown\n * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.\n * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.\n *\n * @return {Component} The component to be rendered.\n */\nexport default MemoizedBlockPreview;\n\n/**\n * This hook is used to lightly mark an element as a block preview wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * a block preview wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} options Preview options.\n * @param {WPBlock[]} options.blocks Block objects.\n * @param {Object} options.props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options.layout Layout settings to be used in the preview.\n */\nexport function useBlockPreview( { blocks, props = {}, layout } ) {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles: undefined, // Clear styles included by the parent settings, as they are already output by the parent's EditorStyles.\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\tconst disabledRef = useDisabled();\n\tconst ref = useMergeRefs( [ props.ref, disabledRef ] );\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst children = (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ renderedBlocks }\n\t\t\tsettings={ settings }\n\t\t>\n\t\t\t<EditorStyles />\n\t\t\t<BlockListItems renderAppender={ false } layout={ layout } />\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tclassName: clsx(\n\t\t\tprops.className,\n\t\t\t'block-editor-block-preview__live-content',\n\t\t\t'components-disabled'\n\t\t),\n\t\tchildren: blocks?.length ? children : null,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@ import { pipe, useCopyToClipboard } from '@wordpress/compose';
|
|
|
15
15
|
* Internal dependencies
|
|
16
16
|
*/
|
|
17
17
|
import BlockActions from '../block-actions';
|
|
18
|
-
import
|
|
18
|
+
import CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';
|
|
19
19
|
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';
|
|
@@ -213,7 +213,7 @@ export function BlockSettingsDropdown({
|
|
|
213
213
|
shortcut: shortcuts.insertAfter,
|
|
214
214
|
children: __('Add after')
|
|
215
215
|
})]
|
|
216
|
-
}), /*#__PURE__*/_jsx(
|
|
216
|
+
}), /*#__PURE__*/_jsx(CommentIconSlotFill.Slot, {
|
|
217
217
|
fillProps: {
|
|
218
218
|
onClose
|
|
219
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","__","displayShortcut","keyboardShortcutsStore","pipe","useCopyToClipboard","BlockActions","__unstableCommentIconFill","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","BlockParentSelectorMenuItem","blockEditorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","getBlocksByClientId","ref","copyMenuItemLabel","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","icon","popoverProps","noIcons","onClose","Slot","fillProps","parentClientId","primary","onClick","map","child"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport __unstableCommentIconFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { clientIds, onCopy, label, shortcut } ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\tonCopy\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! firstParentClientId;\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\topen={ open }\n\t\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t\t'c'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<__unstableCommentIconFill.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","__","displayShortcut","keyboardShortcutsStore","pipe","useCopyToClipboard","BlockActions","CommentIconSlotFill","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","BlockParentSelectorMenuItem","blockEditorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","getBlocksByClientId","ref","copyMenuItemLabel","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","icon","popoverProps","noIcons","onClose","Slot","fillProps","parentClientId","primary","onClick","map","child"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { clientIds, onCopy, label, shortcut } ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\tonCopy\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! firstParentClientId;\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\topen={ open }\n\t\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t\t'c'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,YAAY,EACZC,SAAS,EACTC,KAAK,IAAIC,WAAW,QACd,mBAAmB;AAC1B,SAASC,YAAY,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AACzE,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,QAAQ,EAAEC,YAAY,QAAQ,oBAAoB;AAC3D,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASX,KAAK,IAAIY,sBAAsB,QAAQ,+BAA+B;AAC/E,SAASC,IAAI,EAAEC,kBAAkB,QAAQ,oBAAoB;;AAE7D;AACA;AACA;AACA,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,mBAAmB,MAAM,iDAAiD;AACjF,OAAOC,sBAAsB,MAAM,6BAA6B;AAChE,OAAOC,oCAAoC,MAAM,kCAAkC;AACnF,OAAOC,yBAAyB,MAAM,iCAAiC;AACvE,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,SAASpB,KAAK,IAAIqB,gBAAgB,QAAQ,aAAa;AACvD,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE3C,MAAMC,aAAa,GAAG;EACrBC,SAAS,EAAE,2CAA2C;EACtDC,SAAS,EAAE;AACZ,CAAC;AAED,SAASC,YAAYA,CAAE;EAAEC,SAAS;EAAEC,MAAM;EAAEC,KAAK;EAAEC;AAAS,CAAC,EAAG;EAC/D,MAAM;IAAEC;EAAoB,CAAC,GAAG/B,SAAS,CAAEe,gBAAiB,CAAC;EAC7D,MAAMiB,GAAG,GAAGxB,kBAAkB,CAC7B,MAAMf,SAAS,CAAEsC,mBAAmB,CAAEJ,SAAU,CAAE,CAAC,EACnDC,MACD,CAAC;EACD,MAAMK,iBAAiB,GAAGJ,KAAK,GAAGA,KAAK,GAAGzB,EAAE,CAAE,MAAO,CAAC;EACtD,oBACCc,IAAA,CAACpB,QAAQ;IAACkC,GAAG,EAAGA,GAAK;IAACF,QAAQ,EAAGA,QAAU;IAAAI,QAAA,EACxCD;EAAiB,CACV,CAAC;AAEb;AAEA,OAAO,SAASE,qBAAqBA,CAAE;EACtCC,KAAK;EACLT,SAAS;EACTO,QAAQ;EACRG,yBAAyB;EACzB,GAAGC;AACJ,CAAC,EAAG;EACH;EACA,MAAMC,eAAe,GAAGH,KAAK,EAAEI,QAAQ;EACvC,MAAMC,KAAK,GAAGd,SAAS,CAACe,MAAM;EAC9B,MAAMC,kBAAkB,GAAGhB,SAAS,CAAE,CAAC,CAAE;EACzC,MAAM;IACLiB,mBAAmB;IACnBC,eAAe;IACfC,qBAAqB;IACrBC,sBAAsB;IACtBC,uBAAuB;IACvBC;EACD,CAAC,GAAGjD,SAAS,CACVkD,MAAM,IAAM;IACb,MAAM;MACLC,YAAY;MACZC,oBAAoB;MACpBC,wBAAwB;MACxBC,yBAAyB;MACzBC,kBAAkB;MAClBC,0BAA0B;MAC1BC;IACD,CAAC,GAAGzC,MAAM,CAAEkC,MAAM,CAAEnC,gBAAiB,CAAE,CAAC;IAExC,MAAM;MAAE2C;IAAwB,CAAC,GAAGR,MAAM,CAAEvD,WAAY,CAAC;IAEzD,MAAMgE,oBAAoB,GACzBP,oBAAoB,CAAET,kBAAmB,CAAC;IAC3C,MAAMiB,eAAe,GACpBD,oBAAoB,IAAIR,YAAY,CAAEQ,oBAAqB,CAAC;IAE7D,OAAO;MACNf,mBAAmB,EAAEe,oBAAoB;MACzCd,eAAe,EACdc,oBAAoB,KAClBD,uBAAuB,CACxBE,eAAe,EACfL,kBAAkB,CAAEI,oBAAqB,CAC1C,CAAC,IACAnE,YAAY,CAAEoE,eAAgB,CAAC,CAAE;MACnCd,qBAAqB,EACpBO,wBAAwB,CAAEV,kBAAmB,CAAC;MAC/CI,sBAAsB,EAAEO,yBAAyB,CAAC,CAAC;MACnDN,uBAAuB,EAAEQ,0BAA0B,CAAC,CAAC;MACrDP,aAAa,EACZQ,mBAAmB,CAAEd,kBAAmB,CAAC,KAAK;IAChD,CAAC;EACF,CAAC,EACD,CAAEA,kBAAkB,CACrB,CAAC;EACD,MAAM;IAAEkB,aAAa;IAAEP;EAA0B,CAAC,GACjDtD,SAAS,CAAEe,gBAAiB,CAAC;EAE9B,MAAM;IAAE+C;EAA2B,CAAC,GAAG9C,MAAM,CAC5CjB,WAAW,CAAEgB,gBAAiB,CAC/B,CAAC;EAED,MAAMgD,SAAS,GAAG/D,SAAS,CAAIkD,MAAM,IAAM;IAC1C,MAAM;MAAEc;IAA0B,CAAC,GAAGd,MAAM,CAAE5C,sBAAuB,CAAC;IACtE,OAAO;MACN2D,SAAS,EAAED,yBAAyB,CACnC,6BACD,CAAC;MACDE,MAAM,EAAEF,yBAAyB,CAAE,0BAA2B,CAAC;MAC/DG,WAAW,EAAEH,yBAAyB,CACrC,gCACD,CAAC;MACDI,YAAY,EAAEJ,yBAAyB,CACtC,iCACD;IACD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMK,iBAAiB,GAAGtB,sBAAsB,CAACL,MAAM,GAAG,CAAC;EAE3D,eAAe4B,6BAA6BA,CAAEC,gBAAgB,EAAG;IAChE,IAAK,CAAElC,yBAAyB,EAAG;MAClC;IACD;IAEA,MAAMmC,GAAG,GAAG,MAAMD,gBAAgB;IAClC,IAAKC,GAAG,IAAIA,GAAG,CAAE,CAAC,CAAE,EAAG;MACtBnC,yBAAyB,CAAEmC,GAAG,CAAE,CAAC,CAAE,EAAE,KAAM,CAAC;IAC7C;EACD;EAEA,SAASC,0BAA0BA,CAAA,EAAG;IACrC,IAAK,CAAEpC,yBAAyB,EAAG;MAClC;IACD;IAEA,IAAIqC,YAAY,GAAG5B,qBAAqB,IAAIF,mBAAmB;;IAE/D;IACA,IAAK,CAAE8B,YAAY,EAAG;MACrBA,YAAY,GAAGb,aAAa,CAAC,CAAC,CAAE,CAAC,CAAE;IACpC;;IAEA;IACA,MAAMc,qBAAqB,GAC1BN,iBAAiB,IAAIf,yBAAyB,CAAC,CAAC,CAACZ,MAAM,KAAK,CAAC;IAE9DL,yBAAyB,CAAEqC,YAAY,EAAEC,qBAAsB,CAAC;EACjE;;EAEA;EACA;EACA,MAAMC,qBAAqB,GAC1B7B,sBAAsB,EAAE8B,QAAQ,CAAEjC,mBAAoB,CAAC;;EAExD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMkC,IAAI,GAAG,CAAEvC,eAAe,GAC3BwC,SAAS,GACT/B,uBAAuB,KAAKT,eAAe,IAAI,KAAK;EAEvD,SAASyC,QAAQA,CAAEC,SAAS,EAAG;IAC9B,IAAKA,SAAS,IAAIjC,uBAAuB,KAAKT,eAAe,EAAG;MAC/DuB,0BAA0B,CAAEvB,eAAgB,CAAC;IAC9C,CAAC,MAAM,IACN,CAAE0C,SAAS,IACXjC,uBAAuB,IACvBA,uBAAuB,KAAKT,eAAe,EAC1C;MACDuB,0BAA0B,CAAEiB,SAAU,CAAC;IACxC;EACD;EAEA,MAAMG,6BAA6B,GAClC,CAAEN,qBAAqB,IAAI,CAAC,CAAEhC,mBAAmB;EAElD,oBACC1B,IAAA,CAACT,YAAY;IACZkB,SAAS,EAAGA,SAAW;IACvBwD,6BAA6B,EAAG,CAAE9C,yBAA2B;IAAAH,QAAA,EAE3DA,CAAE;MACHkD,aAAa;MACbC,YAAY;MACZC,cAAc;MACdC,SAAS;MACTC,WAAW;MACXC,aAAa;MACbC,cAAc;MACdC,QAAQ;MACR/D,MAAM;MACNgE;IACD,CAAC,KAAM;MACN;MACA;MACA;MACA;MACA,MAAMC,OAAO,GACZ,CAAEN,SAAS,IACX,CAAEF,YAAY,IACd,CAAEC,cAAc,IAChBrC,aAAa;MAEd,IAAK4C,OAAO,EAAG;QACd,OAAO,IAAI;MACZ;MAEA,oBACC3E,IAAA,CAACtB,YAAY;QACZkG,IAAI,EAAG7F,YAAc;QACrB4B,KAAK,EAAGzB,EAAE,CAAE,SAAU,CAAG;QACzBoB,SAAS,EAAC,kCAAkC;QAC5CuE,YAAY,EAAGxE,aAAe;QAC9BuD,IAAI,EAAGA,IAAM;QACbE,QAAQ,EAAGA,QAAU;QACrBgB,OAAO;QAAA,GACF1D,KAAK;QAAAJ,QAAA,EAERA,CAAE;UAAE+D;QAAQ,CAAC,kBACd3E,KAAA,CAAAF,SAAA;UAAAc,QAAA,gBACCZ,KAAA,CAACzB,SAAS;YAAAqC,QAAA,gBACThB,IAAA,CAACN,oCAAoC,CAACsF,IAAI;cACzCC,SAAS,EAAG;gBAAEF;cAAQ;YAAG,CACzB,CAAC,EACAf,6BAA6B,iBAC9BhE,IAAA,CAACJ,2BAA2B;cAC3BsF,cAAc,EACbxD,mBACA;cACDC,eAAe,EAAGA;YAAiB,CACnC,CACD,EACCJ,KAAK,KAAK,CAAC,iBACZvB,IAAA,CAACP,sBAAsB;cACtB6B,QAAQ,EAAGG;YAAoB,CAC/B,CACD,EACC,CAAEM,aAAa,iBAChB/B,IAAA,CAACQ,YAAY;cACZC,SAAS,EAAGA,SAAW;cACvBC,MAAM,EAAGA,MAAQ;cACjBE,QAAQ,EAAGzB,eAAe,CAACgG,OAAO,CACjC,GACD;YAAG,CACH,CACD,EACChB,YAAY,iBACbnE,IAAA,CAACpB,QAAQ;cACRwG,OAAO,EAAG/F,IAAI,CACb0F,OAAO,EACPT,WAAW,EACXlB,6BACD,CAAG;cACHxC,QAAQ,EAAGiC,SAAS,CAACE,SAAW;cAAA/B,QAAA,EAE9B9B,EAAE,CAAE,WAAY;YAAC,CACV,CACV,EACCkF,cAAc,IAAI,CAAErC,aAAa,iBAClC3B,KAAA,CAAAF,SAAA;cAAAc,QAAA,gBACChB,IAAA,CAACpB,QAAQ;gBACRwG,OAAO,EAAG/F,IAAI,CACb0F,OAAO,EACPP,cACD,CAAG;gBACH5D,QAAQ,EACPiC,SAAS,CAACK,YACV;gBAAAlC,QAAA,EAEC9B,EAAE,CAAE,YAAa;cAAC,CACX,CAAC,eACXc,IAAA,CAACpB,QAAQ;gBACRwG,OAAO,EAAG/F,IAAI,CACb0F,OAAO,EACPR,aACD,CAAG;gBACH3D,QAAQ,EACPiC,SAAS,CAACI,WACV;gBAAAjC,QAAA,EAEC9B,EAAE,CAAE,WAAY;cAAC,CACV,CAAC;YAAA,CACV,CACF,eACDc,IAAA,CAACR,mBAAmB,CAACwF,IAAI;cACxBC,SAAS,EAAG;gBAAEF;cAAQ;YAAG,CACzB,CAAC;UAAA,CACQ,CAAC,EACVb,aAAa,IAAI,CAAEnC,aAAa,iBACjC3B,KAAA,CAACzB,SAAS;YAAAqC,QAAA,gBACThB,IAAA,CAACQ,YAAY;cACZC,SAAS,EAAGA,SAAW;cACvBC,MAAM,EAAGA,MAAQ;cACjBC,KAAK,EAAGzB,EAAE,CAAE,aAAc;YAAG,CAC7B,CAAC,eACFc,IAAA,CAACpB,QAAQ;cAACwG,OAAO,EAAGV,aAAe;cAAA1D,QAAA,EAChC9B,EAAE,CAAE,cAAe;YAAC,CACb,CAAC;UAAA,CACD,CACX,eACDc,IAAA,CAACL,yBAAyB,CAACqF,IAAI;YAC9BC,SAAS,EAAG;cACXF,OAAO;cACPxD,KAAK;cACLE;YACD,CAAG;YACHhB,SAAS,EAAGA;UAAW,CACvB,CAAC,EACA,OAAOO,QAAQ,KAAK,UAAU,GAC7BA,QAAQ,CAAE;YAAE+D;UAAQ,CAAE,CAAC,GACvB/F,QAAQ,CAACqG,GAAG,CAAIC,KAAK,IACrBrG,YAAY,CAAEqG,KAAK,EAAE;YAAEP;UAAQ,CAAE,CACjC,CAAC,EACFV,SAAS,iBACVrE,IAAA,CAACrB,SAAS;YAAAqC,QAAA,eACThB,IAAA,CAACpB,QAAQ;cACRwG,OAAO,EAAG/F,IAAI,CACb0F,OAAO,EACPN,QAAQ,EACRlB,0BACD,CAAG;cACH3C,QAAQ,EAAGiC,SAAS,CAACG,MAAQ;cAAAhC,QAAA,EAE3B9B,EAAE,CAAE,QAAS;YAAC,CACP;UAAC,CACD,CACX;QAAA,CACA;MACF,CACY,CAAC;IAEjB;EAAC,CACY,CAAC;AAEjB;AAEA,eAAe+B,qBAAqB","ignoreList":[]}
|
|
@@ -7,14 +7,14 @@ import { ToolbarGroup, ToolbarItem } from '@wordpress/components';
|
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
9
|
import BlockSettingsDropdown from './block-settings-dropdown';
|
|
10
|
-
import
|
|
10
|
+
import CommentIconToolbarSlotFill from '../../components/collab/block-comment-icon-toolbar-slot';
|
|
11
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
export function BlockSettingsMenu({
|
|
13
13
|
clientIds,
|
|
14
14
|
...props
|
|
15
15
|
}) {
|
|
16
16
|
return /*#__PURE__*/_jsxs(ToolbarGroup, {
|
|
17
|
-
children: [/*#__PURE__*/_jsx(
|
|
17
|
+
children: [/*#__PURE__*/_jsx(CommentIconToolbarSlotFill.Slot, {}), /*#__PURE__*/_jsx(ToolbarItem, {
|
|
18
18
|
children: toggleProps => /*#__PURE__*/_jsx(BlockSettingsDropdown, {
|
|
19
19
|
clientIds: clientIds,
|
|
20
20
|
toggleProps: toggleProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ToolbarGroup","ToolbarItem","BlockSettingsDropdown","
|
|
1
|
+
{"version":3,"names":["ToolbarGroup","ToolbarItem","BlockSettingsDropdown","CommentIconToolbarSlotFill","jsx","_jsx","jsxs","_jsxs","BlockSettingsMenu","clientIds","props","children","Slot","toggleProps"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarGroup, ToolbarItem } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockSettingsDropdown from './block-settings-dropdown';\nimport CommentIconToolbarSlotFill from '../../components/collab/block-comment-icon-toolbar-slot';\n\nexport function BlockSettingsMenu( { clientIds, ...props } ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<CommentIconToolbarSlotFill.Slot />\n\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default BlockSettingsMenu;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,WAAW,QAAQ,uBAAuB;;AAEjE;AACA;AACA;AACA,OAAOC,qBAAqB,MAAM,2BAA2B;AAC7D,OAAOC,0BAA0B,MAAM,yDAAyD;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjG,OAAO,SAASC,iBAAiBA,CAAE;EAAEC,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC5D,oBACCH,KAAA,CAACP,YAAY;IAAAW,QAAA,gBACZN,IAAA,CAACF,0BAA0B,CAACS,IAAI,IAAE,CAAC,eAEnCP,IAAA,CAACJ,WAAW;MAAAU,QAAA,EACPE,WAAW,iBACdR,IAAA,CAACH,qBAAqB;QACrBO,SAAS,EAAGA,SAAW;QACvBI,WAAW,EAAGA,WAAa;QAAA,GACtBH;MAAK,CACV;IACD,CACW,CAAC;EAAA,CACD,CAAC;AAEjB;AAEA,eAAeF,iBAAiB","ignoreList":[]}
|
|
@@ -5,7 +5,6 @@ import { ToolbarButton, ToolbarGroup, Dropdown, __experimentalDropdownContentWra
|
|
|
5
5
|
import { __ } from '@wordpress/i18n';
|
|
6
6
|
import { cloneBlock } from '@wordpress/blocks';
|
|
7
7
|
import { useMemo } from '@wordpress/element';
|
|
8
|
-
import { useAsyncList } from '@wordpress/compose';
|
|
9
8
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
10
9
|
|
|
11
10
|
/**
|
|
@@ -70,7 +69,6 @@ export default function ChangeDesign({
|
|
|
70
69
|
);
|
|
71
70
|
}).slice(0, MAX_PATTERNS_TO_SHOW);
|
|
72
71
|
}, [categories, currentPatternName, patterns]);
|
|
73
|
-
const currentShownPatterns = useAsyncList(sameCategoryPatternsWithSingleWrapper);
|
|
74
72
|
if (sameCategoryPatternsWithSingleWrapper.length < 2) {
|
|
75
73
|
return null;
|
|
76
74
|
}
|
|
@@ -103,10 +101,9 @@ export default function ChangeDesign({
|
|
|
103
101
|
className: "block-editor-block-toolbar-change-design-content-wrapper",
|
|
104
102
|
paddingSize: "none",
|
|
105
103
|
children: /*#__PURE__*/_jsx(BlockPatternsList, {
|
|
106
|
-
shownPatterns: currentShownPatterns,
|
|
107
104
|
blockPatterns: sameCategoryPatternsWithSingleWrapper,
|
|
108
105
|
onClickPattern: onClickPattern,
|
|
109
|
-
|
|
106
|
+
showTitlesAsTooltip: true
|
|
110
107
|
})
|
|
111
108
|
})
|
|
112
109
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ToolbarButton","ToolbarGroup","Dropdown","__experimentalDropdownContentWrapper","DropdownContentWrapper","__","cloneBlock","useMemo","
|
|
1
|
+
{"version":3,"names":["ToolbarButton","ToolbarGroup","Dropdown","__experimentalDropdownContentWrapper","DropdownContentWrapper","__","cloneBlock","useMemo","useSelect","useDispatch","store","blockEditorStore","BlockPatternsList","jsx","_jsx","EMPTY_ARRAY","MAX_PATTERNS_TO_SHOW","POPOVER_PROPS","placement","ChangeDesign","clientId","categories","currentPatternName","patterns","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","attributes","_categories","metadata","rootBlock","_patterns","length","patternName","replaceBlocks","sameCategoryPatternsWithSingleWrapper","filter","pattern","isCorePattern","source","startsWith","blocks","name","some","category","includes","syncStatus","id","slice","onClickPattern","_pattern$blocks","newBlocks","map","block","popoverProps","renderToggle","onToggle","isOpen","children","onClick","renderContent","className","paddingSize","blockPatterns","showTitlesAsTooltip"],"sources":["@wordpress/block-editor/src/components/block-toolbar/change-design.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPatternsList from '../block-patterns-list';\n\nconst EMPTY_ARRAY = [];\nconst MAX_PATTERNS_TO_SHOW = 6;\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nexport default function ChangeDesign( { clientId } ) {\n\tconst { categories, currentPatternName, patterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetAllowedPatterns,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst _categories = attributes?.metadata?.categories || EMPTY_ARRAY;\n\t\t\tconst rootBlock = getBlockRootClientId( clientId );\n\n\t\t\t// Calling `__experimentalGetAllowedPatterns` is expensive.\n\t\t\t// Checking if the block can be changed prevents unnecessary selector calls.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/64736.\n\t\t\tconst _patterns =\n\t\t\t\t_categories.length > 0\n\t\t\t\t\t? __experimentalGetAllowedPatterns( rootBlock )\n\t\t\t\t\t: EMPTY_ARRAY;\n\t\t\treturn {\n\t\t\t\tcategories: _categories,\n\t\t\t\tcurrentPatternName: attributes?.metadata?.patternName,\n\t\t\t\tpatterns: _patterns,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst sameCategoryPatternsWithSingleWrapper = useMemo( () => {\n\t\tif ( categories.length === 0 || ! patterns || patterns.length === 0 ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn patterns\n\t\t\t.filter( ( pattern ) => {\n\t\t\t\tconst isCorePattern =\n\t\t\t\t\tpattern.source === 'core' ||\n\t\t\t\t\t( pattern.source?.startsWith( 'pattern-directory' ) &&\n\t\t\t\t\t\tpattern.source !== 'pattern-directory/theme' );\n\t\t\t\treturn (\n\t\t\t\t\t// Check if the pattern has only one top level block,\n\t\t\t\t\t// otherwise we may switch to a pattern that doesn't have replacement suggestions.\n\t\t\t\t\tpattern.blocks.length === 1 &&\n\t\t\t\t\t// We exclude the core patterns and pattern directory patterns that are not theme patterns.\n\t\t\t\t\t! isCorePattern &&\n\t\t\t\t\t// Exclude current pattern.\n\t\t\t\t\tcurrentPatternName !== pattern.name &&\n\t\t\t\t\tpattern.categories?.some( ( category ) => {\n\t\t\t\t\t\treturn categories.includes( category );\n\t\t\t\t\t} ) &&\n\t\t\t\t\t// Check if the pattern is not a synced pattern.\n\t\t\t\t\t( pattern.syncStatus === 'unsynced' || ! pattern.id )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.slice( 0, MAX_PATTERNS_TO_SHOW );\n\t}, [ categories, currentPatternName, patterns ] );\n\n\tif ( sameCategoryPatternsWithSingleWrapper.length < 2 ) {\n\t\treturn null;\n\t}\n\n\tconst onClickPattern = ( pattern ) => {\n\t\tconst newBlocks = ( pattern.blocks ?? [] ).map( ( block ) => {\n\t\t\treturn cloneBlock( block );\n\t\t} );\n\t\tnewBlocks[ 0 ].attributes.metadata = {\n\t\t\t...newBlocks[ 0 ].attributes.metadata,\n\t\t\tcategories,\n\t\t};\n\t\treplaceBlocks( clientId, newBlocks );\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => onToggle( ! isOpen ) }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Change design' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-block-toolbar-change-design-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"none\"\n\t\t\t\t>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ sameCategoryPatternsWithSingleWrapper }\n\t\t\t\t\t\tonClickPattern={ onClickPattern }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|