@wordpress/block-library 8.14.0 → 8.15.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 (260) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/avatar/edit.js +1 -0
  3. package/build/avatar/edit.js.map +1 -1
  4. package/build/block/index.js +2 -1
  5. package/build/block/index.js.map +1 -1
  6. package/build/buttons/edit.js +2 -2
  7. package/build/buttons/edit.js.map +1 -1
  8. package/build/column/edit.native.js +1 -4
  9. package/build/column/edit.native.js.map +1 -1
  10. package/build/columns/edit.js +1 -0
  11. package/build/columns/edit.js.map +1 -1
  12. package/build/comment-author-avatar/edit.js +1 -0
  13. package/build/comment-author-avatar/edit.js.map +1 -1
  14. package/build/cover/deprecated.js +4 -2
  15. package/build/cover/deprecated.js.map +1 -1
  16. package/build/embed/embed-placeholder.native.js +37 -13
  17. package/build/embed/embed-placeholder.native.js.map +1 -1
  18. package/build/file/index.js +1 -2
  19. package/build/file/index.js.map +1 -1
  20. package/build/file/inspector.js +1 -0
  21. package/build/file/inspector.js.map +1 -1
  22. package/build/file/view-interactivity.js +23 -0
  23. package/build/file/view-interactivity.js.map +1 -0
  24. package/build/file/view.js +1 -15
  25. package/build/file/view.js.map +1 -1
  26. package/build/footnotes/edit.js +20 -1
  27. package/build/footnotes/edit.js.map +1 -1
  28. package/build/footnotes/format.js +19 -16
  29. package/build/footnotes/format.js.map +1 -1
  30. package/build/footnotes/index.js +0 -1
  31. package/build/footnotes/index.js.map +1 -1
  32. package/build/gallery/edit.js +1 -1
  33. package/build/gallery/edit.js.map +1 -1
  34. package/build/latest-comments/edit.js +1 -0
  35. package/build/latest-comments/edit.js.map +1 -1
  36. package/build/latest-posts/edit.js +2 -0
  37. package/build/latest-posts/edit.js.map +1 -1
  38. package/build/list/edit.js +4 -4
  39. package/build/list/edit.js.map +1 -1
  40. package/build/media-text/media-container.native.js +2 -1
  41. package/build/media-text/media-container.native.js.map +1 -1
  42. package/build/missing/edit.native.js +7 -5
  43. package/build/missing/edit.native.js.map +1 -1
  44. package/build/navigation/constants.js +10 -4
  45. package/build/navigation/constants.js.map +1 -1
  46. package/build/navigation/edit/index.js +16 -2
  47. package/build/navigation/edit/index.js.map +1 -1
  48. package/build/navigation/edit/inner-blocks.js +2 -2
  49. package/build/navigation/edit/inner-blocks.js.map +1 -1
  50. package/build/navigation/edit/unsaved-inner-blocks.js +2 -2
  51. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  52. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -15
  53. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  54. package/build/navigation/index.js +2 -3
  55. package/build/navigation/index.js.map +1 -1
  56. package/build/navigation/use-navigation-menu.js +33 -45
  57. package/build/navigation/use-navigation-menu.js.map +1 -1
  58. package/build/navigation/view-interactivity.js +185 -0
  59. package/build/navigation/view-interactivity.js.map +1 -0
  60. package/build/navigation/view-modal.js +64 -0
  61. package/build/navigation/view-modal.js.map +1 -0
  62. package/build/navigation/view.js +50 -174
  63. package/build/navigation/view.js.map +1 -1
  64. package/build/navigation-link/edit.js +12 -7
  65. package/build/navigation-link/edit.js.map +1 -1
  66. package/build/navigation-submenu/edit.js +2 -2
  67. package/build/navigation-submenu/edit.js.map +1 -1
  68. package/build/query-pagination/edit.js +1 -1
  69. package/build/query-pagination/edit.js.map +1 -1
  70. package/build/query-title/edit.js +43 -1
  71. package/build/query-title/edit.js.map +1 -1
  72. package/build/quote/transforms.js +8 -0
  73. package/build/quote/transforms.js.map +1 -1
  74. package/build/rss/edit.js +3 -0
  75. package/build/rss/edit.js.map +1 -1
  76. package/build/search/edit.js +4 -3
  77. package/build/search/edit.js.map +1 -1
  78. package/build/search/index.js +1 -0
  79. package/build/search/index.js.map +1 -1
  80. package/build/site-logo/edit.js +1 -0
  81. package/build/site-logo/edit.js.map +1 -1
  82. package/build/tag-cloud/edit.js +1 -0
  83. package/build/tag-cloud/edit.js.map +1 -1
  84. package/build/template-part/edit/index.js +1 -1
  85. package/build/template-part/edit/index.js.map +1 -1
  86. package/build/text-columns/edit.js +1 -0
  87. package/build/text-columns/edit.js.map +1 -1
  88. package/build-module/avatar/edit.js +1 -0
  89. package/build-module/avatar/edit.js.map +1 -1
  90. package/build-module/block/index.js +2 -1
  91. package/build-module/block/index.js.map +1 -1
  92. package/build-module/buttons/edit.js +2 -2
  93. package/build-module/buttons/edit.js.map +1 -1
  94. package/build-module/column/edit.native.js +1 -4
  95. package/build-module/column/edit.native.js.map +1 -1
  96. package/build-module/columns/edit.js +1 -0
  97. package/build-module/columns/edit.js.map +1 -1
  98. package/build-module/comment-author-avatar/edit.js +1 -0
  99. package/build-module/comment-author-avatar/edit.js.map +1 -1
  100. package/build-module/cover/deprecated.js +4 -2
  101. package/build-module/cover/deprecated.js.map +1 -1
  102. package/build-module/embed/embed-placeholder.native.js +37 -14
  103. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  104. package/build-module/file/index.js +1 -2
  105. package/build-module/file/index.js.map +1 -1
  106. package/build-module/file/inspector.js +1 -0
  107. package/build-module/file/inspector.js.map +1 -1
  108. package/build-module/file/view-interactivity.js +19 -0
  109. package/build-module/file/view-interactivity.js.map +1 -0
  110. package/build-module/file/view.js +2 -15
  111. package/build-module/file/view.js.map +1 -1
  112. package/build-module/footnotes/edit.js +18 -2
  113. package/build-module/footnotes/edit.js.map +1 -1
  114. package/build-module/footnotes/format.js +19 -16
  115. package/build-module/footnotes/format.js.map +1 -1
  116. package/build-module/footnotes/index.js +0 -1
  117. package/build-module/footnotes/index.js.map +1 -1
  118. package/build-module/gallery/edit.js +1 -1
  119. package/build-module/gallery/edit.js.map +1 -1
  120. package/build-module/latest-comments/edit.js +1 -0
  121. package/build-module/latest-comments/edit.js.map +1 -1
  122. package/build-module/latest-posts/edit.js +2 -0
  123. package/build-module/latest-posts/edit.js.map +1 -1
  124. package/build-module/list/edit.js +4 -4
  125. package/build-module/list/edit.js.map +1 -1
  126. package/build-module/media-text/media-container.native.js +2 -1
  127. package/build-module/media-text/media-container.native.js.map +1 -1
  128. package/build-module/missing/edit.native.js +8 -6
  129. package/build-module/missing/edit.native.js.map +1 -1
  130. package/build-module/navigation/constants.js +8 -3
  131. package/build-module/navigation/constants.js.map +1 -1
  132. package/build-module/navigation/edit/index.js +17 -3
  133. package/build-module/navigation/edit/index.js.map +1 -1
  134. package/build-module/navigation/edit/inner-blocks.js +2 -2
  135. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  136. package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -2
  137. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  138. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -14
  139. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  140. package/build-module/navigation/index.js +2 -3
  141. package/build-module/navigation/index.js.map +1 -1
  142. package/build-module/navigation/use-navigation-menu.js +35 -47
  143. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  144. package/build-module/navigation/view-interactivity.js +182 -0
  145. package/build-module/navigation/view-interactivity.js.map +1 -0
  146. package/build-module/navigation/view-modal.js +58 -0
  147. package/build-module/navigation/view-modal.js.map +1 -0
  148. package/build-module/navigation/view.js +50 -173
  149. package/build-module/navigation/view.js.map +1 -1
  150. package/build-module/navigation-link/edit.js +12 -7
  151. package/build-module/navigation-link/edit.js.map +1 -1
  152. package/build-module/navigation-submenu/edit.js +2 -2
  153. package/build-module/navigation-submenu/edit.js.map +1 -1
  154. package/build-module/query-pagination/edit.js +1 -1
  155. package/build-module/query-pagination/edit.js.map +1 -1
  156. package/build-module/query-title/edit.js +44 -3
  157. package/build-module/query-title/edit.js.map +1 -1
  158. package/build-module/quote/transforms.js +8 -0
  159. package/build-module/quote/transforms.js.map +1 -1
  160. package/build-module/rss/edit.js +3 -0
  161. package/build-module/rss/edit.js.map +1 -1
  162. package/build-module/search/edit.js +4 -3
  163. package/build-module/search/edit.js.map +1 -1
  164. package/build-module/search/index.js +1 -0
  165. package/build-module/search/index.js.map +1 -1
  166. package/build-module/site-logo/edit.js +1 -0
  167. package/build-module/site-logo/edit.js.map +1 -1
  168. package/build-module/tag-cloud/edit.js +1 -0
  169. package/build-module/tag-cloud/edit.js.map +1 -1
  170. package/build-module/template-part/edit/index.js +1 -1
  171. package/build-module/template-part/edit/index.js.map +1 -1
  172. package/build-module/text-columns/edit.js +1 -0
  173. package/build-module/text-columns/edit.js.map +1 -1
  174. package/build-style/details/style-rtl.css +4 -2
  175. package/build-style/details/style.css +4 -2
  176. package/build-style/footnotes/style-rtl.css +4 -3
  177. package/build-style/footnotes/style.css +4 -3
  178. package/build-style/navigation/style-rtl.css +14 -2
  179. package/build-style/navigation/style.css +14 -2
  180. package/build-style/query-pagination/style-rtl.css +4 -2
  181. package/build-style/query-pagination/style.css +4 -2
  182. package/build-style/style-rtl.css +26 -9
  183. package/build-style/style.css +26 -9
  184. package/package.json +33 -32
  185. package/src/audio/test/__snapshots__/edit.native.js.snap +58 -33
  186. package/src/avatar/edit.js +1 -0
  187. package/src/block/block.json +2 -1
  188. package/src/block/editor.native.scss +2 -2
  189. package/src/buttons/edit.js +2 -2
  190. package/src/column/edit.native.js +4 -10
  191. package/src/column/editor.native.scss +0 -4
  192. package/src/columns/edit.js +1 -0
  193. package/src/comment-author-avatar/edit.js +1 -0
  194. package/src/comment-template/index.php +5 -2
  195. package/src/cover/deprecated.js +2 -0
  196. package/src/embed/embed-placeholder.native.js +80 -47
  197. package/src/embed/styles.native.scss +54 -18
  198. package/src/embed/test/index.native.js +5 -5
  199. package/src/file/block.json +1 -2
  200. package/src/file/index.php +19 -1
  201. package/src/file/inspector.js +1 -0
  202. package/src/file/test/__snapshots__/edit.native.js.snap +58 -33
  203. package/src/file/view-interactivity.js +18 -0
  204. package/src/file/view.js +5 -14
  205. package/src/footnotes/block.json +0 -1
  206. package/src/footnotes/edit.js +21 -2
  207. package/src/footnotes/format.js +22 -20
  208. package/src/footnotes/style.scss +6 -3
  209. package/src/gallery/edit.js +1 -1
  210. package/src/gallery/test/index.native.js +17 -16
  211. package/src/home-link/index.php +15 -2
  212. package/src/image/index.php +47 -8
  213. package/src/image/test/edit.native.js +1 -1
  214. package/src/latest-comments/edit.js +1 -0
  215. package/src/latest-posts/edit.js +2 -0
  216. package/src/list/edit.js +6 -4
  217. package/src/list/test/edit.native.js +129 -33
  218. package/src/media-text/media-container.native.js +1 -0
  219. package/src/missing/edit.native.js +12 -10
  220. package/src/missing/style.native.scss +19 -12
  221. package/src/missing/test/__snapshots__/edit.native.js.snap +21 -13
  222. package/src/navigation/block.json +2 -3
  223. package/src/navigation/constants.js +12 -6
  224. package/src/navigation/edit/index.js +29 -1
  225. package/src/navigation/edit/inner-blocks.js +2 -2
  226. package/src/navigation/edit/unsaved-inner-blocks.js +2 -2
  227. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +17 -21
  228. package/src/navigation/index.php +24 -6
  229. package/src/navigation/style.scss +27 -8
  230. package/src/navigation/use-navigation-menu.js +39 -63
  231. package/src/navigation/view-interactivity.js +196 -0
  232. package/src/navigation/view-modal.js +78 -0
  233. package/src/navigation/view.js +67 -189
  234. package/src/navigation-link/edit.js +61 -47
  235. package/src/navigation-submenu/edit.js +2 -2
  236. package/src/paragraph/test/__snapshots__/edit.native.js.snap +1 -0
  237. package/src/paragraph/test/edit.native.js +26 -0
  238. package/src/post-template/index.php +4 -2
  239. package/src/post-title/index.php +6 -3
  240. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -0
  241. package/src/query-pagination/edit.js +17 -14
  242. package/src/query-title/edit.js +48 -6
  243. package/src/quote/test/__snapshots__/transforms.native.js.snap +10 -0
  244. package/src/quote/test/transforms.native.js +5 -1
  245. package/src/quote/transforms.js +13 -0
  246. package/src/rss/edit.js +3 -0
  247. package/src/search/block.json +1 -0
  248. package/src/search/edit.js +4 -3
  249. package/src/search/index.php +22 -4
  250. package/src/search/test/__snapshots__/edit.native.js.snap +7 -0
  251. package/src/site-logo/edit.js +1 -0
  252. package/src/tag-cloud/edit.js +1 -0
  253. package/src/template-part/edit/index.js +1 -1
  254. package/src/template-part/index.php +9 -15
  255. package/src/text-columns/edit.js +1 -0
  256. package/build/gallery/shared-icon.native.js +0 -38
  257. package/build/gallery/shared-icon.native.js.map +0 -1
  258. package/build-module/gallery/shared-icon.native.js +0 -24
  259. package/build-module/gallery/shared-icon.native.js.map +0 -1
  260. package/src/gallery/shared-icon.native.js +0 -23
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/rss/edit.js"],"names":["DEFAULT_MIN_ITEMS","DEFAULT_MAX_ITEMS","RSSEdit","attributes","setAttributes","isEditing","setIsEditing","feedURL","blockLayout","columns","displayAuthor","displayDate","displayExcerpt","excerptLength","itemsToShow","toggleAttribute","propName","value","onSubmitURL","event","preventDefault","blockProps","rss","toolbarControls","icon","edit","title","onClick","list","isActive","grid"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tPlaceholder,\n\tRangeControl,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { grid, list, edit, rss } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { prependHTTP } from '@wordpress/url';\nimport ServerSideRender from '@wordpress/server-side-render';\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 20;\n\nexport default function RSSEdit( { attributes, setAttributes } ) {\n\tconst [ isEditing, setIsEditing ] = useState( ! attributes.feedURL );\n\n\tconst {\n\t\tblockLayout,\n\t\tcolumns,\n\t\tdisplayAuthor,\n\t\tdisplayDate,\n\t\tdisplayExcerpt,\n\t\texcerptLength,\n\t\tfeedURL,\n\t\titemsToShow,\n\t} = attributes;\n\n\tfunction toggleAttribute( propName ) {\n\t\treturn () => {\n\t\t\tconst value = attributes[ propName ];\n\n\t\t\tsetAttributes( { [ propName ]: ! value } );\n\t\t};\n\t}\n\n\tfunction onSubmitURL( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( feedURL ) {\n\t\t\tsetAttributes( { feedURL: prependHTTP( feedURL ) } );\n\t\t\tsetIsEditing( false );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps();\n\n\tif ( isEditing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder icon={ rss } label=\"RSS\">\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ onSubmitURL }\n\t\t\t\t\t\tclassName=\"wp-block-rss__placeholder-form\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack wrap>\n\t\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t\t__next36pxDefaultSize\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Enter URL here…' ) }\n\t\t\t\t\t\t\t\tvalue={ feedURL }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { feedURL: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"wp-block-rss__placeholder-input\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t{ __( 'Use URL' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst toolbarControls = [\n\t\t{\n\t\t\ticon: edit,\n\t\t\ttitle: __( 'Edit RSS URL' ),\n\t\t\tonClick: () => setIsEditing( true ),\n\t\t},\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setAttributes( { blockLayout: 'list' } ),\n\t\t\tisActive: blockLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () => setAttributes( { blockLayout: 'grid' } ),\n\t\t\tisActive: blockLayout === 'grid',\n\t\t},\n\t];\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ toolbarControls } />\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\t\t\tvalue={ itemsToShow }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { itemsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ DEFAULT_MIN_ITEMS }\n\t\t\t\t\t\tmax={ DEFAULT_MAX_ITEMS }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display author' ) }\n\t\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAuthor' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayDate' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayExcerpt' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayExcerpt && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words in excerpt' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 10 }\n\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ blockLayout === 'grid' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={ 6 }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tblock=\"core/rss\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/rss/edit.js"],"names":["DEFAULT_MIN_ITEMS","DEFAULT_MAX_ITEMS","RSSEdit","attributes","setAttributes","isEditing","setIsEditing","feedURL","blockLayout","columns","displayAuthor","displayDate","displayExcerpt","excerptLength","itemsToShow","toggleAttribute","propName","value","onSubmitURL","event","preventDefault","blockProps","rss","toolbarControls","icon","edit","title","onClick","list","isActive","grid"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tPlaceholder,\n\tRangeControl,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { grid, list, edit, rss } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { prependHTTP } from '@wordpress/url';\nimport ServerSideRender from '@wordpress/server-side-render';\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 20;\n\nexport default function RSSEdit( { attributes, setAttributes } ) {\n\tconst [ isEditing, setIsEditing ] = useState( ! attributes.feedURL );\n\n\tconst {\n\t\tblockLayout,\n\t\tcolumns,\n\t\tdisplayAuthor,\n\t\tdisplayDate,\n\t\tdisplayExcerpt,\n\t\texcerptLength,\n\t\tfeedURL,\n\t\titemsToShow,\n\t} = attributes;\n\n\tfunction toggleAttribute( propName ) {\n\t\treturn () => {\n\t\t\tconst value = attributes[ propName ];\n\n\t\t\tsetAttributes( { [ propName ]: ! value } );\n\t\t};\n\t}\n\n\tfunction onSubmitURL( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( feedURL ) {\n\t\t\tsetAttributes( { feedURL: prependHTTP( feedURL ) } );\n\t\t\tsetIsEditing( false );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps();\n\n\tif ( isEditing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder icon={ rss } label=\"RSS\">\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ onSubmitURL }\n\t\t\t\t\t\tclassName=\"wp-block-rss__placeholder-form\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack wrap>\n\t\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t\t__next36pxDefaultSize\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Enter URL here…' ) }\n\t\t\t\t\t\t\t\tvalue={ feedURL }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { feedURL: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"wp-block-rss__placeholder-input\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t{ __( 'Use URL' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst toolbarControls = [\n\t\t{\n\t\t\ticon: edit,\n\t\t\ttitle: __( 'Edit RSS URL' ),\n\t\t\tonClick: () => setIsEditing( true ),\n\t\t},\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setAttributes( { blockLayout: 'list' } ),\n\t\t\tisActive: blockLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () => setAttributes( { blockLayout: 'grid' } ),\n\t\t\tisActive: blockLayout === 'grid',\n\t\t},\n\t];\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ toolbarControls } />\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\t\t\tvalue={ itemsToShow }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { itemsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ DEFAULT_MIN_ITEMS }\n\t\t\t\t\t\tmax={ DEFAULT_MAX_ITEMS }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display author' ) }\n\t\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAuthor' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayDate' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayExcerpt' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayExcerpt && (\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={ __( 'Max number of words in excerpt' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 10 }\n\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ blockLayout === 'grid' && (\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={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={ 6 }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tblock=\"core/rss\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
@@ -77,9 +77,9 @@ function SearchEdit({
77
77
  const {
78
78
  __unstableMarkNextChangeAsNotPersistent
79
79
  } = (0, _data.useDispatch)(_blockEditor.store);
80
- (0, _element.useEffect)(() => {
81
- if (!insertedInNavigationBlock) return; // This side-effect should not create an undo level.
82
80
 
81
+ if (insertedInNavigationBlock) {
82
+ // This side-effect should not create an undo level.
83
83
  __unstableMarkNextChangeAsNotPersistent();
84
84
 
85
85
  setAttributes({
@@ -87,7 +87,8 @@ function SearchEdit({
87
87
  buttonUseIcon: true,
88
88
  buttonPosition: 'button-inside'
89
89
  });
90
- }, [insertedInNavigationBlock]);
90
+ }
91
+
91
92
  const borderRadius = style?.border?.radius;
92
93
  const borderProps = (0, _blockEditor.__experimentalUseBorderProps)(attributes); // Check for old deprecated numerical border radius. Done as a separate
93
94
  // check so that a borderRadius style won't overwrite the longhand
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/search/edit.js"],"names":["DEFAULT_INNER_PADDING","BUTTON_BEHAVIOR_EXPAND","SearchEdit","className","attributes","setAttributes","toggleSelection","isSelected","clientId","label","showLabel","placeholder","width","widthUnit","align","buttonText","buttonPosition","buttonUseIcon","buttonBehavior","isSearchFieldHidden","style","insertedInNavigationBlock","select","getBlockParentsByBlockName","wasBlockJustInserted","blockEditorStore","length","__unstableMarkNextChangeAsNotPersistent","borderRadius","border","radius","borderProps","colorProps","fluidTypographySettings","layout","typographyProps","typography","fluid","wideSize","unitControlInstanceId","UnitControl","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","searchFieldRef","buttonRef","units","availableUnits","defaultValues","PC_WIDTH_DEFAULT","px","PX_WIDTH_DEFAULT","getBlockClassNames","undefined","buttonPositionControls","role","title","isActive","icon","buttonOutside","onClick","buttonInside","noButton","buttonOnly","getButtonPositionIcon","getResizableSides","right","left","renderTextField","textFieldClasses","textFieldStyles","textDecoration","event","target","value","renderButton","buttonClasses","buttonStyles","handleButtonClick","search","html","controls","toggleLabel","buttonWithIcon","MIN_WIDTH","MIN_WIDTH_UNIT","newWidth","filteredWidth","parseInt","newUnit","map","widthValue","padBorderRadius","getWrapperStyles","styles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","topLeft","topRight","bottomLeft","bottomRight","Number","isInteger","blockProps","labelClassnames","direction","elt","offsetWidth","delta"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tMIN_WIDTH_UNIT,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\n\nconst BUTTON_BEHAVIOR_EXPAND = 'expand-searchfield';\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tbuttonBehavior,\n\t\tisSearchFieldHidden,\n\t\tstyle,\n\t} = attributes;\n\n\tconst insertedInNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tuseEffect( () => {\n\t\tif ( ! insertedInNavigationBlock ) return;\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( {\n\t\t\tshowLabel: false,\n\t\t\tbuttonUseIcon: true,\n\t\t\tbuttonPosition: 'button-inside',\n\t\t} );\n\t}, [ insertedInNavigationBlock ] );\n\tconst borderRadius = style?.border?.radius;\n\tconst borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps.style.borderRadius = `${ borderRadius }px`;\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst fluidTypographySettings = useSetting( 'typography.fluid' );\n\tconst layout = useSetting( 'layout' );\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\tconst searchFieldRef = useRef();\n\tconst buttonRef = useRef();\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( hasOnlyButton && ! isSelected ) {\n\t\t\tsetAttributes( {\n\t\t\t\tisSearchFieldHidden: true,\n\t\t\t} );\n\t\t}\n\t}, [ hasOnlyButton, isSelected, setAttributes ] );\n\n\t// Show the search field when width changes.\n\tuseEffect( () => {\n\t\tif ( ! hasOnlyButton || ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tisSearchFieldHidden: false,\n\t\t} );\n\t}, [ hasOnlyButton, isSelected, setAttributes, width ] );\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior\n\t\t\t\t? 'wp-block-search__button-behavior-expand'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && isSearchFieldHidden\n\t\t\t\t? 'wp-block-search__searchfield-hidden'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button only' ),\n\t\t\tisActive: buttonPosition === 'button-only',\n\t\t\ticon: buttonOnly,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-only',\n\t\t\t\t\tisSearchFieldHidden: true,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\n\t\t}\n\t};\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = classnames(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\ttypographyProps.className\n\t\t);\n\t\tconst textFieldStyles = {\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t\t...typographyProps.style,\n\t\t\ttextDecoration: undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t\tref={ searchFieldRef }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = classnames(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\ttypographyProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined,\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...typographyProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\t\tconst handleButtonClick = () => {\n\t\t\tif ( hasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisSearchFieldHidden: ! isSearchFieldHidden,\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t\tref={ buttonRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : undefined\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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Display Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={ `${ MIN_WIDTH }${ MIN_WIDTH_UNIT }` }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\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__unstableInputWidth={ '80px' }\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\twidthValue === width &&\n\t\t\t\t\t\t\t\t\t\t\twidthUnit === '%'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\n\t\t\t\t\t\t\t\t\t\t\t} )\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{ widthValue }%\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</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst { topLeft, topRight, bottomLeft, bottomRight } =\n\t\t\t\t\tborderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t\tstyle: {\n\t\t\t...typographyProps.style,\n\t\t\t// Input opts out of text decoration.\n\t\t\ttextDecoration: undefined,\n\t\t},\n\t} );\n\n\tconst labelClassnames = classnames(\n\t\t'wp-block-search__label',\n\t\ttypographyProps.className\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tclassName={ labelClassnames }\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t\tstyle={ typographyProps.style }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: `${ width }${ widthUnit }`,\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside ||\n\t\t\t\t\tisButtonPositionOutside ||\n\t\t\t\t\thasOnlyButton ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/search/edit.js"],"names":["DEFAULT_INNER_PADDING","BUTTON_BEHAVIOR_EXPAND","SearchEdit","className","attributes","setAttributes","toggleSelection","isSelected","clientId","label","showLabel","placeholder","width","widthUnit","align","buttonText","buttonPosition","buttonUseIcon","buttonBehavior","isSearchFieldHidden","style","insertedInNavigationBlock","select","getBlockParentsByBlockName","wasBlockJustInserted","blockEditorStore","length","__unstableMarkNextChangeAsNotPersistent","borderRadius","border","radius","borderProps","colorProps","fluidTypographySettings","layout","typographyProps","typography","fluid","wideSize","unitControlInstanceId","UnitControl","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","searchFieldRef","buttonRef","units","availableUnits","defaultValues","PC_WIDTH_DEFAULT","px","PX_WIDTH_DEFAULT","getBlockClassNames","undefined","buttonPositionControls","role","title","isActive","icon","buttonOutside","onClick","buttonInside","noButton","buttonOnly","getButtonPositionIcon","getResizableSides","right","left","renderTextField","textFieldClasses","textFieldStyles","textDecoration","event","target","value","renderButton","buttonClasses","buttonStyles","handleButtonClick","search","html","controls","toggleLabel","buttonWithIcon","MIN_WIDTH","MIN_WIDTH_UNIT","newWidth","filteredWidth","parseInt","newUnit","map","widthValue","padBorderRadius","getWrapperStyles","styles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","topLeft","topRight","bottomLeft","bottomRight","Number","isInteger","blockProps","labelClassnames","direction","elt","offsetWidth","delta"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tMIN_WIDTH_UNIT,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\n\nconst BUTTON_BEHAVIOR_EXPAND = 'expand-searchfield';\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tbuttonBehavior,\n\t\tisSearchFieldHidden,\n\t\tstyle,\n\t} = attributes;\n\n\tconst insertedInNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tif ( insertedInNavigationBlock ) {\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( {\n\t\t\tshowLabel: false,\n\t\t\tbuttonUseIcon: true,\n\t\t\tbuttonPosition: 'button-inside',\n\t\t} );\n\t}\n\n\tconst borderRadius = style?.border?.radius;\n\tconst borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps.style.borderRadius = `${ borderRadius }px`;\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst fluidTypographySettings = useSetting( 'typography.fluid' );\n\tconst layout = useSetting( 'layout' );\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\tconst searchFieldRef = useRef();\n\tconst buttonRef = useRef();\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( hasOnlyButton && ! isSelected ) {\n\t\t\tsetAttributes( {\n\t\t\t\tisSearchFieldHidden: true,\n\t\t\t} );\n\t\t}\n\t}, [ hasOnlyButton, isSelected, setAttributes ] );\n\n\t// Show the search field when width changes.\n\tuseEffect( () => {\n\t\tif ( ! hasOnlyButton || ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tisSearchFieldHidden: false,\n\t\t} );\n\t}, [ hasOnlyButton, isSelected, setAttributes, width ] );\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior\n\t\t\t\t? 'wp-block-search__button-behavior-expand'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && isSearchFieldHidden\n\t\t\t\t? 'wp-block-search__searchfield-hidden'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button only' ),\n\t\t\tisActive: buttonPosition === 'button-only',\n\t\t\ticon: buttonOnly,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-only',\n\t\t\t\t\tisSearchFieldHidden: true,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\n\t\t}\n\t};\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = classnames(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\ttypographyProps.className\n\t\t);\n\t\tconst textFieldStyles = {\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t\t...typographyProps.style,\n\t\t\ttextDecoration: undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t\tref={ searchFieldRef }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = classnames(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\ttypographyProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined,\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...typographyProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\t\tconst handleButtonClick = () => {\n\t\t\tif ( hasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisSearchFieldHidden: ! isSearchFieldHidden,\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t\tref={ buttonRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : undefined\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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Display Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={ `${ MIN_WIDTH }${ MIN_WIDTH_UNIT }` }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\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__unstableInputWidth={ '80px' }\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\twidthValue === width &&\n\t\t\t\t\t\t\t\t\t\t\twidthUnit === '%'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\n\t\t\t\t\t\t\t\t\t\t\t} )\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{ widthValue }%\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</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst { topLeft, topRight, bottomLeft, bottomRight } =\n\t\t\t\t\tborderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t\tstyle: {\n\t\t\t...typographyProps.style,\n\t\t\t// Input opts out of text decoration.\n\t\t\ttextDecoration: undefined,\n\t\t},\n\t} );\n\n\tconst labelClassnames = classnames(\n\t\t'wp-block-search__label',\n\t\ttypographyProps.className\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tclassName={ labelClassnames }\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t\tstyle={ typographyProps.style }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: `${ width }${ widthUnit }`,\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside ||\n\t\t\t\t\tisButtonPositionOutside ||\n\t\t\t\t\thasOnlyButton ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n"]}
@@ -116,6 +116,7 @@ const metadata = {
116
116
  },
117
117
  html: false
118
118
  },
119
+ viewScript: "file:./view.min.js",
119
120
  editorStyle: "wp-block-search-editor",
120
121
  style: "wp-block-search"
121
122
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/search/index.js"],"names":["name","metadata","settings","icon","example","attributes","buttonText","label","viewportWidth","variations","edit","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AAEA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAU,EAAE,cAAI,QAAJ,CAAd;AAA8BC,MAAAA,KAAK,EAAE,cAAI,QAAJ;AAArC,KADJ;AAERC,IAAAA,aAAa,EAAE;AAFP,GAFc;AAMvBC,EAAAA,UAAU,EAAVA,mBANuB;AAOvBC,EAAAA,IAAI,EAAJA;AAPuB,CAAjB;;;AAUA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEX,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { search as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t\tviewportWidth: 400,\n\t},\n\tvariations,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/search/index.js"],"names":["name","metadata","settings","icon","example","attributes","buttonText","label","viewportWidth","variations","edit","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AAEA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAU,EAAE,cAAI,QAAJ,CAAd;AAA8BC,MAAAA,KAAK,EAAE,cAAI,QAAJ;AAArC,KADJ;AAERC,IAAAA,aAAa,EAAE;AAFP,GAFc;AAMvBC,EAAAA,UAAU,EAAVA,mBANuB;AAOvBC,EAAAA,IAAI,EAAJA;AAPuB,CAAjB;;;AAUA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEX,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { search as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t\tviewportWidth: 400,\n\t},\n\tvariations,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -269,6 +269,7 @@ const SiteLogo = ({
269
269
  title: (0, _i18n.__)('Settings')
270
270
  }, (0, _element.createElement)(_components.RangeControl, {
271
271
  __nextHasNoMarginBottom: true,
272
+ __next40pxDefaultSize: true,
272
273
  label: (0, _i18n.__)('Image width'),
273
274
  onChange: newWidth => setAttributes({
274
275
  width: newWidth
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/site-logo/edit.js"],"names":["ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","containerRef","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","clientWidth","isLargeViewport","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","blockEditorStore","classes","imageEditing","maxWidth","title","select","settings","getSettings","siteEntities","coreStore","getEntityRecord","name","onResizeStart","onResizeStop","img","event","target","imgWrapper","preventDefault","imageWidthWithinContainer","exceedMaxWidth","defaultWidth","currentWidth","ratio","currentHeight","minWidth","MIN_SIZE","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","imageAttributes","id","top","right","bottom","left","direction","elt","delta","parseInt","syncSiteIconHelpText","a","newWidth","min","value","undefined","crop","SiteLogoReplaceFlow","onRemoveLogo","mediaReplaceProps","InspectorLogoPreview","mediaItemData","itemGroupProps","alt_text","source_url","slug","logoSlug","media_details","logoMediaDetails","logoLabel","sizes","full","file","LogoEdit","className","ref","siteLogoId","url","siteIconId","isRequestingMediaItem","mediaUpload","canUser","getEditedEntityRecord","_canUserEdit","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","editEntityRecord","newValue","shouldForceSync","onInitialSelectLogo","media","onSelectLogo","createErrorNotice","noticesStore","onUploadError","message","type","onFilesDrop","filesList","allowedTypes","onFileChange","image","onError","mediaReplaceFlowProps","mediaURL","onSelect","controls","logoImage","isLoading","placeholder","content","placeholderClassName","blockProps","label","mediaInspectorPanel","isBordered","open","upload"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tMenuItem,\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\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\tMediaUpload,\n\tMediaUploadCheck,\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 useClientWidth from '../image/use-client-width';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE } from '../image/constants';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = 'image/*';\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tcontainerRef,\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst classes = classnames( 'custom-logo-link', {\n\t\t'is-transient': isBlobURL( logoUrl ),\n\t} );\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst 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<img\n\t\t\tclassName=\"custom-logo\"\n\t\t\tsrc={ logoUrl }\n\t\t\talt={ alt }\n\t\t\tonLoad={ ( event ) => {\n\t\t\t\tsetNaturalSize( {\n\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n\n\tlet imgWrapper = img;\n\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName={ classes }\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\t}\n\n\tlet imageWidthWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t}\n\n\tif ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\n\t\t\t<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\tclientWidth={ clientWidth }\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\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={\n\t\t\t\t\t\tsiteUrl +\n\t\t\t\t\t\t'/wp-admin/customize.php?autofocus[section]=title_tagline'\n\t\t\t\t\t}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\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</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\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</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\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( { onRemoveLogo, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t>\n\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t</MediaReplaceFlow>\n\t);\n}\n\nconst InspectorLogoPreview = ( { mediaItemData = {}, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = mediaItemData;\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 ref = useRef();\n\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t\tmediaUpload,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', 'settings' );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t_siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.home,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t\tmediaUpload: select( blockEditorStore ).getSettings().mediaUpload,\n\t\t};\n\t}, [] );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( 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} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonRemoveLogo,\n\t};\n\tconst controls = canUserEdit && logoUrl && (\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\tif ( !! logoUrl ) {\n\t\tlogoImage = (\n\t\t\t<SiteLogo\n\t\t\t\talt={ alt }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tclassName={ className }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tlogoUrl={ logoUrl }\n\t\t\t\tsetLogo={ setLogo }\n\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\tsiteUrl={ url }\n\t\t\t\tsetIcon={ setIcon }\n\t\t\t\ticonId={ siteIconId }\n\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t/>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration={ true }\n\t\t\t\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 = classnames( className, {\n\t\t'is-default-size': ! width,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\tconst label = __( 'Add a site logo' );\n\n\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 && !! logoUrl && (\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmediaItemData={ 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{ canUserEdit && !! logoUrl && (\n\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\tmediaItemData={ mediaItemData }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopoverProps={ {} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && ! logoUrl && (\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<div className=\"block-library-site-logo__inspector-upload-container\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ isLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Add media' )\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\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 && logoImage }\n\t\t\t{ ! logoUrl && ! canUserEdit && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\">\n\t\t\t\t\t{ !! isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/site-logo/edit.js"],"names":["ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","containerRef","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","clientWidth","isLargeViewport","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","blockEditorStore","classes","imageEditing","maxWidth","title","select","settings","getSettings","siteEntities","coreStore","getEntityRecord","name","onResizeStart","onResizeStop","img","event","target","imgWrapper","preventDefault","imageWidthWithinContainer","exceedMaxWidth","defaultWidth","currentWidth","ratio","currentHeight","minWidth","MIN_SIZE","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","imageAttributes","id","top","right","bottom","left","direction","elt","delta","parseInt","syncSiteIconHelpText","a","newWidth","min","value","undefined","crop","SiteLogoReplaceFlow","onRemoveLogo","mediaReplaceProps","InspectorLogoPreview","mediaItemData","itemGroupProps","alt_text","source_url","slug","logoSlug","media_details","logoMediaDetails","logoLabel","sizes","full","file","LogoEdit","className","ref","siteLogoId","url","siteIconId","isRequestingMediaItem","mediaUpload","canUser","getEditedEntityRecord","_canUserEdit","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","editEntityRecord","newValue","shouldForceSync","onInitialSelectLogo","media","onSelectLogo","createErrorNotice","noticesStore","onUploadError","message","type","onFilesDrop","filesList","allowedTypes","onFileChange","image","onError","mediaReplaceFlowProps","mediaURL","onSelect","controls","logoImage","isLoading","placeholder","content","placeholderClassName","blockProps","label","mediaInspectorPanel","isBordered","open","upload"],"mappings":";;;;;;;;;AASA;;AANA;;AAKA;;AAOA;;AACA;;AAgBA;;AACA;;AAWA;;AACA;;AACA;;AACA;;AAKA;;AAKA;;AAzDA;AACA;AACA;;AAGA;AACA;AACA;;AA0CA;AACA;AACA;;AAGA;AACA;AACA;AAGA,MAAMA,mBAAmB,GAAG,CAAE,OAAF,CAA5B;AACA,MAAMC,mBAAmB,GAAG,SAA5B;;AAEA,MAAMC,QAAQ,GAAG,CAAE;AAClBC,EAAAA,GADkB;AAElBC,EAAAA,UAAU,EAAE;AAAEC,IAAAA,KAAF;AAASC,IAAAA,KAAT;AAAgBC,IAAAA,MAAhB;AAAwBC,IAAAA,MAAxB;AAAgCC,IAAAA,UAAhC;AAA4CC,IAAAA;AAA5C,GAFM;AAGlBC,EAAAA,YAHkB;AAIlBC,EAAAA,UAJkB;AAKlBC,EAAAA,aALkB;AAMlBC,EAAAA,OANkB;AAOlBC,EAAAA,OAPkB;AAQlBC,EAAAA,OARkB;AASlBC,EAAAA,MATkB;AAUlBC,EAAAA,MAVkB;AAWlBC,EAAAA,OAXkB;AAYlBC,EAAAA;AAZkB,CAAF,KAaV;AACN,QAAMC,WAAW,GAAG,6BAAgBV,YAAhB,EAA8B,CAAEN,KAAF,CAA9B,CAApB;AACA,QAAMiB,eAAe,GAAG,+BAAkB,QAAlB,CAAxB;AACA,QAAMC,aAAa,GAAG,CAAE,MAAF,EAAU,MAAV,EAAmBC,QAAnB,CAA6BnB,KAA7B,CAAtB;AACA,QAAMoB,WAAW,GAAG,CAAEF,aAAF,IAAmBD,eAAvC;AACA,QAAM,CAAE;AAAEI,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAF,EAAmCC,cAAnC,IAAsD,uBAAU,EAAV,CAA5D;AACA,QAAM,CAAEC,cAAF,EAAkBC,iBAAlB,IAAwC,uBAAU,KAAV,CAA9C;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAsB,uBAAaC,kBAAb,CAA5B;AACA,QAAMC,OAAO,GAAG,yBAAY,kBAAZ,EAAgC;AAC/C,oBAAgB,qBAAWlB,OAAX;AAD+B,GAAhC,CAAhB;AAGA,QAAM;AAAEmB,IAAAA,YAAF;AAAgBC,IAAAA,QAAhB;AAA0BC,IAAAA;AAA1B,MAAoC,qBAAaC,MAAF,IAAc;AAClE,UAAMC,QAAQ,GAAGD,MAAM,CAAEL,kBAAF,CAAN,CAA2BO,WAA3B,EAAjB;AACA,UAAMC,YAAY,GAAGH,MAAM,CAAEI,eAAF,CAAN,CAAoBC,eAApB,CACpB,MADoB,EAEpB,gBAFoB,CAArB;AAIA,WAAO;AACNN,MAAAA,KAAK,EAAEI,YAAY,EAAEG,IADf;AAENT,MAAAA,YAAY,EAAEI,QAAQ,CAACJ,YAFjB;AAGNC,MAAAA,QAAQ,EAAEG,QAAQ,CAACH;AAHb,KAAP;AAKA,GAXyC,EAWvC,EAXuC,CAA1C;AAaA,0BAAW,MAAM;AAChB;AACA;AACA;AACA,QAAKzB,cAAc,IAAIO,MAAM,KAAKC,MAAlC,EAA2C;AAC1CL,MAAAA,aAAa,CAAE;AAAEH,QAAAA,cAAc,EAAE;AAAlB,OAAF,CAAb;AACA;AACD,GAPD,EAOG,EAPH;AASA,0BAAW,MAAM;AAChB,QAAK,CAAEE,UAAP,EAAoB;AACnBkB,MAAAA,iBAAiB,CAAE,KAAF,CAAjB;AACA;AACD,GAJD,EAIG,CAAElB,UAAF,CAJH;;AAMA,WAASgC,aAAT,GAAyB;AACxBb,IAAAA,eAAe,CAAE,KAAF,CAAf;AACA;;AAED,WAASc,YAAT,GAAwB;AACvBd,IAAAA,eAAe,CAAE,IAAF,CAAf;AACA;;AAED,QAAMe,GAAG,GACR;AACC,IAAA,SAAS,EAAC,aADX;AAEC,IAAA,GAAG,EAAG/B,OAFP;AAGC,IAAA,GAAG,EAAGZ,GAHP;AAIC,IAAA,MAAM,EAAK4C,KAAF,IAAa;AACrBnB,MAAAA,cAAc,CAAE;AACfF,QAAAA,YAAY,EAAEqB,KAAK,CAACC,MAAN,CAAatB,YADZ;AAEfC,QAAAA,aAAa,EAAEoB,KAAK,CAACC,MAAN,CAAarB;AAFb,OAAF,CAAd;AAIA;AATF,IADD;AAcA,MAAIsB,UAAU,GAAGH,GAAjB,CA7DM,CA+DN;AACA;;AACA,MAAKtC,MAAL,EAAc;AACbyC,IAAAA,UAAU;AACT;AACA;AACC,MAAA,IAAI,EAAGjC,OADR;AAEC,MAAA,SAAS,EAAGiB,OAFb;AAGC,MAAA,GAAG,EAAC,MAHL;AAIC,MAAA,KAAK,EAAGG,KAJT;AAKC,MAAA,OAAO,EAAKW,KAAF,IAAaA,KAAK,CAACG,cAAN;AALxB,OAOGJ,GAPH;AASA;AAXD;AAaA;;AAED,MAAIK,yBAAJ;;AAEA,MAAK9B,WAAW,IAAIK,YAAf,IAA+BC,aAApC,EAAoD;AACnD,UAAMyB,cAAc,GAAG1B,YAAY,GAAGL,WAAtC;AACA8B,IAAAA,yBAAyB,GAAGC,cAAc,GAAG/B,WAAH,GAAiBK,YAA3D;AACA;;AAED,MAAK,CAAED,WAAF,IAAiB,CAAE0B,yBAAxB,EAAoD;AACnD,WAAO;AAAK,MAAA,KAAK,EAAG;AAAE7C,QAAAA,KAAF;AAASC,QAAAA;AAAT;AAAb,OAAmC0C,UAAnC,CAAP;AACA,GA1FK,CA4FN;AACA;;;AACA,QAAMI,YAAY,GAAG,GAArB;AAEA,QAAMC,YAAY,GAAGhD,KAAK,IAAI+C,YAA9B;AACA,QAAME,KAAK,GAAG7B,YAAY,GAAGC,aAA7B;AACA,QAAM6B,aAAa,GAAGF,YAAY,GAAGC,KAArC;AACA,QAAME,QAAQ,GACb/B,YAAY,GAAGC,aAAf,GAA+B+B,mBAA/B,GAA0CC,IAAI,CAACC,IAAL,CAAWF,sBAAWH,KAAtB,CAD3C;AAEA,QAAMM,SAAS,GACdlC,aAAa,GAAGD,YAAhB,GAA+BgC,mBAA/B,GAA0CC,IAAI,CAACC,IAAL,CAAWF,sBAAWH,KAAtB,CAD3C,CArGM,CAwGN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAMO,cAAc,GAAG3B,QAAQ,GAAG,GAAlC;AAEA,MAAI4B,eAAe,GAAG,KAAtB;AACA,MAAIC,cAAc,GAAG,KAArB;AAEA;AACA;;AACA,MAAK3D,KAAK,KAAK,QAAf,EAA0B;AACzB;AACA0D,IAAAA,eAAe,GAAG,IAAlB;AACAC,IAAAA,cAAc,GAAG,IAAjB;AACA,GAJD,MAIO,IAAK,kBAAL,EAAe;AACrB;AACA;AACA;AACA,QAAK3D,KAAK,KAAK,MAAf,EAAwB;AACvB0D,MAAAA,eAAe,GAAG,IAAlB;AACA,KAFD,MAEO;AACNC,MAAAA,cAAc,GAAG,IAAjB;AACA;AACD,GATM,MASA;AACN;AACA;AACA,QAAK3D,KAAK,KAAK,OAAf,EAAyB;AACxB2D,MAAAA,cAAc,GAAG,IAAjB;AACA,KAFD,MAEO;AACND,MAAAA,eAAe,GAAG,IAAlB;AACA;AACD;AACD;;;AAEA,QAAME,YAAY,GACjBhD,MAAM,IAAIS,YAAV,IAA0BC,aAA1B,IAA2CO,YAD5C;AAGA,QAAMgC,OAAO,GACZD,YAAY,IAAIpC,cAAhB,GACC,4BAAC,sCAAD;AACC,IAAA,EAAE,EAAGZ,MADN;AAEC,IAAA,GAAG,EAAGF,OAFP;AAGC,IAAA,KAAK,EAAGuC,YAHT;AAIC,IAAA,MAAM,EAAGE,aAJV;AAKC,IAAA,WAAW,EAAGnC,WALf;AAMC,IAAA,aAAa,EAAGM,aANjB;AAOC,IAAA,YAAY,EAAGD,YAPhB;AAQC,IAAA,WAAW,EAAKyC,eAAF,IAAuB;AACpCrD,MAAAA,OAAO,CAAEqD,eAAe,CAACC,EAAlB,CAAP;AACA,KAVF;AAWC,IAAA,eAAe,EAAG,MAAM;AACvBtC,MAAAA,iBAAiB,CAAE,KAAF,CAAjB;AACA;AAbF,IADD,GAiBC,4BAAC,wBAAD;AACC,IAAA,IAAI,EAAG;AACNxB,MAAAA,KAAK,EAAEgD,YADD;AAEN/C,MAAAA,MAAM,EAAEiD;AAFF,KADR;AAKC,IAAA,UAAU,EAAG5C,UALd;AAMC,IAAA,QAAQ,EAAG6C,QANZ;AAOC,IAAA,QAAQ,EAAGK,cAPZ;AAQC,IAAA,SAAS,EAAGD,SARb;AASC,IAAA,SAAS,EAAGC,cAAc,GAAGP,KAT9B;AAUC,IAAA,eAAe,MAVhB;AAWC,IAAA,MAAM,EAAG;AACRc,MAAAA,GAAG,EAAE,KADG;AAERC,MAAAA,KAAK,EAAEP,eAFC;AAGRQ,MAAAA,MAAM,EAAE,IAHA;AAIRC,MAAAA,IAAI,EAAER;AAJE,KAXV;AAiBC,IAAA,aAAa,EAAGpB,aAjBjB;AAkBC,IAAA,YAAY,EAAG,CAAEG,KAAF,EAAS0B,SAAT,EAAoBC,GAApB,EAAyBC,KAAzB,KAAoC;AAClD9B,MAAAA,YAAY;AACZhC,MAAAA,aAAa,CAAE;AACdP,QAAAA,KAAK,EAAEsE,QAAQ,CAAEtB,YAAY,GAAGqB,KAAK,CAACrE,KAAvB,EAA8B,EAA9B,CADD;AAEdC,QAAAA,MAAM,EAAEqE,QAAQ,CAAEpB,aAAa,GAAGmB,KAAK,CAACpE,MAAxB,EAAgC,EAAhC;AAFF,OAAF,CAAb;AAIA;AAxBF,KA0BG0C,UA1BH,CAlBF;AAgDA,QAAM4B,oBAAoB,GAAG,uCAC5B,cACC,kMADD,CAD4B,EAI5B;AACCC,IAAAA,CAAC,EACA;AACA;AACC,MAAA,IAAI,EACH9D,OAAO,GACP,0DAHF;AAKC,MAAA,MAAM,EAAC,QALR;AAMC,MAAA,GAAG,EAAC;AANL;AAHF,GAJ4B,CAA7B;AAmBA,SACC,qDACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,KACC,4BAAC,wBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,qBAAqB,MAFtB;AAGC,IAAA,KAAK,EAAG,cAAI,aAAJ,CAHT;AAIC,IAAA,QAAQ,EAAK+D,QAAF,IACVlE,aAAa,CAAE;AAAEP,MAAAA,KAAK,EAAEyE;AAAT,KAAF,CALf;AAOC,IAAA,GAAG,EAAGtB,QAPP;AAQC,IAAA,GAAG,EAAGK,cARP;AASC,IAAA,eAAe,EAAGH,IAAI,CAACqB,GAAL,CACjB3B,YADiB,EAEjBS,cAFiB,CATnB;AAaC,IAAA,KAAK,EAAGxD,KAAK,IAAI,EAblB;AAcC,IAAA,QAAQ,EAAG,CAAEmB;AAdd,IADD,EAiBC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,oBAAJ,CAFT;AAGC,IAAA,QAAQ,EAAG,MAAMZ,aAAa,CAAE;AAAEL,MAAAA,MAAM,EAAE,CAAEA;AAAZ,KAAF,CAH/B;AAIC,IAAA,OAAO,EAAGA;AAJX,IAjBD,EAuBGA,MAAM,IACP,qDACC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,iBAAJ,CAFT;AAGC,IAAA,QAAQ,EAAKyE,KAAF,IACVpE,aAAa,CAAE;AACdJ,MAAAA,UAAU,EAAEwE,KAAK,GAAG,QAAH,GAAc;AADjB,KAAF,CAJf;AAQC,IAAA,OAAO,EAAGxE,UAAU,KAAK;AAR1B,IADD,CAxBF,EAqCGW,WAAW,IACZ,qDACC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,kBAAJ,CAFT;AAGC,IAAA,QAAQ,EAAK6D,KAAF,IAAa;AACvBpE,MAAAA,aAAa,CAAE;AAAEH,QAAAA,cAAc,EAAEuE;AAAlB,OAAF,CAAb;AACA9D,MAAAA,OAAO,CAAE8D,KAAK,GAAGhE,MAAH,GAAYiE,SAAnB,CAAP;AACA,KANF;AAOC,IAAA,OAAO,EAAG,CAAC,CAAExE,cAPd;AAQC,IAAA,IAAI,EAAGmE;AARR,IADD,CAtCF,CADD,CADD,EAuDC,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACGZ,YAAY,IAAI,CAAEpC,cAAlB,IACD,4BAAC,yBAAD;AACC,IAAA,OAAO,EAAG,MAAMC,iBAAiB,CAAE,IAAF,CADlC;AAEC,IAAA,IAAI,EAAGqD,WAFR;AAGC,IAAA,KAAK,EAAG,cAAI,MAAJ;AAHT,IAFF,CAvDD,EAgEGjB,OAhEH,CADD;AAoEA,CAvSD,C,CAySA;AACA;;;AACA,SAASkB,mBAAT,CAA8B;AAAEC,EAAAA,YAAF;AAAgB,KAAGC;AAAnB,CAA9B,EAAuE;AACtE,SACC,4BAAC,6BAAD,OACMA,iBADN;AAEC,IAAA,YAAY,EAAGtF,mBAFhB;AAGC,IAAA,MAAM,EAAGC;AAHV,KAKC,4BAAC,oBAAD;AAAU,IAAA,OAAO,EAAGoF;AAApB,KAAqC,cAAI,OAAJ,CAArC,CALD,CADD;AASA;;AAED,MAAME,oBAAoB,GAAG,CAAE;AAAEC,EAAAA,aAAa,GAAG,EAAlB;AAAsBC,EAAAA;AAAtB,CAAF,KAA8C;AAC1E,QAAM;AACLC,IAAAA,QAAQ,EAAEvF,GADL;AAELwF,IAAAA,UAAU,EAAE5E,OAFP;AAGL6E,IAAAA,IAAI,EAAEC,QAHD;AAILC,IAAAA,aAAa,EAAEC;AAJV,MAKFP,aALJ;AAMA,QAAMQ,SAAS,GAAGD,gBAAgB,EAAEE,KAAlB,EAAyBC,IAAzB,EAA+BC,IAA/B,IAAuCN,QAAzD;AACA,SACC,4BAAC,mCAAD,OAAgBJ,cAAhB;AAAiC,IAAA,EAAE,EAAC;AAApC,KACC,4BAAC,gCAAD;AAAQ,IAAA,OAAO,EAAC,YAAhB;AAA6B,IAAA,EAAE,EAAC;AAAhC,KACC;AAAK,IAAA,GAAG,EAAG1E,OAAX;AAAqB,IAAA,GAAG,EAAGZ;AAA3B,IADD,EAEC,4BAAC,oBAAD;AAAU,IAAA,EAAE,EAAC;AAAb,KACC,4BAAC,kCAAD;AACC,IAAA,aAAa,EAAG,CADjB;AAEC,IAAA,SAAS,EAAC;AAFX,KAIG6F,SAJH,CADD,CAFD,CADD,CADD;AAeA,CAvBD;;AAyBe,SAASI,QAAT,CAAmB;AACjChG,EAAAA,UADiC;AAEjCiG,EAAAA,SAFiC;AAGjCxF,EAAAA,aAHiC;AAIjCD,EAAAA;AAJiC,CAAnB,EAKX;AACH,QAAM;AAAEN,IAAAA,KAAF;AAASI,IAAAA;AAAT,MAA4BN,UAAlC;AACA,QAAMkG,GAAG,GAAG,sBAAZ;AAEA,QAAM;AACLC,IAAAA,UADK;AAELnF,IAAAA,WAFK;AAGLoF,IAAAA,GAHK;AAILC,IAAAA,UAJK;AAKLjB,IAAAA,aALK;AAMLkB,IAAAA,qBANK;AAOLC,IAAAA;AAPK,MAQF,qBAAatE,MAAF,IAAc;AAC5B,UAAM;AAAEuE,MAAAA,OAAF;AAAWlE,MAAAA,eAAX;AAA4BmE,MAAAA;AAA5B,QACLxE,MAAM,CAAEI,eAAF,CADP;;AAEA,UAAMqE,YAAY,GAAGF,OAAO,CAAE,QAAF,EAAY,UAAZ,CAA5B;;AACA,UAAMG,YAAY,GAAGD,YAAY,GAC9BD,qBAAqB,CAAE,MAAF,EAAU,MAAV,CADS,GAE9B3B,SAFH;AAGA,UAAM8B,QAAQ,GAAGtE,eAAe,CAAE,MAAF,EAAU,gBAAV,CAAhC;;AACA,UAAMuE,WAAW,GAAGH,YAAY,GAC7BC,YAAY,EAAEG,SADe,GAE7BF,QAAQ,EAAEE,SAFb;;AAGA,UAAMC,WAAW,GAAGJ,YAAY,EAAEK,SAAlC;;AACA,UAAMC,SAAS,GACdJ,WAAW,IACX5E,MAAM,CAAEI,eAAF,CAAN,CAAoB6E,QAApB,CAA8BL,WAA9B,EAA2C;AAC1CM,MAAAA,OAAO,EAAE;AADiC,KAA3C,CAFD;;AAKA,UAAMC,sBAAsB,GAC3BP,WAAW,IACX,CAAE5E,MAAM,CAAEI,eAAF,CAAN,CAAoBgF,qBAApB,CAA2C,UAA3C,EAAuD,CACxDR,WADwD,EAExD;AAAEM,MAAAA,OAAO,EAAE;AAAX,KAFwD,CAAvD,CAFH;;AAOA,WAAO;AACNhB,MAAAA,UAAU,EAAEU,WADN;AAEN7F,MAAAA,WAAW,EAAE0F,YAFP;AAGNN,MAAAA,GAAG,EAAEQ,QAAQ,EAAEU,IAHT;AAINlC,MAAAA,aAAa,EAAE6B,SAJT;AAKNX,MAAAA,qBAAqB,EAAEc,sBALjB;AAMNf,MAAAA,UAAU,EAAEU,WANN;AAONR,MAAAA,WAAW,EAAEtE,MAAM,CAAEL,kBAAF,CAAN,CAA2BO,WAA3B,GAAyCoE;AAPhD,KAAP;AASA,GAjCG,EAiCD,EAjCC,CARJ;AA2CA,QAAM;AAAEgB,IAAAA;AAAF,MAAuB,uBAAalF,eAAb,CAA7B;;AAEA,QAAM3B,OAAO,GAAG,CAAE8G,QAAF,EAAYC,eAAe,GAAG,KAA9B,KAAyC;AACxD;AACA;AACA,QAAKnH,cAAc,IAAImH,eAAvB,EAAyC;AACxC1G,MAAAA,OAAO,CAAEyG,QAAF,CAAP;AACA;;AAEDD,IAAAA,gBAAgB,CAAE,MAAF,EAAU,MAAV,EAAkBzC,SAAlB,EAA6B;AAC5CgC,MAAAA,SAAS,EAAEU;AADiC,KAA7B,CAAhB;AAGA,GAVD;;AAYA,QAAMzG,OAAO,GAAKyG,QAAF,IACf;AACAD,EAAAA,gBAAgB,CAAE,MAAF,EAAU,MAAV,EAAkBzC,SAAlB,EAA6B;AAC5CkC,IAAAA,SAAS,EAAEQ,QAAF,aAAEA,QAAF,cAAEA,QAAF,GAAc;AADqB,GAA7B,CAFjB;;AAMA,QAAM;AAAElC,IAAAA,QAAQ,EAAEvF,GAAZ;AAAiBwF,IAAAA,UAAU,EAAE5E;AAA7B,MAAyCyE,aAAzC,aAAyCA,aAAzC,cAAyCA,aAAzC,GAA0D,EAAhE;;AAEA,QAAMsC,mBAAmB,GAAKC,KAAF,IAAa;AACxC;AACA;AACA,QAAKrH,cAAc,KAAKwE,SAAxB,EAAoC;AACnC,YAAM2C,eAAe,GAAG,CAAEpB,UAA1B;AACA5F,MAAAA,aAAa,CAAE;AAAEH,QAAAA,cAAc,EAAEmH;AAAlB,OAAF,CAAb,CAFmC,CAInC;AACA;;AACAG,MAAAA,YAAY,CAAED,KAAF,EAASF,eAAT,CAAZ;AACA;AACA;;AAEDG,IAAAA,YAAY,CAAED,KAAF,CAAZ;AACA,GAdD;;AAgBA,QAAMC,YAAY,GAAG,CAAED,KAAF,EAASF,eAAe,GAAG,KAA3B,KAAsC;AAC1D,QAAK,CAAEE,KAAP,EAAe;AACd;AACA;;AAED,QAAK,CAAEA,KAAK,CAAC3D,EAAR,IAAc2D,KAAK,CAACvB,GAAzB,EAA+B;AAC9B;AACA1F,MAAAA,OAAO,CAAEoE,SAAF,CAAP;AACA;AACA;;AAEDpE,IAAAA,OAAO,CAAEiH,KAAK,CAAC3D,EAAR,EAAYyD,eAAZ,CAAP;AACA,GAZD;;AAcA,QAAMxC,YAAY,GAAG,MAAM;AAC1BvE,IAAAA,OAAO,CAAE,IAAF,CAAP;AACAD,IAAAA,aAAa,CAAE;AAAEP,MAAAA,KAAK,EAAE4E;AAAT,KAAF,CAAb;AACA,GAHD;;AAKA,QAAM;AAAE+C,IAAAA;AAAF,MAAwB,uBAAaC,cAAb,CAA9B;;AACA,QAAMC,aAAa,GAAKC,OAAF,IAAe;AACpCH,IAAAA,iBAAiB,CAAEG,OAAF,EAAW;AAAEC,MAAAA,IAAI,EAAE;AAAR,KAAX,CAAjB;AACA,GAFD;;AAIA,QAAMC,WAAW,GAAKC,SAAF,IAAiB;AACpC5B,IAAAA,WAAW,CAAE;AACZ6B,MAAAA,YAAY,EAAE,CAAE,OAAF,CADF;AAEZD,MAAAA,SAFY;;AAGZE,MAAAA,YAAY,CAAE,CAAEC,KAAF,CAAF,EAAc;AACzB,YAAK,qBAAWA,KAAK,EAAElC,GAAlB,CAAL,EAA+B;AAC9B;AACA;;AACDsB,QAAAA,mBAAmB,CAAEY,KAAF,CAAnB;AACA,OARW;;AASZC,MAAAA,OAAO,EAAER;AATG,KAAF,CAAX;AAWA,GAZD;;AAcA,QAAMS,qBAAqB,GAAG;AAC7BC,IAAAA,QAAQ,EAAE9H,OADmB;AAE7B+H,IAAAA,QAAQ,EAAEd,YAFmB;AAG7BW,IAAAA,OAAO,EAAER,aAHoB;AAI7B9C,IAAAA;AAJ6B,GAA9B;AAMA,QAAM0D,QAAQ,GAAG3H,WAAW,IAAIL,OAAf,IAChB,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,mBAAD,OAA0B6H;AAA1B,IADD,CADD;AAMA,MAAII,SAAJ;AACA,QAAMC,SAAS,GAAG1C,UAAU,KAAKrB,SAAf,IAA4BwB,qBAA9C;;AACA,MAAKuC,SAAL,EAAiB;AAChBD,IAAAA,SAAS,GAAG,4BAAC,mBAAD,OAAZ;AACA;;AACD,MAAK,CAAC,CAAEjI,OAAR,EAAkB;AACjBiI,IAAAA,SAAS,GACR,4BAAC,QAAD;AACC,MAAA,GAAG,EAAG7I,GADP;AAEC,MAAA,UAAU,EAAGC,UAFd;AAGC,MAAA,SAAS,EAAGiG,SAHb;AAIC,MAAA,YAAY,EAAGC,GAJhB;AAKC,MAAA,UAAU,EAAG1F,UALd;AAMC,MAAA,aAAa,EAAGC,aANjB;AAOC,MAAA,OAAO,EAAGE,OAPX;AAQC,MAAA,OAAO,EAAGD,OARX;AASC,MAAA,MAAM,EAAG0E,aAAa,EAAEpB,EAAf,IAAqBmC,UAT/B;AAUC,MAAA,OAAO,EAAGC,GAVX;AAWC,MAAA,OAAO,EAAGrF,OAXX;AAYC,MAAA,MAAM,EAAGsF,UAZV;AAaC,MAAA,WAAW,EAAGrF;AAbf,MADD;AAiBA;;AACD,QAAM8H,WAAW,GAAKC,OAAF,IAAe;AAClC,UAAMC,oBAAoB,GAAG,yBAC5B,gCAD4B,EAE5B/C,SAF4B,CAA7B;AAKA,WACC,4BAAC,uBAAD;AACC,MAAA,SAAS,EAAG+C,oBADb;AAEC,MAAA,OAAO,EAAGJ,SAFX;AAGC,MAAA,gBAAgB,EAAG,IAHpB;AAIC,MAAA,KAAK,EAAG;AACP1I,QAAAA;AADO;AAJT,OAQG6I,OARH,CADD;AAYA,GAlBD;;AAoBA,QAAMlH,OAAO,GAAG,yBAAYoE,SAAZ,EAAuB;AACtC,uBAAmB,CAAE/F;AADiB,GAAvB,CAAhB;AAIA,QAAM+I,UAAU,GAAG,gCAAe;AACjC/C,IAAAA,GADiC;AAEjCD,IAAAA,SAAS,EAAEpE;AAFsB,GAAf,CAAnB;AAKA,QAAMqH,KAAK,GAAG,cAAI,iBAAJ,CAAd;AAEA,QAAMC,mBAAmB,GAAG,CAAEnI,WAAW,IAAIL,OAAjB,KAC3B,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,OAAJ;AAAnB,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,CAAEK,WAAF,IAAiB,CAAC,CAAEL,OAApB,IACD,4BAAC,oBAAD;AACC,IAAA,aAAa,EAAGyE,aADjB;AAEC,IAAA,cAAc,EAAG;AAChBgE,MAAAA,UAAU,EAAE,IADI;AAEhBnD,MAAAA,SAAS,EACR;AAHe;AAFlB,IAFF,EAWGjF,WAAW,IAAI,CAAC,CAAEL,OAAlB,IACD,4BAAC,mBAAD,OACM6H,qBADN;AAEC,IAAA,IAAI,EACH,4BAAC,oBAAD;AACC,MAAA,aAAa,EAAGpD;AADjB,MAHF;AAOC,IAAA,YAAY,EAAG;AAPhB,IAZF,EAsBGpE,WAAW,IAAI,CAAEL,OAAjB,IACD,4BAAC,6BAAD,QACC,4BAAC,wBAAD;AACC,IAAA,QAAQ,EAAG+G,mBADZ;AAEC,IAAA,YAAY,EAAG9H,mBAFhB;AAGC,IAAA,MAAM,EAAG,CAAE;AAAEyJ,MAAAA;AAAF,KAAF,KACR;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,4BAAC,kBAAD;AACC,MAAA,OAAO,EAAGA,IADX;AAEC,MAAA,OAAO,EAAC;AAFT,OAIGR,SAAS,GACV,4BAAC,mBAAD,OADU,GAGV,cAAI,WAAJ,CAPF,CADD,EAWC,4BAAC,oBAAD;AAAU,MAAA,WAAW,EAAGX;AAAxB,MAXD;AAJF,IADD,CAvBF,CADD,CADD,CADD;AAqDA,SACC,wCAAUe;AAAV,KACGN,QADH,EAEGQ,mBAFH,EAGG,CAAC,CAAExI,OAAH,IAAciI,SAHjB,EAIG,CAAEjI,OAAF,IAAa,CAAEK,WAAf,IACD,4BAAC,uBAAD;AAAa,IAAA,SAAS,EAAC;AAAvB,KACG,CAAC,CAAE6H,SAAH,IACD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,4BAAC,mBAAD,OADD,CAFF,CALF,EAaG,CAAElI,OAAF,IAAaK,WAAb,IACD,4BAAC,6BAAD;AACC,IAAA,QAAQ,EAAG0G,mBADZ;AAEC,IAAA,MAAM,EAAG7H,mBAFV;AAGC,IAAA,YAAY,EAAGD,mBAHhB;AAIC,IAAA,OAAO,EAAGmI,aAJX;AAKC,IAAA,WAAW,EAAGe,WALf;AAMC,IAAA,kBAAkB,EAAG,CAAE;AAAEO,MAAAA;AAAF,KAAF,KAAgB;AACpC,aACC,4BAAC,kBAAD;AACC,QAAA,IAAI,EAAGC,aADR;AAEC,QAAA,OAAO,EAAC,SAFT;AAGC,QAAA,KAAK,EAAGJ,KAHT;AAIC,QAAA,WAAW,MAJZ;AAKC,QAAA,eAAe,EAAC,YALjB;AAMC,QAAA,OAAO,EAAG,MAAM;AACfG,UAAAA,IAAI;AACJ;AARF,QADD;AAYA;AAnBF,IAdF,CADD;AAuCA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tMenuItem,\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\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\tMediaUpload,\n\tMediaUploadCheck,\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 useClientWidth from '../image/use-client-width';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE } from '../image/constants';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = 'image/*';\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tcontainerRef,\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst classes = classnames( 'custom-logo-link', {\n\t\t'is-transient': isBlobURL( logoUrl ),\n\t} );\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst 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<img\n\t\t\tclassName=\"custom-logo\"\n\t\t\tsrc={ logoUrl }\n\t\t\talt={ alt }\n\t\t\tonLoad={ ( event ) => {\n\t\t\t\tsetNaturalSize( {\n\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n\n\tlet imgWrapper = img;\n\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName={ classes }\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\t}\n\n\tlet imageWidthWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t}\n\n\tif ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\n\t\t\t<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\tclientWidth={ clientWidth }\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\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={\n\t\t\t\t\t\tsiteUrl +\n\t\t\t\t\t\t'/wp-admin/customize.php?autofocus[section]=title_tagline'\n\t\t\t\t\t}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\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</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\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</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\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( { onRemoveLogo, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t>\n\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t</MediaReplaceFlow>\n\t);\n}\n\nconst InspectorLogoPreview = ( { mediaItemData = {}, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = mediaItemData;\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 ref = useRef();\n\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t\tmediaUpload,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', 'settings' );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t_siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.home,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t\tmediaUpload: select( blockEditorStore ).getSettings().mediaUpload,\n\t\t};\n\t}, [] );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( 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} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonRemoveLogo,\n\t};\n\tconst controls = canUserEdit && logoUrl && (\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\tif ( !! logoUrl ) {\n\t\tlogoImage = (\n\t\t\t<SiteLogo\n\t\t\t\talt={ alt }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tclassName={ className }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tlogoUrl={ logoUrl }\n\t\t\t\tsetLogo={ setLogo }\n\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\tsiteUrl={ url }\n\t\t\t\tsetIcon={ setIcon }\n\t\t\t\ticonId={ siteIconId }\n\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t/>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration={ true }\n\t\t\t\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 = classnames( className, {\n\t\t'is-default-size': ! width,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\tconst label = __( 'Add a site logo' );\n\n\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 && !! logoUrl && (\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmediaItemData={ 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{ canUserEdit && !! logoUrl && (\n\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\tmediaItemData={ mediaItemData }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopoverProps={ {} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && ! logoUrl && (\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<div className=\"block-library-site-logo__inspector-upload-container\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ isLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Add media' )\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\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 && logoImage }\n\t\t\t{ ! logoUrl && ! canUserEdit && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\">\n\t\t\t\t\t{ !! isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
@@ -117,6 +117,7 @@ function TagCloudEdit({
117
117
  })
118
118
  }), (0, _element.createElement)(_components.RangeControl, {
119
119
  __nextHasNoMarginBottom: true,
120
+ __next40pxDefaultSize: true,
120
121
  label: (0, _i18n.__)('Number of tags'),
121
122
  value: numberOfTags,
122
123
  onChange: value => setAttributes({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/tag-cloud/edit.js"],"names":["MIN_TAGS","MAX_TAGS","MIN_FONT_SIZE","MAX_FONT_SIZE","TagCloudEdit","attributes","setAttributes","taxonomies","taxonomy","showTagCounts","numberOfTags","smallestFontSize","largestFontSize","units","availableUnits","getTaxonomyOptions","selectOption","label","value","disabled","taxonomyOptions","filter","tax","show_cloud","map","item","slug","name","onFontSizeChange","fontSizeLabel","newValue","quantity","newUnit","Number","isFinite","updateObj","Object","entries","forEach","attribute","currentValue","currentQuantity","currentUnit","inspectorControls","selectedTaxonomy","select","coreStore","getTaxonomies","per_page"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tFlexItem,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\tRangeControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\tDisabled,\n} from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Minimum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_TAGS = 1;\n\n/**\n * Maximum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_TAGS = 100;\n\nconst MIN_FONT_SIZE = 0.1;\nconst MAX_FONT_SIZE = 100;\n\nfunction TagCloudEdit( { attributes, setAttributes, taxonomies } ) {\n\tconst {\n\t\ttaxonomy,\n\t\tshowTagCounts,\n\t\tnumberOfTags,\n\t\tsmallestFontSize,\n\t\tlargestFontSize,\n\t} = attributes;\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t],\n\t} );\n\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( '- Select -' ),\n\t\t\tvalue: '',\n\t\t\tdisabled: true,\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( tax ) => !! tax.show_cloud )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\tconst onFontSizeChange = ( fontSizeLabel, newValue ) => {\n\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\tconst [ quantity, newUnit ] =\n\t\t\tparseQuantityAndUnitFromRawValue( newValue );\n\t\tif ( ! Number.isFinite( quantity ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updateObj = { [ fontSizeLabel ]: newValue };\n\t\t// We need to keep in sync the `unit` changes to both `smallestFontSize`\n\t\t// and `largestFontSize` attributes.\n\t\tObject.entries( {\n\t\t\tsmallestFontSize,\n\t\t\tlargestFontSize,\n\t\t} ).forEach( ( [ attribute, currentValue ] ) => {\n\t\t\tconst [ currentQuantity, currentUnit ] =\n\t\t\t\tparseQuantityAndUnitFromRawValue( currentValue );\n\t\t\t// Only add an update if the other font size attribute has a different unit.\n\t\t\tif ( attribute !== fontSizeLabel && currentUnit !== newUnit ) {\n\t\t\t\tupdateObj[ attribute ] = `${ currentQuantity }${ newUnit }`;\n\t\t\t}\n\t\t} );\n\t\tsetAttributes( updateObj );\n\t};\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\tsetAttributes( { taxonomy: selectedTaxonomy } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\tchecked={ showTagCounts }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( { showTagCounts: ! showTagCounts } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Number of tags' ) }\n\t\t\t\t\tvalue={ numberOfTags }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { numberOfTags: value } )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ MIN_TAGS }\n\t\t\t\t\tmax={ MAX_TAGS }\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Smallest size' ) }\n\t\t\t\t\t\t\tvalue={ smallestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'smallestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Largest size' ) }\n\t\t\t\t\t\t\tvalue={ largestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'largestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tskipBlockSupportAttributes\n\t\t\t\t\t\tblock=\"core/tag-cloud\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\treturn {\n\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t};\n} )( TagCloudEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/tag-cloud/edit.js"],"names":["MIN_TAGS","MAX_TAGS","MIN_FONT_SIZE","MAX_FONT_SIZE","TagCloudEdit","attributes","setAttributes","taxonomies","taxonomy","showTagCounts","numberOfTags","smallestFontSize","largestFontSize","units","availableUnits","getTaxonomyOptions","selectOption","label","value","disabled","taxonomyOptions","filter","tax","show_cloud","map","item","slug","name","onFontSizeChange","fontSizeLabel","newValue","quantity","newUnit","Number","isFinite","updateObj","Object","entries","forEach","attribute","currentValue","currentQuantity","currentUnit","inspectorControls","selectedTaxonomy","select","coreStore","getTaxonomies","per_page"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tFlexItem,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\tRangeControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\tDisabled,\n} from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Minimum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_TAGS = 1;\n\n/**\n * Maximum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_TAGS = 100;\n\nconst MIN_FONT_SIZE = 0.1;\nconst MAX_FONT_SIZE = 100;\n\nfunction TagCloudEdit( { attributes, setAttributes, taxonomies } ) {\n\tconst {\n\t\ttaxonomy,\n\t\tshowTagCounts,\n\t\tnumberOfTags,\n\t\tsmallestFontSize,\n\t\tlargestFontSize,\n\t} = attributes;\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t],\n\t} );\n\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( '- Select -' ),\n\t\t\tvalue: '',\n\t\t\tdisabled: true,\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( tax ) => !! tax.show_cloud )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\tconst onFontSizeChange = ( fontSizeLabel, newValue ) => {\n\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\tconst [ quantity, newUnit ] =\n\t\t\tparseQuantityAndUnitFromRawValue( newValue );\n\t\tif ( ! Number.isFinite( quantity ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updateObj = { [ fontSizeLabel ]: newValue };\n\t\t// We need to keep in sync the `unit` changes to both `smallestFontSize`\n\t\t// and `largestFontSize` attributes.\n\t\tObject.entries( {\n\t\t\tsmallestFontSize,\n\t\t\tlargestFontSize,\n\t\t} ).forEach( ( [ attribute, currentValue ] ) => {\n\t\t\tconst [ currentQuantity, currentUnit ] =\n\t\t\t\tparseQuantityAndUnitFromRawValue( currentValue );\n\t\t\t// Only add an update if the other font size attribute has a different unit.\n\t\t\tif ( attribute !== fontSizeLabel && currentUnit !== newUnit ) {\n\t\t\t\tupdateObj[ attribute ] = `${ currentQuantity }${ newUnit }`;\n\t\t\t}\n\t\t} );\n\t\tsetAttributes( updateObj );\n\t};\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\tsetAttributes( { taxonomy: selectedTaxonomy } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\tchecked={ showTagCounts }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( { showTagCounts: ! showTagCounts } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Number of tags' ) }\n\t\t\t\t\tvalue={ numberOfTags }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { numberOfTags: value } )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ MIN_TAGS }\n\t\t\t\t\tmax={ MAX_TAGS }\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Smallest size' ) }\n\t\t\t\t\t\t\tvalue={ smallestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'smallestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Largest size' ) }\n\t\t\t\t\t\t\tvalue={ largestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'largestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tskipBlockSupportAttributes\n\t\t\t\t\t\tblock=\"core/tag-cloud\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\treturn {\n\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t};\n} )( TagCloudEdit );\n"]}
@@ -81,7 +81,7 @@ function TemplatePartEdit({
81
81
  isMissing: hasResolvedEntity && (!entityRecord || Object.keys(entityRecord).length === 0),
82
82
  area: _area
83
83
  };
84
- }, [templatePartId, clientId]);
84
+ }, [templatePartId, attributes.area, clientId]);
85
85
  const {
86
86
  templateParts
87
87
  } = (0, _hooks.useAlternativeTemplateParts)(area, templatePartId);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/index.js"],"names":["TemplatePartEdit","attributes","setAttributes","clientId","isSelected","slug","theme","tagName","layout","templatePartId","hasAlreadyRendered","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","isResolved","innerBlocks","isMissing","area","select","getEditedEntityRecord","hasFinishedResolution","coreStore","getBlocks","blockEditorStore","getEntityArgs","entityRecord","_area","hasResolvedEntity","Object","keys","length","templateParts","blockPatterns","hasReplacements","areaObject","blockProps","isPlaceholder","isEntityAvailable","TagName","canReplace","BlockTitle","label","toLowerCase"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tBlockTitle,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n} from '@wordpress/block-editor';\nimport { Spinner, Modal, MenuItem } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n} ) {\n\tconst { slug, theme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\t// Set the postId block attribute if it did not exist,\n\t// but wait until the inner blocks have loaded to allow\n\t// new edits to trigger this.\n\tconst { isResolved, innerBlocks, isMissing, area } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, clientId ]\n\t);\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\t// The `isSelected` check ensures the `BlockSettingsMenuControls` fill\n\t// doesn't render multiple times. The block controls has similar internal check.\n\tconst canReplace =\n\t\tisSelected &&\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\tinnerBlocks.length === 0 &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\thasInnerBlocks={ innerBlocks.length > 0 }\n\t\t\t\t/>\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t{ canReplace && (\n\t\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__( 'Replace <BlockTitle />' ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBlockTitle: (\n\t\t\t\t\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\tmaximumLength={ 25 }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockSettingsMenuControls>\n\t\t\t\t) }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ innerBlocks.length > 0 }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen={ true }\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/index.js"],"names":["TemplatePartEdit","attributes","setAttributes","clientId","isSelected","slug","theme","tagName","layout","templatePartId","hasAlreadyRendered","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","isResolved","innerBlocks","isMissing","area","select","getEditedEntityRecord","hasFinishedResolution","coreStore","getBlocks","blockEditorStore","getEntityArgs","entityRecord","_area","hasResolvedEntity","Object","keys","length","templateParts","blockPatterns","hasReplacements","areaObject","blockProps","isPlaceholder","isEntityAvailable","TagName","canReplace","BlockTitle","label","toLowerCase"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tBlockTitle,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n} from '@wordpress/block-editor';\nimport { Spinner, Modal, MenuItem } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n} ) {\n\tconst { slug, theme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\t// Set the postId block attribute if it did not exist,\n\t// but wait until the inner blocks have loaded to allow\n\t// new edits to trigger this.\n\tconst { isResolved, innerBlocks, isMissing, area } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, attributes.area, clientId ]\n\t);\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\t// The `isSelected` check ensures the `BlockSettingsMenuControls` fill\n\t// doesn't render multiple times. The block controls has similar internal check.\n\tconst canReplace =\n\t\tisSelected &&\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\tinnerBlocks.length === 0 &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\thasInnerBlocks={ innerBlocks.length > 0 }\n\t\t\t\t/>\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t{ canReplace && (\n\t\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__( 'Replace <BlockTitle />' ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBlockTitle: (\n\t\t\t\t\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\tmaximumLength={ 25 }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockSettingsMenuControls>\n\t\t\t\t) }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ innerBlocks.length > 0 }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen={ true }\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -41,6 +41,7 @@ function TextColumnsEdit({
41
41
  controls: ['center', 'wide', 'full']
42
42
  })), (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, null, (0, _element.createElement)(_components.RangeControl, {
43
43
  __nextHasNoMarginBottom: true,
44
+ __next40pxDefaultSize: true,
44
45
  label: (0, _i18n.__)('Columns'),
45
46
  value: columns,
46
47
  onChange: value => setAttributes({