@wordpress/edit-site 6.4.0 → 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/components/add-new-pattern/index.js +6 -1
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/add-new-post/index.js +2 -1
- package/build/components/add-new-post/index.js.map +1 -1
- package/build/components/add-new-template/utils.js +2 -2
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/editor/index.js +71 -20
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +1 -4
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/font-families.js +3 -4
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +0 -5
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +25 -5
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +1 -8
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +23 -7
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js +2 -3
- package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build/components/global-styles/screen-block.js +5 -7
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-css.js +1 -1
- package/build/components/global-styles/screen-css.js.map +1 -1
- package/build/components/global-styles/screen-typeset.js +40 -0
- package/build/components/global-styles/screen-typeset.js.map +1 -0
- package/build/components/global-styles/screen-typography-element.js +14 -0
- package/build/components/global-styles/screen-typography-element.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +4 -6
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/shadows-edit-panel.js +51 -59
- package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build/components/global-styles/size-control/index.js +10 -5
- package/build/components/global-styles/size-control/index.js.map +1 -1
- package/build/components/global-styles/typeset-button.js +97 -0
- package/build/components/global-styles/typeset-button.js.map +1 -0
- package/build/components/global-styles/typeset.js +80 -0
- package/build/components/global-styles/typeset.js.map +1 -0
- package/build/components/global-styles/ui.js +4 -0
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/utils.js +10 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/page-patterns/fields.js +230 -0
- package/build/components/page-patterns/fields.js.map +1 -0
- package/build/components/page-patterns/index.js +13 -228
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +29 -1
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates/fields.js +169 -0
- package/build/components/page-templates/fields.js.map +1 -0
- package/build/components/page-templates/index.js +10 -177
- package/build/components/page-templates/index.js.map +1 -1
- package/build/components/post-edit/index.js +46 -34
- package/build/components/post-edit/index.js.map +1 -1
- package/build/components/post-fields/index.js +50 -28
- package/build/components/post-fields/index.js.map +1 -1
- package/build/components/post-list/index.js +126 -68
- package/build/components/post-list/index.js.map +1 -1
- package/build/components/sidebar-dataviews/add-new-view.js +3 -2
- package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js +1 -0
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build/components/sidebar-dataviews/dataview-item.js +2 -3
- package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +81 -81
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +3 -42
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/site-hub/index.js +6 -3
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/style-book/index.js +22 -25
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +3 -3
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -4
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build/index.js +0 -2
- package/build/index.js.map +1 -1
- package/build/utils/is-template-removable.js +2 -2
- package/build/utils/is-template-removable.js.map +1 -1
- package/build/utils/is-template-revertable.js +1 -1
- package/build/utils/is-template-revertable.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +6 -1
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/add-new-post/index.js +2 -1
- package/build-module/components/add-new-post/index.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +2 -2
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/editor/index.js +73 -22
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +1 -4
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +3 -4
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +0 -5
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +26 -6
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +1 -8
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +23 -7
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js +2 -3
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +5 -7
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-css.js +1 -1
- package/build-module/components/global-styles/screen-css.js.map +1 -1
- package/build-module/components/global-styles/screen-typeset.js +34 -0
- package/build-module/components/global-styles/screen-typeset.js.map +1 -0
- package/build-module/components/global-styles/screen-typography-element.js +14 -0
- package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +4 -6
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/shadows-edit-panel.js +52 -60
- package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build-module/components/global-styles/size-control/index.js +10 -5
- package/build-module/components/global-styles/size-control/index.js.map +1 -1
- package/build-module/components/global-styles/typeset-button.js +89 -0
- package/build-module/components/global-styles/typeset-button.js.map +1 -0
- package/build-module/components/global-styles/typeset.js +71 -0
- package/build-module/components/global-styles/typeset.js.map +1 -0
- package/build-module/components/global-styles/ui.js +4 -0
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/utils.js +10 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/page-patterns/fields.js +223 -0
- package/build-module/components/page-patterns/fields.js.map +1 -0
- package/build-module/components/page-patterns/index.js +14 -231
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +26 -0
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/fields.js +160 -0
- package/build-module/components/page-templates/fields.js.map +1 -0
- package/build-module/components/page-templates/index.js +12 -178
- package/build-module/components/page-templates/index.js.map +1 -1
- package/build-module/components/post-edit/index.js +49 -37
- package/build-module/components/post-edit/index.js.map +1 -1
- package/build-module/components/post-fields/index.js +50 -28
- package/build-module/components/post-fields/index.js.map +1 -1
- package/build-module/components/post-list/index.js +128 -70
- package/build-module/components/post-list/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js +3 -2
- package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +1 -0
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js +2 -3
- package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +81 -81
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +3 -42
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +7 -4
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/style-book/index.js +23 -26
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +3 -3
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build-module/index.js +0 -2
- package/build-module/index.js.map +1 -1
- package/build-module/utils/is-template-removable.js +2 -2
- package/build-module/utils/is-template-removable.js.map +1 -1
- package/build-module/utils/is-template-revertable.js +1 -1
- package/build-module/utils/is-template-revertable.js.map +1 -1
- package/build-style/posts-rtl.css +201 -25
- package/build-style/posts.css +201 -25
- package/build-style/style-rtl.css +307 -69
- package/build-style/style.css +307 -69
- package/package.json +41 -41
- package/src/components/add-new-pattern/index.js +8 -3
- package/src/components/add-new-post/index.js +2 -1
- package/src/components/add-new-template/style.scss +1 -1
- package/src/components/add-new-template/utils.js +10 -6
- package/src/components/editor/index.js +80 -22
- package/src/components/editor/style.scss +60 -2
- package/src/components/global-styles/background-panel.js +0 -3
- package/src/components/global-styles/font-families.js +3 -5
- package/src/components/global-styles/font-library-modal/context.js +0 -5
- package/src/components/global-styles/font-library-modal/font-collection.js +34 -10
- package/src/components/global-styles/font-library-modal/index.js +2 -7
- package/src/components/global-styles/font-library-modal/installed-fonts.js +26 -6
- package/src/components/global-styles/font-library-modal/style.scss +2 -2
- package/src/components/global-styles/font-library-modal/upload-fonts.js +2 -2
- package/src/components/global-styles/screen-block.js +2 -4
- package/src/components/global-styles/screen-css.js +3 -1
- package/src/components/global-styles/screen-typeset.js +42 -0
- package/src/components/global-styles/screen-typography-element.js +14 -0
- package/src/components/global-styles/screen-typography.js +4 -4
- package/src/components/global-styles/shadows-edit-panel.js +67 -73
- package/src/components/global-styles/size-control/index.js +9 -6
- package/src/components/global-styles/style.scss +4 -7
- package/src/components/global-styles/typeset-button.js +93 -0
- package/src/components/global-styles/typeset.js +73 -0
- package/src/components/global-styles/ui.js +5 -0
- package/src/components/global-styles/utils.js +13 -1
- package/src/components/layout/style.scss +8 -0
- package/src/components/page-patterns/fields.js +251 -0
- package/src/components/page-patterns/index.js +19 -246
- package/src/components/page-patterns/style.scss +82 -85
- package/src/components/page-patterns/use-patterns.js +33 -0
- package/src/components/page-templates/fields.js +157 -0
- package/src/components/page-templates/index.js +19 -170
- package/src/components/page-templates/style.scss +14 -5
- package/src/components/post-edit/index.js +58 -35
- package/src/components/post-fields/index.js +88 -25
- package/src/components/post-list/index.js +135 -79
- package/src/components/sidebar-dataviews/add-new-view.js +3 -4
- package/src/components/sidebar-dataviews/custom-dataviews-list.js +1 -0
- package/src/components/sidebar-dataviews/dataview-item.js +2 -2
- package/src/components/sidebar-dataviews/default-views.js +95 -95
- package/src/components/sidebar-dataviews/index.js +3 -37
- package/src/components/site-hub/index.js +11 -2
- package/src/components/site-icon/style.scss +4 -1
- package/src/components/style-book/index.js +27 -32
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/src/hooks/push-changes-to-global-styles/index.js +3 -3
- package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
- package/src/index.js +0 -2
- package/src/utils/is-template-removable.js +4 -2
- package/src/utils/is-template-revertable.js +2 -1
- package/build/utils/clone-deep.js +0 -15
- package/build/utils/clone-deep.js.map +0 -1
- package/build-module/utils/clone-deep.js +0 -9
- package/build-module/utils/clone-deep.js.map +0 -1
- package/src/utils/clone-deep.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_router","
|
|
1
|
+
{"version":3,"names":["_components","require","_router","_defaultViews","_lockUnlock","_dataviewItem","_interopRequireDefault","_customDataviewsList","_jsxRuntime","useLocation","unlock","routerPrivateApis","DataViewsSidebarContent","params","postType","activeView","isCustom","defaultViews","useDefaultViews","isCustomBoolean","jsxs","Fragment","children","jsx","__experimentalItemGroup","map","dataview","default","slug","title","icon","type","view","isActive","window","__experimentalCustomViews"],"sources":["@wordpress/edit-site/src/components/sidebar-dataviews/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { useDefaultViews } from './default-views';\nimport { unlock } from '../../lock-unlock';\nimport DataViewItem from './dataview-item';\nimport CustomDataViewsList from './custom-dataviews-list';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function DataViewsSidebarContent() {\n\tconst {\n\t\tparams: { postType, activeView = 'all', isCustom = 'false' },\n\t} = useLocation();\n\tconst defaultViews = useDefaultViews( { postType } );\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\tconst isCustomBoolean = isCustom === 'true';\n\n\treturn (\n\t\t<>\n\t\t\t<ItemGroup>\n\t\t\t\t{ defaultViews.map( ( dataview ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<DataViewItem\n\t\t\t\t\t\t\tkey={ dataview.slug }\n\t\t\t\t\t\t\tslug={ dataview.slug }\n\t\t\t\t\t\t\ttitle={ dataview.title }\n\t\t\t\t\t\t\ticon={ dataview.icon }\n\t\t\t\t\t\t\ttype={ dataview.view.type }\n\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\t! isCustomBoolean &&\n\t\t\t\t\t\t\t\tdataview.slug === activeView\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisCustom={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ItemGroup>\n\t\t\t{ window?.__experimentalCustomViews && (\n\t\t\t\t<CustomDataViewsList\n\t\t\t\t\tactiveView={ activeView }\n\t\t\t\t\ttype={ postType }\n\t\t\t\t\tisCustom\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAD,sBAAA,CAAAL,OAAA;AAA0D,IAAAO,WAAA,GAAAP,OAAA;AAZ1D;AACA;AACA;;AAIA;AACA;AACA;;AAMA,MAAM;EAAEQ;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEpC,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM;IACLC,MAAM,EAAE;MAAEC,QAAQ;MAAEC,UAAU,GAAG,KAAK;MAAEC,QAAQ,GAAG;IAAQ;EAC5D,CAAC,GAAGP,WAAW,CAAC,CAAC;EACjB,MAAMQ,YAAY,GAAG,IAAAC,6BAAe,EAAE;IAAEJ;EAAS,CAAE,CAAC;EACpD,IAAK,CAAEA,QAAQ,EAAG;IACjB,OAAO,IAAI;EACZ;EACA,MAAMK,eAAe,GAAGH,QAAQ,KAAK,MAAM;EAE3C,oBACC,IAAAR,WAAA,CAAAY,IAAA,EAAAZ,WAAA,CAAAa,QAAA;IAAAC,QAAA,gBACC,IAAAd,WAAA,CAAAe,GAAA,EAACvB,WAAA,CAAAwB,uBAAS;MAAAF,QAAA,EACPL,YAAY,CAACQ,GAAG,CAAIC,QAAQ,IAAM;QACnC,oBACC,IAAAlB,WAAA,CAAAe,GAAA,EAAClB,aAAA,CAAAsB,OAAY;UAEZC,IAAI,EAAGF,QAAQ,CAACE,IAAM;UACtBC,KAAK,EAAGH,QAAQ,CAACG,KAAO;UACxBC,IAAI,EAAGJ,QAAQ,CAACI,IAAM;UACtBC,IAAI,EAAGL,QAAQ,CAACM,IAAI,CAACD,IAAM;UAC3BE,QAAQ,EACP,CAAEd,eAAe,IACjBO,QAAQ,CAACE,IAAI,KAAKb,UAClB;UACDC,QAAQ,EAAG;QAAO,GATZU,QAAQ,CAACE,IAUf,CAAC;MAEJ,CAAE;IAAC,CACO,CAAC,EACVM,MAAM,EAAEC,yBAAyB,iBAClC,IAAA3B,WAAA,CAAAe,GAAA,EAAChB,oBAAA,CAAAoB,OAAmB;MACnBZ,UAAU,EAAGA,UAAY;MACzBgB,IAAI,EAAGjB,QAAU;MACjBE,QAAQ;IAAA,CACR,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
@@ -87,12 +87,15 @@ const SiteHub = (0, _element.memo)((0, _element.forwardRef)(({
|
|
|
87
87
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
88
88
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
89
89
|
className: "edit-site-site-hub__title",
|
|
90
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
90
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Button, {
|
|
91
91
|
variant: "link",
|
|
92
92
|
href: homeUrl,
|
|
93
93
|
target: "_blank",
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
children: [(0, _htmlEntities.decodeEntities)(siteTitle), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
|
|
95
|
+
as: "span",
|
|
96
|
+
children: /* translators: accessibility text */
|
|
97
|
+
(0, _i18n.__)('(opens in a new tab)')
|
|
98
|
+
})]
|
|
96
99
|
})
|
|
97
100
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
|
|
98
101
|
spacing: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_components","_i18n","_coreData","_htmlEntities","_element","_icons","_commands","_keycodes","_url","_router","_store","_siteIcon","_lockUnlock","_sidebar","_jsxRuntime","useHistory","unlock","routerPrivateApis","SiteHub","memo","forwardRef","isTransparent","ref","dashboardLink","homeUrl","siteTitle","useSelect","select","getSettings","editSiteStore","getSite","getUnstableBase","coreStore","_site","__experimentalDashboardLink","home","title","url","filterURLForDisplay","open","openCommandCenter","useDispatch","commandsStore","jsx","className","children","jsxs","__experimentalHStack","justify","spacing","clsx","Button","href","label","__","style","transform","borderRadius","default","variant","target","decodeEntities","expanded","icon","search","onClick","shortcut","displayShortcut","primary","_default","exports","SiteHubMobile","history","navigate","useContext","SidebarNavigationContext","push"],"sources":["@wordpress/edit-site/src/components/site-hub/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, __experimentalHStack as HStack } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { memo, forwardRef, useContext } from '@wordpress/element';\nimport { search } from '@wordpress/icons';\nimport { store as commandsStore } from '@wordpress/commands';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { filterURLForDisplay } from '@wordpress/url';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport SiteIcon from '../site-icon';\nimport { unlock } from '../../lock-unlock';\nconst { useHistory } = unlock( routerPrivateApis );\nimport { SidebarNavigationContext } from '../sidebar';\n\nconst SiteHub = memo(\n\tforwardRef( ( { isTransparent }, ref ) => {\n\t\tconst { dashboardLink, homeUrl, siteTitle } = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\n\t\t\tconst {\n\t\t\t\tgetSite,\n\t\t\t\tgetUnstableBase, // Site index.\n\t\t\t} = select( coreStore );\n\t\t\tconst _site = getSite();\n\t\t\treturn {\n\t\t\t\tdashboardLink:\n\t\t\t\t\tgetSettings().__experimentalDashboardLink || 'index.php',\n\t\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\t\tsiteTitle:\n\t\t\t\t\t! _site?.title && !! _site?.url\n\t\t\t\t\t\t? filterURLForDisplay( _site?.url )\n\t\t\t\t\t\t: _site?.title,\n\t\t\t};\n\t\t}, [] );\n\t\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\n\t\treturn (\n\t\t\t<div className=\"edit-site-site-hub\">\n\t\t\t\t<HStack justify=\"flex-start\" spacing=\"0\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'edit-site-site-hub__view-mode-toggle-container',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-transparent-background': isTransparent,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\thref={ dashboardLink }\n\t\t\t\t\t\t\tlabel={ __( 'Go to the Dashboard' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__view-mode-toggle\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\ttransform: 'scale(0.5)',\n\t\t\t\t\t\t\t\tborderRadius: 4,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SiteIcon className=\"edit-site-layout__view-mode-toggle-icon\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<HStack>\n\t\t\t\t\t\t<div className=\"edit-site-site-hub__title\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tlabel={ __( 'View site (opens in a new tab)' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ decodeEntities( siteTitle ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\tclassName=\"edit-site-site-hub__actions\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"edit-site-site-hub_toggle-command-center\"\n\t\t\t\t\t\t\t\ticon={ search }\n\t\t\t\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open command palette' ) }\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t);\n\t} )\n);\n\nexport default SiteHub;\n\nexport const SiteHubMobile = memo(\n\tforwardRef( ( { isTransparent }, ref ) => {\n\t\tconst history = useHistory();\n\t\tconst { navigate } = useContext( SidebarNavigationContext );\n\n\t\tconst { homeUrl, siteTitle } = useSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSite,\n\t\t\t\tgetUnstableBase, // Site index.\n\t\t\t} = select( coreStore );\n\t\t\tconst _site = getSite();\n\t\t\treturn {\n\t\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\t\tsiteTitle:\n\t\t\t\t\t! _site?.title && !! _site?.url\n\t\t\t\t\t\t? filterURLForDisplay( _site?.url )\n\t\t\t\t\t\t: _site?.title,\n\t\t\t};\n\t\t}, [] );\n\t\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\n\t\treturn (\n\t\t\t<div className=\"edit-site-site-hub\">\n\t\t\t\t<HStack justify=\"flex-start\" spacing=\"0\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'edit-site-site-hub__view-mode-toggle-container',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-transparent-background': isTransparent,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tlabel={ __( 'Go to Site Editor' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__view-mode-toggle\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\ttransform: 'scale(0.5)',\n\t\t\t\t\t\t\t\tborderRadius: 4,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thistory.push( {} );\n\t\t\t\t\t\t\t\tnavigate( 'back' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SiteIcon className=\"edit-site-layout__view-mode-toggle-icon\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<HStack>\n\t\t\t\t\t\t<div className=\"edit-site-site-hub__title\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tlabel={ __( 'View site (opens in a new tab)' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ decodeEntities( siteTitle ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\tclassName=\"edit-site-site-hub__actions\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"edit-site-site-hub_toggle-command-center\"\n\t\t\t\t\t\t\t\ticon={ search }\n\t\t\t\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open command palette' ) }\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t);\n\t} )\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_components","_i18n","_coreData","_htmlEntities","_element","_icons","_commands","_keycodes","_url","_router","_store","_siteIcon","_lockUnlock","_sidebar","_jsxRuntime","useHistory","unlock","routerPrivateApis","SiteHub","memo","forwardRef","isTransparent","ref","dashboardLink","homeUrl","siteTitle","useSelect","select","getSettings","editSiteStore","getSite","getUnstableBase","coreStore","_site","__experimentalDashboardLink","home","title","url","filterURLForDisplay","open","openCommandCenter","useDispatch","commandsStore","jsx","className","children","jsxs","__experimentalHStack","justify","spacing","clsx","Button","href","label","__","style","transform","borderRadius","default","variant","target","decodeEntities","VisuallyHidden","as","expanded","icon","search","onClick","shortcut","displayShortcut","primary","_default","exports","SiteHubMobile","history","navigate","useContext","SidebarNavigationContext","push"],"sources":["@wordpress/edit-site/src/components/site-hub/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { memo, forwardRef, useContext } from '@wordpress/element';\nimport { search } from '@wordpress/icons';\nimport { store as commandsStore } from '@wordpress/commands';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { filterURLForDisplay } from '@wordpress/url';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport SiteIcon from '../site-icon';\nimport { unlock } from '../../lock-unlock';\nconst { useHistory } = unlock( routerPrivateApis );\nimport { SidebarNavigationContext } from '../sidebar';\n\nconst SiteHub = memo(\n\tforwardRef( ( { isTransparent }, ref ) => {\n\t\tconst { dashboardLink, homeUrl, siteTitle } = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\n\t\t\tconst {\n\t\t\t\tgetSite,\n\t\t\t\tgetUnstableBase, // Site index.\n\t\t\t} = select( coreStore );\n\t\t\tconst _site = getSite();\n\t\t\treturn {\n\t\t\t\tdashboardLink:\n\t\t\t\t\tgetSettings().__experimentalDashboardLink || 'index.php',\n\t\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\t\tsiteTitle:\n\t\t\t\t\t! _site?.title && !! _site?.url\n\t\t\t\t\t\t? filterURLForDisplay( _site?.url )\n\t\t\t\t\t\t: _site?.title,\n\t\t\t};\n\t\t}, [] );\n\t\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\n\t\treturn (\n\t\t\t<div className=\"edit-site-site-hub\">\n\t\t\t\t<HStack justify=\"flex-start\" spacing=\"0\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'edit-site-site-hub__view-mode-toggle-container',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-transparent-background': isTransparent,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\thref={ dashboardLink }\n\t\t\t\t\t\t\tlabel={ __( 'Go to the Dashboard' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__view-mode-toggle\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\ttransform: 'scale(0.5)',\n\t\t\t\t\t\t\t\tborderRadius: 4,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SiteIcon className=\"edit-site-layout__view-mode-toggle-icon\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<HStack>\n\t\t\t\t\t\t<div className=\"edit-site-site-hub__title\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ decodeEntities( siteTitle ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\tclassName=\"edit-site-site-hub__actions\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"edit-site-site-hub_toggle-command-center\"\n\t\t\t\t\t\t\t\ticon={ search }\n\t\t\t\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open command palette' ) }\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t);\n\t} )\n);\n\nexport default SiteHub;\n\nexport const SiteHubMobile = memo(\n\tforwardRef( ( { isTransparent }, ref ) => {\n\t\tconst history = useHistory();\n\t\tconst { navigate } = useContext( SidebarNavigationContext );\n\n\t\tconst { homeUrl, siteTitle } = useSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSite,\n\t\t\t\tgetUnstableBase, // Site index.\n\t\t\t} = select( coreStore );\n\t\t\tconst _site = getSite();\n\t\t\treturn {\n\t\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\t\tsiteTitle:\n\t\t\t\t\t! _site?.title && !! _site?.url\n\t\t\t\t\t\t? filterURLForDisplay( _site?.url )\n\t\t\t\t\t\t: _site?.title,\n\t\t\t};\n\t\t}, [] );\n\t\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\n\t\treturn (\n\t\t\t<div className=\"edit-site-site-hub\">\n\t\t\t\t<HStack justify=\"flex-start\" spacing=\"0\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'edit-site-site-hub__view-mode-toggle-container',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-transparent-background': isTransparent,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tlabel={ __( 'Go to Site Editor' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__view-mode-toggle\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\ttransform: 'scale(0.5)',\n\t\t\t\t\t\t\t\tborderRadius: 4,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thistory.push( {} );\n\t\t\t\t\t\t\t\tnavigate( 'back' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SiteIcon className=\"edit-site-layout__view-mode-toggle-icon\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<HStack>\n\t\t\t\t\t\t<div className=\"edit-site-site-hub__title\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tlabel={ __( 'View site (opens in a new tab)' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ decodeEntities( siteTitle ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\tclassName=\"edit-site-site-hub__actions\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"edit-site-site-hub_toggle-command-center\"\n\t\t\t\t\t\t\t\ticon={ search }\n\t\t\t\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open command palette' ) }\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t);\n\t} )\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,IAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AAKA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,SAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,WAAA,GAAAd,OAAA;AAEA,IAAAe,QAAA,GAAAf,OAAA;AAAsD,IAAAgB,WAAA,GAAAhB,OAAA;AA/BtD;AACA;AACA;;AAGA;AACA;AACA;;AAiBA;AACA;AACA;;AAIA,MAAM;EAAEiB;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAGlD,MAAMC,OAAO,GAAG,IAAAC,aAAI,EACnB,IAAAC,mBAAU,EAAE,CAAE;EAAEC;AAAc,CAAC,EAAEC,GAAG,KAAM;EACzC,MAAM;IAAEC,aAAa;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACtE,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAZ,kBAAM,EAAEW,MAAM,CAAEE,YAAc,CAAE,CAAC;IAEzD,MAAM;MACLC,OAAO;MACPC,eAAe,CAAE;IAClB,CAAC,GAAGJ,MAAM,CAAEK,eAAU,CAAC;IACvB,MAAMC,KAAK,GAAGH,OAAO,CAAC,CAAC;IACvB,OAAO;MACNP,aAAa,EACZK,WAAW,CAAC,CAAC,CAACM,2BAA2B,IAAI,WAAW;MACzDV,OAAO,EAAEO,eAAe,CAAC,CAAC,EAAEI,IAAI;MAChCV,SAAS,EACR,CAAEQ,KAAK,EAAEG,KAAK,IAAI,CAAC,CAAEH,KAAK,EAAEI,GAAG,GAC5B,IAAAC,wBAAmB,EAAEL,KAAK,EAAEI,GAAI,CAAC,GACjCJ,KAAK,EAAEG;IACZ,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEG,IAAI,EAAEC;EAAkB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,eAAc,CAAC;EAEhE,oBACC,IAAA5B,WAAA,CAAA6B,GAAA;IAAKC,SAAS,EAAC,oBAAoB;IAAAC,QAAA,eAClC,IAAA/B,WAAA,CAAAgC,IAAA,EAAC9C,WAAA,CAAA+C,oBAAM;MAACC,OAAO,EAAC,YAAY;MAACC,OAAO,EAAC,GAAG;MAAAJ,QAAA,gBACvC,IAAA/B,WAAA,CAAA6B,GAAA;QACCC,SAAS,EAAG,IAAAM,aAAI,EACf,gDAAgD,EAChD;UACC,4BAA4B,EAAE7B;QAC/B,CACD,CAAG;QAAAwB,QAAA,eAEH,IAAA/B,WAAA,CAAA6B,GAAA,EAAC3C,WAAA,CAAAmD,MAAM;UACN7B,GAAG,EAAGA,GAAK;UACX8B,IAAI,EAAG7B,aAAe;UACtB8B,KAAK,EAAG,IAAAC,QAAE,EAAE,qBAAsB,CAAG;UACrCV,SAAS,EAAC,oCAAoC;UAC9CW,KAAK,EAAG;YACPC,SAAS,EAAE,YAAY;YACvBC,YAAY,EAAE;UACf,CAAG;UAAAZ,QAAA,eAEH,IAAA/B,WAAA,CAAA6B,GAAA,EAAChC,SAAA,CAAA+C,OAAQ;YAACd,SAAS,EAAC;UAAyC,CAAE;QAAC,CACzD;MAAC,CACL,CAAC,eAEN,IAAA9B,WAAA,CAAAgC,IAAA,EAAC9C,WAAA,CAAA+C,oBAAM;QAAAF,QAAA,gBACN,IAAA/B,WAAA,CAAA6B,GAAA;UAAKC,SAAS,EAAC,2BAA2B;UAAAC,QAAA,eACzC,IAAA/B,WAAA,CAAAgC,IAAA,EAAC9C,WAAA,CAAAmD,MAAM;YACNQ,OAAO,EAAC,MAAM;YACdP,IAAI,EAAG5B,OAAS;YAChBoC,MAAM,EAAC,QAAQ;YAAAf,QAAA,GAEb,IAAAgB,4BAAc,EAAEpC,SAAU,CAAC,eAC7B,IAAAX,WAAA,CAAA6B,GAAA,EAAC3C,WAAA,CAAA8D,cAAc;cAACC,EAAE,EAAC,MAAM;cAAAlB,QAAA,EAEvB;cACA,IAAAS,QAAE,EAAE,sBAAuB;YAAC,CAEd,CAAC;UAAA,CACV;QAAC,CACL,CAAC,eACN,IAAAxC,WAAA,CAAA6B,GAAA,EAAC3C,WAAA,CAAA+C,oBAAM;UACNE,OAAO,EAAG,CAAG;UACbe,QAAQ,EAAG,KAAO;UAClBpB,SAAS,EAAC,6BAA6B;UAAAC,QAAA,eAEvC,IAAA/B,WAAA,CAAA6B,GAAA,EAAC3C,WAAA,CAAAmD,MAAM;YACNP,SAAS,EAAC,0CAA0C;YACpDqB,IAAI,EAAGC,aAAQ;YACfC,OAAO,EAAGA,CAAA,KAAM3B,iBAAiB,CAAC,CAAG;YACrCa,KAAK,EAAG,IAAAC,QAAE,EAAE,sBAAuB,CAAG;YACtCc,QAAQ,EAAGC,yBAAe,CAACC,OAAO,CAAE,GAAI;UAAG,CAC3C;QAAC,CACK,CAAC;MAAA,CACF,CAAC;IAAA,CACF;EAAC,CACL,CAAC;AAER,CAAE,CACH,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAd,OAAA,GAEaxC,OAAO;AAEf,MAAMuD,aAAa,GAAAD,OAAA,CAAAC,aAAA,GAAG,IAAAtD,aAAI,EAChC,IAAAC,mBAAU,EAAE,CAAE;EAAEC;AAAc,CAAC,EAAEC,GAAG,KAAM;EACzC,MAAMoD,OAAO,GAAG3D,UAAU,CAAC,CAAC;EAC5B,MAAM;IAAE4D;EAAS,CAAC,GAAG,IAAAC,mBAAU,EAAEC,iCAAyB,CAAC;EAE3D,MAAM;IAAErD,OAAO;IAAEC;EAAU,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACvD,MAAM;MACLG,OAAO;MACPC,eAAe,CAAE;IAClB,CAAC,GAAGJ,MAAM,CAAEK,eAAU,CAAC;IACvB,MAAMC,KAAK,GAAGH,OAAO,CAAC,CAAC;IACvB,OAAO;MACNN,OAAO,EAAEO,eAAe,CAAC,CAAC,EAAEI,IAAI;MAChCV,SAAS,EACR,CAAEQ,KAAK,EAAEG,KAAK,IAAI,CAAC,CAAEH,KAAK,EAAEI,GAAG,GAC5B,IAAAC,wBAAmB,EAAEL,KAAK,EAAEI,GAAI,CAAC,GACjCJ,KAAK,EAAEG;IACZ,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEG,IAAI,EAAEC;EAAkB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,eAAc,CAAC;EAEhE,oBACC,IAAA5B,WAAA,CAAA6B,GAAA;IAAKC,SAAS,EAAC,oBAAoB;IAAAC,QAAA,eAClC,IAAA/B,WAAA,CAAAgC,IAAA,EAAC9C,WAAA,CAAA+C,oBAAM;MAACC,OAAO,EAAC,YAAY;MAACC,OAAO,EAAC,GAAG;MAAAJ,QAAA,gBACvC,IAAA/B,WAAA,CAAA6B,GAAA;QACCC,SAAS,EAAG,IAAAM,aAAI,EACf,gDAAgD,EAChD;UACC,4BAA4B,EAAE7B;QAC/B,CACD,CAAG;QAAAwB,QAAA,eAEH,IAAA/B,WAAA,CAAA6B,GAAA,EAAC3C,WAAA,CAAAmD,MAAM;UACN7B,GAAG,EAAGA,GAAK;UACX+B,KAAK,EAAG,IAAAC,QAAE,EAAE,mBAAoB,CAAG;UACnCV,SAAS,EAAC,oCAAoC;UAC9CW,KAAK,EAAG;YACPC,SAAS,EAAE,YAAY;YACvBC,YAAY,EAAE;UACf,CAAG;UACHU,OAAO,EAAGA,CAAA,KAAM;YACfO,OAAO,CAACI,IAAI,CAAE,CAAC,CAAE,CAAC;YAClBH,QAAQ,CAAE,MAAO,CAAC;UACnB,CAAG;UAAA9B,QAAA,eAEH,IAAA/B,WAAA,CAAA6B,GAAA,EAAChC,SAAA,CAAA+C,OAAQ;YAACd,SAAS,EAAC;UAAyC,CAAE;QAAC,CACzD;MAAC,CACL,CAAC,eAEN,IAAA9B,WAAA,CAAAgC,IAAA,EAAC9C,WAAA,CAAA+C,oBAAM;QAAAF,QAAA,gBACN,IAAA/B,WAAA,CAAA6B,GAAA;UAAKC,SAAS,EAAC,2BAA2B;UAAAC,QAAA,eACzC,IAAA/B,WAAA,CAAA6B,GAAA,EAAC3C,WAAA,CAAAmD,MAAM;YACNQ,OAAO,EAAC,MAAM;YACdP,IAAI,EAAG5B,OAAS;YAChBoC,MAAM,EAAC,QAAQ;YACfP,KAAK,EAAG,IAAAC,QAAE,EAAE,gCAAiC,CAAG;YAAAT,QAAA,EAE9C,IAAAgB,4BAAc,EAAEpC,SAAU;UAAC,CACtB;QAAC,CACL,CAAC,eACN,IAAAX,WAAA,CAAA6B,GAAA,EAAC3C,WAAA,CAAA+C,oBAAM;UACNE,OAAO,EAAG,CAAG;UACbe,QAAQ,EAAG,KAAO;UAClBpB,SAAS,EAAC,6BAA6B;UAAAC,QAAA,eAEvC,IAAA/B,WAAA,CAAA6B,GAAA,EAAC3C,WAAA,CAAAmD,MAAM;YACNP,SAAS,EAAC,0CAA0C;YACpDqB,IAAI,EAAGC,aAAQ;YACfC,OAAO,EAAGA,CAAA,KAAM3B,iBAAiB,CAAC,CAAG;YACrCa,KAAK,EAAG,IAAAC,QAAE,EAAE,sBAAuB,CAAG;YACtCc,QAAQ,EAAGC,yBAAe,CAACC,OAAO,CAAE,GAAI;UAAG,CAC3C;QAAC,CACK,CAAC;MAAA,CACF,CAAC;IAAA,CACF;EAAC,CACL,CAAC;AAER,CAAE,CACH,CAAC","ignoreList":[]}
|
|
@@ -121,30 +121,7 @@ function isObjectEmpty(object) {
|
|
|
121
121
|
return !object || Object.keys(object).length === 0;
|
|
122
122
|
}
|
|
123
123
|
function getExamples() {
|
|
124
|
-
|
|
125
|
-
// heading levels.
|
|
126
|
-
const headingsExample = {
|
|
127
|
-
name: 'core/heading',
|
|
128
|
-
title: (0, _i18n.__)('Headings'),
|
|
129
|
-
category: 'text',
|
|
130
|
-
blocks: [(0, _blocks.createBlock)('core/heading', {
|
|
131
|
-
content: (0, _i18n.__)('Code Is Poetry'),
|
|
132
|
-
level: 1
|
|
133
|
-
}), (0, _blocks.createBlock)('core/heading', {
|
|
134
|
-
content: (0, _i18n.__)('Code Is Poetry'),
|
|
135
|
-
level: 2
|
|
136
|
-
}), (0, _blocks.createBlock)('core/heading', {
|
|
137
|
-
content: (0, _i18n.__)('Code Is Poetry'),
|
|
138
|
-
level: 3
|
|
139
|
-
}), (0, _blocks.createBlock)('core/heading', {
|
|
140
|
-
content: (0, _i18n.__)('Code Is Poetry'),
|
|
141
|
-
level: 4
|
|
142
|
-
}), (0, _blocks.createBlock)('core/heading', {
|
|
143
|
-
content: (0, _i18n.__)('Code Is Poetry'),
|
|
144
|
-
level: 5
|
|
145
|
-
})]
|
|
146
|
-
};
|
|
147
|
-
const otherExamples = (0, _blocks.getBlockTypes)().filter(blockType => {
|
|
124
|
+
const nonHeadingBlockExamples = (0, _blocks.getBlockTypes)().filter(blockType => {
|
|
148
125
|
const {
|
|
149
126
|
name,
|
|
150
127
|
example,
|
|
@@ -157,7 +134,27 @@ function getExamples() {
|
|
|
157
134
|
category: blockType.category,
|
|
158
135
|
blocks: (0, _blocks.getBlockFromExample)(blockType.name, blockType.example)
|
|
159
136
|
}));
|
|
160
|
-
|
|
137
|
+
const isHeadingBlockRegistered = !!(0, _blocks.getBlockType)('core/heading');
|
|
138
|
+
if (!isHeadingBlockRegistered) {
|
|
139
|
+
return nonHeadingBlockExamples;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Use our own example for the Heading block so that we can show multiple
|
|
143
|
+
// heading levels.
|
|
144
|
+
const headingsExample = {
|
|
145
|
+
name: 'core/heading',
|
|
146
|
+
title: (0, _i18n.__)('Headings'),
|
|
147
|
+
category: 'text',
|
|
148
|
+
blocks: [1, 2, 3, 4, 5, 6].map(level => {
|
|
149
|
+
return (0, _blocks.createBlock)('core/heading', {
|
|
150
|
+
content: (0, _i18n.sprintf)(
|
|
151
|
+
// translators: %d: heading level e.g: "1", "2", "3"
|
|
152
|
+
(0, _i18n.__)('Heading %d'), level),
|
|
153
|
+
level
|
|
154
|
+
});
|
|
155
|
+
})
|
|
156
|
+
};
|
|
157
|
+
return [headingsExample, ...nonHeadingBlockExamples];
|
|
161
158
|
}
|
|
162
159
|
function StyleBook({
|
|
163
160
|
enableResizing = true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_blocks","_blockEditor","_editor","_data","_compose","_element","_keycodes","_lockUnlock","_editorCanvasContainer","_jsxRuntime","ExperimentalBlockEditorProvider","useGlobalStyle","GlobalStylesContext","useGlobalStylesOutputWithConfig","unlock","blockEditorPrivateApis","mergeBaseAndUserConfigs","editorPrivateApis","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","Tabs","componentsPrivateApis","STYLE_BOOK_IFRAME_STYLES","isObjectEmpty","object","Object","keys","length","getExamples","headingsExample","name","title","__","category","blocks","createBlock","content","level","otherExamples","getBlockTypes","filter","blockType","example","supports","inserter","map","getBlockFromExample","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","onClose","showTabs","userConfig","resizeObserver","sizes","useResizeObserver","textColor","backgroundColor","examples","useState","tabs","useMemo","getCategories","some","slug","icon","base","baseConfig","useContext","mergedConfig","originalSettings","useSelect","select","blockEditorStore","getSettings","settings","__unstableIsPreviewMode","globalStyles","styles","jsx","default","closeButtonLabel","children","jsxs","className","clsx","width","style","color","background","TabList","tab","Tab","tabId","TabPanel","focusable","StyleBookBody","isFocused","setIsFocused","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","ENTER","SPACE","preventDefault","readonly","buttonModeStyles","__unstableIframe","tabIndex","__unstableEditorStyles","Examples","label","sprintf","memo","compositeStore","orientation","store","Example","id","focusMode","renderedBlocks","Array","isArray","render","Disabled","value","BlockList","renderAppender","_default","exports"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { useMemo, useState, memo, useContext } from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tuseGlobalStyle,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n\tTabs,\n} = unlock( componentsPrivateApis );\n\n// The content area of the Style Book is rendered within an iframe so that global styles\n// are applied to elements within the entire content area. To support elements that are\n// not part of the block previews, such as headings and layout for the block previews,\n// additional CSS rules need to be passed into the iframe. These are hard-coded below.\n// Note that button styles are unset, and then focus rules from the `Button` component are\n// applied to the `button` element, targeted via `.edit-site-style-book__example`.\n// This is to ensure that browser default styles for buttons are not applied to the previews.\nconst STYLE_BOOK_IFRAME_STYLES = `\n\t.edit-site-style-book__examples {\n\t\tmax-width: 900px;\n\t\tmargin: 0 auto;\n\t}\n\n\t.edit-site-style-book__example {\n\t\tborder-radius: 2px;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 40px;\n\t\tmargin-bottom: 40px;\n\t\tpadding: 16px;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\tscroll-margin-top: 32px;\n\t\tscroll-margin-bottom: 32px;\n\t}\n\n\t.edit-site-style-book__example.is-selected {\n\t\tbox-shadow: 0 0 0 1px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t}\n\n\t.edit-site-style-book__example:focus:not(:disabled) {\n\t\tbox-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t\toutline: 3px solid transparent;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example {\n\t\tflex-direction: row;\n\t}\n\n\t.edit-site-style-book__example-title {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\tfont-size: 11px;\n\t\tfont-weight: 500;\n\t\tline-height: normal;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\ttext-transform: uppercase;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example-title {\n\t\ttext-align: right;\n\t\twidth: 120px;\n\t}\n\n\t.edit-site-style-book__example-preview {\n\t\twidth: 100%;\n\t}\n\n\t.edit-site-style-book__example-preview .block-editor-block-list__insertion-point,\n\t.edit-site-style-book__example-preview .block-list-appender {\n\t\tdisplay: none;\n\t}\n\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:first-child {\n\t\tmargin-top: 0;\n\t}\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:last-child {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\nfunction getExamples() {\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 1,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 2,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 3,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 4,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 5,\n\t\t\t} ),\n\t\t],\n\t};\n\n\tconst otherExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\treturn [ headingsExample, ...otherExamples ];\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst [ examples ] = useState( getExamples );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tsettings.styles =\n\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t? globalStyles\n\t\t\t: settings.styles;\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={ showCloseButton ? __( 'Close' ) : null }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<div className=\"edit-site-style-book__tabs\">\n\t\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nconst StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst buttonModeStyles = onClick\n\t\t? 'body { cursor: pointer; } body * { pointer-events: none; }'\n\t\t: '';\n\n\treturn (\n\t\t<Iframe\n\t\t\tclassName={ clsx( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }\n\t\t\t\t\t\tbody { position: relative; padding: 32px !important; }` +\n\t\t\t\t\t\tSTYLE_BOOK_IFRAME_STYLES +\n\t\t\t\t\t\tbuttonModeStyles\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ clsx( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ category }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst compositeStore = useCompositeStore( { orientation: 'vertical' } );\n\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\tstore={ compositeStore }\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ examples\n\t\t\t\t\t.filter( ( example ) =>\n\t\t\t\t\t\tcategory ? example.category === category : true\n\t\t\t\t\t)\n\t\t\t\t\t.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonSelect?.( example.name );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Example = ( { id, title, blocks, isSelected, onClick } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\t__unstableIsPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<CompositeItem\n\t\t\t\t\tclassName={ clsx( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</CompositeItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_blocks","_blockEditor","_editor","_data","_compose","_element","_keycodes","_lockUnlock","_editorCanvasContainer","_jsxRuntime","ExperimentalBlockEditorProvider","useGlobalStyle","GlobalStylesContext","useGlobalStylesOutputWithConfig","unlock","blockEditorPrivateApis","mergeBaseAndUserConfigs","editorPrivateApis","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","Tabs","componentsPrivateApis","STYLE_BOOK_IFRAME_STYLES","isObjectEmpty","object","Object","keys","length","getExamples","nonHeadingBlockExamples","getBlockTypes","filter","blockType","name","example","supports","inserter","map","title","category","blocks","getBlockFromExample","isHeadingBlockRegistered","getBlockType","headingsExample","__","level","createBlock","content","sprintf","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","onClose","showTabs","userConfig","resizeObserver","sizes","useResizeObserver","textColor","backgroundColor","examples","useState","tabs","useMemo","getCategories","some","slug","icon","base","baseConfig","useContext","mergedConfig","originalSettings","useSelect","select","blockEditorStore","getSettings","settings","__unstableIsPreviewMode","globalStyles","styles","jsx","default","closeButtonLabel","children","jsxs","className","clsx","width","style","color","background","TabList","tab","Tab","tabId","TabPanel","focusable","StyleBookBody","isFocused","setIsFocused","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","ENTER","SPACE","preventDefault","readonly","buttonModeStyles","__unstableIframe","tabIndex","__unstableEditorStyles","Examples","label","memo","compositeStore","orientation","store","Example","id","focusMode","renderedBlocks","Array","isArray","render","Disabled","value","BlockList","renderAppender","_default","exports"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockType,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { useMemo, useState, memo, useContext } from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tuseGlobalStyle,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n\tTabs,\n} = unlock( componentsPrivateApis );\n\n// The content area of the Style Book is rendered within an iframe so that global styles\n// are applied to elements within the entire content area. To support elements that are\n// not part of the block previews, such as headings and layout for the block previews,\n// additional CSS rules need to be passed into the iframe. These are hard-coded below.\n// Note that button styles are unset, and then focus rules from the `Button` component are\n// applied to the `button` element, targeted via `.edit-site-style-book__example`.\n// This is to ensure that browser default styles for buttons are not applied to the previews.\nconst STYLE_BOOK_IFRAME_STYLES = `\n\t.edit-site-style-book__examples {\n\t\tmax-width: 900px;\n\t\tmargin: 0 auto;\n\t}\n\n\t.edit-site-style-book__example {\n\t\tborder-radius: 2px;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 40px;\n\t\tmargin-bottom: 40px;\n\t\tpadding: 16px;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\tscroll-margin-top: 32px;\n\t\tscroll-margin-bottom: 32px;\n\t}\n\n\t.edit-site-style-book__example.is-selected {\n\t\tbox-shadow: 0 0 0 1px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t}\n\n\t.edit-site-style-book__example:focus:not(:disabled) {\n\t\tbox-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t\toutline: 3px solid transparent;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example {\n\t\tflex-direction: row;\n\t}\n\n\t.edit-site-style-book__example-title {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\tfont-size: 11px;\n\t\tfont-weight: 500;\n\t\tline-height: normal;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\ttext-transform: uppercase;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example-title {\n\t\ttext-align: right;\n\t\twidth: 120px;\n\t}\n\n\t.edit-site-style-book__example-preview {\n\t\twidth: 100%;\n\t}\n\n\t.edit-site-style-book__example-preview .block-editor-block-list__insertion-point,\n\t.edit-site-style-book__example-preview .block-list-appender {\n\t\tdisplay: none;\n\t}\n\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:first-child {\n\t\tmargin-top: 0;\n\t}\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:last-child {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\nfunction getExamples() {\n\tconst nonHeadingBlockExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\tconst isHeadingBlockRegistered = !! getBlockType( 'core/heading' );\n\n\tif ( ! isHeadingBlockRegistered ) {\n\t\treturn nonHeadingBlockExamples;\n\t}\n\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [ 1, 2, 3, 4, 5, 6 ].map( ( level ) => {\n\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\tcontent: sprintf(\n\t\t\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\tlevel\n\t\t\t\t),\n\t\t\t\tlevel,\n\t\t\t} );\n\t\t} ),\n\t};\n\n\treturn [ headingsExample, ...nonHeadingBlockExamples ];\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst [ examples ] = useState( getExamples );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tsettings.styles =\n\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t? globalStyles\n\t\t\t: settings.styles;\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={ showCloseButton ? __( 'Close' ) : null }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<div className=\"edit-site-style-book__tabs\">\n\t\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nconst StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst buttonModeStyles = onClick\n\t\t? 'body { cursor: pointer; } body * { pointer-events: none; }'\n\t\t: '';\n\n\treturn (\n\t\t<Iframe\n\t\t\tclassName={ clsx( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }\n\t\t\t\t\t\tbody { position: relative; padding: 32px !important; }` +\n\t\t\t\t\t\tSTYLE_BOOK_IFRAME_STYLES +\n\t\t\t\t\t\tbuttonModeStyles\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ clsx( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ category }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst compositeStore = useCompositeStore( { orientation: 'vertical' } );\n\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\tstore={ compositeStore }\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ examples\n\t\t\t\t\t.filter( ( example ) =>\n\t\t\t\t\t\tcategory ? example.category === category : true\n\t\t\t\t\t)\n\t\t\t\t\t.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonSelect?.( example.name );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Example = ( { id, title, blocks, isSelected, onClick } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\t__unstableIsPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<CompositeItem\n\t\t\t\t\tclassName={ clsx( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</CompositeItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -74,6 +74,11 @@ function useResolveEditedEntityAndContext({
|
|
|
74
74
|
if (postTypesWithoutParentTemplate.includes(postType) && postId) {
|
|
75
75
|
return undefined;
|
|
76
76
|
}
|
|
77
|
+
|
|
78
|
+
// Don't trigger resolution for multi-selected posts.
|
|
79
|
+
if (postId && postId.includes(',')) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
77
82
|
const {
|
|
78
83
|
getEditedEntityRecord,
|
|
79
84
|
getEntityRecords,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_data","_coreData","_router","_store","_lockUnlock","_constants","useLocation","unlock","routerPrivateApis","postTypesWithoutParentTemplate","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","user","authorizedPostTypes","useResolveEditedEntityAndContext","postId","postType","hasLoadedAllDependencies","homepageId","postsPageId","url","frontPageTemplateId","useSelect","select","getSite","getUnstableBase","getEntityRecords","coreDataStore","siteData","base","templates","per_page","_homepageId","show_on_front","includes","page_on_front","toString","_postsPageId","page_for_posts","_frontPageTemplateId","frontPageTemplate","find","t","slug","id","home","resolvedTemplateId","undefined","getEditedEntityRecord","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","link","currentTemplateSlug","template","currentTemplate","slugToCheck","context","useMemo","isReady","useInitEditedEntityFromURL","params","setEditedEntity","useDispatch","editSiteStore","useEffect"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nconst authorizedPostTypes = [ 'page', 'post' ];\n\nfunction useResolveEditedEntityAndContext( { postId, postType } ) {\n\tconst {\n\t\thasLoadedAllDependencies,\n\t\thomepageId,\n\t\tpostsPageId,\n\t\turl,\n\t\tfrontPageTemplateId,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\tselect( coreDataStore );\n\t\tconst siteData = getSite();\n\t\tconst base = getUnstableBase();\n\t\tconst templates = getEntityRecords( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t} );\n\t\tconst _homepageId =\n\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t[ 'number', 'string' ].includes( typeof siteData.page_on_front ) &&\n\t\t\t!! +siteData.page_on_front // We also need to check if it's not zero(`0`).\n\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t: null;\n\t\tconst _postsPageId =\n\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t[ 'number', 'string' ].includes( typeof siteData.page_for_posts )\n\t\t\t\t? siteData.page_for_posts.toString()\n\t\t\t\t: null;\n\t\tlet _frontPageTemplateId;\n\t\tif ( templates ) {\n\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t);\n\t\t\t_frontPageTemplateId = frontPageTemplate\n\t\t\t\t? frontPageTemplate.id\n\t\t\t\t: false;\n\t\t}\n\t\treturn {\n\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\thomepageId: _homepageId,\n\t\t\tpostsPageId: _postsPageId,\n\t\t\turl: base?.home,\n\t\t\tfrontPageTemplateId: _frontPageTemplateId,\n\t\t};\n\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif (\n\t\t\t\tpostTypesWithoutParentTemplate.includes( postType ) &&\n\t\t\t\tpostId\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// Check if the current page is the posts page.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\tpostsPageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\treturn __experimentalGetTemplateForLink( editedEntity.link )\n\t\t\t\t\t\t?.id;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\tlet slugToCheck;\n\t\t\t\t// In `draft` status we might not have a slug available, so we use the `single`\n\t\t\t\t// post type templates slug(ex page, single-post, single-product etc..).\n\t\t\t\t// Pages do not need the `single` prefix in the slug to be prioritized\n\t\t\t\t// through template hierarchy.\n\t\t\t\tif ( editedEntity.slug ) {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? `${ postTypeToResolve }-${ editedEntity.slug }`\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }-${ editedEntity.slug }`;\n\t\t\t\t} else {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? 'page'\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }`;\n\t\t\t\t}\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: slugToCheck,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, we need to resolve its template.\n\t\t\t// The site editor only supports pages for now, not other CPTs.\n\t\t\tif (\n\t\t\t\tpostType &&\n\t\t\t\tpostId &&\n\t\t\t\tauthorizedPostTypes.includes( postType )\n\t\t\t) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\tpostsPageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId && authorizedPostTypes.includes( postType ) ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\t\t// TODO: for post types lists we should probably not render the front page, but maybe a placeholder\n\t\t// with a message like \"Select a page\" or something similar.\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId ] );\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAbA;AACA;AACA;;AAMA;AACA;AACA;;AAUA,MAAM;EAAEO;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEnD,MAAMC,8BAA8B,GAAG,CACtCC,6BAAkB,EAClBC,kCAAuB,EACvBC,+BAAoB,EACpBC,wBAAa,CAACC,IAAI,CAClB;AAED,MAAMC,mBAAmB,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE;AAE9C,SAASC,gCAAgCA,CAAE;EAAEC,MAAM;EAAEC;AAAS,CAAC,EAAG;EACjE,MAAM;IACLC,wBAAwB;IACxBC,UAAU;IACVC,WAAW;IACXC,GAAG;IACHC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MAAEC,OAAO;MAAEC,eAAe;MAAEC;IAAiB,CAAC,GACnDH,MAAM,CAAEI,eAAc,CAAC;IACxB,MAAMC,QAAQ,GAAGJ,OAAO,CAAC,CAAC;IAC1B,MAAMK,IAAI,GAAGJ,eAAe,CAAC,CAAC;IAC9B,MAAMK,SAAS,GAAGJ,gBAAgB,CAAE,UAAU,EAAElB,6BAAkB,EAAE;MACnEuB,QAAQ,EAAE,CAAC;IACZ,CAAE,CAAC;IACH,MAAMC,WAAW,GAChBJ,QAAQ,EAAEK,aAAa,KAAK,MAAM,IAClC,CAAE,QAAQ,EAAE,QAAQ,CAAE,CAACC,QAAQ,CAAE,OAAON,QAAQ,CAACO,aAAc,CAAC,IAChE,CAAC,CAAE,CAACP,QAAQ,CAACO,aAAa,CAAC;IAAA,EACxBP,QAAQ,CAACO,aAAa,CAACC,QAAQ,CAAC,CAAC,GACjC,IAAI;IACR,MAAMC,YAAY,GACjBT,QAAQ,EAAEK,aAAa,KAAK,MAAM,IAClC,CAAE,QAAQ,EAAE,QAAQ,CAAE,CAACC,QAAQ,CAAE,OAAON,QAAQ,CAACU,cAAe,CAAC,GAC9DV,QAAQ,CAACU,cAAc,CAACF,QAAQ,CAAC,CAAC,GAClC,IAAI;IACR,IAAIG,oBAAoB;IACxB,IAAKT,SAAS,EAAG;MAChB,MAAMU,iBAAiB,GAAGV,SAAS,CAACW,IAAI,CACrCC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAK,YACrB,CAAC;MACDJ,oBAAoB,GAAGC,iBAAiB,GACrCA,iBAAiB,CAACI,EAAE,GACpB,KAAK;IACT;IACA,OAAO;MACN3B,wBAAwB,EAAE,CAAC,CAAEY,IAAI,IAAI,CAAC,CAAED,QAAQ;MAChDV,UAAU,EAAEc,WAAW;MACvBb,WAAW,EAAEkB,YAAY;MACzBjB,GAAG,EAAES,IAAI,EAAEgB,IAAI;MACfxB,mBAAmB,EAAEkB;IACtB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;;EAEP;AACD;AACA;AACA;AACA;AACA;EACC,MAAMO,kBAAkB,GAAG,IAAAxB,eAAS,EACjCC,MAAM,IAAM;IACb;IACA;IACA,IACChB,8BAA8B,CAAC2B,QAAQ,CAAElB,QAAS,CAAC,IACnDD,MAAM,EACL;MACD,OAAOgC,SAAS;IACjB;IAEA,MAAM;MACLC,qBAAqB;MACrBtB,gBAAgB;MAChBuB,oBAAoB;MACpBC;IACD,CAAC,GAAG3B,MAAM,CAAEI,eAAc,CAAC;IAE3B,SAASwB,+BAA+BA,CACvCC,iBAAiB,EACjBC,eAAe,EACd;MACD;MACA,IACCD,iBAAiB,KAAK,MAAM,IAC5BlC,UAAU,KAAKmC,eAAe,EAC7B;QACD;QACA;QACA,IAAKhC,mBAAmB,KAAK0B,SAAS,EAAG;UACxC,OAAOA,SAAS;QACjB;QAEA,IAAK,CAAC,CAAE1B,mBAAmB,EAAG;UAC7B,OAAOA,mBAAmB;QAC3B;MACD;MAEA,MAAMiC,YAAY,GAAGN,qBAAqB,CACzC,UAAU,EACVI,iBAAiB,EACjBC,eACD,CAAC;MACD,IAAK,CAAEC,YAAY,EAAG;QACrB,OAAOP,SAAS;MACjB;MACA;MACA,IACCK,iBAAiB,KAAK,MAAM,IAC5BjC,WAAW,KAAKkC,eAAe,EAC9B;QACD,OAAOH,gCAAgC,CAAEI,YAAY,CAACC,IAAK,CAAC,EACzDX,EAAE;MACN;MACA;MACA,MAAMY,mBAAmB,GAAGF,YAAY,CAACG,QAAQ;MACjD,IAAKD,mBAAmB,EAAG;QAC1B,MAAME,eAAe,GAAGhC,gBAAgB,CACvC,UAAU,EACVlB,6BAAkB,EAClB;UACCuB,QAAQ,EAAE,CAAC;QACZ,CACD,CAAC,EAAEU,IAAI,CAAE,CAAE;UAAEE;QAAK,CAAC,KAAMA,IAAI,KAAKa,mBAAoB,CAAC;QACvD,IAAKE,eAAe,EAAG;UACtB,OAAOA,eAAe,CAACd,EAAE;QAC1B;MACD;MACA;MACA,IAAIe,WAAW;MACf;MACA;MACA;MACA;MACA,IAAKL,YAAY,CAACX,IAAI,EAAG;QACxBgB,WAAW,GACVP,iBAAiB,KAAK,MAAM,GACxB,GAAGA,iBAAmB,IAAIE,YAAY,CAACX,IAAM,EAAC,GAC9C,UAAUS,iBAAmB,IAAIE,YAAY,CAACX,IAAM,EAAC;MAC3D,CAAC,MAAM;QACNgB,WAAW,GACVP,iBAAiB,KAAK,MAAM,GACzB,MAAM,GACL,UAAUA,iBAAmB,EAAC;MACpC;MACA,OAAOH,oBAAoB,CAAE;QAC5BN,IAAI,EAAEgB;MACP,CAAE,CAAC;IACJ;IAEA,IAAK,CAAE1C,wBAAwB,EAAG;MACjC,OAAO8B,SAAS;IACjB;;IAEA;IACA;IACA,IACC/B,QAAQ,IACRD,MAAM,IACNF,mBAAmB,CAACqB,QAAQ,CAAElB,QAAS,CAAC,EACvC;MACD,OAAOmC,+BAA+B,CAAEnC,QAAQ,EAAED,MAAO,CAAC;IAC3D;;IAEA;IACA,IAAKG,UAAU,EAAG;MACjB,OAAOiC,+BAA+B,CAAE,MAAM,EAAEjC,UAAW,CAAC;IAC7D;;IAEA;IACA,IAAKE,GAAG,EAAG;MACV,MAAMqC,QAAQ,GAAGP,gCAAgC,CAAE9B,GAAI,CAAC;MACxD,OAAOqC,QAAQ,EAAEb,EAAE;IACpB;EACD,CAAC,EACD,CACC1B,UAAU,EACVC,WAAW,EACXF,wBAAwB,EACxBG,GAAG,EACHL,MAAM,EACNC,QAAQ,EACRK,mBAAmB,CAErB,CAAC;EAED,MAAMuC,OAAO,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC9B,IAAKtD,8BAA8B,CAAC2B,QAAQ,CAAElB,QAAS,CAAC,IAAID,MAAM,EAAG;MACpE,OAAO,CAAC,CAAC;IACV;IAEA,IAAKC,QAAQ,IAAID,MAAM,IAAIF,mBAAmB,CAACqB,QAAQ,CAAElB,QAAS,CAAC,EAAG;MACrE,OAAO;QAAEA,QAAQ;QAAED;MAAO,CAAC;IAC5B;IACA;IACA;IACA,IAAKG,UAAU,EAAG;MACjB,OAAO;QAAEF,QAAQ,EAAE,MAAM;QAAED,MAAM,EAAEG;MAAW,CAAC;IAChD;IAEA,OAAO,CAAC,CAAC;EACV,CAAC,EAAE,CAAEA,UAAU,EAAEF,QAAQ,EAAED,MAAM,CAAG,CAAC;EAErC,IAAKR,8BAA8B,CAAC2B,QAAQ,CAAElB,QAAS,CAAC,IAAID,MAAM,EAAG;IACpE,OAAO;MAAE+C,OAAO,EAAE,IAAI;MAAE9C,QAAQ;MAAED,MAAM;MAAE6C;IAAQ,CAAC;EACpD;EAEA,IAAK3C,wBAAwB,EAAG;IAC/B,OAAO;MACN6C,OAAO,EAAEhB,kBAAkB,KAAKC,SAAS;MACzC/B,QAAQ,EAAER,6BAAkB;MAC5BO,MAAM,EAAE+B,kBAAkB;MAC1Bc;IACD,CAAC;EACF;EAEA,OAAO;IAAEE,OAAO,EAAE;EAAM,CAAC;AAC1B;AAEe,SAASC,0BAA0BA,CAAA,EAAG;EACpD,MAAM;IAAEC,MAAM,GAAG,CAAC;EAAE,CAAC,GAAG5D,WAAW,CAAC,CAAC;EACrC,MAAM;IAAEY,QAAQ;IAAED,MAAM;IAAE6C,OAAO;IAAEE;EAAQ,CAAC,GAC3ChD,gCAAgC,CAAEkD,MAAO,CAAC;EAE3C,MAAM;IAAEC;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAc,CAAC;EAExD,IAAAC,kBAAS,EAAE,MAAM;IAChB,IAAKN,OAAO,EAAG;MACdG,eAAe,CAAEjD,QAAQ,EAAED,MAAM,EAAE6C,OAAQ,CAAC;IAC7C;EACD,CAAC,EAAE,CAAEE,OAAO,EAAE9C,QAAQ,EAAED,MAAM,EAAE6C,OAAO,EAAEK,eAAe,CAAG,CAAC;AAC7D","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_coreData","_router","_store","_lockUnlock","_constants","useLocation","unlock","routerPrivateApis","postTypesWithoutParentTemplate","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","user","authorizedPostTypes","useResolveEditedEntityAndContext","postId","postType","hasLoadedAllDependencies","homepageId","postsPageId","url","frontPageTemplateId","useSelect","select","getSite","getUnstableBase","getEntityRecords","coreDataStore","siteData","base","templates","per_page","_homepageId","show_on_front","includes","page_on_front","toString","_postsPageId","page_for_posts","_frontPageTemplateId","frontPageTemplate","find","t","slug","id","home","resolvedTemplateId","undefined","getEditedEntityRecord","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","link","currentTemplateSlug","template","currentTemplate","slugToCheck","context","useMemo","isReady","useInitEditedEntityFromURL","params","setEditedEntity","useDispatch","editSiteStore","useEffect"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nconst authorizedPostTypes = [ 'page', 'post' ];\n\nfunction useResolveEditedEntityAndContext( { postId, postType } ) {\n\tconst {\n\t\thasLoadedAllDependencies,\n\t\thomepageId,\n\t\tpostsPageId,\n\t\turl,\n\t\tfrontPageTemplateId,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\tselect( coreDataStore );\n\t\tconst siteData = getSite();\n\t\tconst base = getUnstableBase();\n\t\tconst templates = getEntityRecords( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t} );\n\t\tconst _homepageId =\n\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t[ 'number', 'string' ].includes( typeof siteData.page_on_front ) &&\n\t\t\t!! +siteData.page_on_front // We also need to check if it's not zero(`0`).\n\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t: null;\n\t\tconst _postsPageId =\n\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t[ 'number', 'string' ].includes( typeof siteData.page_for_posts )\n\t\t\t\t? siteData.page_for_posts.toString()\n\t\t\t\t: null;\n\t\tlet _frontPageTemplateId;\n\t\tif ( templates ) {\n\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t);\n\t\t\t_frontPageTemplateId = frontPageTemplate\n\t\t\t\t? frontPageTemplate.id\n\t\t\t\t: false;\n\t\t}\n\t\treturn {\n\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\thomepageId: _homepageId,\n\t\t\tpostsPageId: _postsPageId,\n\t\t\turl: base?.home,\n\t\t\tfrontPageTemplateId: _frontPageTemplateId,\n\t\t};\n\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif (\n\t\t\t\tpostTypesWithoutParentTemplate.includes( postType ) &&\n\t\t\t\tpostId\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// Don't trigger resolution for multi-selected posts.\n\t\t\tif ( postId && postId.includes( ',' ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// Check if the current page is the posts page.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\tpostsPageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\treturn __experimentalGetTemplateForLink( editedEntity.link )\n\t\t\t\t\t\t?.id;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\tlet slugToCheck;\n\t\t\t\t// In `draft` status we might not have a slug available, so we use the `single`\n\t\t\t\t// post type templates slug(ex page, single-post, single-product etc..).\n\t\t\t\t// Pages do not need the `single` prefix in the slug to be prioritized\n\t\t\t\t// through template hierarchy.\n\t\t\t\tif ( editedEntity.slug ) {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? `${ postTypeToResolve }-${ editedEntity.slug }`\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }-${ editedEntity.slug }`;\n\t\t\t\t} else {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? 'page'\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }`;\n\t\t\t\t}\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: slugToCheck,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, we need to resolve its template.\n\t\t\t// The site editor only supports pages for now, not other CPTs.\n\t\t\tif (\n\t\t\t\tpostType &&\n\t\t\t\tpostId &&\n\t\t\t\tauthorizedPostTypes.includes( postType )\n\t\t\t) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\tpostsPageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId && authorizedPostTypes.includes( postType ) ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\t\t// TODO: for post types lists we should probably not render the front page, but maybe a placeholder\n\t\t// with a message like \"Select a page\" or something similar.\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId ] );\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,7 +13,6 @@ var _notices = require("@wordpress/notices");
|
|
|
13
13
|
var _coreData = require("@wordpress/core-data");
|
|
14
14
|
var _hooks2 = require("../../components/global-styles/hooks");
|
|
15
15
|
var _lockUnlock = require("../../lock-unlock");
|
|
16
|
-
var _cloneDeep = _interopRequireDefault(require("../../utils/clone-deep"));
|
|
17
16
|
var _setNestedValue = _interopRequireDefault(require("../../utils/set-nested-value"));
|
|
18
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
18
|
/**
|
|
@@ -246,8 +245,8 @@ function PushChangesToGlobalStylesControl({
|
|
|
246
245
|
const {
|
|
247
246
|
style: blockStyles
|
|
248
247
|
} = attributes;
|
|
249
|
-
const newBlockStyles = (
|
|
250
|
-
const newUserConfig = (
|
|
248
|
+
const newBlockStyles = structuredClone(blockStyles);
|
|
249
|
+
const newUserConfig = structuredClone(userConfig);
|
|
251
250
|
for (const {
|
|
252
251
|
path,
|
|
253
252
|
value
|
|
@@ -292,6 +291,7 @@ function PushChangesToGlobalStylesControl({
|
|
|
292
291
|
}
|
|
293
292
|
}, [__unstableMarkNextChangeAsNotPersistent, attributes, changes, createSuccessNotice, name, setAttributes, setUserConfig, userConfig]);
|
|
294
293
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.BaseControl, {
|
|
294
|
+
__nextHasNoMarginBottom: true,
|
|
295
295
|
className: "edit-site-push-changes-to-global-styles-control",
|
|
296
296
|
help: (0, _i18n.sprintf)(
|
|
297
297
|
// translators: %s: Title of the block e.g. 'Heading'.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_hooks","require","_compose","_blockEditor","_components","_i18n","_blocks","_element","_data","_notices","_coreData","_hooks2","_lockUnlock","_cloneDeep","_interopRequireDefault","_setNestedValue","_jsxRuntime","cleanEmptyObject","GlobalStylesContext","unlock","blockEditorPrivateApis","STYLE_PROPERTY","__EXPERIMENTAL_STYLE_PROPERTY","blockGap","value","STYLE_PATH_TO_CSS_VAR_INFIX","STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE","SUPPORTED_STYLES","getValueFromObjectPath","object","path","forEach","fieldName","flatBorderProperties","sides","getBorderStyleChanges","border","presetColor","userStyle","changes","getFallbackBorderStyleChange","color","customColor","style","width","hasColorOrWidth","side","push","globalBorderStyle","useChangesToPush","name","attributes","userConfig","supports","useSupportedStyles","blockUserConfig","styles","blocks","useMemo","flatMap","key","presetAttributeKey","join","presetAttributeValue","linkChanges","hoverPath","hoverValue","includes","borderChanges","currentPath","splice","borderColor","change","PushChangesToGlobalStylesControl","setAttributes","user","setUserConfig","useContext","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","createSuccessNotice","noticesStore","pushChanges","useCallback","length","blockStyles","newBlockStyles","cloneDeep","newUserConfig","setNestedValue","undefined","newBlockAttributes","backgroundColor","textColor","gradient","fontSize","fontFamily","undoIgnore","sprintf","__","getBlockType","title","type","actions","label","onClick","jsxs","BaseControl","className","help","children","jsx","VisualLabel","Button","__next40pxDefaultSize","variant","accessibleWhenDisabled","disabled","PushChangesToGlobalStyles","props","blockEditingMode","useBlockEditingMode","isBlockBasedTheme","useSelect","select","coreStore","getCurrentTheme","is_block_theme","supportsStyles","some","feature","hasBlockSupport","isDisplayed","InspectorAdvancedControls","withPushChangesToGlobalStyles","createHigherOrderComponent","BlockEdit","Fragment","isSelected","addFilter"],"sources":["@wordpress/edit-site/src/hooks/push-changes-to-global-styles/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport {\n\tInspectorAdvancedControls,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY,\n\tgetBlockType,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useContext, useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useSupportedStyles } from '../../components/global-styles/hooks';\nimport { unlock } from '../../lock-unlock';\nimport cloneDeep from '../../utils/clone-deep';\nimport setNestedValue from '../../utils/set-nested-value';\n\nconst { cleanEmptyObject, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\n// Block Gap is a special case and isn't defined within the blocks\n// style properties config. We'll add it here to allow it to be pushed\n// to global styles as well.\nconst STYLE_PROPERTY = {\n\t...__EXPERIMENTAL_STYLE_PROPERTY,\n\tblockGap: { value: [ 'spacing', 'blockGap' ] },\n};\n\n// TODO: Temporary duplication of constant in @wordpress/block-editor. Can be\n// removed by moving PushChangesToGlobalStylesControl to\n// @wordpress/block-editor.\nconst STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'border.color': 'color',\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'elements.link.color.text': 'color',\n\t'elements.link.:hover.color.text': 'color',\n\t'elements.link.typography.fontFamily': 'font-family',\n\t'elements.link.typography.fontSize': 'font-size',\n\t'elements.button.color.text': 'color',\n\t'elements.button.color.background': 'color',\n\t'elements.button.typography.fontFamily': 'font-family',\n\t'elements.button.typography.fontSize': 'font-size',\n\t'elements.caption.color.text': 'color',\n\t'elements.heading.color': 'color',\n\t'elements.heading.color.background': 'color',\n\t'elements.heading.typography.fontFamily': 'font-family',\n\t'elements.heading.gradient': 'gradient',\n\t'elements.heading.color.gradient': 'gradient',\n\t'elements.h1.color': 'color',\n\t'elements.h1.color.background': 'color',\n\t'elements.h1.typography.fontFamily': 'font-family',\n\t'elements.h1.color.gradient': 'gradient',\n\t'elements.h2.color': 'color',\n\t'elements.h2.color.background': 'color',\n\t'elements.h2.typography.fontFamily': 'font-family',\n\t'elements.h2.color.gradient': 'gradient',\n\t'elements.h3.color': 'color',\n\t'elements.h3.color.background': 'color',\n\t'elements.h3.typography.fontFamily': 'font-family',\n\t'elements.h3.color.gradient': 'gradient',\n\t'elements.h4.color': 'color',\n\t'elements.h4.color.background': 'color',\n\t'elements.h4.typography.fontFamily': 'font-family',\n\t'elements.h4.color.gradient': 'gradient',\n\t'elements.h5.color': 'color',\n\t'elements.h5.color.background': 'color',\n\t'elements.h5.typography.fontFamily': 'font-family',\n\t'elements.h5.color.gradient': 'gradient',\n\t'elements.h6.color': 'color',\n\t'elements.h6.color.background': 'color',\n\t'elements.h6.typography.fontFamily': 'font-family',\n\t'elements.h6.color.gradient': 'gradient',\n\t'color.gradient': 'gradient',\n\tblockGap: 'spacing',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\n// TODO: Temporary duplication of constant in @wordpress/block-editor. Can be\n// removed by moving PushChangesToGlobalStylesControl to\n// @wordpress/block-editor.\nconst STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {\n\t'border.color': 'borderColor',\n\t'color.background': 'backgroundColor',\n\t'color.text': 'textColor',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'fontSize',\n\t'typography.fontFamily': 'fontFamily',\n};\n\nconst SUPPORTED_STYLES = [ 'border', 'color', 'spacing', 'typography' ];\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\nconst flatBorderProperties = [ 'borderColor', 'borderWidth', 'borderStyle' ];\nconst sides = [ 'top', 'right', 'bottom', 'left' ];\n\nfunction getBorderStyleChanges( border, presetColor, userStyle ) {\n\tif ( ! border && ! presetColor ) {\n\t\treturn [];\n\t}\n\n\tconst changes = [\n\t\t...getFallbackBorderStyleChange( 'top', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'right', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'bottom', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'left', border, userStyle ),\n\t];\n\n\t// Handle a flat border i.e. all sides the same, CSS shorthand.\n\tconst { color: customColor, style, width } = border || {};\n\tconst hasColorOrWidth = presetColor || customColor || width;\n\n\tif ( hasColorOrWidth && ! style ) {\n\t\t// Global Styles need individual side configurations to overcome\n\t\t// theme.json configurations which are per side as well.\n\t\tsides.forEach( ( side ) => {\n\t\t\t// Only add fallback border-style if global styles don't already\n\t\t\t// have something set.\n\t\t\tif ( ! userStyle?.[ side ]?.style ) {\n\t\t\t\tchanges.push( {\n\t\t\t\t\tpath: [ 'border', side, 'style' ],\n\t\t\t\t\tvalue: 'solid',\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn changes;\n}\n\nfunction getFallbackBorderStyleChange( side, border, globalBorderStyle ) {\n\tif ( ! border?.[ side ] || globalBorderStyle?.[ side ]?.style ) {\n\t\treturn [];\n\t}\n\n\tconst { color, style, width } = border[ side ];\n\tconst hasColorOrWidth = color || width;\n\n\tif ( ! hasColorOrWidth || style ) {\n\t\treturn [];\n\t}\n\n\treturn [ { path: [ 'border', side, 'style' ], value: 'solid' } ];\n}\n\nfunction useChangesToPush( name, attributes, userConfig ) {\n\tconst supports = useSupportedStyles( name );\n\tconst blockUserConfig = userConfig?.styles?.blocks?.[ name ];\n\n\treturn useMemo( () => {\n\t\tconst changes = supports.flatMap( ( key ) => {\n\t\t\tif ( ! STYLE_PROPERTY[ key ] ) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tconst { value: path } = STYLE_PROPERTY[ key ];\n\t\t\tconst presetAttributeKey = path.join( '.' );\n\t\t\tconst presetAttributeValue =\n\t\t\t\tattributes[\n\t\t\t\t\tSTYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE[ presetAttributeKey ]\n\t\t\t\t];\n\t\t\tconst value = presetAttributeValue\n\t\t\t\t? `var:preset|${ STYLE_PATH_TO_CSS_VAR_INFIX[ presetAttributeKey ] }|${ presetAttributeValue }`\n\t\t\t\t: getValueFromObjectPath( attributes.style, path );\n\n\t\t\t// Links only have a single support entry but have two element\n\t\t\t// style properties, color and hover color. The following check\n\t\t\t// will add the hover color to the changes if required.\n\t\t\tif ( key === 'linkColor' ) {\n\t\t\t\tconst linkChanges = value ? [ { path, value } ] : [];\n\t\t\t\tconst hoverPath = [\n\t\t\t\t\t'elements',\n\t\t\t\t\t'link',\n\t\t\t\t\t':hover',\n\t\t\t\t\t'color',\n\t\t\t\t\t'text',\n\t\t\t\t];\n\t\t\t\tconst hoverValue = getValueFromObjectPath(\n\t\t\t\t\tattributes.style,\n\t\t\t\t\thoverPath\n\t\t\t\t);\n\n\t\t\t\tif ( hoverValue ) {\n\t\t\t\t\tlinkChanges.push( { path: hoverPath, value: hoverValue } );\n\t\t\t\t}\n\n\t\t\t\treturn linkChanges;\n\t\t\t}\n\n\t\t\t// The shorthand border styles can't be mapped directly as global\n\t\t\t// styles requires longhand config.\n\t\t\tif ( flatBorderProperties.includes( key ) && value ) {\n\t\t\t\t// The shorthand config path is included to clear the block attribute.\n\t\t\t\tconst borderChanges = [ { path, value } ];\n\t\t\t\tsides.forEach( ( side ) => {\n\t\t\t\t\tconst currentPath = [ ...path ];\n\t\t\t\t\tcurrentPath.splice( -1, 0, side );\n\t\t\t\t\tborderChanges.push( { path: currentPath, value } );\n\t\t\t\t} );\n\t\t\t\treturn borderChanges;\n\t\t\t}\n\n\t\t\treturn value ? [ { path, value } ] : [];\n\t\t} );\n\n\t\t// To ensure display of a visible border, global styles require a\n\t\t// default border style if a border color or width is present.\n\t\tgetBorderStyleChanges(\n\t\t\tattributes.style?.border,\n\t\t\tattributes.borderColor,\n\t\t\tblockUserConfig?.border\n\t\t).forEach( ( change ) => changes.push( change ) );\n\n\t\treturn changes;\n\t}, [ supports, attributes, blockUserConfig ] );\n}\n\nfunction PushChangesToGlobalStylesControl( {\n\tname,\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { user: userConfig, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\n\tconst changes = useChangesToPush( name, attributes, userConfig );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst pushChanges = useCallback( () => {\n\t\tif ( changes.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( changes.length > 0 ) {\n\t\t\tconst { style: blockStyles } = attributes;\n\n\t\t\tconst newBlockStyles = cloneDeep( blockStyles );\n\t\t\tconst newUserConfig = cloneDeep( userConfig );\n\n\t\t\tfor ( const { path, value } of changes ) {\n\t\t\t\tsetNestedValue( newBlockStyles, path, undefined );\n\t\t\t\tsetNestedValue(\n\t\t\t\t\tnewUserConfig,\n\t\t\t\t\t[ 'styles', 'blocks', name, ...path ],\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst newBlockAttributes = {\n\t\t\t\tborderColor: undefined,\n\t\t\t\tbackgroundColor: undefined,\n\t\t\t\ttextColor: undefined,\n\t\t\t\tgradient: undefined,\n\t\t\t\tfontSize: undefined,\n\t\t\t\tfontFamily: undefined,\n\t\t\t\tstyle: cleanEmptyObject( newBlockStyles ),\n\t\t\t};\n\n\t\t\t// @wordpress/core-data doesn't support editing multiple entity types in\n\t\t\t// a single undo level. So for now, we disable @wordpress/core-data undo\n\t\t\t// tracking and implement our own Undo button in the snackbar\n\t\t\t// notification.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( newBlockAttributes );\n\t\t\tsetUserConfig( newUserConfig, { undoIgnore: true } );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the block e.g. 'Heading'.\n\t\t\t\t\t__( '%s styles applied.' ),\n\t\t\t\t\tgetBlockType( name ).title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tsetAttributes( attributes );\n\t\t\t\t\t\t\t\tsetUserConfig( userConfig, {\n\t\t\t\t\t\t\t\t\tundoIgnore: true,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tattributes,\n\t\tchanges,\n\t\tcreateSuccessNotice,\n\t\tname,\n\t\tsetAttributes,\n\t\tsetUserConfig,\n\t\tuserConfig,\n\t] );\n\n\treturn (\n\t\t<BaseControl\n\t\t\tclassName=\"edit-site-push-changes-to-global-styles-control\"\n\t\t\thelp={ sprintf(\n\t\t\t\t// translators: %s: Title of the block e.g. 'Heading'.\n\t\t\t\t__(\n\t\t\t\t\t'Apply this block’s typography, spacing, dimensions, and color styles to all %s blocks.'\n\t\t\t\t),\n\t\t\t\tgetBlockType( name ).title\n\t\t\t) }\n\t\t>\n\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t{ __( 'Styles' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tdisabled={ changes.length === 0 }\n\t\t\t\tonClick={ pushChanges }\n\t\t\t>\n\t\t\t\t{ __( 'Apply globally' ) }\n\t\t\t</Button>\n\t\t</BaseControl>\n\t);\n}\n\nfunction PushChangesToGlobalStyles( props ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst isBlockBasedTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.is_block_theme,\n\t\t[]\n\t);\n\tconst supportsStyles = SUPPORTED_STYLES.some( ( feature ) =>\n\t\thasBlockSupport( props.name, feature )\n\t);\n\tconst isDisplayed =\n\t\tblockEditingMode === 'default' && supportsStyles && isBlockBasedTheme;\n\n\tif ( ! isDisplayed ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<InspectorAdvancedControls>\n\t\t\t<PushChangesToGlobalStylesControl { ...props } />\n\t\t</InspectorAdvancedControls>\n\t);\n}\n\nconst withPushChangesToGlobalStyles = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => (\n\t\t<>\n\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t{ props.isSelected && <PushChangesToGlobalStyles { ...props } /> }\n\t\t</>\n\t)\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-site/push-changes-to-global-styles',\n\twithPushChangesToGlobalStyles\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_hooks","require","_compose","_blockEditor","_components","_i18n","_blocks","_element","_data","_notices","_coreData","_hooks2","_lockUnlock","_setNestedValue","_interopRequireDefault","_jsxRuntime","cleanEmptyObject","GlobalStylesContext","unlock","blockEditorPrivateApis","STYLE_PROPERTY","__EXPERIMENTAL_STYLE_PROPERTY","blockGap","value","STYLE_PATH_TO_CSS_VAR_INFIX","STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE","SUPPORTED_STYLES","getValueFromObjectPath","object","path","forEach","fieldName","flatBorderProperties","sides","getBorderStyleChanges","border","presetColor","userStyle","changes","getFallbackBorderStyleChange","color","customColor","style","width","hasColorOrWidth","side","push","globalBorderStyle","useChangesToPush","name","attributes","userConfig","supports","useSupportedStyles","blockUserConfig","styles","blocks","useMemo","flatMap","key","presetAttributeKey","join","presetAttributeValue","linkChanges","hoverPath","hoverValue","includes","borderChanges","currentPath","splice","borderColor","change","PushChangesToGlobalStylesControl","setAttributes","user","setUserConfig","useContext","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","createSuccessNotice","noticesStore","pushChanges","useCallback","length","blockStyles","newBlockStyles","structuredClone","newUserConfig","setNestedValue","undefined","newBlockAttributes","backgroundColor","textColor","gradient","fontSize","fontFamily","undoIgnore","sprintf","__","getBlockType","title","type","actions","label","onClick","jsxs","BaseControl","__nextHasNoMarginBottom","className","help","children","jsx","VisualLabel","Button","__next40pxDefaultSize","variant","accessibleWhenDisabled","disabled","PushChangesToGlobalStyles","props","blockEditingMode","useBlockEditingMode","isBlockBasedTheme","useSelect","select","coreStore","getCurrentTheme","is_block_theme","supportsStyles","some","feature","hasBlockSupport","isDisplayed","InspectorAdvancedControls","withPushChangesToGlobalStyles","createHigherOrderComponent","BlockEdit","Fragment","isSelected","addFilter"],"sources":["@wordpress/edit-site/src/hooks/push-changes-to-global-styles/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport {\n\tInspectorAdvancedControls,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY,\n\tgetBlockType,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useContext, useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useSupportedStyles } from '../../components/global-styles/hooks';\nimport { unlock } from '../../lock-unlock';\nimport setNestedValue from '../../utils/set-nested-value';\n\nconst { cleanEmptyObject, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\n// Block Gap is a special case and isn't defined within the blocks\n// style properties config. We'll add it here to allow it to be pushed\n// to global styles as well.\nconst STYLE_PROPERTY = {\n\t...__EXPERIMENTAL_STYLE_PROPERTY,\n\tblockGap: { value: [ 'spacing', 'blockGap' ] },\n};\n\n// TODO: Temporary duplication of constant in @wordpress/block-editor. Can be\n// removed by moving PushChangesToGlobalStylesControl to\n// @wordpress/block-editor.\nconst STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'border.color': 'color',\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'elements.link.color.text': 'color',\n\t'elements.link.:hover.color.text': 'color',\n\t'elements.link.typography.fontFamily': 'font-family',\n\t'elements.link.typography.fontSize': 'font-size',\n\t'elements.button.color.text': 'color',\n\t'elements.button.color.background': 'color',\n\t'elements.button.typography.fontFamily': 'font-family',\n\t'elements.button.typography.fontSize': 'font-size',\n\t'elements.caption.color.text': 'color',\n\t'elements.heading.color': 'color',\n\t'elements.heading.color.background': 'color',\n\t'elements.heading.typography.fontFamily': 'font-family',\n\t'elements.heading.gradient': 'gradient',\n\t'elements.heading.color.gradient': 'gradient',\n\t'elements.h1.color': 'color',\n\t'elements.h1.color.background': 'color',\n\t'elements.h1.typography.fontFamily': 'font-family',\n\t'elements.h1.color.gradient': 'gradient',\n\t'elements.h2.color': 'color',\n\t'elements.h2.color.background': 'color',\n\t'elements.h2.typography.fontFamily': 'font-family',\n\t'elements.h2.color.gradient': 'gradient',\n\t'elements.h3.color': 'color',\n\t'elements.h3.color.background': 'color',\n\t'elements.h3.typography.fontFamily': 'font-family',\n\t'elements.h3.color.gradient': 'gradient',\n\t'elements.h4.color': 'color',\n\t'elements.h4.color.background': 'color',\n\t'elements.h4.typography.fontFamily': 'font-family',\n\t'elements.h4.color.gradient': 'gradient',\n\t'elements.h5.color': 'color',\n\t'elements.h5.color.background': 'color',\n\t'elements.h5.typography.fontFamily': 'font-family',\n\t'elements.h5.color.gradient': 'gradient',\n\t'elements.h6.color': 'color',\n\t'elements.h6.color.background': 'color',\n\t'elements.h6.typography.fontFamily': 'font-family',\n\t'elements.h6.color.gradient': 'gradient',\n\t'color.gradient': 'gradient',\n\tblockGap: 'spacing',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\n// TODO: Temporary duplication of constant in @wordpress/block-editor. Can be\n// removed by moving PushChangesToGlobalStylesControl to\n// @wordpress/block-editor.\nconst STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {\n\t'border.color': 'borderColor',\n\t'color.background': 'backgroundColor',\n\t'color.text': 'textColor',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'fontSize',\n\t'typography.fontFamily': 'fontFamily',\n};\n\nconst SUPPORTED_STYLES = [ 'border', 'color', 'spacing', 'typography' ];\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\nconst flatBorderProperties = [ 'borderColor', 'borderWidth', 'borderStyle' ];\nconst sides = [ 'top', 'right', 'bottom', 'left' ];\n\nfunction getBorderStyleChanges( border, presetColor, userStyle ) {\n\tif ( ! border && ! presetColor ) {\n\t\treturn [];\n\t}\n\n\tconst changes = [\n\t\t...getFallbackBorderStyleChange( 'top', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'right', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'bottom', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'left', border, userStyle ),\n\t];\n\n\t// Handle a flat border i.e. all sides the same, CSS shorthand.\n\tconst { color: customColor, style, width } = border || {};\n\tconst hasColorOrWidth = presetColor || customColor || width;\n\n\tif ( hasColorOrWidth && ! style ) {\n\t\t// Global Styles need individual side configurations to overcome\n\t\t// theme.json configurations which are per side as well.\n\t\tsides.forEach( ( side ) => {\n\t\t\t// Only add fallback border-style if global styles don't already\n\t\t\t// have something set.\n\t\t\tif ( ! userStyle?.[ side ]?.style ) {\n\t\t\t\tchanges.push( {\n\t\t\t\t\tpath: [ 'border', side, 'style' ],\n\t\t\t\t\tvalue: 'solid',\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn changes;\n}\n\nfunction getFallbackBorderStyleChange( side, border, globalBorderStyle ) {\n\tif ( ! border?.[ side ] || globalBorderStyle?.[ side ]?.style ) {\n\t\treturn [];\n\t}\n\n\tconst { color, style, width } = border[ side ];\n\tconst hasColorOrWidth = color || width;\n\n\tif ( ! hasColorOrWidth || style ) {\n\t\treturn [];\n\t}\n\n\treturn [ { path: [ 'border', side, 'style' ], value: 'solid' } ];\n}\n\nfunction useChangesToPush( name, attributes, userConfig ) {\n\tconst supports = useSupportedStyles( name );\n\tconst blockUserConfig = userConfig?.styles?.blocks?.[ name ];\n\n\treturn useMemo( () => {\n\t\tconst changes = supports.flatMap( ( key ) => {\n\t\t\tif ( ! STYLE_PROPERTY[ key ] ) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tconst { value: path } = STYLE_PROPERTY[ key ];\n\t\t\tconst presetAttributeKey = path.join( '.' );\n\t\t\tconst presetAttributeValue =\n\t\t\t\tattributes[\n\t\t\t\t\tSTYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE[ presetAttributeKey ]\n\t\t\t\t];\n\t\t\tconst value = presetAttributeValue\n\t\t\t\t? `var:preset|${ STYLE_PATH_TO_CSS_VAR_INFIX[ presetAttributeKey ] }|${ presetAttributeValue }`\n\t\t\t\t: getValueFromObjectPath( attributes.style, path );\n\n\t\t\t// Links only have a single support entry but have two element\n\t\t\t// style properties, color and hover color. The following check\n\t\t\t// will add the hover color to the changes if required.\n\t\t\tif ( key === 'linkColor' ) {\n\t\t\t\tconst linkChanges = value ? [ { path, value } ] : [];\n\t\t\t\tconst hoverPath = [\n\t\t\t\t\t'elements',\n\t\t\t\t\t'link',\n\t\t\t\t\t':hover',\n\t\t\t\t\t'color',\n\t\t\t\t\t'text',\n\t\t\t\t];\n\t\t\t\tconst hoverValue = getValueFromObjectPath(\n\t\t\t\t\tattributes.style,\n\t\t\t\t\thoverPath\n\t\t\t\t);\n\n\t\t\t\tif ( hoverValue ) {\n\t\t\t\t\tlinkChanges.push( { path: hoverPath, value: hoverValue } );\n\t\t\t\t}\n\n\t\t\t\treturn linkChanges;\n\t\t\t}\n\n\t\t\t// The shorthand border styles can't be mapped directly as global\n\t\t\t// styles requires longhand config.\n\t\t\tif ( flatBorderProperties.includes( key ) && value ) {\n\t\t\t\t// The shorthand config path is included to clear the block attribute.\n\t\t\t\tconst borderChanges = [ { path, value } ];\n\t\t\t\tsides.forEach( ( side ) => {\n\t\t\t\t\tconst currentPath = [ ...path ];\n\t\t\t\t\tcurrentPath.splice( -1, 0, side );\n\t\t\t\t\tborderChanges.push( { path: currentPath, value } );\n\t\t\t\t} );\n\t\t\t\treturn borderChanges;\n\t\t\t}\n\n\t\t\treturn value ? [ { path, value } ] : [];\n\t\t} );\n\n\t\t// To ensure display of a visible border, global styles require a\n\t\t// default border style if a border color or width is present.\n\t\tgetBorderStyleChanges(\n\t\t\tattributes.style?.border,\n\t\t\tattributes.borderColor,\n\t\t\tblockUserConfig?.border\n\t\t).forEach( ( change ) => changes.push( change ) );\n\n\t\treturn changes;\n\t}, [ supports, attributes, blockUserConfig ] );\n}\n\nfunction PushChangesToGlobalStylesControl( {\n\tname,\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { user: userConfig, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\n\tconst changes = useChangesToPush( name, attributes, userConfig );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst pushChanges = useCallback( () => {\n\t\tif ( changes.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( changes.length > 0 ) {\n\t\t\tconst { style: blockStyles } = attributes;\n\n\t\t\tconst newBlockStyles = structuredClone( blockStyles );\n\t\t\tconst newUserConfig = structuredClone( userConfig );\n\n\t\t\tfor ( const { path, value } of changes ) {\n\t\t\t\tsetNestedValue( newBlockStyles, path, undefined );\n\t\t\t\tsetNestedValue(\n\t\t\t\t\tnewUserConfig,\n\t\t\t\t\t[ 'styles', 'blocks', name, ...path ],\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst newBlockAttributes = {\n\t\t\t\tborderColor: undefined,\n\t\t\t\tbackgroundColor: undefined,\n\t\t\t\ttextColor: undefined,\n\t\t\t\tgradient: undefined,\n\t\t\t\tfontSize: undefined,\n\t\t\t\tfontFamily: undefined,\n\t\t\t\tstyle: cleanEmptyObject( newBlockStyles ),\n\t\t\t};\n\n\t\t\t// @wordpress/core-data doesn't support editing multiple entity types in\n\t\t\t// a single undo level. So for now, we disable @wordpress/core-data undo\n\t\t\t// tracking and implement our own Undo button in the snackbar\n\t\t\t// notification.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( newBlockAttributes );\n\t\t\tsetUserConfig( newUserConfig, { undoIgnore: true } );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the block e.g. 'Heading'.\n\t\t\t\t\t__( '%s styles applied.' ),\n\t\t\t\t\tgetBlockType( name ).title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tsetAttributes( attributes );\n\t\t\t\t\t\t\t\tsetUserConfig( userConfig, {\n\t\t\t\t\t\t\t\t\tundoIgnore: true,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tattributes,\n\t\tchanges,\n\t\tcreateSuccessNotice,\n\t\tname,\n\t\tsetAttributes,\n\t\tsetUserConfig,\n\t\tuserConfig,\n\t] );\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName=\"edit-site-push-changes-to-global-styles-control\"\n\t\t\thelp={ sprintf(\n\t\t\t\t// translators: %s: Title of the block e.g. 'Heading'.\n\t\t\t\t__(\n\t\t\t\t\t'Apply this block’s typography, spacing, dimensions, and color styles to all %s blocks.'\n\t\t\t\t),\n\t\t\t\tgetBlockType( name ).title\n\t\t\t) }\n\t\t>\n\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t{ __( 'Styles' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tdisabled={ changes.length === 0 }\n\t\t\t\tonClick={ pushChanges }\n\t\t\t>\n\t\t\t\t{ __( 'Apply globally' ) }\n\t\t\t</Button>\n\t\t</BaseControl>\n\t);\n}\n\nfunction PushChangesToGlobalStyles( props ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst isBlockBasedTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.is_block_theme,\n\t\t[]\n\t);\n\tconst supportsStyles = SUPPORTED_STYLES.some( ( feature ) =>\n\t\thasBlockSupport( props.name, feature )\n\t);\n\tconst isDisplayed =\n\t\tblockEditingMode === 'default' && supportsStyles && isBlockBasedTheme;\n\n\tif ( ! isDisplayed ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<InspectorAdvancedControls>\n\t\t\t<PushChangesToGlobalStylesControl { ...props } />\n\t\t</InspectorAdvancedControls>\n\t);\n}\n\nconst withPushChangesToGlobalStyles = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => (\n\t\t<>\n\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t{ props.isSelected && <PushChangesToGlobalStyles { ...props } /> }\n\t\t</>\n\t)\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-site/push-changes-to-global-styles',\n\twithPushChangesToGlobalStyles\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -14,7 +13,6 @@ var _element = require("@wordpress/element");
|
|
|
14
13
|
var _blockEditor = require("@wordpress/block-editor");
|
|
15
14
|
var _editor = require("@wordpress/editor");
|
|
16
15
|
var _i18n = require("@wordpress/i18n");
|
|
17
|
-
var _cloneDeep = _interopRequireDefault(require("../../utils/clone-deep"));
|
|
18
16
|
var _lockUnlock = require("../../lock-unlock");
|
|
19
17
|
/**
|
|
20
18
|
* WordPress dependencies
|
|
@@ -96,7 +94,7 @@ function useCurrentMergeThemeStyleVariationsWithUserConfig(properties = []) {
|
|
|
96
94
|
} = (0, _element.useContext)(GlobalStylesContext);
|
|
97
95
|
const propertiesAsString = properties.toString();
|
|
98
96
|
return (0, _element.useMemo)(() => {
|
|
99
|
-
const clonedUserVariation = (
|
|
97
|
+
const clonedUserVariation = structuredClone(userVariation);
|
|
100
98
|
|
|
101
99
|
// Get user variation and remove the settings for the given property.
|
|
102
100
|
const userVariationWithoutProperties = removePropertiesFromObject(clonedUserVariation, properties);
|
|
@@ -153,7 +151,7 @@ const filterObjectByProperties = (object, properties) => {
|
|
|
153
151
|
*/
|
|
154
152
|
exports.filterObjectByProperties = filterObjectByProperties;
|
|
155
153
|
function isVariationWithProperties(variation, properties) {
|
|
156
|
-
const variationWithProperties = filterObjectByProperties((
|
|
154
|
+
const variationWithProperties = filterObjectByProperties(structuredClone(variation), properties);
|
|
157
155
|
return areGlobalStyleConfigsEqual(variationWithProperties, variation);
|
|
158
156
|
}
|
|
159
157
|
//# sourceMappingURL=use-theme-style-variations-by-property.js.map
|