@wordpress/edit-site 6.14.0 → 6.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/LICENSE.md +1 -1
- package/build/components/add-new-pattern/index.js +6 -10
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/editor/index.js +1 -9
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/confirm-reset-shadow-dialog.js +39 -0
- package/build/components/global-styles/confirm-reset-shadow-dialog.js.map +1 -0
- package/build/components/global-styles/font-library-modal/index.js +1 -1
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-sizes/font-size.js +17 -14
- package/build/components/global-styles/font-sizes/font-size.js.map +1 -1
- package/build/components/global-styles/font-sizes/font-sizes.js +17 -20
- package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -1
- package/build/components/global-styles/screen-block.js +1 -1
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/shadows-edit-panel.js +21 -13
- package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build/components/global-styles/shadows-panel.js +43 -5
- package/build/components/global-styles/shadows-panel.js.map +1 -1
- package/build/components/layout/index.js +10 -1
- package/build/components/layout/index.js.map +1 -1
- package/build/components/page-patterns/fields.js +6 -35
- package/build/components/page-patterns/fields.js.map +1 -1
- package/build/components/page-templates/fields.js +6 -19
- package/build/components/page-templates/fields.js.map +1 -1
- package/build/components/post-list/index.js +13 -5
- package/build/components/post-list/index.js.map +1 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js +5 -7
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +3 -2
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-global-styles-wrapper/index.js +40 -72
- package/build/components/sidebar-global-styles-wrapper/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/index.js +1 -0
- package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build/components/site-editor-routes/stylebook.js +6 -2
- package/build/components/site-editor-routes/stylebook.js.map +1 -1
- package/build/components/site-editor-routes/styles.js +7 -1
- package/build/components/site-editor-routes/styles.js.map +1 -1
- package/build/components/style-book/constants.js +36 -2
- package/build/components/style-book/constants.js.map +1 -1
- package/build/components/style-book/index.js +106 -61
- package/build/components/style-book/index.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +6 -10
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/editor/index.js +1 -9
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/confirm-reset-shadow-dialog.js +32 -0
- package/build-module/components/global-styles/confirm-reset-shadow-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/index.js +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-sizes/font-size.js +17 -14
- package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -1
- package/build-module/components/global-styles/font-sizes/font-sizes.js +24 -27
- package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +1 -1
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/shadows-edit-panel.js +21 -13
- package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build-module/components/global-styles/shadows-panel.js +46 -8
- package/build-module/components/global-styles/shadows-panel.js.map +1 -1
- package/build-module/components/layout/index.js +11 -2
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/page-patterns/fields.js +7 -36
- package/build-module/components/page-patterns/fields.js.map +1 -1
- package/build-module/components/page-templates/fields.js +6 -19
- package/build-module/components/page-templates/fields.js.map +1 -1
- package/build-module/components/post-list/index.js +13 -5
- package/build-module/components/post-list/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +5 -7
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +3 -2
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-global-styles-wrapper/index.js +41 -75
- package/build-module/components/sidebar-global-styles-wrapper/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.js +1 -0
- package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build-module/components/site-editor-routes/stylebook.js +6 -2
- package/build-module/components/site-editor-routes/stylebook.js.map +1 -1
- package/build-module/components/site-editor-routes/styles.js +7 -1
- package/build-module/components/site-editor-routes/styles.js.map +1 -1
- package/build-module/components/style-book/constants.js +35 -1
- package/build-module/components/style-book/constants.js.map +1 -1
- package/build-module/components/style-book/index.js +107 -62
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-style/posts-rtl.css +72 -78
- package/build-style/posts.css +72 -78
- package/build-style/style-rtl.css +163 -184
- package/build-style/style.css +163 -184
- package/package.json +42 -41
- package/src/components/add-new-pattern/index.js +10 -7
- package/src/components/canvas-loader/style.scss +4 -3
- package/src/components/editor/index.js +1 -7
- package/src/components/editor/style.scss +4 -2
- package/src/components/editor-canvas-container/style.scss +7 -1
- package/src/components/global-styles/confirm-reset-shadow-dialog.js +37 -0
- package/src/components/global-styles/font-library-modal/index.js +1 -1
- package/src/components/global-styles/font-library-modal/style.scss +4 -2
- package/src/components/global-styles/font-sizes/font-size.js +28 -19
- package/src/components/global-styles/font-sizes/font-sizes.js +37 -35
- package/src/components/global-styles/screen-block.js +3 -2
- package/src/components/global-styles/shadows-edit-panel.js +38 -28
- package/src/components/global-styles/shadows-panel.js +64 -5
- package/src/components/global-styles/style.scss +9 -1
- package/src/components/global-styles/variations/style.scss +4 -3
- package/src/components/layout/index.js +12 -1
- package/src/components/layout/style.scss +8 -3
- package/src/components/page/style.scss +8 -5
- package/src/components/page-patterns/fields.js +11 -41
- package/src/components/page-patterns/style.scss +4 -25
- package/src/components/page-templates/fields.js +6 -16
- package/src/components/page-templates/style.scss +4 -20
- package/src/components/post-list/index.js +13 -4
- package/src/components/sidebar-dataviews/custom-dataviews-list.js +7 -6
- package/src/components/sidebar-dataviews/default-views.js +3 -2
- package/src/components/sidebar-dataviews/style.scss +4 -1
- package/src/components/sidebar-global-styles-wrapper/index.js +37 -83
- package/src/components/sidebar-global-styles-wrapper/style.scss +22 -0
- package/src/components/sidebar-navigation-item/style.scss +6 -0
- package/src/components/sidebar-navigation-screen-main/index.js +1 -1
- package/src/components/site-editor-routes/stylebook.js +2 -2
- package/src/components/site-editor-routes/styles.js +5 -1
- package/src/components/site-hub/style.scss +4 -2
- package/src/components/style-book/constants.ts +49 -1
- package/src/components/style-book/index.js +151 -77
|
@@ -16,12 +16,17 @@ var _data = require("@wordpress/data");
|
|
|
16
16
|
var _compose = require("@wordpress/compose");
|
|
17
17
|
var _element = require("@wordpress/element");
|
|
18
18
|
var _keycodes = require("@wordpress/keycodes");
|
|
19
|
+
var _mediaUtils = require("@wordpress/media-utils");
|
|
20
|
+
var _coreData = require("@wordpress/core-data");
|
|
19
21
|
var _lockUnlock = require("../../lock-unlock");
|
|
20
22
|
var _editorCanvasContainer = _interopRequireDefault(require("../editor-canvas-container"));
|
|
21
23
|
var _constants = require("./constants");
|
|
22
24
|
var _categories = require("./categories");
|
|
23
25
|
var _examples = require("./examples");
|
|
24
26
|
var _store = require("../../store");
|
|
27
|
+
var _sidebarGlobalStylesWrapper = require("../sidebar-global-styles-wrapper");
|
|
28
|
+
var _globalStylesRenderer = require("../global-styles-renderer");
|
|
29
|
+
var _constants2 = require("../style-book/constants");
|
|
25
30
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
31
|
/**
|
|
27
32
|
* External dependencies
|
|
@@ -70,31 +75,19 @@ const scrollToSection = (anchorId, iframe) => {
|
|
|
70
75
|
};
|
|
71
76
|
|
|
72
77
|
/**
|
|
73
|
-
* Parses a Block Editor navigation path to
|
|
74
|
-
*
|
|
75
|
-
* representing a style book tab/section.
|
|
78
|
+
* Parses a Block Editor navigation path to build a style book navigation path.
|
|
79
|
+
* The object can be extended to include a category, representing a style book tab/section.
|
|
76
80
|
*
|
|
77
81
|
* @param {string} path An internal Block Editor navigation path.
|
|
78
82
|
* @return {null|{block: string}} An object containing the example to navigate to.
|
|
79
83
|
*/
|
|
80
84
|
const getStyleBookNavigationFromPath = path => {
|
|
81
85
|
if (path && typeof path === 'string') {
|
|
82
|
-
if (path === '/') {
|
|
86
|
+
if (path === '/' || path.startsWith('/typography') || path.startsWith('/colors') || path.startsWith('/blocks')) {
|
|
83
87
|
return {
|
|
84
88
|
top: true
|
|
85
89
|
};
|
|
86
90
|
}
|
|
87
|
-
if (path.startsWith('/typography')) {
|
|
88
|
-
return {
|
|
89
|
-
block: 'typography'
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
let block = path.includes('/blocks/') ? decodeURIComponent(path.split('/blocks/')[1]) : null;
|
|
93
|
-
// Default to theme-colors if the path ends with /colors.
|
|
94
|
-
block = path.endsWith('/colors') ? 'theme-colors' : block;
|
|
95
|
-
return {
|
|
96
|
-
block
|
|
97
|
-
};
|
|
98
91
|
}
|
|
99
92
|
return null;
|
|
100
93
|
};
|
|
@@ -223,23 +216,31 @@ function StyleBook({
|
|
|
223
216
|
children: tab.title
|
|
224
217
|
}, tab.slug))
|
|
225
218
|
})
|
|
226
|
-
}), tabs.map(tab =>
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
219
|
+
}), tabs.map(tab => {
|
|
220
|
+
const categoryDefinition = tab.slug ? (0, _categories.getTopLevelStyleBookCategories)().find(_category => _category.slug === tab.slug) : null;
|
|
221
|
+
const filteredExamples = categoryDefinition ? (0, _categories.getExamplesByCategory)(categoryDefinition, examples) : {
|
|
222
|
+
examples
|
|
223
|
+
};
|
|
224
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Tabs.TabPanel, {
|
|
225
|
+
tabId: tab.slug,
|
|
226
|
+
focusable: false,
|
|
227
|
+
className: "edit-site-style-book__tabpanel",
|
|
228
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleBookBody, {
|
|
229
|
+
category: tab.slug,
|
|
230
|
+
examples: filteredExamples,
|
|
231
|
+
isSelected: isSelected,
|
|
232
|
+
onSelect: onSelect,
|
|
233
|
+
settings: settings,
|
|
234
|
+
sizes: sizes,
|
|
235
|
+
title: tab.title,
|
|
236
|
+
goTo: goTo
|
|
237
|
+
})
|
|
238
|
+
}, tab.slug);
|
|
239
|
+
})]
|
|
241
240
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleBookBody, {
|
|
242
|
-
examples:
|
|
241
|
+
examples: {
|
|
242
|
+
examples: examplesForSinglePageUse
|
|
243
|
+
},
|
|
243
244
|
isSelected: isSelected,
|
|
244
245
|
onClick: onClick,
|
|
245
246
|
onSelect: onSelect,
|
|
@@ -254,30 +255,83 @@ function StyleBook({
|
|
|
254
255
|
/**
|
|
255
256
|
* Style Book Preview component renders the stylebook without the Editor dependency.
|
|
256
257
|
*
|
|
257
|
-
* @param {Object}
|
|
258
|
-
* @param {
|
|
259
|
-
* @param {
|
|
260
|
-
* @param {Function} props.isSelected Function to check if a block is selected.
|
|
261
|
-
* @param {Function} props.onSelect Function to select a block.
|
|
258
|
+
* @param {Object} props Component props.
|
|
259
|
+
* @param {Object} props.userConfig User configuration.
|
|
260
|
+
* @param {boolean} props.isStatic Whether the stylebook is static or clickable.
|
|
262
261
|
* @return {Object} Style Book Preview component.
|
|
263
262
|
*/
|
|
264
263
|
const StyleBookPreview = ({
|
|
265
|
-
path = '',
|
|
266
264
|
userConfig = {},
|
|
267
|
-
|
|
268
|
-
onSelect
|
|
265
|
+
isStatic = false
|
|
269
266
|
}) => {
|
|
270
267
|
const siteEditorSettings = (0, _data.useSelect)(select => select(_store.store).getSettings(), []);
|
|
268
|
+
const canUserUploadMedia = (0, _data.useSelect)(select => select(_coreData.store).canUser('create', {
|
|
269
|
+
kind: 'root',
|
|
270
|
+
name: 'media'
|
|
271
|
+
}), []);
|
|
272
|
+
|
|
271
273
|
// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.
|
|
272
|
-
(0,
|
|
274
|
+
(0, _element.useEffect)(() => {
|
|
275
|
+
(0, _data.dispatch)(_blockEditor.store).updateSettings({
|
|
276
|
+
...siteEditorSettings,
|
|
277
|
+
mediaUpload: canUserUploadMedia ? _mediaUtils.uploadMedia : undefined
|
|
278
|
+
});
|
|
279
|
+
}, [siteEditorSettings, canUserUploadMedia]);
|
|
280
|
+
const [section, onChangeSection] = (0, _sidebarGlobalStylesWrapper.useSection)();
|
|
281
|
+
const isSelected = blockName => {
|
|
282
|
+
// Match '/blocks/core%2Fbutton' and
|
|
283
|
+
// '/blocks/core%2Fbutton/typography', but not
|
|
284
|
+
// '/blocks/core%2Fbuttons'.
|
|
285
|
+
return section === `/blocks/${encodeURIComponent(blockName)}` || section.startsWith(`/blocks/${encodeURIComponent(blockName)}/`);
|
|
286
|
+
};
|
|
287
|
+
const onSelect = blockName => {
|
|
288
|
+
if (_constants2.STYLE_BOOK_COLOR_GROUPS.find(group => group.slug === blockName)) {
|
|
289
|
+
// Go to color palettes Global Styles.
|
|
290
|
+
onChangeSection('/colors/palette');
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
if (blockName === 'typography') {
|
|
294
|
+
// Go to typography Global Styles.
|
|
295
|
+
onChangeSection('/typography');
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Now go to the selected block.
|
|
300
|
+
onChangeSection(`/blocks/${encodeURIComponent(blockName)}`);
|
|
301
|
+
};
|
|
273
302
|
const [resizeObserver, sizes] = (0, _compose.useResizeObserver)();
|
|
274
303
|
const colors = useMultiOriginPalettes();
|
|
275
304
|
const examples = (0, _examples.getExamples)(colors);
|
|
276
305
|
const examplesForSinglePageUse = getExamplesForSinglePageUse(examples);
|
|
306
|
+
let previewCategory = null;
|
|
307
|
+
if (section.includes('/colors')) {
|
|
308
|
+
previewCategory = 'colors';
|
|
309
|
+
} else if (section.includes('/typography')) {
|
|
310
|
+
previewCategory = 'text';
|
|
311
|
+
} else if (section.includes('/blocks')) {
|
|
312
|
+
previewCategory = 'blocks';
|
|
313
|
+
const blockName = decodeURIComponent(section).split('/blocks/')[1];
|
|
314
|
+
if (blockName && examples.find(example => example.name === blockName)) {
|
|
315
|
+
previewCategory = blockName;
|
|
316
|
+
}
|
|
317
|
+
} else if (!isStatic) {
|
|
318
|
+
previewCategory = 'overview';
|
|
319
|
+
}
|
|
320
|
+
const categoryDefinition = _constants2.STYLE_BOOK_PREVIEW_CATEGORIES.find(category => category.slug === previewCategory);
|
|
321
|
+
|
|
322
|
+
// If there's no category definition there may be a single block.
|
|
323
|
+
const filteredExamples = categoryDefinition ? (0, _categories.getExamplesByCategory)(categoryDefinition, examples) : {
|
|
324
|
+
examples: [examples.find(example => example.name === previewCategory)]
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
// If there's no preview category, show all examples.
|
|
328
|
+
const displayedExamples = previewCategory ? filteredExamples : {
|
|
329
|
+
examples: examplesForSinglePageUse
|
|
330
|
+
};
|
|
277
331
|
const {
|
|
278
332
|
base: baseConfig
|
|
279
333
|
} = (0, _element.useContext)(GlobalStylesContext);
|
|
280
|
-
const goTo = getStyleBookNavigationFromPath(
|
|
334
|
+
const goTo = getStyleBookNavigationFromPath(section);
|
|
281
335
|
const mergedConfig = (0, _element.useMemo)(() => {
|
|
282
336
|
if (!isObjectEmpty(userConfig) && !isObjectEmpty(baseConfig)) {
|
|
283
337
|
return mergeBaseAndUserConfigs(baseConfig, userConfig);
|
|
@@ -292,22 +346,23 @@ const StyleBookPreview = ({
|
|
|
292
346
|
}), [globalStyles, siteEditorSettings, userConfig]);
|
|
293
347
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
294
348
|
className: "edit-site-style-book",
|
|
295
|
-
children: [resizeObserver, /*#__PURE__*/(0, _jsxRuntime.
|
|
349
|
+
children: [resizeObserver, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_blockEditor.BlockEditorProvider, {
|
|
296
350
|
settings: settings,
|
|
297
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
298
|
-
|
|
351
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_globalStylesRenderer.GlobalStylesRenderer, {
|
|
352
|
+
disableRootPadding: true
|
|
353
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleBookBody, {
|
|
354
|
+
examples: displayedExamples,
|
|
299
355
|
settings: settings,
|
|
300
356
|
goTo: goTo,
|
|
301
357
|
sizes: sizes,
|
|
302
|
-
isSelected: isSelected,
|
|
303
|
-
onSelect: onSelect
|
|
304
|
-
})
|
|
358
|
+
isSelected: !isStatic ? isSelected : null,
|
|
359
|
+
onSelect: !isStatic ? onSelect : null
|
|
360
|
+
})]
|
|
305
361
|
})]
|
|
306
362
|
});
|
|
307
363
|
};
|
|
308
364
|
exports.StyleBookPreview = StyleBookPreview;
|
|
309
365
|
const StyleBookBody = ({
|
|
310
|
-
category,
|
|
311
366
|
examples,
|
|
312
367
|
isSelected,
|
|
313
368
|
onClick,
|
|
@@ -354,10 +409,6 @@ const StyleBookBody = ({
|
|
|
354
409
|
if (hasIframeLoaded && iframeRef?.current) {
|
|
355
410
|
if (goTo?.top) {
|
|
356
411
|
scrollToSection('top', iframeRef?.current);
|
|
357
|
-
return;
|
|
358
|
-
}
|
|
359
|
-
if (goTo?.block) {
|
|
360
|
-
scrollToSection(`example-${goTo?.block}`, iframeRef?.current);
|
|
361
412
|
}
|
|
362
413
|
}
|
|
363
414
|
}, [iframeRef?.current, goTo, scrollToSection, hasIframeLoaded]);
|
|
@@ -379,29 +430,23 @@ const StyleBookBody = ({
|
|
|
379
430
|
className: (0, _clsx.default)('edit-site-style-book__examples', {
|
|
380
431
|
'is-wide': sizes.width > 600
|
|
381
432
|
}),
|
|
382
|
-
|
|
383
|
-
category: category,
|
|
433
|
+
filteredExamples: examples,
|
|
384
434
|
label: title ? (0, _i18n.sprintf)(
|
|
385
435
|
// translators: %s: Category of blocks, e.g. Text.
|
|
386
436
|
(0, _i18n.__)('Examples of blocks in the %s category'), title) : (0, _i18n.__)('Examples of blocks'),
|
|
387
437
|
isSelected: isSelected,
|
|
388
438
|
onSelect: onSelect
|
|
389
|
-
},
|
|
439
|
+
}, title)]
|
|
390
440
|
});
|
|
391
441
|
};
|
|
392
442
|
exports.StyleBookBody = StyleBookBody;
|
|
393
443
|
const Examples = (0, _element.memo)(({
|
|
394
444
|
className,
|
|
395
|
-
|
|
396
|
-
category,
|
|
445
|
+
filteredExamples,
|
|
397
446
|
label,
|
|
398
447
|
isSelected,
|
|
399
448
|
onSelect
|
|
400
449
|
}) => {
|
|
401
|
-
const categoryDefinition = category ? (0, _categories.getTopLevelStyleBookCategories)().find(_category => _category.slug === category) : null;
|
|
402
|
-
const filteredExamples = categoryDefinition ? (0, _categories.getExamplesByCategory)(categoryDefinition, examples) : {
|
|
403
|
-
examples
|
|
404
|
-
};
|
|
405
450
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Composite, {
|
|
406
451
|
orientation: "vertical",
|
|
407
452
|
className: className,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_blockEditor","_editor","_data","_compose","_element","_keycodes","_lockUnlock","_editorCanvasContainer","_constants","_categories","_examples","_store","_jsxRuntime","ExperimentalBlockEditorProvider","useGlobalStyle","GlobalStylesContext","useGlobalStylesOutputWithConfig","unlock","blockEditorPrivateApis","mergeBaseAndUserConfigs","editorPrivateApis","Tabs","componentsPrivateApis","isObjectEmpty","object","Object","keys","length","scrollToSection","anchorId","iframe","contentDocument","element","body","getElementById","scrollIntoView","behavior","getStyleBookNavigationFromPath","path","top","startsWith","block","includes","decodeURIComponent","split","endsWith","useMultiOriginPalettes","colors","gradients","useMultipleOriginColorsAndGradients","shouldDisplayDefaultDuotones","customDuotones","themeDuotones","defaultDuotones","useSettings","palettes","useMemo","result","duotones","push","name","_x","slug","getExamplesForSinglePageUse","examples","examplesForSinglePageUse","overviewCategoryExamples","getExamplesByCategory","otherExamples","filter","example","category","find","overviewExample","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","onClose","showTabs","userConfig","resizeObserver","sizes","useResizeObserver","textColor","backgroundColor","getExamples","tabs","getTopLevelStyleBookCategories","some","base","baseConfig","useContext","goTo","mergedConfig","originalSettings","useSelect","select","blockEditorStore","getSettings","globalStyles","settings","styles","isPreviewMode","jsx","default","closeButtonLabel","__","children","jsxs","className","clsx","width","style","color","background","TabList","map","tab","Tab","tabId","title","TabPanel","focusable","StyleBookBody","StyleBookPreview","siteEditorSettings","siteEditorStore","dispatch","updateSettings","BlockEditorProvider","exports","isFocused","setIsFocused","useState","hasIframeLoaded","setHasIframeLoaded","iframeRef","useRef","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","ENTER","SPACE","preventDefault","readonly","handleLoad","useLayoutEffect","current","__unstableIframe","onLoad","ref","tabIndex","__unstableEditorStyles","STYLE_BOOK_IFRAME_STYLES","Examples","label","sprintf","memo","categoryDefinition","_category","filteredExamples","Composite","orientation","Example","id","content","blocks","subcategories","subcategory","Group","GroupLabel","Subcategory","disabledExamples","focusMode","renderedBlocks","Array","isArray","disabledProps","disabled","accessibleWhenDisabled","Item","undefined","render","Disabled","value","BlockList","renderAppender","_default"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tComposite,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseSettings,\n\tBlockEditorProvider,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect, dispatch } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport { STYLE_BOOK_IFRAME_STYLES } from './constants';\nimport {\n\tgetExamplesByCategory,\n\tgetTopLevelStyleBookCategories,\n} from './categories';\nimport { getExamples } from './examples';\nimport { store as siteEditorStore } from '../../store';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tuseGlobalStyle,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Scrolls to a section within an iframe.\n *\n * @param {string} anchorId The id of the element to scroll to.\n * @param {HTMLIFrameElement} iframe The target iframe.\n */\nconst scrollToSection = ( anchorId, iframe ) => {\n\tif ( ! anchorId || ! iframe || ! iframe?.contentDocument ) {\n\t\treturn;\n\t}\n\n\tconst element =\n\t\tanchorId === 'top'\n\t\t\t? iframe.contentDocument.body\n\t\t\t: iframe.contentDocument.getElementById( anchorId );\n\tif ( element ) {\n\t\telement.scrollIntoView( {\n\t\t\tbehavior: 'smooth',\n\t\t} );\n\t}\n};\n\n/**\n * Parses a Block Editor navigation path to extract the block name and\n * build a style book navigation path. The object can be extended to include a category,\n * representing a style book tab/section.\n *\n * @param {string} path An internal Block Editor navigation path.\n * @return {null|{block: string}} An object containing the example to navigate to.\n */\nconst getStyleBookNavigationFromPath = ( path ) => {\n\tif ( path && typeof path === 'string' ) {\n\t\tif ( path === '/' ) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\n\t\tif ( path.startsWith( '/typography' ) ) {\n\t\t\treturn {\n\t\t\t\tblock: 'typography',\n\t\t\t};\n\t\t}\n\t\tlet block = path.includes( '/blocks/' )\n\t\t\t? decodeURIComponent( path.split( '/blocks/' )[ 1 ] )\n\t\t\t: null;\n\t\t// Default to theme-colors if the path ends with /colors.\n\t\tblock = path.endsWith( '/colors' ) ? 'theme-colors' : block;\n\n\t\treturn {\n\t\t\tblock,\n\t\t};\n\t}\n\treturn null;\n};\n\n/**\n * Retrieves colors, gradients, and duotone filters from Global Styles.\n * The inclusion of default (Core) palettes is controlled by the relevant\n * theme.json property e.g. defaultPalette, defaultGradients, defaultDuotone.\n *\n * @return {Object} Object containing properties for each type of palette.\n */\nfunction useMultiOriginPalettes() {\n\tconst { colors, gradients } = useMultipleOriginColorsAndGradients();\n\n\t// Add duotone filters to the palettes data.\n\tconst [\n\t\tshouldDisplayDefaultDuotones,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t] = useSettings(\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default'\n\t);\n\n\tconst palettes = useMemo( () => {\n\t\tconst result = { colors, gradients, duotones: [] };\n\n\t\tif ( themeDuotones && themeDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates these duotone filters come from the theme.'\n\t\t\t\t),\n\t\t\t\tslug: 'theme',\n\t\t\t\tduotones: themeDuotones,\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tshouldDisplayDefaultDuotones &&\n\t\t\tdefaultDuotones &&\n\t\t\tdefaultDuotones.length\n\t\t) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates these duotone filters come from WordPress.'\n\t\t\t\t),\n\t\t\t\tslug: 'default',\n\t\t\t\tduotones: defaultDuotones,\n\t\t\t} );\n\t\t}\n\t\tif ( customDuotones && customDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates these doutone filters are created by the user.'\n\t\t\t\t),\n\t\t\t\tslug: 'custom',\n\t\t\t\tduotones: customDuotones,\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}, [\n\t\tcolors,\n\t\tgradients,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t\tshouldDisplayDefaultDuotones,\n\t] );\n\n\treturn palettes;\n}\n\n/**\n * Get deduped examples for single page stylebook.\n * @param {Array} examples Array of examples.\n * @return {Array} Deduped examples.\n */\nexport function getExamplesForSinglePageUse( examples ) {\n\tconst examplesForSinglePageUse = [];\n\tconst overviewCategoryExamples = getExamplesByCategory(\n\t\t{ slug: 'overview' },\n\t\texamples\n\t);\n\texamplesForSinglePageUse.push( ...overviewCategoryExamples.examples );\n\tconst otherExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\texample.category !== 'overview' &&\n\t\t\t! overviewCategoryExamples.examples.find(\n\t\t\t\t( overviewExample ) => overviewExample.name === example.name\n\t\t\t)\n\t\t);\n\t} );\n\texamplesForSinglePageUse.push( ...otherExamples );\n\n\treturn examplesForSinglePageUse;\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n\tpath = '',\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = useMemo( () => getExamples( colors ), [ colors ] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetTopLevelStyleBookCategories().filter( ( category ) =>\n\t\t\t\texamples.some(\n\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t)\n\t\t\t),\n\t\t[ examples ]\n\t);\n\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( path );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: originalSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, originalSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={ showCloseButton ? __( 'Close' ) : null }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t<div className=\"edit-site-style-book__tablist-container\">\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\tclassName=\"edit-site-style-book__tabpanel\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ examplesForSinglePageUse }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\n/**\n * Style Book Preview component renders the stylebook without the Editor dependency.\n *\n * @param {Object} props Component props.\n * @param {string} props.path Path to the selected block.\n * @param {Object} props.userConfig User configuration.\n * @param {Function} props.isSelected Function to check if a block is selected.\n * @param {Function} props.onSelect Function to select a block.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( {\n\tpath = '',\n\tuserConfig = {},\n\tisSelected,\n\tonSelect,\n} ) => {\n\tconst siteEditorSettings = useSelect(\n\t\t( select ) => select( siteEditorStore ).getSettings(),\n\t\t[]\n\t);\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tdispatch( blockEditorStore ).updateSettings( siteEditorSettings );\n\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( path );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...siteEditorSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: siteEditorSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, siteEditorSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div className=\"edit-site-style-book\">\n\t\t\t{ resizeObserver }\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ examplesForSinglePageUse }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n\tgoTo,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst [ hasIframeLoaded, setHasIframeLoaded ] = useState( false );\n\tconst iframeRef = useRef( null );\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst handleLoad = () => setHasIframeLoaded( true );\n\tuseLayoutEffect( () => {\n\t\tif ( hasIframeLoaded && iframeRef?.current ) {\n\t\t\tif ( goTo?.top ) {\n\t\t\t\tscrollToSection( 'top', iframeRef?.current );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( goTo?.block ) {\n\t\t\t\tscrollToSection(\n\t\t\t\t\t`example-${ goTo?.block }`,\n\t\t\t\t\tiframeRef?.current\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [ iframeRef?.current, goTo, scrollToSection, hasIframeLoaded ] );\n\n\treturn (\n\t\t<Iframe\n\t\t\tonLoad={ handleLoad }\n\t\t\tref={ iframeRef }\n\t\t\tclassName={ clsx( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{ STYLE_BOOK_IFRAME_STYLES }\n\t\t\t\t{ !! onClick &&\n\t\t\t\t\t'body { cursor: pointer; } body * { pointer-events: none; }' }\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ clsx( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ category }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst categoryDefinition = category\n\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t( _category ) => _category.slug === category\n\t\t\t )\n\t\t\t: null;\n\n\t\tconst filteredExamples = categoryDefinition\n\t\t\t? getExamplesByCategory( categoryDefinition, examples )\n\t\t\t: { examples };\n\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ !! filteredExamples?.examples?.length &&\n\t\t\t\t\tfilteredExamples.examples.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tcontent={ example.content }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t!! onSelect\n\t\t\t\t\t\t\t\t\t? () => onSelect( example.name )\n\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ !! filteredExamples?.subcategories?.length &&\n\t\t\t\t\tfilteredExamples.subcategories.map( ( subcategory ) => (\n\t\t\t\t\t\t<Composite.Group\n\t\t\t\t\t\t\tclassName=\"edit-site-style-book__subcategory\"\n\t\t\t\t\t\t\tkey={ `subcategory-${ subcategory.slug }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Composite.GroupLabel>\n\t\t\t\t\t\t\t\t<h2 className=\"edit-site-style-book__subcategory-title\">\n\t\t\t\t\t\t\t\t\t{ subcategory.title }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</Composite.GroupLabel>\n\t\t\t\t\t\t\t<Subcategory\n\t\t\t\t\t\t\t\texamples={ subcategory.examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Composite.Group>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Subcategory = ( { examples, isSelected, onSelect } ) => {\n\treturn (\n\t\t!! examples?.length &&\n\t\texamples.map( ( example ) => (\n\t\t\t<Example\n\t\t\t\tkey={ example.name }\n\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\ttitle={ example.title }\n\t\t\t\tcontent={ example.content }\n\t\t\t\tblocks={ example.blocks }\n\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\tonClick={ !! onSelect ? () => onSelect( example.name ) : null }\n\t\t\t/>\n\t\t) )\n\t);\n};\n\nconst disabledExamples = [ 'example-duotones' ];\n\nconst Example = ( { id, title, blocks, isSelected, onClick, content } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst disabledProps =\n\t\tdisabledExamples.includes( id ) || ! onClick\n\t\t\t? {\n\t\t\t\t\tdisabled: true,\n\t\t\t\t\taccessibleWhenDisabled: !! onClick,\n\t\t\t }\n\t\t\t: {};\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Composite.Item\n\t\t\t\t\tclassName={ clsx( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t'is-disabled-example': !! disabledProps?.disabled,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\t!! onClick\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole={ !! onClick ? 'button' : null }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t{ ...disabledProps }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t{ content ? (\n\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EditorStyles />\n\t\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</Composite.Item>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_blockEditor","_editor","_data","_compose","_element","_keycodes","_mediaUtils","_coreData","_lockUnlock","_editorCanvasContainer","_constants","_categories","_examples","_store","_sidebarGlobalStylesWrapper","_globalStylesRenderer","_constants2","_jsxRuntime","ExperimentalBlockEditorProvider","useGlobalStyle","GlobalStylesContext","useGlobalStylesOutputWithConfig","unlock","blockEditorPrivateApis","mergeBaseAndUserConfigs","editorPrivateApis","Tabs","componentsPrivateApis","isObjectEmpty","object","Object","keys","length","scrollToSection","anchorId","iframe","contentDocument","element","body","getElementById","scrollIntoView","behavior","getStyleBookNavigationFromPath","path","startsWith","top","useMultiOriginPalettes","colors","gradients","useMultipleOriginColorsAndGradients","shouldDisplayDefaultDuotones","customDuotones","themeDuotones","defaultDuotones","useSettings","palettes","useMemo","result","duotones","push","name","_x","slug","getExamplesForSinglePageUse","examples","examplesForSinglePageUse","overviewCategoryExamples","getExamplesByCategory","otherExamples","filter","example","category","find","overviewExample","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","onClose","showTabs","userConfig","resizeObserver","sizes","useResizeObserver","textColor","backgroundColor","getExamples","tabs","getTopLevelStyleBookCategories","some","base","baseConfig","useContext","goTo","mergedConfig","originalSettings","useSelect","select","blockEditorStore","getSettings","globalStyles","settings","styles","isPreviewMode","jsx","default","closeButtonLabel","__","children","jsxs","className","clsx","width","style","color","background","TabList","map","tab","Tab","tabId","title","categoryDefinition","_category","filteredExamples","TabPanel","focusable","StyleBookBody","StyleBookPreview","isStatic","siteEditorSettings","siteEditorStore","canUserUploadMedia","coreStore","canUser","kind","useEffect","dispatch","updateSettings","mediaUpload","uploadMedia","undefined","section","onChangeSection","useSection","blockName","encodeURIComponent","STYLE_BOOK_COLOR_GROUPS","group","previewCategory","includes","decodeURIComponent","split","STYLE_BOOK_PREVIEW_CATEGORIES","displayedExamples","BlockEditorProvider","GlobalStylesRenderer","disableRootPadding","exports","isFocused","setIsFocused","useState","hasIframeLoaded","setHasIframeLoaded","iframeRef","useRef","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","ENTER","SPACE","preventDefault","readonly","handleLoad","useLayoutEffect","current","__unstableIframe","onLoad","ref","tabIndex","__unstableEditorStyles","STYLE_BOOK_IFRAME_STYLES","Examples","label","sprintf","memo","Composite","orientation","Example","id","content","blocks","subcategories","subcategory","Group","GroupLabel","Subcategory","disabledExamples","focusMode","renderedBlocks","Array","isArray","disabledProps","disabled","accessibleWhenDisabled","Item","render","Disabled","value","BlockList","renderAppender","_default"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tComposite,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseSettings,\n\tBlockEditorProvider,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect, dispatch } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport { STYLE_BOOK_IFRAME_STYLES } from './constants';\nimport {\n\tgetExamplesByCategory,\n\tgetTopLevelStyleBookCategories,\n} from './categories';\nimport { getExamples } from './examples';\nimport { store as siteEditorStore } from '../../store';\nimport { useSection } from '../sidebar-global-styles-wrapper';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport {\n\tSTYLE_BOOK_COLOR_GROUPS,\n\tSTYLE_BOOK_PREVIEW_CATEGORIES,\n} from '../style-book/constants';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tuseGlobalStyle,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Scrolls to a section within an iframe.\n *\n * @param {string} anchorId The id of the element to scroll to.\n * @param {HTMLIFrameElement} iframe The target iframe.\n */\nconst scrollToSection = ( anchorId, iframe ) => {\n\tif ( ! anchorId || ! iframe || ! iframe?.contentDocument ) {\n\t\treturn;\n\t}\n\n\tconst element =\n\t\tanchorId === 'top'\n\t\t\t? iframe.contentDocument.body\n\t\t\t: iframe.contentDocument.getElementById( anchorId );\n\tif ( element ) {\n\t\telement.scrollIntoView( {\n\t\t\tbehavior: 'smooth',\n\t\t} );\n\t}\n};\n\n/**\n * Parses a Block Editor navigation path to build a style book navigation path.\n * The object can be extended to include a category, representing a style book tab/section.\n *\n * @param {string} path An internal Block Editor navigation path.\n * @return {null|{block: string}} An object containing the example to navigate to.\n */\nconst getStyleBookNavigationFromPath = ( path ) => {\n\tif ( path && typeof path === 'string' ) {\n\t\tif (\n\t\t\tpath === '/' ||\n\t\t\tpath.startsWith( '/typography' ) ||\n\t\t\tpath.startsWith( '/colors' ) ||\n\t\t\tpath.startsWith( '/blocks' )\n\t\t) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Retrieves colors, gradients, and duotone filters from Global Styles.\n * The inclusion of default (Core) palettes is controlled by the relevant\n * theme.json property e.g. defaultPalette, defaultGradients, defaultDuotone.\n *\n * @return {Object} Object containing properties for each type of palette.\n */\nfunction useMultiOriginPalettes() {\n\tconst { colors, gradients } = useMultipleOriginColorsAndGradients();\n\n\t// Add duotone filters to the palettes data.\n\tconst [\n\t\tshouldDisplayDefaultDuotones,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t] = useSettings(\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default'\n\t);\n\n\tconst palettes = useMemo( () => {\n\t\tconst result = { colors, gradients, duotones: [] };\n\n\t\tif ( themeDuotones && themeDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates these duotone filters come from the theme.'\n\t\t\t\t),\n\t\t\t\tslug: 'theme',\n\t\t\t\tduotones: themeDuotones,\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tshouldDisplayDefaultDuotones &&\n\t\t\tdefaultDuotones &&\n\t\t\tdefaultDuotones.length\n\t\t) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates these duotone filters come from WordPress.'\n\t\t\t\t),\n\t\t\t\tslug: 'default',\n\t\t\t\tduotones: defaultDuotones,\n\t\t\t} );\n\t\t}\n\t\tif ( customDuotones && customDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates these doutone filters are created by the user.'\n\t\t\t\t),\n\t\t\t\tslug: 'custom',\n\t\t\t\tduotones: customDuotones,\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}, [\n\t\tcolors,\n\t\tgradients,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t\tshouldDisplayDefaultDuotones,\n\t] );\n\n\treturn palettes;\n}\n\n/**\n * Get deduped examples for single page stylebook.\n * @param {Array} examples Array of examples.\n * @return {Array} Deduped examples.\n */\nexport function getExamplesForSinglePageUse( examples ) {\n\tconst examplesForSinglePageUse = [];\n\tconst overviewCategoryExamples = getExamplesByCategory(\n\t\t{ slug: 'overview' },\n\t\texamples\n\t);\n\texamplesForSinglePageUse.push( ...overviewCategoryExamples.examples );\n\tconst otherExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\texample.category !== 'overview' &&\n\t\t\t! overviewCategoryExamples.examples.find(\n\t\t\t\t( overviewExample ) => overviewExample.name === example.name\n\t\t\t)\n\t\t);\n\t} );\n\texamplesForSinglePageUse.push( ...otherExamples );\n\n\treturn examplesForSinglePageUse;\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n\tpath = '',\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = useMemo( () => getExamples( colors ), [ colors ] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetTopLevelStyleBookCategories().filter( ( category ) =>\n\t\t\t\texamples.some(\n\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t)\n\t\t\t),\n\t\t[ examples ]\n\t);\n\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( path );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: originalSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, originalSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={ showCloseButton ? __( 'Close' ) : null }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t<div className=\"edit-site-style-book__tablist-container\">\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\t\tconst categoryDefinition = tab.slug\n\t\t\t\t\t\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t\t\t\t\t\t( _category ) =>\n\t\t\t\t\t\t\t\t\t\t\t_category.slug === tab.slug\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\tconst filteredExamples = categoryDefinition\n\t\t\t\t\t\t\t\t? getExamplesByCategory(\n\t\t\t\t\t\t\t\t\t\tcategoryDefinition,\n\t\t\t\t\t\t\t\t\t\texamples\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: { examples };\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-style-book__tabpanel\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\t\texamples={ filteredExamples }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</Tabs>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ { examples: examplesForSinglePageUse } }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\n/**\n * Style Book Preview component renders the stylebook without the Editor dependency.\n *\n * @param {Object} props Component props.\n * @param {Object} props.userConfig User configuration.\n * @param {boolean} props.isStatic Whether the stylebook is static or clickable.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( { userConfig = {}, isStatic = false } ) => {\n\tconst siteEditorSettings = useSelect(\n\t\t( select ) => select( siteEditorStore ).getSettings(),\n\t\t[]\n\t);\n\n\tconst canUserUploadMedia = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'media',\n\t\t\t} ),\n\t\t[]\n\t);\n\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tuseEffect( () => {\n\t\tdispatch( blockEditorStore ).updateSettings( {\n\t\t\t...siteEditorSettings,\n\t\t\tmediaUpload: canUserUploadMedia ? uploadMedia : undefined,\n\t\t} );\n\t}, [ siteEditorSettings, canUserUploadMedia ] );\n\n\tconst [ section, onChangeSection ] = useSection();\n\n\tconst isSelected = ( blockName ) => {\n\t\t// Match '/blocks/core%2Fbutton' and\n\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t// '/blocks/core%2Fbuttons'.\n\t\treturn (\n\t\t\tsection === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\tsection.startsWith(\n\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t)\n\t\t);\n\t};\n\n\tconst onSelect = ( blockName ) => {\n\t\tif (\n\t\t\tSTYLE_BOOK_COLOR_GROUPS.find(\n\t\t\t\t( group ) => group.slug === blockName\n\t\t\t)\n\t\t) {\n\t\t\t// Go to color palettes Global Styles.\n\t\t\tonChangeSection( '/colors/palette' );\n\t\t\treturn;\n\t\t}\n\t\tif ( blockName === 'typography' ) {\n\t\t\t// Go to typography Global Styles.\n\t\t\tonChangeSection( '/typography' );\n\t\t\treturn;\n\t\t}\n\n\t\t// Now go to the selected block.\n\t\tonChangeSection( `/blocks/${ encodeURIComponent( blockName ) }` );\n\t};\n\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tlet previewCategory = null;\n\tif ( section.includes( '/colors' ) ) {\n\t\tpreviewCategory = 'colors';\n\t} else if ( section.includes( '/typography' ) ) {\n\t\tpreviewCategory = 'text';\n\t} else if ( section.includes( '/blocks' ) ) {\n\t\tpreviewCategory = 'blocks';\n\t\tconst blockName =\n\t\t\tdecodeURIComponent( section ).split( '/blocks/' )[ 1 ];\n\t\tif (\n\t\t\tblockName &&\n\t\t\texamples.find( ( example ) => example.name === blockName )\n\t\t) {\n\t\t\tpreviewCategory = blockName;\n\t\t}\n\t} else if ( ! isStatic ) {\n\t\tpreviewCategory = 'overview';\n\t}\n\tconst categoryDefinition = STYLE_BOOK_PREVIEW_CATEGORIES.find(\n\t\t( category ) => category.slug === previewCategory\n\t);\n\n\t// If there's no category definition there may be a single block.\n\tconst filteredExamples = categoryDefinition\n\t\t? getExamplesByCategory( categoryDefinition, examples )\n\t\t: {\n\t\t\t\texamples: [\n\t\t\t\t\texamples.find(\n\t\t\t\t\t\t( example ) => example.name === previewCategory\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t };\n\n\t// If there's no preview category, show all examples.\n\tconst displayedExamples = previewCategory\n\t\t? filteredExamples\n\t\t: { examples: examplesForSinglePageUse };\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( section );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...siteEditorSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: siteEditorSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, siteEditorSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div className=\"edit-site-style-book\">\n\t\t\t{ resizeObserver }\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<GlobalStylesRenderer disableRootPadding />\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ displayedExamples }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\tisSelected={ ! isStatic ? isSelected : null }\n\t\t\t\t\tonSelect={ ! isStatic ? onSelect : null }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n\tgoTo,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst [ hasIframeLoaded, setHasIframeLoaded ] = useState( false );\n\tconst iframeRef = useRef( null );\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst handleLoad = () => setHasIframeLoaded( true );\n\tuseLayoutEffect( () => {\n\t\tif ( hasIframeLoaded && iframeRef?.current ) {\n\t\t\tif ( goTo?.top ) {\n\t\t\t\tscrollToSection( 'top', iframeRef?.current );\n\t\t\t}\n\t\t}\n\t}, [ iframeRef?.current, goTo, scrollToSection, hasIframeLoaded ] );\n\n\treturn (\n\t\t<Iframe\n\t\t\tonLoad={ handleLoad }\n\t\t\tref={ iframeRef }\n\t\t\tclassName={ clsx( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{ STYLE_BOOK_IFRAME_STYLES }\n\t\t\t\t{ !! onClick &&\n\t\t\t\t\t'body { cursor: pointer; } body * { pointer-events: none; }' }\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ clsx( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\tfilteredExamples={ examples }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ title }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, filteredExamples, label, isSelected, onSelect } ) => {\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ !! filteredExamples?.examples?.length &&\n\t\t\t\t\tfilteredExamples.examples.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tcontent={ example.content }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t!! onSelect\n\t\t\t\t\t\t\t\t\t? () => onSelect( example.name )\n\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ !! filteredExamples?.subcategories?.length &&\n\t\t\t\t\tfilteredExamples.subcategories.map( ( subcategory ) => (\n\t\t\t\t\t\t<Composite.Group\n\t\t\t\t\t\t\tclassName=\"edit-site-style-book__subcategory\"\n\t\t\t\t\t\t\tkey={ `subcategory-${ subcategory.slug }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Composite.GroupLabel>\n\t\t\t\t\t\t\t\t<h2 className=\"edit-site-style-book__subcategory-title\">\n\t\t\t\t\t\t\t\t\t{ subcategory.title }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</Composite.GroupLabel>\n\t\t\t\t\t\t\t<Subcategory\n\t\t\t\t\t\t\t\texamples={ subcategory.examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Composite.Group>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Subcategory = ( { examples, isSelected, onSelect } ) => {\n\treturn (\n\t\t!! examples?.length &&\n\t\texamples.map( ( example ) => (\n\t\t\t<Example\n\t\t\t\tkey={ example.name }\n\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\ttitle={ example.title }\n\t\t\t\tcontent={ example.content }\n\t\t\t\tblocks={ example.blocks }\n\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\tonClick={ !! onSelect ? () => onSelect( example.name ) : null }\n\t\t\t/>\n\t\t) )\n\t);\n};\n\nconst disabledExamples = [ 'example-duotones' ];\n\nconst Example = ( { id, title, blocks, isSelected, onClick, content } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst disabledProps =\n\t\tdisabledExamples.includes( id ) || ! onClick\n\t\t\t? {\n\t\t\t\t\tdisabled: true,\n\t\t\t\t\taccessibleWhenDisabled: !! onClick,\n\t\t\t }\n\t\t\t: {};\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Composite.Item\n\t\t\t\t\tclassName={ clsx( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t'is-disabled-example': !! disabledProps?.disabled,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\t!! onClick\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole={ !! onClick ? 'button' : null }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t{ ...disabledProps }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t{ content ? (\n\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EditorStyles />\n\t\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</Composite.Item>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,8 @@ import { unlock } from '../../lock-unlock';
|
|
|
20
20
|
import { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY, TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
|
|
21
21
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
22
|
const {
|
|
23
|
-
useHistory
|
|
23
|
+
useHistory,
|
|
24
|
+
useLocation
|
|
24
25
|
} = unlock(routerPrivateApis);
|
|
25
26
|
const {
|
|
26
27
|
CreatePatternModal,
|
|
@@ -31,6 +32,7 @@ const {
|
|
|
31
32
|
} = unlock(editorPrivateApis);
|
|
32
33
|
export default function AddNewPattern() {
|
|
33
34
|
const history = useHistory();
|
|
35
|
+
const location = useLocation();
|
|
34
36
|
const [showPatternModal, setShowPatternModal] = useState(false);
|
|
35
37
|
const [showTemplatePartModal, setShowTemplatePartModal] = useState(false);
|
|
36
38
|
// eslint-disable-next-line @wordpress/no-unused-vars-before-return
|
|
@@ -145,22 +147,16 @@ export default function AddNewPattern() {
|
|
|
145
147
|
return;
|
|
146
148
|
}
|
|
147
149
|
try {
|
|
148
|
-
const {
|
|
149
|
-
params: {
|
|
150
|
-
postType,
|
|
151
|
-
categoryId
|
|
152
|
-
}
|
|
153
|
-
} = history.getLocationWithParams();
|
|
154
150
|
let currentCategoryId;
|
|
155
151
|
// When we're not handling template parts, we should
|
|
156
152
|
// add or create the proper pattern category.
|
|
157
|
-
if (postType !== TEMPLATE_PART_POST_TYPE) {
|
|
153
|
+
if (location.query.postType !== TEMPLATE_PART_POST_TYPE) {
|
|
158
154
|
/*
|
|
159
155
|
* categoryMap.values() returns an iterator.
|
|
160
156
|
* Iterator.prototype.find() is not yet widely supported.
|
|
161
157
|
* Convert to array to use the Array.prototype.find method.
|
|
162
158
|
*/
|
|
163
|
-
const currentCategory = Array.from(categoryMap.values()).find(term => term.name === categoryId);
|
|
159
|
+
const currentCategory = Array.from(categoryMap.values()).find(term => term.name === location.query.categoryId);
|
|
164
160
|
if (currentCategory) {
|
|
165
161
|
currentCategoryId = currentCategory.id || (await findOrCreateTerm(currentCategory.label));
|
|
166
162
|
}
|
|
@@ -170,7 +166,7 @@ export default function AddNewPattern() {
|
|
|
170
166
|
// Navigate to the All patterns category for the newly created pattern
|
|
171
167
|
// if we're not on that page already and if we're not in the `my-patterns`
|
|
172
168
|
// category.
|
|
173
|
-
if (!currentCategoryId && categoryId !== 'my-patterns') {
|
|
169
|
+
if (!currentCategoryId && location.query.categoryId !== 'my-patterns') {
|
|
174
170
|
history.navigate(`/pattern?categoryId=${PATTERN_DEFAULT_CATEGORY}`);
|
|
175
171
|
}
|
|
176
172
|
createSuccessNotice(sprintf(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DropdownMenu","useState","useRef","__","sprintf","symbol","symbolFilled","upload","useSelect","useDispatch","privateApis","routerPrivateApis","editPatternsPrivateApis","store","patternsStore","noticesStore","coreStore","editorPrivateApis","unlock","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","TEMPLATE_PART_POST_TYPE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useHistory","CreatePatternModal","useAddPatternCategory","CreateTemplatePartModal","AddNewPattern","history","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","createSuccessNotice","createErrorNotice","patternUploadInputRef","isBlockBasedTheme","addNewPatternLabel","addNewTemplatePartLabel","canCreatePattern","canCreateTemplatePart","select","getCurrentTheme","getPostType","canUser","is_block_theme","user","labels","add_new_item","kind","name","handleCreatePattern","pattern","navigate","id","handleCreateTemplatePart","templatePart","handleError","controls","push","icon","onClick","title","current","click","categoryMap","findOrCreateTerm","length","children","toggleProps","variant","showTooltip","__next40pxDefaultSize","text","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","params","postType","categoryId","getLocationWithParams","currentCategoryId","currentCategory","Array","from","values","find","term","undefined","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst {\n\t\tisBlockBasedTheme,\n\t\taddNewPatternLabel,\n\t\taddNewTemplatePartLabel,\n\t\tcanCreatePattern,\n\t\tcanCreateTemplatePart,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getPostType, canUser } = select( coreStore );\n\t\treturn {\n\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t?.labels?.add_new_item,\n\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\tcanCreatePattern: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: PATTERN_TYPES.user,\n\t\t\t} ),\n\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: TEMPLATE_PART_POST_TYPE,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ PATTERN_TYPES.user }/${ pattern.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ TEMPLATE_PART_POST_TYPE }/${ templatePart.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [];\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t} );\n\t}\n\n\tif ( isBlockBasedTheme && canCreateTemplatePart ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: upload,\n\t\t\tonClick: () => {\n\t\t\t\tpatternUploadInputRef.current.click();\n\t\t\t},\n\t\t\ttitle: __( 'Import pattern from JSON' ),\n\t\t} );\n\t}\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\tif ( controls.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\tparams: { postType, categoryId },\n\t\t\t\t\t\t} = history.getLocationWithParams();\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif ( postType !== TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t * categoryMap.values() returns an iterator.\n\t\t\t\t\t\t\t * Iterator.prototype.find() is not yet widely supported.\n\t\t\t\t\t\t\t * Convert to array to use the Array.prototype.find method.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tconst currentCategory = Array.from(\n\t\t\t\t\t\t\t\tcategoryMap.values()\n\t\t\t\t\t\t\t).find( ( term ) => term.name === categoryId );\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\t\t\t\t\t\t\t\t) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tcategoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DropdownMenu","useState","useRef","__","sprintf","symbol","symbolFilled","upload","useSelect","useDispatch","privateApis","routerPrivateApis","editPatternsPrivateApis","store","patternsStore","noticesStore","coreStore","editorPrivateApis","unlock","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","TEMPLATE_PART_POST_TYPE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useHistory","useLocation","CreatePatternModal","useAddPatternCategory","CreateTemplatePartModal","AddNewPattern","history","location","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","createSuccessNotice","createErrorNotice","patternUploadInputRef","isBlockBasedTheme","addNewPatternLabel","addNewTemplatePartLabel","canCreatePattern","canCreateTemplatePart","select","getCurrentTheme","getPostType","canUser","is_block_theme","user","labels","add_new_item","kind","name","handleCreatePattern","pattern","navigate","id","handleCreateTemplatePart","templatePart","handleError","controls","push","icon","onClick","title","current","click","categoryMap","findOrCreateTerm","length","children","toggleProps","variant","showTooltip","__next40pxDefaultSize","text","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","currentCategoryId","query","postType","currentCategory","Array","from","values","find","term","categoryId","undefined","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst {\n\t\tisBlockBasedTheme,\n\t\taddNewPatternLabel,\n\t\taddNewTemplatePartLabel,\n\t\tcanCreatePattern,\n\t\tcanCreateTemplatePart,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getPostType, canUser } = select( coreStore );\n\t\treturn {\n\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t?.labels?.add_new_item,\n\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\tcanCreatePattern: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: PATTERN_TYPES.user,\n\t\t\t} ),\n\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: TEMPLATE_PART_POST_TYPE,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ PATTERN_TYPES.user }/${ pattern.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ TEMPLATE_PART_POST_TYPE }/${ templatePart.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [];\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t} );\n\t}\n\n\tif ( isBlockBasedTheme && canCreateTemplatePart ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: upload,\n\t\t\tonClick: () => {\n\t\t\t\tpatternUploadInputRef.current.click();\n\t\t\t},\n\t\t\ttitle: __( 'Import pattern from JSON' ),\n\t\t} );\n\t}\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\tif ( controls.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tlocation.query.postType !== TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t * categoryMap.values() returns an iterator.\n\t\t\t\t\t\t\t * Iterator.prototype.find() is not yet widely supported.\n\t\t\t\t\t\t\t * Convert to array to use the Array.prototype.find method.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tconst currentCategory = Array.from(\n\t\t\t\t\t\t\t\tcategoryMap.values()\n\t\t\t\t\t\t\t).find(\n\t\t\t\t\t\t\t\t( term ) =>\n\t\t\t\t\t\t\t\t\tterm.name === location.query.categoryId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\t\t\t\t\t\t\t\t) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tlocation.query.categoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,uBAAuB;AACpD,SAASC,QAAQ,EAAEC,MAAM,QAAQ,oBAAoB;AACrD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,EAAEC,YAAY,EAAEC,MAAM,QAAQ,kBAAkB;AAC/D,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;AACpE,SACCD,WAAW,IAAIE,uBAAuB,EACtCC,KAAK,IAAIC,aAAa,QAChB,qBAAqB;AAC5B,SAASD,KAAK,IAAIE,YAAY,QAAQ,oBAAoB;AAC1D,SAASF,KAAK,IAAIG,SAAS,QAAQ,sBAAsB;AACzD,SAASN,WAAW,IAAIO,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SACCC,aAAa,EACbC,wBAAwB,EACxBC,uBAAuB,QACjB,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE/B,MAAM;EAAEC,UAAU;EAAEC;AAAY,CAAC,GAAGX,MAAM,CAAEP,iBAAkB,CAAC;AAC/D,MAAM;EAAEmB,kBAAkB;EAAEC;AAAsB,CAAC,GAAGb,MAAM,CAC3DN,uBACD,CAAC;AACD,MAAM;EAAEoB;AAAwB,CAAC,GAAGd,MAAM,CAAED,iBAAkB,CAAC;AAE/D,eAAe,SAASgB,aAAaA,CAAA,EAAG;EACvC,MAAMC,OAAO,GAAGN,UAAU,CAAC,CAAC;EAC5B,MAAMO,QAAQ,GAAGN,WAAW,CAAC,CAAC;EAC9B,MAAM,CAAEO,gBAAgB,EAAEC,mBAAmB,CAAE,GAAGpC,QAAQ,CAAE,KAAM,CAAC;EACnE,MAAM,CAAEqC,qBAAqB,EAAEC,wBAAwB,CAAE,GACxDtC,QAAQ,CAAE,KAAM,CAAC;EAClB;EACA,MAAM;IAAEuC;EAAsB,CAAC,GAAGtB,MAAM,CAAET,WAAW,CAAEK,aAAc,CAAE,CAAC;EACxE,MAAM;IAAE2B,mBAAmB;IAAEC;EAAkB,CAAC,GAC/CjC,WAAW,CAAEM,YAAa,CAAC;EAC5B,MAAM4B,qBAAqB,GAAGzC,MAAM,CAAC,CAAC;EACtC,MAAM;IACL0C,iBAAiB;IACjBC,kBAAkB;IAClBC,uBAAuB;IACvBC,gBAAgB;IAChBC;EACD,CAAC,GAAGxC,SAAS,CAAIyC,MAAM,IAAM;IAC5B,MAAM;MAAEC,eAAe;MAAEC,WAAW;MAAEC;IAAQ,CAAC,GAAGH,MAAM,CAAEjC,SAAU,CAAC;IACrE,OAAO;MACN4B,iBAAiB,EAAEM,eAAe,CAAC,CAAC,EAAEG,cAAc;MACpDR,kBAAkB,EAAEM,WAAW,CAAEhC,aAAa,CAACmC,IAAK,CAAC,EAAEC,MAAM,EAC1DC,YAAY;MACfV,uBAAuB,EAAEK,WAAW,CAAE9B,uBAAwB,CAAC,EAC5DkC,MAAM,EAAEC,YAAY;MACvB;MACAT,gBAAgB,EAAEK,OAAO,CAAE,QAAQ,EAAE;QACpCK,IAAI,EAAE,UAAU;QAChBC,IAAI,EAAEvC,aAAa,CAACmC;MACrB,CAAE,CAAC;MACHN,qBAAqB,EAAEI,OAAO,CAAE,QAAQ,EAAE;QACzCK,IAAI,EAAE,UAAU;QAChBC,IAAI,EAAErC;MACP,CAAE;IACH,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,SAASsC,mBAAmBA,CAAE;IAAEC;EAAQ,CAAC,EAAG;IAC3CvB,mBAAmB,CAAE,KAAM,CAAC;IAC5BH,OAAO,CAAC2B,QAAQ,CACf,IAAK1C,aAAa,CAACmC,IAAI,IAAMM,OAAO,CAACE,EAAE,cACxC,CAAC;EACF;EAEA,SAASC,wBAAwBA,CAAEC,YAAY,EAAG;IACjDzB,wBAAwB,CAAE,KAAM,CAAC;IACjCL,OAAO,CAAC2B,QAAQ,CACf,IAAKxC,uBAAuB,IAAM2C,YAAY,CAACF,EAAE,cAClD,CAAC;EACF;EAEA,SAASG,WAAWA,CAAA,EAAG;IACtB5B,mBAAmB,CAAE,KAAM,CAAC;IAC5BE,wBAAwB,CAAE,KAAM,CAAC;EAClC;EAEA,MAAM2B,QAAQ,GAAG,EAAE;EACnB,IAAKnB,gBAAgB,EAAG;IACvBmB,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE/D,MAAM;MACZgE,OAAO,EAAEA,CAAA,KAAMhC,mBAAmB,CAAE,IAAK,CAAC;MAC1CiC,KAAK,EAAEzB;IACR,CAAE,CAAC;EACJ;EAEA,IAAKD,iBAAiB,IAAII,qBAAqB,EAAG;IACjDkB,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE9D,YAAY;MAClB+D,OAAO,EAAEA,CAAA,KAAM9B,wBAAwB,CAAE,IAAK,CAAC;MAC/C+B,KAAK,EAAExB;IACR,CAAE,CAAC;EACJ;EAEA,IAAKC,gBAAgB,EAAG;IACvBmB,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE7D,MAAM;MACZ8D,OAAO,EAAEA,CAAA,KAAM;QACd1B,qBAAqB,CAAC4B,OAAO,CAACC,KAAK,CAAC,CAAC;MACtC,CAAC;MACDF,KAAK,EAAEnE,EAAE,CAAE,0BAA2B;IACvC,CAAE,CAAC;EACJ;EAEA,MAAM;IAAEsE,WAAW;IAAEC;EAAiB,CAAC,GAAG3C,qBAAqB,CAAC,CAAC;EACjE,IAAKmC,QAAQ,CAACS,MAAM,KAAK,CAAC,EAAG;IAC5B,OAAO,IAAI;EACZ;EACA,oBACChD,KAAA,CAAAF,SAAA;IAAAmD,QAAA,GACG/B,kBAAkB,iBACnBtB,IAAA,CAACvB,YAAY;MACZkE,QAAQ,EAAGA,QAAU;MACrBE,IAAI,EAAG,IAAM;MACbS,WAAW,EAAG;QACbC,OAAO,EAAE,SAAS;QAClBC,WAAW,EAAE,KAAK;QAClBC,qBAAqB,EAAE;MACxB,CAAG;MACHC,IAAI,EAAGpC,kBAAoB;MAC3BqC,KAAK,EAAGrC;IAAoB,CAC5B,CACD,EACCT,gBAAgB,iBACjBb,IAAA,CAACO,kBAAkB;MAClBqD,OAAO,EAAGA,CAAA,KAAM9C,mBAAmB,CAAE,KAAM,CAAG;MAC9C+C,SAAS,EAAGzB,mBAAqB;MACjC0B,OAAO,EAAGpB;IAAa,CACvB,CACD,EACC3B,qBAAqB,iBACtBf,IAAA,CAACS,uBAAuB;MACvBsD,UAAU,EAAGA,CAAA,KAAM/C,wBAAwB,CAAE,KAAM,CAAG;MACtDgD,MAAM,EAAG,EAAI;MACbC,QAAQ,EAAGzB,wBAA0B;MACrCsB,OAAO,EAAGpB;IAAa,CACvB,CACD,eAED1C,IAAA;MACCkE,IAAI,EAAC,MAAM;MACXC,MAAM,EAAC,OAAO;MACdC,MAAM;MACNC,GAAG,EAAGjD,qBAAuB;MAC7BkD,QAAQ,EAAG,MAAQC,KAAK,IAAM;QAC7B,MAAMC,IAAI,GAAGD,KAAK,CAACE,MAAM,CAACC,KAAK,GAAI,CAAC,CAAE;QACtC,IAAK,CAAEF,IAAI,EAAG;UACb;QACD;QACA,IAAI;UACH,IAAIG,iBAAiB;UACrB;UACA;UACA,IACC/D,QAAQ,CAACgE,KAAK,CAACC,QAAQ,KAAK/E,uBAAuB,EAClD;YACD;AACP;AACA;AACA;AACA;YACO,MAAMgF,eAAe,GAAGC,KAAK,CAACC,IAAI,CACjC9B,WAAW,CAAC+B,MAAM,CAAC,CACpB,CAAC,CAACC,IAAI,CACHC,IAAI,IACLA,IAAI,CAAChD,IAAI,KAAKvB,QAAQ,CAACgE,KAAK,CAACQ,UAC/B,CAAC;YACD,IAAKN,eAAe,EAAG;cACtBH,iBAAiB,GAChBG,eAAe,CAACvC,EAAE,KAChB,MAAMY,gBAAgB,CACvB2B,eAAe,CAACnB,KACjB,CAAC,CAAE;YACL;UACD;UACA,MAAMtB,OAAO,GAAG,MAAMpB,qBAAqB,CAC1CuD,IAAI,EACJG,iBAAiB,GACd,CAAEA,iBAAiB,CAAE,GACrBU,SACJ,CAAC;;UAED;UACA;UACA;UACA,IACC,CAAEV,iBAAiB,IACnB/D,QAAQ,CAACgE,KAAK,CAACQ,UAAU,KAAK,aAAa,EAC1C;YACDzE,OAAO,CAAC2B,QAAQ,CACf,uBAAwBzC,wBAAwB,EACjD,CAAC;UACF;UAEAqB,mBAAmB,CAClBrC,OAAO;UACN;UACAD,EAAE,CAAE,0BAA2B,CAAC,EAChCyD,OAAO,CAACU,KAAK,CAACuC,GACf,CAAC,EACD;YACCpB,IAAI,EAAE,UAAU;YAChB3B,EAAE,EAAE;UACL,CACD,CAAC;QACF,CAAC,CAAC,OAAQgD,GAAG,EAAG;UACfpE,iBAAiB,CAAEoE,GAAG,CAACC,OAAO,EAAE;YAC/BtB,IAAI,EAAE,UAAU;YAChB3B,EAAE,EAAE;UACL,CAAE,CAAC;QACJ,CAAC,SAAS;UACTgC,KAAK,CAACE,MAAM,CAACgB,KAAK,GAAG,EAAE;QACxB;MACD;IAAG,CACH,CAAC;EAAA,CACD,CAAC;AAEL","ignoreList":[]}
|