@wordpress/block-editor 15.4.0 → 15.4.1-next.f56bd8138.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/build/components/block-inspector/index.js +110 -95
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-switcher/index.js +4 -3
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/content-tab.js +34 -0
- package/build/components/inspector-controls-tabs/content-tab.js.map +1 -0
- package/build/components/inspector-controls-tabs/index.js +12 -2
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js +24 -21
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +9 -5
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/inspector-controls-tabs/utils.js +7 -1
- package/build/components/inspector-controls-tabs/utils.js.map +1 -1
- package/build/components/rich-text/index.js +4 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/private-apis.js +3 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +3 -2
- package/build/store/actions.js.map +1 -1
- package/build-module/components/block-inspector/index.js +110 -95
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +4 -3
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/content-tab.js +26 -0
- package/build-module/components/inspector-controls-tabs/content-tab.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/index.js +13 -3
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js +24 -21
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +10 -6
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/utils.js +7 -1
- package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
- package/build-module/components/rich-text/index.js +4 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +3 -2
- package/build-module/store/actions.js.map +1 -1
- package/package.json +34 -34
- package/src/components/block-inspector/index.js +134 -114
- package/src/components/block-switcher/index.js +8 -3
- package/src/components/inspector-controls-tabs/content-tab.js +24 -0
- package/src/components/inspector-controls-tabs/index.js +8 -1
- package/src/components/inspector-controls-tabs/styles-tab.js +33 -21
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +19 -6
- package/src/components/inspector-controls-tabs/utils.js +8 -1
- package/src/components/rich-text/index.js +8 -1
- package/src/private-apis.js +2 -0
- package/src/store/actions.js +3 -2
|
@@ -23,8 +23,8 @@ import useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-c
|
|
|
23
23
|
import AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';
|
|
24
24
|
import PositionControls from '../inspector-controls-tabs/position-controls-panel';
|
|
25
25
|
import useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';
|
|
26
|
-
import BlockQuickNavigation from '../block-quick-navigation';
|
|
27
26
|
import { useBorderPanelLabel } from '../../hooks/border';
|
|
27
|
+
import ContentTab from '../inspector-controls-tabs/content-tab';
|
|
28
28
|
import { unlock } from '../../lock-unlock';
|
|
29
29
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
30
30
|
function BlockStylesPanel({
|
|
@@ -37,35 +37,99 @@ function BlockStylesPanel({
|
|
|
37
37
|
})
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
+
function StyleInspectorSlots({
|
|
41
|
+
blockName,
|
|
42
|
+
showAdvancedControls = true,
|
|
43
|
+
showPositionControls = true,
|
|
44
|
+
showListControls = false,
|
|
45
|
+
showBindingsControls = true
|
|
46
|
+
}) {
|
|
47
|
+
const borderPanelLabel = useBorderPanelLabel({
|
|
48
|
+
blockName
|
|
49
|
+
});
|
|
50
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
51
|
+
children: [/*#__PURE__*/_jsx(InspectorControls.Slot, {}), showListControls && /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
52
|
+
group: "list"
|
|
53
|
+
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
54
|
+
group: "color",
|
|
55
|
+
label: __('Color'),
|
|
56
|
+
className: "color-block-support-panel__inner-wrapper"
|
|
57
|
+
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
58
|
+
group: "background",
|
|
59
|
+
label: __('Background image')
|
|
60
|
+
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
61
|
+
group: "typography",
|
|
62
|
+
label: __('Typography')
|
|
63
|
+
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
64
|
+
group: "dimensions",
|
|
65
|
+
label: __('Dimensions')
|
|
66
|
+
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
67
|
+
group: "border",
|
|
68
|
+
label: borderPanelLabel
|
|
69
|
+
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
70
|
+
group: "styles"
|
|
71
|
+
}), showPositionControls && /*#__PURE__*/_jsx(PositionControls, {}), showBindingsControls && /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
72
|
+
group: "bindings"
|
|
73
|
+
}), showAdvancedControls && /*#__PURE__*/_jsx("div", {
|
|
74
|
+
children: /*#__PURE__*/_jsx(AdvancedControls, {})
|
|
75
|
+
})]
|
|
76
|
+
});
|
|
77
|
+
}
|
|
40
78
|
function BlockInspector() {
|
|
41
79
|
const {
|
|
42
|
-
|
|
80
|
+
selectedBlockCount,
|
|
43
81
|
selectedBlockName,
|
|
44
82
|
selectedBlockClientId,
|
|
45
83
|
blockType,
|
|
46
|
-
isSectionBlock
|
|
84
|
+
isSectionBlock,
|
|
85
|
+
isSectionBlockInSelection,
|
|
86
|
+
hasBlockStyles
|
|
47
87
|
} = useSelect(select => {
|
|
48
88
|
const {
|
|
49
89
|
getSelectedBlockClientId,
|
|
90
|
+
getSelectedBlockClientIds,
|
|
50
91
|
getSelectedBlockCount,
|
|
51
92
|
getBlockName,
|
|
52
93
|
getParentSectionBlock,
|
|
53
94
|
isSectionBlock: _isSectionBlock
|
|
54
95
|
} = unlock(select(blockEditorStore));
|
|
96
|
+
const {
|
|
97
|
+
getBlockStyles
|
|
98
|
+
} = select(blocksStore);
|
|
55
99
|
const _selectedBlockClientId = getSelectedBlockClientId();
|
|
56
|
-
const renderedBlockClientId = getParentSectionBlock(_selectedBlockClientId) ||
|
|
100
|
+
const renderedBlockClientId = getParentSectionBlock(_selectedBlockClientId) || _selectedBlockClientId;
|
|
57
101
|
const _selectedBlockName = renderedBlockClientId && getBlockName(renderedBlockClientId);
|
|
58
102
|
const _blockType = _selectedBlockName && getBlockType(_selectedBlockName);
|
|
103
|
+
const selectedBlockClientIds = getSelectedBlockClientIds();
|
|
104
|
+
const _isSectionBlockInSelection = selectedBlockClientIds.some(id => _isSectionBlock(id));
|
|
105
|
+
const blockStyles = _selectedBlockName && getBlockStyles(_selectedBlockName);
|
|
106
|
+
const _hasBlockStyles = blockStyles && blockStyles.length > 0;
|
|
59
107
|
return {
|
|
60
|
-
|
|
108
|
+
selectedBlockCount: getSelectedBlockCount(),
|
|
61
109
|
selectedBlockClientId: renderedBlockClientId,
|
|
62
110
|
selectedBlockName: _selectedBlockName,
|
|
63
111
|
blockType: _blockType,
|
|
64
|
-
|
|
112
|
+
isSectionBlockInSelection: _isSectionBlockInSelection,
|
|
113
|
+
isSectionBlock: _isSectionBlock(renderedBlockClientId),
|
|
114
|
+
hasBlockStyles: _hasBlockStyles
|
|
65
115
|
};
|
|
66
116
|
}, []);
|
|
67
|
-
|
|
68
|
-
|
|
117
|
+
|
|
118
|
+
// Separate useSelect for contentClientIds with proper dependencies
|
|
119
|
+
const contentClientIds = useSelect(select => {
|
|
120
|
+
if (!isSectionBlock || !selectedBlockClientId) {
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
const {
|
|
124
|
+
getClientIdsOfDescendants,
|
|
125
|
+
getBlockName,
|
|
126
|
+
getBlockEditingMode
|
|
127
|
+
} = unlock(select(blockEditorStore));
|
|
128
|
+
const descendants = getClientIdsOfDescendants(selectedBlockClientId);
|
|
129
|
+
return descendants.filter(current => getBlockName(current) !== 'core/list-item' && getBlockEditingMode(current) === 'contentOnly');
|
|
130
|
+
}, [isSectionBlock, selectedBlockClientId]);
|
|
131
|
+
const availableTabs = useInspectorControlsTabs(blockType?.name, contentClientIds, isSectionBlock, hasBlockStyles);
|
|
132
|
+
const hasMultipleTabs = availableTabs?.length > 1;
|
|
69
133
|
|
|
70
134
|
// The block inspector animation settings will be completely
|
|
71
135
|
// removed in the future to create an API which allows the block
|
|
@@ -74,44 +138,34 @@ function BlockInspector() {
|
|
|
74
138
|
// and its parent, and only enable it if the parent is controlling
|
|
75
139
|
// its children blocks.
|
|
76
140
|
const blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(blockType);
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
});
|
|
80
|
-
if (count > 1 && !isSectionBlock) {
|
|
141
|
+
const hasSelectedBlocks = selectedBlockCount > 1;
|
|
142
|
+
if (hasSelectedBlocks && !isSectionBlockInSelection) {
|
|
81
143
|
return /*#__PURE__*/_jsxs("div", {
|
|
82
144
|
className: "block-editor-block-inspector",
|
|
83
|
-
children: [/*#__PURE__*/_jsx(MultiSelectionInspector, {}),
|
|
145
|
+
children: [/*#__PURE__*/_jsx(MultiSelectionInspector, {}), hasMultipleTabs ? /*#__PURE__*/_jsx(InspectorControlsTabs, {
|
|
84
146
|
tabs: availableTabs
|
|
85
|
-
}) : /*#__PURE__*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
91
|
-
group: "background",
|
|
92
|
-
label: __('Background image')
|
|
93
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
94
|
-
group: "typography",
|
|
95
|
-
label: __('Typography')
|
|
96
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
97
|
-
group: "dimensions",
|
|
98
|
-
label: __('Dimensions')
|
|
99
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
100
|
-
group: "border",
|
|
101
|
-
label: borderPanelLabel
|
|
102
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
103
|
-
group: "styles"
|
|
104
|
-
})]
|
|
147
|
+
}) : /*#__PURE__*/_jsx(StyleInspectorSlots, {
|
|
148
|
+
blockName: selectedBlockName,
|
|
149
|
+
showAdvancedControls: false,
|
|
150
|
+
showPositionControls: false,
|
|
151
|
+
showBindingsControls: false
|
|
105
152
|
})]
|
|
106
153
|
});
|
|
107
154
|
}
|
|
155
|
+
if (hasSelectedBlocks && isSectionBlockInSelection) {
|
|
156
|
+
return /*#__PURE__*/_jsx("div", {
|
|
157
|
+
className: "block-editor-block-inspector",
|
|
158
|
+
children: /*#__PURE__*/_jsx(MultiSelectionInspector, {})
|
|
159
|
+
});
|
|
160
|
+
}
|
|
108
161
|
const isSelectedBlockUnregistered = selectedBlockName === getUnregisteredTypeHandlerName();
|
|
109
162
|
|
|
110
163
|
/*
|
|
111
164
|
* If the selected block is of an unregistered type, avoid showing it as an actual selection
|
|
112
165
|
* because we want the user to focus on the unregistered block warning, not block settings.
|
|
113
166
|
*/
|
|
114
|
-
|
|
167
|
+
const shouldShowWarning = !blockType || !selectedBlockClientId || isSelectedBlockUnregistered;
|
|
168
|
+
if (shouldShowWarning) {
|
|
115
169
|
return /*#__PURE__*/_jsx("span", {
|
|
116
170
|
className: "block-editor-block-inspector__no-blocks",
|
|
117
171
|
children: __('No block selected.')
|
|
@@ -127,7 +181,10 @@ function BlockInspector() {
|
|
|
127
181
|
children: /*#__PURE__*/_jsx(BlockInspectorSingleBlock, {
|
|
128
182
|
clientId: selectedBlockClientId,
|
|
129
183
|
blockName: blockType.name,
|
|
130
|
-
isSectionBlock: isSectionBlock
|
|
184
|
+
isSectionBlock: isSectionBlock,
|
|
185
|
+
availableTabs: availableTabs,
|
|
186
|
+
contentClientIds: contentClientIds,
|
|
187
|
+
hasBlockStyles: hasBlockStyles
|
|
131
188
|
})
|
|
132
189
|
});
|
|
133
190
|
}
|
|
@@ -163,82 +220,40 @@ const AnimatedContainer = ({
|
|
|
163
220
|
const BlockInspectorSingleBlock = ({
|
|
164
221
|
clientId,
|
|
165
222
|
blockName,
|
|
166
|
-
isSectionBlock
|
|
223
|
+
isSectionBlock,
|
|
224
|
+
availableTabs,
|
|
225
|
+
contentClientIds,
|
|
226
|
+
hasBlockStyles
|
|
167
227
|
}) => {
|
|
168
|
-
const
|
|
169
|
-
const showTabs = !isSectionBlock && availableTabs?.length > 1;
|
|
170
|
-
const hasBlockStyles = useSelect(select => {
|
|
171
|
-
const {
|
|
172
|
-
getBlockStyles
|
|
173
|
-
} = select(blocksStore);
|
|
174
|
-
const blockStyles = getBlockStyles(blockName);
|
|
175
|
-
return blockStyles && blockStyles.length > 0;
|
|
176
|
-
}, [blockName]);
|
|
228
|
+
const hasMultipleTabs = availableTabs?.length > 1;
|
|
177
229
|
const blockInformation = useBlockDisplayInformation(clientId);
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
});
|
|
181
|
-
const contentClientIds = useSelect(select => {
|
|
182
|
-
// Avoid unnecessary subscription.
|
|
183
|
-
if (!isSectionBlock) {
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
const {
|
|
187
|
-
getClientIdsOfDescendants,
|
|
188
|
-
getBlockName,
|
|
189
|
-
getBlockEditingMode
|
|
190
|
-
} = select(blockEditorStore);
|
|
191
|
-
return getClientIdsOfDescendants(clientId).filter(current => getBlockName(current) !== 'core/list-item' && getBlockEditingMode(current) === 'contentOnly');
|
|
192
|
-
}, [isSectionBlock, clientId]);
|
|
230
|
+
const isBlockSynced = blockInformation.isSynced;
|
|
231
|
+
const shouldShowTabs = !isBlockSynced && hasMultipleTabs;
|
|
193
232
|
return /*#__PURE__*/_jsxs("div", {
|
|
194
233
|
className: "block-editor-block-inspector",
|
|
195
234
|
children: [/*#__PURE__*/_jsx(BlockCard, {
|
|
196
235
|
...blockInformation,
|
|
197
|
-
className:
|
|
236
|
+
className: isBlockSynced && 'is-synced',
|
|
198
237
|
children: window?.__experimentalContentOnlyPatternInsertion && /*#__PURE__*/_jsx(EditContentsButton, {
|
|
199
238
|
clientId: clientId
|
|
200
239
|
})
|
|
201
240
|
}), /*#__PURE__*/_jsx(BlockVariationTransforms, {
|
|
202
241
|
blockClientId: clientId
|
|
203
|
-
}),
|
|
242
|
+
}), shouldShowTabs && /*#__PURE__*/_jsx(InspectorControlsTabs, {
|
|
204
243
|
hasBlockStyles: hasBlockStyles,
|
|
205
244
|
clientId: clientId,
|
|
206
245
|
blockName: blockName,
|
|
207
|
-
tabs: availableTabs
|
|
208
|
-
|
|
246
|
+
tabs: availableTabs,
|
|
247
|
+
isSectionBlock: isSectionBlock,
|
|
248
|
+
contentClientIds: contentClientIds
|
|
249
|
+
}), !shouldShowTabs && /*#__PURE__*/_jsxs(_Fragment, {
|
|
209
250
|
children: [hasBlockStyles && /*#__PURE__*/_jsx(BlockStylesPanel, {
|
|
210
251
|
clientId: clientId
|
|
211
|
-
}),
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}), !isSectionBlock && /*#__PURE__*/_jsxs(_Fragment, {
|
|
217
|
-
children: [/*#__PURE__*/_jsx(InspectorControls.Slot, {}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
218
|
-
group: "list"
|
|
219
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
220
|
-
group: "color",
|
|
221
|
-
label: __('Color'),
|
|
222
|
-
className: "color-block-support-panel__inner-wrapper"
|
|
223
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
224
|
-
group: "background",
|
|
225
|
-
label: __('Background image')
|
|
226
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
227
|
-
group: "typography",
|
|
228
|
-
label: __('Typography')
|
|
229
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
230
|
-
group: "dimensions",
|
|
231
|
-
label: __('Dimensions')
|
|
232
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
233
|
-
group: "border",
|
|
234
|
-
label: borderPanelLabel
|
|
235
|
-
}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
236
|
-
group: "styles"
|
|
237
|
-
}), /*#__PURE__*/_jsx(PositionControls, {}), /*#__PURE__*/_jsx(InspectorControls.Slot, {
|
|
238
|
-
group: "bindings"
|
|
239
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
240
|
-
children: /*#__PURE__*/_jsx(AdvancedControls, {})
|
|
241
|
-
})]
|
|
252
|
+
}), /*#__PURE__*/_jsx(ContentTab, {
|
|
253
|
+
contentClientIds: contentClientIds
|
|
254
|
+
}), !isSectionBlock && /*#__PURE__*/_jsx(StyleInspectorSlots, {
|
|
255
|
+
blockName: blockName,
|
|
256
|
+
showListControls: true
|
|
242
257
|
})]
|
|
243
258
|
}), /*#__PURE__*/_jsx(SkipToSelectedBlock, {}, "back")]
|
|
244
259
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","getBlockType","getUnregisteredTypeHandlerName","store","blocksStore","PanelBody","__unstableMotion","motion","useSelect","EditContentsButton","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockStyles","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","BlockQuickNavigation","useBorderPanelLabel","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BlockStylesPanel","clientId","title","children","BlockInspector","count","selectedBlockName","selectedBlockClientId","blockType","isSectionBlock","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getParentSectionBlock","_isSectionBlock","_selectedBlockClientId","renderedBlockClientId","_selectedBlockName","_blockType","availableTabs","name","showTabs","length","blockInspectorAnimationSettings","borderPanelLabel","blockName","className","tabs","Slot","group","label","isSelectedBlockUnregistered","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","div","x","opacity","transition","ease","duration","initial","hasBlockStyles","getBlockStyles","blockStyles","blockInformation","contentClientIds","getClientIdsOfDescendants","getBlockEditingMode","filter","current","isSynced","window","__experimentalContentOnlyPatternInsertion","blockClientId","clientIds"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport EditContentsButton from './edit-contents-button';\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockStylesPanel( { clientId } ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t<BlockStyles clientId={ clientId } />\n\t\t</PanelBody>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst renderedBlockClientId =\n\t\t\tgetParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\tgetSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\trenderedBlockClientId && getBlockName( renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: renderedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlock: _isSectionBlock( renderedBlockClientId ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst borderPanelLabel = useBorderPanelLabel( {\n\t\tblockName: selectedBlockName,\n\t} );\n\n\tif ( count > 1 && ! isSectionBlock ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n}\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\tisSectionBlock,\n} ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = ! isSectionBlock && availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\t// Avoid unnecessary subscription.\n\t\t\tif ( ! isSectionBlock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).filter(\n\t\t\t\t( current ) =>\n\t\t\t\t\tgetBlockName( current ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ isSectionBlock, clientId ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t>\n\t\t\t\t{ window?.__experimentalContentOnlyPatternInsertion && (\n\t\t\t\t\t<EditContentsButton clientId={ clientId } />\n\t\t\t\t) }\n\t\t\t</BlockCard>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStylesPanel clientId={ clientId } />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ contentClientIds && contentClientIds?.length > 0 && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t\t\t<BlockQuickNavigation\n\t\t\t\t\t\t\t\tclientIds={ contentClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t\t\t<PositionControls />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","getBlockType","getUnregisteredTypeHandlerName","store","blocksStore","PanelBody","__unstableMotion","motion","useSelect","EditContentsButton","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockStyles","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","useBorderPanelLabel","ContentTab","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BlockStylesPanel","clientId","title","children","StyleInspectorSlots","blockName","showAdvancedControls","showPositionControls","showListControls","showBindingsControls","borderPanelLabel","Slot","group","label","className","BlockInspector","selectedBlockCount","selectedBlockName","selectedBlockClientId","blockType","isSectionBlock","isSectionBlockInSelection","hasBlockStyles","select","getSelectedBlockClientId","getSelectedBlockClientIds","getSelectedBlockCount","getBlockName","getParentSectionBlock","_isSectionBlock","getBlockStyles","_selectedBlockClientId","renderedBlockClientId","_selectedBlockName","_blockType","selectedBlockClientIds","_isSectionBlockInSelection","some","id","blockStyles","_hasBlockStyles","length","contentClientIds","getClientIdsOfDescendants","getBlockEditingMode","descendants","filter","current","availableTabs","name","hasMultipleTabs","blockInspectorAnimationSettings","hasSelectedBlocks","tabs","isSelectedBlockUnregistered","shouldShowWarning","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","div","x","opacity","transition","ease","duration","initial","blockInformation","isBlockSynced","isSynced","shouldShowTabs","window","__experimentalContentOnlyPatternInsertion","blockClientId"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport EditContentsButton from './edit-contents-button';\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport ContentTab from '../inspector-controls-tabs/content-tab';\n\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockStylesPanel( { clientId } ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t<BlockStyles clientId={ clientId } />\n\t\t</PanelBody>\n\t);\n}\n\nfunction StyleInspectorSlots( {\n\tblockName,\n\tshowAdvancedControls = true,\n\tshowPositionControls = true,\n\tshowListControls = false,\n\tshowBindingsControls = true,\n} ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls.Slot />\n\t\t\t{ showListControls && <InspectorControls.Slot group=\"list\" /> }\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t{ showPositionControls && <PositionControls /> }\n\t\t\t{ showBindingsControls && (\n\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t) }\n\t\t\t{ showAdvancedControls && (\n\t\t\t\t<div>\n\t\t\t\t\t<AdvancedControls />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tselectedBlockCount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t\tisSectionBlockInSelection,\n\t\thasBlockStyles,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst { getBlockStyles } = select( blocksStore );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst renderedBlockClientId =\n\t\t\tgetParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\t_selectedBlockClientId;\n\t\tconst _selectedBlockName =\n\t\t\trenderedBlockClientId && getBlockName( renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _isSectionBlockInSelection = selectedBlockClientIds.some(\n\t\t\t( id ) => _isSectionBlock( id )\n\t\t);\n\n\t\tconst blockStyles =\n\t\t\t_selectedBlockName && getBlockStyles( _selectedBlockName );\n\t\tconst _hasBlockStyles = blockStyles && blockStyles.length > 0;\n\n\t\treturn {\n\t\t\tselectedBlockCount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: renderedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlockInSelection: _isSectionBlockInSelection,\n\t\t\tisSectionBlock: _isSectionBlock( renderedBlockClientId ),\n\t\t\thasBlockStyles: _hasBlockStyles,\n\t\t};\n\t}, [] );\n\n\t// Separate useSelect for contentClientIds with proper dependencies\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSectionBlock || ! selectedBlockClientId ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst descendants = getClientIdsOfDescendants(\n\t\t\t\tselectedBlockClientId\n\t\t\t);\n\t\t\treturn descendants.filter(\n\t\t\t\t( current ) =>\n\t\t\t\t\tgetBlockName( current ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ isSectionBlock, selectedBlockClientId ]\n\t);\n\n\tconst availableTabs = useInspectorControlsTabs(\n\t\tblockType?.name,\n\t\tcontentClientIds,\n\t\tisSectionBlock,\n\t\thasBlockStyles\n\t);\n\tconst hasMultipleTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst hasSelectedBlocks = selectedBlockCount > 1;\n\n\tif ( hasSelectedBlocks && ! isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ hasMultipleTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<StyleInspectorSlots\n\t\t\t\t\t\tblockName={ selectedBlockName }\n\t\t\t\t\t\tshowAdvancedControls={ false }\n\t\t\t\t\t\tshowPositionControls={ false }\n\t\t\t\t\t\tshowBindingsControls={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( hasSelectedBlocks && isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tconst shouldShowWarning =\n\t\t! blockType || ! selectedBlockClientId || isSelectedBlockUnregistered;\n\n\tif ( shouldShowWarning ) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\tavailableTabs={ availableTabs }\n\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n}\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\tisSectionBlock,\n\tavailableTabs,\n\tcontentClientIds,\n\thasBlockStyles,\n} ) => {\n\tconst hasMultipleTabs = availableTabs?.length > 1;\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst isBlockSynced = blockInformation.isSynced;\n\n\tconst shouldShowTabs = ! isBlockSynced && hasMultipleTabs;\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ isBlockSynced && 'is-synced' }\n\t\t\t>\n\t\t\t\t{ window?.__experimentalContentOnlyPatternInsertion && (\n\t\t\t\t\t<EditContentsButton clientId={ clientId } />\n\t\t\t\t) }\n\t\t\t</BlockCard>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ shouldShowTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! shouldShowTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStylesPanel clientId={ clientId } />\n\t\t\t\t\t) }\n\t\t\t\t\t<ContentTab contentClientIds={ contentClientIds } />\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<StyleInspectorSlots\n\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\tshowListControls\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -144,7 +144,7 @@ export const BlockSwitcher = ({
|
|
|
144
144
|
isReusable,
|
|
145
145
|
isTemplate,
|
|
146
146
|
isDisabled,
|
|
147
|
-
|
|
147
|
+
isSectionInSelection
|
|
148
148
|
} = useSelect(select => {
|
|
149
149
|
const {
|
|
150
150
|
getTemplateLock,
|
|
@@ -187,6 +187,7 @@ export const BlockSwitcher = ({
|
|
|
187
187
|
// appropriate icon to communicate the non-uniformity.
|
|
188
188
|
_icon = isSelectionOfSameType ? blockType.icon : copy;
|
|
189
189
|
}
|
|
190
|
+
const _isSectionInSelection = clientIds.some(id => isSectionBlock(id));
|
|
190
191
|
return {
|
|
191
192
|
canRemove: canRemoveBlocks(clientIds),
|
|
192
193
|
hasBlockStyles: _isSingleBlockSelected && !!getBlockStyles(firstBlockName)?.length,
|
|
@@ -195,7 +196,7 @@ export const BlockSwitcher = ({
|
|
|
195
196
|
isTemplate: _isSingleBlockSelected && isTemplatePart(_blocks[0]),
|
|
196
197
|
hasContentOnlyLocking: _hasTemplateLock,
|
|
197
198
|
isDisabled: editingMode !== 'default',
|
|
198
|
-
|
|
199
|
+
isSectionInSelection: _isSectionInSelection
|
|
199
200
|
};
|
|
200
201
|
}, [clientIds]);
|
|
201
202
|
const blockTitle = useBlockDisplayTitle({
|
|
@@ -209,7 +210,7 @@ export const BlockSwitcher = ({
|
|
|
209
210
|
const isSingleBlock = clientIds.length === 1;
|
|
210
211
|
const blockSwitcherLabel = isSingleBlock ? blockTitle : __('Multiple blocks selected');
|
|
211
212
|
const blockIndicatorText = (isReusable || isTemplate) && !showIconLabels && blockTitle ? blockTitle : undefined;
|
|
212
|
-
const hideTransformsForSections = window?.__experimentalContentOnlyPatternInsertion &&
|
|
213
|
+
const hideTransformsForSections = window?.__experimentalContentOnlyPatternInsertion && isSectionInSelection;
|
|
213
214
|
const hideDropdown = hideTransformsForSections || isDisabled || !hasBlockStyles && !canRemove || hasContentOnlyLocking;
|
|
214
215
|
if (hideDropdown) {
|
|
215
216
|
return /*#__PURE__*/_jsx(ToolbarGroup, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","_n","sprintf","_x","DropdownMenu","ToolbarButton","ToolbarGroup","ToolbarItem","__experimentalText","Text","MenuGroup","switchToBlockType","store","blocksStore","isReusableBlock","isTemplatePart","useSelect","useDispatch","copy","preferencesStore","blockEditorStore","BlockIcon","BlockTransformationsMenu","useBlockVariationTransforms","BlockStylesMenu","PatternTransformationsMenu","useBlockDisplayTitle","unlock","jsx","_jsx","jsxs","_jsxs","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","replaceBlocks","multiSelect","updateBlockAttributes","possibleBlockTransformations","patterns","blocks","isUsingBindings","select","getBlockAttributes","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","_blocks","every","clientId","metadata","bindings","blockVariationTransformations","selectForMultipleBlocks","insertedBlocks","length","onBlockTransform","name","newBlocks","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isSynced","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","className","children","connectedBlockDescription","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","BlockSwitcher","hasContentOnlyLocking","icon","invalidBlocks","isReusable","isTemplate","isDisabled","isSection","getTemplateLock","canRemoveBlocks","getBlockEditingMode","isSectionBlock","getBlockStyles","getBlockType","getActiveBlockVariation","some","block","firstBlockName","_isSingleBlockSelected","blockType","editingMode","_icon","_hasTemplateLock","match","isSelectionOfSameType","Set","map","size","id","blockTitle","maximumLength","showIconLabels","get","blockSwitcherLabel","blockIndicatorText","undefined","hideTransformsForSections","window","__experimentalContentOnlyPatternInsertion","hideDropdown","disabled","title","showColors","text","blockSwitcherDescription","toggleProps","label","popoverProps","placement","description","menuProps","orientation"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks, isUsingBindings } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlocksByClientId,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockTransformItems,\n\t\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\t\treturn {\n\t\t\t\t\tblocks: _blocks,\n\t\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tisUsingBindings: clientIds.every(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\t!! getBlockAttributes( clientId )?.metadata\n\t\t\t\t\t\t\t\t?.bindings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds ]\n\t\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block transformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isSynced` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isSynced =\n\t\tisSingleBlock &&\n\t\t( isTemplatePart( blocks[ 0 ] ) || isReusableBlock( blocks[ 0 ] ) );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations?.length && canRemove && ! isSynced;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds } ) => {\n\tconst {\n\t\thasContentOnlyLocking,\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t\tisDisabled,\n\t\tisSection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisSectionBlock,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\t\t\tconst editingMode = getBlockEditingMode( clientIds[ 0 ] );\n\n\t\t\tlet _icon;\n\t\t\tlet _hasTemplateLock;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t\t_hasTemplateLock =\n\t\t\t\t\tgetTemplateLock( clientIds[ 0 ] ) === 'contentOnly';\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t_hasTemplateLock = clientIds.some(\n\t\t\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\t\tisDisabled: editingMode !== 'default',\n\t\t\t\tisSection: isSectionBlock( clientIds[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst blockIndicatorText =\n\t\t( isReusable || isTemplate ) && ! showIconLabels && blockTitle\n\t\t\t? blockTitle\n\t\t\t: undefined;\n\n\tconst hideTransformsForSections =\n\t\twindow?.__experimentalContentOnlyPatternInsertion && isSection;\n\tconst hideDropdown =\n\t\thideTransformsForSections ||\n\t\tisDisabled ||\n\t\t( ! hasBlockStyles && ! canRemove ) ||\n\t\thasContentOnlyLocking;\n\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\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</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","_n","sprintf","_x","DropdownMenu","ToolbarButton","ToolbarGroup","ToolbarItem","__experimentalText","Text","MenuGroup","switchToBlockType","store","blocksStore","isReusableBlock","isTemplatePart","useSelect","useDispatch","copy","preferencesStore","blockEditorStore","BlockIcon","BlockTransformationsMenu","useBlockVariationTransforms","BlockStylesMenu","PatternTransformationsMenu","useBlockDisplayTitle","unlock","jsx","_jsx","jsxs","_jsxs","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","replaceBlocks","multiSelect","updateBlockAttributes","possibleBlockTransformations","patterns","blocks","isUsingBindings","select","getBlockAttributes","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","_blocks","every","clientId","metadata","bindings","blockVariationTransformations","selectForMultipleBlocks","insertedBlocks","length","onBlockTransform","name","newBlocks","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isSynced","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","className","children","connectedBlockDescription","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","BlockSwitcher","hasContentOnlyLocking","icon","invalidBlocks","isReusable","isTemplate","isDisabled","isSectionInSelection","getTemplateLock","canRemoveBlocks","getBlockEditingMode","isSectionBlock","getBlockStyles","getBlockType","getActiveBlockVariation","some","block","firstBlockName","_isSingleBlockSelected","blockType","editingMode","_icon","_hasTemplateLock","match","isSelectionOfSameType","Set","map","size","id","_isSectionInSelection","blockTitle","maximumLength","showIconLabels","get","blockSwitcherLabel","blockIndicatorText","undefined","hideTransformsForSections","window","__experimentalContentOnlyPatternInsertion","hideDropdown","disabled","title","showColors","text","blockSwitcherDescription","toggleProps","label","popoverProps","placement","description","menuProps","orientation"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks, isUsingBindings } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlocksByClientId,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockTransformItems,\n\t\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\t\treturn {\n\t\t\t\t\tblocks: _blocks,\n\t\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tisUsingBindings: clientIds.every(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\t!! getBlockAttributes( clientId )?.metadata\n\t\t\t\t\t\t\t\t?.bindings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds ]\n\t\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block transformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isSynced` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isSynced =\n\t\tisSingleBlock &&\n\t\t( isTemplatePart( blocks[ 0 ] ) || isReusableBlock( blocks[ 0 ] ) );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations?.length && canRemove && ! isSynced;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds } ) => {\n\tconst {\n\t\thasContentOnlyLocking,\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t\tisDisabled,\n\t\tisSectionInSelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisSectionBlock,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\t\t\tconst editingMode = getBlockEditingMode( clientIds[ 0 ] );\n\n\t\t\tlet _icon;\n\t\t\tlet _hasTemplateLock;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t\t_hasTemplateLock =\n\t\t\t\t\tgetTemplateLock( clientIds[ 0 ] ) === 'contentOnly';\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t_hasTemplateLock = clientIds.some(\n\t\t\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\tconst _isSectionInSelection = clientIds.some( ( id ) =>\n\t\t\t\tisSectionBlock( id )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\t\tisDisabled: editingMode !== 'default',\n\t\t\t\tisSectionInSelection: _isSectionInSelection,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst blockIndicatorText =\n\t\t( isReusable || isTemplate ) && ! showIconLabels && blockTitle\n\t\t\t? blockTitle\n\t\t\t: undefined;\n\n\tconst hideTransformsForSections =\n\t\twindow?.__experimentalContentOnlyPatternInsertion &&\n\t\tisSectionInSelection;\n\tconst hideDropdown =\n\t\thideTransformsForSections ||\n\t\tisDisabled ||\n\t\t( ! hasBlockStyles && ! canRemove ) ||\n\t\thasContentOnlyLocking;\n\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\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</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { PanelBody } from '@wordpress/components';
|
|
5
|
+
import { __ } from '@wordpress/i18n';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import BlockQuickNavigation from '../block-quick-navigation';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
const ContentTab = ({
|
|
13
|
+
contentClientIds
|
|
14
|
+
}) => {
|
|
15
|
+
if (!contentClientIds || contentClientIds.length === 0) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return /*#__PURE__*/_jsx(PanelBody, {
|
|
19
|
+
title: __('Content'),
|
|
20
|
+
children: /*#__PURE__*/_jsx(BlockQuickNavigation, {
|
|
21
|
+
clientIds: contentClientIds
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
export default ContentTab;
|
|
26
|
+
//# sourceMappingURL=content-tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PanelBody","__","BlockQuickNavigation","jsx","_jsx","ContentTab","contentClientIds","length","title","children","clientIds"],"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/content-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockQuickNavigation from '../block-quick-navigation';\n\nconst ContentTab = ( { contentClientIds } ) => {\n\tif ( ! contentClientIds || contentClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t</PanelBody>\n\t);\n};\n\nexport default ContentTab;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,uBAAuB;AACjD,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE7D,MAAMC,UAAU,GAAGA,CAAE;EAAEC;AAAiB,CAAC,KAAM;EAC9C,IAAK,CAAEA,gBAAgB,IAAIA,gBAAgB,CAACC,MAAM,KAAK,CAAC,EAAG;IAC1D,OAAO,IAAI;EACZ;EAEA,oBACCH,IAAA,CAACJ,SAAS;IAACQ,KAAK,EAAGP,EAAE,CAAE,SAAU,CAAG;IAAAQ,QAAA,eACnCL,IAAA,CAACF,oBAAoB;MAACQ,SAAS,EAAGJ;IAAkB,CAAE;EAAC,CAC7C,CAAC;AAEd,CAAC;AAED,eAAeD,UAAU","ignoreList":[]}
|
|
@@ -8,9 +8,10 @@ import { useSelect } from '@wordpress/data';
|
|
|
8
8
|
/**
|
|
9
9
|
* Internal dependencies
|
|
10
10
|
*/
|
|
11
|
-
import { TAB_SETTINGS, TAB_STYLES, TAB_LIST_VIEW } from './utils';
|
|
11
|
+
import { TAB_SETTINGS, TAB_STYLES, TAB_LIST_VIEW, TAB_CONTENT } from './utils';
|
|
12
12
|
import SettingsTab from './settings-tab';
|
|
13
13
|
import StylesTab from './styles-tab';
|
|
14
|
+
import ContentTab from './content-tab';
|
|
14
15
|
import InspectorControls from '../inspector-controls';
|
|
15
16
|
import useIsListViewTabDisabled from './use-is-list-view-tab-disabled';
|
|
16
17
|
import { unlock } from '../../lock-unlock';
|
|
@@ -22,7 +23,9 @@ export default function InspectorControlsTabs({
|
|
|
22
23
|
blockName,
|
|
23
24
|
clientId,
|
|
24
25
|
hasBlockStyles,
|
|
25
|
-
tabs
|
|
26
|
+
tabs,
|
|
27
|
+
isSectionBlock,
|
|
28
|
+
contentClientIds
|
|
26
29
|
}) {
|
|
27
30
|
const showIconLabels = useSelect(select => {
|
|
28
31
|
return select(preferencesStore).get('core', 'showIconLabels');
|
|
@@ -64,7 +67,14 @@ export default function InspectorControlsTabs({
|
|
|
64
67
|
children: /*#__PURE__*/_jsx(StylesTab, {
|
|
65
68
|
blockName: blockName,
|
|
66
69
|
clientId: clientId,
|
|
67
|
-
hasBlockStyles: hasBlockStyles
|
|
70
|
+
hasBlockStyles: hasBlockStyles,
|
|
71
|
+
isSectionBlock: isSectionBlock
|
|
72
|
+
})
|
|
73
|
+
}), /*#__PURE__*/_jsx(Tabs.TabPanel, {
|
|
74
|
+
tabId: TAB_CONTENT.name,
|
|
75
|
+
focusable: false,
|
|
76
|
+
children: /*#__PURE__*/_jsx(ContentTab, {
|
|
77
|
+
contentClientIds: contentClientIds
|
|
68
78
|
})
|
|
69
79
|
}), /*#__PURE__*/_jsx(Tabs.TabPanel, {
|
|
70
80
|
tabId: TAB_LIST_VIEW.name,
|