@wordpress/edit-site 5.12.16 → 5.12.17

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.
Files changed (31) hide show
  1. package/build/components/header-edit-mode/document-actions/index.js +11 -25
  2. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  3. package/build/components/page/index.js +3 -3
  4. package/build/components/page/index.js.map +1 -1
  5. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +1 -1
  6. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  7. package/build/components/sidebar-navigation-screen-template/home-template-details.js +2 -2
  8. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  9. package/build/hooks/push-changes-to-global-styles/index.js +147 -27
  10. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  11. package/build-module/components/header-edit-mode/document-actions/index.js +11 -26
  12. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  13. package/build-module/components/page/index.js +3 -3
  14. package/build-module/components/page/index.js.map +1 -1
  15. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +1 -1
  16. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  17. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +2 -2
  18. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  19. package/build-module/hooks/push-changes-to-global-styles/index.js +148 -28
  20. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  21. package/build-style/style-rtl.css +25 -11
  22. package/build-style/style.css +25 -11
  23. package/package.json +14 -14
  24. package/src/components/header-edit-mode/document-actions/index.js +13 -26
  25. package/src/components/header-edit-mode/document-actions/style.scss +14 -6
  26. package/src/components/page/index.js +8 -8
  27. package/src/components/page/style.scss +8 -5
  28. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +11 -10
  29. package/src/components/sidebar-navigation-screen-template/home-template-details.js +4 -2
  30. package/src/components/table/style.scss +1 -0
  31. package/src/hooks/push-changes-to-global-styles/index.js +152 -28
@@ -8,7 +8,7 @@ import classnames from 'classnames';
8
8
  * WordPress dependencies
9
9
  */
10
10
 
11
- import { sprintf, __, isRTL } from '@wordpress/i18n';
11
+ import { __, isRTL } from '@wordpress/i18n';
12
12
  import { useSelect, useDispatch } from '@wordpress/data';
13
13
  import { Button, VisuallyHidden, __experimentalText as Text, __experimentalHStack as HStack } from '@wordpress/components';
14
14
  import { BlockIcon } from '@wordpress/block-editor';
@@ -23,8 +23,14 @@ import { store as coreStore } from '@wordpress/core-data';
23
23
 
24
24
  import useEditedEntityRecord from '../../use-edited-entity-record';
25
25
  import { store as editSiteStore } from '../../../store';
26
+ const typeLabels = {
27
+ wp_block: __('Editing pattern:'),
28
+ wp_navigation: __('Editing navigation menu:'),
29
+ wp_template: __('Editing template:'),
30
+ wp_template_part: __('Editing template part:')
31
+ };
26
32
  export default function DocumentActions() {
27
- const isPage = useSelect(select => select(editSiteStore).isPage());
33
+ const isPage = useSelect(select => select(editSiteStore).isPage(), []);
28
34
  return isPage ? createElement(PageDocumentActions, null) : createElement(TemplateDocumentActions, null);
29
35
  }
30
36
 
@@ -91,6 +97,8 @@ function TemplateDocumentActions({
91
97
  className,
92
98
  onBack
93
99
  }) {
100
+ var _typeLabels$record$ty;
101
+
94
102
  const {
95
103
  isLoaded,
96
104
  record,
@@ -108,7 +116,6 @@ function TemplateDocumentActions({
108
116
  }, __('Document not found'));
109
117
  }
110
118
 
111
- const entityLabel = getEntityLabel(record.type);
112
119
  let typeIcon = icon;
113
120
 
114
121
  if (record.type === 'wp_navigation') {
@@ -123,9 +130,7 @@ function TemplateDocumentActions({
123
130
  onBack: onBack
124
131
  }, createElement(VisuallyHidden, {
125
132
  as: "span"
126
- }, sprintf(
127
- /* translators: %s: the entity being edited, like "template"*/
128
- __('Editing %s: '), entityLabel)), getTitle());
133
+ }, (_typeLabels$record$ty = typeLabels[record.type]) !== null && _typeLabels$record$ty !== void 0 ? _typeLabels$record$ty : typeLabels.wp_template), getTitle());
129
134
  }
130
135
 
131
136
  function BaseDocumentActions({
@@ -162,24 +167,4 @@ function BaseDocumentActions({
162
167
  className: "edit-site-document-actions__shortcut"
163
168
  }, displayShortcut.primary('k'))));
164
169
  }
