@wordpress/edit-site 5.19.1 → 5.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/build/components/add-new-pattern/index.js +5 -9
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/global-styles/font-families.js +2 -1
  4. package/build/components/global-styles/font-families.js.map +1 -1
  5. package/build/components/global-styles/font-library-modal/collection-font-details.js +3 -1
  6. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  7. package/build/components/global-styles/font-library-modal/context.js +26 -30
  8. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  9. package/build/components/global-styles/font-library-modal/font-collection.js +31 -11
  10. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  11. package/build/components/global-styles/font-library-modal/index.js +10 -3
  12. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  13. package/build/components/global-styles/font-library-modal/installed-fonts.js +27 -7
  14. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  15. package/build/components/global-styles/font-library-modal/local-fonts.js +35 -8
  16. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  17. package/build/components/global-styles/font-library-modal/upload-fonts.js +26 -0
  18. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -0
  19. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -1
  20. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  21. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +71 -0
  22. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +1 -0
  23. package/build/components/global-styles/font-library-modal/utils/index.js +3 -0
  24. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  25. package/build/components/global-styles/screen-typography.js +1 -1
  26. package/build/components/global-styles/screen-typography.js.map +1 -1
  27. package/build/components/page-patterns/grid.js +0 -1
  28. package/build/components/page-patterns/grid.js.map +1 -1
  29. package/build/components/page-patterns/patterns-list.js +1 -1
  30. package/build/components/page-patterns/patterns-list.js.map +1 -1
  31. package/build/components/page-patterns/use-patterns.js +5 -1
  32. package/build/components/page-patterns/use-patterns.js.map +1 -1
  33. package/build/components/page-template-parts/index.js +12 -1
  34. package/build/components/page-template-parts/index.js.map +1 -1
  35. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  36. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  37. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +2 -2
  38. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  39. package/build/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  40. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -1
  41. package/build/components/sidebar-navigation-screen-patterns/index.js +14 -2
  42. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  43. package/build/components/sidebar-navigation-screen-template/home-template-details.js +13 -18
  44. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  45. package/build/components/sidebar-navigation-screen-templates-browse/index.js +16 -4
  46. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  47. package/build-module/components/add-new-pattern/index.js +5 -9
  48. package/build-module/components/add-new-pattern/index.js.map +1 -1
  49. package/build-module/components/global-styles/font-families.js +3 -2
  50. package/build-module/components/global-styles/font-families.js.map +1 -1
  51. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +3 -1
  52. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  53. package/build-module/components/global-styles/font-library-modal/context.js +26 -30
  54. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  55. package/build-module/components/global-styles/font-library-modal/font-collection.js +32 -12
  56. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  57. package/build-module/components/global-styles/font-library-modal/index.js +10 -3
  58. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  59. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +28 -8
  60. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  61. package/build-module/components/global-styles/font-library-modal/local-fonts.js +38 -11
  62. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  63. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +17 -0
  64. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -0
  65. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -1
  66. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  67. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +63 -0
  68. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +1 -0
  69. package/build-module/components/global-styles/font-library-modal/utils/index.js +3 -0
  70. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  71. package/build-module/components/global-styles/screen-typography.js +1 -1
  72. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  73. package/build-module/components/page-patterns/grid.js +0 -1
  74. package/build-module/components/page-patterns/grid.js.map +1 -1
  75. package/build-module/components/page-patterns/patterns-list.js +1 -1
  76. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  77. package/build-module/components/page-patterns/use-patterns.js +5 -1
  78. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  79. package/build-module/components/page-template-parts/index.js +12 -1
  80. package/build-module/components/page-template-parts/index.js.map +1 -1
  81. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  82. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  83. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +3 -3
  84. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  85. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  86. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -1
  87. package/build-module/components/sidebar-navigation-screen-patterns/index.js +14 -2
  88. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  89. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +14 -19
  90. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  91. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +16 -4
  92. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  93. package/build-style/style-rtl.css +16 -2
  94. package/build-style/style.css +16 -2
  95. package/package.json +40 -40
  96. package/src/components/add-new-pattern/index.js +5 -8
  97. package/src/components/global-styles/font-families.js +5 -1
  98. package/src/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  99. package/src/components/global-styles/font-library-modal/context.js +36 -38
  100. package/src/components/global-styles/font-library-modal/font-collection.js +41 -12
  101. package/src/components/global-styles/font-library-modal/index.js +16 -6
  102. package/src/components/global-styles/font-library-modal/installed-fonts.js +36 -6
  103. package/src/components/global-styles/font-library-modal/local-fonts.js +65 -23
  104. package/src/components/global-styles/font-library-modal/style.scss +18 -1
  105. package/src/components/global-styles/font-library-modal/upload-fonts.js +20 -0
  106. package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -3
  107. package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +62 -0
  108. package/src/components/global-styles/font-library-modal/utils/index.js +4 -0
  109. package/src/components/global-styles/screen-typography.js +4 -3
  110. package/src/components/page-patterns/grid.js +1 -1
  111. package/src/components/page-patterns/patterns-list.js +1 -1
  112. package/src/components/page-patterns/use-patterns.js +7 -3
  113. package/src/components/page-template-parts/index.js +14 -1
  114. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  115. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +18 -16
  116. package/src/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  117. package/src/components/sidebar-navigation-screen/style.scss +0 -1
  118. package/src/components/sidebar-navigation-screen-patterns/index.js +25 -4
  119. package/src/components/sidebar-navigation-screen-template/home-template-details.js +27 -35
  120. package/src/components/sidebar-navigation-screen-templates-browse/index.js +12 -4
@@ -4,7 +4,7 @@ import { createElement } from "@wordpress/element";
4
4
  */
5
5
  import { __, _x, sprintf } from '@wordpress/i18n';
6
6
  import { useEffect, useMemo, useState } from '@wordpress/element';
7
- import { FormTokenField, PanelRow } from '@wordpress/components';
7
+ import { FormTokenField, FlexBlock, PanelRow } from '@wordpress/components';
8
8
  import { useSelect, useDispatch } from '@wordpress/data';
9
9
  import { store as coreStore } from '@wordpress/core-data';
10
10
  import { useDebounce } from '@wordpress/compose';
@@ -190,7 +190,7 @@ export default function PatternCategories({
190
190
  return createElement(PanelRow, {
191
191
  initialOpen: true,
192
192
  title: __('Categories')
193
- }, createElement(FormTokenField, {
193
+ }, createElement(FlexBlock, null, createElement(FormTokenField, {
194
194
  __next40pxDefaultSize: true,
195
195
  value: values,
196
196
  suggestions: suggestions,
@@ -204,6 +204,6 @@ export default function PatternCategories({
204
204
  remove: removeTermLabel
205
205
  },
206
206
  tokenizeOnBlur: true
207
- }));
207
+ })));
208
208
  }
