@wordpress/components 28.8.1 → 28.8.3
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 +9 -0
- package/build/guide/index.js +1 -0
- package/build/guide/index.js.map +1 -1
- package/build/navigator/navigator-provider/component.js +3 -4
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build/tools-panel/tools-panel/hook.js +183 -109
- package/build/tools-panel/tools-panel/hook.js.map +1 -1
- package/build/utils/config-values.js +1 -12
- package/build/utils/config-values.js.map +1 -1
- package/build-module/guide/index.js +1 -0
- package/build-module/guide/index.js.map +1 -1
- package/build-module/navigator/navigator-provider/component.js +3 -4
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build-module/tools-panel/tools-panel/hook.js +184 -110
- package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
- package/build-module/utils/config-values.js +1 -12
- package/build-module/utils/config-values.js.map +1 -1
- package/build-types/guide/index.d.ts.map +1 -1
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +2 -2
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/utils/config-values.d.ts +0 -10
- package/package.json +12 -12
- package/src/guide/index.tsx +1 -0
- package/src/navigator/navigator-provider/component.tsx +3 -2
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +1 -1
- package/src/tools-panel/tools-panel/hook.ts +221 -163
- package/src/utils/config-values.js +1 -15
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useCallback, useEffect, useMemo,
|
|
4
|
+
import { useCallback, useEffect, useMemo, useReducer, useRef } from '@wordpress/element';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -10,20 +10,27 @@ import * as styles from '../styles';
|
|
|
10
10
|
import { useContextSystem } from '../../context';
|
|
11
11
|
import { useCx } from '../../utils/hooks/use-cx';
|
|
12
12
|
const DEFAULT_COLUMNS = 2;
|
|
13
|
+
function emptyMenuItems() {
|
|
14
|
+
return {
|
|
15
|
+
default: {},
|
|
16
|
+
optional: {}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function emptyState() {
|
|
20
|
+
return {
|
|
21
|
+
panelItems: [],
|
|
22
|
+
menuItemOrder: [],
|
|
23
|
+
menuItems: emptyMenuItems()
|
|
24
|
+
};
|
|
25
|
+
}
|
|
13
26
|
const generateMenuItems = ({
|
|
14
27
|
panelItems,
|
|
15
28
|
shouldReset,
|
|
16
29
|
currentMenuItems,
|
|
17
30
|
menuItemOrder
|
|
18
31
|
}) => {
|
|
19
|
-
const newMenuItems =
|
|
20
|
-
|
|
21
|
-
optional: {}
|
|
22
|
-
};
|
|
23
|
-
const menuItems = {
|
|
24
|
-
default: {},
|
|
25
|
-
optional: {}
|
|
26
|
-
};
|
|
32
|
+
const newMenuItems = emptyMenuItems();
|
|
33
|
+
const menuItems = emptyMenuItems();
|
|
27
34
|
panelItems.forEach(({
|
|
28
35
|
hasValue,
|
|
29
36
|
isShownByDefault,
|
|
@@ -62,7 +69,128 @@ const generateMenuItems = ({
|
|
|
62
69
|
});
|
|
63
70
|
return menuItems;
|
|
64
71
|
};
|
|
65
|
-
|
|
72
|
+
function panelItemsReducer(panelItems, action) {
|
|
73
|
+
switch (action.type) {
|
|
74
|
+
case 'REGISTER_PANEL':
|
|
75
|
+
{
|
|
76
|
+
const newItems = [...panelItems];
|
|
77
|
+
// If an item with this label has already been registered, remove it
|
|
78
|
+
// first. This can happen when an item is moved between the default
|
|
79
|
+
// and optional groups.
|
|
80
|
+
const existingIndex = newItems.findIndex(oldItem => oldItem.label === action.item.label);
|
|
81
|
+
if (existingIndex !== -1) {
|
|
82
|
+
newItems.splice(existingIndex, 1);
|
|
83
|
+
}
|
|
84
|
+
newItems.push(action.item);
|
|
85
|
+
return newItems;
|
|
86
|
+
}
|
|
87
|
+
case 'UNREGISTER_PANEL':
|
|
88
|
+
{
|
|
89
|
+
const index = panelItems.findIndex(item => item.label === action.label);
|
|
90
|
+
if (index !== -1) {
|
|
91
|
+
const newItems = [...panelItems];
|
|
92
|
+
newItems.splice(index, 1);
|
|
93
|
+
return newItems;
|
|
94
|
+
}
|
|
95
|
+
return panelItems;
|
|
96
|
+
}
|
|
97
|
+
default:
|
|
98
|
+
return panelItems;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function menuItemOrderReducer(menuItemOrder, action) {
|
|
102
|
+
switch (action.type) {
|
|
103
|
+
case 'REGISTER_PANEL':
|
|
104
|
+
{
|
|
105
|
+
// Track the initial order of item registration. This is used for
|
|
106
|
+
// maintaining menu item order later.
|
|
107
|
+
if (menuItemOrder.includes(action.item.label)) {
|
|
108
|
+
return menuItemOrder;
|
|
109
|
+
}
|
|
110
|
+
return [...menuItemOrder, action.item.label];
|
|
111
|
+
}
|
|
112
|
+
default:
|
|
113
|
+
return menuItemOrder;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function menuItemsReducer(state, action) {
|
|
117
|
+
switch (action.type) {
|
|
118
|
+
case 'REGISTER_PANEL':
|
|
119
|
+
case 'UNREGISTER_PANEL':
|
|
120
|
+
// generate new menu items from original `menuItems` and updated `panelItems` and `menuItemOrder`
|
|
121
|
+
return generateMenuItems({
|
|
122
|
+
currentMenuItems: state.menuItems,
|
|
123
|
+
panelItems: state.panelItems,
|
|
124
|
+
menuItemOrder: state.menuItemOrder,
|
|
125
|
+
shouldReset: false
|
|
126
|
+
});
|
|
127
|
+
case 'RESET_ALL':
|
|
128
|
+
return generateMenuItems({
|
|
129
|
+
panelItems: state.panelItems,
|
|
130
|
+
menuItemOrder: state.menuItemOrder,
|
|
131
|
+
shouldReset: true
|
|
132
|
+
});
|
|
133
|
+
case 'UPDATE_VALUE':
|
|
134
|
+
{
|
|
135
|
+
const oldValue = state.menuItems[action.group][action.label];
|
|
136
|
+
if (action.value === oldValue) {
|
|
137
|
+
return state.menuItems;
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
...state.menuItems,
|
|
141
|
+
[action.group]: {
|
|
142
|
+
...state.menuItems[action.group],
|
|
143
|
+
[action.label]: action.value
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
case 'TOGGLE_VALUE':
|
|
148
|
+
{
|
|
149
|
+
const currentItem = state.panelItems.find(item => item.label === action.label);
|
|
150
|
+
if (!currentItem) {
|
|
151
|
+
return state.menuItems;
|
|
152
|
+
}
|
|
153
|
+
const menuGroup = currentItem.isShownByDefault ? 'default' : 'optional';
|
|
154
|
+
const newMenuItems = {
|
|
155
|
+
...state.menuItems,
|
|
156
|
+
[menuGroup]: {
|
|
157
|
+
...state.menuItems[menuGroup],
|
|
158
|
+
[action.label]: !state.menuItems[menuGroup][action.label]
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
return newMenuItems;
|
|
162
|
+
}
|
|
163
|
+
default:
|
|
164
|
+
return state.menuItems;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
function panelReducer(state, action) {
|
|
168
|
+
const panelItems = panelItemsReducer(state.panelItems, action);
|
|
169
|
+
const menuItemOrder = menuItemOrderReducer(state.menuItemOrder, action);
|
|
170
|
+
// `menuItemsReducer` is a bit unusual because it generates new state from original `menuItems`
|
|
171
|
+
// and the updated `panelItems` and `menuItemOrder`.
|
|
172
|
+
const menuItems = menuItemsReducer({
|
|
173
|
+
panelItems,
|
|
174
|
+
menuItemOrder,
|
|
175
|
+
menuItems: state.menuItems
|
|
176
|
+
}, action);
|
|
177
|
+
return {
|
|
178
|
+
panelItems,
|
|
179
|
+
menuItemOrder,
|
|
180
|
+
menuItems
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
function resetAllFiltersReducer(filters, action) {
|
|
184
|
+
switch (action.type) {
|
|
185
|
+
case 'REGISTER':
|
|
186
|
+
return [...filters, action.filter];
|
|
187
|
+
case 'UNREGISTER':
|
|
188
|
+
return filters.filter(f => f !== action.filter);
|
|
189
|
+
default:
|
|
190
|
+
return filters;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
const isMenuItemTypeEmpty = obj => Object.keys(obj).length === 0;
|
|
66
194
|
export function useToolsPanel(props) {
|
|
67
195
|
const {
|
|
68
196
|
className,
|
|
@@ -89,32 +217,18 @@ export function useToolsPanel(props) {
|
|
|
89
217
|
}, [wasResetting]);
|
|
90
218
|
|
|
91
219
|
// Allow panel items to register themselves.
|
|
92
|
-
const [
|
|
93
|
-
|
|
94
|
-
|
|
220
|
+
const [{
|
|
221
|
+
panelItems,
|
|
222
|
+
menuItems
|
|
223
|
+
}, panelDispatch] = useReducer(panelReducer, undefined, emptyState);
|
|
224
|
+
const [resetAllFilters, dispatchResetAllFilters] = useReducer(resetAllFiltersReducer, []);
|
|
95
225
|
const registerPanelItem = useCallback(item => {
|
|
96
226
|
// Add item to panel items.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
// first. This can happen when an item is moved between the default
|
|
101
|
-
// and optional groups.
|
|
102
|
-
const existingIndex = newItems.findIndex(oldItem => oldItem.label === item.label);
|
|
103
|
-
if (existingIndex !== -1) {
|
|
104
|
-
newItems.splice(existingIndex, 1);
|
|
105
|
-
}
|
|
106
|
-
return [...newItems, item];
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
// Track the initial order of item registration. This is used for
|
|
110
|
-
// maintaining menu item order later.
|
|
111
|
-
setMenuItemOrder(items => {
|
|
112
|
-
if (items.includes(item.label)) {
|
|
113
|
-
return items;
|
|
114
|
-
}
|
|
115
|
-
return [...items, item.label];
|
|
227
|
+
panelDispatch({
|
|
228
|
+
type: 'REGISTER_PANEL',
|
|
229
|
+
item
|
|
116
230
|
});
|
|
117
|
-
}, [
|
|
231
|
+
}, []);
|
|
118
232
|
|
|
119
233
|
// Panels need to deregister on unmount to avoid orphans in menu state.
|
|
120
234
|
// This is an issue when panel items are being injected via SlotFills.
|
|
@@ -123,96 +237,58 @@ export function useToolsPanel(props) {
|
|
|
123
237
|
// controls, e.g. both panels have a "padding" control, the
|
|
124
238
|
// deregistration of the first panel doesn't occur until after the
|
|
125
239
|
// registration of the next.
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if (index !== -1) {
|
|
130
|
-
newItems.splice(index, 1);
|
|
131
|
-
}
|
|
132
|
-
return newItems;
|
|
133
|
-
});
|
|
134
|
-
}, [setPanelItems]);
|
|
135
|
-
const registerResetAllFilter = useCallback(newFilter => {
|
|
136
|
-
setResetAllFilters(filters => {
|
|
137
|
-
return [...filters, newFilter];
|
|
240
|
+
panelDispatch({
|
|
241
|
+
type: 'UNREGISTER_PANEL',
|
|
242
|
+
label
|
|
138
243
|
});
|
|
139
|
-
}, [
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
244
|
+
}, []);
|
|
245
|
+
const registerResetAllFilter = useCallback(filter => {
|
|
246
|
+
dispatchResetAllFilters({
|
|
247
|
+
type: 'REGISTER',
|
|
248
|
+
filter
|
|
143
249
|
});
|
|
144
|
-
}, [
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
optional: {}
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
// Setup menuItems state as panel items register themselves.
|
|
153
|
-
useEffect(() => {
|
|
154
|
-
setMenuItems(prevState => {
|
|
155
|
-
const items = generateMenuItems({
|
|
156
|
-
panelItems,
|
|
157
|
-
shouldReset: false,
|
|
158
|
-
currentMenuItems: prevState,
|
|
159
|
-
menuItemOrder
|
|
160
|
-
});
|
|
161
|
-
return items;
|
|
250
|
+
}, []);
|
|
251
|
+
const deregisterResetAllFilter = useCallback(filter => {
|
|
252
|
+
dispatchResetAllFilters({
|
|
253
|
+
type: 'UNREGISTER',
|
|
254
|
+
filter
|
|
162
255
|
});
|
|
163
|
-
}, [
|
|
256
|
+
}, []);
|
|
164
257
|
|
|
165
258
|
// Updates the status of the panel’s menu items. For default items the
|
|
166
259
|
// value represents whether it differs from the default and for optional
|
|
167
260
|
// items whether the item is shown.
|
|
168
261
|
const flagItemCustomization = useCallback((value, label, group = 'default') => {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
[label]: value
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
return newState;
|
|
262
|
+
panelDispatch({
|
|
263
|
+
type: 'UPDATE_VALUE',
|
|
264
|
+
group,
|
|
265
|
+
label,
|
|
266
|
+
value
|
|
178
267
|
});
|
|
179
|
-
}, [
|
|
268
|
+
}, []);
|
|
180
269
|
|
|
181
270
|
// Whether all optional menu items are hidden or not must be tracked
|
|
182
271
|
// in order to later determine if the panel display is empty and handle
|
|
183
272
|
// conditional display of a plus icon to indicate the presence of further
|
|
184
273
|
// menu items.
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
const allControlsHidden = !Object.entries(menuItems.optional).some(([, isSelected]) => isSelected);
|
|
189
|
-
setAreAllOptionalControlsHidden(allControlsHidden);
|
|
190
|
-
}
|
|
191
|
-
}, [menuItems, setAreAllOptionalControlsHidden]);
|
|
274
|
+
const areAllOptionalControlsHidden = useMemo(() => {
|
|
275
|
+
return isMenuItemTypeEmpty(menuItems.default) && !isMenuItemTypeEmpty(menuItems.optional) && Object.values(menuItems.optional).every(isSelected => !isSelected);
|
|
276
|
+
}, [menuItems]);
|
|
192
277
|
const cx = useCx();
|
|
193
278
|
const classes = useMemo(() => {
|
|
194
279
|
const wrapperStyle = hasInnerWrapper && styles.ToolsPanelWithInnerWrapper(DEFAULT_COLUMNS);
|
|
195
|
-
const emptyStyle =
|
|
280
|
+
const emptyStyle = areAllOptionalControlsHidden && styles.ToolsPanelHiddenInnerWrapper;
|
|
196
281
|
return cx(styles.ToolsPanel(DEFAULT_COLUMNS), wrapperStyle, emptyStyle, className);
|
|
197
|
-
}, [areAllOptionalControlsHidden, className, cx, hasInnerWrapper
|
|
282
|
+
}, [areAllOptionalControlsHidden, className, cx, hasInnerWrapper]);
|
|
198
283
|
|
|
199
284
|
// Toggle the checked state of a menu item which is then used to determine
|
|
200
285
|
// display of the item within the panel.
|
|
201
286
|
const toggleItem = useCallback(label => {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
const newMenuItems = {
|
|
208
|
-
...menuItems,
|
|
209
|
-
[menuGroup]: {
|
|
210
|
-
...menuItems[menuGroup],
|
|
211
|
-
[label]: !menuItems[menuGroup][label]
|
|
212
|
-
}
|
|
213
|
-
};
|
|
214
|
-
setMenuItems(newMenuItems);
|
|
215
|
-
}, [menuItems, panelItems, setMenuItems]);
|
|
287
|
+
panelDispatch({
|
|
288
|
+
type: 'TOGGLE_VALUE',
|
|
289
|
+
label
|
|
290
|
+
});
|
|
291
|
+
}, []);
|
|
216
292
|
|
|
217
293
|
// Resets display of children and executes resetAll callback if available.
|
|
218
294
|
const resetAllItems = useCallback(() => {
|
|
@@ -222,30 +298,28 @@ export function useToolsPanel(props) {
|
|
|
222
298
|
}
|
|
223
299
|
|
|
224
300
|
// Turn off display of all non-default items.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
menuItemOrder,
|
|
228
|
-
shouldReset: true
|
|
301
|
+
panelDispatch({
|
|
302
|
+
type: 'RESET_ALL'
|
|
229
303
|
});
|
|
230
|
-
|
|
231
|
-
}, [panelItems, resetAllFilters, resetAll, setMenuItems, menuItemOrder]);
|
|
304
|
+
}, [resetAllFilters, resetAll]);
|
|
232
305
|
|
|
233
306
|
// Assist ItemGroup styling when there are potentially hidden placeholder
|
|
234
307
|
// items by identifying first & last items that are toggled on for display.
|
|
235
308
|
const getFirstVisibleItemLabel = items => {
|
|
236
309
|
const optionalItems = menuItems.optional || {};
|
|
237
|
-
const firstItem = items.find(item => item.isShownByDefault ||
|
|
310
|
+
const firstItem = items.find(item => item.isShownByDefault || optionalItems[item.label]);
|
|
238
311
|
return firstItem?.label;
|
|
239
312
|
};
|
|
240
313
|
const firstDisplayedItem = getFirstVisibleItemLabel(panelItems);
|
|
241
314
|
const lastDisplayedItem = getFirstVisibleItemLabel([...panelItems].reverse());
|
|
315
|
+
const hasMenuItems = panelItems.length > 0;
|
|
242
316
|
const panelContext = useMemo(() => ({
|
|
243
317
|
areAllOptionalControlsHidden,
|
|
244
318
|
deregisterPanelItem,
|
|
245
319
|
deregisterResetAllFilter,
|
|
246
320
|
firstDisplayedItem,
|
|
247
321
|
flagItemCustomization,
|
|
248
|
-
hasMenuItems
|
|
322
|
+
hasMenuItems,
|
|
249
323
|
isResetting: isResettingRef.current,
|
|
250
324
|
lastDisplayedItem,
|
|
251
325
|
menuItems,
|
|
@@ -255,7 +329,7 @@ export function useToolsPanel(props) {
|
|
|
255
329
|
shouldRenderPlaceholderItems,
|
|
256
330
|
__experimentalFirstVisibleItemClass,
|
|
257
331
|
__experimentalLastVisibleItemClass
|
|
258
|
-
}), [areAllOptionalControlsHidden, deregisterPanelItem, deregisterResetAllFilter, firstDisplayedItem, flagItemCustomization, lastDisplayedItem, menuItems, panelId,
|
|
332
|
+
}), [areAllOptionalControlsHidden, deregisterPanelItem, deregisterResetAllFilter, firstDisplayedItem, flagItemCustomization, lastDisplayedItem, menuItems, panelId, hasMenuItems, registerResetAllFilter, registerPanelItem, shouldRenderPlaceholderItems, __experimentalFirstVisibleItemClass, __experimentalLastVisibleItemClass]);
|
|
259
333
|
return {
|
|
260
334
|
...otherProps,
|
|
261
335
|
headingLevel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","styles","useContextSystem","useCx","DEFAULT_COLUMNS","generateMenuItems","panelItems","shouldReset","currentMenuItems","menuItemOrder","newMenuItems","default","optional","menuItems","forEach","hasValue","isShownByDefault","label","group","existingItemValue","value","key","hasOwnProperty","Object","keys","isMenuItemTypeEmpty","obj","length","useToolsPanel","props","className","headingLevel","resetAll","panelId","hasInnerWrapper","shouldRenderPlaceholderItems","__experimentalFirstVisibleItemClass","__experimentalLastVisibleItemClass","otherProps","isResettingRef","wasResetting","current","setPanelItems","setMenuItemOrder","resetAllFilters","setResetAllFilters","registerPanelItem","item","items","newItems","existingIndex","findIndex","oldItem","splice","includes","deregisterPanelItem","index","registerResetAllFilter","newFilter","filters","deregisterResetAllFilter","filterToRemove","filter","setMenuItems","prevState","flagItemCustomization","newState","areAllOptionalControlsHidden","setAreAllOptionalControlsHidden","allControlsHidden","entries","some","isSelected","cx","classes","wrapperStyle","ToolsPanelWithInnerWrapper","emptyStyle","ToolsPanelHiddenInnerWrapper","ToolsPanel","toggleItem","currentItem","find","menuGroup","resetAllItems","resetMenuItems","getFirstVisibleItemLabel","optionalItems","firstItem","firstDisplayedItem","lastDisplayedItem","reverse","panelContext","hasMenuItems","isResetting"],"sources":["@wordpress/components/src/tools-panel/tools-panel/hook.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport type { WordPressComponentProps } from '../../context';\nimport { useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport type {\n\tToolsPanelItem,\n\tToolsPanelMenuItemKey,\n\tToolsPanelMenuItems,\n\tToolsPanelMenuItemsConfig,\n\tToolsPanelProps,\n\tResetAllFilter,\n} from '../types';\n\nconst DEFAULT_COLUMNS = 2;\n\nconst generateMenuItems = ( {\n\tpanelItems,\n\tshouldReset,\n\tcurrentMenuItems,\n\tmenuItemOrder,\n}: ToolsPanelMenuItemsConfig ) => {\n\tconst newMenuItems: ToolsPanelMenuItems = { default: {}, optional: {} };\n\tconst menuItems: ToolsPanelMenuItems = { default: {}, optional: {} };\n\n\tpanelItems.forEach( ( { hasValue, isShownByDefault, label } ) => {\n\t\tconst group = isShownByDefault ? 'default' : 'optional';\n\n\t\t// If a menu item for this label has already been flagged as customized\n\t\t// (for default controls), or toggled on (for optional controls), do not\n\t\t// overwrite its value as those controls would lose that state.\n\t\tconst existingItemValue = currentMenuItems?.[ group ]?.[ label ];\n\t\tconst value = existingItemValue ? existingItemValue : hasValue();\n\n\t\tnewMenuItems[ group ][ label ] = shouldReset ? false : value;\n\t} );\n\n\t// Loop the known, previously registered items first to maintain menu order.\n\tmenuItemOrder.forEach( ( key ) => {\n\t\tif ( newMenuItems.default.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.default[ key ] = newMenuItems.default[ key ];\n\t\t}\n\n\t\tif ( newMenuItems.optional.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.optional[ key ] = newMenuItems.optional[ key ];\n\t\t}\n\t} );\n\n\t// Loop newMenuItems object adding any that aren't in the known items order.\n\tObject.keys( newMenuItems.default ).forEach( ( key ) => {\n\t\tif ( ! menuItems.default.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.default[ key ] = newMenuItems.default[ key ];\n\t\t}\n\t} );\n\n\tObject.keys( newMenuItems.optional ).forEach( ( key ) => {\n\t\tif ( ! menuItems.optional.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.optional[ key ] = newMenuItems.optional[ key ];\n\t\t}\n\t} );\n\n\treturn menuItems;\n};\n\nconst isMenuItemTypeEmpty = (\n\tobj?: ToolsPanelMenuItems[ ToolsPanelMenuItemKey ]\n) => obj && Object.keys( obj ).length === 0;\n\nexport function useToolsPanel(\n\tprops: WordPressComponentProps< ToolsPanelProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\theadingLevel = 2,\n\t\tresetAll,\n\t\tpanelId,\n\t\thasInnerWrapper = false,\n\t\tshouldRenderPlaceholderItems = false,\n\t\t__experimentalFirstVisibleItemClass,\n\t\t__experimentalLastVisibleItemClass,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ToolsPanel' );\n\n\tconst isResettingRef = useRef( false );\n\tconst wasResetting = isResettingRef.current;\n\n\t// `isResettingRef` is cleared via this hook to effectively batch together\n\t// the resetAll task. Without this, the flag is cleared after the first\n\t// control updates and forces a rerender with subsequent controls then\n\t// believing they need to reset, unfortunately using stale data.\n\tuseEffect( () => {\n\t\tif ( wasResetting ) {\n\t\t\tisResettingRef.current = false;\n\t\t}\n\t}, [ wasResetting ] );\n\n\t// Allow panel items to register themselves.\n\tconst [ panelItems, setPanelItems ] = useState< ToolsPanelItem[] >( [] );\n\tconst [ menuItemOrder, setMenuItemOrder ] = useState< string[] >( [] );\n\tconst [ resetAllFilters, setResetAllFilters ] = useState<\n\t\tResetAllFilter[]\n\t>( [] );\n\n\tconst registerPanelItem = useCallback(\n\t\t( item: ToolsPanelItem ) => {\n\t\t\t// Add item to panel items.\n\t\t\tsetPanelItems( ( items ) => {\n\t\t\t\tconst newItems = [ ...items ];\n\t\t\t\t// If an item with this label has already been registered, remove it\n\t\t\t\t// first. This can happen when an item is moved between the default\n\t\t\t\t// and optional groups.\n\t\t\t\tconst existingIndex = newItems.findIndex(\n\t\t\t\t\t( oldItem ) => oldItem.label === item.label\n\t\t\t\t);\n\t\t\t\tif ( existingIndex !== -1 ) {\n\t\t\t\t\tnewItems.splice( existingIndex, 1 );\n\t\t\t\t}\n\t\t\t\treturn [ ...newItems, item ];\n\t\t\t} );\n\n\t\t\t// Track the initial order of item registration. This is used for\n\t\t\t// maintaining menu item order later.\n\t\t\tsetMenuItemOrder( ( items ) => {\n\t\t\t\tif ( items.includes( item.label ) ) {\n\t\t\t\t\treturn items;\n\t\t\t\t}\n\n\t\t\t\treturn [ ...items, item.label ];\n\t\t\t} );\n\t\t},\n\t\t[ setPanelItems, setMenuItemOrder ]\n\t);\n\n\t// Panels need to deregister on unmount to avoid orphans in menu state.\n\t// This is an issue when panel items are being injected via SlotFills.\n\tconst deregisterPanelItem = useCallback(\n\t\t( label: string ) => {\n\t\t\t// When switching selections between components injecting matching\n\t\t\t// controls, e.g. both panels have a \"padding\" control, the\n\t\t\t// deregistration of the first panel doesn't occur until after the\n\t\t\t// registration of the next.\n\t\t\tsetPanelItems( ( items ) => {\n\t\t\t\tconst newItems = [ ...items ];\n\t\t\t\tconst index = newItems.findIndex(\n\t\t\t\t\t( item ) => item.label === label\n\t\t\t\t);\n\t\t\t\tif ( index !== -1 ) {\n\t\t\t\t\tnewItems.splice( index, 1 );\n\t\t\t\t}\n\t\t\t\treturn newItems;\n\t\t\t} );\n\t\t},\n\t\t[ setPanelItems ]\n\t);\n\n\tconst registerResetAllFilter = useCallback(\n\t\t( newFilter: ResetAllFilter ) => {\n\t\t\tsetResetAllFilters( ( filters ) => {\n\t\t\t\treturn [ ...filters, newFilter ];\n\t\t\t} );\n\t\t},\n\t\t[ setResetAllFilters ]\n\t);\n\n\tconst deregisterResetAllFilter = useCallback(\n\t\t( filterToRemove: ResetAllFilter ) => {\n\t\t\tsetResetAllFilters( ( filters ) => {\n\t\t\t\treturn filters.filter(\n\t\t\t\t\t( filter ) => filter !== filterToRemove\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ setResetAllFilters ]\n\t);\n\n\t// Manage and share display state of menu items representing child controls.\n\tconst [ menuItems, setMenuItems ] = useState< ToolsPanelMenuItems >( {\n\t\tdefault: {},\n\t\toptional: {},\n\t} );\n\n\t// Setup menuItems state as panel items register themselves.\n\tuseEffect( () => {\n\t\tsetMenuItems( ( prevState ) => {\n\t\t\tconst items = generateMenuItems( {\n\t\t\t\tpanelItems,\n\t\t\t\tshouldReset: false,\n\t\t\t\tcurrentMenuItems: prevState,\n\t\t\t\tmenuItemOrder,\n\t\t\t} );\n\t\t\treturn items;\n\t\t} );\n\t}, [ panelItems, setMenuItems, menuItemOrder ] );\n\n\t// Updates the status of the panel’s menu items. For default items the\n\t// value represents whether it differs from the default and for optional\n\t// items whether the item is shown.\n\tconst flagItemCustomization = useCallback(\n\t\t(\n\t\t\tvalue: boolean,\n\t\t\tlabel: string,\n\t\t\tgroup: ToolsPanelMenuItemKey = 'default'\n\t\t) => {\n\t\t\tsetMenuItems( ( items ) => {\n\t\t\t\tconst newState = {\n\t\t\t\t\t...items,\n\t\t\t\t\t[ group ]: {\n\t\t\t\t\t\t...items[ group ],\n\t\t\t\t\t\t[ label ]: value,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\treturn newState;\n\t\t\t} );\n\t\t},\n\t\t[ setMenuItems ]\n\t);\n\n\t// Whether all optional menu items are hidden or not must be tracked\n\t// in order to later determine if the panel display is empty and handle\n\t// conditional display of a plus icon to indicate the presence of further\n\t// menu items.\n\tconst [ areAllOptionalControlsHidden, setAreAllOptionalControlsHidden ] =\n\t\tuseState( false );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisMenuItemTypeEmpty( menuItems?.default ) &&\n\t\t\t! isMenuItemTypeEmpty( menuItems?.optional )\n\t\t) {\n\t\t\tconst allControlsHidden = ! Object.entries(\n\t\t\t\tmenuItems.optional\n\t\t\t).some( ( [ , isSelected ] ) => isSelected );\n\t\t\tsetAreAllOptionalControlsHidden( allControlsHidden );\n\t\t}\n\t}, [ menuItems, setAreAllOptionalControlsHidden ] );\n\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\tconst wrapperStyle =\n\t\t\thasInnerWrapper &&\n\t\t\tstyles.ToolsPanelWithInnerWrapper( DEFAULT_COLUMNS );\n\t\tconst emptyStyle =\n\t\t\tisMenuItemTypeEmpty( menuItems?.default ) &&\n\t\t\tareAllOptionalControlsHidden &&\n\t\t\tstyles.ToolsPanelHiddenInnerWrapper;\n\n\t\treturn cx(\n\t\t\tstyles.ToolsPanel( DEFAULT_COLUMNS ),\n\t\t\twrapperStyle,\n\t\t\temptyStyle,\n\t\t\tclassName\n\t\t);\n\t}, [\n\t\tareAllOptionalControlsHidden,\n\t\tclassName,\n\t\tcx,\n\t\thasInnerWrapper,\n\t\tmenuItems,\n\t] );\n\n\t// Toggle the checked state of a menu item which is then used to determine\n\t// display of the item within the panel.\n\tconst toggleItem = useCallback(\n\t\t( label: string ) => {\n\t\t\tconst currentItem = panelItems.find(\n\t\t\t\t( item ) => item.label === label\n\t\t\t);\n\n\t\t\tif ( ! currentItem ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst menuGroup = currentItem.isShownByDefault\n\t\t\t\t? 'default'\n\t\t\t\t: 'optional';\n\n\t\t\tconst newMenuItems = {\n\t\t\t\t...menuItems,\n\t\t\t\t[ menuGroup ]: {\n\t\t\t\t\t...menuItems[ menuGroup ],\n\t\t\t\t\t[ label ]: ! menuItems[ menuGroup ][ label ],\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tsetMenuItems( newMenuItems );\n\t\t},\n\t\t[ menuItems, panelItems, setMenuItems ]\n\t);\n\n\t// Resets display of children and executes resetAll callback if available.\n\tconst resetAllItems = useCallback( () => {\n\t\tif ( typeof resetAll === 'function' ) {\n\t\t\tisResettingRef.current = true;\n\t\t\tresetAll( resetAllFilters );\n\t\t}\n\n\t\t// Turn off display of all non-default items.\n\t\tconst resetMenuItems = generateMenuItems( {\n\t\t\tpanelItems,\n\t\t\tmenuItemOrder,\n\t\t\tshouldReset: true,\n\t\t} );\n\t\tsetMenuItems( resetMenuItems );\n\t}, [ panelItems, resetAllFilters, resetAll, setMenuItems, menuItemOrder ] );\n\n\t// Assist ItemGroup styling when there are potentially hidden placeholder\n\t// items by identifying first & last items that are toggled on for display.\n\tconst getFirstVisibleItemLabel = ( items: ToolsPanelItem[] ) => {\n\t\tconst optionalItems = menuItems.optional || {};\n\t\tconst firstItem = items.find(\n\t\t\t( item ) => item.isShownByDefault || !! optionalItems[ item.label ]\n\t\t);\n\n\t\treturn firstItem?.label;\n\t};\n\n\tconst firstDisplayedItem = getFirstVisibleItemLabel( panelItems );\n\tconst lastDisplayedItem = getFirstVisibleItemLabel(\n\t\t[ ...panelItems ].reverse()\n\t);\n\n\tconst panelContext = useMemo(\n\t\t() => ( {\n\t\t\tareAllOptionalControlsHidden,\n\t\t\tderegisterPanelItem,\n\t\t\tderegisterResetAllFilter,\n\t\t\tfirstDisplayedItem,\n\t\t\tflagItemCustomization,\n\t\t\thasMenuItems: !! panelItems.length,\n\t\t\tisResetting: isResettingRef.current,\n\t\t\tlastDisplayedItem,\n\t\t\tmenuItems,\n\t\t\tpanelId,\n\t\t\tregisterPanelItem,\n\t\t\tregisterResetAllFilter,\n\t\t\tshouldRenderPlaceholderItems,\n\t\t\t__experimentalFirstVisibleItemClass,\n\t\t\t__experimentalLastVisibleItemClass,\n\t\t} ),\n\t\t[\n\t\t\tareAllOptionalControlsHidden,\n\t\t\tderegisterPanelItem,\n\t\t\tderegisterResetAllFilter,\n\t\t\tfirstDisplayedItem,\n\t\t\tflagItemCustomization,\n\t\t\tlastDisplayedItem,\n\t\t\tmenuItems,\n\t\t\tpanelId,\n\t\t\tpanelItems,\n\t\t\tregisterResetAllFilter,\n\t\t\tregisterPanelItem,\n\t\t\tshouldRenderPlaceholderItems,\n\t\t\t__experimentalFirstVisibleItemClass,\n\t\t\t__experimentalLastVisibleItemClass,\n\t\t]\n\t);\n\n\treturn {\n\t\t...otherProps,\n\t\theadingLevel,\n\t\tpanelContext,\n\t\tresetAllItems,\n\t\ttoggleItem,\n\t\tclassName: classes,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useReducer","useRef","styles","useContextSystem","useCx","DEFAULT_COLUMNS","emptyMenuItems","default","optional","emptyState","panelItems","menuItemOrder","menuItems","generateMenuItems","shouldReset","currentMenuItems","newMenuItems","forEach","hasValue","isShownByDefault","label","group","existingItemValue","value","key","hasOwnProperty","Object","keys","panelItemsReducer","action","type","newItems","existingIndex","findIndex","oldItem","item","splice","push","index","menuItemOrderReducer","includes","menuItemsReducer","state","oldValue","currentItem","find","menuGroup","panelReducer","resetAllFiltersReducer","filters","filter","f","isMenuItemTypeEmpty","obj","length","useToolsPanel","props","className","headingLevel","resetAll","panelId","hasInnerWrapper","shouldRenderPlaceholderItems","__experimentalFirstVisibleItemClass","__experimentalLastVisibleItemClass","otherProps","isResettingRef","wasResetting","current","panelDispatch","undefined","resetAllFilters","dispatchResetAllFilters","registerPanelItem","deregisterPanelItem","registerResetAllFilter","deregisterResetAllFilter","flagItemCustomization","areAllOptionalControlsHidden","values","every","isSelected","cx","classes","wrapperStyle","ToolsPanelWithInnerWrapper","emptyStyle","ToolsPanelHiddenInnerWrapper","ToolsPanel","toggleItem","resetAllItems","getFirstVisibleItemLabel","items","optionalItems","firstItem","firstDisplayedItem","lastDisplayedItem","reverse","hasMenuItems","panelContext","isResetting"],"sources":["@wordpress/components/src/tools-panel/tools-panel/hook.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseReducer,\n\tuseRef,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport type { WordPressComponentProps } from '../../context';\nimport { useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport type {\n\tToolsPanelItem,\n\tToolsPanelMenuItemKey,\n\tToolsPanelMenuItems,\n\tToolsPanelMenuItemsConfig,\n\tToolsPanelProps,\n\tResetAllFilter,\n} from '../types';\n\nconst DEFAULT_COLUMNS = 2;\n\ntype PanelItemsState = {\n\tpanelItems: ToolsPanelItem[];\n\tmenuItemOrder: string[];\n\tmenuItems: ToolsPanelMenuItems;\n};\n\ntype PanelItemsAction =\n\t| { type: 'REGISTER_PANEL'; item: ToolsPanelItem }\n\t| { type: 'UNREGISTER_PANEL'; label: string }\n\t| {\n\t\t\ttype: 'UPDATE_VALUE';\n\t\t\tgroup: ToolsPanelMenuItemKey;\n\t\t\tlabel: string;\n\t\t\tvalue: boolean;\n\t }\n\t| { type: 'TOGGLE_VALUE'; label: string }\n\t| { type: 'RESET_ALL' };\n\nfunction emptyMenuItems(): ToolsPanelMenuItems {\n\treturn { default: {}, optional: {} };\n}\n\nfunction emptyState(): PanelItemsState {\n\treturn { panelItems: [], menuItemOrder: [], menuItems: emptyMenuItems() };\n}\n\nconst generateMenuItems = ( {\n\tpanelItems,\n\tshouldReset,\n\tcurrentMenuItems,\n\tmenuItemOrder,\n}: ToolsPanelMenuItemsConfig ) => {\n\tconst newMenuItems: ToolsPanelMenuItems = emptyMenuItems();\n\tconst menuItems: ToolsPanelMenuItems = emptyMenuItems();\n\n\tpanelItems.forEach( ( { hasValue, isShownByDefault, label } ) => {\n\t\tconst group = isShownByDefault ? 'default' : 'optional';\n\n\t\t// If a menu item for this label has already been flagged as customized\n\t\t// (for default controls), or toggled on (for optional controls), do not\n\t\t// overwrite its value as those controls would lose that state.\n\t\tconst existingItemValue = currentMenuItems?.[ group ]?.[ label ];\n\t\tconst value = existingItemValue ? existingItemValue : hasValue();\n\n\t\tnewMenuItems[ group ][ label ] = shouldReset ? false : value;\n\t} );\n\n\t// Loop the known, previously registered items first to maintain menu order.\n\tmenuItemOrder.forEach( ( key ) => {\n\t\tif ( newMenuItems.default.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.default[ key ] = newMenuItems.default[ key ];\n\t\t}\n\n\t\tif ( newMenuItems.optional.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.optional[ key ] = newMenuItems.optional[ key ];\n\t\t}\n\t} );\n\n\t// Loop newMenuItems object adding any that aren't in the known items order.\n\tObject.keys( newMenuItems.default ).forEach( ( key ) => {\n\t\tif ( ! menuItems.default.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.default[ key ] = newMenuItems.default[ key ];\n\t\t}\n\t} );\n\n\tObject.keys( newMenuItems.optional ).forEach( ( key ) => {\n\t\tif ( ! menuItems.optional.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.optional[ key ] = newMenuItems.optional[ key ];\n\t\t}\n\t} );\n\n\treturn menuItems;\n};\n\nfunction panelItemsReducer(\n\tpanelItems: ToolsPanelItem[],\n\taction: PanelItemsAction\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL': {\n\t\t\tconst newItems = [ ...panelItems ];\n\t\t\t// If an item with this label has already been registered, remove it\n\t\t\t// first. This can happen when an item is moved between the default\n\t\t\t// and optional groups.\n\t\t\tconst existingIndex = newItems.findIndex(\n\t\t\t\t( oldItem ) => oldItem.label === action.item.label\n\t\t\t);\n\t\t\tif ( existingIndex !== -1 ) {\n\t\t\t\tnewItems.splice( existingIndex, 1 );\n\t\t\t}\n\t\t\tnewItems.push( action.item );\n\t\t\treturn newItems;\n\t\t}\n\t\tcase 'UNREGISTER_PANEL': {\n\t\t\tconst index = panelItems.findIndex(\n\t\t\t\t( item ) => item.label === action.label\n\t\t\t);\n\t\t\tif ( index !== -1 ) {\n\t\t\t\tconst newItems = [ ...panelItems ];\n\t\t\t\tnewItems.splice( index, 1 );\n\t\t\t\treturn newItems;\n\t\t\t}\n\t\t\treturn panelItems;\n\t\t}\n\t\tdefault:\n\t\t\treturn panelItems;\n\t}\n}\n\nfunction menuItemOrderReducer(\n\tmenuItemOrder: string[],\n\taction: PanelItemsAction\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL': {\n\t\t\t// Track the initial order of item registration. This is used for\n\t\t\t// maintaining menu item order later.\n\t\t\tif ( menuItemOrder.includes( action.item.label ) ) {\n\t\t\t\treturn menuItemOrder;\n\t\t\t}\n\n\t\t\treturn [ ...menuItemOrder, action.item.label ];\n\t\t}\n\t\tdefault:\n\t\t\treturn menuItemOrder;\n\t}\n}\n\nfunction menuItemsReducer( state: PanelItemsState, action: PanelItemsAction ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL':\n\t\tcase 'UNREGISTER_PANEL':\n\t\t\t// generate new menu items from original `menuItems` and updated `panelItems` and `menuItemOrder`\n\t\t\treturn generateMenuItems( {\n\t\t\t\tcurrentMenuItems: state.menuItems,\n\t\t\t\tpanelItems: state.panelItems,\n\t\t\t\tmenuItemOrder: state.menuItemOrder,\n\t\t\t\tshouldReset: false,\n\t\t\t} );\n\t\tcase 'RESET_ALL':\n\t\t\treturn generateMenuItems( {\n\t\t\t\tpanelItems: state.panelItems,\n\t\t\t\tmenuItemOrder: state.menuItemOrder,\n\t\t\t\tshouldReset: true,\n\t\t\t} );\n\t\tcase 'UPDATE_VALUE': {\n\t\t\tconst oldValue = state.menuItems[ action.group ][ action.label ];\n\t\t\tif ( action.value === oldValue ) {\n\t\t\t\treturn state.menuItems;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state.menuItems,\n\t\t\t\t[ action.group ]: {\n\t\t\t\t\t...state.menuItems[ action.group ],\n\t\t\t\t\t[ action.label ]: action.value,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\tcase 'TOGGLE_VALUE': {\n\t\t\tconst currentItem = state.panelItems.find(\n\t\t\t\t( item ) => item.label === action.label\n\t\t\t);\n\n\t\t\tif ( ! currentItem ) {\n\t\t\t\treturn state.menuItems;\n\t\t\t}\n\n\t\t\tconst menuGroup = currentItem.isShownByDefault\n\t\t\t\t? 'default'\n\t\t\t\t: 'optional';\n\n\t\t\tconst newMenuItems = {\n\t\t\t\t...state.menuItems,\n\t\t\t\t[ menuGroup ]: {\n\t\t\t\t\t...state.menuItems[ menuGroup ],\n\t\t\t\t\t[ action.label ]:\n\t\t\t\t\t\t! state.menuItems[ menuGroup ][ action.label ],\n\t\t\t\t},\n\t\t\t};\n\t\t\treturn newMenuItems;\n\t\t}\n\n\t\tdefault:\n\t\t\treturn state.menuItems;\n\t}\n}\n\nfunction panelReducer( state: PanelItemsState, action: PanelItemsAction ) {\n\tconst panelItems = panelItemsReducer( state.panelItems, action );\n\tconst menuItemOrder = menuItemOrderReducer( state.menuItemOrder, action );\n\t// `menuItemsReducer` is a bit unusual because it generates new state from original `menuItems`\n\t// and the updated `panelItems` and `menuItemOrder`.\n\tconst menuItems = menuItemsReducer(\n\t\t{ panelItems, menuItemOrder, menuItems: state.menuItems },\n\t\taction\n\t);\n\n\treturn { panelItems, menuItemOrder, menuItems };\n}\n\nfunction resetAllFiltersReducer(\n\tfilters: ResetAllFilter[],\n\taction: { type: 'REGISTER' | 'UNREGISTER'; filter: ResetAllFilter }\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER':\n\t\t\treturn [ ...filters, action.filter ];\n\t\tcase 'UNREGISTER':\n\t\t\treturn filters.filter( ( f ) => f !== action.filter );\n\t\tdefault:\n\t\t\treturn filters;\n\t}\n}\n\nconst isMenuItemTypeEmpty = (\n\tobj: ToolsPanelMenuItems[ ToolsPanelMenuItemKey ]\n) => Object.keys( obj ).length === 0;\n\nexport function useToolsPanel(\n\tprops: WordPressComponentProps< ToolsPanelProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\theadingLevel = 2,\n\t\tresetAll,\n\t\tpanelId,\n\t\thasInnerWrapper = false,\n\t\tshouldRenderPlaceholderItems = false,\n\t\t__experimentalFirstVisibleItemClass,\n\t\t__experimentalLastVisibleItemClass,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ToolsPanel' );\n\n\tconst isResettingRef = useRef( false );\n\tconst wasResetting = isResettingRef.current;\n\n\t// `isResettingRef` is cleared via this hook to effectively batch together\n\t// the resetAll task. Without this, the flag is cleared after the first\n\t// control updates and forces a rerender with subsequent controls then\n\t// believing they need to reset, unfortunately using stale data.\n\tuseEffect( () => {\n\t\tif ( wasResetting ) {\n\t\t\tisResettingRef.current = false;\n\t\t}\n\t}, [ wasResetting ] );\n\n\t// Allow panel items to register themselves.\n\tconst [ { panelItems, menuItems }, panelDispatch ] = useReducer(\n\t\tpanelReducer,\n\t\tundefined,\n\t\temptyState\n\t);\n\n\tconst [ resetAllFilters, dispatchResetAllFilters ] = useReducer(\n\t\tresetAllFiltersReducer,\n\t\t[]\n\t);\n\n\tconst registerPanelItem = useCallback( ( item: ToolsPanelItem ) => {\n\t\t// Add item to panel items.\n\t\tpanelDispatch( { type: 'REGISTER_PANEL', item } );\n\t}, [] );\n\n\t// Panels need to deregister on unmount to avoid orphans in menu state.\n\t// This is an issue when panel items are being injected via SlotFills.\n\tconst deregisterPanelItem = useCallback( ( label: string ) => {\n\t\t// When switching selections between components injecting matching\n\t\t// controls, e.g. both panels have a \"padding\" control, the\n\t\t// deregistration of the first panel doesn't occur until after the\n\t\t// registration of the next.\n\t\tpanelDispatch( { type: 'UNREGISTER_PANEL', label } );\n\t}, [] );\n\n\tconst registerResetAllFilter = useCallback( ( filter: ResetAllFilter ) => {\n\t\tdispatchResetAllFilters( { type: 'REGISTER', filter } );\n\t}, [] );\n\n\tconst deregisterResetAllFilter = useCallback(\n\t\t( filter: ResetAllFilter ) => {\n\t\t\tdispatchResetAllFilters( { type: 'UNREGISTER', filter } );\n\t\t},\n\t\t[]\n\t);\n\n\t// Updates the status of the panel’s menu items. For default items the\n\t// value represents whether it differs from the default and for optional\n\t// items whether the item is shown.\n\tconst flagItemCustomization = useCallback(\n\t\t(\n\t\t\tvalue: boolean,\n\t\t\tlabel: string,\n\t\t\tgroup: ToolsPanelMenuItemKey = 'default'\n\t\t) => {\n\t\t\tpanelDispatch( { type: 'UPDATE_VALUE', group, label, value } );\n\t\t},\n\t\t[]\n\t);\n\n\t// Whether all optional menu items are hidden or not must be tracked\n\t// in order to later determine if the panel display is empty and handle\n\t// conditional display of a plus icon to indicate the presence of further\n\t// menu items.\n\tconst areAllOptionalControlsHidden = useMemo( () => {\n\t\treturn (\n\t\t\tisMenuItemTypeEmpty( menuItems.default ) &&\n\t\t\t! isMenuItemTypeEmpty( menuItems.optional ) &&\n\t\t\tObject.values( menuItems.optional ).every(\n\t\t\t\t( isSelected ) => ! isSelected\n\t\t\t)\n\t\t);\n\t}, [ menuItems ] );\n\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\tconst wrapperStyle =\n\t\t\thasInnerWrapper &&\n\t\t\tstyles.ToolsPanelWithInnerWrapper( DEFAULT_COLUMNS );\n\t\tconst emptyStyle =\n\t\t\tareAllOptionalControlsHidden && styles.ToolsPanelHiddenInnerWrapper;\n\n\t\treturn cx(\n\t\t\tstyles.ToolsPanel( DEFAULT_COLUMNS ),\n\t\t\twrapperStyle,\n\t\t\temptyStyle,\n\t\t\tclassName\n\t\t);\n\t}, [ areAllOptionalControlsHidden, className, cx, hasInnerWrapper ] );\n\n\t// Toggle the checked state of a menu item which is then used to determine\n\t// display of the item within the panel.\n\tconst toggleItem = useCallback( ( label: string ) => {\n\t\tpanelDispatch( { type: 'TOGGLE_VALUE', label } );\n\t}, [] );\n\n\t// Resets display of children and executes resetAll callback if available.\n\tconst resetAllItems = useCallback( () => {\n\t\tif ( typeof resetAll === 'function' ) {\n\t\t\tisResettingRef.current = true;\n\t\t\tresetAll( resetAllFilters );\n\t\t}\n\n\t\t// Turn off display of all non-default items.\n\t\tpanelDispatch( { type: 'RESET_ALL' } );\n\t}, [ resetAllFilters, resetAll ] );\n\n\t// Assist ItemGroup styling when there are potentially hidden placeholder\n\t// items by identifying first & last items that are toggled on for display.\n\tconst getFirstVisibleItemLabel = ( items: ToolsPanelItem[] ) => {\n\t\tconst optionalItems = menuItems.optional || {};\n\t\tconst firstItem = items.find(\n\t\t\t( item ) => item.isShownByDefault || optionalItems[ item.label ]\n\t\t);\n\n\t\treturn firstItem?.label;\n\t};\n\n\tconst firstDisplayedItem = getFirstVisibleItemLabel( panelItems );\n\tconst lastDisplayedItem = getFirstVisibleItemLabel(\n\t\t[ ...panelItems ].reverse()\n\t);\n\n\tconst hasMenuItems = panelItems.length > 0;\n\n\tconst panelContext = useMemo(\n\t\t() => ( {\n\t\t\tareAllOptionalControlsHidden,\n\t\t\tderegisterPanelItem,\n\t\t\tderegisterResetAllFilter,\n\t\t\tfirstDisplayedItem,\n\t\t\tflagItemCustomization,\n\t\t\thasMenuItems,\n\t\t\tisResetting: isResettingRef.current,\n\t\t\tlastDisplayedItem,\n\t\t\tmenuItems,\n\t\t\tpanelId,\n\t\t\tregisterPanelItem,\n\t\t\tregisterResetAllFilter,\n\t\t\tshouldRenderPlaceholderItems,\n\t\t\t__experimentalFirstVisibleItemClass,\n\t\t\t__experimentalLastVisibleItemClass,\n\t\t} ),\n\t\t[\n\t\t\tareAllOptionalControlsHidden,\n\t\t\tderegisterPanelItem,\n\t\t\tderegisterResetAllFilter,\n\t\t\tfirstDisplayedItem,\n\t\t\tflagItemCustomization,\n\t\t\tlastDisplayedItem,\n\t\t\tmenuItems,\n\t\t\tpanelId,\n\t\t\thasMenuItems,\n\t\t\tregisterResetAllFilter,\n\t\t\tregisterPanelItem,\n\t\t\tshouldRenderPlaceholderItems,\n\t\t\t__experimentalFirstVisibleItemClass,\n\t\t\t__experimentalLastVisibleItemClass,\n\t\t]\n\t);\n\n\treturn {\n\t\t...otherProps,\n\t\theadingLevel,\n\t\tpanelContext,\n\t\tresetAllItems,\n\t\ttoggleItem,\n\t\tclassName: classes,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,8 +5,6 @@ import { space } from './space';
|
|
|
5
5
|
import { COLORS } from './colors-values';
|
|
6
6
|
const CONTROL_HEIGHT = '36px';
|
|
7
7
|
const CONTROL_PROPS = {
|
|
8
|
-
controlSurfaceColor: COLORS.white,
|
|
9
|
-
controlTextActiveColor: COLORS.theme.accent,
|
|
10
8
|
// These values should be shared with TextControl.
|
|
11
9
|
controlPaddingX: 12,
|
|
12
10
|
controlPaddingXSmall: 8,
|
|
@@ -14,26 +12,17 @@ const CONTROL_PROPS = {
|
|
|
14
12
|
// TODO: Deprecate
|
|
15
13
|
|
|
16
14
|
controlBackgroundColor: COLORS.white,
|
|
17
|
-
controlBoxShadow: 'transparent',
|
|
18
15
|
controlBoxShadowFocus: `0 0 0 0.5px ${COLORS.theme.accent}`,
|
|
19
|
-
controlDestructiveBorderColor: COLORS.alert.red,
|
|
20
16
|
controlHeight: CONTROL_HEIGHT,
|
|
21
17
|
controlHeightXSmall: `calc( ${CONTROL_HEIGHT} * 0.6 )`,
|
|
22
18
|
controlHeightSmall: `calc( ${CONTROL_HEIGHT} * 0.8 )`,
|
|
23
19
|
controlHeightLarge: `calc( ${CONTROL_HEIGHT} * 1.2 )`,
|
|
24
20
|
controlHeightXLarge: `calc( ${CONTROL_HEIGHT} * 1.4 )`
|
|
25
21
|
};
|
|
26
|
-
const TOGGLE_GROUP_CONTROL_PROPS = {
|
|
27
|
-
toggleGroupControlBackgroundColor: CONTROL_PROPS.controlBackgroundColor,
|
|
28
|
-
toggleGroupControlBorderColor: COLORS.ui.border,
|
|
29
|
-
toggleGroupControlBackdropBackgroundColor: CONTROL_PROPS.controlSurfaceColor,
|
|
30
|
-
toggleGroupControlBackdropBorderColor: COLORS.ui.border,
|
|
31
|
-
toggleGroupControlButtonColorActive: CONTROL_PROPS.controlBackgroundColor
|
|
32
|
-
};
|
|
33
22
|
|
|
34
23
|
// Using Object.assign to avoid creating circular references when emitting
|
|
35
24
|
// TypeScript type declarations.
|
|
36
|
-
export default Object.assign({}, CONTROL_PROPS,
|
|
25
|
+
export default Object.assign({}, CONTROL_PROPS, {
|
|
37
26
|
colorDivider: 'rgba(0, 0, 0, 0.1)',
|
|
38
27
|
colorScrollbarThumb: 'rgba(0, 0, 0, 0.2)',
|
|
39
28
|
colorScrollbarThumbHover: 'rgba(0, 0, 0, 0.5)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["space","COLORS","CONTROL_HEIGHT","CONTROL_PROPS","
|
|
1
|
+
{"version":3,"names":["space","COLORS","CONTROL_HEIGHT","CONTROL_PROPS","controlPaddingX","controlPaddingXSmall","controlPaddingXLarge","controlBackgroundColor","white","controlBoxShadowFocus","theme","accent","controlHeight","controlHeightXSmall","controlHeightSmall","controlHeightLarge","controlHeightXLarge","Object","assign","colorDivider","colorScrollbarThumb","colorScrollbarThumbHover","colorScrollbarTrack","elevationIntensity","radiusXSmall","radiusSmall","radiusMedium","radiusLarge","radiusFull","radiusRound","borderWidth","borderWidthFocus","borderWidthTab","spinnerSize","fontSize","fontSizeH1","fontSizeH2","fontSizeH3","fontSizeH4","fontSizeH5","fontSizeH6","fontSizeInputMobile","fontSizeMobile","fontSizeSmall","fontSizeXSmall","fontLineHeightBase","fontWeight","fontWeightHeading","gridBase","cardPaddingXSmall","cardPaddingSmall","cardPaddingMedium","cardPaddingLarge","elevationXSmall","elevationSmall","elevationMedium","elevationLarge","surfaceBackgroundColor","surfaceBackgroundSubtleColor","surfaceBackgroundTintColor","surfaceBorderColor","surfaceBorderBoldColor","surfaceBorderSubtleColor","surfaceBackgroundTertiaryColor","surfaceColor","transitionDuration","transitionDurationFast","transitionDurationFaster","transitionDurationFastest","transitionTimingFunction","transitionTimingFunctionControl"],"sources":["@wordpress/components/src/utils/config-values.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { space } from './space';\nimport { COLORS } from './colors-values';\n\nconst CONTROL_HEIGHT = '36px';\n\nconst CONTROL_PROPS = {\n\t// These values should be shared with TextControl.\n\tcontrolPaddingX: 12,\n\tcontrolPaddingXSmall: 8,\n\tcontrolPaddingXLarge: 12 * 1.3334, // TODO: Deprecate\n\n\tcontrolBackgroundColor: COLORS.white,\n\tcontrolBoxShadowFocus: `0 0 0 0.5px ${ COLORS.theme.accent }`,\n\tcontrolHeight: CONTROL_HEIGHT,\n\tcontrolHeightXSmall: `calc( ${ CONTROL_HEIGHT } * 0.6 )`,\n\tcontrolHeightSmall: `calc( ${ CONTROL_HEIGHT } * 0.8 )`,\n\tcontrolHeightLarge: `calc( ${ CONTROL_HEIGHT } * 1.2 )`,\n\tcontrolHeightXLarge: `calc( ${ CONTROL_HEIGHT } * 1.4 )`,\n};\n\n// Using Object.assign to avoid creating circular references when emitting\n// TypeScript type declarations.\nexport default Object.assign( {}, CONTROL_PROPS, {\n\tcolorDivider: 'rgba(0, 0, 0, 0.1)',\n\tcolorScrollbarThumb: 'rgba(0, 0, 0, 0.2)',\n\tcolorScrollbarThumbHover: 'rgba(0, 0, 0, 0.5)',\n\tcolorScrollbarTrack: 'rgba(0, 0, 0, 0.04)',\n\televationIntensity: 1,\n\tradiusXSmall: '1px',\n\tradiusSmall: '2px',\n\tradiusMedium: '4px',\n\tradiusLarge: '8px',\n\tradiusFull: '9999px',\n\tradiusRound: '50%',\n\tborderWidth: '1px',\n\tborderWidthFocus: '1.5px',\n\tborderWidthTab: '4px',\n\tspinnerSize: 16,\n\tfontSize: '13px',\n\tfontSizeH1: 'calc(2.44 * 13px)',\n\tfontSizeH2: 'calc(1.95 * 13px)',\n\tfontSizeH3: 'calc(1.56 * 13px)',\n\tfontSizeH4: 'calc(1.25 * 13px)',\n\tfontSizeH5: '13px',\n\tfontSizeH6: 'calc(0.8 * 13px)',\n\tfontSizeInputMobile: '16px',\n\tfontSizeMobile: '15px',\n\tfontSizeSmall: 'calc(0.92 * 13px)',\n\tfontSizeXSmall: 'calc(0.75 * 13px)',\n\tfontLineHeightBase: '1.4',\n\tfontWeight: 'normal',\n\tfontWeightHeading: '600',\n\tgridBase: '4px',\n\tcardPaddingXSmall: `${ space( 2 ) }`,\n\tcardPaddingSmall: `${ space( 4 ) }`,\n\tcardPaddingMedium: `${ space( 4 ) } ${ space( 6 ) }`,\n\tcardPaddingLarge: `${ space( 6 ) } ${ space( 8 ) }`,\n\televationXSmall: `0 1px 1px rgba(0, 0, 0, 0.03), 0 1px 2px rgba(0, 0, 0, 0.02), 0 3px 3px rgba(0, 0, 0, 0.02), 0 4px 4px rgba(0, 0, 0, 0.01)`,\n\televationSmall: `0 1px 2px rgba(0, 0, 0, 0.05), 0 2px 3px rgba(0, 0, 0, 0.04), 0 6px 6px rgba(0, 0, 0, 0.03), 0 8px 8px rgba(0, 0, 0, 0.02)`,\n\televationMedium: `0 2px 3px rgba(0, 0, 0, 0.05), 0 4px 5px rgba(0, 0, 0, 0.04), 0 12px 12px rgba(0, 0, 0, 0.03), 0 16px 16px rgba(0, 0, 0, 0.02)`,\n\televationLarge: `0 5px 15px rgba(0, 0, 0, 0.08), 0 15px 27px rgba(0, 0, 0, 0.07), 0 30px 36px rgba(0, 0, 0, 0.04), 0 50px 43px rgba(0, 0, 0, 0.02)`,\n\tsurfaceBackgroundColor: COLORS.white,\n\tsurfaceBackgroundSubtleColor: '#F3F3F3',\n\tsurfaceBackgroundTintColor: '#F5F5F5',\n\tsurfaceBorderColor: 'rgba(0, 0, 0, 0.1)',\n\tsurfaceBorderBoldColor: 'rgba(0, 0, 0, 0.15)',\n\tsurfaceBorderSubtleColor: 'rgba(0, 0, 0, 0.05)',\n\tsurfaceBackgroundTertiaryColor: COLORS.white,\n\tsurfaceColor: COLORS.white,\n\ttransitionDuration: '200ms',\n\ttransitionDurationFast: '160ms',\n\ttransitionDurationFaster: '120ms',\n\ttransitionDurationFastest: '100ms',\n\ttransitionTimingFunction: 'cubic-bezier(0.08, 0.52, 0.52, 1)',\n\ttransitionTimingFunctionControl: 'cubic-bezier(0.12, 0.8, 0.32, 1)',\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,MAAM,QAAQ,iBAAiB;AAExC,MAAMC,cAAc,GAAG,MAAM;AAE7B,MAAMC,aAAa,GAAG;EACrB;EACAC,eAAe,EAAE,EAAE;EACnBC,oBAAoB,EAAE,CAAC;EACvBC,oBAAoB,EAAE,EAAE,GAAG,MAAM;EAAE;;EAEnCC,sBAAsB,EAAEN,MAAM,CAACO,KAAK;EACpCC,qBAAqB,EAAG,eAAeR,MAAM,CAACS,KAAK,CAACC,MAAQ,EAAC;EAC7DC,aAAa,EAAEV,cAAc;EAC7BW,mBAAmB,EAAG,SAASX,cAAgB,UAAS;EACxDY,kBAAkB,EAAG,SAASZ,cAAgB,UAAS;EACvDa,kBAAkB,EAAG,SAASb,cAAgB,UAAS;EACvDc,mBAAmB,EAAG,SAASd,cAAgB;AAChD,CAAC;;AAED;AACA;AACA,eAAee,MAAM,CAACC,MAAM,CAAE,CAAC,CAAC,EAAEf,aAAa,EAAE;EAChDgB,YAAY,EAAE,oBAAoB;EAClCC,mBAAmB,EAAE,oBAAoB;EACzCC,wBAAwB,EAAE,oBAAoB;EAC9CC,mBAAmB,EAAE,qBAAqB;EAC1CC,kBAAkB,EAAE,CAAC;EACrBC,YAAY,EAAE,KAAK;EACnBC,WAAW,EAAE,KAAK;EAClBC,YAAY,EAAE,KAAK;EACnBC,WAAW,EAAE,KAAK;EAClBC,UAAU,EAAE,QAAQ;EACpBC,WAAW,EAAE,KAAK;EAClBC,WAAW,EAAE,KAAK;EAClBC,gBAAgB,EAAE,OAAO;EACzBC,cAAc,EAAE,KAAK;EACrBC,WAAW,EAAE,EAAE;EACfC,QAAQ,EAAE,MAAM;EAChBC,UAAU,EAAE,mBAAmB;EAC/BC,UAAU,EAAE,mBAAmB;EAC/BC,UAAU,EAAE,mBAAmB;EAC/BC,UAAU,EAAE,mBAAmB;EAC/BC,UAAU,EAAE,MAAM;EAClBC,UAAU,EAAE,kBAAkB;EAC9BC,mBAAmB,EAAE,MAAM;EAC3BC,cAAc,EAAE,MAAM;EACtBC,aAAa,EAAE,mBAAmB;EAClCC,cAAc,EAAE,mBAAmB;EACnCC,kBAAkB,EAAE,KAAK;EACzBC,UAAU,EAAE,QAAQ;EACpBC,iBAAiB,EAAE,KAAK;EACxBC,QAAQ,EAAE,KAAK;EACfC,iBAAiB,EAAG,GAAGjD,KAAK,CAAE,CAAE,CAAG,EAAC;EACpCkD,gBAAgB,EAAG,GAAGlD,KAAK,CAAE,CAAE,CAAG,EAAC;EACnCmD,iBAAiB,EAAG,GAAGnD,KAAK,CAAE,CAAE,CAAG,IAAIA,KAAK,CAAE,CAAE,CAAG,EAAC;EACpDoD,gBAAgB,EAAG,GAAGpD,KAAK,CAAE,CAAE,CAAG,IAAIA,KAAK,CAAE,CAAE,CAAG,EAAC;EACnDqD,eAAe,EAAG,4HAA2H;EAC7IC,cAAc,EAAG,4HAA2H;EAC5IC,eAAe,EAAG,gIAA+H;EACjJC,cAAc,EAAG,mIAAkI;EACnJC,sBAAsB,EAAExD,MAAM,CAACO,KAAK;EACpCkD,4BAA4B,EAAE,SAAS;EACvCC,0BAA0B,EAAE,SAAS;EACrCC,kBAAkB,EAAE,oBAAoB;EACxCC,sBAAsB,EAAE,qBAAqB;EAC7CC,wBAAwB,EAAE,qBAAqB;EAC/CC,8BAA8B,EAAE9D,MAAM,CAACO,KAAK;EAC5CwD,YAAY,EAAE/D,MAAM,CAACO,KAAK;EAC1ByD,kBAAkB,EAAE,OAAO;EAC3BC,sBAAsB,EAAE,OAAO;EAC/BC,wBAAwB,EAAE,OAAO;EACjCC,yBAAyB,EAAE,OAAO;EAClCC,wBAAwB,EAAE,mCAAmC;EAC7DC,+BAA+B,EAAE;AAClC,CAAE,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guide/index.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iBAAS,KAAK,CAAE,EACf,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,gBAAiC,EACjC,QAAQ,EACR,KAAU,GACV,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guide/index.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iBAAS,KAAK,CAAE,EACf,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,gBAAiC,EACjC,QAAQ,EACR,KAAU,GACV,EAAE,UAAU,sCAoHZ;AAED,eAAe,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/navigator/navigator-provider/component.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACX,sBAAsB,EAMtB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/navigator/navigator-provider/component.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACX,sBAAsB,EAMtB,MAAM,UAAU,CAAC;AAqQlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,iBAAiB,sHAG7B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -5,7 +5,7 @@ export declare function useToolsPanel(props: WordPressComponentProps<ToolsPanelP
|
|
|
5
5
|
panelContext: {
|
|
6
6
|
areAllOptionalControlsHidden: boolean;
|
|
7
7
|
deregisterPanelItem: (label: string) => void;
|
|
8
|
-
deregisterResetAllFilter: (
|
|
8
|
+
deregisterResetAllFilter: (filter: ResetAllFilter) => void;
|
|
9
9
|
firstDisplayedItem: string | undefined;
|
|
10
10
|
flagItemCustomization: (value: boolean, label: string, group?: ToolsPanelMenuItemKey) => void;
|
|
11
11
|
hasMenuItems: boolean;
|
|
@@ -14,7 +14,7 @@ export declare function useToolsPanel(props: WordPressComponentProps<ToolsPanelP
|
|
|
14
14
|
menuItems: ToolsPanelMenuItems;
|
|
15
15
|
panelId: string | null | undefined;
|
|
16
16
|
registerPanelItem: (item: ToolsPanelItem) => void;
|
|
17
|
-
registerResetAllFilter: (
|
|
17
|
+
registerResetAllFilter: (filter: ResetAllFilter) => void;
|
|
18
18
|
shouldRenderPlaceholderItems: boolean;
|
|
19
19
|
__experimentalFirstVisibleItemClass: string | undefined;
|
|
20
20
|
__experimentalLastVisibleItemClass: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/tools-panel/tools-panel/hook.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EACX,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EAEnB,eAAe,EACf,cAAc,EACd,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/tools-panel/tools-panel/hook.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EACX,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EAEnB,eAAe,EACf,cAAc,EACd,MAAM,UAAU,CAAC;AA8NlB,wBAAgB,aAAa,CAC5B,KAAK,EAAE,uBAAuB,CAAE,eAAe,EAAE,KAAK,CAAE;;;;qCA8CN,MAAM;2CAa7C,cAAc;;uCAWhB,OAAO,SACP,MAAM,UACN,qBAAqB;;;;;;kCAjCiB,cAAc;yCAeP,cAAc;;;;;;wBAyD3B,MAAM;;;wBA9UlC,MAEb,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyZd"}
|
|
@@ -1,24 +1,14 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
|
-
controlSurfaceColor: "#fff";
|
|
3
|
-
controlTextActiveColor: string;
|
|
4
2
|
controlPaddingX: number;
|
|
5
3
|
controlPaddingXSmall: number;
|
|
6
4
|
controlPaddingXLarge: number;
|
|
7
5
|
controlBackgroundColor: "#fff";
|
|
8
|
-
controlBoxShadow: string;
|
|
9
6
|
controlBoxShadowFocus: string;
|
|
10
|
-
controlDestructiveBorderColor: string;
|
|
11
7
|
controlHeight: string;
|
|
12
8
|
controlHeightXSmall: string;
|
|
13
9
|
controlHeightSmall: string;
|
|
14
10
|
controlHeightLarge: string;
|
|
15
11
|
controlHeightXLarge: string;
|
|
16
|
-
} & {
|
|
17
|
-
toggleGroupControlBackgroundColor: "#fff";
|
|
18
|
-
toggleGroupControlBorderColor: string;
|
|
19
|
-
toggleGroupControlBackdropBackgroundColor: "#fff";
|
|
20
|
-
toggleGroupControlBackdropBorderColor: string;
|
|
21
|
-
toggleGroupControlButtonColorActive: "#fff";
|
|
22
12
|
} & {
|
|
23
13
|
colorDivider: string;
|
|
24
14
|
colorScrollbarThumb: string;
|