@wordpress/block-library 9.26.0 → 9.27.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 (174) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/button/edit.js +1 -1
  3. package/build/button/edit.js.map +1 -1
  4. package/build/cover/edit/block-controls.js +4 -2
  5. package/build/cover/edit/block-controls.js.map +1 -1
  6. package/build/cover/edit/index.js +6 -3
  7. package/build/cover/edit/index.js.map +1 -1
  8. package/build/cover/edit/inspector-controls.js +11 -4
  9. package/build/cover/edit/inspector-controls.js.map +1 -1
  10. package/build/cover/edit/poster-image.js +81 -0
  11. package/build/cover/edit/poster-image.js.map +1 -0
  12. package/build/cover/index.js +6 -0
  13. package/build/cover/index.js.map +1 -1
  14. package/build/cover/save.js +3 -1
  15. package/build/cover/save.js.map +1 -1
  16. package/build/details/index.js +1 -1
  17. package/build/details/index.js.map +1 -1
  18. package/build/gallery/constants.js +2 -1
  19. package/build/gallery/constants.js.map +1 -1
  20. package/build/gallery/edit.js +93 -15
  21. package/build/gallery/edit.js.map +1 -1
  22. package/build/image/edit.js +6 -0
  23. package/build/image/edit.js.map +1 -1
  24. package/build/list/index.js +0 -1
  25. package/build/list/index.js.map +1 -1
  26. package/build/media-text/edit.js +2 -2
  27. package/build/media-text/edit.js.map +1 -1
  28. package/build/more/edit.native.js +17 -32
  29. package/build/more/edit.native.js.map +1 -1
  30. package/build/navigation-link/edit.js +49 -16
  31. package/build/navigation-link/edit.js.map +1 -1
  32. package/build/navigation-link/update-attributes.js +112 -14
  33. package/build/navigation-link/update-attributes.js.map +1 -1
  34. package/build/navigation-submenu/edit.js +19 -2
  35. package/build/navigation-submenu/edit.js.map +1 -1
  36. package/build/post-author/edit.js +78 -35
  37. package/build/post-author/edit.js.map +1 -1
  38. package/build/post-comments-form/form.js +1 -1
  39. package/build/post-comments-form/form.js.map +1 -1
  40. package/build/post-content/edit.js +78 -16
  41. package/build/post-content/edit.js.map +1 -1
  42. package/build/post-content/index.js +6 -0
  43. package/build/post-content/index.js.map +1 -1
  44. package/build/post-featured-image/edit.js +2 -1
  45. package/build/post-featured-image/edit.js.map +1 -1
  46. package/build/search/edit.js +1 -1
  47. package/build/search/edit.js.map +1 -1
  48. package/build/separator/edit.js +5 -30
  49. package/build/separator/edit.js.map +1 -1
  50. package/build/site-logo/edit.js +16 -5
  51. package/build/site-logo/edit.js.map +1 -1
  52. package/build/site-tagline/index.js +1 -1
  53. package/build/video/edit.js +2 -5
  54. package/build/video/edit.js.map +1 -1
  55. package/build/video/poster-image.js +25 -25
  56. package/build/video/poster-image.js.map +1 -1
  57. package/build/video/tracks-editor.js +95 -104
  58. package/build/video/tracks-editor.js.map +1 -1
  59. package/build/video/tracks.js +6 -2
  60. package/build/video/tracks.js.map +1 -1
  61. package/build-module/button/edit.js +1 -1
  62. package/build-module/button/edit.js.map +1 -1
  63. package/build-module/cover/edit/block-controls.js +4 -2
  64. package/build-module/cover/edit/block-controls.js.map +1 -1
  65. package/build-module/cover/edit/index.js +6 -3
  66. package/build-module/cover/edit/index.js.map +1 -1
  67. package/build-module/cover/edit/inspector-controls.js +10 -4
  68. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  69. package/build-module/cover/edit/poster-image.js +74 -0
  70. package/build-module/cover/edit/poster-image.js.map +1 -0
  71. package/build-module/cover/index.js +6 -0
  72. package/build-module/cover/index.js.map +1 -1
  73. package/build-module/cover/save.js +3 -1
  74. package/build-module/cover/save.js.map +1 -1
  75. package/build-module/details/index.js +1 -1
  76. package/build-module/details/index.js.map +1 -1
  77. package/build-module/gallery/constants.js +1 -0
  78. package/build-module/gallery/constants.js.map +1 -1
  79. package/build-module/gallery/edit.js +95 -17
  80. package/build-module/gallery/edit.js.map +1 -1
  81. package/build-module/image/edit.js +6 -0
  82. package/build-module/image/edit.js.map +1 -1
  83. package/build-module/list/index.js +0 -1
  84. package/build-module/list/index.js.map +1 -1
  85. package/build-module/media-text/edit.js +2 -2
  86. package/build-module/media-text/edit.js.map +1 -1
  87. package/build-module/more/edit.native.js +16 -30
  88. package/build-module/more/edit.native.js.map +1 -1
  89. package/build-module/navigation-link/edit.js +50 -17
  90. package/build-module/navigation-link/edit.js.map +1 -1
  91. package/build-module/navigation-link/update-attributes.js +113 -15
  92. package/build-module/navigation-link/update-attributes.js.map +1 -1
  93. package/build-module/navigation-submenu/edit.js +20 -3
  94. package/build-module/navigation-submenu/edit.js.map +1 -1
  95. package/build-module/post-author/edit.js +78 -35
  96. package/build-module/post-author/edit.js.map +1 -1
  97. package/build-module/post-comments-form/form.js +1 -1
  98. package/build-module/post-comments-form/form.js.map +1 -1
  99. package/build-module/post-content/edit.js +80 -18
  100. package/build-module/post-content/edit.js.map +1 -1
  101. package/build-module/post-content/index.js +6 -0
  102. package/build-module/post-content/index.js.map +1 -1
  103. package/build-module/post-featured-image/edit.js +2 -1
  104. package/build-module/post-featured-image/edit.js.map +1 -1
  105. package/build-module/search/edit.js +1 -1
  106. package/build-module/search/edit.js.map +1 -1
  107. package/build-module/separator/edit.js +6 -31
  108. package/build-module/separator/edit.js.map +1 -1
  109. package/build-module/site-logo/edit.js +17 -6
  110. package/build-module/site-logo/edit.js.map +1 -1
  111. package/build-module/site-tagline/index.js +1 -1
  112. package/build-module/video/edit.js +2 -5
  113. package/build-module/video/edit.js.map +1 -1
  114. package/build-module/video/poster-image.js +26 -26
  115. package/build-module/video/poster-image.js.map +1 -1
  116. package/build-module/video/tracks-editor.js +96 -105
  117. package/build-module/video/tracks-editor.js.map +1 -1
  118. package/build-module/video/tracks.js +6 -2
  119. package/build-module/video/tracks.js.map +1 -1
  120. package/build-style/archives/editor-rtl.css +0 -4
  121. package/build-style/archives/editor.css +0 -4
  122. package/build-style/editor-rtl.css +0 -21
  123. package/build-style/editor.css +0 -21
  124. package/build-style/file/style-rtl.css +1 -1
  125. package/build-style/file/style.css +1 -1
  126. package/build-style/gallery/editor-rtl.css +0 -13
  127. package/build-style/gallery/editor.css +0 -13
  128. package/build-style/navigation/style-rtl.css +2 -0
  129. package/build-style/navigation/style.css +2 -0
  130. package/build-style/style-rtl.css +3 -1
  131. package/build-style/style.css +3 -1
  132. package/build-style/video/editor-rtl.css +0 -4
  133. package/build-style/video/editor.css +0 -4
  134. package/package.json +35 -35
  135. package/src/archives/editor.scss +0 -4
  136. package/src/button/edit.js +1 -1
  137. package/src/comments-pagination/index.php +7 -2
  138. package/src/cover/block.json +6 -0
  139. package/src/cover/edit/block-controls.js +22 -17
  140. package/src/cover/edit/index.js +4 -1
  141. package/src/cover/edit/inspector-controls.js +12 -3
  142. package/src/cover/edit/poster-image.js +91 -0
  143. package/src/cover/save.js +2 -0
  144. package/src/details/index.js +1 -1
  145. package/src/file/style.scss +1 -1
  146. package/src/gallery/constants.js +1 -0
  147. package/src/gallery/edit.js +182 -68
  148. package/src/gallery/editor.scss +0 -17
  149. package/src/image/edit.js +12 -0
  150. package/src/list/block.json +0 -1
  151. package/src/media-text/edit.js +1 -1
  152. package/src/more/edit.native.js +19 -33
  153. package/src/navigation/style.scss +2 -0
  154. package/src/navigation-link/edit.js +46 -17
  155. package/src/navigation-link/test/edit.js +738 -6
  156. package/src/navigation-link/update-attributes.js +125 -12
  157. package/src/navigation-submenu/edit.js +21 -1
  158. package/src/post-author/edit.js +91 -40
  159. package/src/post-comments-form/form.js +1 -1
  160. package/src/post-content/block.json +6 -0
  161. package/src/post-content/edit.js +71 -19
  162. package/src/post-content/index.php +11 -4
  163. package/src/post-featured-image/edit.js +1 -0
  164. package/src/post-featured-image/index.php +3 -2
  165. package/src/rss/index.php +2 -1
  166. package/src/search/edit.js +1 -1
  167. package/src/separator/edit.js +8 -43
  168. package/src/site-logo/edit.js +22 -10
  169. package/src/site-tagline/block.json +1 -1
  170. package/src/video/edit.js +1 -4
  171. package/src/video/editor.scss +0 -6
  172. package/src/video/poster-image.js +29 -24
  173. package/src/video/tracks-editor.js +93 -103
  174. package/src/video/tracks.js +2 -1