209
209
  //# sourceMappingURL=pattern-categories.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","_x","sprintf","useEffect","useMemo","useState","FormTokenField","PanelRow","useSelect","useDispatch","store","coreStore","useDebounce","noticesStore","decodeEntities","PATTERN_TYPES","unescapeString","arg","unescapeTerm","term","name","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","id","PatternCategories","post","_taxonomy$labels$sing","slug","values","setValues","search","setSearch","debouncedSearch","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","_post$_links","_post$_links2","getEntityRecords","getTaxonomy","hasFinishedResolution","_taxonomy","_termIds","wp_pattern_category","length","query","include","join","_links","rest_base","termIds","searchResults","newValues","suggestions","saveEntityRecord","editEntityRecord","invalidateResolution","createErrorNotice","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","user","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","filter","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","singularName","labels","singular_name","termAddedLabel","termRemovedLabel","removeTermLabel","createElement","initialOpen","title","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","tokenizeOnBlur"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/pattern-categories.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, PanelRow } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_TYPES } from '../../../utils/constants';\n\nexport const unescapeString = ( arg ) => {\n\treturn decodeEntities( arg );\n};\n\n/**\n * Returns a term object with name unescaped.\n *\n * @param {Object} term The term object to unescape.\n *\n * @return {Object} Term object with name property unescaped.\n */\nexport const unescapeTerm = ( term ) => {\n\treturn {\n\t\t...term,\n\t\tname: unescapeString( term.name ),\n\t};\n};\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names.map(\n\t\t( termName ) =>\n\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) ).id\n\t);\n};\n\nexport default function PatternCategories( { post } ) {\n\tconst slug = 'wp_pattern_category';\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst {\n\t\tterms,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds =\n\t\t\t\tpost?.wp_pattern_category?.length > 0\n\t\t\t\t\t? post?.wp_pattern_category\n\t\t\t\t\t: EMPTY_ARRAY;\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds?.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds?.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug, post ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { saveEntityRecord, editEntityRecord, invalidateResolution } =\n\t\tuseDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditEntityRecord( 'postType', PATTERN_TYPES.user, post.id, {\n\t\t\twp_pattern_category: newTermIds,\n\t\t} );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, availableTerms )\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\treturn onUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} );\n\t}\n\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<PanelRow initialOpen={ true } title={ __( 'Categories' ) }>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ __( 'Pattern categories' ) }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t\ttokenizeOnBlur\n\t\t\t/>\n\t\t</PanelRow>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","_x","sprintf","useEffect","useMemo","useState","FormTokenField","FlexBlock","PanelRow","useSelect","useDispatch","store","coreStore","useDebounce","noticesStore","decodeEntities","PATTERN_TYPES","unescapeString","arg","unescapeTerm","term","name","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","id","PatternCategories","post","_taxonomy$labels$sing","slug","values","setValues","search","setSearch","debouncedSearch","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","_post$_links","_post$_links2","getEntityRecords","getTaxonomy","hasFinishedResolution","_taxonomy","_termIds","wp_pattern_category","length","query","include","join","_links","rest_base","termIds","searchResults","newValues","suggestions","saveEntityRecord","editEntityRecord","invalidateResolution","createErrorNotice","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","user","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","filter","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","singularName","labels","singular_name","termAddedLabel","termRemovedLabel","removeTermLabel","createElement","initialOpen","title","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","tokenizeOnBlur"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/pattern-categories.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, FlexBlock, PanelRow } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_TYPES } from '../../../utils/constants';\n\nexport const unescapeString = ( arg ) => {\n\treturn decodeEntities( arg );\n};\n\n/**\n * Returns a term object with name unescaped.\n *\n * @param {Object} term The term object to unescape.\n *\n * @return {Object} Term object with name property unescaped.\n */\nexport const unescapeTerm = ( term ) => {\n\treturn {\n\t\t...term,\n\t\tname: unescapeString( term.name ),\n\t};\n};\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names.map(\n\t\t( termName ) =>\n\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) ).id\n\t);\n};\n\nexport default function PatternCategories( { post } ) {\n\tconst slug = 'wp_pattern_category';\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst {\n\t\tterms,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds =\n\t\t\t\tpost?.wp_pattern_category?.length > 0\n\t\t\t\t\t? post?.wp_pattern_category\n\t\t\t\t\t: EMPTY_ARRAY;\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds?.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds?.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug, post ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { saveEntityRecord, editEntityRecord, invalidateResolution } =\n\t\tuseDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditEntityRecord( 'postType', PATTERN_TYPES.user, post.id, {\n\t\t\twp_pattern_category: newTermIds,\n\t\t} );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, availableTerms )\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\treturn onUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} );\n\t}\n\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<PanelRow initialOpen={ true } title={ __( 'Categories' ) }>\n\t\t\t<FlexBlock>\n\t\t\t\t<FormTokenField\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvalue={ values }\n\t\t\t\t\tsuggestions={ suggestions }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\t\tlabel={ __( 'Pattern categories' ) }\n\t\t\t\t\tmessages={ {\n\t\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t\t} }\n\t\t\t\t\ttokenizeOnBlur\n\t\t\t\t/>\n\t\t\t</FlexBlock>\n\t\t</PanelRow>\n\t);\n}\n"],"mappings":"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"}
