@wordpress/block-library 7.18.0 → 7.19.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.
Files changed (188) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/button/deprecated.js +16 -2
  3. package/build/button/deprecated.js.map +1 -1
  4. package/build/button/edit.js +13 -7
  5. package/build/button/edit.js.map +1 -1
  6. package/build/button/index.js +4 -1
  7. package/build/button/index.js.map +1 -1
  8. package/build/button/save.js +2 -0
  9. package/build/button/save.js.map +1 -1
  10. package/build/columns/transforms.js +5 -0
  11. package/build/columns/transforms.js.map +1 -1
  12. package/build/cover/edit/index.js +3 -1
  13. package/build/cover/edit/index.js.map +1 -1
  14. package/build/gallery/v1/edit.js +4 -2
  15. package/build/gallery/v1/edit.js.map +1 -1
  16. package/build/group/edit.js +98 -45
  17. package/build/group/edit.js.map +1 -1
  18. package/build/group/index.js +3 -0
  19. package/build/group/index.js.map +1 -1
  20. package/build/group/placeholder.js +168 -0
  21. package/build/group/placeholder.js.map +1 -0
  22. package/build/group/variations.js +3 -3
  23. package/build/group/variations.js.map +1 -1
  24. package/build/latest-comments/edit.js +2 -1
  25. package/build/latest-comments/edit.js.map +1 -1
  26. package/build/latest-comments/index.js +5 -1
  27. package/build/latest-comments/index.js.map +1 -1
  28. package/build/latest-posts/deprecated.js +13 -0
  29. package/build/latest-posts/deprecated.js.map +1 -1
  30. package/build/latest-posts/index.js +13 -0
  31. package/build/latest-posts/index.js.map +1 -1
  32. package/build/list-item/edit.js +2 -1
  33. package/build/list-item/edit.js.map +1 -1
  34. package/build/navigation/edit/index.js +82 -92
  35. package/build/navigation/edit/index.js.map +1 -1
  36. package/build/navigation/edit/manage-menus-button.js +36 -0
  37. package/build/navigation/edit/manage-menus-button.js.map +1 -0
  38. package/build/navigation/edit/navigation-menu-selector.js +12 -5
  39. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  40. package/build/navigation/edit/responsive-wrapper.js +2 -6
  41. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  42. package/build/navigation/edit/unsaved-inner-blocks.js +5 -19
  43. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  44. package/build/navigation-link/edit.js +10 -1
  45. package/build/navigation-link/edit.js.map +1 -1
  46. package/build/post-author/edit.js +35 -20
  47. package/build/post-author/edit.js.map +1 -1
  48. package/build/post-content/index.js +3 -0
  49. package/build/post-content/index.js.map +1 -1
  50. package/build/site-logo/edit.js +1 -1
  51. package/build/site-logo/edit.js.map +1 -1
  52. package/build/template-part/variations.js +5 -0
  53. package/build/template-part/variations.js.map +1 -1
  54. package/build-module/button/deprecated.js +16 -2
  55. package/build-module/button/deprecated.js.map +1 -1
  56. package/build-module/button/edit.js +15 -9
  57. package/build-module/button/edit.js.map +1 -1
  58. package/build-module/button/index.js +4 -1
  59. package/build-module/button/index.js.map +1 -1
  60. package/build-module/button/save.js +2 -0
  61. package/build-module/button/save.js.map +1 -1
  62. package/build-module/columns/transforms.js +5 -0
  63. package/build-module/columns/transforms.js.map +1 -1
  64. package/build-module/cover/edit/index.js +3 -1
  65. package/build-module/cover/edit/index.js.map +1 -1
  66. package/build-module/gallery/v1/edit.js +5 -3
  67. package/build-module/gallery/v1/edit.js.map +1 -1
  68. package/build-module/group/edit.js +94 -45
  69. package/build-module/group/edit.js.map +1 -1
  70. package/build-module/group/index.js +3 -0
  71. package/build-module/group/index.js.map +1 -1
  72. package/build-module/group/placeholder.js +154 -0
  73. package/build-module/group/placeholder.js.map +1 -0
  74. package/build-module/group/variations.js +3 -3
  75. package/build-module/group/variations.js.map +1 -1
  76. package/build-module/latest-comments/edit.js +2 -1
  77. package/build-module/latest-comments/edit.js.map +1 -1
  78. package/build-module/latest-comments/index.js +5 -1
  79. package/build-module/latest-comments/index.js.map +1 -1
  80. package/build-module/latest-posts/deprecated.js +13 -0
  81. package/build-module/latest-posts/deprecated.js.map +1 -1
  82. package/build-module/latest-posts/index.js +13 -0
  83. package/build-module/latest-posts/index.js.map +1 -1
  84. package/build-module/list-item/edit.js +2 -1
  85. package/build-module/list-item/edit.js.map +1 -1
  86. package/build-module/navigation/edit/index.js +84 -94
  87. package/build-module/navigation/edit/index.js.map +1 -1
  88. package/build-module/navigation/edit/manage-menus-button.js +26 -0
  89. package/build-module/navigation/edit/manage-menus-button.js.map +1 -0
  90. package/build-module/navigation/edit/navigation-menu-selector.js +13 -6
  91. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  92. package/build-module/navigation/edit/responsive-wrapper.js +2 -6
  93. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  94. package/build-module/navigation/edit/unsaved-inner-blocks.js +7 -20
  95. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  96. package/build-module/navigation-link/edit.js +10 -1
  97. package/build-module/navigation-link/edit.js.map +1 -1
  98. package/build-module/post-author/edit.js +35 -21
  99. package/build-module/post-author/edit.js.map +1 -1
  100. package/build-module/post-content/index.js +3 -0
  101. package/build-module/post-content/index.js.map +1 -1
  102. package/build-module/site-logo/edit.js +1 -1
  103. package/build-module/site-logo/edit.js.map +1 -1
  104. package/build-module/template-part/variations.js +5 -0
  105. package/build-module/template-part/variations.js.map +1 -1
  106. package/build-style/editor-rtl.css +76 -1
  107. package/build-style/editor.css +76 -1
  108. package/build-style/group/editor-rtl.css +44 -0
  109. package/build-style/group/editor.css +44 -0
  110. package/build-style/latest-comments/style-rtl.css +1 -0
  111. package/build-style/latest-comments/style.css +1 -0
  112. package/build-style/latest-posts/style-rtl.css +3 -0
  113. package/build-style/latest-posts/style.css +3 -0
  114. package/build-style/navigation/editor-rtl.css +23 -0
  115. package/build-style/navigation/editor.css +23 -0
  116. package/build-style/navigation/style-rtl.css +10 -0
  117. package/build-style/navigation/style.css +10 -0
  118. package/build-style/navigation-link/editor-rtl.css +8 -1
  119. package/build-style/navigation-link/editor.css +8 -1
  120. package/build-style/query/editor-rtl.css +1 -1
  121. package/build-style/query/editor.css +1 -1
  122. package/build-style/query-pagination/style-rtl.css +1 -1
  123. package/build-style/query-pagination/style.css +1 -1
  124. package/build-style/style-rtl.css +20 -1
  125. package/build-style/style.css +20 -1
  126. package/build-style/table/editor-rtl.css +1 -0
  127. package/build-style/table/editor.css +1 -0
  128. package/build-style/table/style-rtl.css +5 -0
  129. package/build-style/table/style.css +5 -0
  130. package/build-style/table/theme-rtl.css +1 -3
  131. package/build-style/table/theme.css +1 -3
  132. package/build-style/theme-rtl.css +1 -3
  133. package/build-style/theme.css +1 -3
  134. package/package.json +28 -28
  135. package/src/avatar/index.php +1 -1
  136. package/src/block/test/edit.native.js +8 -8
  137. package/src/button/block.json +4 -1
  138. package/src/button/deprecated.js +18 -2
  139. package/src/button/edit.js +11 -9
  140. package/src/button/save.js +12 -2
  141. package/src/buttons/test/edit.native.js +19 -19
  142. package/src/columns/test/edit.native.js +32 -32
  143. package/src/columns/transforms.js +8 -0
  144. package/src/cover/edit/index.js +3 -1
  145. package/src/cover/test/edit.native.js +26 -26
  146. package/src/embed/test/index.native.js +43 -43
  147. package/src/gallery/test/index.native.js +11 -11
  148. package/src/gallery/v1/edit.js +19 -24
  149. package/src/group/block.json +3 -0
  150. package/src/group/edit.js +95 -44
  151. package/src/group/editor.scss +48 -0
  152. package/src/group/placeholder.js +187 -0
  153. package/src/group/test/edit.native.js +3 -3
  154. package/src/group/test/placeholder.js +78 -0
  155. package/src/group/variations.js +3 -3
  156. package/src/image/test/edit.native.js +17 -17
  157. package/src/latest-comments/block.json +5 -1
  158. package/src/latest-comments/edit.js +1 -0
  159. package/src/latest-comments/style.scss +3 -0
  160. package/src/latest-posts/block.json +13 -0
  161. package/src/latest-posts/style.scss +3 -0
  162. package/src/list/test/edit.native.js +36 -36
  163. package/src/list-item/edit.js +1 -0
  164. package/src/missing/test/edit-integration.native.js +5 -5
  165. package/src/navigation/edit/index.js +173 -146
  166. package/src/navigation/edit/manage-menus-button.js +21 -0
  167. package/src/navigation/edit/navigation-menu-selector.js +20 -5
  168. package/src/navigation/edit/responsive-wrapper.js +2 -10
  169. package/src/navigation/edit/unsaved-inner-blocks.js +5 -29
  170. package/src/navigation/editor.scss +25 -0
  171. package/src/navigation/style.scss +16 -0
  172. package/src/navigation-link/edit.js +8 -0
  173. package/src/navigation-link/editor.scss +8 -0
  174. package/src/post-author/edit.js +44 -20
  175. package/src/post-content/block.json +3 -0
  176. package/src/query/editor.scss +1 -1
  177. package/src/query-pagination/style.scss +1 -1
  178. package/src/read-more/index.php +9 -2
  179. package/src/shortcode/test/edit.native.js +5 -5
  180. package/src/site-logo/edit.js +1 -1
  181. package/src/social-link/test/index.native.js +10 -10
  182. package/src/social-links/test/edit.native.js +4 -4
  183. package/src/spacer/test/index.native.js +17 -17
  184. package/src/table/editor.scss +1 -0
  185. package/src/table/style.scss +7 -0
  186. package/src/table/theme.scss +1 -3
  187. package/src/template-part/index.php +5 -0
  188. package/src/template-part/variations.js +4 -0