165
-
166
- function getEntityLabel(entityType) {
167
- let label = '';
168
-
169
- switch (entityType) {
170
- case 'wp_navigation':
171
- label = 'navigation menu';
172
- break;
173
-
174
- case 'wp_template_part':
175
- label = 'template part';
176
- break;
177
-
178
- default:
179
- label = 'template';
180
- break;
181
- }
182
-
183
- return label;
184
- }
185
170
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/header-edit-mode/document-actions/index.js"],"names":["classnames","sprintf","__","isRTL","useSelect","useDispatch","Button","VisuallyHidden","__experimentalText","Text","__experimentalHStack","HStack","BlockIcon","store","commandsStore","chevronLeftSmall","chevronRightSmall","page","pageIcon","navigation","navigationIcon","symbol","displayShortcut","useState","useEffect","useRef","coreStore","useEditedEntityRecord","editSiteStore","DocumentActions","isPage","select","PageDocumentActions","hasPageContentFocus","hasResolved","isFound","title","_hasPageContentFocus","getEditedPostContext","getEditedEntityRecord","hasFinishedResolution","context","queryArgs","postType","postId","setHasPageContentFocus","hasEditedTemplate","setHasEditedTemplate","prevHasPageContentFocus","current","TemplateDocumentActions","className","onBack","isLoaded","record","getTitle","icon","entityLabel","getEntityLabel","type","typeIcon","BaseDocumentActions","children","open","openCommandCenter","event","stopPropagation","primary","entityType","label"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { sprintf, __, isRTL } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tVisuallyHidden,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { store as commandsStore } from '@wordpress/commands';\nimport {\n\tchevronLeftSmall,\n\tchevronRightSmall,\n\tpage as pageIcon,\n\tnavigation as navigationIcon,\n\tsymbol,\n} from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useEditedEntityRecord from '../../use-edited-entity-record';\nimport { store as editSiteStore } from '../../../store';\n\nexport default function DocumentActions() {\n\tconst isPage = useSelect( ( select ) => select( editSiteStore ).isPage() );\n\treturn isPage ? <PageDocumentActions /> : <TemplateDocumentActions />;\n}\n\nfunction PageDocumentActions() {\n\tconst { hasPageContentFocus, hasResolved, isFound, title } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasPageContentFocus: _hasPageContentFocus,\n\t\t\t\tgetEditedPostContext,\n\t\t\t} = select( editSiteStore );\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst context = getEditedPostContext();\n\t\t\tconst queryArgs = [ 'postType', context.postType, context.postId ];\n\t\t\tconst page = getEditedEntityRecord( ...queryArgs );\n\t\t\treturn {\n\t\t\t\thasPageContentFocus: _hasPageContentFocus(),\n\t\t\t\thasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\tqueryArgs\n\t\t\t\t),\n\t\t\t\tisFound: !! page,\n\t\t\t\ttitle: page?.title,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { setHasPageContentFocus } = useDispatch( editSiteStore );\n\n\tconst [ hasEditedTemplate, setHasEditedTemplate ] = useState( false );\n\tconst prevHasPageContentFocus = useRef( false );\n\tuseEffect( () => {\n\t\tif ( prevHasPageContentFocus.current && ! hasPageContentFocus ) {\n\t\t\tsetHasEditedTemplate( true );\n\t\t}\n\t\tprevHasPageContentFocus.current = hasPageContentFocus;\n\t}, [ hasPageContentFocus ] );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\tif ( ! isFound ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn hasPageContentFocus ? (\n\t\t<BaseDocumentActions\n\t\t\tclassName={ classnames( 'is-page', {\n\t\t\t\t'is-animated': hasEditedTemplate,\n\t\t\t} ) }\n\t\t\ticon={ pageIcon }\n\t\t>\n\t\t\t{ title }\n\t\t</BaseDocumentActions>\n\t) : (\n\t\t<TemplateDocumentActions\n\t\t\tclassName=\"is-animated\"\n\t\t\tonBack={ () => setHasPageContentFocus( true ) }\n\t\t/>\n\t);\n}\n\nfunction TemplateDocumentActions( { className, onBack } ) {\n\tconst { isLoaded, record, getTitle, icon } = useEditedEntityRecord();\n\n\tif ( ! isLoaded ) {\n\t\treturn null;\n\t}\n\n\tif ( ! record ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst entityLabel = getEntityLabel( record.type );\n\n\tlet typeIcon = icon;\n\tif ( record.type === 'wp_navigation' ) {\n\t\ttypeIcon = navigationIcon;\n\t} else if ( record.type === 'wp_block' ) {\n\t\ttypeIcon = symbol;\n\t}\n\n\treturn (\n\t\t<BaseDocumentActions\n\t\t\tclassName={ className }\n\t\t\ticon={ typeIcon }\n\t\t\tonBack={ onBack }\n\t\t>\n\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t{ sprintf(\n\t\t\t\t\t/* translators: %s: the entity being edited, like \"template\"*/\n\t\t\t\t\t__( 'Editing %s: ' ),\n\t\t\t\t\tentityLabel\n\t\t\t\t) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ getTitle() }\n\t\t</BaseDocumentActions>\n\t);\n}\n\nfunction BaseDocumentActions( { className, icon, children, onBack } ) {\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-document-actions', className ) }\n\t\t>\n\t\t\t{ onBack && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"edit-site-document-actions__back\"\n\t\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tonBack();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t<Button\n\t\t\t\tclassName=\"edit-site-document-actions__command\"\n\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"edit-site-document-actions__title\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t>\n\t\t\t\t\t<BlockIcon icon={ icon } />\n\t\t\t\t\t<Text size=\"body\" as=\"h1\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</Text>\n\t\t\t\t</HStack>\n\t\t\t\t<span className=\"edit-site-document-actions__shortcut\">\n\t\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t\t</span>\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n\nfunction getEntityLabel( entityType ) {\n\tlet label = '';\n\tswitch ( entityType ) {\n\t\tcase 'wp_navigation':\n\t\t\tlabel = 'navigation menu';\n\t\t\tbreak;\n\t\tcase 'wp_template_part':\n\t\t\tlabel = 'template part';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tlabel = 'template';\n\t\t\tbreak;\n\t}\n\n\treturn label;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/header-edit-mode/document-actions/index.js"],"names":["classnames","__","isRTL","useSelect","useDispatch","Button","VisuallyHidden","__experimentalText","Text","__experimentalHStack","HStack","BlockIcon","store","commandsStore","chevronLeftSmall","chevronRightSmall","page","pageIcon","navigation","navigationIcon","symbol","displayShortcut","useState","useEffect","useRef","coreStore","useEditedEntityRecord","editSiteStore","typeLabels","wp_block","wp_navigation","wp_template","wp_template_part","DocumentActions","isPage","select","PageDocumentActions","hasPageContentFocus","hasResolved","isFound","title","_hasPageContentFocus","getEditedPostContext","getEditedEntityRecord","hasFinishedResolution","context","queryArgs","postType","postId","setHasPageContentFocus","hasEditedTemplate","setHasEditedTemplate","prevHasPageContentFocus","current","TemplateDocumentActions","className","onBack","isLoaded","record","getTitle","icon","typeIcon","type","BaseDocumentActions","children","open","openCommandCenter","event","stopPropagation","primary"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,KAAb,QAA0B,iBAA1B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SACCC,MADD,EAECC,cAFD,EAGCC,kBAAkB,IAAIC,IAHvB,EAICC,oBAAoB,IAAIC,MAJzB,QAKO,uBALP;AAMA,SAASC,SAAT,QAA0B,yBAA1B;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,qBAAvC;AACA,SACCC,gBADD,EAECC,iBAFD,EAGCC,IAAI,IAAIC,QAHT,EAICC,UAAU,IAAIC,cAJf,EAKCC,MALD,QAMO,kBANP;AAOA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,QAAT,EAAmBC,SAAnB,EAA8BC,MAA9B,QAA4C,oBAA5C;AACA,SAASZ,KAAK,IAAIa,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,qBAAP,MAAkC,gCAAlC;AACA,SAASd,KAAK,IAAIe,aAAlB,QAAuC,gBAAvC;AAEA,MAAMC,UAAU,GAAG;AAClBC,EAAAA,QAAQ,EAAE5B,EAAE,CAAE,kBAAF,CADM;AAElB6B,EAAAA,aAAa,EAAE7B,EAAE,CAAE,0BAAF,CAFC;AAGlB8B,EAAAA,WAAW,EAAE9B,EAAE,CAAE,mBAAF,CAHG;AAIlB+B,EAAAA,gBAAgB,EAAE/B,EAAE,CAAE,wBAAF;AAJF,CAAnB;AAOA,eAAe,SAASgC,eAAT,GAA2B;AACzC,QAAMC,MAAM,GAAG/B,SAAS,CACrBgC,MAAF,IAAcA,MAAM,CAAER,aAAF,CAAN,CAAwBO,MAAxB,EADS,EAEvB,EAFuB,CAAxB;AAIA,SAAOA,MAAM,GAAG,cAAC,mBAAD,OAAH,GAA6B,cAAC,uBAAD,OAA1C;AACA;;AAED,SAASE,mBAAT,GAA+B;AAC9B,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA,WAAvB;AAAoCC,IAAAA,OAApC;AAA6CC,IAAAA;AAA7C,MAAuDrC,SAAS,CACnEgC,MAAF,IAAc;AACb,UAAM;AACLE,MAAAA,mBAAmB,EAAEI,oBADhB;AAELC,MAAAA;AAFK,QAGFP,MAAM,CAAER,aAAF,CAHV;AAIA,UAAM;AAAEgB,MAAAA,qBAAF;AAAyBC,MAAAA;AAAzB,QACLT,MAAM,CAAEV,SAAF,CADP;AAEA,UAAMoB,OAAO,GAAGH,oBAAoB,EAApC;AACA,UAAMI,SAAS,GAAG,CAAE,UAAF,EAAcD,OAAO,CAACE,QAAtB,EAAgCF,OAAO,CAACG,MAAxC,CAAlB;AACA,UAAMhC,IAAI,GAAG2B,qBAAqB,CAAE,GAAGG,SAAL,CAAlC;AACA,WAAO;AACNT,MAAAA,mBAAmB,EAAEI,oBAAoB,EADnC;AAENH,MAAAA,WAAW,EAAEM,qBAAqB,CACjC,uBADiC,EAEjCE,SAFiC,CAF5B;AAMNP,MAAAA,OAAO,EAAE,CAAC,CAAEvB,IANN;AAONwB,MAAAA,KAAK,EAAExB,IAAI,EAAEwB;AAPP,KAAP;AASA,GApBoE,EAqBrE,EArBqE,CAAtE;AAwBA,QAAM;AAAES,IAAAA;AAAF,MAA6B7C,WAAW,CAAEuB,aAAF,CAA9C;AAEA,QAAM,CAAEuB,iBAAF,EAAqBC,oBAArB,IAA8C7B,QAAQ,CAAE,KAAF,CAA5D;AACA,QAAM8B,uBAAuB,GAAG5B,MAAM,CAAE,KAAF,CAAtC;AACAD,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK6B,uBAAuB,CAACC,OAAxB,IAAmC,CAAEhB,mBAA1C,EAAgE;AAC/Dc,MAAAA,oBAAoB,CAAE,IAAF,CAApB;AACA;;AACDC,IAAAA,uBAAuB,CAACC,OAAxB,GAAkChB,mBAAlC;AACA,GALQ,EAKN,CAAEA,mBAAF,CALM,CAAT;;AAOA,MAAK,CAAEC,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,MAAK,CAAEC,OAAP,EAAiB;AAChB,WACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACGtC,EAAE,CAAE,oBAAF,CADL,CADD;AAKA;;AAED,SAAOoC,mBAAmB,GACzB,cAAC,mBAAD;AACC,IAAA,SAAS,EAAGrC,UAAU,CAAE,SAAF,EAAa;AAClC,qBAAekD;AADmB,KAAb,CADvB;AAIC,IAAA,IAAI,EAAGjC;AAJR,KAMGuB,KANH,CADyB,GAUzB,cAAC,uBAAD;AACC,IAAA,SAAS,EAAC,aADX;AAEC,IAAA,MAAM,EAAG,MAAMS,sBAAsB,CAAE,IAAF;AAFtC,IAVD;AAeA;;AAED,SAASK,uBAAT,CAAkC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA;AAAb,CAAlC,EAA0D;AAAA;;AACzD,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,QAApB;AAA8BC,IAAAA;AAA9B,MAAuClC,qBAAqB,EAAlE;;AAEA,MAAK,CAAE+B,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,MAAK,CAAEC,MAAP,EAAgB;AACf,WACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACGzD,EAAE,CAAE,oBAAF,CADL,CADD;AAKA;;AAED,MAAI4D,QAAQ,GAAGD,IAAf;;AACA,MAAKF,MAAM,CAACI,IAAP,KAAgB,eAArB,EAAuC;AACtCD,IAAAA,QAAQ,GAAG1C,cAAX;AACA,GAFD,MAEO,IAAKuC,MAAM,CAACI,IAAP,KAAgB,UAArB,EAAkC;AACxCD,IAAAA,QAAQ,GAAGzC,MAAX;AACA;;AAED,SACC,cAAC,mBAAD;AACC,IAAA,SAAS,EAAGmC,SADb;AAEC,IAAA,IAAI,EAAGM,QAFR;AAGC,IAAA,MAAM,EAAGL;AAHV,KAKC,cAAC,cAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,8BACG5B,UAAU,CAAE8B,MAAM,CAACI,IAAT,CADb,yEACgClC,UAAU,CAACG,WAD3C,CALD,EAQG4B,QAAQ,EARX,CADD;AAYA;;AAED,SAASI,mBAAT,CAA8B;AAAER,EAAAA,SAAF;AAAaK,EAAAA,IAAb;AAAmBI,EAAAA,QAAnB;AAA6BR,EAAAA;AAA7B,CAA9B,EAAsE;AACrE,QAAM;AAAES,IAAAA,IAAI,EAAEC;AAAR,MAA8B9D,WAAW,CAAES,aAAF,CAA/C;AACA,SACC;AACC,IAAA,SAAS,EAAGb,UAAU,CAAE,4BAAF,EAAgCuD,SAAhC;AADvB,KAGGC,MAAM,IACP,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,kCADX;AAEC,IAAA,IAAI,EAAGtD,KAAK,KAAKa,iBAAL,GAAyBD,gBAFtC;AAGC,IAAA,OAAO,EAAKqD,KAAF,IAAa;AACtBA,MAAAA,KAAK,CAACC,eAAN;AACAZ,MAAAA,MAAM;AACN;AANF,KAQGvD,EAAE,CAAE,MAAF,CARL,CAJF,EAeC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,qCADX;AAEC,IAAA,OAAO,EAAG,MAAMiE,iBAAiB;AAFlC,KAIC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,mCADX;AAEC,IAAA,OAAO,EAAG,CAFX;AAGC,IAAA,OAAO,EAAC;AAHT,KAKC,cAAC,SAAD;AAAW,IAAA,IAAI,EAAGN;AAAlB,IALD,EAMC,cAAC,IAAD;AAAM,IAAA,IAAI,EAAC,MAAX;AAAkB,IAAA,EAAE,EAAC;AAArB,KACGI,QADH,CAND,CAJD,EAcC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACG3C,eAAe,CAACgD,OAAhB,CAAyB,GAAzB,CADH,CAdD,CAfD,CADD;AAoCA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tVisuallyHidden,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { store as commandsStore } from '@wordpress/commands';\nimport {\n\tchevronLeftSmall,\n\tchevronRightSmall,\n\tpage as pageIcon,\n\tnavigation as navigationIcon,\n\tsymbol,\n} from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useEditedEntityRecord from '../../use-edited-entity-record';\nimport { store as editSiteStore } from '../../../store';\n\nconst typeLabels = {\n\twp_block: __( 'Editing pattern:' ),\n\twp_navigation: __( 'Editing navigation menu:' ),\n\twp_template: __( 'Editing template:' ),\n\twp_template_part: __( 'Editing template part:' ),\n};\n\nexport default function DocumentActions() {\n\tconst isPage = useSelect(\n\t\t( select ) => select( editSiteStore ).isPage(),\n\t\t[]\n\t);\n\treturn isPage ? <PageDocumentActions /> : <TemplateDocumentActions />;\n}\n\nfunction PageDocumentActions() {\n\tconst { hasPageContentFocus, hasResolved, isFound, title } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasPageContentFocus: _hasPageContentFocus,\n\t\t\t\tgetEditedPostContext,\n\t\t\t} = select( editSiteStore );\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst context = getEditedPostContext();\n\t\t\tconst queryArgs = [ 'postType', context.postType, context.postId ];\n\t\t\tconst page = getEditedEntityRecord( ...queryArgs );\n\t\t\treturn {\n\t\t\t\thasPageContentFocus: _hasPageContentFocus(),\n\t\t\t\thasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\tqueryArgs\n\t\t\t\t),\n\t\t\t\tisFound: !! page,\n\t\t\t\ttitle: page?.title,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { setHasPageContentFocus } = useDispatch( editSiteStore );\n\n\tconst [ hasEditedTemplate, setHasEditedTemplate ] = useState( false );\n\tconst prevHasPageContentFocus = useRef( false );\n\tuseEffect( () => {\n\t\tif ( prevHasPageContentFocus.current && ! hasPageContentFocus ) {\n\t\t\tsetHasEditedTemplate( true );\n\t\t}\n\t\tprevHasPageContentFocus.current = hasPageContentFocus;\n\t}, [ hasPageContentFocus ] );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\tif ( ! isFound ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn hasPageContentFocus ? (\n\t\t<BaseDocumentActions\n\t\t\tclassName={ classnames( 'is-page', {\n\t\t\t\t'is-animated': hasEditedTemplate,\n\t\t\t} ) }\n\t\t\ticon={ pageIcon }\n\t\t>\n\t\t\t{ title }\n\t\t</BaseDocumentActions>\n\t) : (\n\t\t<TemplateDocumentActions\n\t\t\tclassName=\"is-animated\"\n\t\t\tonBack={ () => setHasPageContentFocus( true ) }\n\t\t/>\n\t);\n}\n\nfunction TemplateDocumentActions( { className, onBack } ) {\n\tconst { isLoaded, record, getTitle, icon } = useEditedEntityRecord();\n\n\tif ( ! isLoaded ) {\n\t\treturn null;\n\t}\n\n\tif ( ! record ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet typeIcon = icon;\n\tif ( record.type === 'wp_navigation' ) {\n\t\ttypeIcon = navigationIcon;\n\t} else if ( record.type === 'wp_block' ) {\n\t\ttypeIcon = symbol;\n\t}\n\n\treturn (\n\t\t<BaseDocumentActions\n\t\t\tclassName={ className }\n\t\t\ticon={ typeIcon }\n\t\t\tonBack={ onBack }\n\t\t>\n\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t{ typeLabels[ record.type ] ?? typeLabels.wp_template }\n\t\t\t</VisuallyHidden>\n\t\t\t{ getTitle() }\n\t\t</BaseDocumentActions>\n\t);\n}\n\nfunction BaseDocumentActions( { className, icon, children, onBack } ) {\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-document-actions', className ) }\n\t\t>\n\t\t\t{ onBack && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"edit-site-document-actions__back\"\n\t\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tonBack();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t<Button\n\t\t\t\tclassName=\"edit-site-document-actions__command\"\n\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"edit-site-document-actions__title\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t>\n\t\t\t\t\t<BlockIcon icon={ icon } />\n\t\t\t\t\t<Text size=\"body\" as=\"h1\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</Text>\n\t\t\t\t</HStack>\n\t\t\t\t<span className=\"edit-site-document-actions__shortcut\">\n\t\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t\t</span>\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"]}
@@ -27,12 +27,12 @@ export default function Page({
27
27
  return createElement(NavigableRegion, {
28
28
  className: classes,
29
29
  ariaLabel: title
30
+ }, createElement("div", {
31
+ className: "edit-site-page-content"
30
32
  }, !hideTitleFromUI && title && createElement(Header, {
31
33
  title: title,
32
34
  subTitle: subTitle,
33
35
  actions: actions
34
- }), createElement("div", {
35
- className: "edit-site-page-content"
36
- }, children, createElement(EditorSnackbars, null)));
36
+ }), children), createElement(EditorSnackbars, null));
37
37
  }
