@wordpress/edit-site 3.0.1-next.253d9b6e21.0 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/components/block-editor/back-button.js +60 -0
- package/build/components/block-editor/back-button.js.map +1 -0
- package/build/components/block-editor/index.js +20 -5
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/edit-template-part-menu-button/index.js +63 -0
- package/build/components/edit-template-part-menu-button/index.js.map +1 -0
- package/build/components/editor/global-styles-provider.js +15 -2
- package/build/components/editor/global-styles-provider.js.map +1 -1
- package/build/components/editor/global-styles-renderer.js +8 -8
- package/build/components/editor/global-styles-renderer.js.map +1 -1
- package/build/components/editor/index.js +7 -7
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor/utils.js +4 -9
- package/build/components/editor/utils.js.map +1 -1
- package/build/components/{sidebar → global-styles}/border-panel.js +2 -2
- package/build/components/global-styles/border-panel.js.map +1 -0
- package/build/components/{sidebar → global-styles}/color-palette-panel.js +4 -2
- package/build/components/global-styles/color-palette-panel.js.map +1 -0
- package/build/components/{sidebar → global-styles}/color-panel.js +24 -21
- package/build/components/global-styles/color-panel.js.map +1 -0
- package/build/components/global-styles/context-menu.js +58 -0
- package/build/components/global-styles/context-menu.js.map +1 -0
- package/build/components/{sidebar → global-styles}/dimensions-panel.js +58 -8
- package/build/components/global-styles/dimensions-panel.js.map +1 -0
- package/build/components/global-styles/header.js +54 -0
- package/build/components/global-styles/header.js.map +1 -0
- package/build/components/global-styles/index.js +89 -0
- package/build/components/global-styles/index.js.map +1 -0
- package/build/components/global-styles/navigation-button.js +43 -0
- package/build/components/global-styles/navigation-button.js.map +1 -0
- package/build/components/global-styles/palette.js +57 -0
- package/build/components/global-styles/palette.js.map +1 -0
- package/build/components/global-styles/preview.js +59 -0
- package/build/components/global-styles/preview.js.map +1 -0
- package/build/components/global-styles/screen-block-list.js +76 -0
- package/build/components/global-styles/screen-block-list.js.map +1 -0
- package/build/components/global-styles/screen-block.js +45 -0
- package/build/components/global-styles/screen-block.js.map +1 -0
- package/build/components/global-styles/screen-color-palette.js +48 -0
- package/build/components/global-styles/screen-color-palette.js.map +1 -0
- package/build/components/global-styles/screen-colors.js +51 -0
- package/build/components/global-styles/screen-colors.js.map +1 -0
- package/build/components/global-styles/screen-layout.js +60 -0
- package/build/components/global-styles/screen-layout.js.map +1 -0
- package/build/components/global-styles/screen-root.js +44 -0
- package/build/components/global-styles/screen-root.js.map +1 -0
- package/build/components/global-styles/screen-typography.js +50 -0
- package/build/components/global-styles/screen-typography.js.map +1 -0
- package/build/components/global-styles/subtitle.js +25 -0
- package/build/components/global-styles/subtitle.js.map +1 -0
- package/build/components/{sidebar → global-styles}/typography-panel.js +1 -3
- package/build/components/global-styles/typography-panel.js.map +1 -0
- package/build/components/header/document-actions/index.js +1 -1
- package/build/components/header/document-actions/index.js.map +1 -1
- package/build/components/header/plugin-more-menu-item/index.js +82 -0
- package/build/components/header/plugin-more-menu-item/index.js.map +1 -0
- package/build/components/header/plugin-sidebar-more-menu-item/index.js +75 -0
- package/build/components/header/plugin-sidebar-more-menu-item/index.js.map +1 -0
- package/build/components/header/undo-redo/redo.js +1 -1
- package/build/components/header/undo-redo/redo.js.map +1 -1
- package/build/components/header/undo-redo/undo.js +1 -1
- package/build/components/header/undo-redo/undo.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +2 -10
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/navigation-sidebar/index.js +1 -1
- package/build/components/navigation-sidebar/index.js.map +1 -1
- package/build/components/navigation-sidebar/navigation-panel/constants.js +10 -10
- package/build/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
- package/build/components/navigation-sidebar/navigation-panel/content-navigation-item.js +1 -3
- package/build/components/navigation-sidebar/navigation-panel/content-navigation-item.js.map +1 -1
- package/build/components/save-button/index.js +1 -1
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/secondary-sidebar/inserter-sidebar.js +2 -1
- package/build/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build/components/sidebar/global-styles-sidebar.js +11 -161
- package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build/components/sidebar/index.js +1 -6
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar/plugin-sidebar/index.js +95 -0
- package/build/components/sidebar/plugin-sidebar/index.js.map +1 -0
- package/build/components/template-details/index.js +12 -6
- package/build/components/template-details/index.js.map +1 -1
- package/build/components/template-details/template-areas.js +73 -0
- package/build/components/template-details/template-areas.js.map +1 -0
- package/build/components/template-part-converter/convert-to-regular.js +3 -3
- package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
- package/build/components/template-part-converter/index.js +1 -1
- package/build/components/template-part-converter/index.js.map +1 -1
- package/build/components/url-query-controller/index.js +1 -1
- package/build/components/url-query-controller/index.js.map +1 -1
- package/build/index.js +24 -0
- package/build/index.js.map +1 -1
- package/build/store/actions.js +60 -7
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +19 -1
- package/build/store/constants.js.map +1 -1
- package/build/store/reducer.js +16 -7
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +91 -9
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-editor/back-button.js +48 -0
- package/build-module/components/block-editor/back-button.js.map +1 -0
- package/build-module/components/block-editor/index.js +17 -5
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/edit-template-part-menu-button/index.js +49 -0
- package/build-module/components/edit-template-part-menu-button/index.js.map +1 -0
- package/build-module/components/editor/global-styles-provider.js +16 -3
- package/build-module/components/editor/global-styles-provider.js.map +1 -1
- package/build-module/components/editor/global-styles-renderer.js +8 -8
- package/build-module/components/editor/global-styles-renderer.js.map +1 -1
- package/build-module/components/editor/index.js +4 -5
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor/utils.js +2 -7
- package/build-module/components/editor/utils.js.map +1 -1
- package/build-module/components/{sidebar → global-styles}/border-panel.js +2 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/color-palette-panel.js +4 -2
- package/build-module/components/global-styles/color-palette-panel.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/color-panel.js +25 -22
- package/build-module/components/global-styles/color-panel.js.map +1 -0
- package/build-module/components/global-styles/context-menu.js +41 -0
- package/build-module/components/global-styles/context-menu.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/dimensions-panel.js +58 -9
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
- package/build-module/components/global-styles/header.js +41 -0
- package/build-module/components/global-styles/header.js.map +1 -0
- package/build-module/components/global-styles/index.js +70 -0
- package/build-module/components/global-styles/index.js.map +1 -0
- package/build-module/components/global-styles/navigation-button.js +31 -0
- package/build-module/components/global-styles/navigation-button.js.map +1 -0
- package/build-module/components/global-styles/palette.js +43 -0
- package/build-module/components/global-styles/palette.js.map +1 -0
- package/build-module/components/global-styles/preview.js +50 -0
- package/build-module/components/global-styles/preview.js.map +1 -0
- package/build-module/components/global-styles/screen-block-list.js +58 -0
- package/build-module/components/global-styles/screen-block-list.js.map +1 -0
- package/build-module/components/global-styles/screen-block.js +32 -0
- package/build-module/components/global-styles/screen-block.js.map +1 -0
- package/build-module/components/global-styles/screen-color-palette.js +35 -0
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -0
- package/build-module/components/global-styles/screen-colors.js +38 -0
- package/build-module/components/global-styles/screen-colors.js.map +1 -0
- package/build-module/components/global-styles/screen-layout.js +44 -0
- package/build-module/components/global-styles/screen-layout.js.map +1 -0
- package/build-module/components/global-styles/screen-root.js +29 -0
- package/build-module/components/global-styles/screen-root.js.map +1 -0
- package/build-module/components/global-styles/screen-typography.js +37 -0
- package/build-module/components/global-styles/screen-typography.js.map +1 -0
- package/build-module/components/global-styles/subtitle.js +17 -0
- package/build-module/components/global-styles/subtitle.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/typography-panel.js +1 -2
- package/build-module/components/global-styles/typography-panel.js.map +1 -0
- package/build-module/components/header/document-actions/index.js +1 -1
- package/build-module/components/header/document-actions/index.js.map +1 -1
- package/build-module/components/header/plugin-more-menu-item/index.js +70 -0
- package/build-module/components/header/plugin-more-menu-item/index.js.map +1 -0
- package/build-module/components/header/plugin-sidebar-more-menu-item/index.js +64 -0
- package/build-module/components/header/plugin-sidebar-more-menu-item/index.js.map +1 -0
- package/build-module/components/header/undo-redo/redo.js +1 -1
- package/build-module/components/header/undo-redo/redo.js.map +1 -1
- package/build-module/components/header/undo-redo/undo.js +1 -1
- package/build-module/components/header/undo-redo/undo.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +3 -11
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/navigation-sidebar/index.js +1 -1
- package/build-module/components/navigation-sidebar/index.js.map +1 -1
- package/build-module/components/navigation-sidebar/navigation-panel/constants.js +5 -3
- package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
- package/build-module/components/navigation-sidebar/navigation-panel/content-navigation-item.js +1 -3
- package/build-module/components/navigation-sidebar/navigation-panel/content-navigation-item.js.map +1 -1
- package/build-module/components/save-button/index.js +1 -1
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/secondary-sidebar/inserter-sidebar.js +2 -1
- package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build-module/components/sidebar/global-styles-sidebar.js +13 -159
- package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build-module/components/sidebar/index.js +2 -7
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-sidebar/index.js +84 -0
- package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -0
- package/build-module/components/template-details/index.js +13 -8
- package/build-module/components/template-details/index.js.map +1 -1
- package/build-module/components/template-details/template-areas.js +60 -0
- package/build-module/components/template-details/template-areas.js.map +1 -0
- package/build-module/components/template-part-converter/convert-to-regular.js +3 -3
- package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
- package/build-module/components/template-part-converter/index.js +1 -1
- package/build-module/components/template-part-converter/index.js.map +1 -1
- package/build-module/components/url-query-controller/index.js +1 -1
- package/build-module/components/url-query-controller/index.js.map +1 -1
- package/build-module/index.js +3 -0
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +51 -7
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/constants.js +13 -0
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/reducer.js +16 -7
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +85 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +158 -19
- package/build-style/style.css +158 -19
- package/package.json +26 -26
- package/src/components/block-editor/back-button.js +44 -0
- package/src/components/block-editor/index.js +18 -2
- package/src/components/block-editor/style.scss +26 -0
- package/src/components/edit-template-part-menu-button/index.js +57 -0
- package/src/components/editor/global-styles-provider.js +19 -3
- package/src/components/editor/global-styles-renderer.js +8 -5
- package/src/components/editor/index.js +5 -8
- package/src/components/editor/test/global-styles-provider.js +131 -0
- package/src/components/editor/test/global-styles-renderer.js +1 -1
- package/src/components/editor/test/utils.js +146 -0
- package/src/components/editor/utils.js +2 -7
- package/src/components/{sidebar → global-styles}/border-panel.js +2 -2
- package/src/components/{sidebar → global-styles}/color-palette-panel.js +13 -11
- package/src/components/{sidebar → global-styles}/color-panel.js +43 -28
- package/src/components/global-styles/context-menu.js +54 -0
- package/src/components/{sidebar → global-styles}/dimensions-panel.js +60 -9
- package/src/components/global-styles/header.js +50 -0
- package/src/components/global-styles/index.js +81 -0
- package/src/components/global-styles/navigation-button.js +35 -0
- package/src/components/global-styles/palette.js +67 -0
- package/src/components/global-styles/preview.js +41 -0
- package/src/components/global-styles/screen-block-list.js +59 -0
- package/src/components/global-styles/screen-block.js +28 -0
- package/src/components/global-styles/screen-color-palette.js +33 -0
- package/src/components/global-styles/screen-colors.js +36 -0
- package/src/components/global-styles/screen-layout.js +45 -0
- package/src/components/global-styles/screen-root.js +43 -0
- package/src/components/global-styles/screen-typography.js +33 -0
- package/src/components/global-styles/style.scss +35 -0
- package/src/components/global-styles/subtitle.js +10 -0
- package/src/components/{sidebar → global-styles}/typography-panel.js +1 -2
- package/src/components/header/document-actions/index.js +1 -1
- package/src/components/header/plugin-more-menu-item/index.js +71 -0
- package/src/components/header/plugin-sidebar-more-menu-item/index.js +64 -0
- package/src/components/header/undo-redo/redo.js +4 -1
- package/src/components/header/undo-redo/undo.js +4 -1
- package/src/components/keyboard-shortcuts/index.js +25 -40
- package/src/components/navigation-sidebar/index.js +1 -1
- package/src/components/navigation-sidebar/navigation-panel/constants.js +9 -4
- package/src/components/navigation-sidebar/navigation-panel/content-navigation-item.js +1 -1
- package/src/components/navigation-sidebar/navigation-panel/style.scss +1 -0
- package/src/components/navigation-sidebar/navigation-toggle/style.scss +3 -2
- package/src/components/save-button/index.js +1 -1
- package/src/components/secondary-sidebar/inserter-sidebar.js +1 -0
- package/src/components/sidebar/global-styles-sidebar.js +14 -187
- package/src/components/sidebar/index.js +2 -7
- package/src/components/sidebar/plugin-sidebar/index.js +80 -0
- package/src/components/sidebar/style.scss +40 -0
- package/src/components/template-details/index.js +17 -7
- package/src/components/template-details/style.scss +36 -27
- package/src/components/template-details/template-areas.js +66 -0
- package/src/components/template-part-converter/convert-to-regular.js +2 -8
- package/src/components/template-part-converter/index.js +1 -1
- package/src/components/url-query-controller/index.js +1 -1
- package/src/index.js +3 -0
- package/src/store/actions.js +59 -7
- package/src/store/constants.js +15 -0
- package/src/store/reducer.js +26 -12
- package/src/store/selectors.js +96 -9
- package/src/store/test/reducer.js +40 -23
- package/src/store/test/selectors.js +34 -3
- package/src/style.scss +1 -0
- package/build/components/sidebar/border-panel.js.map +0 -1
- package/build/components/sidebar/color-palette-panel.js.map +0 -1
- package/build/components/sidebar/color-panel.js.map +0 -1
- package/build/components/sidebar/dimensions-panel.js.map +0 -1
- package/build/components/sidebar/typography-panel.js.map +0 -1
- package/build-module/components/sidebar/border-panel.js.map +0 -1
- package/build-module/components/sidebar/color-palette-panel.js.map +0 -1
- package/build-module/components/sidebar/color-panel.js.map +0 -1
- package/build-module/components/sidebar/dimensions-panel.js.map +0 -1
- package/build-module/components/sidebar/typography-panel.js.map +0 -1
package/README.md
CHANGED
|
@@ -26,6 +26,6 @@ import blockEditorSettings from './block-editor-settings';
|
|
|
26
26
|
initialize( '#editor-root', blockEditorSettings );
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
_This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for
|
|
29
|
+
_This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for such language features and APIs, you should include [the polyfill shipped in `@wordpress/babel-preset-default`](https://github.com/WordPress/gutenberg/tree/HEAD/packages/babel-preset-default#polyfill) in your code._
|
|
30
30
|
|
|
31
31
|
<br/><br/><p align="center"><img src="https://s.w.org/style/images/codeispoetry.png?1" alt="Code is Poetry." /></p>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _components = require("@wordpress/components");
|
|
11
|
+
|
|
12
|
+
var _icons = require("@wordpress/icons");
|
|
13
|
+
|
|
14
|
+
var _data = require("@wordpress/data");
|
|
15
|
+
|
|
16
|
+
var _i18n = require("@wordpress/i18n");
|
|
17
|
+
|
|
18
|
+
var _store = require("../../store");
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* WordPress dependencies
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Internal dependencies
|
|
26
|
+
*/
|
|
27
|
+
function BackButton() {
|
|
28
|
+
const {
|
|
29
|
+
isTemplatePart,
|
|
30
|
+
previousTemplateId
|
|
31
|
+
} = (0, _data.useSelect)(select => {
|
|
32
|
+
const {
|
|
33
|
+
getEditedPostType,
|
|
34
|
+
getPreviousEditedPostId
|
|
35
|
+
} = select(_store.store);
|
|
36
|
+
return {
|
|
37
|
+
isTemplatePart: getEditedPostType() === 'wp_template_part',
|
|
38
|
+
previousTemplateId: getPreviousEditedPostId()
|
|
39
|
+
};
|
|
40
|
+
}, []);
|
|
41
|
+
const {
|
|
42
|
+
goBack
|
|
43
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
44
|
+
|
|
45
|
+
if (!isTemplatePart || !previousTemplateId) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return (0, _element.createElement)(_components.Button, {
|
|
50
|
+
className: "edit-site-visual-editor__back-button",
|
|
51
|
+
icon: _icons.arrowLeft,
|
|
52
|
+
onClick: () => {
|
|
53
|
+
goBack();
|
|
54
|
+
}
|
|
55
|
+
}, (0, _i18n.__)('Back'));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
var _default = BackButton;
|
|
59
|
+
exports.default = _default;
|
|
60
|
+
//# sourceMappingURL=back-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/block-editor/back-button.js"],"names":["BackButton","isTemplatePart","previousTemplateId","select","getEditedPostType","getPreviousEditedPostId","editSiteStore","goBack","arrowLeft"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AAXA;AACA;AACA;;AAMA;AACA;AACA;AAGA,SAASA,UAAT,GAAsB;AACrB,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,MAAyC,qBAAaC,MAAF,IAAc;AACvE,UAAM;AAAEC,MAAAA,iBAAF;AAAqBC,MAAAA;AAArB,QAAiDF,MAAM,CAC5DG,YAD4D,CAA7D;AAIA,WAAO;AACNL,MAAAA,cAAc,EAAEG,iBAAiB,OAAO,kBADlC;AAENF,MAAAA,kBAAkB,EAAEG,uBAAuB;AAFrC,KAAP;AAIA,GAT8C,EAS5C,EAT4C,CAA/C;AAUA,QAAM;AAAEE,IAAAA;AAAF,MAAa,uBAAaD,YAAb,CAAnB;;AAEA,MAAK,CAAEL,cAAF,IAAoB,CAAEC,kBAA3B,EAAgD;AAC/C,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAC,sCADX;AAEC,IAAA,IAAI,EAAGM,gBAFR;AAGC,IAAA,OAAO,EAAG,MAAM;AACfD,MAAAA,MAAM;AACN;AALF,KAOG,cAAI,MAAJ,CAPH,CADD;AAWA;;eAEcP,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { arrowLeft } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nfunction BackButton() {\n\tconst { isTemplatePart, previousTemplateId } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getPreviousEditedPostId } = select(\n\t\t\teditSiteStore\n\t\t);\n\n\t\treturn {\n\t\t\tisTemplatePart: getEditedPostType() === 'wp_template_part',\n\t\t\tpreviousTemplateId: getPreviousEditedPostId(),\n\t\t};\n\t}, [] );\n\tconst { goBack } = useDispatch( editSiteStore );\n\n\tif ( ! isTemplatePart || ! previousTemplateId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-site-visual-editor__back-button\"\n\t\t\ticon={ arrowLeft }\n\t\t\tonClick={ () => {\n\t\t\t\tgoBack();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Back' ) }\n\t\t</Button>\n\t);\n}\n\nexport default BackButton;\n"]}
|
|
@@ -11,6 +11,8 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
|
|
14
16
|
var _data = require("@wordpress/data");
|
|
15
17
|
|
|
16
18
|
var _coreData = require("@wordpress/core-data");
|
|
@@ -29,6 +31,14 @@ var _store = require("../../store");
|
|
|
29
31
|
|
|
30
32
|
var _blockInspectorButton = _interopRequireDefault(require("./block-inspector-button"));
|
|
31
33
|
|
|
34
|
+
var _editTemplatePartMenuButton = _interopRequireDefault(require("../edit-template-part-menu-button"));
|
|
35
|
+
|
|
36
|
+
var _backButton = _interopRequireDefault(require("./back-button"));
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* External dependencies
|
|
40
|
+
*/
|
|
41
|
+
|
|
32
42
|
/**
|
|
33
43
|
* WordPress dependencies
|
|
34
44
|
*/
|
|
@@ -72,27 +82,32 @@ function BlockEditor({
|
|
|
72
82
|
const ref = (0, _blockEditor.__unstableUseMouseMoveTypingReset)();
|
|
73
83
|
const contentRef = (0, _element.useRef)();
|
|
74
84
|
const mergedRefs = (0, _compose.useMergeRefs)([contentRef, (0, _blockEditor.__unstableUseTypingObserver)()]);
|
|
85
|
+
const isTemplatePart = templateType === 'wp_template_part';
|
|
75
86
|
return (0, _element.createElement)(_blockEditor.BlockEditorProvider, {
|
|
76
87
|
settings: settings,
|
|
77
88
|
value: blocks,
|
|
78
89
|
onInput: onInput,
|
|
79
90
|
onChange: onChange,
|
|
80
91
|
useSubRegistry: false
|
|
81
|
-
}, (0, _element.createElement)(_templatePartConverter.default, null), (0, _element.createElement)(_blockEditor.__experimentalLinkControl.ViewerFill, null, (0, _element.useCallback)(fillProps => (0, _element.createElement)(_navigateToLink.default, (0, _extends2.default)({}, fillProps, {
|
|
92
|
+
}, (0, _element.createElement)(_editTemplatePartMenuButton.default, null), (0, _element.createElement)(_templatePartConverter.default, null), (0, _element.createElement)(_blockEditor.__experimentalLinkControl.ViewerFill, null, (0, _element.useCallback)(fillProps => (0, _element.createElement)(_navigateToLink.default, (0, _extends2.default)({}, fillProps, {
|
|
82
93
|
activePage: page,
|
|
83
94
|
onActivePageChange: setPage
|
|
84
95
|
})), [page])), (0, _element.createElement)(_sidebar.SidebarInspectorFill, null, (0, _element.createElement)(_blockEditor.BlockInspector, null)), (0, _element.createElement)(_blockEditor.BlockTools, {
|
|
85
|
-
className:
|
|
96
|
+
className: (0, _classnames.default)('edit-site-visual-editor', {
|
|
97
|
+
'is-focus-mode': isTemplatePart
|
|
98
|
+
}),
|
|
86
99
|
__unstableContentRef: contentRef
|
|
87
|
-
}, (0, _element.createElement)(_blockEditor.__unstableIframe, {
|
|
100
|
+
}, (0, _element.createElement)(_backButton.default, null), (0, _element.createElement)(_blockEditor.__unstableIframe, {
|
|
88
101
|
style: resizedCanvasStyles,
|
|
89
102
|
head: (0, _element.createElement)(_blockEditor.__unstableEditorStyles, {
|
|
90
103
|
styles: settings.styles
|
|
91
104
|
}),
|
|
92
105
|
ref: ref,
|
|
93
|
-
contentRef: mergedRefs
|
|
106
|
+
contentRef: mergedRefs,
|
|
107
|
+
name: "editor-canvas",
|
|
108
|
+
className: "edit-site-visual-editor__editor-canvas"
|
|
94
109
|
}, (0, _element.createElement)(_blockEditor.BlockList, {
|
|
95
|
-
className: "edit-site-block-editor__block-list",
|
|
110
|
+
className: "edit-site-block-editor__block-list wp-site-blocks",
|
|
96
111
|
__experimentalLayout: LAYOUT
|
|
97
112
|
})), (0, _element.createElement)(_blockEditor.__unstableBlockSettingsMenuFirstItem, null, ({
|
|
98
113
|
onClose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/block-editor/index.js"],"names":["LAYOUT","type","alignments","BlockEditor","setIsInserterOpen","settings","templateType","page","deviceType","select","getSettings","getEditedPostType","getPage","__experimentalGetPreviewDeviceType","editSiteStore","blocks","onInput","onChange","setPage","resizedCanvasStyles","ref","contentRef","mergedRefs","fillProps","styles","onClose"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/block-editor/index.js"],"names":["LAYOUT","type","alignments","BlockEditor","setIsInserterOpen","settings","templateType","page","deviceType","select","getSettings","getEditedPostType","getPage","__experimentalGetPreviewDeviceType","editSiteStore","blocks","onInput","onChange","setPage","resizedCanvasStyles","ref","contentRef","mergedRefs","isTemplatePart","fillProps","styles","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\t__experimentalLinkControl,\n\tBlockInspector,\n\tBlockList,\n\tBlockTools,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__experimentalUseResizeCanvas as useResizeCanvas,\n\t__unstableUseTypingObserver as useTypingObserver,\n\t__unstableUseMouseMoveTypingReset as useMouseMoveTypingReset,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartConverter from '../template-part-converter';\nimport NavigateToLink from '../navigate-to-link';\nimport { SidebarInspectorFill } from '../sidebar';\nimport { store as editSiteStore } from '../../store';\nimport BlockInspectorButton from './block-inspector-button';\nimport EditTemplatePartMenuButton from '../edit-template-part-menu-button';\nimport BackButton from './back-button';\n\nconst LAYOUT = {\n\ttype: 'default',\n\t// At the root level of the site editor, no alignments should be allowed.\n\talignments: [],\n};\n\nexport default function BlockEditor( { setIsInserterOpen } ) {\n\tconst { settings, templateType, page, deviceType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\tgetEditedPostType,\n\t\t\t\tgetPage,\n\t\t\t\t__experimentalGetPreviewDeviceType,\n\t\t\t} = select( editSiteStore );\n\n\t\t\treturn {\n\t\t\t\tsettings: getSettings( setIsInserterOpen ),\n\t\t\t\ttemplateType: getEditedPostType(),\n\t\t\t\tpage: getPage(),\n\t\t\t\tdeviceType: __experimentalGetPreviewDeviceType(),\n\t\t\t};\n\t\t},\n\t\t[ setIsInserterOpen ]\n\t);\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\ttemplateType\n\t);\n\tconst { setPage } = useDispatch( editSiteStore );\n\tconst resizedCanvasStyles = useResizeCanvas( deviceType, true );\n\tconst ref = useMouseMoveTypingReset();\n\tconst contentRef = useRef();\n\tconst mergedRefs = useMergeRefs( [ contentRef, useTypingObserver() ] );\n\n\tconst isTemplatePart = templateType === 'wp_template_part';\n\n\treturn (\n\t\t<BlockEditorProvider\n\t\t\tsettings={ settings }\n\t\t\tvalue={ blocks }\n\t\t\tonInput={ onInput }\n\t\t\tonChange={ onChange }\n\t\t\tuseSubRegistry={ false }\n\t\t>\n\t\t\t<EditTemplatePartMenuButton />\n\t\t\t<TemplatePartConverter />\n\t\t\t<__experimentalLinkControl.ViewerFill>\n\t\t\t\t{ useCallback(\n\t\t\t\t\t( fillProps ) => (\n\t\t\t\t\t\t<NavigateToLink\n\t\t\t\t\t\t\t{ ...fillProps }\n\t\t\t\t\t\t\tactivePage={ page }\n\t\t\t\t\t\t\tonActivePageChange={ setPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\t[ page ]\n\t\t\t\t) }\n\t\t\t</__experimentalLinkControl.ViewerFill>\n\t\t\t<SidebarInspectorFill>\n\t\t\t\t<BlockInspector />\n\t\t\t</SidebarInspectorFill>\n\t\t\t<BlockTools\n\t\t\t\tclassName={ classnames( 'edit-site-visual-editor', {\n\t\t\t\t\t'is-focus-mode': isTemplatePart,\n\t\t\t\t} ) }\n\t\t\t\t__unstableContentRef={ contentRef }\n\t\t\t>\n\t\t\t\t<BackButton />\n\t\t\t\t<Iframe\n\t\t\t\t\tstyle={ resizedCanvasStyles }\n\t\t\t\t\thead={ <EditorStyles styles={ settings.styles } /> }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tcontentRef={ mergedRefs }\n\t\t\t\t\tname=\"editor-canvas\"\n\t\t\t\t\tclassName=\"edit-site-visual-editor__editor-canvas\"\n\t\t\t\t>\n\t\t\t\t\t<BlockList\n\t\t\t\t\t\tclassName=\"edit-site-block-editor__block-list wp-site-blocks\"\n\t\t\t\t\t\t__experimentalLayout={ LAYOUT }\n\t\t\t\t\t/>\n\t\t\t\t</Iframe>\n\t\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<BlockInspectorButton onClick={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t\t</BlockTools>\n\t\t</BlockEditorProvider>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = EditTemplatePartMenuButton;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _data = require("@wordpress/data");
|
|
11
|
+
|
|
12
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
13
|
+
|
|
14
|
+
var _coreData = require("@wordpress/core-data");
|
|
15
|
+
|
|
16
|
+
var _components = require("@wordpress/components");
|
|
17
|
+
|
|
18
|
+
var _blocks = require("@wordpress/blocks");
|
|
19
|
+
|
|
20
|
+
var _i18n = require("@wordpress/i18n");
|
|
21
|
+
|
|
22
|
+
var _store = require("../../store");
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* WordPress dependencies
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Internal dependencies
|
|
30
|
+
*/
|
|
31
|
+
function EditTemplatePartMenuButton() {
|
|
32
|
+
const selectedTemplatePart = (0, _data.useSelect)(select => {
|
|
33
|
+
const block = select(_blockEditor.store).getSelectedBlock();
|
|
34
|
+
|
|
35
|
+
if (block && (0, _blocks.isTemplatePart)(block)) {
|
|
36
|
+
const {
|
|
37
|
+
theme,
|
|
38
|
+
slug
|
|
39
|
+
} = block.attributes;
|
|
40
|
+
return select(_coreData.store).getEntityRecord('postType', 'wp_template_part', // Ideally this should be an official public API.
|
|
41
|
+
`${theme}//${slug}`);
|
|
42
|
+
}
|
|
43
|
+
}, []);
|
|
44
|
+
const {
|
|
45
|
+
pushTemplatePart
|
|
46
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
47
|
+
|
|
48
|
+
if (!selectedTemplatePart) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return (0, _element.createElement)(_blockEditor.BlockSettingsMenuControls, null, ({
|
|
53
|
+
onClose
|
|
54
|
+
}) => (0, _element.createElement)(_components.MenuItem, {
|
|
55
|
+
onClick: () => {
|
|
56
|
+
pushTemplatePart(selectedTemplatePart.id);
|
|
57
|
+
onClose();
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
/* translators: %s: template part title */
|
|
61
|
+
(0, _i18n.sprintf)((0, _i18n.__)('Edit %s'), selectedTemplatePart.slug)));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/edit-template-part-menu-button/index.js"],"names":["EditTemplatePartMenuButton","selectedTemplatePart","select","block","blockEditorStore","getSelectedBlock","theme","slug","attributes","coreStore","getEntityRecord","pushTemplatePart","editSiteStore","onClose","id"],"mappings":";;;;;;;;;AAGA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AAKA;;AAhBA;AACA;AACA;;AAWA;AACA;AACA;AAGe,SAASA,0BAAT,GAAsC;AACpD,QAAMC,oBAAoB,GAAG,qBAAaC,MAAF,IAAc;AACrD,UAAMC,KAAK,GAAGD,MAAM,CAAEE,kBAAF,CAAN,CAA2BC,gBAA3B,EAAd;;AAEA,QAAKF,KAAK,IAAI,4BAAgBA,KAAhB,CAAd,EAAwC;AACvC,YAAM;AAAEG,QAAAA,KAAF;AAASC,QAAAA;AAAT,UAAkBJ,KAAK,CAACK,UAA9B;AAEA,aAAON,MAAM,CAAEO,eAAF,CAAN,CAAoBC,eAApB,CACN,UADM,EAEN,kBAFM,EAGN;AACC,SAAGJ,KAAO,KAAKC,IAAM,EAJhB,CAAP;AAMA;AACD,GAb4B,EAa1B,EAb0B,CAA7B;AAcA,QAAM;AAAEI,IAAAA;AAAF,MAAuB,uBAAaC,YAAb,CAA7B;;AAEA,MAAK,CAAEX,oBAAP,EAA8B;AAC7B,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,sCAAD,QACG,CAAE;AAAEY,IAAAA;AAAF,GAAF,KACD,4BAAC,oBAAD;AACC,IAAA,OAAO,EAAG,MAAM;AACfF,MAAAA,gBAAgB,CAAEV,oBAAoB,CAACa,EAAvB,CAAhB;AACAD,MAAAA,OAAO;AACP;AAJF;AAOE;AACA,qBAAS,cAAI,SAAJ,CAAT,EAA0BZ,oBAAoB,CAACM,IAA/C,CARF,CAFF,CADD;AAiBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\tBlockSettingsMenuControls,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { MenuItem } from '@wordpress/components';\nimport { isTemplatePart } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function EditTemplatePartMenuButton() {\n\tconst selectedTemplatePart = useSelect( ( select ) => {\n\t\tconst block = select( blockEditorStore ).getSelectedBlock();\n\n\t\tif ( block && isTemplatePart( block ) ) {\n\t\t\tconst { theme, slug } = block.attributes;\n\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t// Ideally this should be an official public API.\n\t\t\t\t`${ theme }//${ slug }`\n\t\t\t);\n\t\t}\n\t}, [] );\n\tconst { pushTemplatePart } = useDispatch( editSiteStore );\n\n\tif ( ! selectedTemplatePart ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tpushTemplatePart( selectedTemplatePart.id );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{\n\t\t\t\t\t\t/* translators: %s: template part title */\n\t\t\t\t\t\tsprintf( __( 'Edit %s' ), selectedTemplatePart.slug )\n\t\t\t\t\t}\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"]}
|
|
@@ -77,8 +77,21 @@ exports.useGlobalStylesReset = useGlobalStylesReset;
|
|
|
77
77
|
const extractSupportKeys = supports => {
|
|
78
78
|
const supportKeys = [];
|
|
79
79
|
Object.keys(_blocks.__EXPERIMENTAL_STYLE_PROPERTY).forEach(name => {
|
|
80
|
+
if (!_blocks.__EXPERIMENTAL_STYLE_PROPERTY[name].support) {
|
|
81
|
+
return;
|
|
82
|
+
} // Opting out means that, for certain support keys like background color,
|
|
83
|
+
// blocks have to explicitly set the support value false. If the key is
|
|
84
|
+
// unset, we still enable it.
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
if (_blocks.__EXPERIMENTAL_STYLE_PROPERTY[name].requiresOptOut) {
|
|
88
|
+
if ((0, _lodash.has)(supports, _blocks.__EXPERIMENTAL_STYLE_PROPERTY[name].support[0]) && (0, _lodash.get)(supports, _blocks.__EXPERIMENTAL_STYLE_PROPERTY[name].support) !== false) {
|
|
89
|
+
return supportKeys.push(name);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
80
93
|
if ((0, _lodash.get)(supports, _blocks.__EXPERIMENTAL_STYLE_PROPERTY[name].support, false)) {
|
|
81
|
-
supportKeys.push(name);
|
|
94
|
+
return supportKeys.push(name);
|
|
82
95
|
}
|
|
83
96
|
});
|
|
84
97
|
return supportKeys;
|
|
@@ -128,7 +141,7 @@ function GlobalStylesProvider({
|
|
|
128
141
|
blockTypes: select(_blocks.store).getBlockTypes(),
|
|
129
142
|
settings: select(_store.store).getSettings()
|
|
130
143
|
};
|
|
131
|
-
});
|
|
144
|
+
}, []);
|
|
132
145
|
const {
|
|
133
146
|
updateSettings
|
|
134
147
|
} = (0, _data.useDispatch)(_store.store);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/editor/global-styles-provider.js"],"names":["EMPTY_CONTENT","isGlobalStylesUserThemeJSON","version","EMPTY_CONTENT_STRING","JSON","stringify","GlobalStylesContext","getSetting","context","path","setSetting","newValue","getStyle","propertyName","origin","setStyle","contexts","mergeTreesCustomizer","objValue","srcValue","Array","isArray","useGlobalStylesContext","useGlobalStylesEntityContent","useGlobalStylesReset","content","setContent","canRestart","extractSupportKeys","supports","supportKeys","Object","keys","STYLE_PROPERTY","forEach","name","support","push","getBlockMetadata","blockTypes","result","blockType","selector","__experimentalSelector","replace","blockSelectors","split","elements","ELEMENTS","key","elementSelector","blockSelector","join","immutableSet","object","value","clone","GlobalStylesProvider","children","baseStyles","settings","select","blocksStore","getBlockTypes","editSiteStore","getSettings","updateSettings","blocks","__experimentalGlobalStylesBaseStyles","themeStyles","userStyles","mergedStyles","newUserStyles","parse","e","console","error","addUserToSettings","settingsToAdd","PRESET_METADATA","presetData","user","userStylesWithOrigin","newMergedStyles","nextValue","root","ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","propertyPath","newContent","newSettings","styles","newStyles","nonGlobalStyles","filter","style","isGlobalStyles","customProperties","globalStyles","css","__experimentalNoWrapper","__experimentalFeatures"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { set, get, mergeWith, mapValues, setWith, clone } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tROOT_BLOCK_NAME,\n\tROOT_BLOCK_SELECTOR,\n\tROOT_BLOCK_SUPPORTS,\n\tgetValueFromVariable,\n\tgetPresetVariable,\n\tPRESET_METADATA,\n} from './utils';\nimport { toCustomProperties, toStyles } from './global-styles-renderer';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_CONTENT = { isGlobalStylesUserThemeJSON: true, version: 1 };\nconst EMPTY_CONTENT_STRING = JSON.stringify( EMPTY_CONTENT );\n\nconst GlobalStylesContext = createContext( {\n\t/* eslint-disable no-unused-vars */\n\tgetSetting: ( context, path ) => {},\n\tsetSetting: ( context, path, newValue ) => {},\n\tgetStyle: ( context, propertyName, origin ) => {},\n\tsetStyle: ( context, propertyName, newValue ) => {},\n\tcontexts: {},\n\t/* eslint-enable no-unused-vars */\n} );\n\nconst mergeTreesCustomizer = ( objValue, srcValue ) => {\n\t// We only pass as arrays the presets,\n\t// in which case we want the new array of values\n\t// to override the old array (no merging).\n\tif ( Array.isArray( srcValue ) ) {\n\t\treturn srcValue;\n\t}\n};\n\nexport const useGlobalStylesContext = () => useContext( GlobalStylesContext );\n\nconst useGlobalStylesEntityContent = () => {\n\treturn useEntityProp( 'postType', 'wp_global_styles', 'content' );\n};\n\nexport const useGlobalStylesReset = () => {\n\tconst [ content, setContent ] = useGlobalStylesEntityContent();\n\tconst canRestart = !! content && content !== EMPTY_CONTENT_STRING;\n\treturn [\n\t\tcanRestart,\n\t\tuseCallback( () => setContent( EMPTY_CONTENT_STRING ), [ setContent ] ),\n\t];\n};\n\nconst extractSupportKeys = ( supports ) => {\n\tconst supportKeys = [];\n\tObject.keys( STYLE_PROPERTY ).forEach( ( name ) => {\n\t\tif ( get( supports, STYLE_PROPERTY[ name ].support, false ) ) {\n\t\t\tsupportKeys.push( name );\n\t\t}\n\t} );\n\treturn supportKeys;\n};\n\nconst getBlockMetadata = ( blockTypes ) => {\n\tconst result = {};\n\n\tblockTypes.forEach( ( blockType ) => {\n\t\tconst name = blockType.name;\n\t\tconst supports = extractSupportKeys( blockType?.supports );\n\n\t\tconst selector =\n\t\t\tblockType?.supports?.__experimentalSelector ??\n\t\t\t'.wp-block-' + name.replace( 'core/', '' ).replace( '/', '-' );\n\t\tconst blockSelectors = selector.split( ',' );\n\t\tconst elements = [];\n\t\tObject.keys( ELEMENTS ).forEach( ( key ) => {\n\t\t\tconst elementSelector = [];\n\t\t\tblockSelectors.forEach( ( blockSelector ) => {\n\t\t\t\telementSelector.push( blockSelector + ' ' + ELEMENTS[ key ] );\n\t\t\t} );\n\t\t\telements[ key ] = elementSelector.join( ',' );\n\t\t} );\n\t\tresult[ name ] = {\n\t\t\tname,\n\t\t\tselector,\n\t\t\tsupports,\n\t\t\telements,\n\t\t};\n\t} );\n\n\treturn result;\n};\n\nfunction immutableSet( object, path, value ) {\n\treturn setWith( object ? clone( object ) : {}, path, value, clone );\n}\n\nexport default function GlobalStylesProvider( { children, baseStyles } ) {\n\tconst [ content, setContent ] = useGlobalStylesEntityContent();\n\tconst { blockTypes, settings } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\tsettings: select( editSiteStore ).getSettings(),\n\t\t};\n\t} );\n\tconst { updateSettings } = useDispatch( editSiteStore );\n\n\tconst blocks = useMemo( () => getBlockMetadata( blockTypes ), [\n\t\tblockTypes,\n\t] );\n\n\tconst { __experimentalGlobalStylesBaseStyles: themeStyles } = settings;\n\tconst { userStyles, mergedStyles } = useMemo( () => {\n\t\tlet newUserStyles;\n\t\ttry {\n\t\t\tnewUserStyles = content ? JSON.parse( content ) : EMPTY_CONTENT;\n\n\t\t\t// At the moment, we ignore previous user config that\n\t\t\t// is in a different version than the theme config.\n\t\t\tif ( newUserStyles?.version !== baseStyles?.version ) {\n\t\t\t\tnewUserStyles = EMPTY_CONTENT;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t/* eslint-disable no-console */\n\t\t\tconsole.error( 'User data is not JSON' );\n\t\t\tconsole.error( e );\n\t\t\t/* eslint-enable no-console */\n\t\t\tnewUserStyles = EMPTY_CONTENT;\n\t\t}\n\n\t\t// It is very important to verify if the flag isGlobalStylesUserThemeJSON is true.\n\t\t// If it is not true the content was not escaped and is not safe.\n\t\tif ( ! newUserStyles.isGlobalStylesUserThemeJSON ) {\n\t\t\tnewUserStyles = EMPTY_CONTENT;\n\t\t}\n\n\t\tconst addUserToSettings = ( settingsToAdd ) => {\n\t\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\t\tconst presetData = get( settingsToAdd, path );\n\t\t\t\tif ( presetData ) {\n\t\t\t\t\tsettingsToAdd = immutableSet( settingsToAdd, path, {\n\t\t\t\t\t\tuser: presetData,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn settingsToAdd;\n\t\t};\n\n\t\tlet userStylesWithOrigin = newUserStyles;\n\t\tif ( userStylesWithOrigin.settings ) {\n\t\t\tuserStylesWithOrigin = {\n\t\t\t\t...userStylesWithOrigin,\n\t\t\t\tsettings: addUserToSettings( userStylesWithOrigin.settings ),\n\t\t\t};\n\t\t\tif ( userStylesWithOrigin.settings.blocks ) {\n\t\t\t\tuserStylesWithOrigin.settings = {\n\t\t\t\t\t...userStylesWithOrigin.settings,\n\t\t\t\t\tblocks: mapValues(\n\t\t\t\t\t\tuserStylesWithOrigin.settings.blocks,\n\t\t\t\t\t\taddUserToSettings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// At this point, the version schema of the theme & user\n\t\t// is the same, so we can merge them.\n\t\tconst newMergedStyles = mergeWith(\n\t\t\t{},\n\t\t\tbaseStyles,\n\t\t\tuserStylesWithOrigin,\n\t\t\tmergeTreesCustomizer\n\t\t);\n\n\t\treturn {\n\t\t\tuserStyles: newUserStyles,\n\t\t\tmergedStyles: newMergedStyles,\n\t\t};\n\t}, [ content ] );\n\n\tconst nextValue = useMemo(\n\t\t() => ( {\n\t\t\troot: {\n\t\t\t\tname: ROOT_BLOCK_NAME,\n\t\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t\t\tsupports: ROOT_BLOCK_SUPPORTS,\n\t\t\t\telements: ELEMENTS,\n\t\t\t},\n\t\t\tblocks,\n\t\t\tgetSetting: ( context, propertyPath ) => {\n\t\t\t\tconst path =\n\t\t\t\t\tcontext === ROOT_BLOCK_NAME\n\t\t\t\t\t\t? propertyPath\n\t\t\t\t\t\t: [ 'blocks', context, ...propertyPath ];\n\t\t\t\tget( userStyles?.settings, path );\n\t\t\t},\n\t\t\tsetSetting: ( context, propertyPath, newValue ) => {\n\t\t\t\tconst newContent = { ...userStyles };\n\t\t\t\tconst path =\n\t\t\t\t\tcontext === ROOT_BLOCK_NAME\n\t\t\t\t\t\t? [ 'settings' ]\n\t\t\t\t\t\t: [ 'settings', 'blocks', context ];\n\n\t\t\t\tlet newSettings = get( newContent, path );\n\t\t\t\tif ( ! newSettings ) {\n\t\t\t\t\tnewSettings = {};\n\t\t\t\t\tset( newContent, path, newSettings );\n\t\t\t\t}\n\t\t\t\tset( newSettings, propertyPath, newValue );\n\n\t\t\t\tsetContent( JSON.stringify( newContent ) );\n\t\t\t},\n\t\t\tgetStyle: ( context, propertyName, origin = 'merged' ) => {\n\t\t\t\tconst propertyPath = STYLE_PROPERTY[ propertyName ].value;\n\t\t\t\tconst path =\n\t\t\t\t\tcontext === ROOT_BLOCK_NAME\n\t\t\t\t\t\t? propertyPath\n\t\t\t\t\t\t: [ 'blocks', context, ...propertyPath ];\n\n\t\t\t\tif ( origin === 'theme' ) {\n\t\t\t\t\tconst value = get( themeStyles?.styles, path );\n\t\t\t\t\treturn getValueFromVariable( themeStyles, context, value );\n\t\t\t\t}\n\n\t\t\t\tif ( origin === 'user' ) {\n\t\t\t\t\tconst value = get( userStyles?.styles, path );\n\n\t\t\t\t\t// We still need to use merged styles here because the\n\t\t\t\t\t// presets used to resolve user variable may be defined a\n\t\t\t\t\t// layer down ( core, theme, or user ).\n\t\t\t\t\treturn getValueFromVariable( mergedStyles, context, value );\n\t\t\t\t}\n\n\t\t\t\tconst value = get( mergedStyles?.styles, path );\n\t\t\t\treturn getValueFromVariable( mergedStyles, context, value );\n\t\t\t},\n\t\t\tsetStyle: ( context, propertyName, newValue ) => {\n\t\t\t\tconst newContent = { ...userStyles };\n\n\t\t\t\tconst path =\n\t\t\t\t\tROOT_BLOCK_NAME === context\n\t\t\t\t\t\t? [ 'styles' ]\n\t\t\t\t\t\t: [ 'styles', 'blocks', context ];\n\t\t\t\tconst propertyPath = STYLE_PROPERTY[ propertyName ].value;\n\n\t\t\t\tlet newStyles = get( newContent, path );\n\t\t\t\tif ( ! newStyles ) {\n\t\t\t\t\tnewStyles = {};\n\t\t\t\t\tset( newContent, path, newStyles );\n\t\t\t\t}\n\t\t\t\tset(\n\t\t\t\t\tnewStyles,\n\t\t\t\t\tpropertyPath,\n\t\t\t\t\tgetPresetVariable(\n\t\t\t\t\t\tmergedStyles,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tpropertyName,\n\t\t\t\t\t\tnewValue\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\tsetContent( JSON.stringify( newContent ) );\n\t\t\t},\n\t\t} ),\n\t\t[ content, mergedStyles, themeStyles ]\n\t);\n\n\tuseEffect( () => {\n\t\tconst nonGlobalStyles = settings.styles.filter(\n\t\t\t( style ) => ! style.isGlobalStyles\n\t\t);\n\t\tconst customProperties = toCustomProperties( mergedStyles, blocks );\n\t\tconst globalStyles = toStyles( mergedStyles, blocks );\n\t\tupdateSettings( {\n\t\t\t...settings,\n\t\t\tstyles: [\n\t\t\t\t...nonGlobalStyles,\n\t\t\t\t{\n\t\t\t\t\tcss: customProperties,\n\t\t\t\t\tisGlobalStyles: true,\n\t\t\t\t\t__experimentalNoWrapper: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcss: globalStyles,\n\t\t\t\t\tisGlobalStyles: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\t__experimentalFeatures: mergedStyles.settings,\n\t\t} );\n\t}, [ blocks, mergedStyles ] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ nextValue }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/editor/global-styles-provider.js"],"names":["EMPTY_CONTENT","isGlobalStylesUserThemeJSON","version","EMPTY_CONTENT_STRING","JSON","stringify","GlobalStylesContext","getSetting","context","path","setSetting","newValue","getStyle","propertyName","origin","setStyle","contexts","mergeTreesCustomizer","objValue","srcValue","Array","isArray","useGlobalStylesContext","useGlobalStylesEntityContent","useGlobalStylesReset","content","setContent","canRestart","extractSupportKeys","supports","supportKeys","Object","keys","STYLE_PROPERTY","forEach","name","support","requiresOptOut","push","getBlockMetadata","blockTypes","result","blockType","selector","__experimentalSelector","replace","blockSelectors","split","elements","ELEMENTS","key","elementSelector","blockSelector","join","immutableSet","object","value","clone","GlobalStylesProvider","children","baseStyles","settings","select","blocksStore","getBlockTypes","editSiteStore","getSettings","updateSettings","blocks","__experimentalGlobalStylesBaseStyles","themeStyles","userStyles","mergedStyles","newUserStyles","parse","e","console","error","addUserToSettings","settingsToAdd","PRESET_METADATA","presetData","user","userStylesWithOrigin","newMergedStyles","nextValue","root","ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","propertyPath","newContent","newSettings","styles","newStyles","nonGlobalStyles","filter","style","isGlobalStyles","customProperties","globalStyles","css","__experimentalNoWrapper","__experimentalFeatures"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { set, get, has, mergeWith, mapValues, setWith, clone } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tROOT_BLOCK_NAME,\n\tROOT_BLOCK_SELECTOR,\n\tROOT_BLOCK_SUPPORTS,\n\tgetValueFromVariable,\n\tgetPresetVariable,\n\tPRESET_METADATA,\n} from './utils';\nimport { toCustomProperties, toStyles } from './global-styles-renderer';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_CONTENT = { isGlobalStylesUserThemeJSON: true, version: 1 };\nconst EMPTY_CONTENT_STRING = JSON.stringify( EMPTY_CONTENT );\n\nconst GlobalStylesContext = createContext( {\n\t/* eslint-disable no-unused-vars */\n\tgetSetting: ( context, path ) => {},\n\tsetSetting: ( context, path, newValue ) => {},\n\tgetStyle: ( context, propertyName, origin ) => {},\n\tsetStyle: ( context, propertyName, newValue ) => {},\n\tcontexts: {},\n\t/* eslint-enable no-unused-vars */\n} );\n\nconst mergeTreesCustomizer = ( objValue, srcValue ) => {\n\t// We only pass as arrays the presets,\n\t// in which case we want the new array of values\n\t// to override the old array (no merging).\n\tif ( Array.isArray( srcValue ) ) {\n\t\treturn srcValue;\n\t}\n};\n\nexport const useGlobalStylesContext = () => useContext( GlobalStylesContext );\n\nconst useGlobalStylesEntityContent = () => {\n\treturn useEntityProp( 'postType', 'wp_global_styles', 'content' );\n};\n\nexport const useGlobalStylesReset = () => {\n\tconst [ content, setContent ] = useGlobalStylesEntityContent();\n\tconst canRestart = !! content && content !== EMPTY_CONTENT_STRING;\n\treturn [\n\t\tcanRestart,\n\t\tuseCallback( () => setContent( EMPTY_CONTENT_STRING ), [ setContent ] ),\n\t];\n};\n\nconst extractSupportKeys = ( supports ) => {\n\tconst supportKeys = [];\n\tObject.keys( STYLE_PROPERTY ).forEach( ( name ) => {\n\t\tif ( ! STYLE_PROPERTY[ name ].support ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Opting out means that, for certain support keys like background color,\n\t\t// blocks have to explicitly set the support value false. If the key is\n\t\t// unset, we still enable it.\n\t\tif ( STYLE_PROPERTY[ name ].requiresOptOut ) {\n\t\t\tif (\n\t\t\t\thas( supports, STYLE_PROPERTY[ name ].support[ 0 ] ) &&\n\t\t\t\tget( supports, STYLE_PROPERTY[ name ].support ) !== false\n\t\t\t) {\n\t\t\t\treturn supportKeys.push( name );\n\t\t\t}\n\t\t}\n\n\t\tif ( get( supports, STYLE_PROPERTY[ name ].support, false ) ) {\n\t\t\treturn supportKeys.push( name );\n\t\t}\n\t} );\n\treturn supportKeys;\n};\n\nconst getBlockMetadata = ( blockTypes ) => {\n\tconst result = {};\n\n\tblockTypes.forEach( ( blockType ) => {\n\t\tconst name = blockType.name;\n\t\tconst supports = extractSupportKeys( blockType?.supports );\n\n\t\tconst selector =\n\t\t\tblockType?.supports?.__experimentalSelector ??\n\t\t\t'.wp-block-' + name.replace( 'core/', '' ).replace( '/', '-' );\n\t\tconst blockSelectors = selector.split( ',' );\n\t\tconst elements = [];\n\t\tObject.keys( ELEMENTS ).forEach( ( key ) => {\n\t\t\tconst elementSelector = [];\n\t\t\tblockSelectors.forEach( ( blockSelector ) => {\n\t\t\t\telementSelector.push( blockSelector + ' ' + ELEMENTS[ key ] );\n\t\t\t} );\n\t\t\telements[ key ] = elementSelector.join( ',' );\n\t\t} );\n\t\tresult[ name ] = {\n\t\t\tname,\n\t\t\tselector,\n\t\t\tsupports,\n\t\t\telements,\n\t\t};\n\t} );\n\n\treturn result;\n};\n\nfunction immutableSet( object, path, value ) {\n\treturn setWith( object ? clone( object ) : {}, path, value, clone );\n}\n\nexport default function GlobalStylesProvider( { children, baseStyles } ) {\n\tconst [ content, setContent ] = useGlobalStylesEntityContent();\n\tconst { blockTypes, settings } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\tsettings: select( editSiteStore ).getSettings(),\n\t\t};\n\t}, [] );\n\tconst { updateSettings } = useDispatch( editSiteStore );\n\n\tconst blocks = useMemo( () => getBlockMetadata( blockTypes ), [\n\t\tblockTypes,\n\t] );\n\n\tconst { __experimentalGlobalStylesBaseStyles: themeStyles } = settings;\n\tconst { userStyles, mergedStyles } = useMemo( () => {\n\t\tlet newUserStyles;\n\t\ttry {\n\t\t\tnewUserStyles = content ? JSON.parse( content ) : EMPTY_CONTENT;\n\n\t\t\t// At the moment, we ignore previous user config that\n\t\t\t// is in a different version than the theme config.\n\t\t\tif ( newUserStyles?.version !== baseStyles?.version ) {\n\t\t\t\tnewUserStyles = EMPTY_CONTENT;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t/* eslint-disable no-console */\n\t\t\tconsole.error( 'User data is not JSON' );\n\t\t\tconsole.error( e );\n\t\t\t/* eslint-enable no-console */\n\t\t\tnewUserStyles = EMPTY_CONTENT;\n\t\t}\n\n\t\t// It is very important to verify if the flag isGlobalStylesUserThemeJSON is true.\n\t\t// If it is not true the content was not escaped and is not safe.\n\t\tif ( ! newUserStyles.isGlobalStylesUserThemeJSON ) {\n\t\t\tnewUserStyles = EMPTY_CONTENT;\n\t\t}\n\n\t\tconst addUserToSettings = ( settingsToAdd ) => {\n\t\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\t\tconst presetData = get( settingsToAdd, path );\n\t\t\t\tif ( presetData ) {\n\t\t\t\t\tsettingsToAdd = immutableSet( settingsToAdd, path, {\n\t\t\t\t\t\tuser: presetData,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn settingsToAdd;\n\t\t};\n\n\t\tlet userStylesWithOrigin = newUserStyles;\n\t\tif ( userStylesWithOrigin.settings ) {\n\t\t\tuserStylesWithOrigin = {\n\t\t\t\t...userStylesWithOrigin,\n\t\t\t\tsettings: addUserToSettings( userStylesWithOrigin.settings ),\n\t\t\t};\n\t\t\tif ( userStylesWithOrigin.settings.blocks ) {\n\t\t\t\tuserStylesWithOrigin.settings = {\n\t\t\t\t\t...userStylesWithOrigin.settings,\n\t\t\t\t\tblocks: mapValues(\n\t\t\t\t\t\tuserStylesWithOrigin.settings.blocks,\n\t\t\t\t\t\taddUserToSettings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// At this point, the version schema of the theme & user\n\t\t// is the same, so we can merge them.\n\t\tconst newMergedStyles = mergeWith(\n\t\t\t{},\n\t\t\tbaseStyles,\n\t\t\tuserStylesWithOrigin,\n\t\t\tmergeTreesCustomizer\n\t\t);\n\n\t\treturn {\n\t\t\tuserStyles: newUserStyles,\n\t\t\tmergedStyles: newMergedStyles,\n\t\t};\n\t}, [ content ] );\n\n\tconst nextValue = useMemo(\n\t\t() => ( {\n\t\t\troot: {\n\t\t\t\tname: ROOT_BLOCK_NAME,\n\t\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t\t\tsupports: ROOT_BLOCK_SUPPORTS,\n\t\t\t\telements: ELEMENTS,\n\t\t\t},\n\t\t\tblocks,\n\t\t\tgetSetting: ( context, propertyPath ) => {\n\t\t\t\tconst path =\n\t\t\t\t\tcontext === ROOT_BLOCK_NAME\n\t\t\t\t\t\t? propertyPath\n\t\t\t\t\t\t: [ 'blocks', context, ...propertyPath ];\n\t\t\t\tget( userStyles?.settings, path );\n\t\t\t},\n\t\t\tsetSetting: ( context, propertyPath, newValue ) => {\n\t\t\t\tconst newContent = { ...userStyles };\n\t\t\t\tconst path =\n\t\t\t\t\tcontext === ROOT_BLOCK_NAME\n\t\t\t\t\t\t? [ 'settings' ]\n\t\t\t\t\t\t: [ 'settings', 'blocks', context ];\n\n\t\t\t\tlet newSettings = get( newContent, path );\n\t\t\t\tif ( ! newSettings ) {\n\t\t\t\t\tnewSettings = {};\n\t\t\t\t\tset( newContent, path, newSettings );\n\t\t\t\t}\n\t\t\t\tset( newSettings, propertyPath, newValue );\n\n\t\t\t\tsetContent( JSON.stringify( newContent ) );\n\t\t\t},\n\t\t\tgetStyle: ( context, propertyName, origin = 'merged' ) => {\n\t\t\t\tconst propertyPath = STYLE_PROPERTY[ propertyName ].value;\n\t\t\t\tconst path =\n\t\t\t\t\tcontext === ROOT_BLOCK_NAME\n\t\t\t\t\t\t? propertyPath\n\t\t\t\t\t\t: [ 'blocks', context, ...propertyPath ];\n\n\t\t\t\tif ( origin === 'theme' ) {\n\t\t\t\t\tconst value = get( themeStyles?.styles, path );\n\t\t\t\t\treturn getValueFromVariable( themeStyles, context, value );\n\t\t\t\t}\n\n\t\t\t\tif ( origin === 'user' ) {\n\t\t\t\t\tconst value = get( userStyles?.styles, path );\n\n\t\t\t\t\t// We still need to use merged styles here because the\n\t\t\t\t\t// presets used to resolve user variable may be defined a\n\t\t\t\t\t// layer down ( core, theme, or user ).\n\t\t\t\t\treturn getValueFromVariable( mergedStyles, context, value );\n\t\t\t\t}\n\n\t\t\t\tconst value = get( mergedStyles?.styles, path );\n\t\t\t\treturn getValueFromVariable( mergedStyles, context, value );\n\t\t\t},\n\t\t\tsetStyle: ( context, propertyName, newValue ) => {\n\t\t\t\tconst newContent = { ...userStyles };\n\n\t\t\t\tconst path =\n\t\t\t\t\tROOT_BLOCK_NAME === context\n\t\t\t\t\t\t? [ 'styles' ]\n\t\t\t\t\t\t: [ 'styles', 'blocks', context ];\n\t\t\t\tconst propertyPath = STYLE_PROPERTY[ propertyName ].value;\n\n\t\t\t\tlet newStyles = get( newContent, path );\n\t\t\t\tif ( ! newStyles ) {\n\t\t\t\t\tnewStyles = {};\n\t\t\t\t\tset( newContent, path, newStyles );\n\t\t\t\t}\n\t\t\t\tset(\n\t\t\t\t\tnewStyles,\n\t\t\t\t\tpropertyPath,\n\t\t\t\t\tgetPresetVariable(\n\t\t\t\t\t\tmergedStyles,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tpropertyName,\n\t\t\t\t\t\tnewValue\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\tsetContent( JSON.stringify( newContent ) );\n\t\t\t},\n\t\t} ),\n\t\t[ content, mergedStyles, themeStyles ]\n\t);\n\n\tuseEffect( () => {\n\t\tconst nonGlobalStyles = settings.styles.filter(\n\t\t\t( style ) => ! style.isGlobalStyles\n\t\t);\n\t\tconst customProperties = toCustomProperties( mergedStyles, blocks );\n\t\tconst globalStyles = toStyles( mergedStyles, blocks );\n\t\tupdateSettings( {\n\t\t\t...settings,\n\t\t\tstyles: [\n\t\t\t\t...nonGlobalStyles,\n\t\t\t\t{\n\t\t\t\t\tcss: customProperties,\n\t\t\t\t\tisGlobalStyles: true,\n\t\t\t\t\t__experimentalNoWrapper: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcss: globalStyles,\n\t\t\t\t\tisGlobalStyles: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\t__experimentalFeatures: mergedStyles.settings,\n\t\t} );\n\t}, [ blocks, mergedStyles ] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ nextValue }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"]}
|
|
@@ -220,7 +220,7 @@ const getNodesWithStyles = (tree, blockSelectors) => {
|
|
|
220
220
|
exports.getNodesWithStyles = getNodesWithStyles;
|
|
221
221
|
|
|
222
222
|
const getNodesWithSettings = (tree, blockSelectors) => {
|
|
223
|
-
var _tree$settings2;
|
|
223
|
+
var _tree$settings, _tree$settings2;
|
|
224
224
|
|
|
225
225
|
const nodes = [];
|
|
226
226
|
|
|
@@ -246,13 +246,12 @@ const getNodesWithSettings = (tree, blockSelectors) => {
|
|
|
246
246
|
|
|
247
247
|
|
|
248
248
|
const presets = pickPresets(tree.settings);
|
|
249
|
+
const custom = (_tree$settings = tree.settings) === null || _tree$settings === void 0 ? void 0 : _tree$settings.custom;
|
|
249
250
|
|
|
250
|
-
if (!(0, _lodash.isEmpty)(presets)) {
|
|
251
|
-
var _tree$settings;
|
|
252
|
-
|
|
251
|
+
if (!(0, _lodash.isEmpty)(presets) || !!custom) {
|
|
253
252
|
nodes.push({
|
|
254
253
|
presets,
|
|
255
|
-
custom
|
|
254
|
+
custom,
|
|
256
255
|
selector: _utils.ROOT_BLOCK_SELECTOR
|
|
257
256
|
});
|
|
258
257
|
} // Blocks.
|
|
@@ -260,11 +259,12 @@ const getNodesWithSettings = (tree, blockSelectors) => {
|
|
|
260
259
|
|
|
261
260
|
(0, _lodash.forEach)((_tree$settings2 = tree.settings) === null || _tree$settings2 === void 0 ? void 0 : _tree$settings2.blocks, (node, blockName) => {
|
|
262
261
|
const blockPresets = pickPresets(node);
|
|
262
|
+
const blockCustom = node.custom;
|
|
263
263
|
|
|
264
|
-
if (!(0, _lodash.isEmpty)(blockPresets)) {
|
|
264
|
+
if (!(0, _lodash.isEmpty)(blockPresets) || !!blockCustom) {
|
|
265
265
|
nodes.push({
|
|
266
266
|
presets: blockPresets,
|
|
267
|
-
custom:
|
|
267
|
+
custom: blockCustom,
|
|
268
268
|
selector: blockSelectors[blockName].selector
|
|
269
269
|
});
|
|
270
270
|
}
|
|
@@ -301,7 +301,7 @@ exports.toCustomProperties = toCustomProperties;
|
|
|
301
301
|
const toStyles = (tree, blockSelectors) => {
|
|
302
302
|
const nodesWithStyles = getNodesWithStyles(tree, blockSelectors);
|
|
303
303
|
const nodesWithSettings = getNodesWithSettings(tree, blockSelectors);
|
|
304
|
-
let ruleset = '';
|
|
304
|
+
let ruleset = '.wp-site-blocks > * + * { margin-top: var( --wp--style--block-gap ); margin-bottom: 0; }';
|
|
305
305
|
nodesWithStyles.forEach(({
|
|
306
306
|
selector,
|
|
307
307
|
styles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/editor/global-styles-renderer.js"],"names":["compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","PRESET_METADATA","declarations","path","valueKey","cssVarInfix","presetByOrigin","forEach","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","getStylesDeclarations","blockStyles","STYLE_PROPERTY","properties","pathToValue","styleValue","entries","entry","name","prop","cssProperty","startsWith","getNodesWithStyles","tree","blockSelectors","nodes","styles","pickStyleKeys","treeToPickFrom","includes","ROOT_BLOCK_SELECTOR","elements","ELEMENTS","blocks","node","blockName","elementName","getNodesWithSettings","settings","pickPresets","presets","custom","toCustomProperties","ruleset","customProps","toStyles","nodesWithStyles","nodesWithSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tfirst,\n\tforEach,\n\tget,\n\tisEmpty,\n\tisString,\n\tkebabCase,\n\tpickBy,\n\treduce,\n\tset,\n\tstartsWith,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR } from './utils';\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\tif ( startsWith( uncompiledValue, VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n *\n * @return {Array} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, valueKey, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'core', 'theme', 'user' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector, blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'core', 'theme', 'user' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @return {Array} An array of style declarations.\n */\nfunction getStylesDeclarations( blockStyles = {} ) {\n\treturn reduce(\n\t\tSTYLE_PROPERTY,\n\t\t( declarations, { value, properties }, key ) => {\n\t\t\tconst pathToValue = value;\n\t\t\tif ( first( pathToValue ) === 'elements' ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = get( blockStyles, pathToValue );\n\n\t\t\tif ( !! properties && ! isString( styleValue ) ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif ( ! get( styleValue, [ prop ], false ) ) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tget( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if ( get( blockStyles, pathToValue, false ) ) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tget( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickStyleKeys = ( treeToPickFrom ) =>\n\t\tpickBy( treeToPickFrom, ( value, key ) =>\n\t\t\t[ 'border', 'color', 'spacing', 'typography' ].includes( key )\n\t\t);\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( !! styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\tforEach( tree.styles?.elements, ( value, key ) => {\n\t\tif ( !! value && !! ELEMENTS[ key ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: value,\n\t\t\t\tselector: ELEMENTS[ key ],\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tforEach( tree.styles?.blocks, ( node, blockName ) => {\n\t\tconst blockStyles = pickStyleKeys( node );\n\t\tif ( !! blockStyles && !! blockSelectors?.[ blockName ]?.selector ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: blockStyles,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\n\t\tforEach( node?.elements, ( value, elementName ) => {\n\t\t\tif (\n\t\t\t\t!! value &&\n\t\t\t\t!! blockSelectors?.[ blockName ]?.elements?.[ elementName ]\n\t\t\t) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tstyles: value,\n\t\t\t\t\tselector:\n\t\t\t\t\t\tblockSelectors[ blockName ].elements[ elementName ],\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\treturn nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tif ( ! isEmpty( presets ) ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom: tree.settings?.custom,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tforEach( tree.settings?.blocks, ( node, blockName ) => {\n\t\tconst blockPresets = pickPresets( node );\n\t\tif ( ! isEmpty( blockPresets ) ) {\n\t\t\tnodes.push( {\n\t\t\t\tpresets: blockPresets,\n\t\t\t\tcustom: node.custom,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = ( tree, blockSelectors ) => {\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset = '';\n\tnodesWithStyles.forEach( ( { selector, styles } ) => {\n\t\tconst declarations = getStylesDeclarations( styles );\n\n\t\tif ( declarations.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t} );\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( ! isEmpty( classes ) ) {\n\t\t\truleset = ruleset + classes;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/editor/global-styles-renderer.js"],"names":["compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","PRESET_METADATA","declarations","path","valueKey","cssVarInfix","presetByOrigin","forEach","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","getStylesDeclarations","blockStyles","STYLE_PROPERTY","properties","pathToValue","styleValue","entries","entry","name","prop","cssProperty","startsWith","getNodesWithStyles","tree","blockSelectors","nodes","styles","pickStyleKeys","treeToPickFrom","includes","ROOT_BLOCK_SELECTOR","elements","ELEMENTS","blocks","node","blockName","elementName","getNodesWithSettings","settings","pickPresets","presets","custom","blockCustom","toCustomProperties","ruleset","customProps","toStyles","nodesWithStyles","nodesWithSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tfirst,\n\tforEach,\n\tget,\n\tisEmpty,\n\tisString,\n\tkebabCase,\n\tpickBy,\n\treduce,\n\tset,\n\tstartsWith,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR } from './utils';\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\tif ( startsWith( uncompiledValue, VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n *\n * @return {Array} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, valueKey, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'core', 'theme', 'user' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector, blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'core', 'theme', 'user' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @return {Array} An array of style declarations.\n */\nfunction getStylesDeclarations( blockStyles = {} ) {\n\treturn reduce(\n\t\tSTYLE_PROPERTY,\n\t\t( declarations, { value, properties }, key ) => {\n\t\t\tconst pathToValue = value;\n\t\t\tif ( first( pathToValue ) === 'elements' ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = get( blockStyles, pathToValue );\n\n\t\t\tif ( !! properties && ! isString( styleValue ) ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif ( ! get( styleValue, [ prop ], false ) ) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tget( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if ( get( blockStyles, pathToValue, false ) ) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tget( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickStyleKeys = ( treeToPickFrom ) =>\n\t\tpickBy( treeToPickFrom, ( value, key ) =>\n\t\t\t[ 'border', 'color', 'spacing', 'typography' ].includes( key )\n\t\t);\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( !! styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\tforEach( tree.styles?.elements, ( value, key ) => {\n\t\tif ( !! value && !! ELEMENTS[ key ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: value,\n\t\t\t\tselector: ELEMENTS[ key ],\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tforEach( tree.styles?.blocks, ( node, blockName ) => {\n\t\tconst blockStyles = pickStyleKeys( node );\n\t\tif ( !! blockStyles && !! blockSelectors?.[ blockName ]?.selector ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: blockStyles,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\n\t\tforEach( node?.elements, ( value, elementName ) => {\n\t\t\tif (\n\t\t\t\t!! value &&\n\t\t\t\t!! blockSelectors?.[ blockName ]?.elements?.[ elementName ]\n\t\t\t) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tstyles: value,\n\t\t\t\t\tselector:\n\t\t\t\t\t\tblockSelectors[ blockName ].elements[ elementName ],\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\treturn nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tconst custom = tree.settings?.custom;\n\tif ( ! isEmpty( presets ) || !! custom ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tforEach( tree.settings?.blocks, ( node, blockName ) => {\n\t\tconst blockPresets = pickPresets( node );\n\t\tconst blockCustom = node.custom;\n\t\tif ( ! isEmpty( blockPresets ) || !! blockCustom ) {\n\t\t\tnodes.push( {\n\t\t\t\tpresets: blockPresets,\n\t\t\t\tcustom: blockCustom,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = ( tree, blockSelectors ) => {\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset =\n\t\t'.wp-site-blocks > * + * { margin-top: var( --wp--style--block-gap ); margin-bottom: 0; }';\n\tnodesWithStyles.forEach( ( { selector, styles } ) => {\n\t\tconst declarations = getStylesDeclarations( styles );\n\n\t\tif ( declarations.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t} );\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( ! isEmpty( classes ) ) {\n\t\t\truleset = ruleset + classes;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n"]}
|
|
@@ -25,13 +25,15 @@ var _i18n = require("@wordpress/i18n");
|
|
|
25
25
|
|
|
26
26
|
var _plugins = require("@wordpress/plugins");
|
|
27
27
|
|
|
28
|
+
var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
|
|
29
|
+
|
|
28
30
|
var _header = _interopRequireDefault(require("../header"));
|
|
29
31
|
|
|
30
32
|
var _sidebar = require("../sidebar");
|
|
31
33
|
|
|
32
34
|
var _blockEditor2 = _interopRequireDefault(require("../block-editor"));
|
|
33
35
|
|
|
34
|
-
var
|
|
36
|
+
var _keyboardShortcuts2 = _interopRequireDefault(require("../keyboard-shortcuts"));
|
|
35
37
|
|
|
36
38
|
var _globalStylesProvider = _interopRequireDefault(require("./global-styles-provider"));
|
|
37
39
|
|
|
@@ -163,15 +165,13 @@ function Editor({
|
|
|
163
165
|
}
|
|
164
166
|
|
|
165
167
|
if (isListViewOpen) {
|
|
166
|
-
return (0, _element.createElement)(
|
|
167
|
-
value: "true"
|
|
168
|
-
}, (0, _element.createElement)(_listViewSidebar.default, null));
|
|
168
|
+
return (0, _element.createElement)(_listViewSidebar.default, null);
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
return null;
|
|
172
172
|
};
|
|
173
173
|
|
|
174
|
-
return (0, _element.createElement)(
|
|
174
|
+
return (0, _element.createElement)(_keyboardShortcuts.ShortcutProvider, null, (0, _element.createElement)(_urlQueryController.default, null), (0, _element.createElement)(_components.SlotFillProvider, null, (0, _element.createElement)(_coreData.EntityProvider, {
|
|
175
175
|
kind: "root",
|
|
176
176
|
type: "site"
|
|
177
177
|
}, (0, _element.createElement)(_coreData.EntityProvider, {
|
|
@@ -190,7 +190,7 @@ function Editor({
|
|
|
190
190
|
onError: onError
|
|
191
191
|
}, (0, _element.createElement)(_interface.FullscreenMode, {
|
|
192
192
|
isActive: true
|
|
193
|
-
}), (0, _element.createElement)(_editor.UnsavedChangesWarning, null), (0, _element.createElement)(
|
|
193
|
+
}), (0, _element.createElement)(_editor.UnsavedChangesWarning, null), (0, _element.createElement)(_keyboardShortcuts2.default.Register, null), (0, _element.createElement)(_sidebar.SidebarComplementaryAreaFills, null), (0, _element.createElement)(_interface.InterfaceSkeleton, {
|
|
194
194
|
labels: interfaceLabels,
|
|
195
195
|
drawer: (0, _element.createElement)(_navigationSidebar.default, null),
|
|
196
196
|
secondarySidebar: secondarySidebar(),
|
|
@@ -206,7 +206,7 @@ function Editor({
|
|
|
206
206
|
}), templateResolved && !template && (settings === null || settings === void 0 ? void 0 : settings.siteUrl) && entityId && (0, _element.createElement)(_components.Notice, {
|
|
207
207
|
status: "warning",
|
|
208
208
|
isDismissible: false
|
|
209
|
-
}, (0, _i18n.__)("You attempted to edit an item that doesn't exist. Perhaps it was deleted?")), (0, _element.createElement)(
|
|
209
|
+
}, (0, _i18n.__)("You attempted to edit an item that doesn't exist. Perhaps it was deleted?")), (0, _element.createElement)(_keyboardShortcuts2.default, null)),
|
|
210
210
|
actions: (0, _element.createElement)(_element.Fragment, null, isEntitiesSavedStatesOpen ? (0, _element.createElement)(_editor.EntitiesSavedStates, {
|
|
211
211
|
close: closeEntitiesSavedStates
|
|
212
212
|
}) : (0, _element.createElement)("div", {
|