@@ -9,10 +9,15 @@ import classnames from 'classnames';
9
9
  */
10
10
 
11
11
  import { AlignmentControl, BlockControls, InspectorControls, RichText, useBlockProps } from '@wordpress/block-editor';
12
- import { PanelBody, SelectControl, ToggleControl } from '@wordpress/components';
12
+ import { ComboboxControl, PanelBody, SelectControl, ToggleControl } from '@wordpress/components';
13
13
  import { useSelect, useDispatch } from '@wordpress/data';
14
14
  import { __ } from '@wordpress/i18n';
15
15
  import { store as coreStore } from '@wordpress/core-data';
16
+ const minimumUsersForCombobox = 25;
17
+ const AUTHORS_QUERY = {
18
+ who: 'authors',
19
+ per_page: 100
20
+ };
16
21
 
17
22
  function PostAuthorEdit(_ref) {
18
23
  let {
@@ -44,9 +49,7 @@ function PostAuthorEdit(_ref) {
44
49
  return {
45
50
  authorId: _authorId,
46
51
  authorDetails: _authorId ? getUser(_authorId) : null,
47
- authors: getUsers({
48
- who: 'authors'
49
- })
52
+ authors: getUsers(AUTHORS_QUERY)
50
53
  };
51
54
  }, [postType, postId]);
52
55
  const {
@@ -78,27 +81,38 @@ function PostAuthorEdit(_ref) {
78
81
  [`has-text-align-${textAlign}`]: textAlign
79
82
  })
80
83
  });