38
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/page/index.js"],"names":["classnames","NavigableRegion","EditorSnackbars","Header","Page","title","subTitle","actions","children","className","hideTitleFromUI","classes"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,eAAT,QAAgC,sBAAhC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe,SAASC,IAAT,CAAe;AAC7BC,EAAAA,KAD6B;AAE7BC,EAAAA,QAF6B;AAG7BC,EAAAA,OAH6B;AAI7BC,EAAAA,QAJ6B;AAK7BC,EAAAA,SAL6B;AAM7BC,EAAAA,eAAe,GAAG;AANW,CAAf,EAOX;AACH,QAAMC,OAAO,GAAGX,UAAU,CAAE,gBAAF,EAAoBS,SAApB,CAA1B;AAEA,SACC,cAAC,eAAD;AAAiB,IAAA,SAAS,EAAGE,OAA7B;AAAuC,IAAA,SAAS,EAAGN;AAAnD,KACG,CAAEK,eAAF,IAAqBL,KAArB,IACD,cAAC,MAAD;AACC,IAAA,KAAK,EAAGA,KADT;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,OAAO,EAAGC;AAHX,IAFF,EAQC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGC,QADH,EAEC,cAAC,eAAD,OAFD,CARD,CADD;AAeA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { NavigableRegion } from '@wordpress/interface';\nimport { EditorSnackbars } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport Header from './header';\n\nexport default function Page( {\n\ttitle,\n\tsubTitle,\n\tactions,\n\tchildren,\n\tclassName,\n\thideTitleFromUI = false,\n} ) {\n\tconst classes = classnames( 'edit-site-page', className );\n\n\treturn (\n\t\t<NavigableRegion className={ classes } ariaLabel={ title }>\n\t\t\t{ ! hideTitleFromUI && title && (\n\t\t\t\t<Header\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tsubTitle={ subTitle }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div className=\"edit-site-page-content\">\n\t\t\t\t{ children }\n\t\t\t\t<EditorSnackbars />\n\t\t\t</div>\n\t\t</NavigableRegion>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page/index.js"],"names":["classnames","NavigableRegion","EditorSnackbars","Header","Page","title","subTitle","actions","children","className","hideTitleFromUI","classes"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,eAAT,QAAgC,sBAAhC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe,SAASC,IAAT,CAAe;AAC7BC,EAAAA,KAD6B;AAE7BC,EAAAA,QAF6B;AAG7BC,EAAAA,OAH6B;AAI7BC,EAAAA,QAJ6B;AAK7BC,EAAAA,SAL6B;AAM7BC,EAAAA,eAAe,GAAG;AANW,CAAf,EAOX;AACH,QAAMC,OAAO,GAAGX,UAAU,CAAE,gBAAF,EAAoBS,SAApB,CAA1B;AAEA,SACC,cAAC,eAAD;AAAiB,IAAA,SAAS,EAAGE,OAA7B;AAAuC,IAAA,SAAS,EAAGN;AAAnD,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,CAAEK,eAAF,IAAqBL,KAArB,IACD,cAAC,MAAD;AACC,IAAA,KAAK,EAAGA,KADT;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,OAAO,EAAGC;AAHX,IAFF,EAQGC,QARH,CADD,EAWC,cAAC,eAAD,OAXD,CADD;AAeA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { NavigableRegion } from '@wordpress/interface';\nimport { EditorSnackbars } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport Header from './header';\n\nexport default function Page( {\n\ttitle,\n\tsubTitle,\n\tactions,\n\tchildren,\n\tclassName,\n\thideTitleFromUI = false,\n} ) {\n\tconst classes = classnames( 'edit-site-page', className );\n\n\treturn (\n\t\t<NavigableRegion className={ classes } ariaLabel={ title }>\n\t\t\t<div className=\"edit-site-page-content\">\n\t\t\t\t{ ! hideTitleFromUI && title && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tsubTitle={ subTitle }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t<EditorSnackbars />\n\t\t</NavigableRegion>\n\t);\n}\n"]}
@@ -108,7 +108,7 @@ export default function LeafMoreMenu(props) {
108
108
  moveBlocksDown([clientId], rootClientId);
109
109
  onClose();
110
110
  }
111
- }, __('Move down')), block.attributes?.id && createElement(MenuItem, {
111
+ }, __('Move down')), block.attributes?.type === 'page' && block.attributes?.id && createElement(MenuItem, {
112
112
  onClick: () => {
113
113
  onGoToPage(block);
114
114
  onClose();
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js"],"names":["chevronUp","chevronDown","moreVertical","DropdownMenu","MenuItem","MenuGroup","useDispatch","useSelect","useCallback","__","sprintf","BlockTitle","store","blockEditorStore","privateApis","routerPrivateApis","POPOVER_PROPS","className","placement","isPreviewingTheme","currentlyPreviewingTheme","unlock","getPathFromURL","useLocation","useHistory","LeafMoreMenu","props","location","history","block","clientId","moveBlocksDown","moveBlocksUp","removeBlocks","removeLabel","maximumLength","goToLabel","rootClientId","select","getBlockRootClientId","onGoToPage","selectedBlock","attributes","name","kind","id","type","push","postType","postId","wp_theme_preview","backPath","params","onClose"],"mappings":";;AAAA;AACA;AACA;AAEA,SAASA,SAAT,EAAoBC,WAApB,EAAiCC,YAAjC,QAAqD,kBAArD;AACA,SAASC,YAAT,EAAuBC,QAAvB,EAAiCC,SAAjC,QAAkD,uBAAlD;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,oBAA5B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,UAAT,EAAqBC,KAAK,IAAIC,gBAA9B,QAAsD,yBAAtD;AACA,SAASC,WAAW,IAAIC,iBAAxB,QAAiD,mBAAjD;AAEA,MAAMC,aAAa,GAAG;AACrBC,EAAAA,SAAS,EAAE,2CADU;AAErBC,EAAAA,SAAS,EAAE;AAFU,CAAtB;AAKA;AACA;AACA;;AACA,SACCC,iBADD,EAECC,wBAFD,QAGO,iCAHP;AAIA,SAASC,MAAT,QAAuB,mBAAvB;AACA,SAASC,cAAT,QAA+B,+CAA/B;AAEA,MAAM;AAAEC,EAAAA,WAAF;AAAeC,EAAAA;AAAf,IAA8BH,MAAM,CAAEN,iBAAF,CAA1C;AAEA,eAAe,SAASU,YAAT,CAAuBC,KAAvB,EAA+B;AAC7C,QAAMC,QAAQ,GAAGJ,WAAW,EAA5B;AACA,QAAMK,OAAO,GAAGJ,UAAU,EAA1B;AACA,QAAM;AAAEK,IAAAA;AAAF,MAAYH,KAAlB;AACA,QAAM;AAAEI,IAAAA;AAAF,MAAeD,KAArB;AACA,QAAM;AAAEE,IAAAA,cAAF;AAAkBC,IAAAA,YAAlB;AAAgCC,IAAAA;AAAhC,MACL3B,WAAW,CAAEO,gBAAF,CADZ;AAGA,QAAMqB,WAAW,GAAGxB,OAAO;AAC1B;AACAD,EAAAA,EAAE,CAAE,WAAF,CAFwB,EAG1BE,UAAU,CAAE;AAAEmB,IAAAA,QAAF;AAAYK,IAAAA,aAAa,EAAE;AAA3B,GAAF,CAHgB,CAA3B;AAMA,QAAMC,SAAS,GAAG1B,OAAO;AACxB;AACAD,EAAAA,EAAE,CAAE,UAAF,CAFsB,EAGxBE,UAAU,CAAE;AAAEmB,IAAAA,QAAF;AAAYK,IAAAA,aAAa,EAAE;AAA3B,GAAF,CAHc,CAAzB;AAMA,QAAME,YAAY,GAAG9B,SAAS,CAC3B+B,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA2BD,MAAM,CAAEzB,gBAAF,CAAvC;AAEA,WAAO0B,oBAAoB,CAAET,QAAF,CAA3B;AACA,GAL4B,EAM7B,CAAEA,QAAF,CAN6B,CAA9B;AASA,QAAMU,UAAU,GAAGhC,WAAW,CAC3BiC,aAAF,IAAqB;AACpB,UAAM;AAAEC,MAAAA,UAAF;AAAcC,MAAAA;AAAd,QAAuBF,aAA7B;;AACA,QACCC,UAAU,CAACE,IAAX,KAAoB,WAApB,IACAF,UAAU,CAACG,EADX,IAEAH,UAAU,CAACI,IAFX,IAGAlB,OAJD,EAKE;AACDA,MAAAA,OAAO,CAACmB,IAAR,CACC;AACCC,QAAAA,QAAQ,EAAEN,UAAU,CAACI,IADtB;AAECG,QAAAA,MAAM,EAAEP,UAAU,CAACG,EAFpB;AAGC,YAAK1B,iBAAiB,MAAM;AAC3B+B,UAAAA,gBAAgB,EAAE9B,wBAAwB;AADf,SAA5B;AAHD,OADD,EAQC;AACC+B,QAAAA,QAAQ,EAAE7B,cAAc,CAAEK,QAAQ,CAACyB,MAAX;AADzB,OARD;AAYA;;AACD,QAAKT,IAAI,KAAK,qBAAT,IAAkCD,UAAU,CAACG,EAA7C,IAAmDjB,OAAxD,EAAkE;AACjEA,MAAAA,OAAO,CAACmB,IAAR,CACC;AACCC,QAAAA,QAAQ,EAAE,MADX;AAECC,QAAAA,MAAM,EAAEP,UAAU,CAACG,EAFpB;AAGC,YAAK1B,iBAAiB,MAAM;AAC3B+B,UAAAA,gBAAgB,EAAE9B,wBAAwB;AADf,SAA5B;AAHD,OADD,EAQC;AACC+B,QAAAA,QAAQ,EAAE7B,cAAc,CAAEK,QAAQ,CAACyB,MAAX;AADzB,OARD;AAYA;AACD,GApC4B,EAqC7B,CAAExB,OAAF,CArC6B,CAA9B;AAwCA,SACC,cAAC,YAAD;AACC,IAAA,IAAI,EAAG1B,YADR;AAEC,IAAA,KAAK,EAAGO,EAAE,CAAE,SAAF,CAFX;AAGC,IAAA,SAAS,EAAC,kCAHX;AAIC,IAAA,YAAY,EAAGO,aAJhB;AAKC,IAAA,OAAO,MALR;AAAA,OAMMU;AANN,KAQG,CAAE;AAAE2B,IAAAA;AAAF,GAAF,KACD,8BACC,cAAC,SAAD,QACC,cAAC,QAAD;AACC,IAAA,IAAI,EAAGrD,SADR;AAEC,IAAA,OAAO,EAAG,MAAM;AACfgC,MAAAA,YAAY,CAAE,CAAEF,QAAF,CAAF,EAAgBO,YAAhB,CAAZ;AACAgB,MAAAA,OAAO;AACP;AALF,KAOG5C,EAAE,CAAE,SAAF,CAPL,CADD,EAUC,cAAC,QAAD;AACC,IAAA,IAAI,EAAGR,WADR;AAEC,IAAA,OAAO,EAAG,MAAM;AACf8B,MAAAA,cAAc,CAAE,CAAED,QAAF,CAAF,EAAgBO,YAAhB,CAAd;AACAgB,MAAAA,OAAO;AACP;AALF,KAOG5C,EAAE,CAAE,WAAF,CAPL,CAVD,EAmBGoB,KAAK,CAACa,UAAN,EAAkBG,EAAlB,IACD,cAAC,QAAD;AACC,IAAA,OAAO,EAAG,MAAM;AACfL,MAAAA,UAAU,CAAEX,KAAF,CAAV;AACAwB,MAAAA,OAAO;AACP;AAJF,KAMGjB,SANH,CApBF,CADD,EA+BC,cAAC,SAAD,QACC,cAAC,QAAD;AACC,IAAA,OAAO,EAAG,MAAM;AACfH,MAAAA,YAAY,CAAE,CAAEH,QAAF,CAAF,EAAgB,KAAhB,CAAZ;AACAuB,MAAAA,OAAO;AACP;AAJF,KAMGnB,WANH,CADD,CA/BD,CATF,CADD;AAuDA","sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { chevronUp, chevronDown, moreVertical } from '@wordpress/icons';\nimport { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { BlockTitle, store as blockEditorStore } from '@wordpress/block-editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\n/**\n * Internal dependencies\n */\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from '../../utils/is-previewing-theme';\nimport { unlock } from '../../lock-unlock';\nimport { getPathFromURL } from '../sync-state-with-url/use-sync-path-with-url';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nexport default function LeafMoreMenu( props ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst { block } = props;\n\tconst { clientId } = block;\n\tconst { moveBlocksDown, moveBlocksUp, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst removeLabel = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\tconst goToLabel = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Go to %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst onGoToPage = useCallback(\n\t\t( selectedBlock ) => {\n\t\t\tconst { attributes, name } = selectedBlock;\n\t\t\tif (\n\t\t\t\tattributes.kind === 'post-type' &&\n\t\t\t\tattributes.id &&\n\t\t\t\tattributes.type &&\n\t\t\t\thistory\n\t\t\t) {\n\t\t\t\thistory.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tpostType: attributes.type,\n\t\t\t\t\t\tpostId: attributes.id,\n\t\t\t\t\t\t...( isPreviewingTheme() && {\n\t\t\t\t\t\t\twp_theme_preview: currentlyPreviewingTheme(),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbackPath: getPathFromURL( location.params ),\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( name === 'core/page-list-item' && attributes.id && history ) {\n\t\t\t\thistory.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tpostType: 'page',\n\t\t\t\t\t\tpostId: attributes.id,\n\t\t\t\t\t\t...( isPreviewingTheme() && {\n\t\t\t\t\t\t\twp_theme_preview: currentlyPreviewingTheme(),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbackPath: getPathFromURL( location.params ),\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ history ]\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tnoIcons\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move up' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move down' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t{ block.attributes?.id && (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonGoToPage( block );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ goToLabel }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tremoveBlocks( [ clientId ], false );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ removeLabel }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js"],"names":["chevronUp","chevronDown","moreVertical","DropdownMenu","MenuItem","MenuGroup","useDispatch","useSelect","useCallback","__","sprintf","BlockTitle","store","blockEditorStore","privateApis","routerPrivateApis","POPOVER_PROPS","className","placement","isPreviewingTheme","currentlyPreviewingTheme","unlock","getPathFromURL","useLocation","useHistory","LeafMoreMenu","props","location","history","block","clientId","moveBlocksDown","moveBlocksUp","removeBlocks","removeLabel","maximumLength","goToLabel","rootClientId","select","getBlockRootClientId","onGoToPage","selectedBlock","attributes","name","kind","id","type","push","postType","postId","wp_theme_preview","backPath","params","onClose"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { chevronUp, chevronDown, moreVertical } from '@wordpress/icons';\nimport { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { BlockTitle, store as blockEditorStore } from '@wordpress/block-editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\n/**\n * Internal dependencies\n */\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from '../../utils/is-previewing-theme';\nimport { unlock } from '../../lock-unlock';\nimport { getPathFromURL } from '../sync-state-with-url/use-sync-path-with-url';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nexport default function LeafMoreMenu( props ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst { block } = props;\n\tconst { clientId } = block;\n\tconst { moveBlocksDown, moveBlocksUp, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst removeLabel = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\tconst goToLabel = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Go to %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst onGoToPage = useCallback(\n\t\t( selectedBlock ) => {\n\t\t\tconst { attributes, name } = selectedBlock;\n\t\t\tif (\n\t\t\t\tattributes.kind === 'post-type' &&\n\t\t\t\tattributes.id &&\n\t\t\t\tattributes.type &&\n\t\t\t\thistory\n\t\t\t) {\n\t\t\t\thistory.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tpostType: attributes.type,\n\t\t\t\t\t\tpostId: attributes.id,\n\t\t\t\t\t\t...( isPreviewingTheme() && {\n\t\t\t\t\t\t\twp_theme_preview: currentlyPreviewingTheme(),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbackPath: getPathFromURL( location.params ),\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( name === 'core/page-list-item' && attributes.id && history ) {\n\t\t\t\thistory.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tpostType: 'page',\n\t\t\t\t\t\tpostId: attributes.id,\n\t\t\t\t\t\t...( isPreviewingTheme() && {\n\t\t\t\t\t\t\twp_theme_preview: currentlyPreviewingTheme(),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbackPath: getPathFromURL( location.params ),\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ history ]\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tnoIcons\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move up' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move down' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t{ block.attributes?.type === 'page' &&\n\t\t\t\t\t\t\tblock.attributes?.id && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonGoToPage( block );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ goToLabel }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tremoveBlocks( [ clientId ], false );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ removeLabel }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
@@ -168,8 +168,8 @@ export default function HomeTemplateDetails() {
168
168
  spacing: 3
169
169
  }, createElement(SidebarNavigationScreenDetailsPanelRow, null, createElement(CheckboxControl, {
170
170
  className: "edit-site-sidebar-navigation-screen__input-control",
171
- label: "Allow comments on new posts",
172
- help: "Changes will apply to new posts only. Individual posts may override these settings.",
171
+ label: __('Allow comments on new posts'),
172
+ help: __('Changes will apply to new posts only. Individual posts may override these settings.'),
173
173
  checked: commentsOnNewPostsValue,
174
174
  onChange: setAllowCommentsOnNewPosts
175
175
  }))), createElement(SidebarNavigationScreenDetailsPanel, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-template/home-template-details.js"],"names":["__","debounce","useSelect","useDispatch","store","coreStore","CheckboxControl","__experimentalUseNavigator","useNavigator","__experimentalInputControl","InputControl","__experimentalNumberControl","NumberControl","__experimentalTruncate","Truncate","__experimentalItemGroup","ItemGroup","header","footer","layout","useMemo","useState","useEffect","decodeEntities","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsPanelRow","unlock","editSiteStore","useLink","SidebarNavigationItem","EMPTY_OBJECT","TemplateAreaButton","postId","icon","title","icons","linkInfo","postType","HomeTemplateDetails","navigator","params","editEntityRecord","allowCommentsOnNewPosts","templatePartAreas","postsPerPage","postsPageTitle","postsPageId","currentTemplateParts","select","getEntityRecord","siteSettings","getSettings","_currentTemplateParts","getCurrentTemplateTemplateParts","siteEditorSettings","_postsPageRecord","page_for_posts","default_comment_status","rendered","id","posts_per_page","defaultTemplatePartAreas","commentsOnNewPostsValue","setCommentsOnNewPostsValue","postsCountValue","setPostsCountValue","postsPageTitleValue","setPostsPageTitleValue","templateAreas","length","map","templatePart","find","area","setAllowCommentsOnNewPosts","newValue","undefined","setPostsPageTitle","setPostsPerPage","label","theme","slug"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tCheckboxControl,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalInputControl as InputControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalTruncate as Truncate,\n\t__experimentalItemGroup as ItemGroup,\n} from '@wordpress/components';\nimport { header, footer, layout } from '@wordpress/icons';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n} from '../sidebar-navigation-screen-details-panel';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\n\nconst EMPTY_OBJECT = {};\n\nfunction TemplateAreaButton( { postId, icon, title } ) {\n\tconst icons = {\n\t\theader,\n\t\tfooter,\n\t};\n\tconst linkInfo = useLink( {\n\t\tpostType: 'wp_template_part',\n\t\tpostId,\n\t} );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-button\"\n\t\t\t{ ...linkInfo }\n\t\t\ticon={ icons[ icon ] ?? layout }\n\t\t\twithChevron\n\t\t>\n\t\t\t<Truncate\n\t\t\t\tlimit={ 20 }\n\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-label-text\"\n\t\t\t>\n\t\t\t\t{ decodeEntities( title ) }\n\t\t\t</Truncate>\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function HomeTemplateDetails() {\n\tconst navigator = useNavigator();\n\tconst {\n\t\tparams: { postType, postId },\n\t} = navigator;\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst {\n\t\tallowCommentsOnNewPosts,\n\t\ttemplatePartAreas,\n\t\tpostsPerPage,\n\t\tpostsPageTitle,\n\t\tpostsPageId,\n\t\tcurrentTemplateParts,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\t\tconst _currentTemplateParts =\n\t\t\t\tselect( editSiteStore ).getCurrentTemplateTemplateParts();\n\t\t\tconst siteEditorSettings = getSettings();\n\t\t\tconst _postsPageRecord = siteSettings?.page_for_posts\n\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'page',\n\t\t\t\t\t\tsiteSettings?.page_for_posts\n\t\t\t\t )\n\t\t\t\t: EMPTY_OBJECT;\n\n\t\t\treturn {\n\t\t\t\tallowCommentsOnNewPosts:\n\t\t\t\t\tsiteSettings?.default_comment_status === 'open',\n\t\t\t\tpostsPageTitle: _postsPageRecord?.title?.rendered,\n\t\t\t\tpostsPageId: _postsPageRecord?.id,\n\t\t\t\tpostsPerPage: siteSettings?.posts_per_page,\n\t\t\t\ttemplatePartAreas: siteEditorSettings?.defaultTemplatePartAreas,\n\t\t\t\tcurrentTemplateParts: _currentTemplateParts,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =\n\t\tuseState( '' );\n\tconst [ postsCountValue, setPostsCountValue ] = useState( 1 );\n\tconst [ postsPageTitleValue, setPostsPageTitleValue ] = useState( '' );\n\n\t/*\n\t * This hook serves to set the server-retrieved values,\n\t * postsPageTitle, allowCommentsOnNewPosts, postsPerPage,\n\t * to local state.\n\t */\n\tuseEffect( () => {\n\t\tsetCommentsOnNewPostsValue( allowCommentsOnNewPosts );\n\t\tsetPostsPageTitleValue( postsPageTitle );\n\t\tsetPostsCountValue( postsPerPage );\n\t}, [ postsPageTitle, allowCommentsOnNewPosts, postsPerPage ] );\n\n\t/*\n\t * Merge data in currentTemplateParts with templatePartAreas,\n\t * which contains the template icon and fallback labels\n\t */\n\tconst templateAreas = useMemo( () => {\n\t\treturn currentTemplateParts.length && templatePartAreas\n\t\t\t? currentTemplateParts.map( ( { templatePart } ) => ( {\n\t\t\t\t\t...templatePartAreas?.find(\n\t\t\t\t\t\t( { area } ) => area === templatePart?.area\n\t\t\t\t\t),\n\t\t\t\t\t...templatePart,\n\t\t\t } ) )\n\t\t\t: [];\n\t}, [ currentTemplateParts, templatePartAreas ] );\n\n\tconst setAllowCommentsOnNewPosts = ( newValue ) => {\n\t\tsetCommentsOnNewPostsValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tdefault_comment_status: newValue ? 'open' : null,\n\t\t} );\n\t};\n\n\tconst setPostsPageTitle = ( newValue ) => {\n\t\tsetPostsPageTitleValue( newValue );\n\t\teditEntityRecord( 'postType', 'page', postsPageId, {\n\t\t\ttitle: newValue,\n\t\t} );\n\t};\n\n\tconst setPostsPerPage = ( newValue ) => {\n\t\tsetPostsCountValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tposts_per_page: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationScreenDetailsPanel spacing={ 6 }>\n\t\t\t\t{ postsPageId && (\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tvalue={ postsPageTitleValue }\n\t\t\t\t\t\t\tonChange={ debounce( setPostsPageTitle, 300 ) }\n\t\t\t\t\t\t\tlabel={ __( 'Blog title' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Set the Posts Page title. Appears in search results, and when the page is shared on social media.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t) }\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tplaceholder={ 0 }\n\t\t\t\t\t\tvalue={ postsCountValue }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tonChange={ setPostsPerPage }\n\t\t\t\t\t\tlabel={ __( 'Posts per page' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Set the default number of posts to display on blog pages, including categories and tags. Some templates may override this setting.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Discussion' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tlabel=\"Allow comments on new posts\"\n\t\t\t\t\t\thelp=\"Changes will apply to new posts only. Individual posts may override these settings.\"\n\t\t\t\t\t\tchecked={ commentsOnNewPostsValue }\n\t\t\t\t\t\tonChange={ setAllowCommentsOnNewPosts }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Areas' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{ templateAreas.map(\n\t\t\t\t\t\t( { label, icon, theme, slug, title } ) => (\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TemplateAreaButton\n\t\t\t\t\t\t\t\t\tpostId={ `${ theme }//${ slug }` }\n\t\t\t\t\t\t\t\t\ttitle={ title?.rendered || label }\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</ItemGroup>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-template/home-template-details.js"],"names":["__","debounce","useSelect","useDispatch","store","coreStore","CheckboxControl","__experimentalUseNavigator","useNavigator","__experimentalInputControl","InputControl","__experimentalNumberControl","NumberControl","__experimentalTruncate","Truncate","__experimentalItemGroup","ItemGroup","header","footer","layout","useMemo","useState","useEffect","decodeEntities","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsPanelRow","unlock","editSiteStore","useLink","SidebarNavigationItem","EMPTY_OBJECT","TemplateAreaButton","postId","icon","title","icons","linkInfo","postType","HomeTemplateDetails","navigator","params","editEntityRecord","allowCommentsOnNewPosts","templatePartAreas","postsPerPage","postsPageTitle","postsPageId","currentTemplateParts","select","getEntityRecord","siteSettings","getSettings","_currentTemplateParts","getCurrentTemplateTemplateParts","siteEditorSettings","_postsPageRecord","page_for_posts","default_comment_status","rendered","id","posts_per_page","defaultTemplatePartAreas","commentsOnNewPostsValue","setCommentsOnNewPostsValue","postsCountValue","setPostsCountValue","postsPageTitleValue","setPostsPageTitleValue","templateAreas","length","map","templatePart","find","area","setAllowCommentsOnNewPosts","newValue","undefined","setPostsPageTitle","setPostsPerPage","label","theme","slug"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tCheckboxControl,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalInputControl as InputControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalTruncate as Truncate,\n\t__experimentalItemGroup as ItemGroup,\n} from '@wordpress/components';\nimport { header, footer, layout } from '@wordpress/icons';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n} from '../sidebar-navigation-screen-details-panel';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\n\nconst EMPTY_OBJECT = {};\n\nfunction TemplateAreaButton( { postId, icon, title } ) {\n\tconst icons = {\n\t\theader,\n\t\tfooter,\n\t};\n\tconst linkInfo = useLink( {\n\t\tpostType: 'wp_template_part',\n\t\tpostId,\n\t} );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-button\"\n\t\t\t{ ...linkInfo }\n\t\t\ticon={ icons[ icon ] ?? layout }\n\t\t\twithChevron\n\t\t>\n\t\t\t<Truncate\n\t\t\t\tlimit={ 20 }\n\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-label-text\"\n\t\t\t>\n\t\t\t\t{ decodeEntities( title ) }\n\t\t\t</Truncate>\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function HomeTemplateDetails() {\n\tconst navigator = useNavigator();\n\tconst {\n\t\tparams: { postType, postId },\n\t} = navigator;\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst {\n\t\tallowCommentsOnNewPosts,\n\t\ttemplatePartAreas,\n\t\tpostsPerPage,\n\t\tpostsPageTitle,\n\t\tpostsPageId,\n\t\tcurrentTemplateParts,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\t\tconst _currentTemplateParts =\n\t\t\t\tselect( editSiteStore ).getCurrentTemplateTemplateParts();\n\t\t\tconst siteEditorSettings = getSettings();\n\t\t\tconst _postsPageRecord = siteSettings?.page_for_posts\n\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'page',\n\t\t\t\t\t\tsiteSettings?.page_for_posts\n\t\t\t\t )\n\t\t\t\t: EMPTY_OBJECT;\n\n\t\t\treturn {\n\t\t\t\tallowCommentsOnNewPosts:\n\t\t\t\t\tsiteSettings?.default_comment_status === 'open',\n\t\t\t\tpostsPageTitle: _postsPageRecord?.title?.rendered,\n\t\t\t\tpostsPageId: _postsPageRecord?.id,\n\t\t\t\tpostsPerPage: siteSettings?.posts_per_page,\n\t\t\t\ttemplatePartAreas: siteEditorSettings?.defaultTemplatePartAreas,\n\t\t\t\tcurrentTemplateParts: _currentTemplateParts,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =\n\t\tuseState( '' );\n\tconst [ postsCountValue, setPostsCountValue ] = useState( 1 );\n\tconst [ postsPageTitleValue, setPostsPageTitleValue ] = useState( '' );\n\n\t/*\n\t * This hook serves to set the server-retrieved values,\n\t * postsPageTitle, allowCommentsOnNewPosts, postsPerPage,\n\t * to local state.\n\t */\n\tuseEffect( () => {\n\t\tsetCommentsOnNewPostsValue( allowCommentsOnNewPosts );\n\t\tsetPostsPageTitleValue( postsPageTitle );\n\t\tsetPostsCountValue( postsPerPage );\n\t}, [ postsPageTitle, allowCommentsOnNewPosts, postsPerPage ] );\n\n\t/*\n\t * Merge data in currentTemplateParts with templatePartAreas,\n\t * which contains the template icon and fallback labels\n\t */\n\tconst templateAreas = useMemo( () => {\n\t\treturn currentTemplateParts.length && templatePartAreas\n\t\t\t? currentTemplateParts.map( ( { templatePart } ) => ( {\n\t\t\t\t\t...templatePartAreas?.find(\n\t\t\t\t\t\t( { area } ) => area === templatePart?.area\n\t\t\t\t\t),\n\t\t\t\t\t...templatePart,\n\t\t\t } ) )\n\t\t\t: [];\n\t}, [ currentTemplateParts, templatePartAreas ] );\n\n\tconst setAllowCommentsOnNewPosts = ( newValue ) => {\n\t\tsetCommentsOnNewPostsValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tdefault_comment_status: newValue ? 'open' : null,\n\t\t} );\n\t};\n\n\tconst setPostsPageTitle = ( newValue ) => {\n\t\tsetPostsPageTitleValue( newValue );\n\t\teditEntityRecord( 'postType', 'page', postsPageId, {\n\t\t\ttitle: newValue,\n\t\t} );\n\t};\n\n\tconst setPostsPerPage = ( newValue ) => {\n\t\tsetPostsCountValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tposts_per_page: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationScreenDetailsPanel spacing={ 6 }>\n\t\t\t\t{ postsPageId && (\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tvalue={ postsPageTitleValue }\n\t\t\t\t\t\t\tonChange={ debounce( setPostsPageTitle, 300 ) }\n\t\t\t\t\t\t\tlabel={ __( 'Blog title' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Set the Posts Page title. Appears in search results, and when the page is shared on social media.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t) }\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tplaceholder={ 0 }\n\t\t\t\t\t\tvalue={ postsCountValue }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tonChange={ setPostsPerPage }\n\t\t\t\t\t\tlabel={ __( 'Posts per page' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Set the default number of posts to display on blog pages, including categories and tags. Some templates may override this setting.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Discussion' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tlabel={ __( 'Allow comments on new posts' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Changes will apply to new posts only. Individual posts may override these settings.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ commentsOnNewPostsValue }\n\t\t\t\t\t\tonChange={ setAllowCommentsOnNewPosts }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Areas' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{ templateAreas.map(\n\t\t\t\t\t\t( { label, icon, theme, slug, title } ) => (\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TemplateAreaButton\n\t\t\t\t\t\t\t\t\tpostId={ `${ theme }//${ slug }` }\n\t\t\t\t\t\t\t\t\ttitle={ title?.rendered || label }\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</ItemGroup>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t</>\n\t);\n}\n"]}
@@ -13,7 +13,7 @@ import { createHigherOrderComponent } from '@wordpress/compose';
13
13
  import { InspectorAdvancedControls, store as blockEditorStore, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
14
14
  import { BaseControl, Button } from '@wordpress/components';
15
15
  import { __, sprintf } from '@wordpress/i18n';
16
- import { __EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY, getBlockType, hasBlockSupport } from '@wordpress/blocks';
16
+ import { __EXPERIMENTAL_STYLE_PROPERTY, getBlockType, hasBlockSupport } from '@wordpress/blocks';
17
17
  import { useContext, useMemo, useCallback } from '@wordpress/element';
18
18
  import { useDispatch } from '@wordpress/data';
19
19
  import { store as noticesStore } from '@wordpress/notices';
@@ -24,13 +24,23 @@ import { store as noticesStore } from '@wordpress/notices';
24
24
  import { useSupportedStyles } from '../../components/global-styles/hooks';
25
25
  import { unlock } from '../../lock-unlock';
26
26
  const {
27
+ cleanEmptyObject,
27
28
  GlobalStylesContext,
28
29
  useBlockEditingMode
29
- } = unlock(blockEditorPrivateApis); // TODO: Temporary duplication of constant in @wordpress/block-editor. Can be
30
+ } = unlock(blockEditorPrivateApis); // Block Gap is a special case and isn't defined within the blocks
31
+ // style properties config. We'll add it here to allow it to be pushed
32
+ // to global styles as well.
33
+
34
+ const STYLE_PROPERTY = { ...__EXPERIMENTAL_STYLE_PROPERTY,
35
+ blockGap: {
36
+ value: ['spacing', 'blockGap']
37
+ }
38
+ }; // TODO: Temporary duplication of constant in @wordpress/block-editor. Can be
30
39
  // removed by moving PushChangesToGlobalStylesControl to
31
40
  // @wordpress/block-editor.
32
41
 
33
42
  const STYLE_PATH_TO_CSS_VAR_INFIX = {
43
+ 'border.color': 'color',
34
44
  'color.background': 'color',
35
45
  'color.text': 'color',
36
46
  'elements.link.color.text': 'color',
@@ -72,6 +82,7 @@ const STYLE_PATH_TO_CSS_VAR_INFIX = {
72
82
  'elements.h6.typography.fontFamily': 'font-family',
73
83
  'elements.h6.color.gradient': 'gradient',
74
84
  'color.gradient': 'gradient',
85
+ blockGap: 'spacing',
75
86
  'typography.fontSize': 'font-size',
76
87
  'typography.fontFamily': 'font-family'
77
88
  }; // TODO: Temporary duplication of constant in @wordpress/block-editor. Can be
@@ -79,6 +90,7 @@ const STYLE_PATH_TO_CSS_VAR_INFIX = {
79
90
  // @wordpress/block-editor.
80
91
 
81
92
  const STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {
93
+ 'border.color': 'borderColor',
82
94
  'color.background': 'backgroundColor',
83
95
  'color.text': 'textColor',
84
96
  'color.gradient': 'gradient',
@@ -86,25 +98,128 @@ const STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {
86
98
  'typography.fontFamily': 'fontFamily'
87
99
  };
88
100
  const SUPPORTED_STYLES = ['border', 'color', 'spacing', 'typography'];
101
+ const flatBorderProperties = ['borderColor', 'borderWidth', 'borderStyle'];
102
+ const sides = ['top', 'right', 'bottom', 'left'];
103
+
104
+ function getBorderStyleChanges(border, presetColor, userStyle) {
105
+ if (!border && !presetColor) {
106
+ return [];
107
+ }
108
+
109
+ const changes = [...getFallbackBorderStyleChange('top', border, userStyle), ...getFallbackBorderStyleChange('right', border, userStyle), ...getFallbackBorderStyleChange('bottom', border, userStyle), ...getFallbackBorderStyleChange('left', border, userStyle)]; // Handle a flat border i.e. all sides the same, CSS shorthand.
110
+
111
+ const {
112
+ color: customColor,
113
+ style,
114
+ width
115
+ } = border || {};
116
+ const hasColorOrWidth = presetColor || customColor || width;
117
+
118
+ if (hasColorOrWidth && !style) {
119
+ // Global Styles need individual side configurations to overcome
120
+ // theme.json configurations which are per side as well.
121
+ sides.forEach(side => {
122
+ // Only add fallback border-style if global styles don't already
123
+ // have something set.
124
+ if (!userStyle?.[side]?.style) {
125
+ changes.push({
126
+ path: ['border', side, 'style'],
127
+ value: 'solid'
128
+ });
129
+ }
130
+ });
131
+ }
132
+
133
+ return changes;
134
+ }
135
+
136
+ function getFallbackBorderStyleChange(side, border, globalBorderStyle) {
137
+ if (!border?.[side] || globalBorderStyle?.[side]?.style) {
138
+ return [];
139
+ }
140
+
141
+ const {
142
+ color,
143
+ style,
144
+ width
145
+ } = border[side];
146
+ const hasColorOrWidth = color || width;
147
+
148
+ if (!hasColorOrWidth || style) {
149
+ return [];
150
+ }
89
151
 
90
- function useChangesToPush(name, attributes) {
152
+ return [{
153
+ path: ['border', side, 'style'],
154
+ value: 'solid'
155
+ }];
156
+ }
157
+
158
+ function useChangesToPush(name, attributes, userConfig) {
91
159
  const supports = useSupportedStyles(name);
92
- return useMemo(() => supports.flatMap(key => {
93
- if (!STYLE_PROPERTY[key]) {
94
- return [];
95
- }
160
+ const blockUserConfig = userConfig?.styles?.blocks?.[name];
161
+ return useMemo(() => {
162
+ const changes = supports.flatMap(key => {
163
+ if (!STYLE_PROPERTY[key]) {
164
+ return [];
165
+ }
96
166
 
97
- const {
98
- value: path
99
- } = STYLE_PROPERTY[key];
100
- const presetAttributeKey = path.join('.');
101
- const presetAttributeValue = attributes[STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE[presetAttributeKey]];
102
- const value = presetAttributeValue ? `var:preset|${STYLE_PATH_TO_CSS_VAR_INFIX[presetAttributeKey]}|${presetAttributeValue}` : get(attributes.style, path);
103
- return value ? [{
104
- path,
105
- value
106
- }] : [];
107
- }), [supports, name, attributes]);
167
+ const {
168
+ value: path
169
+ } = STYLE_PROPERTY[key];
170
+ const presetAttributeKey = path.join('.');
171
+ const presetAttributeValue = attributes[STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE[presetAttributeKey]];
172
+ const value = presetAttributeValue ? `var:preset|${STYLE_PATH_TO_CSS_VAR_INFIX[presetAttributeKey]}|${presetAttributeValue}` : get(attributes.style, path); // Links only have a single support entry but have two element
173
+ // style properties, color and hover color. The following check
174
+ // will add the hover color to the changes if required.
175
+
176
+ if (key === 'linkColor') {
177
+ const linkChanges = value ? [{
178
+ path,
179
+ value
180
+ }] : [];
181
+ const hoverPath = ['elements', 'link', ':hover', 'color', 'text'];
182
+ const hoverValue = get(attributes.style, hoverPath);
183
+
184
+ if (hoverValue) {
185
+ linkChanges.push({
186
+ path: hoverPath,
187
+ value: hoverValue
188
+ });
189
+ }
190
+
191
+ return linkChanges;
192
+ } // The shorthand border styles can't be mapped directly as global
193
+ // styles requires longhand config.
194
+
195
+
196
+ if (flatBorderProperties.includes(key) && value) {
197
+ // The shorthand config path is included to clear the block attribute.
198
+ const borderChanges = [{
199
+ path,
200
+ value
201
+ }];
202
+ sides.forEach(side => {
203
+ const currentPath = [...path];
204
+ currentPath.splice(-1, 0, side);
205
+ borderChanges.push({
206
+ path: currentPath,
207
+ value
208
+ });
209
+ });
210
+ return borderChanges;
211
+ }
212
+
213
+ return value ? [{
214
+ path,
215
+ value
216
+ }] : [];
217
+ }); // To ensure display of a visible border, global styles require a
218
+ // default border style if a border color or width is present.
219
+
220
+ getBorderStyleChanges(attributes.style?.border, attributes.borderColor, blockUserConfig?.border).forEach(change => changes.push(change));
221
+ return changes;
222
+ }, [supports, attributes, blockUserConfig]);
108
223
  }
109
224
 
110
225
  function cloneDeep(object) {
@@ -116,11 +231,11 @@ function PushChangesToGlobalStylesControl({
116
231
  attributes,
117
232
  setAttributes
118
233
  }) {
119
- const changes = useChangesToPush(name, attributes);
120
234
  const {
121
235
  user: userConfig,
122
236
  setUserConfig
123
237
  } = useContext(GlobalStylesContext);
238
+ const changes = useChangesToPush(name, attributes, userConfig);
124
239
  const {
125
240
  __unstableMarkNextChangeAsNotPersistent
126
241
  } = useDispatch(blockEditorStore);
@@ -144,17 +259,24 @@ function PushChangesToGlobalStylesControl({
144
259
  } of changes) {
145
260
  set(newBlockStyles, path, undefined);
146
261
  set(newUserConfig, ['styles', 'blocks', name, ...path], value);
147
- } // @wordpress/core-data doesn't support editing multiple entity types in
262
+ }
263
+
264
+ const newBlockAttributes = {
265
+ borderColor: undefined,
266
+ backgroundColor: undefined,
267
+ textColor: undefined,
268
+ gradient: undefined,
269
+ fontSize: undefined,
270
+ fontFamily: undefined,
271
+ style: cleanEmptyObject(newBlockStyles)
272
+ }; // @wordpress/core-data doesn't support editing multiple entity types in
148
273
  // a single undo level. So for now, we disable @wordpress/core-data undo
149
274
  // tracking and implement our own Undo button in the snackbar
150
275
  // notification.
151
276
 
152
-
153
277
  __unstableMarkNextChangeAsNotPersistent();
154
278
 
155
- setAttributes({
156
- style: newBlockStyles
157
- });
279
+ setAttributes(newBlockAttributes);
158
280
  setUserConfig(() => newUserConfig, {
159
281
  undoIgnore: true
160
282
  });
@@ -167,9 +289,7 @@ function PushChangesToGlobalStylesControl({
167
289
  onClick() {
168
290
  __unstableMarkNextChangeAsNotPersistent();
169
291
 
170
- setAttributes({
171
- style: blockStyles
172
- });
292
+ setAttributes(attributes);
173
293
  setUserConfig(() => userConfig, {
174
294
  undoIgnore: true
175
295
  });
@@ -177,7 +297,7 @@ function PushChangesToGlobalStylesControl({
177
297
 
178
298
  }]
179
299
  });
180
- }, [changes, attributes, userConfig, name]);
300
+ }, [__unstableMarkNextChangeAsNotPersistent, attributes, changes, createSuccessNotice, name, setAttributes, setUserConfig, userConfig]);
181
301
  return createElement(BaseControl, {
182
302
  className: "edit-site-push-changes-to-global-styles-control",
183
303
  help: sprintf( // translators: %s: Title of the block e.g. 'Heading'.