@@ -54,7 +54,7 @@ export default function TemplateAreas() {
54
54
  templatePart,
55
55
  block
56
56
  }) => createElement("li", {
57
- key: templatePart.slug
57
+ key: block.clientId
58
58
  }, createElement(TemplateAreaItem, {
59
59
  area: templatePart.area,
60
60
  clientId: block.clientId
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","Button","__experimentalHeading","Heading","store","editorStore","blockEditorStore","__","editSiteStore","TemplateAreaItem","area","clientId","selectBlock","toggleBlockHighlight","templatePartArea","select","defaultAreas","__experimentalGetDefaultTemplatePartAreas","find","defaultArea","highlightBlock","cancelHighlightBlock","createElement","className","icon","onMouseOver","onMouseLeave","onFocus","onBlur","onClick","label","TemplateAreas","templateParts","getCurrentTemplateTemplateParts","length","level","map","templatePart","block","key","slug"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/template-areas.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nfunction TemplateAreaItem( { area, clientId } ) {\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\tconst templatePartArea = useSelect(\n\t\t( select ) => {\n\t\t\tconst defaultAreas =\n\t\t\t\tselect(\n\t\t\t\t\teditorStore\n\t\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\n\t\t\treturn defaultAreas.find(\n\t\t\t\t( defaultArea ) => defaultArea.area === area\n\t\t\t);\n\t\t},\n\t\t[ area ]\n\t);\n\n\tconst highlightBlock = () => toggleBlockHighlight( clientId, true );\n\tconst cancelHighlightBlock = () => toggleBlockHighlight( clientId, false );\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-site-template-card__template-areas-item\"\n\t\t\ticon={ templatePartArea?.icon }\n\t\t\tonMouseOver={ highlightBlock }\n\t\t\tonMouseLeave={ cancelHighlightBlock }\n\t\t\tonFocus={ highlightBlock }\n\t\t\tonBlur={ cancelHighlightBlock }\n\t\t\tonClick={ () => {\n\t\t\t\tselectBlock( clientId );\n\t\t\t} }\n\t\t>\n\t\t\t{ templatePartArea?.label }\n\t\t</Button>\n\t);\n}\n\nexport default function TemplateAreas() {\n\tconst templateParts = useSelect(\n\t\t( select ) => select( editSiteStore ).getCurrentTemplateTemplateParts(),\n\t\t[]\n\t);\n\n\tif ( ! templateParts.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<section className=\"edit-site-template-card__template-areas\">\n\t\t\t<Heading\n\t\t\t\tlevel={ 3 }\n\t\t\t\tclassName=\"edit-site-template-card__template-areas-title\"\n\t\t\t>\n\t\t\t\t{ __( 'Areas' ) }\n\t\t\t</Heading>\n\n\t\t\t<ul className=\"edit-site-template-card__template-areas-list\">\n\t\t\t\t{ templateParts.map( ( { templatePart, block } ) => (\n\t\t\t\t\t<li key={ templatePart.slug }>\n\t\t\t\t\t\t<TemplateAreaItem\n\t\t\t\t\t\t\tarea={ templatePart.area }\n\t\t\t\t\t\t\tclientId={ block.clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</section>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SACCC,MAAM,EACNC,qBAAqB,IAAIC,OAAO,QAC1B,uBAAuB;AAC9B,SAASC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACxD,SAASD,KAAK,IAAIE,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASH,KAAK,IAAII,aAAa,QAAQ,gBAAgB;AAEvD,SAASC,gBAAgBA,CAAE;EAAEC,IAAI;EAAEC;AAAS,CAAC,EAAG;EAC/C,MAAM;IAAEC,WAAW;IAAEC;EAAqB,CAAC,GAC1Cb,WAAW,CAAEM,gBAAiB,CAAC;EAChC,MAAMQ,gBAAgB,GAAGf,SAAS,CAC/BgB,MAAM,IAAM;IACb,MAAMC,YAAY,GACjBD,MAAM,CACLV,WACD,CAAC,CAACY,yCAAyC,CAAC,CAAC;IAE9C,OAAOD,YAAY,CAACE,IAAI,CACrBC,WAAW,IAAMA,WAAW,CAACT,IAAI,KAAKA,IACzC,CAAC;EACF,CAAC,EACD,CAAEA,IAAI,CACP,CAAC;EAED,MAAMU,cAAc,GAAGA,CAAA,KAAMP,oBAAoB,CAAEF,QAAQ,EAAE,IAAK,CAAC;EACnE,MAAMU,oBAAoB,GAAGA,CAAA,KAAMR,oBAAoB,CAAEF,QAAQ,EAAE,KAAM,CAAC;EAE1E,OACCW,aAAA,CAACrB,MAAM;IACNsB,SAAS,EAAC,8CAA8C;IACxDC,IAAI,EAAGV,gBAAgB,EAAEU,IAAM;IAC/BC,WAAW,EAAGL,cAAgB;IAC9BM,YAAY,EAAGL,oBAAsB;IACrCM,OAAO,EAAGP,cAAgB;IAC1BQ,MAAM,EAAGP,oBAAsB;IAC/BQ,OAAO,EAAGA,CAAA,KAAM;MACfjB,WAAW,CAAED,QAAS,CAAC;IACxB;EAAG,GAEDG,gBAAgB,EAAEgB,KACb,CAAC;AAEX;AAEA,eAAe,SAASC,aAAaA,CAAA,EAAG;EACvC,MAAMC,aAAa,GAAGjC,SAAS,CAC5BgB,MAAM,IAAMA,MAAM,CAAEP,aAAc,CAAC,CAACyB,+BAA+B,CAAC,CAAC,EACvE,EACD,CAAC;EAED,IAAK,CAAED,aAAa,CAACE,MAAM,EAAG;IAC7B,OAAO,IAAI;EACZ;EAEA,OACCZ,aAAA;IAASC,SAAS,EAAC;EAAyC,GAC3DD,aAAA,CAACnB,OAAO;IACPgC,KAAK,EAAG,CAAG;IACXZ,SAAS,EAAC;EAA+C,GAEvDhB,EAAE,CAAE,OAAQ,CACN,CAAC,EAEVe,aAAA;IAAIC,SAAS,EAAC;EAA8C,GACzDS,aAAa,CAACI,GAAG,CAAE,CAAE;IAAEC,YAAY;IAAEC;EAAM,CAAC,KAC7ChB,aAAA;IAAIiB,GAAG,EAAGF,YAAY,CAACG;EAAM,GAC5BlB,aAAA,CAACb,gBAAgB;IAChBC,IAAI,EAAG2B,YAAY,CAAC3B,IAAM;IAC1BC,QAAQ,EAAG2B,KAAK,CAAC3B;EAAU,CAC3B,CACE,CACH,CACC,CACI,CAAC;AAEZ"}
1
+ {"version":3,"names":["useSelect","useDispatch","Button","__experimentalHeading","Heading","store","editorStore","blockEditorStore","__","editSiteStore","TemplateAreaItem","area","clientId","selectBlock","toggleBlockHighlight","templatePartArea","select","defaultAreas","__experimentalGetDefaultTemplatePartAreas","find","defaultArea","highlightBlock","cancelHighlightBlock","createElement","className","icon","onMouseOver","onMouseLeave","onFocus","onBlur","onClick","label","TemplateAreas","templateParts","getCurrentTemplateTemplateParts","length","level","map","templatePart","block","key"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/template-areas.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nfunction TemplateAreaItem( { area, clientId } ) {\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\tconst templatePartArea = useSelect(\n\t\t( select ) => {\n\t\t\tconst defaultAreas =\n\t\t\t\tselect(\n\t\t\t\t\teditorStore\n\t\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\n\t\t\treturn defaultAreas.find(\n\t\t\t\t( defaultArea ) => defaultArea.area === area\n\t\t\t);\n\t\t},\n\t\t[ area ]\n\t);\n\n\tconst highlightBlock = () => toggleBlockHighlight( clientId, true );\n\tconst cancelHighlightBlock = () => toggleBlockHighlight( clientId, false );\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-site-template-card__template-areas-item\"\n\t\t\ticon={ templatePartArea?.icon }\n\t\t\tonMouseOver={ highlightBlock }\n\t\t\tonMouseLeave={ cancelHighlightBlock }\n\t\t\tonFocus={ highlightBlock }\n\t\t\tonBlur={ cancelHighlightBlock }\n\t\t\tonClick={ () => {\n\t\t\t\tselectBlock( clientId );\n\t\t\t} }\n\t\t>\n\t\t\t{ templatePartArea?.label }\n\t\t</Button>\n\t);\n}\n\nexport default function TemplateAreas() {\n\tconst templateParts = useSelect(\n\t\t( select ) => select( editSiteStore ).getCurrentTemplateTemplateParts(),\n\t\t[]\n\t);\n\n\tif ( ! templateParts.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<section className=\"edit-site-template-card__template-areas\">\n\t\t\t<Heading\n\t\t\t\tlevel={ 3 }\n\t\t\t\tclassName=\"edit-site-template-card__template-areas-title\"\n\t\t\t>\n\t\t\t\t{ __( 'Areas' ) }\n\t\t\t</Heading>\n\n\t\t\t<ul className=\"edit-site-template-card__template-areas-list\">\n\t\t\t\t{ templateParts.map( ( { templatePart, block } ) => (\n\t\t\t\t\t<li key={ block.clientId }>\n\t\t\t\t\t\t<TemplateAreaItem\n\t\t\t\t\t\t\tarea={ templatePart.area }\n\t\t\t\t\t\t\tclientId={ block.clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</section>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SACCC,MAAM,EACNC,qBAAqB,IAAIC,OAAO,QAC1B,uBAAuB;AAC9B,SAASC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACxD,SAASD,KAAK,IAAIE,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASH,KAAK,IAAII,aAAa,QAAQ,gBAAgB;AAEvD,SAASC,gBAAgBA,CAAE;EAAEC,IAAI;EAAEC;AAAS,CAAC,EAAG;EAC/C,MAAM;IAAEC,WAAW;IAAEC;EAAqB,CAAC,GAC1Cb,WAAW,CAAEM,gBAAiB,CAAC;EAChC,MAAMQ,gBAAgB,GAAGf,SAAS,CAC/BgB,MAAM,IAAM;IACb,MAAMC,YAAY,GACjBD,MAAM,CACLV,WACD,CAAC,CAACY,yCAAyC,CAAC,CAAC;IAE9C,OAAOD,YAAY,CAACE,IAAI,CACrBC,WAAW,IAAMA,WAAW,CAACT,IAAI,KAAKA,IACzC,CAAC;EACF,CAAC,EACD,CAAEA,IAAI,CACP,CAAC;EAED,MAAMU,cAAc,GAAGA,CAAA,KAAMP,oBAAoB,CAAEF,QAAQ,EAAE,IAAK,CAAC;EACnE,MAAMU,oBAAoB,GAAGA,CAAA,KAAMR,oBAAoB,CAAEF,QAAQ,EAAE,KAAM,CAAC;EAE1E,OACCW,aAAA,CAACrB,MAAM;IACNsB,SAAS,EAAC,8CAA8C;IACxDC,IAAI,EAAGV,gBAAgB,EAAEU,IAAM;IAC/BC,WAAW,EAAGL,cAAgB;IAC9BM,YAAY,EAAGL,oBAAsB;IACrCM,OAAO,EAAGP,cAAgB;IAC1BQ,MAAM,EAAGP,oBAAsB;IAC/BQ,OAAO,EAAGA,CAAA,KAAM;MACfjB,WAAW,CAAED,QAAS,CAAC;IACxB;EAAG,GAEDG,gBAAgB,EAAEgB,KACb,CAAC;AAEX;AAEA,eAAe,SAASC,aAAaA,CAAA,EAAG;EACvC,MAAMC,aAAa,GAAGjC,SAAS,CAC5BgB,MAAM,IAAMA,MAAM,CAAEP,aAAc,CAAC,CAACyB,+BAA+B,CAAC,CAAC,EACvE,EACD,CAAC;EAED,IAAK,CAAED,aAAa,CAACE,MAAM,EAAG;IAC7B,OAAO,IAAI;EACZ;EAEA,OACCZ,aAAA;IAASC,SAAS,EAAC;EAAyC,GAC3DD,aAAA,CAACnB,OAAO;IACPgC,KAAK,EAAG,CAAG;IACXZ,SAAS,EAAC;EAA+C,GAEvDhB,EAAE,CAAE,OAAQ,CACN,CAAC,EAEVe,aAAA;IAAIC,SAAS,EAAC;EAA8C,GACzDS,aAAa,CAACI,GAAG,CAAE,CAAE;IAAEC,YAAY;IAAEC;EAAM,CAAC,KAC7ChB,aAAA;IAAIiB,GAAG,EAAGD,KAAK,CAAC3B;EAAU,GACzBW,aAAA,CAACb,gBAAgB;IAChBC,IAAI,EAAG2B,YAAY,CAAC3B,IAAM;IAC1BC,QAAQ,EAAG2B,KAAK,CAAC3B;EAAU,CAC3B,CACE,CACH,CACC,CACI,CAAC;AAEZ"}
@@ -7,6 +7,8 @@ import { useViewportMatch } from '@wordpress/compose';
7
7
  import { getTemplatePartIcon } from '@wordpress/editor';
8
8
  import { __ } from '@wordpress/i18n';
9
9
  import { getQueryArgs } from '@wordpress/url';
10
+ import { store as coreStore } from '@wordpress/core-data';
11
+ import { useSelect } from '@wordpress/data';
10
12
  import { file } from '@wordpress/icons';
11
13
 
12
14
  /**
@@ -20,6 +22,7 @@ import { PATTERN_DEFAULT_CATEGORY, PATTERN_TYPES, TEMPLATE_PART_POST_TYPE } from
20
22
  import { useLink } from '../routes/link';
21
23
  import usePatternCategories from './use-pattern-categories';
22
24
  import useTemplatePartAreas from './use-template-part-areas';
25
+ import { store as editSiteStore } from '../../store';
23
26
  function TemplatePartGroup({
24
27
  areas,
25
28
  currentArea,
@@ -78,18 +81,27 @@ export default function SidebarNavigationScreenPatterns() {
78
81
  patternCategories,
79
82
  hasPatterns
80
83
  } = usePatternCategories();
84
+ const isBlockBasedTheme = useSelect(select => select(coreStore).getCurrentTheme()?.is_block_theme, []);
85
+ const isTemplatePartsMode = useSelect(select => {
86
+ const settings = select(editSiteStore).getSettings();
87
+ return !!settings.supportsTemplatePartsMode;
88
+ }, []);
81
89
  const templatePartsLink = useLink({
82
- path: '/wp_template_part/all'
90
+ path: '/wp_template_part/all',
91
+ // If a classic theme that supports template parts accessed
92
+ // the Patterns page directly, preserve that state in the URL.
93
+ didAccessPatternsPage: !isBlockBasedTheme && isTemplatePartsMode ? 1 : undefined
83
94
  });
84
95
  const footer = !isMobileViewport ? createElement(ItemGroup, null, createElement(SidebarNavigationItem, {
85
96
  as: "a",
86
97
  href: "edit.php?post_type=wp_block",
87
98
  withChevron: true
88
- }, __('Manage all of my patterns')), createElement(SidebarNavigationItem, {
99
+ }, __('Manage all of my patterns')), (isBlockBasedTheme || isTemplatePartsMode) && createElement(SidebarNavigationItem, {
89
100
  withChevron: true,
90
101
  ...templatePartsLink
91
102
  }, __('Manage all template parts'))) : undefined;
92
103
  return createElement(SidebarNavigationScreen, {
104
+ isRoot: !isBlockBasedTheme,
93
105
  title: __('Patterns'),
94
106
  description: __('Manage what patterns are available when editing the site.'),
95
107
  actions: createElement(AddNewPattern, null),
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHeading","Heading","useViewportMatch","getTemplatePartIcon","__","getQueryArgs","file","AddNewPattern","SidebarNavigationItem","SidebarNavigationScreen","CategoryItem","PATTERN_DEFAULT_CATEGORY","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","useLink","usePatternCategories","useTemplatePartAreas","TemplatePartGroup","areas","currentArea","currentType","createElement","Fragment","className","level","Object","entries","map","area","label","templateParts","key","count","length","icon","id","type","isActive","PatternCategoriesGroup","categories","currentCategory","category","name","theme","user","SidebarNavigationScreenPatterns","isMobileViewport","categoryType","categoryId","window","location","href","templatePartAreas","hasTemplateParts","isLoading","patternCategories","hasPatterns","templatePartsLink","path","footer","as","withChevron","undefined","title","description","actions","content"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { getTemplatePartIcon } from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\nimport { getQueryArgs } from '@wordpress/url';\nimport { file } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport AddNewPattern from '../add-new-pattern';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport CategoryItem from './category-item';\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport { useLink } from '../routes/link';\nimport usePatternCategories from './use-pattern-categories';\nimport useTemplatePartAreas from './use-template-part-areas';\n\nfunction TemplatePartGroup( { areas, currentArea, currentType } ) {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"edit-site-sidebar-navigation-screen-patterns__group-header\">\n\t\t\t\t<Heading level={ 2 }>{ __( 'Template parts' ) }</Heading>\n\t\t\t</div>\n\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t{ Object.entries( areas ).map(\n\t\t\t\t\t( [ area, { label, templateParts } ] ) => (\n\t\t\t\t\t\t<CategoryItem\n\t\t\t\t\t\t\tkey={ area }\n\t\t\t\t\t\t\tcount={ templateParts?.length }\n\t\t\t\t\t\t\ticon={ getTemplatePartIcon( area ) }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tid={ area }\n\t\t\t\t\t\t\ttype={ TEMPLATE_PART_POST_TYPE }\n\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\tcurrentArea === area &&\n\t\t\t\t\t\t\t\tcurrentType === TEMPLATE_PART_POST_TYPE\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</ItemGroup>\n\t\t</>\n\t);\n}\n\nfunction PatternCategoriesGroup( {\n\tcategories,\n\tcurrentCategory,\n\tcurrentType,\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t<CategoryItem\n\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\tcount={ category.count }\n\t\t\t\t\t\tlabel={ category.label }\n\t\t\t\t\t\ticon={ file }\n\t\t\t\t\t\tid={ category.name }\n\t\t\t\t\t\ttype=\"pattern\"\n\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\tcurrentCategory === `${ category.name }` &&\n\t\t\t\t\t\t\t( currentType === PATTERN_TYPES.theme ||\n\t\t\t\t\t\t\t\tcurrentType === PATTERN_TYPES.user )\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</>\n\t);\n}\n\nexport default function SidebarNavigationScreenPatterns() {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst currentCategory = categoryId || PATTERN_DEFAULT_CATEGORY;\n\tconst currentType = categoryType || PATTERN_TYPES.theme;\n\n\tconst { templatePartAreas, hasTemplateParts, isLoading } =\n\t\tuseTemplatePartAreas();\n\tconst { patternCategories, hasPatterns } = usePatternCategories();\n\n\tconst templatePartsLink = useLink( { path: '/wp_template_part/all' } );\n\tconst footer = ! isMobileViewport ? (\n\t\t<ItemGroup>\n\t\t\t<SidebarNavigationItem\n\t\t\t\tas=\"a\"\n\t\t\t\thref=\"edit.php?post_type=wp_block\"\n\t\t\t\twithChevron\n\t\t\t>\n\t\t\t\t{ __( 'Manage all of my patterns' ) }\n\t\t\t</SidebarNavigationItem>\n\t\t\t<SidebarNavigationItem withChevron { ...templatePartsLink }>\n\t\t\t\t{ __( 'Manage all template parts' ) }\n\t\t\t</SidebarNavigationItem>\n\t\t</ItemGroup>\n\t) : undefined;\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ __( 'Patterns' ) }\n\t\t\tdescription={ __(\n\t\t\t\t'Manage what patterns are available when editing the site.'\n\t\t\t) }\n\t\t\tactions={ <AddNewPattern /> }\n\t\t\tfooter={ footer }\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ isLoading && __( 'Loading patterns…' ) }\n\t\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! hasTemplateParts && ! hasPatterns && (\n\t\t\t\t\t\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t\t\t\t\t\t<Item>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'No template parts or patterns found'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hasPatterns && (\n\t\t\t\t\t\t\t\t<PatternCategoriesGroup\n\t\t\t\t\t\t\t\t\tcategories={ patternCategories }\n\t\t\t\t\t\t\t\t\tcurrentCategory={ currentCategory }\n\t\t\t\t\t\t\t\t\tcurrentType={ currentType }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hasTemplateParts && (\n\t\t\t\t\t\t\t\t<TemplatePartGroup\n\t\t\t\t\t\t\t\t\tareas={ templatePartAreas }\n\t\t\t\t\t\t\t\t\tcurrentArea={ currentCategory }\n\t\t\t\t\t\t\t\t\tcurrentType={ currentType }\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}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHeading","Heading","useViewportMatch","getTemplatePartIcon","__","getQueryArgs","store","coreStore","useSelect","file","AddNewPattern","SidebarNavigationItem","SidebarNavigationScreen","CategoryItem","PATTERN_DEFAULT_CATEGORY","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","useLink","usePatternCategories","useTemplatePartAreas","editSiteStore","TemplatePartGroup","areas","currentArea","currentType","createElement","Fragment","className","level","Object","entries","map","area","label","templateParts","key","count","length","icon","id","type","isActive","PatternCategoriesGroup","categories","currentCategory","category","name","theme","user","SidebarNavigationScreenPatterns","isMobileViewport","categoryType","categoryId","window","location","href","templatePartAreas","hasTemplateParts","isLoading","patternCategories","hasPatterns","isBlockBasedTheme","select","getCurrentTheme","is_block_theme","isTemplatePartsMode","settings","getSettings","supportsTemplatePartsMode","templatePartsLink","path","didAccessPatternsPage","undefined","footer","as","withChevron","isRoot","title","description","actions","content"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { getTemplatePartIcon } from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\nimport { getQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { file } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport AddNewPattern from '../add-new-pattern';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport CategoryItem from './category-item';\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport { useLink } from '../routes/link';\nimport usePatternCategories from './use-pattern-categories';\nimport useTemplatePartAreas from './use-template-part-areas';\nimport { store as editSiteStore } from '../../store';\n\nfunction TemplatePartGroup( { areas, currentArea, currentType } ) {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"edit-site-sidebar-navigation-screen-patterns__group-header\">\n\t\t\t\t<Heading level={ 2 }>{ __( 'Template parts' ) }</Heading>\n\t\t\t</div>\n\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t{ Object.entries( areas ).map(\n\t\t\t\t\t( [ area, { label, templateParts } ] ) => (\n\t\t\t\t\t\t<CategoryItem\n\t\t\t\t\t\t\tkey={ area }\n\t\t\t\t\t\t\tcount={ templateParts?.length }\n\t\t\t\t\t\t\ticon={ getTemplatePartIcon( area ) }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tid={ area }\n\t\t\t\t\t\t\ttype={ TEMPLATE_PART_POST_TYPE }\n\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\tcurrentArea === area &&\n\t\t\t\t\t\t\t\tcurrentType === TEMPLATE_PART_POST_TYPE\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</ItemGroup>\n\t\t</>\n\t);\n}\n\nfunction PatternCategoriesGroup( {\n\tcategories,\n\tcurrentCategory,\n\tcurrentType,\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t<CategoryItem\n\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\tcount={ category.count }\n\t\t\t\t\t\tlabel={ category.label }\n\t\t\t\t\t\ticon={ file }\n\t\t\t\t\t\tid={ category.name }\n\t\t\t\t\t\ttype=\"pattern\"\n\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\tcurrentCategory === `${ category.name }` &&\n\t\t\t\t\t\t\t( currentType === PATTERN_TYPES.theme ||\n\t\t\t\t\t\t\t\tcurrentType === PATTERN_TYPES.user )\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</>\n\t);\n}\n\nexport default function SidebarNavigationScreenPatterns() {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst currentCategory = categoryId || PATTERN_DEFAULT_CATEGORY;\n\tconst currentType = categoryType || PATTERN_TYPES.theme;\n\n\tconst { templatePartAreas, hasTemplateParts, isLoading } =\n\t\tuseTemplatePartAreas();\n\tconst { patternCategories, hasPatterns } = usePatternCategories();\n\tconst isBlockBasedTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.is_block_theme,\n\t\t[]\n\t);\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\tconst settings = select( editSiteStore ).getSettings();\n\t\treturn !! settings.supportsTemplatePartsMode;\n\t}, [] );\n\n\tconst templatePartsLink = useLink( {\n\t\tpath: '/wp_template_part/all',\n\t\t// If a classic theme that supports template parts accessed\n\t\t// the Patterns page directly, preserve that state in the URL.\n\t\tdidAccessPatternsPage:\n\t\t\t! isBlockBasedTheme && isTemplatePartsMode ? 1 : undefined,\n\t} );\n\n\tconst footer = ! isMobileViewport ? (\n\t\t<ItemGroup>\n\t\t\t<SidebarNavigationItem\n\t\t\t\tas=\"a\"\n\t\t\t\thref=\"edit.php?post_type=wp_block\"\n\t\t\t\twithChevron\n\t\t\t>\n\t\t\t\t{ __( 'Manage all of my patterns' ) }\n\t\t\t</SidebarNavigationItem>\n\t\t\t{ ( isBlockBasedTheme || isTemplatePartsMode ) && (\n\t\t\t\t<SidebarNavigationItem withChevron { ...templatePartsLink }>\n\t\t\t\t\t{ __( 'Manage all template parts' ) }\n\t\t\t\t</SidebarNavigationItem>\n\t\t\t) }\n\t\t</ItemGroup>\n\t) : undefined;\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\tisRoot={ ! isBlockBasedTheme }\n\t\t\ttitle={ __( 'Patterns' ) }\n\t\t\tdescription={ __(\n\t\t\t\t'Manage what patterns are available when editing the site.'\n\t\t\t) }\n\t\t\tactions={ <AddNewPattern /> }\n\t\t\tfooter={ footer }\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ isLoading && __( 'Loading patterns…' ) }\n\t\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! hasTemplateParts && ! hasPatterns && (\n\t\t\t\t\t\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t\t\t\t\t\t<Item>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'No template parts or patterns found'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hasPatterns && (\n\t\t\t\t\t\t\t\t<PatternCategoriesGroup\n\t\t\t\t\t\t\t\t\tcategories={ patternCategories }\n\t\t\t\t\t\t\t\t\tcurrentCategory={ currentCategory }\n\t\t\t\t\t\t\t\t\tcurrentType={ currentType }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hasTemplateParts && (\n\t\t\t\t\t\t\t\t<TemplatePartGroup\n\t\t\t\t\t\t\t\t\tareas={ templatePartAreas }\n\t\t\t\t\t\t\t\t\tcurrentArea={ currentCategory }\n\t\t\t\t\t\t\t\t\tcurrentType={ currentType }\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}\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { __ } from '@wordpress/i18n';
6
6
  import { debounce } from '@wordpress/compose';
7
7
  import { useSelect, useDispatch } from '@wordpress/data';
8
8
  import { store as coreStore } from '@wordpress/core-data';
9
- import { CheckboxControl, __experimentalUseNavigator as useNavigator, __experimentalInputControl as InputControl, __experimentalNumberControl as NumberControl, __experimentalTruncate as Truncate, __experimentalItemGroup as ItemGroup } from '@wordpress/components';
9
+ import { CheckboxControl, __experimentalInputControl as InputControl, __experimentalNumberControl as NumberControl, __experimentalTruncate as Truncate, __experimentalItemGroup as ItemGroup } from '@wordpress/components';
10
10
  import { header, footer, layout } from '@wordpress/icons';
11
11
  import { useMemo, useState, useEffect } from '@wordpress/element';
12
12
  import { decodeEntities } from '@wordpress/html-entities';
@@ -48,13 +48,6 @@ function TemplateAreaButton({
48
48
  }, decodeEntities(title)));
49
49
  }
50
50
  export default function HomeTemplateDetails() {
51
- const navigator = useNavigator();
52
- const {
53
- params: {
54
- postType,
55
- postId
56
- }
57
- } = navigator;
58
51
  const {
59
52
  editEntityRecord
60
53
  } = useDispatch(coreStore);
@@ -69,22 +62,21 @@ export default function HomeTemplateDetails() {
69
62
  const {
70
63
  getEntityRecord
71
64
  } = select(coreStore);
72
- const siteSettings = getEntityRecord('root', 'site');
73
65
  const {
74
- getSettings
66
+ getSettings,
67
+ getCurrentTemplateTemplateParts
75
68
  } = unlock(select(editSiteStore));
76
- const _currentTemplateParts = select(editSiteStore).getCurrentTemplateTemplateParts();
77
- const siteEditorSettings = getSettings();
78
- const _postsPageRecord = siteSettings?.page_for_posts ? select(coreStore).getEntityRecord('postType', 'page', siteSettings?.page_for_posts) : EMPTY_OBJECT;
69
+ const siteSettings = getEntityRecord('root', 'site');
70
+ const _postsPageRecord = siteSettings?.page_for_posts ? getEntityRecord('postType', 'page', siteSettings?.page_for_posts) : EMPTY_OBJECT;
79
71
  return {
80
72
  allowCommentsOnNewPosts: siteSettings?.default_comment_status === 'open',
81
73
  postsPageTitle: _postsPageRecord?.title?.rendered,
82
74
  postsPageId: _postsPageRecord?.id,
83
75
  postsPerPage: siteSettings?.posts_per_page,
84
- templatePartAreas: siteEditorSettings?.defaultTemplatePartAreas,
85
- currentTemplateParts: _currentTemplateParts
76
+ templatePartAreas: getSettings()?.defaultTemplatePartAreas,
77
+ currentTemplateParts: getCurrentTemplateTemplateParts()
86
78
  };
87
- }, [postType, postId]);
79
+ }, []);
88
80
  const [commentsOnNewPostsValue, setCommentsOnNewPostsValue] = useState('');
89
81
  const [postsCountValue, setPostsCountValue] = useState(1);
90
82
  const [postsPageTitleValue, setPostsPageTitleValue] = useState('');
@@ -106,12 +98,14 @@ export default function HomeTemplateDetails() {
106
98
  */
107
99
  const templateAreas = useMemo(() => {
108
100
  return currentTemplateParts.length && templatePartAreas ? currentTemplateParts.map(({
109
- templatePart
101
+ templatePart,
102
+ block
110
103
  }) => ({
111
104
  ...templatePartAreas?.find(({
112
105
  area
113
106
  }) => area === templatePart?.area),
114
- ...templatePart
107
+ ...templatePart,
108
+ clientId: block.clientId
115
109
  })) : [];
116
110
  }, [currentTemplateParts, templatePartAreas]);
117
111
  const setAllowCommentsOnNewPosts = newValue => {
@@ -166,13 +160,14 @@ export default function HomeTemplateDetails() {
166
160
  title: __('Areas'),
167
161
  spacing: 3
168
162
  }, createElement(ItemGroup, null, templateAreas.map(({
163
+ clientId,
169
164
  label,
170
165
  icon,
171
166
  theme,
172
167
  slug,
173
168
  title
174
169
  }) => createElement(SidebarNavigationScreenDetailsPanelRow, {
175
- key: slug
170
+ key: clientId
176
171
  }, createElement(TemplateAreaButton, {
177
172
  postId: `${theme}//${slug}`,
178
173
  title: title?.rendered || label,
@@ -1 +1 @@
1
- {"version":3,"names":["__","debounce","useSelect","useDispatch","store","coreStore","CheckboxControl","__experimentalUseNavigator","useNavigator","__experimentalInputControl","InputControl","__experimentalNumberControl","NumberControl","__experimentalTruncate","Truncate","__experimentalItemGroup","ItemGroup","header","footer","layout","useMemo","useState","useEffect","decodeEntities","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsPanelRow","unlock","editSiteStore","useLink","SidebarNavigationItem","TEMPLATE_PART_POST_TYPE","EMPTY_OBJECT","TemplateAreaButton","postId","icon","title","_icons$icon","icons","linkInfo","postType","createElement","className","withChevron","limit","ellipsizeMode","numberOfLines","HomeTemplateDetails","navigator","params","editEntityRecord","allowCommentsOnNewPosts","templatePartAreas","postsPerPage","postsPageTitle","postsPageId","currentTemplateParts","select","getEntityRecord","siteSettings","getSettings","_currentTemplateParts","getCurrentTemplateTemplateParts","siteEditorSettings","_postsPageRecord","page_for_posts","default_comment_status","rendered","id","posts_per_page","defaultTemplatePartAreas","commentsOnNewPostsValue","setCommentsOnNewPostsValue","postsCountValue","setPostsCountValue","postsPageTitleValue","setPostsPageTitleValue","templateAreas","length","map","templatePart","find","area","setAllowCommentsOnNewPosts","newValue","undefined","setPostsPageTitle","setPostsPerPage","Fragment","spacing","placeholder","size","value","onChange","label","help","spinControls","step","min","checked","theme","slug","key"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-template/home-template-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tCheckboxControl,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalInputControl as InputControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalTruncate as Truncate,\n\t__experimentalItemGroup as ItemGroup,\n} from '@wordpress/components';\nimport { header, footer, layout } from '@wordpress/icons';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n} from '../sidebar-navigation-screen-details-panel';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\nfunction TemplateAreaButton( { postId, icon, title } ) {\n\tconst icons = {\n\t\theader,\n\t\tfooter,\n\t};\n\tconst linkInfo = useLink( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tpostId,\n\t} );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-button\"\n\t\t\t{ ...linkInfo }\n\t\t\ticon={ icons[ icon ] ?? layout }\n\t\t\twithChevron\n\t\t>\n\t\t\t<Truncate\n\t\t\t\tlimit={ 20 }\n\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-label-text\"\n\t\t\t>\n\t\t\t\t{ decodeEntities( title ) }\n\t\t\t</Truncate>\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function HomeTemplateDetails() {\n\tconst navigator = useNavigator();\n\tconst {\n\t\tparams: { postType, postId },\n\t} = navigator;\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst {\n\t\tallowCommentsOnNewPosts,\n\t\ttemplatePartAreas,\n\t\tpostsPerPage,\n\t\tpostsPageTitle,\n\t\tpostsPageId,\n\t\tcurrentTemplateParts,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\t\tconst _currentTemplateParts =\n\t\t\t\tselect( editSiteStore ).getCurrentTemplateTemplateParts();\n\t\t\tconst siteEditorSettings = getSettings();\n\t\t\tconst _postsPageRecord = siteSettings?.page_for_posts\n\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'page',\n\t\t\t\t\t\tsiteSettings?.page_for_posts\n\t\t\t\t )\n\t\t\t\t: EMPTY_OBJECT;\n\n\t\t\treturn {\n\t\t\t\tallowCommentsOnNewPosts:\n\t\t\t\t\tsiteSettings?.default_comment_status === 'open',\n\t\t\t\tpostsPageTitle: _postsPageRecord?.title?.rendered,\n\t\t\t\tpostsPageId: _postsPageRecord?.id,\n\t\t\t\tpostsPerPage: siteSettings?.posts_per_page,\n\t\t\t\ttemplatePartAreas: siteEditorSettings?.defaultTemplatePartAreas,\n\t\t\t\tcurrentTemplateParts: _currentTemplateParts,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =\n\t\tuseState( '' );\n\tconst [ postsCountValue, setPostsCountValue ] = useState( 1 );\n\tconst [ postsPageTitleValue, setPostsPageTitleValue ] = useState( '' );\n\n\t/*\n\t * This hook serves to set the server-retrieved values,\n\t * postsPageTitle, allowCommentsOnNewPosts, postsPerPage,\n\t * to local state.\n\t */\n\tuseEffect( () => {\n\t\tsetCommentsOnNewPostsValue( allowCommentsOnNewPosts );\n\t\tsetPostsPageTitleValue( postsPageTitle );\n\t\tsetPostsCountValue( postsPerPage );\n\t}, [ postsPageTitle, allowCommentsOnNewPosts, postsPerPage ] );\n\n\t/*\n\t * Merge data in currentTemplateParts with templatePartAreas,\n\t * which contains the template icon and fallback labels\n\t */\n\tconst templateAreas = useMemo( () => {\n\t\treturn currentTemplateParts.length && templatePartAreas\n\t\t\t? currentTemplateParts.map( ( { templatePart } ) => ( {\n\t\t\t\t\t...templatePartAreas?.find(\n\t\t\t\t\t\t( { area } ) => area === templatePart?.area\n\t\t\t\t\t),\n\t\t\t\t\t...templatePart,\n\t\t\t } ) )\n\t\t\t: [];\n\t}, [ currentTemplateParts, templatePartAreas ] );\n\n\tconst setAllowCommentsOnNewPosts = ( newValue ) => {\n\t\tsetCommentsOnNewPostsValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tdefault_comment_status: newValue ? 'open' : null,\n\t\t} );\n\t};\n\n\tconst setPostsPageTitle = ( newValue ) => {\n\t\tsetPostsPageTitleValue( newValue );\n\t\teditEntityRecord( 'postType', 'page', postsPageId, {\n\t\t\ttitle: newValue,\n\t\t} );\n\t};\n\n\tconst setPostsPerPage = ( newValue ) => {\n\t\tsetPostsCountValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tposts_per_page: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationScreenDetailsPanel spacing={ 6 }>\n\t\t\t\t{ postsPageId && (\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tvalue={ postsPageTitleValue }\n\t\t\t\t\t\t\tonChange={ debounce( setPostsPageTitle, 300 ) }\n\t\t\t\t\t\t\tlabel={ __( 'Blog title' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Set the Posts Page title. Appears in search results, and when the page is shared on social media.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t) }\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tplaceholder={ 0 }\n\t\t\t\t\t\tvalue={ postsCountValue }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tonChange={ setPostsPerPage }\n\t\t\t\t\t\tlabel={ __( 'Posts per page' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Set the default number of posts to display on blog pages, including categories and tags. Some templates may override this setting.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Discussion' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tlabel={ __( 'Allow comments on new posts' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Changes will apply to new posts only. Individual posts may override these settings.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ commentsOnNewPostsValue }\n\t\t\t\t\t\tonChange={ setAllowCommentsOnNewPosts }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Areas' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{ templateAreas.map(\n\t\t\t\t\t\t( { label, icon, theme, slug, title } ) => (\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TemplateAreaButton\n\t\t\t\t\t\t\t\t\tpostId={ `${ theme }//${ slug }` }\n\t\t\t\t\t\t\t\t\ttitle={ title?.rendered || label }\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</ItemGroup>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","debounce","useSelect","useDispatch","store","coreStore","CheckboxControl","__experimentalInputControl","InputControl","__experimentalNumberControl","NumberControl","__experimentalTruncate","Truncate","__experimentalItemGroup","ItemGroup","header","footer","layout","useMemo","useState","useEffect","decodeEntities","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsPanelRow","unlock","editSiteStore","useLink","SidebarNavigationItem","TEMPLATE_PART_POST_TYPE","EMPTY_OBJECT","TemplateAreaButton","postId","icon","title","_icons$icon","icons","linkInfo","postType","createElement","className","withChevron","limit","ellipsizeMode","numberOfLines","HomeTemplateDetails","editEntityRecord","allowCommentsOnNewPosts","templatePartAreas","postsPerPage","postsPageTitle","postsPageId","currentTemplateParts","select","getEntityRecord","getSettings","getCurrentTemplateTemplateParts","siteSettings","_postsPageRecord","page_for_posts","default_comment_status","rendered","id","posts_per_page","defaultTemplatePartAreas","commentsOnNewPostsValue","setCommentsOnNewPostsValue","postsCountValue","setPostsCountValue","postsPageTitleValue","setPostsPageTitleValue","templateAreas","length","map","templatePart","block","find","area","clientId","setAllowCommentsOnNewPosts","newValue","undefined","setPostsPageTitle","setPostsPerPage","Fragment","spacing","placeholder","size","value","onChange","label","help","spinControls","step","min","checked","theme","slug","key"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-template/home-template-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tCheckboxControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalTruncate as Truncate,\n\t__experimentalItemGroup as ItemGroup,\n} from '@wordpress/components';\nimport { header, footer, layout } from '@wordpress/icons';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n} from '../sidebar-navigation-screen-details-panel';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\nfunction TemplateAreaButton( { postId, icon, title } ) {\n\tconst icons = {\n\t\theader,\n\t\tfooter,\n\t};\n\tconst linkInfo = useLink( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tpostId,\n\t} );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-button\"\n\t\t\t{ ...linkInfo }\n\t\t\ticon={ icons[ icon ] ?? layout }\n\t\t\twithChevron\n\t\t>\n\t\t\t<Truncate\n\t\t\t\tlimit={ 20 }\n\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-label-text\"\n\t\t\t>\n\t\t\t\t{ decodeEntities( title ) }\n\t\t\t</Truncate>\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function HomeTemplateDetails() {\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst {\n\t\tallowCommentsOnNewPosts,\n\t\ttemplatePartAreas,\n\t\tpostsPerPage,\n\t\tpostsPageTitle,\n\t\tpostsPageId,\n\t\tcurrentTemplateParts,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst { getSettings, getCurrentTemplateTemplateParts } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\tconst _postsPageRecord = siteSettings?.page_for_posts\n\t\t\t? getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'page',\n\t\t\t\t\tsiteSettings?.page_for_posts\n\t\t\t )\n\t\t\t: EMPTY_OBJECT;\n\n\t\treturn {\n\t\t\tallowCommentsOnNewPosts:\n\t\t\t\tsiteSettings?.default_comment_status === 'open',\n\t\t\tpostsPageTitle: _postsPageRecord?.title?.rendered,\n\t\t\tpostsPageId: _postsPageRecord?.id,\n\t\t\tpostsPerPage: siteSettings?.posts_per_page,\n\t\t\ttemplatePartAreas: getSettings()?.defaultTemplatePartAreas,\n\t\t\tcurrentTemplateParts: getCurrentTemplateTemplateParts(),\n\t\t};\n\t}, [] );\n\n\tconst [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =\n\t\tuseState( '' );\n\tconst [ postsCountValue, setPostsCountValue ] = useState( 1 );\n\tconst [ postsPageTitleValue, setPostsPageTitleValue ] = useState( '' );\n\n\t/*\n\t * This hook serves to set the server-retrieved values,\n\t * postsPageTitle, allowCommentsOnNewPosts, postsPerPage,\n\t * to local state.\n\t */\n\tuseEffect( () => {\n\t\tsetCommentsOnNewPostsValue( allowCommentsOnNewPosts );\n\t\tsetPostsPageTitleValue( postsPageTitle );\n\t\tsetPostsCountValue( postsPerPage );\n\t}, [ postsPageTitle, allowCommentsOnNewPosts, postsPerPage ] );\n\n\t/*\n\t * Merge data in currentTemplateParts with templatePartAreas,\n\t * which contains the template icon and fallback labels\n\t */\n\tconst templateAreas = useMemo( () => {\n\t\treturn currentTemplateParts.length && templatePartAreas\n\t\t\t? currentTemplateParts.map( ( { templatePart, block } ) => ( {\n\t\t\t\t\t...templatePartAreas?.find(\n\t\t\t\t\t\t( { area } ) => area === templatePart?.area\n\t\t\t\t\t),\n\t\t\t\t\t...templatePart,\n\t\t\t\t\tclientId: block.clientId,\n\t\t\t } ) )\n\t\t\t: [];\n\t}, [ currentTemplateParts, templatePartAreas ] );\n\n\tconst setAllowCommentsOnNewPosts = ( newValue ) => {\n\t\tsetCommentsOnNewPostsValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tdefault_comment_status: newValue ? 'open' : null,\n\t\t} );\n\t};\n\n\tconst setPostsPageTitle = ( newValue ) => {\n\t\tsetPostsPageTitleValue( newValue );\n\t\teditEntityRecord( 'postType', 'page', postsPageId, {\n\t\t\ttitle: newValue,\n\t\t} );\n\t};\n\n\tconst setPostsPerPage = ( newValue ) => {\n\t\tsetPostsCountValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tposts_per_page: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationScreenDetailsPanel spacing={ 6 }>\n\t\t\t\t{ postsPageId && (\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tvalue={ postsPageTitleValue }\n\t\t\t\t\t\t\tonChange={ debounce( setPostsPageTitle, 300 ) }\n\t\t\t\t\t\t\tlabel={ __( 'Blog title' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Set the Posts Page title. Appears in search results, and when the page is shared on social media.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t) }\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tplaceholder={ 0 }\n\t\t\t\t\t\tvalue={ postsCountValue }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tonChange={ setPostsPerPage }\n\t\t\t\t\t\tlabel={ __( 'Posts per page' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Set the default number of posts to display on blog pages, including categories and tags. Some templates may override this setting.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Discussion' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tlabel={ __( 'Allow comments on new posts' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Changes will apply to new posts only. Individual posts may override these settings.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ commentsOnNewPostsValue }\n\t\t\t\t\t\tonChange={ setAllowCommentsOnNewPosts }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Areas' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{ templateAreas.map(\n\t\t\t\t\t\t( { clientId, label, icon, theme, slug, title } ) => (\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow\n\t\t\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TemplateAreaButton\n\t\t\t\t\t\t\t\t\tpostId={ `${ theme }//${ slug }` }\n\t\t\t\t\t\t\t\t\ttitle={ title?.rendered || label }\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</ItemGroup>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -5,6 +5,7 @@ import { createElement } from "@wordpress/element";
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import { useSelect } from '@wordpress/data';
7
7
  import { __experimentalUseNavigator as useNavigator } from '@wordpress/components';
8
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
8
9
 
9
10
  /**
10
11
  * Internal dependencies
@@ -12,6 +13,7 @@ import { __experimentalUseNavigator as useNavigator } from '@wordpress/component
12
13
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
13
14
  import { store as editSiteStore } from '../../store';
14
15
  import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
16
+ import { unlock } from '../../lock-unlock';
15
17
  const config = {
16
18
  [TEMPLATE_POST_TYPE]: {
17
19
  title: __('All templates'),
@@ -23,18 +25,28 @@ const config = {
23
25
  backPath: '/patterns'
24
26
  }
25
27
  };
28
+ const {
29
+ useLocation
30
+ } = unlock(routerPrivateApis);
26
31
  export default function SidebarNavigationScreenTemplatesBrowse() {
27
32
  const {
28
33
  params: {
29
34
  postType
30
35
  }
31
36
  } = useNavigator();
37
+ const {
38
+ params: {
39
+ didAccessPatternsPage
40
+ }
41
+ } = useLocation();
32
42
  const isTemplatePartsMode = useSelect(select => {
33
- const settings = select(editSiteStore).getSettings();
34
- return !!settings.supportsTemplatePartsMode;
43
+ return !!select(editSiteStore).getSettings().supportsTemplatePartsMode;
35
44
  }, []);
36
- return createElement(SidebarNavigationScreen, {
37
- isRoot: isTemplatePartsMode,
45
+ return createElement(SidebarNavigationScreen
46
+ // If a classic theme that supports template parts has never
47
+ // accessed the Patterns page, return to the dashboard.
48
+ , {
49
+ isRoot: isTemplatePartsMode && !didAccessPatternsPage,
38
50
  title: config[postType].title,
39
51
  description: config[postType].description,
40
52
  backPath: config[postType].backPath
@@ -1 +1 @@
1
- {"version":3,"names":["__","useSelect","__experimentalUseNavigator","useNavigator","SidebarNavigationScreen","store","editSiteStore","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","config","title","description","backPath","SidebarNavigationScreenTemplatesBrowse","params","postType","isTemplatePartsMode","select","settings","getSettings","supportsTemplatePartsMode","createElement","isRoot"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-templates-browse/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst config = {\n\t[ TEMPLATE_POST_TYPE ]: {\n\t\ttitle: __( 'All templates' ),\n\t\tdescription: __(\n\t\t\t'Create new templates, or reset any customizations made to the templates supplied by your theme.'\n\t\t),\n\t},\n\t[ TEMPLATE_PART_POST_TYPE ]: {\n\t\ttitle: __( 'All template parts' ),\n\t\tdescription: __(\n\t\t\t'Create new template parts, or reset any customizations made to the template parts supplied by your theme.'\n\t\t),\n\t\tbackPath: '/patterns',\n\t},\n};\n\nexport default function SidebarNavigationScreenTemplatesBrowse() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\tconst settings = select( editSiteStore ).getSettings();\n\n\t\treturn !! settings.supportsTemplatePartsMode;\n\t}, [] );\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\tisRoot={ isTemplatePartsMode }\n\t\t\ttitle={ config[ postType ].title }\n\t\t\tdescription={ config[ postType ].description }\n\t\t\tbackPath={ config[ postType ].backPath }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,0BAA0B,IAAIC,YAAY,QAAQ,uBAAuB;;AAElF;AACA;AACA;AACA,OAAOC,uBAAuB,MAAM,8BAA8B;AAClE,SAASC,KAAK,IAAIC,aAAa,QAAQ,aAAa;AACpD,SACCC,kBAAkB,EAClBC,uBAAuB,QACjB,uBAAuB;AAE9B,MAAMC,MAAM,GAAG;EACd,CAAEF,kBAAkB,GAAI;IACvBG,KAAK,EAAEV,EAAE,CAAE,eAAgB,CAAC;IAC5BW,WAAW,EAAEX,EAAE,CACd,iGACD;EACD,CAAC;EACD,CAAEQ,uBAAuB,GAAI;IAC5BE,KAAK,EAAEV,EAAE,CAAE,oBAAqB,CAAC;IACjCW,WAAW,EAAEX,EAAE,CACd,2GACD,CAAC;IACDY,QAAQ,EAAE;EACX;AACD,CAAC;AAED,eAAe,SAASC,sCAAsCA,CAAA,EAAG;EAChE,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAS;EACpB,CAAC,GAAGZ,YAAY,CAAC,CAAC;EAElB,MAAMa,mBAAmB,GAAGf,SAAS,CAAIgB,MAAM,IAAM;IACpD,MAAMC,QAAQ,GAAGD,MAAM,CAAEX,aAAc,CAAC,CAACa,WAAW,CAAC,CAAC;IAEtD,OAAO,CAAC,CAAED,QAAQ,CAACE,yBAAyB;EAC7C,CAAC,EAAE,EAAG,CAAC;EAEP,OACCC,aAAA,CAACjB,uBAAuB;IACvBkB,MAAM,EAAGN,mBAAqB;IAC9BN,KAAK,EAAGD,MAAM,CAAEM,QAAQ,CAAE,CAACL,KAAO;IAClCC,WAAW,EAAGF,MAAM,CAAEM,QAAQ,CAAE,CAACJ,WAAa;IAC9CC,QAAQ,EAAGH,MAAM,CAAEM,QAAQ,CAAE,CAACH;EAAU,CACxC,CAAC;AAEJ"}
1
+ {"version":3,"names":["__","useSelect","__experimentalUseNavigator","useNavigator","privateApis","routerPrivateApis","SidebarNavigationScreen","store","editSiteStore","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","unlock","config","title","description","backPath","useLocation","SidebarNavigationScreenTemplatesBrowse","params","postType","didAccessPatternsPage","isTemplatePartsMode","select","getSettings","supportsTemplatePartsMode","createElement","isRoot"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-templates-browse/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst config = {\n\t[ TEMPLATE_POST_TYPE ]: {\n\t\ttitle: __( 'All templates' ),\n\t\tdescription: __(\n\t\t\t'Create new templates, or reset any customizations made to the templates supplied by your theme.'\n\t\t),\n\t},\n\t[ TEMPLATE_PART_POST_TYPE ]: {\n\t\ttitle: __( 'All template parts' ),\n\t\tdescription: __(\n\t\t\t'Create new template parts, or reset any customizations made to the template parts supplied by your theme.'\n\t\t),\n\t\tbackPath: '/patterns',\n\t},\n};\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function SidebarNavigationScreenTemplatesBrowse() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\tconst {\n\t\tparams: { didAccessPatternsPage },\n\t} = useLocation();\n\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\treturn !! select( editSiteStore ).getSettings()\n\t\t\t.supportsTemplatePartsMode;\n\t}, [] );\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\t// If a classic theme that supports template parts has never\n\t\t\t// accessed the Patterns page, return to the dashboard.\n\t\t\tisRoot={ isTemplatePartsMode && ! didAccessPatternsPage }\n\t\t\ttitle={ config[ postType ].title }\n\t\t\tdescription={ config[ postType ].description }\n\t\t\tbackPath={ config[ postType ].backPath }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,0BAA0B,IAAIC,YAAY,QAAQ,uBAAuB;AAClF,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,OAAOC,uBAAuB,MAAM,8BAA8B;AAClE,SAASC,KAAK,IAAIC,aAAa,QAAQ,aAAa;AACpD,SACCC,kBAAkB,EAClBC,uBAAuB,QACjB,uBAAuB;AAC9B,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAMC,MAAM,GAAG;EACd,CAAEH,kBAAkB,GAAI;IACvBI,KAAK,EAAEb,EAAE,CAAE,eAAgB,CAAC;IAC5Bc,WAAW,EAAEd,EAAE,CACd,iGACD;EACD,CAAC;EACD,CAAEU,uBAAuB,GAAI;IAC5BG,KAAK,EAAEb,EAAE,CAAE,oBAAqB,CAAC;IACjCc,WAAW,EAAEd,EAAE,CACd,2GACD,CAAC;IACDe,QAAQ,EAAE;EACX;AACD,CAAC;AAED,MAAM;EAAEC;AAAY,CAAC,GAAGL,MAAM,CAAEN,iBAAkB,CAAC;AAEnD,eAAe,SAASY,sCAAsCA,CAAA,EAAG;EAChE,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAS;EACpB,CAAC,GAAGhB,YAAY,CAAC,CAAC;EAClB,MAAM;IACLe,MAAM,EAAE;MAAEE;IAAsB;EACjC,CAAC,GAAGJ,WAAW,CAAC,CAAC;EAEjB,MAAMK,mBAAmB,GAAGpB,SAAS,CAAIqB,MAAM,IAAM;IACpD,OAAO,CAAC,CAAEA,MAAM,CAAEd,aAAc,CAAC,CAACe,WAAW,CAAC,CAAC,CAC7CC,yBAAyB;EAC5B,CAAC,EAAE,EAAG,CAAC;EAEP,OACCC,aAAA,CAACnB;EACA;EACA;EAAA;IACAoB,MAAM,EAAGL,mBAAmB,IAAI,CAAED,qBAAuB;IACzDP,KAAK,EAAGD,MAAM,CAAEO,QAAQ,CAAE,CAACN,KAAO;IAClCC,WAAW,EAAGF,MAAM,CAAEO,QAAQ,CAAE,CAACL,WAAa;IAC9CC,QAAQ,EAAGH,MAAM,CAAEO,QAAQ,CAAE,CAACJ;EAAU,CACxC,CAAC;AAEJ"}
@@ -3269,7 +3269,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar {
3269
3269
  .edit-site-sidebar-navigation-screen__title {
3270
3270
  flex-grow: 1;
3271
3271
  padding: 6px 0 0 0;
3272
- overflow: hidden;
3273
3272
  overflow-wrap: break-word;
3274
3273
  }
3275
3274
 
@@ -3887,11 +3886,22 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
3887
3886
  align-items: center;
3888
3887
  display: flex;
3889
3888
  justify-content: center;
3890
- height: 100px;
3889
+ height: 250px;
3891
3890
  width: 100%;
3892
3891
  background-color: #f0f0f0;
3893
3892
  }
3894
3893
 
3894
+ .font-library-modal__local-fonts {
3895
+ margin: 0 auto;
3896
+ width: 80%;
3897
+ }
3898
+ .font-library-modal__local-fonts .font-library-modal__upload-area__text {
3899
+ color: #6e6e6e;
3900
+ }
3901
+ .font-library-modal__local-fonts .font-library-modal__upload-area__notice {
3902
+ margin: 0;
3903
+ }
3904
+
3895
3905
  .font-library-modal__font-name {
3896
3906
  font-weight: bold;
3897
3907
  }
@@ -3930,6 +3940,10 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
3930
3940
  max-width: 350px;
3931
3941
  }
3932
3942
 
3943
+ .font-library-modal__font-collection__notice {
3944
+ margin: 0;
3945
+ }
3946
+
3933
3947
  body.js #wpadminbar {
3934
3948
  display: none;
3935
3949
  }
@@ -3270,7 +3270,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar {
3270
3270
  .edit-site-sidebar-navigation-screen__title {
3271
3271
  flex-grow: 1;
3272
3272
  padding: 6px 0 0 0;
3273
- overflow: hidden;
3274
3273
  overflow-wrap: break-word;
3275
3274
  }
3276
3275
 
@@ -3888,11 +3887,22 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
3888
3887
  align-items: center;
3889
3888
  display: flex;
3890
3889
  justify-content: center;
3891
- height: 100px;
3890
+ height: 250px;
3892
3891
  width: 100%;
3893
3892
  background-color: #f0f0f0;
3894
3893
  }
3895
3894
 
3895
+ .font-library-modal__local-fonts {
3896
+ margin: 0 auto;
3897
+ width: 80%;
3898
+ }
3899
+ .font-library-modal__local-fonts .font-library-modal__upload-area__text {
3900
+ color: #6e6e6e;
3901
+ }
3902
+ .font-library-modal__local-fonts .font-library-modal__upload-area__notice {
3903
+ margin: 0;
3904
+ }
3905
+
3896
3906
  .font-library-modal__font-name {
3897
3907
  font-weight: bold;
3898
3908
  }
@@ -3931,6 +3941,10 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
3931
3941
  max-width: 350px;
3932
3942
  }
3933
3943
 
3944
+ .font-library-modal__font-collection__notice {
3945
+ margin: 0;
3946
+ }
3947
+
3934
3948
  body.js #wpadminbar {
3935
3949
  display: none;
3936
3950
  }