84
+ const authorOptions = authors !== null && authors !== void 0 && authors.length ? authors.map(_ref2 => {
85
+ let {
86
+ id,
87
+ name
88
+ } = _ref2;
89
+ return {
90
+ value: id,
91
+ label: name
92
+ };
93
+ }) : [];
94
+
95
+ const handleSelect = nextAuthorId => {
96
+ editEntityRecord('postType', postType, postId, {
97
+ author: nextAuthorId
98
+ });
99
+ };
100
+
101
+ const showCombobox = authorOptions.length >= minimumUsersForCombobox;
81
102
  return createElement(Fragment, null, createElement(InspectorControls, null, createElement(PanelBody, {
82
103
  title: __('Settings')
83
- }, !!postId && !isDescendentOfQueryLoop && !!(authors !== null && authors !== void 0 && authors.length) && createElement(SelectControl, {
104
+ }, !!postId && !isDescendentOfQueryLoop && authorOptions.length && (showCombobox && createElement(ComboboxControl, {
84
105
  label: __('Author'),
106
+ options: authorOptions,
85
107
  value: authorId,
86
- options: authors.map(_ref2 => {
87
- let {
88
- id,
89
- name
90
- } = _ref2;
91
- return {
92
- value: id,
93
- label: name
94
- };
95
- }),
96
- onChange: nextAuthorId => {
97
- editEntityRecord('postType', postType, postId, {
98
- author: nextAuthorId
99
- });
100
- }
101
- }), createElement(ToggleControl, {
108
+ onChange: handleSelect,
109
+ allowReset: false
110
+ }) || createElement(SelectControl, {
111
+ label: __('Author'),
112
+ value: authorId,
113
+ options: authorOptions,
114
+ onChange: handleSelect
115
+ })), createElement(ToggleControl, {
102
116
  label: __('Show avatar'),
103
117
  checked: showAvatar,
104
118
  onChange: () => setAttributes({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-author/edit.js"],"names":["classnames","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","PanelBody","SelectControl","ToggleControl","useSelect","useDispatch","__","store","coreStore","PostAuthorEdit","isSelected","context","postType","postId","queryId","attributes","setAttributes","isDescendentOfQueryLoop","Number","isFinite","authorId","authorDetails","authors","select","getEditedEntityRecord","getUser","getUsers","_authorId","author","who","editEntityRecord","textAlign","showAvatar","showBio","byline","isLink","linkTarget","avatarSizes","authorName","name","Object","keys","avatar_urls","forEach","size","push","value","label","blockProps","className","length","map","id","nextAuthorId","avatarSize","nextAlign","isEmpty","event","preventDefault","__html","description"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, SelectControl, ToggleControl } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst { authorId, authorDetails, authors } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getUsers } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorId: _authorId,\n\t\t\t\tauthorDetails: _authorId ? getUser( _authorId ) : null,\n\t\t\t\tauthors: getUsers( { who: 'authors' } ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst { textAlign, showAvatar, showBio, byline, isLink, linkTarget } =\n\t\tattributes;\n\tconst avatarSizes = [];\n\tconst authorName = authorDetails?.name || __( 'Post Author' );\n\tif ( authorDetails ) {\n\t\tObject.keys( authorDetails.avatar_urls ).forEach( ( size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ !! postId &&\n\t\t\t\t\t\t! isDescendentOfQueryLoop &&\n\t\t\t\t\t\t!! authors?.length && (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Author' ) }\n\t\t\t\t\t\t\t\tvalue={ authorId }\n\t\t\t\t\t\t\t\toptions={ authors.map( ( { id, name } ) => {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\tonChange={ ( nextAuthorId ) => {\n\t\t\t\t\t\t\t\t\teditEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\t\t\tpostId,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tauthor: nextAuthorId,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: ! showAvatar } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t{ showAvatar && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tvalue={ attributes.avatarSize }\n\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\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\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tchecked={ showBio }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ showAvatar && authorDetails && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ attributes.avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails.avatar_urls[\n\t\t\t\t\t\t\t\t\tattributes.avatarSize\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={ authorDetails.name }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\tmultiline={ false }\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline…' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ isLink ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"#post-author-pseudo-link\"\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ authorName }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tauthorName\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__bio\"\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: authorDetails?.description,\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-author/edit.js"],"names":["classnames","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","ComboboxControl","PanelBody","SelectControl","ToggleControl","useSelect","useDispatch","__","store","coreStore","minimumUsersForCombobox","AUTHORS_QUERY","who","per_page","PostAuthorEdit","isSelected","context","postType","postId","queryId","attributes","setAttributes","isDescendentOfQueryLoop","Number","isFinite","authorId","authorDetails","authors","select","getEditedEntityRecord","getUser","getUsers","_authorId","author","editEntityRecord","textAlign","showAvatar","showBio","byline","isLink","linkTarget","avatarSizes","authorName","name","Object","keys","avatar_urls","forEach","size","push","value","label","blockProps","className","authorOptions","length","map","id","handleSelect","nextAuthorId","showCombobox","avatarSize","nextAlign","isEmpty","event","preventDefault","__html","description"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tComboboxControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst minimumUsersForCombobox = 25;\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n};\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst { authorId, authorDetails, authors } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getUsers } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorId: _authorId,\n\t\t\t\tauthorDetails: _authorId ? getUser( _authorId ) : null,\n\t\t\t\tauthors: getUsers( AUTHORS_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst { textAlign, showAvatar, showBio, byline, isLink, linkTarget } =\n\t\tattributes;\n\tconst avatarSizes = [];\n\tconst authorName = authorDetails?.name || __( 'Post Author' );\n\tif ( authorDetails ) {\n\t\tObject.keys( authorDetails.avatar_urls ).forEach( ( size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst authorOptions = authors?.length\n\t\t? authors.map( ( { id, name } ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel: name,\n\t\t\t\t};\n\t\t } )\n\t\t: [];\n\n\tconst handleSelect = ( nextAuthorId ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tauthor: nextAuthorId,\n\t\t} );\n\t};\n\n\tconst showCombobox = authorOptions.length >= minimumUsersForCombobox;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ !! postId &&\n\t\t\t\t\t\t! isDescendentOfQueryLoop &&\n\t\t\t\t\t\tauthorOptions.length &&\n\t\t\t\t\t\t( ( showCombobox && (\n\t\t\t\t\t\t\t<ComboboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Author' ) }\n\t\t\t\t\t\t\t\toptions={ authorOptions }\n\t\t\t\t\t\t\t\tvalue={ authorId }\n\t\t\t\t\t\t\t\tonChange={ handleSelect }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) || (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Author' ) }\n\t\t\t\t\t\t\t\tvalue={ authorId }\n\t\t\t\t\t\t\t\toptions={ authorOptions }\n\t\t\t\t\t\t\t\tonChange={ handleSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: ! showAvatar } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t{ showAvatar && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tvalue={ attributes.avatarSize }\n\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\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\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tchecked={ showBio }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ showAvatar && authorDetails && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ attributes.avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails.avatar_urls[\n\t\t\t\t\t\t\t\t\tattributes.avatarSize\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={ authorDetails.name }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\tmultiline={ false }\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline…' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ isLink ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"#post-author-pseudo-link\"\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ authorName }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tauthorName\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__bio\"\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: authorDetails?.description,\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n"]}
@@ -20,6 +20,9 @@ const metadata = {
20
20
  align: ["wide", "full"],
21
21
  html: false,
22
22
  __experimentalLayout: true,
23
+ dimensions: {
24
+ minHeight: true
25
+ },
23
26
  typography: {
24
27
  fontSize: true,
25
28
  lineHeight: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-content/index.js"],"names":["postContent","icon","initBlock","edit","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,IAAxB,QAAoC,kBAApC;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBL,EAAAA,IADuB;AAEvBE,EAAAA;AAFuB,CAAjB;AAKP,OAAO,MAAMI,IAAI,GAAG,MAAML,SAAS,CAAE;AAAEE,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postContent as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-content/index.js"],"names":["postContent","icon","initBlock","edit","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,IAAxB,QAAoC,kBAApC;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBL,EAAAA,IADuB;AAEvBE,EAAAA;AAFuB,CAAjB;AAKP,OAAO,MAAMI,IAAI,GAAG,MAAML,SAAS,CAAE;AAAEE,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postContent as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -338,7 +338,7 @@ export default function LogoEdit(_ref2) {
338
338
  return {
339
339
  siteLogoId: _siteLogoId,
340
340
  canUserEdit: _canUserEdit,
341
- url: siteData === null || siteData === void 0 ? void 0 : siteData.url,
341
+ url: siteData === null || siteData === void 0 ? void 0 : siteData.home,
342
342
  mediaItemData: mediaItem,
343
343
  isRequestingMediaItem: _isRequestingMediaItem,
344
344
  siteIconId: _siteIconId
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/site-logo/edit.js"],"names":["classnames","pick","isBlobURL","createInterpolateElement","useEffect","useState","useRef","__","isRTL","MenuItem","PanelBody","RangeControl","ResizableBox","Spinner","ToggleControl","ToolbarButton","Placeholder","Button","useViewportMatch","BlockControls","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","__experimentalImageEditor","ImageEditor","__experimentalImageEditingProvider","ImageEditingProvider","useSelect","useDispatch","coreStore","crop","upload","noticesStore","useClientWidth","MIN_SIZE","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","containerRef","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","clientWidth","isLargeViewport","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","classes","imageEditing","maxWidth","title","select","getSettings","siteEntities","getEntityRecord","name","onResizeStart","onResizeStop","img","event","target","imgWrapper","preventDefault","imageWidthWithinContainer","exceedMaxWidth","defaultWidth","currentWidth","ratio","currentHeight","minWidth","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","imageAttributes","id","top","right","bottom","left","direction","elt","delta","parseInt","syncSiteIconHelpText","a","newWidth","min","value","undefined","LogoEdit","className","ref","siteLogoId","url","siteIconId","mediaItemData","isRequestingMediaItem","canUser","getEditedEntityRecord","_canUserEdit","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","editEntityRecord","newValue","shouldForceSync","alt_text","source_url","onInitialSelectLogo","media","onSelectLogo","onRemoveLogo","createErrorNotice","onUploadError","message","type","controls","logoImage","isLoading","placeholder","content","placeholderClassName","blockProps","label","open"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tMenuItem,\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalImageEditingProvider as ImageEditingProvider,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { crop, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport useClientWidth from '../image/use-client-width';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE } from '../image/constants';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = 'image/*';\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tcontainerRef,\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst classes = classnames( 'custom-logo-link', {\n\t\t'is-transient': isBlobURL( logoUrl ),\n\t} );\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst siteEntities = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'__unstableBase'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities?.name,\n\t\t\t...pick( getSettings(), [ 'imageEditing', 'maxWidth' ] ),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Turn the `Use as site icon` toggle off if it is on but the logo and icon have\n\t\t// fallen out of sync. This can happen if the toggle is saved in the `on` position,\n\t\t// but changes are later made to the site icon in the Customizer.\n\t\tif ( shouldSyncIcon && logoId !== iconId ) {\n\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tconst img = (\n\t\t<img\n\t\t\tclassName=\"custom-logo\"\n\t\t\tsrc={ logoUrl }\n\t\t\talt={ alt }\n\t\t\tonLoad={ ( event ) => {\n\t\t\t\tsetNaturalSize(\n\t\t\t\t\tpick( event.target, [ 'naturalWidth', 'naturalHeight' ] )\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n\n\tlet imgWrapper = img;\n\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName={ classes }\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\t}\n\n\tlet imageWidthWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t}\n\n\tif ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\n\t\t\t<ImageEditingProvider\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tisEditing={ isEditingImage }\n\t\t\t\tonFinishEditing={ () => setIsEditingImage( false ) }\n\t\t\t>\n\t\t\t\t<ImageEditor\n\t\t\t\t\turl={ logoUrl }\n\t\t\t\t\twidth={ currentWidth }\n\t\t\t\t\theight={ currentHeight }\n\t\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t/>\n\t\t\t</ImageEditingProvider>\n\t\t) : (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\theight: currentHeight,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ imgWrapper }\n\t\t\t</ResizableBox>\n\t\t);\n\n\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={\n\t\t\t\t\t\tsiteUrl +\n\t\t\t\t\t\t'/wp-admin/customize.php?autofocus[section]=title_tagline'\n\t\t\t\t\t}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Use as site icon' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: value } );\n\t\t\t\t\t\t\t\t\tsetIcon( value ? logoId : undefined );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchecked={ !! shouldSyncIcon }\n\t\t\t\t\t\t\t\thelp={ syncSiteIconHelpText }\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\n\tconst ref = useRef();\n\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', 'settings' );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t_siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.url,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t};\n\t}, [] );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst controls = canUserEdit && logoUrl && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaURL={ logoUrl }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\tonSelect={ onSelectLogo }\n\t\t\t\tonError={ onUploadError }\n\t\t\t>\n\t\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t\t</MediaReplaceFlow>\n\t\t</BlockControls>\n\t);\n\n\tlet logoImage;\n\tconst isLoading = siteLogoId === undefined || isRequestingMediaItem;\n\tif ( isLoading ) {\n\t\tlogoImage = <Spinner />;\n\t}\n\tif ( !! logoUrl ) {\n\t\tlogoImage = (\n\t\t\t<SiteLogo\n\t\t\t\talt={ alt }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tclassName={ className }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tlogoUrl={ logoUrl }\n\t\t\t\tsetLogo={ setLogo }\n\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\tsiteUrl={ url }\n\t\t\t\tsetIcon={ setIcon }\n\t\t\t\ticonId={ siteIconId }\n\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t/>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration={ true }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = classnames( className, {\n\t\t'is-default-size': ! width,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\tconst label = __( 'Add a site logo' );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ !! logoUrl && logoImage }\n\t\t\t{ ! logoUrl && ! canUserEdit && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\">\n\t\t\t\t\t{ !! isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\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</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/site-logo/edit.js"],"names":["classnames","pick","isBlobURL","createInterpolateElement","useEffect","useState","useRef","__","isRTL","MenuItem","PanelBody","RangeControl","ResizableBox","Spinner","ToggleControl","ToolbarButton","Placeholder","Button","useViewportMatch","BlockControls","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","__experimentalImageEditor","ImageEditor","__experimentalImageEditingProvider","ImageEditingProvider","useSelect","useDispatch","coreStore","crop","upload","noticesStore","useClientWidth","MIN_SIZE","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","containerRef","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","clientWidth","isLargeViewport","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","classes","imageEditing","maxWidth","title","select","getSettings","siteEntities","getEntityRecord","name","onResizeStart","onResizeStop","img","event","target","imgWrapper","preventDefault","imageWidthWithinContainer","exceedMaxWidth","defaultWidth","currentWidth","ratio","currentHeight","minWidth","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","imageAttributes","id","top","right","bottom","left","direction","elt","delta","parseInt","syncSiteIconHelpText","a","newWidth","min","value","undefined","LogoEdit","className","ref","siteLogoId","url","siteIconId","mediaItemData","isRequestingMediaItem","canUser","getEditedEntityRecord","_canUserEdit","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","editEntityRecord","newValue","shouldForceSync","alt_text","source_url","onInitialSelectLogo","media","onSelectLogo","onRemoveLogo","createErrorNotice","onUploadError","message","type","controls","logoImage","isLoading","placeholder","content","placeholderClassName","blockProps","label","open"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tMenuItem,\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalImageEditingProvider as ImageEditingProvider,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { crop, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport useClientWidth from '../image/use-client-width';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE } from '../image/constants';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = 'image/*';\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tcontainerRef,\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst classes = classnames( 'custom-logo-link', {\n\t\t'is-transient': isBlobURL( logoUrl ),\n\t} );\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst siteEntities = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'__unstableBase'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities?.name,\n\t\t\t...pick( getSettings(), [ 'imageEditing', 'maxWidth' ] ),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Turn the `Use as site icon` toggle off if it is on but the logo and icon have\n\t\t// fallen out of sync. This can happen if the toggle is saved in the `on` position,\n\t\t// but changes are later made to the site icon in the Customizer.\n\t\tif ( shouldSyncIcon && logoId !== iconId ) {\n\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tconst img = (\n\t\t<img\n\t\t\tclassName=\"custom-logo\"\n\t\t\tsrc={ logoUrl }\n\t\t\talt={ alt }\n\t\t\tonLoad={ ( event ) => {\n\t\t\t\tsetNaturalSize(\n\t\t\t\t\tpick( event.target, [ 'naturalWidth', 'naturalHeight' ] )\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n\n\tlet imgWrapper = img;\n\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName={ classes }\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\t}\n\n\tlet imageWidthWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t}\n\n\tif ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\n\t\t\t<ImageEditingProvider\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tisEditing={ isEditingImage }\n\t\t\t\tonFinishEditing={ () => setIsEditingImage( false ) }\n\t\t\t>\n\t\t\t\t<ImageEditor\n\t\t\t\t\turl={ logoUrl }\n\t\t\t\t\twidth={ currentWidth }\n\t\t\t\t\theight={ currentHeight }\n\t\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t/>\n\t\t\t</ImageEditingProvider>\n\t\t) : (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\theight: currentHeight,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ imgWrapper }\n\t\t\t</ResizableBox>\n\t\t);\n\n\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={\n\t\t\t\t\t\tsiteUrl +\n\t\t\t\t\t\t'/wp-admin/customize.php?autofocus[section]=title_tagline'\n\t\t\t\t\t}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Use as site icon' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: value } );\n\t\t\t\t\t\t\t\t\tsetIcon( value ? logoId : undefined );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchecked={ !! shouldSyncIcon }\n\t\t\t\t\t\t\t\thelp={ syncSiteIconHelpText }\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\n\tconst ref = useRef();\n\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', 'settings' );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t_siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.home,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t};\n\t}, [] );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst controls = canUserEdit && logoUrl && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaURL={ logoUrl }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\tonSelect={ onSelectLogo }\n\t\t\t\tonError={ onUploadError }\n\t\t\t>\n\t\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t\t</MediaReplaceFlow>\n\t\t</BlockControls>\n\t);\n\n\tlet logoImage;\n\tconst isLoading = siteLogoId === undefined || isRequestingMediaItem;\n\tif ( isLoading ) {\n\t\tlogoImage = <Spinner />;\n\t}\n\tif ( !! logoUrl ) {\n\t\tlogoImage = (\n\t\t\t<SiteLogo\n\t\t\t\talt={ alt }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tclassName={ className }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tlogoUrl={ logoUrl }\n\t\t\t\tsetLogo={ setLogo }\n\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\tsiteUrl={ url }\n\t\t\t\tsetIcon={ setIcon }\n\t\t\t\ticonId={ siteIconId }\n\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t/>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration={ true }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = classnames( className, {\n\t\t'is-default-size': ! width,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\tconst label = __( 'Add a site logo' );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ !! logoUrl && logoImage }\n\t\t\t{ ! logoUrl && ! canUserEdit && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\">\n\t\t\t\t\t{ !! isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\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</div>\n\t);\n}\n"]}
@@ -36,6 +36,11 @@ export function enhanceTemplatePartVariations(settings, name) {
36
36
 
37
37
  if (!slug) return false;
38
38
  const entity = select(coreDataStore).getEntityRecord('postType', 'wp_template_part', `${theme}//${slug}`);
39
+
40
+ if (entity !== null && entity !== void 0 && entity.slug) {
41
+ return entity.slug === variationAttributes.slug;
42
+ }
43
+
39
44
  return (entity === null || entity === void 0 ? void 0 : entity.area) === variationAttributes.area;
40
45
  };
41
46
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/template-part/variations.js"],"names":["store","coreDataStore","select","header","headerIcon","footer","footerIcon","sidebar","sidebarIcon","symbolFilled","symbolFilledIcon","getTemplatePartIcon","iconName","enhanceTemplatePartVariations","settings","name","variations","isActive","blockAttributes","variationAttributes","area","theme","slug","entity","getEntityRecord","map","variation","icon"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,aAAlB,QAAuC,sBAAvC;AACA,SAASC,MAAT,QAAuB,iBAAvB;AACA,SACCC,MAAM,IAAIC,UADX,EAECC,MAAM,IAAIC,UAFX,EAGCC,OAAO,IAAIC,WAHZ,EAICC,YAAY,IAAIC,gBAJjB,QAKO,kBALP;;AAOA,SAASC,mBAAT,CAA8BC,QAA9B,EAAyC;AACxC,MAAK,aAAaA,QAAlB,EAA6B;AAC5B,WAAOR,UAAP;AACA,GAFD,MAEO,IAAK,aAAaQ,QAAlB,EAA6B;AACnC,WAAON,UAAP;AACA,GAFM,MAEA,IAAK,cAAcM,QAAnB,EAA8B;AACpC,WAAOJ,WAAP;AACA;;AACD,SAAOE,gBAAP;AACA;;AAED,OAAO,SAASG,6BAAT,CAAwCC,QAAxC,EAAkDC,IAAlD,EAAyD;AAC/D,MAAKA,IAAI,KAAK,oBAAd,EAAqC;AACpC,WAAOD,QAAP;AACA;;AAED,MAAKA,QAAQ,CAACE,UAAd,EAA2B;AAC1B,UAAMC,QAAQ,GAAG,CAAEC,eAAF,EAAmBC,mBAAnB,KAA4C;AAC5D,YAAM;AAAEC,QAAAA,IAAF;AAAQC,QAAAA,KAAR;AAAeC,QAAAA;AAAf,UAAwBJ,eAA9B,CAD4D,CAE5D;AACA;;AACA,UAAKE,IAAL,EAAY,OAAOA,IAAI,KAAKD,mBAAmB,CAACC,IAApC,CAJgD,CAK5D;AACA;;AACA,UAAK,CAAEE,IAAP,EAAc,OAAO,KAAP;AACd,YAAMC,MAAM,GAAGrB,MAAM,CAAED,aAAF,CAAN,CAAwBuB,eAAxB,CACd,UADc,EAEd,kBAFc,EAGb,GAAGH,KAAO,KAAKC,IAAM,EAHR,CAAf;AAKA,aAAO,CAAAC,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEH,IAAR,MAAiBD,mBAAmB,CAACC,IAA5C;AACA,KAdD;;AAgBA,UAAMJ,UAAU,GAAGF,QAAQ,CAACE,UAAT,CAAoBS,GAApB,CAA2BC,SAAF,IAAiB;AAC5D,aAAO,EACN,GAAGA,SADG;AAEN,YAAK,CAAEA,SAAS,CAACT,QAAZ,IAAwB;AAAEA,UAAAA;AAAF,SAA7B,CAFM;AAGN,YAAK,OAAOS,SAAS,CAACC,IAAjB,KAA0B,QAA1B,IAAsC;AAC1CA,UAAAA,IAAI,EAAEhB,mBAAmB,CAAEe,SAAS,CAACC,IAAZ;AADiB,SAA3C;AAHM,OAAP;AAOA,KARkB,CAAnB;AAUA,WAAO,EACN,GAAGb,QADG;AAENE,MAAAA;AAFM,KAAP;AAIA;;AACD,SAAOF,QAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n\nfunction getTemplatePartIcon( iconName ) {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n}\n\nexport function enhanceTemplatePartVariations( settings, name ) {\n\tif ( name !== 'core/template-part' ) {\n\t\treturn settings;\n\t}\n\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\tconst { area, theme, slug } = blockAttributes;\n\t\t\t// We first check the `area` block attribute which is set during insertion.\n\t\t\t// This property is removed on the creation of a template part.\n\t\t\tif ( area ) return area === variationAttributes.area;\n\t\t\t// Find a matching variation from the created template part\n\t\t\t// by checking the entity's `area` property.\n\t\t\tif ( ! slug ) return false;\n\t\t\tconst entity = select( coreDataStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t`${ theme }//${ slug }`\n\t\t\t);\n\t\t\treturn entity?.area === variationAttributes.area;\n\t\t};\n\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.isActive && { isActive } ),\n\t\t\t\t...( typeof variation.icon === 'string' && {\n\t\t\t\t\ticon: getTemplatePartIcon( variation.icon ),\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/template-part/variations.js"],"names":["store","coreDataStore","select","header","headerIcon","footer","footerIcon","sidebar","sidebarIcon","symbolFilled","symbolFilledIcon","getTemplatePartIcon","iconName","enhanceTemplatePartVariations","settings","name","variations","isActive","blockAttributes","variationAttributes","area","theme","slug","entity","getEntityRecord","map","variation","icon"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,aAAlB,QAAuC,sBAAvC;AACA,SAASC,MAAT,QAAuB,iBAAvB;AACA,SACCC,MAAM,IAAIC,UADX,EAECC,MAAM,IAAIC,UAFX,EAGCC,OAAO,IAAIC,WAHZ,EAICC,YAAY,IAAIC,gBAJjB,QAKO,kBALP;;AAOA,SAASC,mBAAT,CAA8BC,QAA9B,EAAyC;AACxC,MAAK,aAAaA,QAAlB,EAA6B;AAC5B,WAAOR,UAAP;AACA,GAFD,MAEO,IAAK,aAAaQ,QAAlB,EAA6B;AACnC,WAAON,UAAP;AACA,GAFM,MAEA,IAAK,cAAcM,QAAnB,EAA8B;AACpC,WAAOJ,WAAP;AACA;;AACD,SAAOE,gBAAP;AACA;;AAED,OAAO,SAASG,6BAAT,CAAwCC,QAAxC,EAAkDC,IAAlD,EAAyD;AAC/D,MAAKA,IAAI,KAAK,oBAAd,EAAqC;AACpC,WAAOD,QAAP;AACA;;AAED,MAAKA,QAAQ,CAACE,UAAd,EAA2B;AAC1B,UAAMC,QAAQ,GAAG,CAAEC,eAAF,EAAmBC,mBAAnB,KAA4C;AAC5D,YAAM;AAAEC,QAAAA,IAAF;AAAQC,QAAAA,KAAR;AAAeC,QAAAA;AAAf,UAAwBJ,eAA9B,CAD4D,CAE5D;AACA;;AACA,UAAKE,IAAL,EAAY,OAAOA,IAAI,KAAKD,mBAAmB,CAACC,IAApC,CAJgD,CAK5D;AACA;;AACA,UAAK,CAAEE,IAAP,EAAc,OAAO,KAAP;AACd,YAAMC,MAAM,GAAGrB,MAAM,CAAED,aAAF,CAAN,CAAwBuB,eAAxB,CACd,UADc,EAEd,kBAFc,EAGb,GAAGH,KAAO,KAAKC,IAAM,EAHR,CAAf;;AAMA,UAAKC,MAAL,aAAKA,MAAL,eAAKA,MAAM,CAAED,IAAb,EAAoB;AACnB,eAAOC,MAAM,CAACD,IAAP,KAAgBH,mBAAmB,CAACG,IAA3C;AACA;;AACD,aAAO,CAAAC,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEH,IAAR,MAAiBD,mBAAmB,CAACC,IAA5C;AACA,KAlBD;;AAoBA,UAAMJ,UAAU,GAAGF,QAAQ,CAACE,UAAT,CAAoBS,GAApB,CAA2BC,SAAF,IAAiB;AAC5D,aAAO,EACN,GAAGA,SADG;AAEN,YAAK,CAAEA,SAAS,CAACT,QAAZ,IAAwB;AAAEA,UAAAA;AAAF,SAA7B,CAFM;AAGN,YAAK,OAAOS,SAAS,CAACC,IAAjB,KAA0B,QAA1B,IAAsC;AAC1CA,UAAAA,IAAI,EAAEhB,mBAAmB,CAAEe,SAAS,CAACC,IAAZ;AADiB,SAA3C;AAHM,OAAP;AAOA,KARkB,CAAnB;AAUA,WAAO,EACN,GAAGb,QADG;AAENE,MAAAA;AAFM,KAAP;AAIA;;AACD,SAAOF,QAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n\nfunction getTemplatePartIcon( iconName ) {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n}\n\nexport function enhanceTemplatePartVariations( settings, name ) {\n\tif ( name !== 'core/template-part' ) {\n\t\treturn settings;\n\t}\n\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\tconst { area, theme, slug } = blockAttributes;\n\t\t\t// We first check the `area` block attribute which is set during insertion.\n\t\t\t// This property is removed on the creation of a template part.\n\t\t\tif ( area ) return area === variationAttributes.area;\n\t\t\t// Find a matching variation from the created template part\n\t\t\t// by checking the entity's `area` property.\n\t\t\tif ( ! slug ) return false;\n\t\t\tconst entity = select( coreDataStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t`${ theme }//${ slug }`\n\t\t\t);\n\n\t\t\tif ( entity?.slug ) {\n\t\t\t\treturn entity.slug === variationAttributes.slug;\n\t\t\t}\n\t\t\treturn entity?.area === variationAttributes.area;\n\t\t};\n\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.isActive && { isActive } ),\n\t\t\t\t...( typeof variation.icon === 'string' && {\n\t\t\t\t\ticon: getTemplatePartIcon( variation.icon ),\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n"]}
@@ -1127,6 +1127,50 @@ figure.wp-block-gallery .components-spinner {
1127
1127
  pointer-events: all;
1128
1128
  }
1129
1129
 
1130
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations {
1131
+ list-style: none;
1132
+ display: flex;
1133
+ justify-content: center;
1134
+ flex-direction: row;
1135
+ flex-wrap: wrap;
1136
+ width: 100%;
1137
+ padding: 0;
1138
+ margin: 0;
1139
+ }
1140
+ .wp-block-group__placeholder .components-placeholder__instructions {
1141
+ text-align: center;
1142
+ margin-bottom: 18px;
1143
+ }
1144
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations svg {
1145
+ fill: #ccc !important;
1146
+ }
1147
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations svg:hover {
1148
+ fill: var(--wp-admin-theme-color) !important;
1149
+ }
1150
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations > li {
1151
+ margin: 0 12px 12px 12px;
1152
+ width: auto;
1153
+ display: flex;
1154
+ flex-direction: column;
1155
+ align-items: center;
1156
+ }
1157
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations li > .wp-block-group-placeholder__variation-button {
1158
+ width: 44px;
1159
+ height: 32px;
1160
+ padding: 0;
1161
+ }
1162
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations li > .wp-block-group-placeholder__variation-button:hover {
1163
+ box-shadow: none;
1164
+ }
1165
+ .wp-block-group__placeholder .components-placeholder {
1166
+ min-height: auto;
1167
+ padding: 24px;
1168
+ }
1169
+ .wp-block-group__placeholder .is-small .wp-block-group-placeholder__variations > li,
1170
+ .wp-block-group__placeholder .is-medium .wp-block-group-placeholder__variations > li {
1171
+ margin: 12px;
1172
+ }
1173
+
1130
1174
  .block-library-html__edit .block-library-html__preview-overlay {
1131
1175
  position: absolute;
1132
1176
  width: 100%;
@@ -1806,6 +1850,14 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1806
1850
  color: inherit;
1807
1851
  }
1808
1852
 
1853
+ .components-heading.wp-block-navigation-off-canvas-editor__title {
1854
+ margin: 0;
1855
+ }
1856
+
1857
+ .wp-block-navigation-off-canvas-editor__header {
1858
+ margin-bottom: 8px;
1859
+ }
1860
+
1809
1861
  .is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender {
1810
1862
  margin-top: 16px;
1811
1863
  }
@@ -1840,6 +1892,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1840
1892
  margin-bottom: 16px;
1841
1893
  }
1842
1894
 
1895
+ .components-button.is-link.wp-block-navigation-manage-menus-button {
1896
+ margin-bottom: 16px;
1897
+ }
1898
+
1843
1899
  .wp-block-navigation__overlay-menu-preview {
1844
1900
  display: flex;
1845
1901
  align-items: center;
@@ -1878,6 +1934,17 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1878
1934
  width: 100%;
1879
1935
  }
1880
1936
 
1937
+ .wp-block-navigation__navigation-selector-button__icon {
1938
+ flex: 0 0 auto;
1939
+ }
1940
+
1941
+ .wp-block-navigation__navigation-selector-button__label {
1942
+ flex: 0 1 auto;
1943
+ overflow: hidden;
1944
+ text-overflow: ellipsis;
1945
+ white-space: nowrap;
1946
+ }
1947
+
1881
1948
  .wp-block-navigation__navigation-selector-button--createnew {
1882
1949
  border: 1px solid;
1883
1950
  margin-bottom: 16px;
@@ -1888,6 +1955,13 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1888
1955
  opacity: 1;
1889
1956
  }
1890
1957
 
1958
+ /**
1959
+ * Appender
1960
+ */
1961
+ .wp-block-navigation .block-list-appender {
1962
+ position: relative;
1963
+ }
1964
+
1891
1965
  /**
1892
1966
  * Submenus.
1893
1967
  */
@@ -2476,6 +2550,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
2476
2550
  .wp-block-table td,
2477
2551
  .wp-block-table th {
2478
2552
  border: 1px solid;
2553
+ padding: 0.5em;
2479
2554
  }
2480
2555
  .wp-block-table td.is-selected,
2481
2556
  .wp-block-table th.is-selected {
@@ -2691,7 +2766,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
2691
2766
  }
2692
2767
 
2693
2768
  .wp-block-query__create-new-link {
2694
- padding: 0 56px 16px 16px;
2769
+ padding: 0 52px 16px 16px;
2695
2770
  }
2696
2771
 
2697
2772
  .block-library-query__pattern-selection-content .block-editor-block-patterns-list {
@@ -1135,6 +1135,50 @@ figure.wp-block-gallery .components-spinner {
1135
1135
  pointer-events: all;
1136
1136
  }
1137
1137
 
1138
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations {
1139
+ list-style: none;
1140
+ display: flex;
1141
+ justify-content: center;
1142
+ flex-direction: row;
1143
+ flex-wrap: wrap;
1144
+ width: 100%;
1145
+ padding: 0;
1146
+ margin: 0;
1147
+ }
1148
+ .wp-block-group__placeholder .components-placeholder__instructions {
1149
+ text-align: center;
1150
+ margin-bottom: 18px;
1151
+ }
1152
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations svg {
1153
+ fill: #ccc !important;
1154
+ }
1155
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations svg:hover {
1156
+ fill: var(--wp-admin-theme-color) !important;
1157
+ }
1158
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations > li {
1159
+ margin: 0 12px 12px 12px;
1160
+ width: auto;
1161
+ display: flex;
1162
+ flex-direction: column;
1163
+ align-items: center;
1164
+ }
1165
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations li > .wp-block-group-placeholder__variation-button {
1166
+ width: 44px;
1167
+ height: 32px;
1168
+ padding: 0;
1169
+ }
1170
+ .wp-block-group__placeholder .wp-block-group-placeholder__variations li > .wp-block-group-placeholder__variation-button:hover {
1171
+ box-shadow: none;
1172
+ }
1173
+ .wp-block-group__placeholder .components-placeholder {
1174
+ min-height: auto;
1175
+ padding: 24px;
1176
+ }
1177
+ .wp-block-group__placeholder .is-small .wp-block-group-placeholder__variations > li,
1178
+ .wp-block-group__placeholder .is-medium .wp-block-group-placeholder__variations > li {
1179
+ margin: 12px;
1180
+ }
1181
+
1138
1182
  .block-library-html__edit .block-library-html__preview-overlay {
1139
1183
  position: absolute;
1140
1184
  width: 100%;
@@ -1814,6 +1858,14 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1814
1858
  color: inherit;
1815
1859
  }
1816
1860
 
1861
+ .components-heading.wp-block-navigation-off-canvas-editor__title {
1862
+ margin: 0;
1863
+ }
1864
+
1865
+ .wp-block-navigation-off-canvas-editor__header {
1866
+ margin-bottom: 8px;
1867
+ }
1868
+
1817
1869
  .is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender {
1818
1870
  margin-top: 16px;
1819
1871
  }
@@ -1848,6 +1900,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1848
1900
  margin-bottom: 16px;
1849
1901
  }
1850
1902
 
1903
+ .components-button.is-link.wp-block-navigation-manage-menus-button {
1904
+ margin-bottom: 16px;
1905
+ }
1906
+
1851
1907
  .wp-block-navigation__overlay-menu-preview {
1852
1908
  display: flex;
1853
1909
  align-items: center;
@@ -1886,6 +1942,17 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1886
1942
  width: 100%;
1887
1943
  }
1888
1944
 
1945
+ .wp-block-navigation__navigation-selector-button__icon {
1946
+ flex: 0 0 auto;
1947
+ }
1948
+
1949
+ .wp-block-navigation__navigation-selector-button__label {
1950
+ flex: 0 1 auto;
1951
+ overflow: hidden;
1952
+ text-overflow: ellipsis;
1953
+ white-space: nowrap;
1954
+ }
1955
+
1889
1956
  .wp-block-navigation__navigation-selector-button--createnew {
1890
1957
  border: 1px solid;
1891
1958
  margin-bottom: 16px;
@@ -1896,6 +1963,13 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
1896
1963
  opacity: 1;
1897
1964
  }
1898
1965
 
1966
+ /**
1967
+ * Appender
1968
+ */
1969
+ .wp-block-navigation .block-list-appender {
1970
+ position: relative;
1971
+ }
1972
+
1899
1973
  /**
1900
1974
  * Submenus.
1901
1975
  */
@@ -2484,6 +2558,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
2484
2558
  .wp-block-table td,
2485
2559
  .wp-block-table th {
2486
2560
  border: 1px solid;
2561
+ padding: 0.5em;
2487
2562
  }
2488
2563
  .wp-block-table td.is-selected,
2489
2564
  .wp-block-table th.is-selected {
@@ -2699,7 +2774,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
2699
2774
  }
2700
2775
 
2701
2776
  .wp-block-query__create-new-link {
2702
- padding: 0 16px 16px 56px;
2777
+ padding: 0 16px 16px 52px;
2703
2778
  }
2704
2779
 
2705
2780
  .block-library-query__pattern-selection-content .block-editor-block-patterns-list {