@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
|
@@ -46,7 +46,16 @@ function getFontFamilyFromSetting(fontFamilies, setting) {
|
|
|
46
46
|
return fontFamilies.find(fontFamily => fontFamily.slug === fontFamilySlug);
|
|
47
47
|
}
|
|
48
48
|
export function getFontFamilies(themeJson) {
|
|
49
|
-
const
|
|
49
|
+
const themeFontFamilies = themeJson?.settings?.typography?.fontFamilies?.theme;
|
|
50
|
+
const customFontFamilies = themeJson?.settings?.typography?.fontFamilies?.custom;
|
|
51
|
+
let fontFamilies = [];
|
|
52
|
+
if (themeFontFamilies && customFontFamilies) {
|
|
53
|
+
fontFamilies = [...themeFontFamilies, ...customFontFamilies];
|
|
54
|
+
} else if (themeFontFamilies) {
|
|
55
|
+
fontFamilies = themeFontFamilies;
|
|
56
|
+
} else if (customFontFamilies) {
|
|
57
|
+
fontFamilies = customFontFamilies;
|
|
58
|
+
}
|
|
50
59
|
const bodyFontFamilySetting = themeJson?.styles?.typography?.fontFamily;
|
|
51
60
|
const bodyFontFamily = getFontFamilyFromSetting(fontFamilies, bodyFontFamilySetting);
|
|
52
61
|
const headingFontFamilySetting = themeJson?.styles?.elements?.heading?.typography?.fontFamily;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getVariationClassName","variation","getNewIndexFromPresets","presets","slugPrefix","nameRegex","RegExp","highestPresetValue","reduce","currentHighest","preset","slug","matches","match","id","parseInt","getFontFamilyFromSetting","fontFamilies","setting","Array","isArray","fontFamilyVariable","replace","fontFamilySlug","split","slice","find","fontFamily","getFontFamilies","themeJson","settings","typography","theme","bodyFontFamilySetting","styles","bodyFontFamily","headingFontFamilySetting","elements","heading","headingFontFamily"],"sources":["@wordpress/edit-site/src/components/global-styles/utils.js"],"sourcesContent":["/**\n *\n * @param {string} variation The variation name.\n *\n * @return {string} The variation class name.\n */\nexport function getVariationClassName( variation ) {\n\tif ( ! variation ) {\n\t\treturn '';\n\t}\n\treturn `is-style-${ variation }`;\n}\n\n/**\n * Iterates through the presets array and searches for slugs that start with the specified\n * slugPrefix followed by a numerical suffix. It identifies the highest numerical suffix found\n * and returns one greater than the highest found suffix, ensuring that the new index is unique.\n *\n * @param {Array} presets The array of preset objects, each potentially containing a slug property.\n * @param {string} slugPrefix The prefix to look for in the preset slugs.\n *\n * @return {number} The next available index for a preset with the specified slug prefix, or 1 if no matching slugs are found.\n */\nexport function getNewIndexFromPresets( presets, slugPrefix ) {\n\tconst nameRegex = new RegExp( `^${ slugPrefix }([\\\\d]+)$` );\n\tconst highestPresetValue = presets.reduce( ( currentHighest, preset ) => {\n\t\tif ( typeof preset?.slug === 'string' ) {\n\t\t\tconst matches = preset?.slug.match( nameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id > currentHighest ) {\n\t\t\t\t\treturn id;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn currentHighest;\n\t}, 0 );\n\treturn highestPresetValue + 1;\n}\n\nfunction getFontFamilyFromSetting( fontFamilies, setting ) {\n\tif ( ! Array.isArray( fontFamilies ) || ! setting ) {\n\t\treturn null;\n\t}\n\n\tconst fontFamilyVariable = setting.replace( 'var(', '' ).replace( ')', '' );\n\tconst fontFamilySlug = fontFamilyVariable?.split( '--' ).slice( -1 )[ 0 ];\n\n\treturn fontFamilies.find(\n\t\t( fontFamily ) => fontFamily.slug === fontFamilySlug\n\t);\n}\n\nexport function getFontFamilies( themeJson ) {\n\tconst fontFamilies
|
|
1
|
+
{"version":3,"names":["getVariationClassName","variation","getNewIndexFromPresets","presets","slugPrefix","nameRegex","RegExp","highestPresetValue","reduce","currentHighest","preset","slug","matches","match","id","parseInt","getFontFamilyFromSetting","fontFamilies","setting","Array","isArray","fontFamilyVariable","replace","fontFamilySlug","split","slice","find","fontFamily","getFontFamilies","themeJson","themeFontFamilies","settings","typography","theme","customFontFamilies","custom","bodyFontFamilySetting","styles","bodyFontFamily","headingFontFamilySetting","elements","heading","headingFontFamily"],"sources":["@wordpress/edit-site/src/components/global-styles/utils.js"],"sourcesContent":["/**\n *\n * @param {string} variation The variation name.\n *\n * @return {string} The variation class name.\n */\nexport function getVariationClassName( variation ) {\n\tif ( ! variation ) {\n\t\treturn '';\n\t}\n\treturn `is-style-${ variation }`;\n}\n\n/**\n * Iterates through the presets array and searches for slugs that start with the specified\n * slugPrefix followed by a numerical suffix. It identifies the highest numerical suffix found\n * and returns one greater than the highest found suffix, ensuring that the new index is unique.\n *\n * @param {Array} presets The array of preset objects, each potentially containing a slug property.\n * @param {string} slugPrefix The prefix to look for in the preset slugs.\n *\n * @return {number} The next available index for a preset with the specified slug prefix, or 1 if no matching slugs are found.\n */\nexport function getNewIndexFromPresets( presets, slugPrefix ) {\n\tconst nameRegex = new RegExp( `^${ slugPrefix }([\\\\d]+)$` );\n\tconst highestPresetValue = presets.reduce( ( currentHighest, preset ) => {\n\t\tif ( typeof preset?.slug === 'string' ) {\n\t\t\tconst matches = preset?.slug.match( nameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id > currentHighest ) {\n\t\t\t\t\treturn id;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn currentHighest;\n\t}, 0 );\n\treturn highestPresetValue + 1;\n}\n\nfunction getFontFamilyFromSetting( fontFamilies, setting ) {\n\tif ( ! Array.isArray( fontFamilies ) || ! setting ) {\n\t\treturn null;\n\t}\n\n\tconst fontFamilyVariable = setting.replace( 'var(', '' ).replace( ')', '' );\n\tconst fontFamilySlug = fontFamilyVariable?.split( '--' ).slice( -1 )[ 0 ];\n\n\treturn fontFamilies.find(\n\t\t( fontFamily ) => fontFamily.slug === fontFamilySlug\n\t);\n}\n\nexport function getFontFamilies( themeJson ) {\n\tconst themeFontFamilies =\n\t\tthemeJson?.settings?.typography?.fontFamilies?.theme;\n\tconst customFontFamilies =\n\t\tthemeJson?.settings?.typography?.fontFamilies?.custom;\n\n\tlet fontFamilies = [];\n\tif ( themeFontFamilies && customFontFamilies ) {\n\t\tfontFamilies = [ ...themeFontFamilies, ...customFontFamilies ];\n\t} else if ( themeFontFamilies ) {\n\t\tfontFamilies = themeFontFamilies;\n\t} else if ( customFontFamilies ) {\n\t\tfontFamilies = customFontFamilies;\n\t}\n\tconst bodyFontFamilySetting = themeJson?.styles?.typography?.fontFamily;\n\tconst bodyFontFamily = getFontFamilyFromSetting(\n\t\tfontFamilies,\n\t\tbodyFontFamilySetting\n\t);\n\n\tconst headingFontFamilySetting =\n\t\tthemeJson?.styles?.elements?.heading?.typography?.fontFamily;\n\n\tlet headingFontFamily;\n\tif ( ! headingFontFamilySetting ) {\n\t\theadingFontFamily = bodyFontFamily;\n\t} else {\n\t\theadingFontFamily = getFontFamilyFromSetting(\n\t\t\tfontFamilies,\n\t\t\tthemeJson?.styles?.elements?.heading?.typography?.fontFamily\n\t\t);\n\t}\n\n\treturn [ bodyFontFamily, headingFontFamily ];\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { __experimentalHStack as HStack, Button, Tooltip, Flex } from '@wordpress/components';
|
|
10
|
+
import { __, _x } from '@wordpress/i18n';
|
|
11
|
+
import { useState, useMemo, useId } from '@wordpress/element';
|
|
12
|
+
import { BlockPreview, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
13
|
+
import { Icon, lockSmall } from '@wordpress/icons';
|
|
14
|
+
import { parse } from '@wordpress/blocks';
|
|
15
|
+
import { decodeEntities } from '@wordpress/html-entities';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Internal dependencies
|
|
19
|
+
*/
|
|
20
|
+
import { Async } from '../async';
|
|
21
|
+
import { PATTERN_TYPES, TEMPLATE_PART_POST_TYPE, PATTERN_SYNC_TYPES, OPERATOR_IS } from '../../utils/constants';
|
|
22
|
+
import { unlock } from '../../lock-unlock';
|
|
23
|
+
import { useLink } from '../routes/link';
|
|
24
|
+
import { useAddedBy } from '../page-templates/hooks';
|
|
25
|
+
import { defaultGetTitle } from './search-items';
|
|
26
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
27
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
|
+
const {
|
|
29
|
+
useGlobalStyle
|
|
30
|
+
} = unlock(blockEditorPrivateApis);
|
|
31
|
+
function PreviewWrapper({
|
|
32
|
+
item,
|
|
33
|
+
onClick,
|
|
34
|
+
ariaDescribedBy,
|
|
35
|
+
children
|
|
36
|
+
}) {
|
|
37
|
+
return /*#__PURE__*/_jsx("button", {
|
|
38
|
+
className: "page-patterns-preview-field__button",
|
|
39
|
+
type: "button",
|
|
40
|
+
onClick: item.type !== PATTERN_TYPES.theme ? onClick : undefined,
|
|
41
|
+
"aria-label": item.title,
|
|
42
|
+
"aria-describedby": ariaDescribedBy,
|
|
43
|
+
"aria-disabled": item.type === PATTERN_TYPES.theme,
|
|
44
|
+
children: children
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function PreviewField({
|
|
48
|
+
item
|
|
49
|
+
}) {
|
|
50
|
+
const descriptionId = useId();
|
|
51
|
+
const description = item.description || item?.excerpt?.raw;
|
|
52
|
+
const isUserPattern = item.type === PATTERN_TYPES.user;
|
|
53
|
+
const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
|
|
54
|
+
const [backgroundColor] = useGlobalStyle('color.background');
|
|
55
|
+
const {
|
|
56
|
+
onClick
|
|
57
|
+
} = useLink({
|
|
58
|
+
postType: item.type,
|
|
59
|
+
postId: isUserPattern || isTemplatePart ? item.id : item.name,
|
|
60
|
+
canvas: 'edit'
|
|
61
|
+
});
|
|
62
|
+
const blocks = useMemo(() => {
|
|
63
|
+
var _item$blocks;
|
|
64
|
+
return (_item$blocks = item.blocks) !== null && _item$blocks !== void 0 ? _item$blocks : parse(item.content.raw, {
|
|
65
|
+
__unstableSkipMigrationLogs: true
|
|
66
|
+
});
|
|
67
|
+
}, [item?.content?.raw, item.blocks]);
|
|
68
|
+
const isEmpty = !blocks?.length;
|
|
69
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
70
|
+
className: "page-patterns-preview-field",
|
|
71
|
+
style: {
|
|
72
|
+
backgroundColor
|
|
73
|
+
},
|
|
74
|
+
children: [/*#__PURE__*/_jsxs(PreviewWrapper, {
|
|
75
|
+
item: item,
|
|
76
|
+
onClick: onClick,
|
|
77
|
+
ariaDescribedBy: !!description ? descriptionId : undefined,
|
|
78
|
+
children: [isEmpty && isTemplatePart && __('Empty template part'), isEmpty && !isTemplatePart && __('Empty pattern'), !isEmpty && /*#__PURE__*/_jsx(Async, {
|
|
79
|
+
children: /*#__PURE__*/_jsx(BlockPreview, {
|
|
80
|
+
blocks: blocks,
|
|
81
|
+
viewportWidth: item.viewportWidth
|
|
82
|
+
})
|
|
83
|
+
})]
|
|
84
|
+
}), !!description && /*#__PURE__*/_jsx("div", {
|
|
85
|
+
hidden: true,
|
|
86
|
+
id: descriptionId,
|
|
87
|
+
children: description
|
|
88
|
+
})]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
export const previewField = {
|
|
92
|
+
label: __('Preview'),
|
|
93
|
+
id: 'preview',
|
|
94
|
+
render: PreviewField,
|
|
95
|
+
enableSorting: false
|
|
96
|
+
};
|
|
97
|
+
function TitleField({
|
|
98
|
+
item
|
|
99
|
+
}) {
|
|
100
|
+
const isUserPattern = item.type === PATTERN_TYPES.user;
|
|
101
|
+
const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
|
|
102
|
+
const {
|
|
103
|
+
onClick
|
|
104
|
+
} = useLink({
|
|
105
|
+
postType: item.type,
|
|
106
|
+
postId: isUserPattern || isTemplatePart ? item.id : item.name,
|
|
107
|
+
canvas: 'edit'
|
|
108
|
+
});
|
|
109
|
+
const title = decodeEntities(defaultGetTitle(item));
|
|
110
|
+
return /*#__PURE__*/_jsxs(HStack, {
|
|
111
|
+
alignment: "center",
|
|
112
|
+
justify: "flex-start",
|
|
113
|
+
spacing: 2,
|
|
114
|
+
children: [/*#__PURE__*/_jsx(Flex, {
|
|
115
|
+
as: "div",
|
|
116
|
+
gap: 0,
|
|
117
|
+
justify: "left",
|
|
118
|
+
className: "edit-site-patterns__pattern-title",
|
|
119
|
+
children: item.type === PATTERN_TYPES.theme ? title : /*#__PURE__*/_jsx(Button, {
|
|
120
|
+
variant: "link",
|
|
121
|
+
onClick: onClick
|
|
122
|
+
// Required for the grid's roving tab index system.
|
|
123
|
+
// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
|
|
124
|
+
,
|
|
125
|
+
tabIndex: "-1",
|
|
126
|
+
children: title
|
|
127
|
+
})
|
|
128
|
+
}), item.type === PATTERN_TYPES.theme && /*#__PURE__*/_jsx(Tooltip, {
|
|
129
|
+
placement: "top",
|
|
130
|
+
text: __('This pattern cannot be edited.'),
|
|
131
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
132
|
+
className: "edit-site-patterns__pattern-lock-icon",
|
|
133
|
+
icon: lockSmall,
|
|
134
|
+
size: 24
|
|
135
|
+
})
|
|
136
|
+
})]
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
export const titleField = {
|
|
140
|
+
label: __('Title'),
|
|
141
|
+
id: 'title',
|
|
142
|
+
getValue: ({
|
|
143
|
+
item
|
|
144
|
+
}) => item.title?.raw || item.title,
|
|
145
|
+
render: TitleField,
|
|
146
|
+
enableHiding: false
|
|
147
|
+
};
|
|
148
|
+
const SYNC_FILTERS = [{
|
|
149
|
+
value: PATTERN_SYNC_TYPES.full,
|
|
150
|
+
label: _x('Synced', 'pattern (singular)'),
|
|
151
|
+
description: __('Patterns that are kept in sync across the site.')
|
|
152
|
+
}, {
|
|
153
|
+
value: PATTERN_SYNC_TYPES.unsynced,
|
|
154
|
+
label: _x('Not synced', 'pattern (singular)'),
|
|
155
|
+
description: __('Patterns that can be changed freely without affecting the site.')
|
|
156
|
+
}];
|
|
157
|
+
export const patternStatusField = {
|
|
158
|
+
label: __('Sync status'),
|
|
159
|
+
id: 'sync-status',
|
|
160
|
+
render: ({
|
|
161
|
+
item
|
|
162
|
+
}) => {
|
|
163
|
+
const syncStatus = 'wp_pattern_sync_status' in item ? item.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full : PATTERN_SYNC_TYPES.unsynced;
|
|
164
|
+
// User patterns can have their sync statuses checked directly.
|
|
165
|
+
// Non-user patterns are all unsynced for the time being.
|
|
166
|
+
return /*#__PURE__*/_jsx("span", {
|
|
167
|
+
className: `edit-site-patterns__field-sync-status-${syncStatus}`,
|
|
168
|
+
children: SYNC_FILTERS.find(({
|
|
169
|
+
value
|
|
170
|
+
}) => value === syncStatus).label
|
|
171
|
+
});
|
|
172
|
+
},
|
|
173
|
+
elements: SYNC_FILTERS,
|
|
174
|
+
filterBy: {
|
|
175
|
+
operators: [OPERATOR_IS],
|
|
176
|
+
isPrimary: true
|
|
177
|
+
},
|
|
178
|
+
enableSorting: false
|
|
179
|
+
};
|
|
180
|
+
function AuthorField({
|
|
181
|
+
item
|
|
182
|
+
}) {
|
|
183
|
+
const [isImageLoaded, setIsImageLoaded] = useState(false);
|
|
184
|
+
const {
|
|
185
|
+
text,
|
|
186
|
+
icon,
|
|
187
|
+
imageUrl
|
|
188
|
+
} = useAddedBy(item.type, item.id);
|
|
189
|
+
return /*#__PURE__*/_jsxs(HStack, {
|
|
190
|
+
alignment: "left",
|
|
191
|
+
spacing: 0,
|
|
192
|
+
children: [imageUrl && /*#__PURE__*/_jsx("div", {
|
|
193
|
+
className: clsx('page-templates-author-field__avatar', {
|
|
194
|
+
'is-loaded': isImageLoaded
|
|
195
|
+
}),
|
|
196
|
+
children: /*#__PURE__*/_jsx("img", {
|
|
197
|
+
onLoad: () => setIsImageLoaded(true),
|
|
198
|
+
alt: "",
|
|
199
|
+
src: imageUrl
|
|
200
|
+
})
|
|
201
|
+
}), !imageUrl && /*#__PURE__*/_jsx("div", {
|
|
202
|
+
className: "page-templates-author-field__icon",
|
|
203
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
204
|
+
icon: icon
|
|
205
|
+
})
|
|
206
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
207
|
+
className: "page-templates-author-field__name",
|
|
208
|
+
children: text
|
|
209
|
+
})]
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
export const templatePartAuthorField = {
|
|
213
|
+
label: __('Author'),
|
|
214
|
+
id: 'author',
|
|
215
|
+
getValue: ({
|
|
216
|
+
item
|
|
217
|
+
}) => item.author_text,
|
|
218
|
+
render: AuthorField,
|
|
219
|
+
filterBy: {
|
|
220
|
+
isPrimary: true
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["clsx","__experimentalHStack","HStack","Button","Tooltip","Flex","__","_x","useState","useMemo","useId","BlockPreview","privateApis","blockEditorPrivateApis","Icon","lockSmall","parse","decodeEntities","Async","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_SYNC_TYPES","OPERATOR_IS","unlock","useLink","useAddedBy","defaultGetTitle","jsx","_jsx","jsxs","_jsxs","useGlobalStyle","PreviewWrapper","item","onClick","ariaDescribedBy","children","className","type","theme","undefined","title","PreviewField","descriptionId","description","excerpt","raw","isUserPattern","user","isTemplatePart","backgroundColor","postType","postId","id","name","canvas","blocks","_item$blocks","content","__unstableSkipMigrationLogs","isEmpty","length","style","viewportWidth","hidden","previewField","label","render","enableSorting","TitleField","alignment","justify","spacing","as","gap","variant","tabIndex","placement","text","icon","size","titleField","getValue","enableHiding","SYNC_FILTERS","value","full","unsynced","patternStatusField","syncStatus","wp_pattern_sync_status","find","elements","filterBy","operators","isPrimary","AuthorField","isImageLoaded","setIsImageLoaded","imageUrl","onLoad","alt","src","templatePartAuthorField","author_text"],"sources":["@wordpress/edit-site/src/components/page-patterns/fields.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useState, useMemo, useId } from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { Icon, lockSmall } from '@wordpress/icons';\nimport { parse } from '@wordpress/blocks';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { Async } from '../async';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tOPERATOR_IS,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { useLink } from '../routes/link';\nimport { useAddedBy } from '../page-templates/hooks';\nimport { defaultGetTitle } from './search-items';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nfunction PreviewWrapper( { item, onClick, ariaDescribedBy, children } ) {\n\treturn (\n\t\t<button\n\t\t\tclassName=\"page-patterns-preview-field__button\"\n\t\t\ttype=\"button\"\n\t\t\tonClick={ item.type !== PATTERN_TYPES.theme ? onClick : undefined }\n\t\t\taria-label={ item.title }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\taria-disabled={ item.type === PATTERN_TYPES.theme }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n}\n\nfunction PreviewField( { item } ) {\n\tconst descriptionId = useId();\n\tconst description = item.description || item?.excerpt?.raw;\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern || isTemplatePart ? item.id : item.name,\n\t\tcanvas: 'edit',\n\t} );\n\tconst blocks = useMemo( () => {\n\t\treturn (\n\t\t\titem.blocks ??\n\t\t\tparse( item.content.raw, {\n\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t} )\n\t\t);\n\t}, [ item?.content?.raw, item.blocks ] );\n\tconst isEmpty = ! blocks?.length;\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"page-patterns-preview-field\"\n\t\t\tstyle={ { backgroundColor } }\n\t\t>\n\t\t\t<PreviewWrapper\n\t\t\t\titem={ item }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tariaDescribedBy={ !! description ? descriptionId : undefined }\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<Async>\n\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Async>\n\t\t\t\t) }\n\t\t\t</PreviewWrapper>\n\t\t\t{ !! description && (\n\t\t\t\t<div hidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const previewField = {\n\tlabel: __( 'Preview' ),\n\tid: 'preview',\n\trender: PreviewField,\n\tenableSorting: false,\n};\n\nfunction TitleField( { item } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern || isTemplatePart ? item.id : item.name,\n\t\tcanvas: 'edit',\n\t} );\n\tconst title = decodeEntities( defaultGetTitle( item ) );\n\treturn (\n\t\t<HStack alignment=\"center\" justify=\"flex-start\" spacing={ 2 }>\n\t\t\t<Flex\n\t\t\t\tas=\"div\"\n\t\t\t\tgap={ 0 }\n\t\t\t\tjustify=\"left\"\n\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t>\n\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\ttitle\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nexport const titleField = {\n\tlabel: __( 'Title' ),\n\tid: 'title',\n\tgetValue: ( { item } ) => item.title?.raw || item.title,\n\trender: TitleField,\n\tenableHiding: false,\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'pattern (singular)' ),\n\t\tdescription: __( 'Patterns that are kept in sync across the site.' ),\n\t},\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.unsynced,\n\t\tlabel: _x( 'Not synced', 'pattern (singular)' ),\n\t\tdescription: __(\n\t\t\t'Patterns that can be changed freely without affecting the site.'\n\t\t),\n\t},\n];\n\nexport const patternStatusField = {\n\tlabel: __( 'Sync status' ),\n\tid: 'sync-status',\n\trender: ( { item } ) => {\n\t\tconst syncStatus =\n\t\t\t'wp_pattern_sync_status' in item\n\t\t\t\t? item.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full\n\t\t\t\t: PATTERN_SYNC_TYPES.unsynced;\n\t\t// User patterns can have their sync statuses checked directly.\n\t\t// Non-user patterns are all unsynced for the time being.\n\t\treturn (\n\t\t\t<span\n\t\t\t\tclassName={ `edit-site-patterns__field-sync-status-${ syncStatus }` }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\tSYNC_FILTERS.find( ( { value } ) => value === syncStatus )\n\t\t\t\t\t\t.label\n\t\t\t\t}\n\t\t\t</span>\n\t\t);\n\t},\n\telements: SYNC_FILTERS,\n\tfilterBy: {\n\t\toperators: [ OPERATOR_IS ],\n\t\tisPrimary: true,\n\t},\n\tenableSorting: false,\n};\n\nfunction AuthorField( { item } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 0 }>\n\t\t\t{ imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'page-templates-author-field__avatar', {\n\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nexport const templatePartAuthorField = {\n\tlabel: __( 'Author' ),\n\tid: 'author',\n\tgetValue: ( { item } ) => item.author_text,\n\trender: AuthorField,\n\tfilterBy: {\n\t\tisPrimary: true,\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,43 +1,30 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import { __, _x } from '@wordpress/i18n';
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
11
5
|
import { useState, useMemo, useId, useEffect } from '@wordpress/element';
|
|
12
|
-
import {
|
|
6
|
+
import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
13
7
|
import { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';
|
|
14
|
-
import { Icon, lockSmall } from '@wordpress/icons';
|
|
15
8
|
import { usePrevious } from '@wordpress/compose';
|
|
16
9
|
import { useEntityRecords } from '@wordpress/core-data';
|
|
17
10
|
import { privateApis as editorPrivateApis } from '@wordpress/editor';
|
|
18
11
|
import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
19
|
-
import { parse } from '@wordpress/blocks';
|
|
20
|
-
import { decodeEntities } from '@wordpress/html-entities';
|
|
21
12
|
|
|
22
13
|
/**
|
|
23
14
|
* Internal dependencies
|
|
24
15
|
*/
|
|
25
|
-
import { Async } from '../async';
|
|
26
16
|
import Page from '../page';
|
|
27
|
-
import { LAYOUT_GRID, LAYOUT_TABLE,
|
|
17
|
+
import { LAYOUT_GRID, LAYOUT_TABLE, PATTERN_TYPES, TEMPLATE_PART_POST_TYPE, PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';
|
|
28
18
|
import usePatternSettings from './use-pattern-settings';
|
|
29
19
|
import { unlock } from '../../lock-unlock';
|
|
30
|
-
import usePatterns from './use-patterns';
|
|
20
|
+
import usePatterns, { useAugmentPatternsWithPermissions } from './use-patterns';
|
|
31
21
|
import PatternsHeader from './header';
|
|
32
|
-
import { useLink } from '../routes/link';
|
|
33
|
-
import { useAddedBy } from '../page-templates/hooks';
|
|
34
22
|
import { useEditPostAction } from '../dataviews-actions';
|
|
35
|
-
import {
|
|
23
|
+
import { patternStatusField, previewField, titleField, templatePartAuthorField } from './fields';
|
|
36
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
37
25
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
38
26
|
const {
|
|
39
|
-
ExperimentalBlockEditorProvider
|
|
40
|
-
useGlobalStyle
|
|
27
|
+
ExperimentalBlockEditorProvider
|
|
41
28
|
} = unlock(blockEditorPrivateApis);
|
|
42
29
|
const {
|
|
43
30
|
usePostActions
|
|
@@ -77,152 +64,6 @@ const DEFAULT_VIEW = {
|
|
|
77
64
|
fields: ['title', 'sync-status'],
|
|
78
65
|
filters: []
|
|
79
66
|
};
|
|
80
|
-
const SYNC_FILTERS = [{
|
|
81
|
-
value: PATTERN_SYNC_TYPES.full,
|
|
82
|
-
label: _x('Synced', 'pattern (singular)'),
|
|
83
|
-
description: __('Patterns that are kept in sync across the site.')
|
|
84
|
-
}, {
|
|
85
|
-
value: PATTERN_SYNC_TYPES.unsynced,
|
|
86
|
-
label: _x('Not synced', 'pattern (singular)'),
|
|
87
|
-
description: __('Patterns that can be changed freely without affecting the site.')
|
|
88
|
-
}];
|
|
89
|
-
function PreviewWrapper({
|
|
90
|
-
item,
|
|
91
|
-
onClick,
|
|
92
|
-
ariaDescribedBy,
|
|
93
|
-
children
|
|
94
|
-
}) {
|
|
95
|
-
return /*#__PURE__*/_jsx("button", {
|
|
96
|
-
className: "page-patterns-preview-field__button",
|
|
97
|
-
type: "button",
|
|
98
|
-
onClick: item.type !== PATTERN_TYPES.theme ? onClick : undefined,
|
|
99
|
-
"aria-label": item.title,
|
|
100
|
-
"aria-describedby": ariaDescribedBy,
|
|
101
|
-
"aria-disabled": item.type === PATTERN_TYPES.theme,
|
|
102
|
-
children: children
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
function Preview({
|
|
106
|
-
item,
|
|
107
|
-
viewType
|
|
108
|
-
}) {
|
|
109
|
-
const descriptionId = useId();
|
|
110
|
-
const description = item.description || item?.excerpt?.raw;
|
|
111
|
-
const isUserPattern = item.type === PATTERN_TYPES.user;
|
|
112
|
-
const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
|
|
113
|
-
const [backgroundColor] = useGlobalStyle('color.background');
|
|
114
|
-
const {
|
|
115
|
-
onClick
|
|
116
|
-
} = useLink({
|
|
117
|
-
postType: item.type,
|
|
118
|
-
postId: isUserPattern || isTemplatePart ? item.id : item.name,
|
|
119
|
-
canvas: 'edit'
|
|
120
|
-
});
|
|
121
|
-
const blocks = useMemo(() => {
|
|
122
|
-
var _item$blocks;
|
|
123
|
-
return (_item$blocks = item.blocks) !== null && _item$blocks !== void 0 ? _item$blocks : parse(item.content.raw, {
|
|
124
|
-
__unstableSkipMigrationLogs: true
|
|
125
|
-
});
|
|
126
|
-
}, [item?.content?.raw, item.blocks]);
|
|
127
|
-
const isEmpty = !blocks?.length;
|
|
128
|
-
return /*#__PURE__*/_jsxs("div", {
|
|
129
|
-
className: `page-patterns-preview-field is-viewtype-${viewType}`,
|
|
130
|
-
style: {
|
|
131
|
-
backgroundColor
|
|
132
|
-
},
|
|
133
|
-
children: [/*#__PURE__*/_jsxs(PreviewWrapper, {
|
|
134
|
-
item: item,
|
|
135
|
-
onClick: onClick,
|
|
136
|
-
ariaDescribedBy: !!description ? descriptionId : undefined,
|
|
137
|
-
children: [isEmpty && isTemplatePart && __('Empty template part'), isEmpty && !isTemplatePart && __('Empty pattern'), !isEmpty && /*#__PURE__*/_jsx(Async, {
|
|
138
|
-
children: /*#__PURE__*/_jsx(BlockPreview, {
|
|
139
|
-
blocks: blocks,
|
|
140
|
-
viewportWidth: item.viewportWidth
|
|
141
|
-
})
|
|
142
|
-
})]
|
|
143
|
-
}), !!description && /*#__PURE__*/_jsx("div", {
|
|
144
|
-
hidden: true,
|
|
145
|
-
id: descriptionId,
|
|
146
|
-
children: description
|
|
147
|
-
})]
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
function Author({
|
|
151
|
-
item,
|
|
152
|
-
viewType
|
|
153
|
-
}) {
|
|
154
|
-
const [isImageLoaded, setIsImageLoaded] = useState(false);
|
|
155
|
-
const {
|
|
156
|
-
text,
|
|
157
|
-
icon,
|
|
158
|
-
imageUrl
|
|
159
|
-
} = useAddedBy(item.type, item.id);
|
|
160
|
-
const withIcon = viewType !== LAYOUT_LIST;
|
|
161
|
-
return /*#__PURE__*/_jsxs(HStack, {
|
|
162
|
-
alignment: "left",
|
|
163
|
-
spacing: 0,
|
|
164
|
-
children: [withIcon && imageUrl && /*#__PURE__*/_jsx("div", {
|
|
165
|
-
className: clsx('page-templates-author-field__avatar', {
|
|
166
|
-
'is-loaded': isImageLoaded
|
|
167
|
-
}),
|
|
168
|
-
children: /*#__PURE__*/_jsx("img", {
|
|
169
|
-
onLoad: () => setIsImageLoaded(true),
|
|
170
|
-
alt: "",
|
|
171
|
-
src: imageUrl
|
|
172
|
-
})
|
|
173
|
-
}), withIcon && !imageUrl && /*#__PURE__*/_jsx("div", {
|
|
174
|
-
className: "page-templates-author-field__icon",
|
|
175
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
176
|
-
icon: icon
|
|
177
|
-
})
|
|
178
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
179
|
-
className: "page-templates-author-field__name",
|
|
180
|
-
children: text
|
|
181
|
-
})]
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
function Title({
|
|
185
|
-
item
|
|
186
|
-
}) {
|
|
187
|
-
const isUserPattern = item.type === PATTERN_TYPES.user;
|
|
188
|
-
const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
|
|
189
|
-
const {
|
|
190
|
-
onClick
|
|
191
|
-
} = useLink({
|
|
192
|
-
postType: item.type,
|
|
193
|
-
postId: isUserPattern || isTemplatePart ? item.id : item.name,
|
|
194
|
-
canvas: 'edit'
|
|
195
|
-
});
|
|
196
|
-
const title = decodeEntities(defaultGetTitle(item));
|
|
197
|
-
return /*#__PURE__*/_jsxs(HStack, {
|
|
198
|
-
alignment: "center",
|
|
199
|
-
justify: "flex-start",
|
|
200
|
-
spacing: 2,
|
|
201
|
-
children: [/*#__PURE__*/_jsx(Flex, {
|
|
202
|
-
as: "div",
|
|
203
|
-
gap: 0,
|
|
204
|
-
justify: "left",
|
|
205
|
-
className: "edit-site-patterns__pattern-title",
|
|
206
|
-
children: item.type === PATTERN_TYPES.theme ? title : /*#__PURE__*/_jsx(Button, {
|
|
207
|
-
variant: "link",
|
|
208
|
-
onClick: onClick
|
|
209
|
-
// Required for the grid's roving tab index system.
|
|
210
|
-
// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
|
|
211
|
-
,
|
|
212
|
-
tabIndex: "-1",
|
|
213
|
-
children: title
|
|
214
|
-
})
|
|
215
|
-
}), item.type === PATTERN_TYPES.theme && /*#__PURE__*/_jsx(Tooltip, {
|
|
216
|
-
placement: "top",
|
|
217
|
-
text: __('This pattern cannot be edited.'),
|
|
218
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
219
|
-
className: "edit-site-patterns__pattern-lock-icon",
|
|
220
|
-
icon: lockSmall,
|
|
221
|
-
size: 24
|
|
222
|
-
})
|
|
223
|
-
})]
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
67
|
export default function DataviewsPatterns() {
|
|
227
68
|
const {
|
|
228
69
|
params: {
|
|
@@ -263,76 +104,17 @@ export default function DataviewsPatterns() {
|
|
|
263
104
|
}));
|
|
264
105
|
}, [records]);
|
|
265
106
|
const fields = useMemo(() => {
|
|
266
|
-
const _fields = [
|
|
267
|
-
label: __('Preview'),
|
|
268
|
-
id: 'preview',
|
|
269
|
-
render: ({
|
|
270
|
-
item
|
|
271
|
-
}) => /*#__PURE__*/_jsx(Preview, {
|
|
272
|
-
item: item,
|
|
273
|
-
viewType: view.type
|
|
274
|
-
}),
|
|
275
|
-
enableSorting: false
|
|
276
|
-
}, {
|
|
277
|
-
label: __('Title'),
|
|
278
|
-
id: 'title',
|
|
279
|
-
getValue: ({
|
|
280
|
-
item
|
|
281
|
-
}) => item.title?.raw || item.title,
|
|
282
|
-
render: ({
|
|
283
|
-
item
|
|
284
|
-
}) => /*#__PURE__*/_jsx(Title, {
|
|
285
|
-
item: item
|
|
286
|
-
}),
|
|
287
|
-
enableHiding: false
|
|
288
|
-
}];
|
|
107
|
+
const _fields = [previewField, titleField];
|
|
289
108
|
if (type === PATTERN_TYPES.user) {
|
|
290
|
-
_fields.push(
|
|
291
|
-
label: __('Sync status'),
|
|
292
|
-
id: 'sync-status',
|
|
293
|
-
render: ({
|
|
294
|
-
item
|
|
295
|
-
}) => {
|
|
296
|
-
const syncStatus = 'wp_pattern_sync_status' in item ? item.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full : PATTERN_SYNC_TYPES.unsynced;
|
|
297
|
-
// User patterns can have their sync statuses checked directly.
|
|
298
|
-
// Non-user patterns are all unsynced for the time being.
|
|
299
|
-
return /*#__PURE__*/_jsx("span", {
|
|
300
|
-
className: `edit-site-patterns__field-sync-status-${syncStatus}`,
|
|
301
|
-
children: SYNC_FILTERS.find(({
|
|
302
|
-
value
|
|
303
|
-
}) => value === syncStatus).label
|
|
304
|
-
});
|
|
305
|
-
},
|
|
306
|
-
elements: SYNC_FILTERS,
|
|
307
|
-
filterBy: {
|
|
308
|
-
operators: [OPERATOR_IS],
|
|
309
|
-
isPrimary: true
|
|
310
|
-
},
|
|
311
|
-
enableSorting: false
|
|
312
|
-
});
|
|
109
|
+
_fields.push(patternStatusField);
|
|
313
110
|
} else if (type === TEMPLATE_PART_POST_TYPE) {
|
|
314
111
|
_fields.push({
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
getValue: ({
|
|
318
|
-
item
|
|
319
|
-
}) => item.author_text,
|
|
320
|
-
render: ({
|
|
321
|
-
item
|
|
322
|
-
}) => {
|
|
323
|
-
return /*#__PURE__*/_jsx(Author, {
|
|
324
|
-
viewType: view.type,
|
|
325
|
-
item: item
|
|
326
|
-
});
|
|
327
|
-
},
|
|
328
|
-
elements: authors,
|
|
329
|
-
filterBy: {
|
|
330
|
-
isPrimary: true
|
|
331
|
-
}
|
|
112
|
+
...templatePartAuthorField,
|
|
113
|
+
elements: authors
|
|
332
114
|
});
|
|
333
115
|
}
|
|
334
116
|
return _fields;
|
|
335
|
-
}, [
|
|
117
|
+
}, [type, authors]);
|
|
336
118
|
|
|
337
119
|
// Reset the page number when the category changes.
|
|
338
120
|
useEffect(() => {
|
|
@@ -358,6 +140,7 @@ export default function DataviewsPatterns() {
|
|
|
358
140
|
}
|
|
359
141
|
return filterSortAndPaginate(patterns, viewWithoutFilters, fields);
|
|
360
142
|
}, [patterns, view, fields, type]);
|
|
143
|
+
const dataWithPermissions = useAugmentPatternsWithPermissions(data);
|
|
361
144
|
const templatePartActions = usePostActions({
|
|
362
145
|
postType: TEMPLATE_PART_POST_TYPE,
|
|
363
146
|
context: 'list'
|
|
@@ -393,7 +176,7 @@ export default function DataviewsPatterns() {
|
|
|
393
176
|
paginationInfo: paginationInfo,
|
|
394
177
|
fields: fields,
|
|
395
178
|
actions: actions,
|
|
396
|
-
data:
|
|
179
|
+
data: dataWithPermissions || EMPTY_ARRAY,
|
|
397
180
|
getItemId: item => {
|
|
398
181
|
var _item$name;
|
|
399
182
|
return (_item$name = item.name) !== null && _item$name !== void 0 ? _item$name : item.id;
|
|
@@ -402,7 +185,7 @@ export default function DataviewsPatterns() {
|
|
|
402
185
|
view: view,
|
|
403
186
|
onChangeView: setView,
|
|
404
187
|
defaultLayouts: defaultLayouts
|
|
405
|
-
})]
|
|
188
|
+
}, categoryId + postType)]
|
|
406
189
|
})
|
|
407
190
|
});
|
|
408
191
|
}
|