@wordpress/block-editor 12.14.0 → 12.15.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/README.md +1 -1
- package/build/components/block-list/block.native.js +2 -0
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js +1 -1
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +25 -16
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +36 -19
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-rename/index.js +28 -0
- package/build/components/block-rename/index.js.map +1 -0
- package/build/components/block-rename/is-empty-string.js +10 -0
- package/build/components/block-rename/is-empty-string.js.map +1 -0
- package/build/components/block-rename/modal.js +87 -0
- package/build/components/block-rename/modal.js.map +1 -0
- package/build/components/block-rename/rename-control.js +74 -0
- package/build/components/block-rename/rename-control.js.map +1 -0
- package/build/components/block-rename/use-block-rename.js +17 -0
- package/build/components/block-rename/use-block-rename.js.map +1 -0
- package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +7 -0
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-types-list/index.js +6 -2
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +8 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/global-styles/advanced-panel.js +1 -1
- package/build/components/global-styles/advanced-panel.js.map +1 -1
- package/build/components/image-size-control/index.js +0 -5
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +3 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
- 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 +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/utils.js +3 -4
- package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +2 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter-listbox/index.js +11 -6
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +24 -23
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inserter-listbox/row.js +5 -5
- package/build/components/inserter-listbox/row.js.map +1 -1
- package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
- package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build/components/preview-options/index.js +4 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +1 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +34 -3
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +30 -1
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +4 -1
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +2 -1
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-settings/index.js +2 -2
- package/build/components/use-settings/index.js.map +1 -1
- package/build/hooks/block-renaming.js +42 -0
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/custom-fields.js +53 -48
- package/build/hooks/custom-fields.js.map +1 -1
- package/build/hooks/index.js +0 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +13 -7
- package/build/hooks/layout.js.map +1 -1
- package/build/layouts/constrained.js +4 -3
- package/build/layouts/constrained.js.map +1 -1
- package/build/store/selectors.js +2 -0
- package/build/store/selectors.js.map +1 -1
- package/build/utils/transform-styles/index.js +26 -6
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -0
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +1 -1
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +24 -15
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +36 -19
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-rename/index.js +4 -0
- package/build-module/components/block-rename/index.js.map +1 -0
- package/build-module/components/block-rename/is-empty-string.js +4 -0
- package/build-module/components/block-rename/is-empty-string.js.map +1 -0
- package/build-module/components/block-rename/modal.js +79 -0
- package/build-module/components/block-rename/modal.js.map +1 -0
- package/build-module/components/block-rename/rename-control.js +66 -0
- package/build-module/components/block-rename/rename-control.js.map +1 -0
- package/build-module/components/block-rename/use-block-rename.js +10 -0
- package/build-module/components/block-rename/use-block-rename.js.map +1 -0
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +7 -0
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-types-list/index.js +6 -2
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +8 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/global-styles/advanced-panel.js +1 -1
- package/build-module/components/global-styles/advanced-panel.js.map +1 -1
- package/build-module/components/image-size-control/index.js +0 -5
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.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/pattern-category-previews.js +4 -4
- 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 +2 -2
- 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 +3 -4
- package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +13 -8
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +25 -23
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inserter-listbox/row.js +6 -5
- package/build-module/components/inserter-listbox/row.js.map +1 -1
- package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
- package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build-module/components/preview-options/index.js +4 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +1 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +34 -3
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +31 -2
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +4 -1
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +2 -1
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +2 -2
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/hooks/block-renaming.js +40 -0
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/custom-fields.js +53 -48
- package/build-module/hooks/custom-fields.js.map +1 -1
- package/build-module/hooks/index.js +0 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +13 -7
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/layouts/constrained.js +4 -3
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/store/selectors.js +2 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +24 -7
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +6 -6
- package/build-style/content.css +6 -6
- package/build-style/style-rtl.css +10 -5
- package/build-style/style.css +10 -5
- package/package.json +31 -31
- package/src/components/block-list/block.native.js +2 -0
- package/src/components/block-parent-selector/index.js +1 -1
- package/src/components/block-pattern-setup/index.js +38 -22
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
- package/src/components/block-pattern-setup/style.scss +4 -1
- package/src/components/block-patterns-list/README.md +4 -4
- package/src/components/block-patterns-list/index.js +60 -34
- package/src/components/block-patterns-list/style.scss +7 -0
- package/src/components/block-rename/index.js +3 -0
- package/src/components/block-rename/is-empty-string.js +3 -0
- package/src/components/block-rename/modal.js +115 -0
- package/src/components/block-rename/rename-control.js +80 -0
- package/src/components/block-rename/use-block-rename.js +10 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
- package/src/components/block-settings-menu-controls/index.js +9 -0
- package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
- package/src/components/block-types-list/index.js +5 -4
- package/src/components/button-block-appender/content.scss +2 -2
- package/src/components/date-format-picker/index.js +7 -0
- package/src/components/editable-text/README.md +0 -36
- package/src/components/global-styles/advanced-panel.js +1 -1
- package/src/components/image-size-control/index.js +0 -6
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
- package/src/components/inserter/block-patterns-tab/utils.js +6 -4
- package/src/components/inserter/hooks/use-patterns-state.js +3 -1
- package/src/components/inserter-listbox/index.js +11 -7
- package/src/components/inserter-listbox/item.js +11 -12
- package/src/components/inserter-listbox/row.js +6 -12
- package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
- package/src/components/plain-text/README.md +0 -28
- package/src/components/preview-options/index.js +2 -0
- package/src/components/rich-text/README.md +0 -58
- package/src/components/rich-text/index.native.js +1 -1
- package/src/components/rich-text/native/index.native.js +45 -2
- package/src/components/rich-text/use-input-rules.js +30 -2
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/src/components/url-input/README.md +1 -74
- package/src/components/use-block-drop-zone/index.js +4 -1
- package/src/components/use-moving-animation/index.js +1 -1
- package/src/components/use-settings/index.js +2 -2
- package/src/components/use-settings/test/index.js +1 -1
- package/src/hooks/block-renaming.js +47 -0
- package/src/hooks/custom-fields.js +68 -65
- package/src/hooks/index.js +0 -1
- package/src/hooks/layout.js +12 -8
- package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
- package/src/layouts/constrained.js +57 -50
- package/src/store/selectors.js +2 -0
- package/src/style.scss +1 -1
- package/src/utils/test/transform-styles.js +49 -0
- package/src/utils/transform-styles/index.js +39 -13
- package/build/hooks/block-rename-ui.js +0 -167
- package/build/hooks/block-rename-ui.js.map +0 -1
- package/build-module/hooks/block-rename-ui.js +0 -159
- package/build-module/hooks/block-rename-ui.js.map +0 -1
- package/src/hooks/block-rename-ui.js +0 -228
- /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
|
@@ -7,8 +7,8 @@ import classnames from 'classnames';
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import { useState, forwardRef } from '@wordpress/element';
|
|
11
|
-
import { VisuallyHidden,
|
|
10
|
+
import { useEffect, useState, forwardRef } from '@wordpress/element';
|
|
11
|
+
import { VisuallyHidden, Tooltip, privateApis as componentsPrivateApis, __experimentalHStack as HStack } from '@wordpress/components';
|
|
12
12
|
import { useInstanceId } from '@wordpress/compose';
|
|
13
13
|
import { __ } from '@wordpress/i18n';
|
|
14
14
|
import { Icon, symbol } from '@wordpress/icons';
|
|
@@ -16,9 +16,16 @@ import { Icon, symbol } from '@wordpress/icons';
|
|
|
16
16
|
/**
|
|
17
17
|
* Internal dependencies
|
|
18
18
|
*/
|
|
19
|
+
import { unlock } from '../../lock-unlock';
|
|
19
20
|
import BlockPreview from '../block-preview';
|
|
20
21
|
import InserterDraggableBlocks from '../inserter-draggable-blocks';
|
|
21
22
|
import BlockPatternsPaging from '../block-patterns-paging';
|
|
23
|
+
import { PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';
|
|
24
|
+
const {
|
|
25
|
+
CompositeV2: Composite,
|
|
26
|
+
CompositeItemV2: CompositeItem,
|
|
27
|
+
useCompositeStoreV2: useCompositeStore
|
|
28
|
+
} = unlock(componentsPrivateApis);
|
|
22
29
|
const WithToolTip = ({
|
|
23
30
|
showTooltip,
|
|
24
31
|
title,
|
|
@@ -32,11 +39,11 @@ const WithToolTip = ({
|
|
|
32
39
|
return createElement(Fragment, null, children);
|
|
33
40
|
};
|
|
34
41
|
function BlockPattern({
|
|
42
|
+
id,
|
|
35
43
|
isDraggable,
|
|
36
44
|
pattern,
|
|
37
45
|
onClick,
|
|
38
46
|
onHover,
|
|
39
|
-
composite,
|
|
40
47
|
showTooltip
|
|
41
48
|
}) {
|
|
42
49
|
const [isDragging, setIsDragging] = useState(false);
|
|
@@ -71,15 +78,18 @@ function BlockPattern({
|
|
|
71
78
|
}
|
|
72
79
|
}
|
|
73
80
|
}, createElement(WithToolTip, {
|
|
74
|
-
showTooltip: showTooltip && !pattern.
|
|
81
|
+
showTooltip: showTooltip && !pattern.type !== PATTERN_TYPES.user,
|
|
75
82
|
title: pattern.title
|
|
76
83
|
}, createElement(CompositeItem, {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
'block-editor-block-patterns-
|
|
84
|
+
render: createElement("div", {
|
|
85
|
+
role: "option",
|
|
86
|
+
"aria-label": pattern.title,
|
|
87
|
+
"aria-describedby": pattern.description ? descriptionId : undefined,
|
|
88
|
+
className: classnames('block-editor-block-patterns-list__item', {
|
|
89
|
+
'block-editor-block-patterns-list__list-item-synced': pattern.type === PATTERN_TYPES.user && !pattern.syncStatus
|
|
90
|
+
})
|
|
82
91
|
}),
|
|
92
|
+
id: id,
|
|
83
93
|
onClick: () => {
|
|
84
94
|
onClick(pattern, blocks);
|
|
85
95
|
onHover?.(null);
|
|
@@ -90,20 +100,18 @@ function BlockPattern({
|
|
|
90
100
|
}
|
|
91
101
|
onHover?.(pattern);
|
|
92
102
|
},
|
|
93
|
-
onMouseLeave: () => onHover?.(null)
|
|
94
|
-
"aria-label": pattern.title,
|
|
95
|
-
"aria-describedby": pattern.description ? descriptionId : undefined
|
|
103
|
+
onMouseLeave: () => onHover?.(null)
|
|
96
104
|
}, createElement(BlockPreview, {
|
|
97
105
|
blocks: blocks,
|
|
98
106
|
viewportWidth: viewportWidth
|
|
99
107
|
}), createElement(HStack, {
|
|
100
108
|
className: "block-editor-patterns__pattern-details"
|
|
101
|
-
}, pattern.
|
|
109
|
+
}, pattern.type === PATTERN_TYPES.user && !pattern.syncStatus && createElement("div", {
|
|
102
110
|
className: "block-editor-patterns__pattern-icon-wrapper"
|
|
103
111
|
}, createElement(Icon, {
|
|
104
112
|
className: "block-editor-patterns__pattern-icon",
|
|
105
113
|
icon: symbol
|
|
106
|
-
})), (!showTooltip || pattern.
|
|
114
|
+
})), (!showTooltip || pattern.type === PATTERN_TYPES.user) && createElement("div", {
|
|
107
115
|
className: "block-editor-block-patterns-list__item-title"
|
|
108
116
|
}, pattern.title)), !!pattern.description && createElement(VisuallyHidden, {
|
|
109
117
|
id: descriptionId
|
|
@@ -114,7 +122,7 @@ function BlockPatternPlaceholder() {
|
|
|
114
122
|
className: "block-editor-block-patterns-list__item is-placeholder"
|
|
115
123
|
});
|
|
116
124
|
}
|
|
117
|
-
function
|
|
125
|
+
function BlockPatternsList({
|
|
118
126
|
isDraggable,
|
|
119
127
|
blockPatterns,
|
|
120
128
|
shownPatterns,
|
|
@@ -125,11 +133,20 @@ function BlockPatternList({
|
|
|
125
133
|
showTitlesAsTooltip,
|
|
126
134
|
pagingProps
|
|
127
135
|
}, ref) {
|
|
128
|
-
const
|
|
136
|
+
const compositeStore = useCompositeStore({
|
|
129
137
|
orientation
|
|
130
138
|
});
|
|
139
|
+
const {
|
|
140
|
+
setActiveId
|
|
141
|
+
} = compositeStore;
|
|
142
|
+
useEffect(() => {
|
|
143
|
+
// We reset the active composite item whenever the
|
|
144
|
+
// available patterns change, to make sure that
|
|
145
|
+
// focus is put back to the start.
|
|
146
|
+
setActiveId(undefined);
|
|
147
|
+
}, [setActiveId, shownPatterns, blockPatterns]);
|
|
131
148
|
return createElement(Composite, {
|
|
132
|
-
|
|
149
|
+
store: compositeStore,
|
|
133
150
|
role: "listbox",
|
|
134
151
|
className: "block-editor-block-patterns-list",
|
|
135
152
|
"aria-label": label,
|
|
@@ -138,11 +155,11 @@ function BlockPatternList({
|
|
|
138
155
|
const isShown = shownPatterns.includes(pattern);
|
|
139
156
|
return isShown ? createElement(BlockPattern, {
|
|
140
157
|
key: pattern.name,
|
|
158
|
+
id: pattern.name,
|
|
141
159
|
pattern: pattern,
|
|
142
160
|
onClick: onClickPattern,
|
|
143
161
|
onHover: onHover,
|
|
144
162
|
isDraggable: isDraggable,
|
|
145
|
-
composite: composite,
|
|
146
163
|
showTooltip: showTitlesAsTooltip
|
|
147
164
|
}) : createElement(BlockPatternPlaceholder, {
|
|
148
165
|
key: pattern.name
|
|
@@ -151,5 +168,5 @@ function BlockPatternList({
|
|
|
151
168
|
...pagingProps
|
|
152
169
|
}));
|
|
153
170
|
}
|
|
154
|
-
export default forwardRef(
|
|
171
|
+
export default forwardRef(BlockPatternsList);
|
|
155
172
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","useState","forwardRef","VisuallyHidden","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","Tooltip","__experimentalHStack","HStack","useInstanceId","__","Icon","symbol","BlockPreview","InserterDraggableBlocks","BlockPatternsPaging","WithToolTip","showTooltip","title","children","createElement","text","Fragment","BlockPattern","isDraggable","pattern","onClick","onHover","composite","isDragging","setIsDragging","blocks","viewportWidth","instanceId","descriptionId","isEnabled","isPattern","draggable","onDragStart","onDragEnd","className","event","id","role","as","syncStatus","onMouseEnter","onMouseLeave","description","undefined","icon","BlockPatternPlaceholder","BlockPatternList","blockPatterns","shownPatterns","onClickPattern","orientation","label","showTitlesAsTooltip","pagingProps","ref","map","isShown","includes","key","name"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, forwardRef } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n\tTooltip,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, symbol } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\nimport BlockPatternsPaging from '../block-patterns-paging';\n\nconst WithToolTip = ( { showTooltip, title, children } ) => {\n\tif ( showTooltip ) {\n\t\treturn <Tooltip text={ title }>{ children }</Tooltip>;\n\t}\n\treturn <>{ children }</>;\n};\n\nfunction BlockPattern( {\n\tisDraggable,\n\tpattern,\n\tonClick,\n\tonHover,\n\tcomposite,\n\tshowTooltip,\n} ) {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst { blocks, viewportWidth } = pattern;\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ blocks }\n\t\t\tisPattern={ !! pattern }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( true );\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( false );\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<WithToolTip\n\t\t\t\t\t\tshowTooltip={ showTooltip && ! pattern.id }\n\t\t\t\t\t\ttitle={ pattern.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\tas=\"div\"\n\t\t\t\t\t\t\t{ ...composite }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__item',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__list-item-synced':\n\t\t\t\t\t\t\t\t\t\tpattern.id && ! pattern.syncStatus,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonClick( pattern, blocks );\n\t\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\t\tif ( isDragging ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonHover?.( pattern );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseLeave={ () => onHover?.( null ) }\n\t\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<HStack className=\"block-editor-patterns__pattern-details\">\n\t\t\t\t\t\t\t\t{ pattern.id && ! pattern.syncStatus && (\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-patterns__pattern-icon-wrapper\">\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ symbol }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ( ! showTooltip || pattern.id ) && (\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\n\t\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t</WithToolTip>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction BlockPatternList(\n\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\tshowTitlesAsTooltip,\n\t\tpagingProps,\n\t},\n\tref\n) {\n\tconst composite = useCompositeState( { orientation } );\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t\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\tpattern={ pattern }\n\t\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tshowTooltip={ showTitlesAsTooltip }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ pagingProps && <BlockPatternsPaging { ...pagingProps } /> }\n\t\t</Composite>\n\t);\n}\n\nexport default forwardRef( BlockPatternList );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","useEffect","useState","forwardRef","VisuallyHidden","Tooltip","privateApis","componentsPrivateApis","__experimentalHStack","HStack","useInstanceId","__","Icon","symbol","unlock","BlockPreview","InserterDraggableBlocks","BlockPatternsPaging","PATTERN_TYPES","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","WithToolTip","showTooltip","title","children","createElement","text","Fragment","BlockPattern","id","isDraggable","pattern","onClick","onHover","isDragging","setIsDragging","blocks","viewportWidth","instanceId","descriptionId","isEnabled","isPattern","draggable","onDragStart","onDragEnd","className","event","type","user","render","role","description","undefined","syncStatus","onMouseEnter","onMouseLeave","icon","BlockPatternPlaceholder","BlockPatternsList","blockPatterns","shownPatterns","onClickPattern","orientation","label","showTitlesAsTooltip","pagingProps","ref","compositeStore","setActiveId","store","map","isShown","includes","key","name"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState, forwardRef } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\tTooltip,\n\tprivateApis as componentsPrivateApis,\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 { unlock } from '../../lock-unlock';\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\nimport BlockPatternsPaging from '../block-patterns-paging';\nimport { PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\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\tshowTooltip,\n} ) {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst { blocks, viewportWidth } = pattern;\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ blocks }\n\t\t\tisPattern={ !! pattern }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( true );\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( false );\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<WithToolTip\n\t\t\t\t\t\tshowTooltip={\n\t\t\t\t\t\t\tshowTooltip && ! pattern.type !== 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<CompositeItem\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={ classnames(\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\tPATTERN_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<HStack className=\"block-editor-patterns__pattern-details\">\n\t\t\t\t\t\t\t\t{ pattern.type === PATTERN_TYPES.user &&\n\t\t\t\t\t\t\t\t\t! 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{ ( ! showTooltip ||\n\t\t\t\t\t\t\t\t\tpattern.type === PATTERN_TYPES.user ) && (\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\n\t\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t</WithToolTip>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction 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\tshowTitlesAsTooltip,\n\t\tpagingProps,\n\t},\n\tref\n) {\n\tconst compositeStore = useCompositeStore( { orientation } );\n\tconst { setActiveId } = compositeStore;\n\n\tuseEffect( () => {\n\t\t// We reset the active composite item whenever the\n\t\t// available patterns change, to make sure that\n\t\t// focus is put back to the start.\n\t\tsetActiveId( undefined );\n\t}, [ setActiveId, shownPatterns, blockPatterns ] );\n\n\treturn (\n\t\t<Composite\n\t\t\tstore={ compositeStore }\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\tshowTooltip={ showTitlesAsTooltip }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ pagingProps && <BlockPatternsPaging { ...pagingProps } /> }\n\t\t</Composite>\n\t);\n}\n\nexport default forwardRef( BlockPatternsList );\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","BlockRenameControl","BlockRenameModal","useBlockRename"],"sources":["@wordpress/block-editor/src/components/block-rename/index.js"],"sourcesContent":["export { default as BlockRenameControl } from './rename-control';\nexport { default as BlockRenameModal } from './modal';\nexport { default as useBlockRename } from './use-block-rename';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAAkB,QAAQ,kBAAkB;AAChE,SAASD,OAAO,IAAIE,gBAAgB,QAAQ,SAAS;AACrD,SAASF,OAAO,IAAIG,cAAc,QAAQ,oBAAoB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isEmptyString","testString","trim","length"],"sources":["@wordpress/block-editor/src/components/block-rename/is-empty-string.js"],"sourcesContent":["export default function isEmptyString( testString ) {\n\treturn testString?.trim()?.length === 0;\n}\n"],"mappings":"AAAA,eAAe,SAASA,aAAaA,CAAEC,UAAU,EAAG;EACnD,OAAOA,UAAU,EAAEC,IAAI,CAAC,CAAC,EAAEC,MAAM,KAAK,CAAC;AACxC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { __experimentalHStack as HStack, __experimentalVStack as VStack, Button, TextControl, Modal } from '@wordpress/components';
|
|
6
|
+
import { useInstanceId } from '@wordpress/compose';
|
|
7
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
8
|
+
import { useState } from '@wordpress/element';
|
|
9
|
+
import { speak } from '@wordpress/a11y';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Internal dependencies
|
|
13
|
+
*/
|
|
14
|
+
import isEmptyString from './is-empty-string';
|
|
15
|
+
export default function BlockRenameModal({
|
|
16
|
+
blockName,
|
|
17
|
+
originalBlockName,
|
|
18
|
+
onClose,
|
|
19
|
+
onSave
|
|
20
|
+
}) {
|
|
21
|
+
const [editedBlockName, setEditedBlockName] = useState(blockName);
|
|
22
|
+
const nameHasChanged = editedBlockName !== blockName;
|
|
23
|
+
const nameIsOriginal = editedBlockName === originalBlockName;
|
|
24
|
+
const nameIsEmpty = isEmptyString(editedBlockName);
|
|
25
|
+
const isNameValid = nameHasChanged || nameIsOriginal;
|
|
26
|
+
const autoSelectInputText = event => event.target.select();
|
|
27
|
+
const dialogDescription = useInstanceId(BlockRenameModal, `block-editor-rename-modal__description`);
|
|
28
|
+
const handleSubmit = () => {
|
|
29
|
+
const message = nameIsOriginal || nameIsEmpty ? sprintf( /* translators: %s: new name/label for the block */
|
|
30
|
+
__('Block name reset to: "%s".'), editedBlockName) : sprintf( /* translators: %s: new name/label for the block */
|
|
31
|
+
__('Block name changed to: "%s".'), editedBlockName);
|
|
32
|
+
|
|
33
|
+
// Must be assertive to immediately announce change.
|
|
34
|
+
speak(message, 'assertive');
|
|
35
|
+
onSave(editedBlockName);
|
|
36
|
+
|
|
37
|
+
// Immediate close avoids ability to hit save multiple times.
|
|
38
|
+
onClose();
|
|
39
|
+
};
|
|
40
|
+
return createElement(Modal, {
|
|
41
|
+
title: __('Rename'),
|
|
42
|
+
onRequestClose: onClose,
|
|
43
|
+
overlayClassName: "block-editor-block-rename-modal",
|
|
44
|
+
aria: {
|
|
45
|
+
describedby: dialogDescription
|
|
46
|
+
},
|
|
47
|
+
focusOnMount: "firstContentElement"
|
|
48
|
+
}, createElement("p", {
|
|
49
|
+
id: dialogDescription
|
|
50
|
+
}, __('Enter a custom name for this block.')), createElement("form", {
|
|
51
|
+
onSubmit: e => {
|
|
52
|
+
e.preventDefault();
|
|
53
|
+
if (!isNameValid) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
handleSubmit();
|
|
57
|
+
}
|
|
58
|
+
}, createElement(VStack, {
|
|
59
|
+
spacing: "3"
|
|
60
|
+
}, createElement(TextControl, {
|
|
61
|
+
__nextHasNoMarginBottom: true,
|
|
62
|
+
value: editedBlockName,
|
|
63
|
+
label: __('Block name'),
|
|
64
|
+
hideLabelFromVision: true,
|
|
65
|
+
placeholder: originalBlockName,
|
|
66
|
+
onChange: setEditedBlockName,
|
|
67
|
+
onFocus: autoSelectInputText
|
|
68
|
+
}), createElement(HStack, {
|
|
69
|
+
justify: "right"
|
|
70
|
+
}, createElement(Button, {
|
|
71
|
+
variant: "tertiary",
|
|
72
|
+
onClick: onClose
|
|
73
|
+
}, __('Cancel')), createElement(Button, {
|
|
74
|
+
"aria-disabled": !isNameValid,
|
|
75
|
+
variant: "primary",
|
|
76
|
+
type: "submit"
|
|
77
|
+
}, __('Save'))))));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__experimentalHStack","HStack","__experimentalVStack","VStack","Button","TextControl","Modal","useInstanceId","__","sprintf","useState","speak","isEmptyString","BlockRenameModal","blockName","originalBlockName","onClose","onSave","editedBlockName","setEditedBlockName","nameHasChanged","nameIsOriginal","nameIsEmpty","isNameValid","autoSelectInputText","event","target","select","dialogDescription","handleSubmit","message","createElement","title","onRequestClose","overlayClassName","aria","describedby","focusOnMount","id","onSubmit","e","preventDefault","spacing","__nextHasNoMarginBottom","value","label","hideLabelFromVision","placeholder","onChange","onFocus","justify","variant","onClick","type"],"sources":["@wordpress/block-editor/src/components/block-rename/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tTextControl,\n\tModal,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport isEmptyString from './is-empty-string';\n\nexport default function BlockRenameModal( {\n\tblockName,\n\toriginalBlockName,\n\tonClose,\n\tonSave,\n} ) {\n\tconst [ editedBlockName, setEditedBlockName ] = useState( blockName );\n\n\tconst nameHasChanged = editedBlockName !== blockName;\n\tconst nameIsOriginal = editedBlockName === originalBlockName;\n\tconst nameIsEmpty = isEmptyString( editedBlockName );\n\n\tconst isNameValid = nameHasChanged || nameIsOriginal;\n\n\tconst autoSelectInputText = ( event ) => event.target.select();\n\n\tconst dialogDescription = useInstanceId(\n\t\tBlockRenameModal,\n\t\t`block-editor-rename-modal__description`\n\t);\n\n\tconst handleSubmit = () => {\n\t\tconst message =\n\t\t\tnameIsOriginal || nameIsEmpty\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name reset to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name changed to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t );\n\n\t\t// Must be assertive to immediately announce change.\n\t\tspeak( message, 'assertive' );\n\t\tonSave( editedBlockName );\n\n\t\t// Immediate close avoids ability to hit save multiple times.\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\toverlayClassName=\"block-editor-block-rename-modal\"\n\t\t\taria={ {\n\t\t\t\tdescribedby: dialogDescription,\n\t\t\t} }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t>\n\t\t\t<p id={ dialogDescription }>\n\t\t\t\t{ __( 'Enter a custom name for this block.' ) }\n\t\t\t</p>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tif ( ! isNameValid ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\thandleSubmit();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ editedBlockName }\n\t\t\t\t\t\tlabel={ __( 'Block name' ) }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tplaceholder={ originalBlockName }\n\t\t\t\t\t\tonChange={ setEditedBlockName }\n\t\t\t\t\t\tonFocus={ autoSelectInputText }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\taria-disabled={ ! isNameValid }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createElement, Fragment } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { MenuItem } from '@wordpress/components';
|
|
6
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
8
|
+
import { useState } from '@wordpress/element';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internal dependencies
|
|
12
|
+
*/
|
|
13
|
+
import { store as blockEditorStore } from '../../store';
|
|
14
|
+
import { useBlockDisplayInformation } from '..';
|
|
15
|
+
import isEmptyString from './is-empty-string';
|
|
16
|
+
import BlockRenameModal from './modal';
|
|
17
|
+
export default function BlockRenameControl({
|
|
18
|
+
clientId
|
|
19
|
+
}) {
|
|
20
|
+
const [renamingBlock, setRenamingBlock] = useState(false);
|
|
21
|
+
const {
|
|
22
|
+
metadata
|
|
23
|
+
} = useSelect(select => {
|
|
24
|
+
const {
|
|
25
|
+
getBlockAttributes
|
|
26
|
+
} = select(blockEditorStore);
|
|
27
|
+
const _metadata = getBlockAttributes(clientId)?.metadata;
|
|
28
|
+
return {
|
|
29
|
+
metadata: _metadata
|
|
30
|
+
};
|
|
31
|
+
}, [clientId]);
|
|
32
|
+
const {
|
|
33
|
+
updateBlockAttributes
|
|
34
|
+
} = useDispatch(blockEditorStore);
|
|
35
|
+
const customName = metadata?.name;
|
|
36
|
+
function onChange(newName) {
|
|
37
|
+
updateBlockAttributes([clientId], {
|
|
38
|
+
metadata: {
|
|
39
|
+
...(metadata && metadata),
|
|
40
|
+
name: newName
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const blockInformation = useBlockDisplayInformation(clientId);
|
|
45
|
+
return createElement(Fragment, null, createElement(MenuItem, {
|
|
46
|
+
onClick: () => {
|
|
47
|
+
setRenamingBlock(true);
|
|
48
|
+
},
|
|
49
|
+
"aria-expanded": renamingBlock,
|
|
50
|
+
"aria-haspopup": "dialog"
|
|
51
|
+
}, __('Rename')), renamingBlock && createElement(BlockRenameModal, {
|
|
52
|
+
blockName: customName || '',
|
|
53
|
+
originalBlockName: blockInformation?.title,
|
|
54
|
+
onClose: () => setRenamingBlock(false),
|
|
55
|
+
onSave: newName => {
|
|
56
|
+
// If the new value is the block's original name (e.g. `Group`)
|
|
57
|
+
// or it is an empty string then assume the intent is to reset
|
|
58
|
+
// the value. Therefore reset the metadata.
|
|
59
|
+
if (newName === blockInformation?.title || isEmptyString(newName)) {
|
|
60
|
+
newName = undefined;
|
|
61
|
+
}
|
|
62
|
+
onChange(newName);
|
|
63
|
+
}
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=rename-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MenuItem","useSelect","useDispatch","__","useState","store","blockEditorStore","useBlockDisplayInformation","isEmptyString","BlockRenameModal","BlockRenameControl","clientId","renamingBlock","setRenamingBlock","metadata","select","getBlockAttributes","_metadata","updateBlockAttributes","customName","name","onChange","newName","blockInformation","createElement","Fragment","onClick","blockName","originalBlockName","title","onClose","onSave","undefined"],"sources":["@wordpress/block-editor/src/components/block-rename/rename-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockDisplayInformation } from '..';\nimport isEmptyString from './is-empty-string';\nimport BlockRenameModal from './modal';\n\nexport default function BlockRenameControl( { clientId } ) {\n\tconst [ renamingBlock, setRenamingBlock ] = useState( false );\n\n\tconst { metadata } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\n\t\t\tconst _metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\treturn {\n\t\t\t\tmetadata: _metadata,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst customName = metadata?.name;\n\n\tfunction onChange( newName ) {\n\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\tmetadata: {\n\t\t\t\t...( metadata && metadata ),\n\t\t\t\tname: newName,\n\t\t\t},\n\t\t} );\n\t}\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetRenamingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ renamingBlock }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ renamingBlock && (\n\t\t\t\t<BlockRenameModal\n\t\t\t\t\tblockName={ customName || '' }\n\t\t\t\t\toriginalBlockName={ blockInformation?.title }\n\t\t\t\t\tonClose={ () => setRenamingBlock( false ) }\n\t\t\t\t\tonSave={ ( newName ) => {\n\t\t\t\t\t\t// If the new value is the block's original name (e.g. `Group`)\n\t\t\t\t\t\t// or it is an empty string then assume the intent is to reset\n\t\t\t\t\t\t// the value. Therefore reset the metadata.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnewName === blockInformation?.title ||\n\t\t\t\t\t\t\tisEmptyString( newName )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnewName = undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( newName );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,0BAA0B,QAAQ,IAAI;AAC/C,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,gBAAgB,MAAM,SAAS;AAEtC,eAAe,SAASC,kBAAkBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC1D,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGT,QAAQ,CAAE,KAAM,CAAC;EAE7D,MAAM;IAAEU;EAAS,CAAC,GAAGb,SAAS,CAC3Bc,MAAM,IAAM;IACb,MAAM;MAAEC;IAAmB,CAAC,GAAGD,MAAM,CAAET,gBAAiB,CAAC;IAEzD,MAAMW,SAAS,GAAGD,kBAAkB,CAAEL,QAAS,CAAC,EAAEG,QAAQ;IAC1D,OAAO;MACNA,QAAQ,EAAEG;IACX,CAAC;EACF,CAAC,EACD,CAAEN,QAAQ,CACX,CAAC;EAED,MAAM;IAAEO;EAAsB,CAAC,GAAGhB,WAAW,CAAEI,gBAAiB,CAAC;EAEjE,MAAMa,UAAU,GAAGL,QAAQ,EAAEM,IAAI;EAEjC,SAASC,QAAQA,CAAEC,OAAO,EAAG;IAC5BJ,qBAAqB,CAAE,CAAEP,QAAQ,CAAE,EAAE;MACpCG,QAAQ,EAAE;QACT,IAAKA,QAAQ,IAAIA,QAAQ,CAAE;QAC3BM,IAAI,EAAEE;MACP;IACD,CAAE,CAAC;EACJ;EAEA,MAAMC,gBAAgB,GAAGhB,0BAA0B,CAAEI,QAAS,CAAC;EAE/D,OACCa,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACxB,QAAQ;IACR0B,OAAO,EAAGA,CAAA,KAAM;MACfb,gBAAgB,CAAE,IAAK,CAAC;IACzB,CAAG;IACH,iBAAgBD,aAAe;IAC/B,iBAAc;EAAQ,GAEpBT,EAAE,CAAE,QAAS,CACN,CAAC,EACTS,aAAa,IACdY,aAAA,CAACf,gBAAgB;IAChBkB,SAAS,EAAGR,UAAU,IAAI,EAAI;IAC9BS,iBAAiB,EAAGL,gBAAgB,EAAEM,KAAO;IAC7CC,OAAO,EAAGA,CAAA,KAAMjB,gBAAgB,CAAE,KAAM,CAAG;IAC3CkB,MAAM,EAAKT,OAAO,IAAM;MACvB;MACA;MACA;MACA,IACCA,OAAO,KAAKC,gBAAgB,EAAEM,KAAK,IACnCrB,aAAa,CAAEc,OAAQ,CAAC,EACvB;QACDA,OAAO,GAAGU,SAAS;MACpB;MAEAX,QAAQ,CAAEC,OAAQ,CAAC;IACpB;EAAG,CACH,CAED,CAAC;AAEL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getBlockSupport","useBlockRename","name","canRename"],"sources":["@wordpress/block-editor/src/components/block-rename/use-block-rename.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\n\nexport default function useBlockRename( name ) {\n\treturn {\n\t\tcanRename: getBlockSupport( name, 'renaming', true ),\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,mBAAmB;AAEnD,eAAe,SAASC,cAAcA,CAAEC,IAAI,EAAG;EAC9C,OAAO;IACNC,SAAS,EAAEH,eAAe,CAAEE,IAAI,EAAE,UAAU,EAAE,IAAK;EACpD,CAAC;AACF"}
|
|
@@ -9,7 +9,7 @@ import { moreVertical } from '@wordpress/icons';
|
|
|
9
9
|
import { Children, cloneElement, useCallback, useRef } from '@wordpress/element';
|
|
10
10
|
import { __, sprintf } from '@wordpress/i18n';
|
|
11
11
|
import { store as keyboardShortcutsStore, __unstableUseShortcutEventMatch } from '@wordpress/keyboard-shortcuts';
|
|
12
|
-
import { pipe, useCopyToClipboard } from '@wordpress/compose';
|
|
12
|
+
import { pipe, useCopyToClipboard, useViewportMatch } from '@wordpress/compose';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Internal dependencies
|
|
@@ -38,6 +38,35 @@ function CopyMenuItem({
|
|
|
38
38
|
ref: ref
|
|
39
39
|
}, copyMenuItemLabel);
|
|
40
40
|
}
|
|
41
|
+
function ParentSelectorMenuItem({
|
|
42
|
+
parentClientId,
|
|
43
|
+
parentBlockType
|
|
44
|
+
}) {
|
|
45
|
+
const isSmallViewport = useViewportMatch('medium', '<');
|
|
46
|
+
const {
|
|
47
|
+
selectBlock
|
|
48
|
+
} = useDispatch(blockEditorStore);
|
|
49
|
+
|
|
50
|
+
// Allows highlighting the parent block outline when focusing or hovering
|
|
51
|
+
// the parent block selector within the child.
|
|
52
|
+
const menuItemRef = useRef();
|
|
53
|
+
const gesturesProps = useShowHoveredOrFocusedGestures({
|
|
54
|
+
ref: menuItemRef,
|
|
55
|
+
highlightParent: true
|
|
56
|
+
});
|
|
57
|
+
if (!isSmallViewport) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return createElement(MenuItem, {
|
|
61
|
+
...gesturesProps,
|
|
62
|
+
ref: menuItemRef,
|
|
63
|
+
icon: createElement(BlockIcon, {
|
|
64
|
+
icon: parentBlockType.icon
|
|
65
|
+
}),
|
|
66
|
+
onClick: () => selectBlock(parentClientId)
|
|
67
|
+
}, sprintf( /* translators: %s: Name of the block's parent. */
|
|
68
|
+
__('Select parent block (%s)'), parentBlockType.title));
|
|
69
|
+
}
|
|
41
70
|
export function BlockSettingsDropdown({
|
|
42
71
|
block,
|
|
43
72
|
clientIds,
|
|
@@ -99,9 +128,6 @@ export function BlockSettingsDropdown({
|
|
|
99
128
|
};
|
|
100
129
|
}, []);
|
|
101
130
|
const isMatch = __unstableUseShortcutEventMatch();
|
|
102
|
-
const {
|
|
103
|
-
selectBlock
|
|
104
|
-
} = useDispatch(blockEditorStore);
|
|
105
131
|
const hasSelectedBlocks = selectedBlockClientIds.length > 0;
|
|
106
132
|
const updateSelectionAfterDuplicate = useCallback(async clientIdsPromise => {
|
|
107
133
|
if (__experimentalSelectBlock) {
|
|
@@ -127,14 +153,6 @@ export function BlockSettingsDropdown({
|
|
|
127
153
|
}, [__experimentalSelectBlock, previousBlockClientId, firstParentClientId, getBlockOrder, hasSelectedBlocks, getSelectedBlockClientIds]);
|
|
128
154
|
const removeBlockLabel = count === 1 ? __('Delete') : __('Delete blocks');
|
|
129
155
|
|
|
130
|
-
// Allows highlighting the parent block outline when focusing or hovering
|
|
131
|
-
// the parent block selector within the child.
|
|
132
|
-
const selectParentButtonRef = useRef();
|
|
133
|
-
const showParentOutlineGestures = useShowHoveredOrFocusedGestures({
|
|
134
|
-
ref: selectParentButtonRef,
|
|
135
|
-
highlightParent: true
|
|
136
|
-
});
|
|
137
|
-
|
|
138
156
|
// This can occur when the selected block (the parent)
|
|
139
157
|
// displays child blocks within a List View.
|
|
140
158
|
const parentBlockIsSelected = selectedBlockClientIds?.includes(firstParentClientId);
|
|
@@ -209,15 +227,10 @@ export function BlockSettingsDropdown({
|
|
|
209
227
|
fillProps: {
|
|
210
228
|
onClose
|
|
211
229
|
}
|
|
212
|
-
}), !parentBlockIsSelected && !!firstParentClientId && createElement(
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
icon: parentBlockType.icon
|
|
217
|
-
}),
|
|
218
|
-
onClick: () => selectBlock(firstParentClientId)
|
|
219
|
-
}, sprintf( /* translators: %s: Name of the block's parent. */
|
|
220
|
-
__('Select parent block (%s)'), parentBlockType.title)), count === 1 && createElement(BlockHTMLConvertButton, {
|
|
230
|
+
}), !parentBlockIsSelected && !!firstParentClientId && createElement(ParentSelectorMenuItem, {
|
|
231
|
+
parentClientId: firstParentClientId,
|
|
232
|
+
parentBlockType: parentBlockType
|
|
233
|
+
}), count === 1 && createElement(BlockHTMLConvertButton, {
|
|
221
234
|
clientId: firstBlockClientId
|
|
222
235
|
}), createElement(CopyMenuItem, {
|
|
223
236
|
blocks: blocks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","keyboardShortcutsStore","__unstableUseShortcutEventMatch","pipe","useCopyToClipboard","BlockActions","BlockIcon","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","unlock","useShowHoveredOrFocusedGestures","POPOVER_PROPS","className","placement","CopyMenuItem","blocks","onCopy","label","ref","copyMenuItemBlocksLabel","length","copyMenuItemLabel","createElement","BlockSettingsDropdown","block","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","currentClientId","clientId","blockClientIds","Array","isArray","count","firstBlockClientId","firstParentClientId","onlyBlock","parentBlockType","previousBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","openedBlockSettingsMenu","getOpenedBlockSettingsMenu","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","isMatch","selectBlock","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","removeBlockLabel","selectParentButtonRef","showParentOutlineGestures","highlightParent","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","icon","popoverProps","noIcons","menuProps","onKeyDown","event","defaultPrevented","preventDefault","onClose","Fragment","Slot","fillProps","onClick","title","shortcut","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 {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tstore as keyboardShortcutsStore,\n\t__unstableUseShortcutEventMatch,\n} from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { blocks, onCopy, label } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemBlocksLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy' );\n\tconst copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel;\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t__unstableDisplayLocation,\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 blockClientIds = Array.isArray( clientIds )\n\t\t? clientIds\n\t\t: [ clientIds ];\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\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} = 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\tonlyBlock: 1 === getBlockCount( _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};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst openedBlockSettingsMenu = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getOpenedBlockSettingsMenu(),\n\t\t[]\n\t);\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 isMatch = __unstableUseShortcutEventMatch();\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\tasync ( clientIdsPromise ) => {\n\t\t\tif ( __experimentalSelectBlock ) {\n\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst updateSelectionAfterRemove = useCallback( () => {\n\t\tif ( __experimentalSelectBlock ) {\n\t\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t\t// Focus the first block if there's no previous block nor parent block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\t// Only update the selection if the original selection is removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t\t}\n\t}, [\n\t\t__experimentalSelectBlock,\n\t\tpreviousBlockClientId,\n\t\tfirstParentClientId,\n\t\tgetBlockOrder,\n\t\thasSelectedBlocks,\n\t\tgetSelectedBlockClientIds,\n\t] );\n\n\tconst removeBlockLabel =\n\t\tcount === 1 ? __( 'Delete' ) : __( 'Delete blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst showParentOutlineGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: selectParentButtonRef,\n\t\thighlightParent: true,\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\tconst onToggle = useCallback(\n\t\t( localOpen ) => {\n\t\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t\t} else if (\n\t\t\t\t! localOpen &&\n\t\t\t\topenedBlockSettingsMenu &&\n\t\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t\t) {\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t}\n\t\t},\n\t\t[ currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu ]\n\t);\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\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\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\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\topen={ open }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tnoIcons\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {KeyboardEvent} event\n\t\t\t\t\t\t */\n\t\t\t\t\t\tonKeyDown( event ) {\n\t\t\t\t\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisMatch( 'core/block-editor/remove', event ) &&\n\t\t\t\t\t\t\t\tcanRemove\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterRemove( onRemove() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/duplicate',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanDuplicate\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate( onDuplicate() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-after',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertAfter();\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-before',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertBefore();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\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\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tselectBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\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>\n\t\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\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\t\t'Select parent block (%s)'\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\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t\t) }\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{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\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\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\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\tonInsertBefore\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.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\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\tonInsertAfter\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.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\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) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t{ canCopyStyles && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\tcanMove,\n\t\t\t\t\t\t\t\t\tonMoveTo,\n\t\t\t\t\t\t\t\t\tonlyBlock,\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t__unstableDisplayLocation={\n\t\t\t\t\t\t\t\t\t__unstableDisplayLocation\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","keyboardShortcutsStore","__unstableUseShortcutEventMatch","pipe","useCopyToClipboard","useViewportMatch","BlockActions","BlockIcon","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","unlock","useShowHoveredOrFocusedGestures","POPOVER_PROPS","className","placement","CopyMenuItem","blocks","onCopy","label","ref","copyMenuItemBlocksLabel","length","copyMenuItemLabel","createElement","ParentSelectorMenuItem","parentClientId","parentBlockType","isSmallViewport","selectBlock","menuItemRef","gesturesProps","highlightParent","icon","onClick","title","BlockSettingsDropdown","block","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","currentClientId","clientId","blockClientIds","Array","isArray","count","firstBlockClientId","firstParentClientId","onlyBlock","previousBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","openedBlockSettingsMenu","getOpenedBlockSettingsMenu","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","isMatch","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","removeBlockLabel","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","popoverProps","noIcons","menuProps","onKeyDown","event","defaultPrevented","preventDefault","onClose","Fragment","Slot","fillProps","shortcut","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 {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tstore as keyboardShortcutsStore,\n\t__unstableUseShortcutEventMatch,\n} from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard, useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { blocks, onCopy, label } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemBlocksLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy' );\n\tconst copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel;\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nfunction ParentSelectorMenuItem( { parentClientId, parentBlockType } ) {\n\tconst isSmallViewport = useViewportMatch( 'medium', '<' );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst menuItemRef = useRef();\n\tconst gesturesProps = useShowHoveredOrFocusedGestures( {\n\t\tref: menuItemRef,\n\t\thighlightParent: true,\n\t} );\n\n\tif ( ! isSmallViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\t{ ...gesturesProps }\n\t\t\tref={ menuItemRef }\n\t\t\ticon={ <BlockIcon icon={ parentBlockType.icon } /> }\n\t\t\tonClick={ () => selectBlock( parentClientId ) }\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t__( 'Select parent block (%s)' ),\n\t\t\t\tparentBlockType.title\n\t\t\t) }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t__unstableDisplayLocation,\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 blockClientIds = Array.isArray( clientIds )\n\t\t? clientIds\n\t\t: [ clientIds ];\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\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} = 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\tonlyBlock: 1 === getBlockCount( _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};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst openedBlockSettingsMenu = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getOpenedBlockSettingsMenu(),\n\t\t[]\n\t);\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 isMatch = __unstableUseShortcutEventMatch();\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\tasync ( clientIdsPromise ) => {\n\t\t\tif ( __experimentalSelectBlock ) {\n\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst updateSelectionAfterRemove = useCallback( () => {\n\t\tif ( __experimentalSelectBlock ) {\n\t\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t\t// Focus the first block if there's no previous block nor parent block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\t// Only update the selection if the original selection is removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t\t}\n\t}, [\n\t\t__experimentalSelectBlock,\n\t\tpreviousBlockClientId,\n\t\tfirstParentClientId,\n\t\tgetBlockOrder,\n\t\thasSelectedBlocks,\n\t\tgetSelectedBlockClientIds,\n\t] );\n\n\tconst removeBlockLabel =\n\t\tcount === 1 ? __( 'Delete' ) : __( 'Delete blocks' );\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\tconst onToggle = useCallback(\n\t\t( localOpen ) => {\n\t\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t\t} else if (\n\t\t\t\t! localOpen &&\n\t\t\t\topenedBlockSettingsMenu &&\n\t\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t\t) {\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t}\n\t\t},\n\t\t[ currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu ]\n\t);\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\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\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\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\topen={ open }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tnoIcons\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {KeyboardEvent} event\n\t\t\t\t\t\t */\n\t\t\t\t\t\tonKeyDown( event ) {\n\t\t\t\t\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisMatch( 'core/block-editor/remove', event ) &&\n\t\t\t\t\t\t\t\tcanRemove\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterRemove( onRemove() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/duplicate',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanDuplicate\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate( onDuplicate() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-after',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertAfter();\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-before',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertBefore();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<ParentSelectorMenuItem\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{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\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\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\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\tonInsertBefore\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.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\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\tonInsertAfter\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.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\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) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t{ canCopyStyles && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\tcanMove,\n\t\t\t\t\t\t\t\t\tonMoveTo,\n\t\t\t\t\t\t\t\t\tonlyBlock,\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t__unstableDisplayLocation={\n\t\t\t\t\t\t\t\t\t__unstableDisplayLocation\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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"}
|