@wordpress/block-library 9.7.0 → 9.7.1-next.5368f64a9.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 (238) hide show
  1. package/build/archives/edit.js +1 -1
  2. package/build/archives/edit.js.map +1 -1
  3. package/build/block/edit.js +2 -3
  4. package/build/block/edit.js.map +1 -1
  5. package/build/buttons/index.js +1 -1
  6. package/build/comments/edit/comments-legacy.js +2 -4
  7. package/build/comments/edit/comments-legacy.js.map +1 -1
  8. package/build/cover/deprecated.js +1 -1
  9. package/build/cover/deprecated.js.map +1 -1
  10. package/build/cover/edit/index.js +4 -2
  11. package/build/cover/edit/index.js.map +1 -1
  12. package/build/embed/edit.js +5 -11
  13. package/build/embed/edit.js.map +1 -1
  14. package/build/embed/embed-placeholder.js +4 -8
  15. package/build/embed/embed-placeholder.js.map +1 -1
  16. package/build/embed/embed-preview.js +16 -4
  17. package/build/embed/embed-preview.js.map +1 -1
  18. package/build/file/transforms.js +18 -4
  19. package/build/file/transforms.js.map +1 -1
  20. package/build/freeform/modal.js +6 -12
  21. package/build/freeform/modal.js.map +1 -1
  22. package/build/image/edit.js +55 -15
  23. package/build/image/edit.js.map +1 -1
  24. package/build/image/image.js +23 -20
  25. package/build/image/image.js.map +1 -1
  26. package/build/image/transforms.js +0 -13
  27. package/build/image/transforms.js.map +1 -1
  28. package/build/image/use-max-width-observer.js +35 -0
  29. package/build/image/use-max-width-observer.js.map +1 -0
  30. package/build/image/utils.js +11 -0
  31. package/build/image/utils.js.map +1 -1
  32. package/build/latest-posts/edit.js +1 -1
  33. package/build/latest-posts/edit.js.map +1 -1
  34. package/build/missing/edit.js +2 -4
  35. package/build/missing/edit.js.map +1 -1
  36. package/build/navigation/edit/deleted-navigation-warning.js +14 -10
  37. package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
  38. package/build/navigation/edit/index.js +2 -4
  39. package/build/navigation/edit/index.js.map +1 -1
  40. package/build/navigation/edit/menu-inspector-controls.js +2 -1
  41. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  42. package/build/navigation/edit/navigation-menu-delete-control.js +2 -4
  43. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  44. package/build/navigation/edit/placeholder/index.js +2 -4
  45. package/build/navigation/edit/placeholder/index.js.map +1 -1
  46. package/build/navigation/edit/responsive-wrapper.js +4 -8
  47. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  48. package/build/navigation-link/link-ui.js +2 -4
  49. package/build/navigation-link/link-ui.js.map +1 -1
  50. package/build/page-list/convert-to-links-modal.js +4 -8
  51. package/build/page-list/convert-to-links-modal.js.map +1 -1
  52. package/build/page-list/edit.js +2 -4
  53. package/build/page-list/edit.js.map +1 -1
  54. package/build/post-comments-form/form.js +2 -4
  55. package/build/post-comments-form/form.js.map +1 -1
  56. package/build/post-featured-image/edit.js +2 -4
  57. package/build/post-featured-image/edit.js.map +1 -1
  58. package/build/post-title/index.js +4 -1
  59. package/build/post-title/index.js.map +1 -1
  60. package/build/query/edit/enhanced-pagination-modal.js +4 -6
  61. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  62. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  63. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  64. package/build/query/edit/inspector-controls/index.js +2 -10
  65. package/build/query/edit/inspector-controls/index.js.map +1 -1
  66. package/build/query/edit/query-content.js +9 -3
  67. package/build/query/edit/query-content.js.map +1 -1
  68. package/build/query/edit/query-placeholder.js +4 -8
  69. package/build/query/edit/query-placeholder.js.map +1 -1
  70. package/build/site-logo/edit.js +4 -8
  71. package/build/site-logo/edit.js.map +1 -1
  72. package/build/site-title/index.js +4 -1
  73. package/build/site-title/index.js.map +1 -1
  74. package/build/social-link/edit.js +1 -1
  75. package/build/social-link/edit.js.map +1 -1
  76. package/build/template-part/edit/inner-blocks.js +10 -1
  77. package/build/template-part/edit/inner-blocks.js.map +1 -1
  78. package/build/template-part/edit/placeholder.js +4 -8
  79. package/build/template-part/edit/placeholder.js.map +1 -1
  80. package/build/video/edit.js +4 -8
  81. package/build/video/edit.js.map +1 -1
  82. package/build/video/tracks-editor.js +6 -12
  83. package/build/video/tracks-editor.js.map +1 -1
  84. package/build-module/archives/edit.js +1 -1
  85. package/build-module/archives/edit.js.map +1 -1
  86. package/build-module/block/edit.js +2 -3
  87. package/build-module/block/edit.js.map +1 -1
  88. package/build-module/buttons/index.js +1 -1
  89. package/build-module/comments/edit/comments-legacy.js +2 -4
  90. package/build-module/comments/edit/comments-legacy.js.map +1 -1
  91. package/build-module/cover/deprecated.js +1 -1
  92. package/build-module/cover/deprecated.js.map +1 -1
  93. package/build-module/cover/edit/index.js +4 -2
  94. package/build-module/cover/edit/index.js.map +1 -1
  95. package/build-module/embed/edit.js +6 -12
  96. package/build-module/embed/edit.js.map +1 -1
  97. package/build-module/embed/embed-placeholder.js +4 -8
  98. package/build-module/embed/embed-placeholder.js.map +1 -1
  99. package/build-module/embed/embed-preview.js +16 -4
  100. package/build-module/embed/embed-preview.js.map +1 -1
  101. package/build-module/file/transforms.js +18 -4
  102. package/build-module/file/transforms.js.map +1 -1
  103. package/build-module/freeform/modal.js +6 -12
  104. package/build-module/freeform/modal.js.map +1 -1
  105. package/build-module/image/edit.js +58 -18
  106. package/build-module/image/edit.js.map +1 -1
  107. package/build-module/image/image.js +23 -20
  108. package/build-module/image/image.js.map +1 -1
  109. package/build-module/image/transforms.js +0 -13
  110. package/build-module/image/transforms.js.map +1 -1
  111. package/build-module/image/use-max-width-observer.js +29 -0
  112. package/build-module/image/use-max-width-observer.js.map +1 -0
  113. package/build-module/image/utils.js +11 -1
  114. package/build-module/image/utils.js.map +1 -1
  115. package/build-module/latest-posts/edit.js +1 -1
  116. package/build-module/latest-posts/edit.js.map +1 -1
  117. package/build-module/missing/edit.js +2 -4
  118. package/build-module/missing/edit.js.map +1 -1
  119. package/build-module/navigation/edit/deleted-navigation-warning.js +15 -11
  120. package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
  121. package/build-module/navigation/edit/index.js +2 -4
  122. package/build-module/navigation/edit/index.js.map +1 -1
  123. package/build-module/navigation/edit/menu-inspector-controls.js +2 -1
  124. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  125. package/build-module/navigation/edit/navigation-menu-delete-control.js +2 -4
  126. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  127. package/build-module/navigation/edit/placeholder/index.js +2 -4
  128. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  129. package/build-module/navigation/edit/responsive-wrapper.js +4 -8
  130. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  131. package/build-module/navigation-link/link-ui.js +2 -4
  132. package/build-module/navigation-link/link-ui.js.map +1 -1
  133. package/build-module/page-list/convert-to-links-modal.js +4 -8
  134. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  135. package/build-module/page-list/edit.js +2 -4
  136. package/build-module/page-list/edit.js.map +1 -1
  137. package/build-module/post-comments-form/form.js +2 -4
  138. package/build-module/post-comments-form/form.js.map +1 -1
  139. package/build-module/post-featured-image/edit.js +2 -4
  140. package/build-module/post-featured-image/edit.js.map +1 -1
  141. package/build-module/post-title/index.js +4 -1
  142. package/build-module/post-title/index.js.map +1 -1
  143. package/build-module/query/edit/enhanced-pagination-modal.js +4 -6
  144. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  145. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  146. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  147. package/build-module/query/edit/inspector-controls/index.js +2 -10
  148. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  149. package/build-module/query/edit/query-content.js +10 -4
  150. package/build-module/query/edit/query-content.js.map +1 -1
  151. package/build-module/query/edit/query-placeholder.js +4 -8
  152. package/build-module/query/edit/query-placeholder.js.map +1 -1
  153. package/build-module/site-logo/edit.js +4 -8
  154. package/build-module/site-logo/edit.js.map +1 -1
  155. package/build-module/site-title/index.js +4 -1
  156. package/build-module/site-title/index.js.map +1 -1
  157. package/build-module/social-link/edit.js +1 -1
  158. package/build-module/social-link/edit.js.map +1 -1
  159. package/build-module/template-part/edit/inner-blocks.js +10 -1
  160. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  161. package/build-module/template-part/edit/placeholder.js +4 -8
  162. package/build-module/template-part/edit/placeholder.js.map +1 -1
  163. package/build-module/video/edit.js +4 -8
  164. package/build-module/video/edit.js.map +1 -1
  165. package/build-module/video/tracks-editor.js +6 -12
  166. package/build-module/video/tracks-editor.js.map +1 -1
  167. package/build-style/buttons/editor-rtl.css +2 -2
  168. package/build-style/buttons/editor.css +2 -2
  169. package/build-style/buttons/style-rtl.css +2 -2
  170. package/build-style/buttons/style.css +2 -2
  171. package/build-style/common-rtl.css +2 -2
  172. package/build-style/common.css +2 -2
  173. package/build-style/editor-rtl.css +11 -31
  174. package/build-style/editor.css +11 -31
  175. package/build-style/image/editor-rtl.css +6 -26
  176. package/build-style/image/editor.css +6 -26
  177. package/build-style/navigation/editor-rtl.css +1 -1
  178. package/build-style/navigation/editor.css +1 -1
  179. package/build-style/post-title/style-rtl.css +21 -0
  180. package/build-style/post-title/style.css +21 -0
  181. package/build-style/site-title/style-rtl.css +21 -0
  182. package/build-style/site-title/style.css +21 -0
  183. package/build-style/style-rtl.css +46 -4
  184. package/build-style/style.css +46 -4
  185. package/package.json +42 -35
  186. package/src/archives/edit.js +1 -1
  187. package/src/block/edit.js +3 -7
  188. package/src/buttons/block.json +1 -1
  189. package/src/buttons/editor.scss +2 -2
  190. package/src/buttons/style.scss +2 -2
  191. package/src/comments/edit/comments-legacy.js +1 -2
  192. package/src/cover/deprecated.js +3 -2
  193. package/src/cover/edit/index.js +5 -1
  194. package/src/embed/edit.js +0 -7
  195. package/src/embed/embed-placeholder.js +2 -4
  196. package/src/embed/embed-preview.js +22 -2
  197. package/src/file/index.php +1 -1
  198. package/src/file/transforms.js +26 -6
  199. package/src/freeform/modal.js +3 -6
  200. package/src/image/edit.js +91 -20
  201. package/src/image/editor.scss +7 -38
  202. package/src/image/image.js +31 -20
  203. package/src/image/index.php +1 -1
  204. package/src/image/transforms.js +0 -23
  205. package/src/image/use-max-width-observer.js +32 -0
  206. package/src/image/utils.js +13 -1
  207. package/src/latest-posts/edit.js +1 -1
  208. package/src/missing/edit.js +1 -2
  209. package/src/navigation/edit/deleted-navigation-warning.js +23 -20
  210. package/src/navigation/edit/index.js +1 -2
  211. package/src/navigation/edit/menu-inspector-controls.js +3 -1
  212. package/src/navigation/edit/navigation-menu-delete-control.js +1 -2
  213. package/src/navigation/edit/placeholder/index.js +1 -2
  214. package/src/navigation/edit/responsive-wrapper.js +2 -4
  215. package/src/navigation/editor.scss +5 -1
  216. package/src/navigation/index.php +1 -1
  217. package/src/navigation-link/link-ui.js +1 -2
  218. package/src/page-list/convert-to-links-modal.js +2 -4
  219. package/src/page-list/edit.js +1 -2
  220. package/src/post-comments-form/form.js +1 -2
  221. package/src/post-featured-image/edit.js +1 -2
  222. package/src/post-title/block.json +4 -1
  223. package/src/post-title/style.scss +24 -0
  224. package/src/query/edit/enhanced-pagination-modal.js +3 -4
  225. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  226. package/src/query/edit/inspector-controls/index.js +2 -9
  227. package/src/query/edit/query-content.js +7 -0
  228. package/src/query/edit/query-placeholder.js +2 -4
  229. package/src/query/index.php +1 -1
  230. package/src/search/index.php +1 -1
  231. package/src/site-logo/edit.js +2 -4
  232. package/src/site-title/block.json +4 -1
  233. package/src/site-title/style.scss +24 -0
  234. package/src/social-link/edit.js +1 -1
  235. package/src/template-part/edit/inner-blocks.js +20 -1
  236. package/src/template-part/edit/placeholder.js +2 -4
  237. package/src/video/edit.js +2 -4
  238. package/src/video/tracks-editor.js +3 -6