@@ -6,16 +6,14 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { HorizontalRule, SelectControl, PanelBody, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
10
- import { useBlockProps, getColorClassName, __experimentalUseColorProps as useColorProps, InspectorControls } from '@wordpress/block-editor';
11
- import { Platform } from '@wordpress/element';
9
+ import { getColorClassName, InspectorControls, useBlockProps, __experimentalUseColorProps as useColorProps } from '@wordpress/block-editor';
10
+ import { HorizontalRule, SelectControl } from '@wordpress/components';
12
11
  import { __ } from '@wordpress/i18n';
13
12
 
14
13
  /**
15
14
  * Internal dependencies
16
15
  */
17
16
  import useDeprecatedOpacity from './use-deprecated-opacity';
18
- import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
19
17
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
20
18
  const HtmlElementControl = ({
21
19
  tagName,
@@ -52,7 +50,6 @@ export default function SeparatorEdit({
52
50
  const colorProps = useColorProps(attributes);
53
51
  const currentColor = colorProps?.style?.backgroundColor;
54
52
  const hasCustomColor = !!style?.color?.background;
55
- const dropdownMenuProps = useToolsPanelDropdownMenuProps();
56
53
  useDeprecatedOpacity(opacity, currentColor, setAttributes);
57
54
 
58
55
  // The dots styles uses text for the dots, to change those dots color is
@@ -71,32 +68,10 @@ export default function SeparatorEdit({
71
68
  const Wrapper = tagName === 'hr' ? HorizontalRule : tagName;
72
69
  return /*#__PURE__*/_jsxs(_Fragment, {
73
70
  children: [/*#__PURE__*/_jsx(InspectorControls, {
74
- children: Platform.isNative ? /*#__PURE__*/_jsx(PanelBody, {
75
- title: __('Settings'),
76
- children: /*#__PURE__*/_jsx(HtmlElementControl, {
77
- tagName: tagName,
78
- setAttributes: setAttributes
79
- })
80
- }) : /*#__PURE__*/_jsx(ToolsPanel, {
81
- label: __('Settings'),
82
- resetAll: () => {
83
- setAttributes({
84
- tagName: 'hr'
85
- });
86
- },
87
- dropdownMenuProps: dropdownMenuProps,
88
- children: /*#__PURE__*/_jsx(ToolsPanelItem, {
89
- hasValue: () => tagName !== 'hr',
90
- label: __('HTML element'),
91
- onDeselect: () => setAttributes({
92
- tagName: 'hr'
93
- }),
94
- isShownByDefault: true,
95
- children: /*#__PURE__*/_jsx(HtmlElementControl, {
96
- tagName: tagName,
97
- setAttributes: setAttributes
98
- })
99
- })
71
+ group: "advanced",
72
+ children: /*#__PURE__*/_jsx(HtmlElementControl, {
73
+ tagName: tagName,
74
+ setAttributes: setAttributes
100
75
  })
101
76
  }), /*#__PURE__*/_jsx(Wrapper, {
102
77
  ...useBlockProps({
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","HorizontalRule","SelectControl","PanelBody","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","useBlockProps","getColorClassName","__experimentalUseColorProps","useColorProps","InspectorControls","Platform","__","useDeprecatedOpacity","useToolsPanelDropdownMenuProps","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","HtmlElementControl","tagName","setAttributes","label","value","onChange","newValue","options","help","__next40pxDefaultSize","__nextHasNoMarginBottom","SeparatorEdit","attributes","backgroundColor","opacity","style","colorProps","currentColor","hasCustomColor","color","background","dropdownMenuProps","colorClass","className","styles","Wrapper","children","isNative","title","resetAll","hasValue","onDeselect","isShownByDefault","undefined"],"sources":["@wordpress/block-library/src/separator/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tHorizontalRule,\n\tSelectControl,\n\tPanelBody,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tuseBlockProps,\n\tgetColorClassName,\n\t__experimentalUseColorProps as useColorProps,\n\tInspectorControls,\n} from '@wordpress/block-editor';\nimport { Platform } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDeprecatedOpacity from './use-deprecated-opacity';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst HtmlElementControl = ( { tagName, setAttributes } ) => {\n\treturn (\n\t\t<SelectControl\n\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\tvalue={ tagName }\n\t\t\tonChange={ ( newValue ) => setAttributes( { tagName: newValue } ) }\n\t\t\toptions={ [\n\t\t\t\t{ label: __( 'Default (<hr>)' ), value: 'hr' },\n\t\t\t\t{ label: '<div>', value: 'div' },\n\t\t\t] }\n\t\t\thelp={\n\t\t\t\ttagName === 'hr'\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'Only select <hr> if the separator conveys important information and should be announced by screen readers.'\n\t\t\t\t\t )\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'The <div> element should only be used if the block is a design element with no semantic meaning.'\n\t\t\t\t\t )\n\t\t\t}\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n};\n\nexport default function SeparatorEdit( { attributes, setAttributes } ) {\n\tconst { backgroundColor, opacity, style, tagName } = attributes;\n\tconst colorProps = useColorProps( attributes );\n\tconst currentColor = colorProps?.style?.backgroundColor;\n\tconst hasCustomColor = !! style?.color?.background;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tuseDeprecatedOpacity( opacity, currentColor, setAttributes );\n\n\t// The dots styles uses text for the dots, to change those dots color is\n\t// using color, not backgroundColor.\n\tconst colorClass = getColorClassName( 'color', backgroundColor );\n\n\tconst className = clsx(\n\t\t{\n\t\t\t'has-text-color': backgroundColor || currentColor,\n\t\t\t[ colorClass ]: colorClass,\n\t\t\t'has-css-opacity': opacity === 'css',\n\t\t\t'has-alpha-channel-opacity': opacity === 'alpha-channel',\n\t\t},\n\t\tcolorProps.className\n\t);\n\n\tconst styles = {\n\t\tcolor: currentColor,\n\t\tbackgroundColor: currentColor,\n\t};\n\tconst Wrapper = tagName === 'hr' ? HorizontalRule : tagName;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ Platform.isNative ? (\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t<HtmlElementControl\n\t\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) : (\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( { tagName: 'hr' } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => tagName !== 'hr' }\n\t\t\t\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { tagName: 'hr' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<HtmlElementControl\n\t\t\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<Wrapper\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName,\n\t\t\t\t\tstyle: hasCustomColor ? styles : undefined,\n\t\t\t\t} ) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","getColorClassName","InspectorControls","useBlockProps","__experimentalUseColorProps","useColorProps","HorizontalRule","SelectControl","__","useDeprecatedOpacity","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","HtmlElementControl","tagName","setAttributes","label","value","onChange","newValue","options","help","__next40pxDefaultSize","__nextHasNoMarginBottom","SeparatorEdit","attributes","backgroundColor","opacity","style","colorProps","currentColor","hasCustomColor","color","background","colorClass","className","styles","Wrapper","children","group","undefined"],"sources":["@wordpress/block-library/src/separator/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetColorClassName,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { HorizontalRule, SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDeprecatedOpacity from './use-deprecated-opacity';\n\nconst HtmlElementControl = ( { tagName, setAttributes } ) => {\n\treturn (\n\t\t<SelectControl\n\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\tvalue={ tagName }\n\t\t\tonChange={ ( newValue ) => setAttributes( { tagName: newValue } ) }\n\t\t\toptions={ [\n\t\t\t\t{ label: __( 'Default (<hr>)' ), value: 'hr' },\n\t\t\t\t{ label: '<div>', value: 'div' },\n\t\t\t] }\n\t\t\thelp={\n\t\t\t\ttagName === 'hr'\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'Only select <hr> if the separator conveys important information and should be announced by screen readers.'\n\t\t\t\t\t )\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'The <div> element should only be used if the block is a design element with no semantic meaning.'\n\t\t\t\t\t )\n\t\t\t}\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n};\n\nexport default function SeparatorEdit( { attributes, setAttributes } ) {\n\tconst { backgroundColor, opacity, style, tagName } = attributes;\n\tconst colorProps = useColorProps( attributes );\n\tconst currentColor = colorProps?.style?.backgroundColor;\n\tconst hasCustomColor = !! style?.color?.background;\n\n\tuseDeprecatedOpacity( opacity, currentColor, setAttributes );\n\n\t// The dots styles uses text for the dots, to change those dots color is\n\t// using color, not backgroundColor.\n\tconst colorClass = getColorClassName( 'color', backgroundColor );\n\n\tconst className = clsx(\n\t\t{\n\t\t\t'has-text-color': backgroundColor || currentColor,\n\t\t\t[ colorClass ]: colorClass,\n\t\t\t'has-css-opacity': opacity === 'css',\n\t\t\t'has-alpha-channel-opacity': opacity === 'alpha-channel',\n\t\t},\n\t\tcolorProps.className\n\t);\n\n\tconst styles = {\n\t\tcolor: currentColor,\n\t\tbackgroundColor: currentColor,\n\t};\n\tconst Wrapper = tagName === 'hr' ? HorizontalRule : tagName;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HtmlElementControl\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<Wrapper\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName,\n\t\t\t\t\tstyle: hasCustomColor ? styles : undefined,\n\t\t\t\t} ) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SACCC,iBAAiB,EACjBC,iBAAiB,EACjBC,aAAa,EACbC,2BAA2B,IAAIC,aAAa,QACtC,yBAAyB;AAChC,SAASC,cAAc,EAAEC,aAAa,QAAQ,uBAAuB;AACrE,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE5D,MAAMC,kBAAkB,GAAGA,CAAE;EAAEC,OAAO;EAAEC;AAAc,CAAC,KAAM;EAC5D,oBACCP,IAAA,CAACJ,aAAa;IACbY,KAAK,EAAGX,EAAE,CAAE,cAAe,CAAG;IAC9BY,KAAK,EAAGH,OAAS;IACjBI,QAAQ,EAAKC,QAAQ,IAAMJ,aAAa,CAAE;MAAED,OAAO,EAAEK;IAAS,CAAE,CAAG;IACnEC,OAAO,EAAG,CACT;MAAEJ,KAAK,EAAEX,EAAE,CAAE,gBAAiB,CAAC;MAAEY,KAAK,EAAE;IAAK,CAAC,EAC9C;MAAED,KAAK,EAAE,OAAO;MAAEC,KAAK,EAAE;IAAM,CAAC,CAC9B;IACHI,IAAI,EACHP,OAAO,KAAK,IAAI,GACbT,EAAE,CACF,4GACA,CAAC,GACDA,EAAE,CACF,kGACA,CACH;IACDiB,qBAAqB;IACrBC,uBAAuB;EAAA,CACvB,CAAC;AAEJ,CAAC;AAED,eAAe,SAASC,aAAaA,CAAE;EAAEC,UAAU;EAAEV;AAAc,CAAC,EAAG;EACtE,MAAM;IAAEW,eAAe;IAAEC,OAAO;IAAEC,KAAK;IAAEd;EAAQ,CAAC,GAAGW,UAAU;EAC/D,MAAMI,UAAU,GAAG3B,aAAa,CAAEuB,UAAW,CAAC;EAC9C,MAAMK,YAAY,GAAGD,UAAU,EAAED,KAAK,EAAEF,eAAe;EACvD,MAAMK,cAAc,GAAG,CAAC,CAAEH,KAAK,EAAEI,KAAK,EAAEC,UAAU;EAElD3B,oBAAoB,CAAEqB,OAAO,EAAEG,YAAY,EAAEf,aAAc,CAAC;;EAE5D;EACA;EACA,MAAMmB,UAAU,GAAGpC,iBAAiB,CAAE,OAAO,EAAE4B,eAAgB,CAAC;EAEhE,MAAMS,SAAS,GAAGtC,IAAI,CACrB;IACC,gBAAgB,EAAE6B,eAAe,IAAII,YAAY;IACjD,CAAEI,UAAU,GAAIA,UAAU;IAC1B,iBAAiB,EAAEP,OAAO,KAAK,KAAK;IACpC,2BAA2B,EAAEA,OAAO,KAAK;EAC1C,CAAC,EACDE,UAAU,CAACM,SACZ,CAAC;EAED,MAAMC,MAAM,GAAG;IACdJ,KAAK,EAAEF,YAAY;IACnBJ,eAAe,EAAEI;EAClB,CAAC;EACD,MAAMO,OAAO,GAAGvB,OAAO,KAAK,IAAI,GAAGX,cAAc,GAAGW,OAAO;EAE3D,oBACCF,KAAA,CAAAF,SAAA;IAAA4B,QAAA,gBACC9B,IAAA,CAACT,iBAAiB;MAACwC,KAAK,EAAC,UAAU;MAAAD,QAAA,eAClC9B,IAAA,CAACK,kBAAkB;QAClBC,OAAO,EAAGA,OAAS;QACnBC,aAAa,EAAGA;MAAe,CAC/B;IAAC,CACgB,CAAC,eACpBP,IAAA,CAAC6B,OAAO;MAAA,GACFrC,aAAa,CAAE;QACnBmC,SAAS;QACTP,KAAK,EAAEG,cAAc,GAAGK,MAAM,GAAGI;MAClC,CAAE;IAAC,CACH,CAAC;EAAA,CACD,CAAC;AAEL","ignoreList":[]}
@@ -9,7 +9,7 @@ import clsx from 'clsx';
9
9
  import { isBlobURL } from '@wordpress/blob';
10
10
  import { createInterpolateElement, useEffect, useState } from '@wordpress/element';
11
11
  import { __, isRTL } from '@wordpress/i18n';
12
- import { RangeControl, ResizableBox, Spinner, ToggleControl, ToolbarButton, Placeholder, Button, DropZone, FlexItem, PanelBody, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalItemGroup as ItemGroup, __experimentalHStack as HStack, __experimentalTruncate as Truncate } from '@wordpress/components';
12
+ import { RangeControl, ResizableBox, Spinner, ToggleControl, ToolbarButton, Placeholder, Button, DropZone, FlexItem, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalItemGroup as ItemGroup, __experimentalHStack as HStack, __experimentalTruncate as Truncate } from '@wordpress/components';
13
13
  import { useViewportMatch } from '@wordpress/compose';
14
14
  import { BlockControls, InspectorControls, MediaPlaceholder, MediaReplaceFlow, useBlockProps, store as blockEditorStore, __experimentalImageEditor as ImageEditor } from '@wordpress/block-editor';
15
15
  import { useSelect, useDispatch } from '@wordpress/data';
@@ -420,6 +420,7 @@ export default function LogoEdit({
420
420
  getSettings
421
421
  } = useSelect(blockEditorStore);
422
422
  const [temporaryURL, setTemporaryURL] = useState();
423
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
423
424
  const {
424
425
  editEntityRecord
425
426
  } = useDispatch(coreStore);
@@ -565,17 +566,27 @@ export default function LogoEdit({
565
566
  className: classes
566
567
  });
567
568
  const mediaInspectorPanel = (canUserEdit || logoUrl) && /*#__PURE__*/_jsx(InspectorControls, {
568
- children: /*#__PURE__*/_jsx(PanelBody, {
569
- title: __('Media'),
570
- children: /*#__PURE__*/_jsx("div", {
569
+ children: /*#__PURE__*/_jsx(ToolsPanel, {
570
+ label: __('Media'),
571
+ dropdownMenuProps: dropdownMenuProps,
572
+ children: !canUserEdit ? /*#__PURE__*/_jsx("div", {
571
573
  className: "block-library-site-logo__inspector-media-replace-container",
572
- children: !canUserEdit ? /*#__PURE__*/_jsx(InspectorLogoPreview, {
574
+ style: {
575
+ gridColumn: '1 / -1'
576
+ },
577
+ children: /*#__PURE__*/_jsx(InspectorLogoPreview, {
573
578
  media: mediaItemData,
574
579
  itemGroupProps: {
575
580
  isBordered: true,
576
581
  className: 'block-library-site-logo__inspector-readonly-logo-preview'
577
582
  }
578
- }) : /*#__PURE__*/_jsxs(_Fragment, {
583
+ })
584
+ }) : /*#__PURE__*/_jsx(ToolsPanelItem, {
585
+ hasValue: () => !!logoUrl,
586
+ label: __('Logo'),
587
+ isShownByDefault: true,
588
+ children: /*#__PURE__*/_jsxs("div", {
589
+ className: "block-library-site-logo__inspector-media-replace-container",
579
590
  children: [/*#__PURE__*/_jsx(SiteLogoReplaceFlow, {
580
591
  ...mediaReplaceFlowProps,
581
592
  name: !!logoUrl ? /*#__PURE__*/_jsx(InspectorLogoPreview, {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","isBlobURL","createInterpolateElement","useEffect","useState","__","isRTL","RangeControl","ResizableBox","Spinner","ToggleControl","ToolbarButton","Placeholder","Button","DropZone","FlexItem","PanelBody","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalTruncate","Truncate","useViewportMatch","BlockControls","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","__experimentalImageEditor","ImageEditor","useSelect","useDispatch","coreStore","crop","upload","noticesStore","MIN_SIZE","useToolsPanelDropdownMenuProps","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","isLargeViewport","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","dropdownMenuProps","imageEditing","maxWidth","title","select","settings","getSettings","siteEntities","getEntityRecord","name","onResizeStart","onResizeStop","img","children","className","src","onLoad","event","target","imgWrapper","href","rel","onClick","preventDefault","style","defaultWidth","currentWidth","ratio","currentHeight","minWidth","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","id","url","onSaveImage","imageAttributes","onFinishEditing","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","delta","parseInt","shouldUseNewUrl","window","__experimentalUseCustomizerSiteLogoUrl","siteIconSettingsUrl","syncSiteIconHelpText","a","label","isShownByDefault","hasValue","onDeselect","undefined","__nextHasNoMarginBottom","__next40pxDefaultSize","onChange","newWidth","min","max","initialPosition","value","disabled","checked","help","group","icon","SiteLogoReplaceFlow","mediaURL","mediaReplaceProps","allowedTypes","accept","InspectorLogoPreview","media","itemGroupProps","alt_text","source_url","slug","logoSlug","media_details","logoMediaDetails","logoLabel","sizes","full","file","as","justify","numberOfLines","LogoEdit","siteLogoId","siteIconId","mediaItemData","isRequestingMediaItem","canUser","getEditedEntityRecord","_canUserEdit","kind","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","temporaryURL","setTemporaryURL","editEntityRecord","newValue","shouldForceSync","onInitialSelectLogo","onSelectLogo","onRemoveLogo","createErrorNotice","onUploadError","message","type","onFilesDrop","filesList","mediaUpload","onFileChange","image","onError","multiple","mediaReplaceFlowProps","onSelect","onReset","controls","logoImage","isLoading","placeholder","content","placeholderClassName","preview","withIllustration","classes","blockProps","mediaInspectorPanel","isBordered","renderToggle","props","mediaLibraryButton","open","variant","showTooltip","tooltipPosition"],"sources":["@wordpress/block-library/src/site-logo/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\n\tPanelBody,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\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} 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 { MIN_SIZE } from '../image/constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\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\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\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 dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\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\timageEditing: settings.imageEditing,\n\t\t\tmaxWidth: settings.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<>\n\t\t\t<img\n\t\t\t\tclassName=\"custom-logo\"\n\t\t\t\tsrc={ logoUrl }\n\t\t\t\talt={ alt }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetNaturalSize( {\n\t\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isBlobURL( logoUrl ) && <Spinner /> }\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=\"custom-logo-link\"\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\tif ( ! isResizable || ! naturalWidth || ! naturalHeight ) {\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<ImageEditor\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\twidth={ currentWidth }\n\t\t\t\theight={ currentHeight }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t/>\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\t// Support the previous location for the Site Icon settings. To be removed\n\t// when the required WP core version for Gutenberg is >= 6.5.0.\n\tconst shouldUseNewUrl = ! window?.__experimentalUseCustomizerSiteLogoUrl;\n\n\tconst siteIconSettingsUrl = shouldUseNewUrl\n\t\t? siteUrl + '/wp-admin/options-general.php'\n\t\t: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';\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={ siteIconSettingsUrl }\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<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! width }\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { width: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! isLink }\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget === '_blank' }\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! shouldSyncIcon }\n\t\t\t\t\t\t\tlabel={ __( 'Use as Site Icon' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t\t\t\t\t\t\tsetIcon( undefined );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\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\n// This is a light wrapper around MediaReplaceFlow because the block has two\n// different MediaReplaceFlows, one for the inspector and one for the toolbar.\nfunction SiteLogoReplaceFlow( { mediaURL, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tmediaURL={ mediaURL }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t/>\n\t);\n}\n\nconst InspectorLogoPreview = ( { media, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = media ?? {};\n\tconst logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<img src={ logoUrl } alt={ alt } />\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ logoLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\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', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} );\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\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\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\tsetTemporaryURL( media.url );\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\tsetTemporaryURL();\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetTemporaryURL( image.url );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonInitialSelectLogo( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tname: ! logoUrl ? __( 'Choose logo' ) : __( 'Replace' ),\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonReset: onRemoveLogo,\n\t};\n\tconst controls = canUserEdit && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<SiteLogoReplaceFlow { ...mediaReplaceFlowProps } />\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\n\t// Reset temporary url when logoUrl is available.\n\tuseEffect( () => {\n\t\tif ( logoUrl && temporaryURL ) {\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}, [ logoUrl, temporaryURL ] );\n\n\tif ( !! logoUrl || !! temporaryURL ) {\n\t\tlogoImage = (\n\t\t\t<>\n\t\t\t\t<SiteLogo\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tlogoUrl={ temporaryURL || logoUrl }\n\t\t\t\t\tsetLogo={ setLogo }\n\t\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\t\tsiteUrl={ url }\n\t\t\t\t\tsetIcon={ setIcon }\n\t\t\t\t\ticonId={ siteIconId }\n\t\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t\t/>\n\t\t\t\t{ canUserEdit && <DropZone onFilesDrop={ onFilesDrop } /> }\n\t\t\t</>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = clsx(\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\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-default-size': ! width,\n\t\t'is-transient': temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( { className: classes } );\n\n\tconst mediaInspectorPanel = ( canUserEdit || logoUrl ) && (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Media' ) }>\n\t\t\t\t<div className=\"block-library-site-logo__inspector-media-replace-container\">\n\t\t\t\t\t{ ! canUserEdit ? (\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmedia={ mediaItemData }\n\t\t\t\t\t\t\titemGroupProps={ {\n\t\t\t\t\t\t\t\tisBordered: true,\n\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t'block-library-site-logo__inspector-readonly-logo-preview',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t\t!! logoUrl ? (\n\t\t\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\t\t\tmedia={ mediaItemData }\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\t\t__( 'Choose logo' )\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\trenderToggle={ ( props ) => (\n\t\t\t\t\t\t\t\t\t<Button { ...props } __next40pxDefaultSize>\n\t\t\t\t\t\t\t\t\t\t{ temporaryURL ? (\n\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\tprops.children\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Button>\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<DropZone onFilesDrop={ onFilesDrop } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ mediaInspectorPanel }\n\t\t\t{ ( !! logoUrl || !! temporaryURL ) && logoImage }\n\t\t\t{ ( isLoading ||\n\t\t\t\t( ! temporaryURL && ! logoUrl && ! canUserEdit ) ) && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\" withIllustration>\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{ ! isLoading && ! temporaryURL && ! 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\t__next40pxDefaultSize\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={ __( 'Choose logo' ) }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"middle right\"\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","isBlobURL","createInterpolateElement","useEffect","useState","__","isRTL","RangeControl","ResizableBox","Spinner","ToggleControl","ToolbarButton","Placeholder","Button","DropZone","FlexItem","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalTruncate","Truncate","useViewportMatch","BlockControls","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","__experimentalImageEditor","ImageEditor","useSelect","useDispatch","coreStore","crop","upload","noticesStore","MIN_SIZE","useToolsPanelDropdownMenuProps","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","isLargeViewport","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","dropdownMenuProps","imageEditing","maxWidth","title","select","settings","getSettings","siteEntities","getEntityRecord","name","onResizeStart","onResizeStop","img","children","className","src","onLoad","event","target","imgWrapper","href","rel","onClick","preventDefault","style","defaultWidth","currentWidth","ratio","currentHeight","minWidth","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","id","url","onSaveImage","imageAttributes","onFinishEditing","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","delta","parseInt","shouldUseNewUrl","window","__experimentalUseCustomizerSiteLogoUrl","siteIconSettingsUrl","syncSiteIconHelpText","a","label","isShownByDefault","hasValue","onDeselect","undefined","__nextHasNoMarginBottom","__next40pxDefaultSize","onChange","newWidth","min","max","initialPosition","value","disabled","checked","help","group","icon","SiteLogoReplaceFlow","mediaURL","mediaReplaceProps","allowedTypes","accept","InspectorLogoPreview","media","itemGroupProps","alt_text","source_url","slug","logoSlug","media_details","logoMediaDetails","logoLabel","sizes","full","file","as","justify","numberOfLines","LogoEdit","siteLogoId","siteIconId","mediaItemData","isRequestingMediaItem","canUser","getEditedEntityRecord","_canUserEdit","kind","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","temporaryURL","setTemporaryURL","editEntityRecord","newValue","shouldForceSync","onInitialSelectLogo","onSelectLogo","onRemoveLogo","createErrorNotice","onUploadError","message","type","onFilesDrop","filesList","mediaUpload","onFileChange","image","onError","multiple","mediaReplaceFlowProps","onSelect","onReset","controls","logoImage","isLoading","placeholder","content","placeholderClassName","preview","withIllustration","classes","blockProps","mediaInspectorPanel","gridColumn","isBordered","renderToggle","props","mediaLibraryButton","open","variant","showTooltip","tooltipPosition"],"sources":["@wordpress/block-library/src/site-logo/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\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} 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 { MIN_SIZE } from '../image/constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\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\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\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 dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\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\timageEditing: settings.imageEditing,\n\t\t\tmaxWidth: settings.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<>\n\t\t\t<img\n\t\t\t\tclassName=\"custom-logo\"\n\t\t\t\tsrc={ logoUrl }\n\t\t\t\talt={ alt }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetNaturalSize( {\n\t\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isBlobURL( logoUrl ) && <Spinner /> }\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=\"custom-logo-link\"\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\tif ( ! isResizable || ! naturalWidth || ! naturalHeight ) {\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<ImageEditor\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\twidth={ currentWidth }\n\t\t\t\theight={ currentHeight }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t/>\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\t// Support the previous location for the Site Icon settings. To be removed\n\t// when the required WP core version for Gutenberg is >= 6.5.0.\n\tconst shouldUseNewUrl = ! window?.__experimentalUseCustomizerSiteLogoUrl;\n\n\tconst siteIconSettingsUrl = shouldUseNewUrl\n\t\t? siteUrl + '/wp-admin/options-general.php'\n\t\t: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';\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={ siteIconSettingsUrl }\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<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! width }\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { width: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! isLink }\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget === '_blank' }\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! shouldSyncIcon }\n\t\t\t\t\t\t\tlabel={ __( 'Use as Site Icon' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t\t\t\t\t\t\tsetIcon( undefined );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\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\n// This is a light wrapper around MediaReplaceFlow because the block has two\n// different MediaReplaceFlows, one for the inspector and one for the toolbar.\nfunction SiteLogoReplaceFlow( { mediaURL, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tmediaURL={ mediaURL }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t/>\n\t);\n}\n\nconst InspectorLogoPreview = ( { media, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = media ?? {};\n\tconst logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<img src={ logoUrl } alt={ alt } />\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ logoLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\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', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} );\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\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\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\tsetTemporaryURL( media.url );\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\tsetTemporaryURL();\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetTemporaryURL( image.url );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonInitialSelectLogo( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tname: ! logoUrl ? __( 'Choose logo' ) : __( 'Replace' ),\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonReset: onRemoveLogo,\n\t};\n\tconst controls = canUserEdit && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<SiteLogoReplaceFlow { ...mediaReplaceFlowProps } />\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\n\t// Reset temporary url when logoUrl is available.\n\tuseEffect( () => {\n\t\tif ( logoUrl && temporaryURL ) {\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}, [ logoUrl, temporaryURL ] );\n\n\tif ( !! logoUrl || !! temporaryURL ) {\n\t\tlogoImage = (\n\t\t\t<>\n\t\t\t\t<SiteLogo\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tlogoUrl={ temporaryURL || logoUrl }\n\t\t\t\t\tsetLogo={ setLogo }\n\t\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\t\tsiteUrl={ url }\n\t\t\t\t\tsetIcon={ setIcon }\n\t\t\t\t\ticonId={ siteIconId }\n\t\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t\t/>\n\t\t\t\t{ canUserEdit && <DropZone onFilesDrop={ onFilesDrop } /> }\n\t\t\t</>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = clsx(\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\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-default-size': ! width,\n\t\t'is-transient': temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( { className: classes } );\n\n\tconst mediaInspectorPanel = ( canUserEdit || logoUrl ) && (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Media' ) }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ ! canUserEdit ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-container\"\n\t\t\t\t\t\tstyle={ { gridColumn: '1 / -1' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmedia={ mediaItemData }\n\t\t\t\t\t\t\titemGroupProps={ {\n\t\t\t\t\t\t\t\tisBordered: true,\n\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t'block-library-site-logo__inspector-readonly-logo-preview',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! logoUrl }\n\t\t\t\t\t\tlabel={ __( 'Logo' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"block-library-site-logo__inspector-media-replace-container\">\n\t\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t\t!! logoUrl ? (\n\t\t\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\t\t\tmedia={ mediaItemData }\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\t\t__( 'Choose logo' )\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\trenderToggle={ ( props ) => (\n\t\t\t\t\t\t\t\t\t<Button { ...props } __next40pxDefaultSize>\n\t\t\t\t\t\t\t\t\t\t{ temporaryURL ? (\n\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\tprops.children\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Button>\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<DropZone onFilesDrop={ onFilesDrop } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ mediaInspectorPanel }\n\t\t\t{ ( !! logoUrl || !! temporaryURL ) && logoImage }\n\t\t\t{ ( isLoading ||\n\t\t\t\t( ! temporaryURL && ! logoUrl && ! canUserEdit ) ) && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\" withIllustration>\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{ ! isLoading && ! temporaryURL && ! 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\t__next40pxDefaultSize\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={ __( 'Choose logo' ) }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"middle right\"\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"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ const metadata = {
8
8
  name: "core/site-tagline",
9
9
  title: "Site Tagline",
10
10
  category: "theme",
11
- description: "Describe in a few words what the site is about. The tagline can be used in search results or when sharing on social networks even if it\u2019s not displayed in the theme design.",
11
+ description: "Describe in a few words what this site is about. This is important for search results, sharing on social media, and gives overall clarity to visitors.",
12
12
  keywords: ["description"],
13
13
  textdomain: "default",
14
14
  attributes: {
@@ -11,7 +11,6 @@ import { Disabled, Spinner, Placeholder, __experimentalToolsPanel as ToolsPanel
11
11
  import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaReplaceFlow, useBlockProps } from '@wordpress/block-editor';
12
12
  import { useRef, useEffect, useState } from '@wordpress/element';
13
13
  import { __ } from '@wordpress/i18n';
14
- import { useInstanceId } from '@wordpress/compose';
15
14
  import { useDispatch } from '@wordpress/data';
16
15
  import { video as icon } from '@wordpress/icons';
17
16
  import { store as noticesStore } from '@wordpress/notices';
@@ -36,7 +35,6 @@ function VideoEdit({
36
35
  insertBlocksAfter,
37
36
  onReplace
38
37
  }) {
39
- const instanceId = useInstanceId(VideoEdit);
40
38
  const videoPlayer = useRef();
41
39
  const {
42
40
  id,
@@ -189,7 +187,7 @@ function VideoEdit({
189
187
  muted: false,
190
188
  playsInline: false,
191
189
  preload: 'metadata',
192
- poster: ''
190
+ poster: undefined
193
191
  });
194
192
  },
195
193
  dropdownMenuProps: dropdownMenuProps,
@@ -198,8 +196,7 @@ function VideoEdit({
198
196
  attributes: attributes
199
197
  }), /*#__PURE__*/_jsx(PosterImage, {
200
198
  poster: poster,
201
- setAttributes: setAttributes,
202
- instanceId: instanceId
199
+ setAttributes: setAttributes
203
200
  })]
204
201
  })
205
202
  }), /*#__PURE__*/_jsxs("figure", {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","isBlobURL","Disabled","Spinner","Placeholder","__experimentalToolsPanel","ToolsPanel","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","useRef","useEffect","useState","__","useInstanceId","useDispatch","video","icon","store","noticesStore","PosterImage","createUpgradedEmbedBlock","useUploadMediaFromBlobURL","useToolsPanelDropdownMenuProps","VideoCommonSettings","TracksEditor","Tracks","Caption","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","className","setAttributes","insertBlocksAfter","onReplace","instanceId","videoPlayer","id","controls","poster","src","tracks","temporaryURL","setTemporaryURL","blob","dropdownMenuProps","url","allowedTypes","onChange","onSelectVideo","onError","onUploadError","current","load","media","undefined","caption","image","onSelectURL","newSrc","embedBlock","createErrorNotice","message","type","placeholder","content","withIllustration","label","instructions","children","classes","blockProps","onSelect","accept","value","newTracks","group","mediaId","mediaURL","onReset","resetAll","autoplay","loop","muted","playsInline","preload","isDisabled","ref","showToolbarButton"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport PosterImage from './poster-image';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst instanceId = useInstanceId( VideoEdit );\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: newSrc,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: '',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n Disable the video tag if the block is not selected\n so the user clicking on it won't play the\n video when the controls are enabled.\n */ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","isBlobURL","Disabled","Spinner","Placeholder","__experimentalToolsPanel","ToolsPanel","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","useRef","useEffect","useState","__","useDispatch","video","icon","store","noticesStore","PosterImage","createUpgradedEmbedBlock","useUploadMediaFromBlobURL","useToolsPanelDropdownMenuProps","VideoCommonSettings","TracksEditor","Tracks","Caption","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","className","setAttributes","insertBlocksAfter","onReplace","videoPlayer","id","controls","poster","src","tracks","temporaryURL","setTemporaryURL","blob","dropdownMenuProps","url","allowedTypes","onChange","onSelectVideo","onError","onUploadError","current","load","media","undefined","caption","image","onSelectURL","newSrc","embedBlock","createErrorNotice","message","type","placeholder","content","withIllustration","label","instructions","children","classes","blockProps","onSelect","accept","value","newTracks","group","mediaId","mediaURL","onReset","resetAll","autoplay","loop","muted","playsInline","preload","isDisabled","ref","showToolbarButton"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport PosterImage from './poster-image';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: newSrc,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n Disable the video tag if the block is not selected\n so the user clicking on it won't play the\n video when the controls are enabled.\n */ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -2,18 +2,18 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { MediaUpload, MediaUploadCheck } from '@wordpress/block-editor';
5
- import { Button, BaseControl, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
5
+ import { Button, BaseControl, __experimentalHStack as HStack, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
6
6
  import { __, sprintf } from '@wordpress/i18n';
7
7
  import { useRef } from '@wordpress/element';
8
+ import { useInstanceId } from '@wordpress/compose';
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
9
11
  function PosterImage({
10
12
  poster,
11
- setAttributes,
12
- instanceId
13
+ setAttributes
13
14
  }) {
14
- const posterImageButton = useRef();
15
- const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
16
- const videoPosterDescription = `video-block__poster-image-description-${instanceId}`;
15
+ const posterButtonRef = useRef();
16
+ const descriptionId = useInstanceId(PosterImage, 'video-block__poster-image-description');
17
17
  function onSelectPoster(image) {
18
18
  setAttributes({
19
19
  poster: image.url
@@ -25,23 +25,23 @@ function PosterImage({
25
25
  });
26
26
 
27
27
  // Move focus back to the Media Upload button.
28
- posterImageButton.current.focus();
28
+ posterButtonRef.current.focus();
29
29
  }
30
- return /*#__PURE__*/_jsx(ToolsPanelItem, {
31
- label: __('Poster image'),
32
- isShownByDefault: true,
33
- hasValue: () => !!poster,
34
- onDeselect: () => {
35
- setAttributes({
36
- poster: ''
37
- });
38
- },
39
- children: /*#__PURE__*/_jsx(MediaUploadCheck, {
40
- children: /*#__PURE__*/_jsxs("div", {
41
- className: "editor-video-poster-control",
42
- children: [/*#__PURE__*/_jsx(BaseControl.VisualLabel, {
43
- children: __('Poster image')
44
- }), /*#__PURE__*/_jsx(MediaUpload, {
30
+ return /*#__PURE__*/_jsx(MediaUploadCheck, {
31
+ children: /*#__PURE__*/_jsxs(ToolsPanelItem, {
32
+ label: __('Poster image'),
33
+ isShownByDefault: true,
34
+ hasValue: () => !!poster,
35
+ onDeselect: () => {
36
+ setAttributes({
37
+ poster: undefined
38
+ });
39
+ },
40
+ children: [/*#__PURE__*/_jsx(BaseControl.VisualLabel, {
41
+ children: __('Poster image')
42
+ }), /*#__PURE__*/_jsxs(HStack, {
43
+ justify: "flex-start",
44
+ children: [/*#__PURE__*/_jsx(MediaUpload, {
45
45
  title: __('Select poster image'),
46
46
  onSelect: onSelectPoster,
47
47
  allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES,
@@ -51,12 +51,12 @@ function PosterImage({
51
51
  __next40pxDefaultSize: true,
52
52
  variant: "primary",
53
53
  onClick: open,
54
- ref: posterImageButton,
55
- "aria-describedby": videoPosterDescription,
54
+ ref: posterButtonRef,
55
+ "aria-describedby": descriptionId,
56
56
  children: !poster ? __('Select') : __('Replace')
57
57
  })
58
58
  }), /*#__PURE__*/_jsx("p", {
59
- id: videoPosterDescription,
59
+ id: descriptionId,
60
60
  hidden: true,
61
61
  children: poster ? sprintf(/* translators: %s: poster image URL. */
62
62
  __('The current poster image url is %s'), poster) : __('There is no poster image currently selected')
@@ -66,7 +66,7 @@ function PosterImage({
66
66
  variant: "tertiary",
67
67
  children: __('Remove')
68
68
  })]
69
- })
69
+ })]
70
70
  })
71
71
  });
72
72
  }