@@ -1 +1 @@
1
- {"version":3,"names":["_blockEditor","require","_components","_element","_i18n","_data","_icons","_compose","_jsxRuntime","ModalAuxiliaryActions","onClick","isModalFullScreen","isMobileViewport","useViewportMatch","jsx","Button","__next40pxDefaultSize","icon","fullscreen","isPressed","label","__","ClassicEdit","props","styles","useSelect","select","store","getSettings","useEffect","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","useState","setIsModalFullScreen","onClose","jsxs","Fragment","children","BlockControls","ToolbarGroup","ToolbarButton","RawHTML","Modal","title","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","className","headerActions","defaultValue","Flex","justify","expanded","FlexItem","variant","getContent"],"sources":["@wordpress/block-library/src/freeform/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t__next40pxDefaultSize={ false }\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\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\tsetOpen( false );\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{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blockEditor","require","_components","_element","_i18n","_data","_icons","_compose","_jsxRuntime","ModalAuxiliaryActions","onClick","isModalFullScreen","isMobileViewport","useViewportMatch","jsx","Button","size","icon","fullscreen","isPressed","label","__","ClassicEdit","props","styles","useSelect","select","store","getSettings","useEffect","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","useState","setIsModalFullScreen","onClose","jsxs","Fragment","children","BlockControls","ToolbarGroup","ToolbarButton","RawHTML","Modal","title","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","className","headerActions","defaultValue","Flex","justify","expanded","FlexItem","__next40pxDefaultSize","variant","getContent"],"sources":["@wordpress/block-library/src/freeform/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tsize=\"small\"\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\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\tsetOpen( false );\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{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -20,6 +20,8 @@ var _compose = require("@wordpress/compose");
20
20
  var _lockUnlock = require("../lock-unlock");
21
21
  var _hooks = require("../utils/hooks");
22
22
  var _image = _interopRequireDefault(require("./image"));
23
+ var _utils = require("./utils");
24
+ var _useMaxWidthObserver = require("./use-max-width-observer");
23
25
  var _constants = require("./constants");
24
26
  var _jsxRuntime = require("react/jsx-runtime");
25
27
  /**
@@ -95,9 +97,16 @@ function ImageEdit({
95
97
  metadata
96
98
  } = attributes;
97
99
  const [temporaryURL, setTemporaryURL] = (0, _element.useState)(attributes.blob);
98
- const [contentResizeListener, {
99
- width: containerWidth
100
+ const containerRef = (0, _element.useRef)();
101
+ // Only observe the max width from the parent container when the parent layout is not flex nor grid.
102
+ // This won't work for them because the container width changes with the image.
103
+ // TODO: Find a way to observe the container width for flex and grid layouts.
104
+ const isMaxWidthContainerWidth = !parentLayout || parentLayout.type !== 'flex' && parentLayout.type !== 'grid';
105
+ const [maxWidthObserver, maxContentWidth] = (0, _useMaxWidthObserver.useMaxWidthObserver)();
106
+ const [placeholderResizeListener, {
107
+ width: placeholderWidth
100
108
  }] = (0, _compose.useResizeObserver)();
109
+ const isSmallContainer = placeholderWidth && placeholderWidth < 160;
101
110
  const altRef = (0, _element.useRef)();
102
111
  (0, _element.useEffect)(() => {
103
112
  altRef.current = alt;
@@ -107,7 +116,8 @@ function ImageEdit({
107
116
  captionRef.current = caption;
108
117
  }, [caption]);
109
118
  const {
110
- __unstableMarkNextChangeAsNotPersistent
119
+ __unstableMarkNextChangeAsNotPersistent,
120
+ replaceBlock
111
121
  } = (0, _data.useDispatch)(_blockEditor.store);
112
122
  (0, _element.useEffect)(() => {
113
123
  if (['wide', 'full'].includes(align)) {
@@ -121,7 +131,10 @@ function ImageEdit({
121
131
  }
122
132
  }, [__unstableMarkNextChangeAsNotPersistent, align, setAttributes]);
123
133
  const {
124
- getSettings
134
+ getSettings,
135
+ getBlockRootClientId,
136
+ getBlockName,
137
+ canInsertBlockType
125
138
  } = (0, _data.useSelect)(_blockEditor.store);
126
139
  const blockEditingMode = (0, _blockEditor.useBlockEditingMode)();
127
140
  const {
@@ -138,7 +151,35 @@ function ImageEdit({
138
151
  blob: undefined
139
152
  });
140
153
  }
154
+ function onSelectImagesList(images) {
155
+ const win = containerRef.current?.ownerDocument.defaultView;
156
+ if (images.every(file => file instanceof win.File)) {
157
+ /** @type {File[]} */
158
+ const files = images;
159
+ const rootClientId = getBlockRootClientId(clientId);
160
+ if (files.some(file => !(0, _utils.isValidFileType)(file))) {
161
+ // Copied from the same notice in the gallery block.
162
+ createErrorNotice((0, _i18n.__)('If uploading to a gallery all files need to be image formats'), {
163
+ id: 'gallery-upload-invalid-file',
164
+ type: 'snackbar'
165
+ });
166
+ }
167
+ const imageBlocks = files.filter(file => (0, _utils.isValidFileType)(file)).map(file => (0, _blocks.createBlock)('core/image', {
168
+ blob: (0, _blob.createBlobURL)(file)
169
+ }));
170
+ if (getBlockName(rootClientId) === 'core/gallery') {
171
+ replaceBlock(clientId, imageBlocks);
172
+ } else if (canInsertBlockType('core/gallery', rootClientId)) {
173
+ const galleryBlock = (0, _blocks.createBlock)('core/gallery', {}, imageBlocks);
174
+ replaceBlock(clientId, galleryBlock);
175
+ }
176
+ }
177
+ }
141
178
  function onSelectImage(media) {
179
+ if (Array.isArray(media)) {
180
+ onSelectImagesList(media);
181
+ return;
182
+ }
142
183
  if (!media || !media.url) {
143
184
  setAttributes({
144
185
  url: undefined,
@@ -269,6 +310,7 @@ function ImageEdit({
269
310
  'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
270
311
  });
271
312
  const blockProps = (0, _blockEditor.useBlockProps)({
313
+ ref: containerRef,
272
314
  className: classes
273
315
  });
274
316
 
@@ -292,14 +334,14 @@ function ImageEdit({
292
334
  };
293
335
  }, [context, isSingleSelected, metadata?.bindings?.url]);
294
336
  const placeholder = content => {
295
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Placeholder, {
337
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Placeholder, {
296
338
  className: (0, _clsx.default)('block-editor-media-placeholder', {
297
339
  [borderProps.className]: !!borderProps.className && !isSingleSelected
298
340
  }),
299
- withIllustration: true,
300
- icon: lockUrlControls ? _icons.plugins : _icons.image,
301
- label: (0, _i18n.__)('Image'),
302
- instructions: !lockUrlControls && (0, _i18n.__)('Upload an image file, pick one from your media library, or add one with a URL.'),
341
+ icon: !isSmallContainer && (lockUrlControls ? _icons.plugins : _icons.image),
342
+ withIllustration: !isSingleSelected || isSmallContainer,
343
+ label: !isSmallContainer && (0, _i18n.__)('Image'),
344
+ instructions: !lockUrlControls && !isSmallContainer && (0, _i18n.__)('Upload or drag an image file here, or pick one from your library.'),
303
345
  style: {
304
346
  aspectRatio: !(width && height) && aspectRatio ? aspectRatio : undefined,
305
347
  width: height && aspectRatio ? '100%' : width,
@@ -308,10 +350,7 @@ function ImageEdit({
308
350
  ...borderProps.style,
309
351
  ...shadowProps.style
310
352
  },
311
- children: lockUrlControls ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
312
- className: "block-bindings-media-placeholder-message",
313
- children: lockUrlControlsMessage
314
- }) : content
353
+ children: [lockUrlControls && !isSmallContainer && lockUrlControlsMessage, !lockUrlControls && !isSmallContainer && content, placeholderResizeListener]
315
354
  });
316
355
  };
317
356
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -331,7 +370,7 @@ function ImageEdit({
331
370
  clientId: clientId,
332
371
  blockEditingMode: blockEditingMode,
333
372
  parentLayoutType: parentLayout?.type,
334
- containerWidth: containerWidth
373
+ maxContentWidth: maxContentWidth
335
374
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaPlaceholder, {
336
375
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockIcon, {
337
376
  icon: _icons.image
@@ -342,6 +381,7 @@ function ImageEdit({
342
381
  placeholder: placeholder,
343
382
  accept: "image/*",
344
383
  allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
384
+ handleUpload: files => files.length === 1,
345
385
  value: {
346
386
  id,
347
387
  src
@@ -352,7 +392,7 @@ function ImageEdit({
352
392
  }),
353
393
  // The listener cannot be placed as the first element as it will break the in-between inserter.
354
394
  // See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
355
- contentResizeListener]
395
+ isSingleSelected && isMaxWidthContainerWidth && maxWidthObserver]
356
396
  });
357
397
  }
358
398
  var _default = exports.default = ImageEdit;
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_compose","_lockUnlock","_hooks","_image","_constants","_jsxRuntime","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isExternalImage","id","isBlobURL","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","useState","blob","contentResizeListener","containerWidth","useResizeObserver","altRef","useRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","undefined","getSettings","useSelect","blockEditingMode","useBlockEditingMode","createErrorNotice","noticesStore","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","useUploadMediaFromBlobURL","allowedTypes","ALLOWED_MEDIA_TYPES","onChange","onError","isExternal","mediaPreview","jsx","__","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","clsx","style","keys","length","blockProps","useBlockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","sprintf","placeholder","content","Placeholder","withIllustration","icon","pluginsIcon","instructions","objectFit","children","jsxs","Fragment","default","parentLayoutType","MediaPlaceholder","BlockIcon","onSelect","accept","value","disableMediaButtons","_default"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst [ contentResizeListener, { width: containerWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tblob: undefined,\n\t\t} );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\tsizeSlug: newSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName=\"edit-image-preview\"\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( { className: classes } );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration\n\t\t\t\ticon={ lockUrlControls ? pluginsIcon : icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls ? (\n\t\t\t\t\t<span className=\"block-bindings-media-placeholder-message\">\n\t\t\t\t\t\t{ lockUrlControlsMessage }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\tparentLayoutType={ parentLayout?.type }\n\t\t\t\t\tcontainerWidth={ containerWidth }\n\t\t\t\t/>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t\t{\n\t\t\t\t// The listener cannot be placed as the first element as it will break the in-between inserter.\n\t\t\t\t// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120\n\t\t\t\tcontentResizeListener\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AASA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AAKA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,MAAA,GAAAd,sBAAA,CAAAC,OAAA;AAKA,IAAAc,UAAA,GAAAd,OAAA;AAMqB,IAAAe,WAAA,GAAAf,OAAA;AA3CrB;AACA;AACA;;AAGA;AACA;AACA;;AAoBA;AACA;AACA;;AAKA;AACA;AACA;;AASO,MAAMgB,sBAAsB,GAAGA,CAAEC,KAAK,EAAEC,IAAI,KAAM;EACxD,MAAMC,UAAU,GAAGC,MAAM,CAACC,WAAW,CACpCD,MAAM,CAACE,OAAO,CAAEL,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAE,CAAC,CAACM,MAAM,CAAE,CAAE,CAAEC,GAAG,CAAE,KAC9C,CAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAE,CAACC,QAAQ,CAAED,GAAI,CAClD,CACD,CAAC;EAEDL,UAAU,CAACO,GAAG,GACbT,KAAK,EAAEU,KAAK,GAAIT,IAAI,CAAE,EAAEQ,GAAG,IAC3BT,KAAK,EAAEW,aAAa,EAAED,KAAK,GAAIT,IAAI,CAAE,EAAEW,UAAU,IACjDZ,KAAK,CAACS,GAAG;EACV,OAAOP,UAAU;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAW,OAAA,CAAAd,sBAAA,GAAAA,sBAAA;AASO,MAAMe,eAAe,GAAGA,CAAEC,EAAE,EAAEN,GAAG,KAAMA,GAAG,IAAI,CAAEM,EAAE,IAAI,CAAE,IAAAC,eAAS,EAAEP,GAAI,CAAC;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAI,OAAA,CAAAC,eAAA,GAAAA,eAAA;AASA,SAASG,OAAOA,CAAEjB,KAAK,EAAEC,IAAI,EAAG;EAAA,IAAAiB,iBAAA,EAAAC,qBAAA;EAC/B,OACC,KAAK,MAAAD,iBAAA,GAAMlB,KAAK,EAAEU,KAAK,GAAIT,IAAI,CAAE,cAAAiB,iBAAA,cAAAA,iBAAA,GAAI,CAAC,CAAC,CAAE,IACzC,YAAY,MAAAC,qBAAA,GAAMnB,KAAK,EAAEW,aAAa,EAAED,KAAK,GAAIT,IAAI,CAAE,cAAAkB,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,CAAE;AAEjE;AAEO,SAASC,SAASA,CAAE;EAC1BC,UAAU;EACVC,aAAa;EACbC,UAAU,EAAEC,gBAAgB;EAC5BC,SAAS;EACTC,iBAAiB;EACjBC,SAAS;EACTC,OAAO;EACPC,QAAQ;EACRC,sBAAsB,EAAEC;AACzB,CAAC,EAAG;EACH,MAAM;IACLtB,GAAG,GAAG,EAAE;IACRuB,GAAG;IACHC,OAAO;IACPlB,EAAE;IACFmB,KAAK;IACLC,MAAM;IACNC,QAAQ;IACRC,WAAW;IACXC,KAAK;IACLC,KAAK;IACLC;EACD,CAAC,GAAGnB,UAAU;EACd,MAAM,CAAEoB,YAAY,EAAEC,eAAe,CAAE,GAAG,IAAAC,iBAAQ,EAAEtB,UAAU,CAACuB,IAAK,CAAC;EAErE,MAAM,CAAEC,qBAAqB,EAAE;IAAEX,KAAK,EAAEY;EAAe,CAAC,CAAE,GACzD,IAAAC,0BAAiB,EAAC,CAAC;EAEpB,MAAMC,MAAM,GAAG,IAAAC,eAAM,EAAC,CAAC;EACvB,IAAAC,kBAAS,EAAE,MAAM;IAChBF,MAAM,CAACG,OAAO,GAAGnB,GAAG;EACrB,CAAC,EAAE,CAAEA,GAAG,CAAG,CAAC;EAEZ,MAAMoB,UAAU,GAAG,IAAAH,eAAM,EAAC,CAAC;EAC3B,IAAAC,kBAAS,EAAE,MAAM;IAChBE,UAAU,CAACD,OAAO,GAAGlB,OAAO;EAC7B,CAAC,EAAE,CAAEA,OAAO,CAAG,CAAC;EAEhB,MAAM;IAAEoB;EAAwC,CAAC,GAChD,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAEhC,IAAAL,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAE,MAAM,EAAE,MAAM,CAAE,CAAC1C,QAAQ,CAAE+B,KAAM,CAAC,EAAG;MAC3Cc,uCAAuC,CAAC,CAAC;MACzC/B,aAAa,CAAE;QACdY,KAAK,EAAEsB,SAAS;QAChBrB,MAAM,EAAEqB,SAAS;QACjBnB,WAAW,EAAEmB,SAAS;QACtBlB,KAAK,EAAEkB;MACR,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAEH,uCAAuC,EAAEd,KAAK,EAAEjB,aAAa,CAAG,CAAC;EAEtE,MAAM;IAAEmC;EAAY,CAAC,GAAG,IAAAC,eAAS,EAAEH,kBAAiB,CAAC;EACrD,MAAMI,gBAAgB,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EAE9C,MAAM;IAAEC;EAAkB,CAAC,GAAG,IAAAP,iBAAW,EAAEQ,cAAa,CAAC;EACzD,SAASC,aAAaA,CAAEC,OAAO,EAAG;IACjCH,iBAAiB,CAAEG,OAAO,EAAE;MAAEC,IAAI,EAAE;IAAW,CAAE,CAAC;IAClD3C,aAAa,CAAE;MACd4C,GAAG,EAAEV,SAAS;MACdzC,EAAE,EAAEyC,SAAS;MACb/C,GAAG,EAAE+C,SAAS;MACdZ,IAAI,EAAEY;IACP,CAAE,CAAC;EACJ;EAEA,SAASW,aAAaA,CAAEC,KAAK,EAAG;IAC/B,IAAK,CAAEA,KAAK,IAAI,CAAEA,KAAK,CAAC3D,GAAG,EAAG;MAC7Ba,aAAa,CAAE;QACdb,GAAG,EAAE+C,SAAS;QACdxB,GAAG,EAAEwB,SAAS;QACdzC,EAAE,EAAEyC,SAAS;QACba,KAAK,EAAEb,SAAS;QAChBvB,OAAO,EAAEuB,SAAS;QAClBZ,IAAI,EAAEY;MACP,CAAE,CAAC;MACHd,eAAe,CAAC,CAAC;MAEjB;IACD;IAEA,IAAK,IAAA1B,eAAS,EAAEoD,KAAK,CAAC3D,GAAI,CAAC,EAAG;MAC7BiC,eAAe,CAAE0B,KAAK,CAAC3D,GAAI,CAAC;MAC5B;IACD;IAEA,MAAM;MAAE6D;IAAiB,CAAC,GAAGb,WAAW,CAAC,CAAC;;IAE1C;IACA;IACA,IAAIc,OAAO,GAAG,MAAM;IACpB,IAAKnC,QAAQ,IAAInB,OAAO,CAAEmD,KAAK,EAAEhC,QAAS,CAAC,EAAG;MAC7CmC,OAAO,GAAGnC,QAAQ;IACnB,CAAC,MAAM,IAAKnB,OAAO,CAAEmD,KAAK,EAAEE,gBAAiB,CAAC,EAAG;MAChDC,OAAO,GAAGD,gBAAgB;IAC3B;IAEA,IAAIE,eAAe,GAAGzE,sBAAsB,CAAEqE,KAAK,EAAEG,OAAQ,CAAC;;IAE9D;IACA;IACA,IAAKnB,UAAU,CAACD,OAAO,IAAI,CAAEqB,eAAe,CAACvC,OAAO,EAAG;MACtD,MAAM;QAAEA,OAAO,EAAEwC,cAAc;QAAE,GAAGC;MAAoB,CAAC,GACxDF,eAAe;MAChBA,eAAe,GAAGE,mBAAmB;IACtC;IAEA,IAAIC,oBAAoB;IACxB;IACA,IAAK,CAAEP,KAAK,CAACrD,EAAE,IAAIqD,KAAK,CAACrD,EAAE,KAAKA,EAAE,EAAG;MACpC4D,oBAAoB,GAAG;QACtBvC,QAAQ,EAAEmC;MACX,CAAC;IACF,CAAC,MAAM;MACN;MACA;MACAI,oBAAoB,GAAG;QAAElE;MAAI,CAAC;IAC/B;;IAEA;IACA,IAAImE,eAAe,GAAGvD,UAAU,CAACuD,eAAe;IAChD,IAAK,CAAEA,eAAe,EAAG;MACxB;MACA;MACA;MACA,QACCC,MAAM,EAAEC,EAAE,EAAEV,KAAK,EAAEW,IAAI,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,IAAI,IACrDC,gCAAqB;QAErB,KAAK,MAAM;QACX,KAAKC,iCAAsB;UAC1BR,eAAe,GAAGQ,iCAAsB;UACxC;QACD,KAAK,MAAM;QACX,KAAKC,sCAA2B;UAC/BT,eAAe,GAAGS,sCAA2B;UAC7C;QACD,KAAKC,kCAAuB;UAC3BV,eAAe,GAAGU,kCAAuB;UACzC;QACD,KAAKH,gCAAqB;UACzBP,eAAe,GAAGO,gCAAqB;UACvC;MACF;IACD;;IAEA;IACA,IAAII,IAAI;IACR,QAASX,eAAe;MACvB,KAAKQ,iCAAsB;QAC1BG,IAAI,GAAGnB,KAAK,CAAC3D,GAAG;QAChB;MACD,KAAK4E,sCAA2B;QAC/BE,IAAI,GAAGnB,KAAK,CAACc,IAAI;QACjB;IACF;IACAV,eAAe,CAACe,IAAI,GAAGA,IAAI;IAE3BjE,aAAa,CAAE;MACdsB,IAAI,EAAEY,SAAS;MACf,GAAGgB,eAAe;MAClB,GAAGG,oBAAoB;MACvBC;IACD,CAAE,CAAC;IACHlC,eAAe,CAAC,CAAC;EAClB;EAEA,SAAS8C,WAAWA,CAAEC,MAAM,EAAG;IAC9B,IAAKA,MAAM,KAAKhF,GAAG,EAAG;MACrBa,aAAa,CAAE;QACdsB,IAAI,EAAEY,SAAS;QACf/C,GAAG,EAAEgF,MAAM;QACX1E,EAAE,EAAEyC,SAAS;QACbpB,QAAQ,EAAEqB,WAAW,CAAC,CAAC,CAACa;MACzB,CAAE,CAAC;MACH5B,eAAe,CAAC,CAAC;IAClB;EACD;EAEA,IAAAgD,gCAAyB,EAAE;IAC1BjF,GAAG,EAAEgC,YAAY;IACjBkD,YAAY,EAAEC,8BAAmB;IACjCC,QAAQ,EAAE1B,aAAa;IACvB2B,OAAO,EAAE/B;EACV,CAAE,CAAC;EAEH,MAAMgC,UAAU,GAAGjF,eAAe,CAAEC,EAAE,EAAEN,GAAI,CAAC;EAC7C,MAAMyD,GAAG,GAAG6B,UAAU,GAAGtF,GAAG,GAAG+C,SAAS;EACxC,MAAMwC,YAAY,GAAG,CAAC,CAAEvF,GAAG,iBAC1B,IAAAX,WAAA,CAAAmG,GAAA;IACCjE,GAAG,EAAG,IAAAkE,QAAE,EAAE,YAAa,CAAG;IAC1B7B,KAAK,EAAG,IAAA6B,QAAE,EAAE,YAAa,CAAG;IAC5BzE,SAAS,EAAC,oBAAoB;IAC9ByC,GAAG,EAAGzD;EAAK,CACX,CACD;EAED,MAAM0F,WAAW,GAAG,IAAAC,yCAAc,EAAE/E,UAAW,CAAC;EAChD,MAAMgF,WAAW,GAAG,IAAAC,oDAAyB,EAAEjF,UAAW,CAAC;EAE3D,MAAMkF,OAAO,GAAG,IAAAC,aAAI,EAAE/E,SAAS,EAAE;IAChC,cAAc,EAAE,CAAC,CAAEgB,YAAY;IAC/B,YAAY,EAAE,CAAC,CAAEP,KAAK,IAAI,CAAC,CAAEC,MAAM;IACnC,CAAG,QAAQC,QAAU,EAAC,GAAIA,QAAQ;IAClC,mBAAmB,EAClB,CAAC,CAAE+D,WAAW,CAAC1E,SAAS,IACtB0E,WAAW,CAACM,KAAK,IAClBtG,MAAM,CAACuG,IAAI,CAAEP,WAAW,CAACM,KAAM,CAAC,CAACE,MAAM,GAAG;EAC7C,CAAE,CAAC;EAEH,MAAMC,UAAU,GAAG,IAAAC,0BAAa,EAAE;IAAEpF,SAAS,EAAE8E;EAAQ,CAAE,CAAC;;EAE1D;EACA,MAAM;IAAEO,eAAe,GAAG,KAAK;IAAEC;EAAuB,CAAC,GAAG,IAAArD,eAAS,EAClEsD,MAAM,IAAM;IACb,IAAK,CAAExF,gBAAgB,EAAG;MACzB,OAAO,CAAC,CAAC;IACV;IAEA,MAAMyF,mBAAmB,GAAG,IAAAC,kBAAM,EACjCF,MAAM,CAAEG,aAAY,CACrB,CAAC,CAACC,sBAAsB,CAAE5E,QAAQ,EAAE6E,QAAQ,EAAE5G,GAAG,EAAE6G,MAAO,CAAC;IAE3D,OAAO;MACNR,eAAe,EACd,CAAC,CAAEtE,QAAQ,EAAE6E,QAAQ,EAAE5G,GAAG,IAC1B,CAAEwG,mBAAmB,EAAEM,gBAAgB,GAAI;QAC1CP,MAAM;QACNpF,OAAO;QACP4F,IAAI,EAAEhF,QAAQ,EAAE6E,QAAQ,EAAE5G,GAAG,EAAE+G;MAChC,CAAE,CAAC;MACJT,sBAAsB,EAAEE,mBAAmB,EAAEQ,KAAK,GAC/C,IAAAC,aAAO,GACP;MACA,IAAAxB,QAAE,EAAE,iBAAkB,CAAC,EACvBe,mBAAmB,CAACQ,KACpB,CAAC,GACD,IAAAvB,QAAE,EAAE,2BAA4B;IACpC,CAAC;EACF,CAAC,EACD,CAAEtE,OAAO,EAAEJ,gBAAgB,EAAEgB,QAAQ,EAAE6E,QAAQ,EAAE5G,GAAG,CACrD,CAAC;EACD,MAAMkH,WAAW,GAAKC,OAAO,IAAM;IAClC,oBACC,IAAA9H,WAAA,CAAAmG,GAAA,EAAC/G,WAAA,CAAA2I,WAAW;MACXpG,SAAS,EAAG,IAAA+E,aAAI,EAAE,gCAAgC,EAAE;QACnD,CAAEL,WAAW,CAAC1E,SAAS,GACtB,CAAC,CAAE0E,WAAW,CAAC1E,SAAS,IAAI,CAAED;MAChC,CAAE,CAAG;MACLsG,gBAAgB;MAChBC,IAAI,EAAGjB,eAAe,GAAGkB,cAAW,GAAGD,YAAM;MAC7CN,KAAK,EAAG,IAAAvB,QAAE,EAAE,OAAQ,CAAG;MACvB+B,YAAY,EACX,CAAEnB,eAAe,IACjB,IAAAZ,QAAE,EACD,gFACD,CACA;MACDO,KAAK,EAAG;QACPpE,WAAW,EACV,EAAIH,KAAK,IAAIC,MAAM,CAAE,IAAIE,WAAW,GACjCA,WAAW,GACXmB,SAAS;QACbtB,KAAK,EAAEC,MAAM,IAAIE,WAAW,GAAG,MAAM,GAAGH,KAAK;QAC7CC,MAAM,EAAED,KAAK,IAAIG,WAAW,GAAG,MAAM,GAAGF,MAAM;QAC9C+F,SAAS,EAAE5F,KAAK;QAChB,GAAG6D,WAAW,CAACM,KAAK;QACpB,GAAGJ,WAAW,CAACI;MAChB,CAAG;MAAA0B,QAAA,EAEDrB,eAAe,gBAChB,IAAAhH,WAAA,CAAAmG,GAAA;QAAMxE,SAAS,EAAC,0CAA0C;QAAA0G,QAAA,EACvDpB;MAAsB,CACnB,CAAC,GAEPa;IACA,CACW,CAAC;EAEhB,CAAC;EAED,oBACC,IAAA9H,WAAA,CAAAsI,IAAA,EAAAtI,WAAA,CAAAuI,QAAA;IAAAF,QAAA,gBACC,IAAArI,WAAA,CAAAsI,IAAA;MAAA,GAAaxB,UAAU;MAAAuB,QAAA,gBACtB,IAAArI,WAAA,CAAAmG,GAAA,EAACrG,MAAA,CAAA0I,OAAK;QACL7F,YAAY,EAAGA,YAAc;QAC7BpB,UAAU,EAAGA,UAAY;QACzBC,aAAa,EAAGA,aAAe;QAC/BE,gBAAgB,EAAGA,gBAAkB;QACrCE,iBAAiB,EAAGA,iBAAmB;QACvCC,SAAS,EAAGA,SAAW;QACvBwC,aAAa,EAAGA,aAAe;QAC/BqB,WAAW,EAAGA,WAAa;QAC3BzB,aAAa,EAAGA,aAAe;QAC/BnC,OAAO,EAAGA,OAAS;QACnBC,QAAQ,EAAGA,QAAU;QACrB8B,gBAAgB,EAAGA,gBAAkB;QACrC4E,gBAAgB,EAAGxG,YAAY,EAAEkC,IAAM;QACvCnB,cAAc,EAAGA;MAAgB,CACjC,CAAC,eACF,IAAAhD,WAAA,CAAAmG,GAAA,EAAC7G,YAAA,CAAAoJ,gBAAgB;QAChBT,IAAI,eAAG,IAAAjI,WAAA,CAAAmG,GAAA,EAAC7G,YAAA,CAAAqJ,SAAS;UAACV,IAAI,EAAGA;QAAM,CAAE,CAAG;QACpCW,QAAQ,EAAGvE,aAAe;QAC1BqB,WAAW,EAAGA,WAAa;QAC3BM,OAAO,EAAG/B,aAAe;QACzB4D,WAAW,EAAGA,WAAa;QAC3BgB,MAAM,EAAC,SAAS;QAChBhD,YAAY,EAAGC,8BAAqB;QACpCgD,KAAK,EAAG;UAAE7H,EAAE;UAAEmD;QAAI,CAAG;QACrB8B,YAAY,EAAGA,YAAc;QAC7B6C,mBAAmB,EAAGpG,YAAY,IAAIhC;MAAK,CAC3C,CAAC;IAAA,CACK,CAAC;IAER;IACA;IACAoC,qBAAqB;EAAA,CAErB,CAAC;AAEL;AAAC,IAAAiG,QAAA,GAAAjI,OAAA,CAAAyH,OAAA,GAEclH,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_compose","_lockUnlock","_hooks","_image","_utils","_useMaxWidthObserver","_constants","_jsxRuntime","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isExternalImage","id","isBlobURL","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","useState","blob","containerRef","useRef","isMaxWidthContainerWidth","type","maxWidthObserver","maxContentWidth","useMaxWidthObserver","placeholderResizeListener","placeholderWidth","useResizeObserver","isSmallContainer","altRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","replaceBlock","useDispatch","blockEditorStore","undefined","getSettings","getBlockRootClientId","getBlockName","canInsertBlockType","useSelect","blockEditingMode","useBlockEditingMode","createErrorNotice","noticesStore","onUploadError","message","src","onSelectImagesList","images","win","ownerDocument","defaultView","every","file","File","files","rootClientId","some","isValidFileType","__","imageBlocks","map","createBlock","createBlobURL","galleryBlock","onSelectImage","media","Array","isArray","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","useUploadMediaFromBlobURL","allowedTypes","ALLOWED_MEDIA_TYPES","onChange","onError","isExternal","mediaPreview","jsx","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","clsx","style","keys","length","blockProps","useBlockProps","ref","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","sprintf","placeholder","content","jsxs","Placeholder","icon","pluginsIcon","withIllustration","instructions","objectFit","children","Fragment","default","parentLayoutType","MediaPlaceholder","BlockIcon","onSelect","accept","handleUpload","value","disableMediaButtons","_default"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL, createBlobURL } from '@wordpress/blob';\nimport { store as blocksStore, createBlock } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tuseBlockProps,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\nimport { isValidFileType } from './utils';\nimport { useMaxWidthObserver } from './use-max-width-observer';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst containerRef = useRef();\n\t// Only observe the max width from the parent container when the parent layout is not flex nor grid.\n\t// This won't work for them because the container width changes with the image.\n\t// TODO: Find a way to observe the container width for flex and grid layouts.\n\tconst isMaxWidthContainerWidth =\n\t\t! parentLayout ||\n\t\t( parentLayout.type !== 'flex' && parentLayout.type !== 'grid' );\n\tconst [ maxWidthObserver, maxContentWidth ] = useMaxWidthObserver();\n\n\tconst [ placeholderResizeListener, { width: placeholderWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst isSmallContainer = placeholderWidth && placeholderWidth < 160;\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst {\n\t\tgetSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tblob: undefined,\n\t\t} );\n\t}\n\n\tfunction onSelectImagesList( images ) {\n\t\tconst win = containerRef.current?.ownerDocument.defaultView;\n\n\t\tif ( images.every( ( file ) => file instanceof win.File ) ) {\n\t\t\t/** @type {File[]} */\n\t\t\tconst files = images;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\tif ( files.some( ( file ) => ! isValidFileType( file ) ) ) {\n\t\t\t\t// Copied from the same notice in the gallery block.\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t\t),\n\t\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst imageBlocks = files\n\t\t\t\t.filter( ( file ) => isValidFileType( file ) )\n\t\t\t\t.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\tif ( getBlockName( rootClientId ) === 'core/gallery' ) {\n\t\t\t\treplaceBlock( clientId, imageBlocks );\n\t\t\t} else if ( canInsertBlockType( 'core/gallery', rootClientId ) ) {\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{},\n\t\t\t\t\timageBlocks\n\t\t\t\t);\n\n\t\t\t\treplaceBlock( clientId, galleryBlock );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( Array.isArray( media ) ) {\n\t\t\tonSelectImagesList( media );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\tsizeSlug: newSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName=\"edit-image-preview\"\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref: containerRef,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\ticon={\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t( lockUrlControls ? pluginsIcon : icon )\n\t\t\t\t}\n\t\t\t\twithIllustration={ ! isSingleSelected || isSmallContainer }\n\t\t\t\tlabel={ ! isSmallContainer && __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Upload or drag an image file here, or pick one from your library.'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\tlockUrlControlsMessage }\n\n\t\t\t\t{ ! lockUrlControls && ! isSmallContainer && content }\n\t\t\t\t{ placeholderResizeListener }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\tparentLayoutType={ parentLayout?.type }\n\t\t\t\t\tmaxContentWidth={ maxContentWidth }\n\t\t\t\t/>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\thandleUpload={ ( files ) => files.length === 1 }\n\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t\t{\n\t\t\t\t// The listener cannot be placed as the first element as it will break the in-between inserter.\n\t\t\t\t// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120\n\t\t\t\tisSingleSelected && isMaxWidthContainerWidth && maxWidthObserver\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -89,7 +89,7 @@ function Image({
89
89
  clientId,
90
90
  blockEditingMode,
91
91
  parentLayoutType,
92
- containerWidth
92
+ maxContentWidth
93
93
  }) {
94
94
  const {
95
95
  url = '',
@@ -467,6 +467,20 @@ function Image({
467
467
  const showUrlInput = isSingleSelected && !isEditingImage && !lockHrefControls && !lockUrlControls;
468
468
  const showCoverControls = isSingleSelected && canInsertCover;
469
469
  const showBlockControls = showUrlInput || allowCrop || showCoverControls;
470
+ const mediaReplaceFlow = isSingleSelected && !isEditingImage && !lockUrlControls && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockControls, {
471
+ group: "other",
472
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaReplaceFlow, {
473
+ mediaId: id,
474
+ mediaURL: url,
475
+ allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
476
+ accept: "image/*",
477
+ onSelect: onSelectImage,
478
+ onSelectURL: onSelectURL,
479
+ onError: onUploadError,
480
+ name: !url ? (0, _i18n.__)('Add image') : (0, _i18n.__)('Replace'),
481
+ onReset: () => onSelectImage(undefined)
482
+ })
483
+ });
470
484
  const controls = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
471
485
  children: [showBlockControls && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_blockEditor.BlockControls, {
472
486
  group: "block",
@@ -492,18 +506,6 @@ function Image({
492
506
  label: (0, _i18n.__)('Add text over image'),
493
507
  onClick: switchToCover
494
508
  })]
495
- }), isSingleSelected && !isEditingImage && !lockUrlControls && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockControls, {
496
- group: "other",
497
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaReplaceFlow, {
498
- mediaId: id,
499
- mediaURL: url,
500
- allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
501
- accept: "image/*",
502
- onSelect: onSelectImage,
503
- onSelectURL: onSelectURL,
504
- onError: onUploadError,
505
- onReset: () => onSelectImage(undefined)
506
- })
507
509
  }), isSingleSelected && externalBlob && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockControls, {
508
510
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarGroup, {
509
511
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarButton, {
@@ -741,7 +743,7 @@ function Image({
741
743
  // @todo It would be good to revisit this once a content-width variable
742
744
  // becomes available.
743
745
  const maxWidthBuffer = maxWidth * 2.5;
744
- const maxContentWidth = containerWidth || maxWidthBuffer;
746
+ const maxResizeWidth = maxContentWidth || maxWidthBuffer;
745
747
  let showRightHandle = false;
746
748
  let showLeftHandle = false;
747
749
 
@@ -782,9 +784,9 @@ function Image({
782
784
  },
783
785
  showHandle: isSingleSelected,
784
786
  minWidth: minWidth,
785
- maxWidth: maxContentWidth,
787
+ maxWidth: maxResizeWidth,
786
788
  minHeight: minHeight,
787
- maxHeight: maxContentWidth / ratio,
789
+ maxHeight: maxResizeWidth / ratio,
788
790
  lockAspectRatio: ratio,
789
791
  enable: {
790
792
  top: false,
@@ -797,7 +799,7 @@ function Image({
797
799
  onResizeStop();
798
800
 
799
801
  // Clear hardcoded width if the resized width is close to the max-content width.
800
- if (
802
+ if (maxContentWidth &&
801
803
  // Only do this if the image is bigger than the container to prevent it from being squished.
802
804
  // TODO: Remove this check if the image support setting 100% width.
803
805
  naturalWidth >= maxContentWidth && Math.abs(elt.offsetWidth - maxContentWidth) < 10) {
@@ -826,11 +828,12 @@ function Image({
826
828
  });
827
829
  }
828
830
  if (!url && !temporaryURL) {
829
- // Add all controls if the image attributes are connected.
830
- return metadata?.bindings ? controls : sizeControls;
831
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
832
+ children: [mediaReplaceFlow, metadata?.bindings ? controls : sizeControls]
833
+ });
831
834
  }
832
835
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
833
- children: [controls, img, /*#__PURE__*/(0, _jsxRuntime.jsx)(_caption.Caption, {
836
+ children: [mediaReplaceFlow, controls, img, /*#__PURE__*/(0, _jsxRuntime.jsx)(_caption.Caption, {
834
837
  attributes: attributes,
835
838
  setAttributes: setAttributes,
836
839
  isSelected: isSingleSelected,