@wordpress/block-library 8.12.5 → 8.12.7

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 (136) hide show
  1. package/build/archives/index.js +5 -1
  2. package/build/archives/index.js.map +1 -1
  3. package/build/audio/index.js +5 -1
  4. package/build/audio/index.js.map +1 -1
  5. package/build/block/edit.js +1 -1
  6. package/build/block/edit.js.map +1 -1
  7. package/build/block/edit.native.js +4 -7
  8. package/build/block/edit.native.js.map +1 -1
  9. package/build/categories/index.js +5 -1
  10. package/build/categories/index.js.map +1 -1
  11. package/build/code/index.js +5 -1
  12. package/build/code/index.js.map +1 -1
  13. package/build/details/index.js +5 -1
  14. package/build/details/index.js.map +1 -1
  15. package/build/gallery/index.js +3 -1
  16. package/build/gallery/index.js.map +1 -1
  17. package/build/heading/index.js +5 -1
  18. package/build/heading/index.js.map +1 -1
  19. package/build/heading/transforms.js +5 -1
  20. package/build/heading/transforms.js.map +1 -1
  21. package/build/image/image.js +1 -1
  22. package/build/image/image.js.map +1 -1
  23. package/build/list/index.js +5 -1
  24. package/build/list/index.js.map +1 -1
  25. package/build/list-item/utils.js +5 -1
  26. package/build/list-item/utils.js.map +1 -1
  27. package/build/navigation/edit/index.js +1 -1
  28. package/build/navigation/edit/index.js.map +1 -1
  29. package/build/navigation/edit/menu-inspector-controls.js +0 -1
  30. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  31. package/build/navigation-link/edit.js +0 -11
  32. package/build/navigation-link/edit.js.map +1 -1
  33. package/build/navigation-link/link-ui.js +12 -2
  34. package/build/navigation-link/link-ui.js.map +1 -1
  35. package/build/post-time-to-read/index.js +5 -1
  36. package/build/post-time-to-read/index.js.map +1 -1
  37. package/build/site-logo/index.js +5 -1
  38. package/build/site-logo/index.js.map +1 -1
  39. package/build/site-tagline/index.js +5 -1
  40. package/build/site-tagline/index.js.map +1 -1
  41. package/build/site-title/index.js +5 -1
  42. package/build/site-title/index.js.map +1 -1
  43. package/build/social-links/index.js +3 -1
  44. package/build/social-links/index.js.map +1 -1
  45. package/build/table/index.js +5 -1
  46. package/build/table/index.js.map +1 -1
  47. package/build/verse/index.js +5 -1
  48. package/build/verse/index.js.map +1 -1
  49. package/build/video/deprecated.js +5 -1
  50. package/build/video/deprecated.js.map +1 -1
  51. package/build/video/index.js +5 -1
  52. package/build/video/index.js.map +1 -1
  53. package/build-module/archives/index.js +5 -1
  54. package/build-module/archives/index.js.map +1 -1
  55. package/build-module/audio/index.js +5 -1
  56. package/build-module/audio/index.js.map +1 -1
  57. package/build-module/block/edit.js +1 -1
  58. package/build-module/block/edit.js.map +1 -1
  59. package/build-module/block/edit.native.js +5 -7
  60. package/build-module/block/edit.native.js.map +1 -1
  61. package/build-module/categories/index.js +5 -1
  62. package/build-module/categories/index.js.map +1 -1
  63. package/build-module/code/index.js +5 -1
  64. package/build-module/code/index.js.map +1 -1
  65. package/build-module/details/index.js +5 -1
  66. package/build-module/details/index.js.map +1 -1
  67. package/build-module/gallery/index.js +3 -1
  68. package/build-module/gallery/index.js.map +1 -1
  69. package/build-module/heading/index.js +5 -1
  70. package/build-module/heading/index.js.map +1 -1
  71. package/build-module/heading/transforms.js +5 -1
  72. package/build-module/heading/transforms.js.map +1 -1
  73. package/build-module/image/image.js +1 -1
  74. package/build-module/image/image.js.map +1 -1
  75. package/build-module/list/index.js +5 -1
  76. package/build-module/list/index.js.map +1 -1
  77. package/build-module/list-item/utils.js +5 -1
  78. package/build-module/list-item/utils.js.map +1 -1
  79. package/build-module/navigation/edit/index.js +1 -1
  80. package/build-module/navigation/edit/index.js.map +1 -1
  81. package/build-module/navigation/edit/menu-inspector-controls.js +0 -1
  82. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  83. package/build-module/navigation-link/edit.js +1 -12
  84. package/build-module/navigation-link/edit.js.map +1 -1
  85. package/build-module/navigation-link/link-ui.js +13 -3
  86. package/build-module/navigation-link/link-ui.js.map +1 -1
  87. package/build-module/post-time-to-read/index.js +5 -1
  88. package/build-module/post-time-to-read/index.js.map +1 -1
  89. package/build-module/site-logo/index.js +5 -1
  90. package/build-module/site-logo/index.js.map +1 -1
  91. package/build-module/site-tagline/index.js +5 -1
  92. package/build-module/site-tagline/index.js.map +1 -1
  93. package/build-module/site-title/index.js +5 -1
  94. package/build-module/site-title/index.js.map +1 -1
  95. package/build-module/social-links/index.js +3 -1
  96. package/build-module/social-links/index.js.map +1 -1
  97. package/build-module/table/index.js +5 -1
  98. package/build-module/table/index.js.map +1 -1
  99. package/build-module/verse/index.js +5 -1
  100. package/build-module/verse/index.js.map +1 -1
  101. package/build-module/video/deprecated.js +5 -1
  102. package/build-module/video/deprecated.js.map +1 -1
  103. package/build-module/video/index.js +5 -1
  104. package/build-module/video/index.js.map +1 -1
  105. package/build-style/footnotes/style-rtl.css +2 -2
  106. package/build-style/footnotes/style.css +2 -2
  107. package/build-style/style-rtl.css +2 -2
  108. package/build-style/style.css +2 -2
  109. package/package.json +12 -12
  110. package/src/archives/block.json +5 -1
  111. package/src/audio/block.json +5 -1
  112. package/src/block/edit.js +2 -2
  113. package/src/block/edit.native.js +6 -10
  114. package/src/categories/block.json +5 -1
  115. package/src/code/block.json +5 -1
  116. package/src/details/block.json +5 -1
  117. package/src/footnotes/index.php +11 -9
  118. package/src/footnotes/style.scss +2 -2
  119. package/src/gallery/block.json +3 -1
  120. package/src/heading/block.json +5 -1
  121. package/src/image/image.js +2 -1
  122. package/src/list/block.json +5 -1
  123. package/src/navigation/edit/index.js +1 -2
  124. package/src/navigation/edit/menu-inspector-controls.js +0 -1
  125. package/src/navigation-link/edit.js +1 -15
  126. package/src/navigation-link/link-ui.js +14 -2
  127. package/src/post-time-to-read/block.json +5 -1
  128. package/src/post-title/index.php +6 -3
  129. package/src/site-logo/block.json +5 -1
  130. package/src/site-tagline/block.json +5 -1
  131. package/src/site-title/block.json +5 -1
  132. package/src/social-link/index.php +2 -2
  133. package/src/social-links/block.json +3 -1
  134. package/src/table/block.json +5 -1
  135. package/src/verse/block.json +5 -1
  136. package/src/video/block.json +5 -1
@@ -51,7 +51,11 @@ const metadata = {
51
51
  html: false,
52
52
  spacing: {
53
53
  margin: true,
54
- padding: true
54
+ padding: true,
55
+ __experimentalDefaultControls: {
56
+ margin: false,
57
+ padding: false
58
+ }
55
59
  },
56
60
  typography: {
57
61
  fontSize: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/archives/index.js"],"names":["name","metadata","settings","icon","example","edit","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAEA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,OAAO,EAAE,EAFc;AAGvBC,EAAAA,IAAI,EAAJA;AAHuB,CAAjB;;;AAMA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEN,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { archive as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/archives/index.js"],"names":["name","metadata","settings","icon","example","edit","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAEA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,OAAO,EAAE,EAFc;AAGvBC,EAAAA,IAAI,EAAJA;AAHuB,CAAjB;;;AAMA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEN,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { archive as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -77,7 +77,11 @@ const metadata = {
77
77
  align: true,
78
78
  spacing: {
79
79
  margin: true,
80
- padding: true
80
+ padding: true,
81
+ __experimentalDefaultControls: {
82
+ margin: false,
83
+ padding: false
84
+ }
81
85
  }
82
86
  },
83
87
  editorStyle: "wp-block-audio-editor",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/audio/index.js"],"names":["name","metadata","settings","icon","example","attributes","src","viewportWidth","transforms","deprecated","edit","save","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,YADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,GAAG,EAAE;AADM,KADJ;AAIRC,IAAAA,aAAa,EAAE;AAJP,GAFc;AAQvBC,EAAAA,UAAU,EAAVA,mBARuB;AASvBC,EAAAA,UAAU,EAAVA,mBATuB;AAUvBC,EAAAA,IAAI,EAAJA,aAVuB;AAWvBC,EAAAA,IAAI,EAAJA;AAXuB,CAAjB;;;AAcA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEZ,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { audio as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsrc: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',\n\t\t},\n\t\tviewportWidth: 350,\n\t},\n\ttransforms,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/audio/index.js"],"names":["name","metadata","settings","icon","example","attributes","src","viewportWidth","transforms","deprecated","edit","save","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,YADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,GAAG,EAAE;AADM,KADJ;AAIRC,IAAAA,aAAa,EAAE;AAJP,GAFc;AAQvBC,EAAAA,UAAU,EAAVA,mBARuB;AASvBC,EAAAA,UAAU,EAAVA,mBATuB;AAUvBC,EAAAA,IAAI,EAAJA,aAVuB;AAWvBC,EAAAA,IAAI,EAAJA;AAXuB,CAAjB;;;AAcA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEZ,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { audio as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsrc: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',\n\t\t},\n\t\tviewportWidth: 350,\n\t},\n\ttransforms,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -85,7 +85,7 @@ function ReusableBlockEdit({
85
85
  uniqueId: ref
86
86
  }, canRemove && (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)(_components.ToolbarGroup, null, (0, _element.createElement)(_components.ToolbarButton, {
87
87
  onClick: () => convertBlockToStatic(clientId),
88
- label: innerBlockCount > 1 ? (0, _i18n.__)('Convert to regular blocks') : (0, _i18n.__)('Convert to regular block'),
88
+ label: innerBlockCount > 1 ? (0, _i18n.__)('Detach patterns') : (0, _i18n.__)('Detach pattern'),
89
89
  icon: _icons.ungroup,
90
90
  showTooltip: true
91
91
  }))), (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, null, (0, _element.createElement)(_components.TextControl, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/block/edit.js"],"names":["ReusableBlockEdit","attributes","ref","clientId","hasAlreadyRendered","record","hasResolved","isMissing","canRemove","innerBlockCount","select","canRemoveBlock","getBlockCount","blockEditorStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","blocks","onInput","onChange","id","title","setTitle","blockProps","className","innerBlocksProps","value","renderAppender","length","undefined","InnerBlocks","ButtonBlockAppender","ungroup"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tuseEntityRecord,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarGroup,\n\tToolbarButton,\n\tTextControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { ungroup } from '@wordpress/icons';\n\nexport default function ReusableBlockEdit( { attributes: { ref }, clientId } ) {\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\tconst { canRemove, innerBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canRemoveBlock, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\tuseDispatch( reusableBlocksStore );\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title, setTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_block',\n\t\t'title',\n\t\tref\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-block__reusable-block-container',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\trenderAppender: blocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...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</div>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => convertBlockToStatic( clientId ) }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t\t\t\t? __( 'Convert to regular blocks' )\n\t\t\t\t\t\t\t\t\t: __( 'Convert to regular block' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ ungroup }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</RecursionProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/block/edit.js"],"names":["ReusableBlockEdit","attributes","ref","clientId","hasAlreadyRendered","record","hasResolved","isMissing","canRemove","innerBlockCount","select","canRemoveBlock","getBlockCount","blockEditorStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","blocks","onInput","onChange","id","title","setTitle","blockProps","className","innerBlocksProps","value","renderAppender","length","undefined","InnerBlocks","ButtonBlockAppender","ungroup"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tuseEntityRecord,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarGroup,\n\tToolbarButton,\n\tTextControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { ungroup } from '@wordpress/icons';\n\nexport default function ReusableBlockEdit( { attributes: { ref }, clientId } ) {\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\tconst { canRemove, innerBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canRemoveBlock, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\tuseDispatch( reusableBlocksStore );\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title, setTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_block',\n\t\t'title',\n\t\tref\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-block__reusable-block-container',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\trenderAppender: blocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...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</div>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => convertBlockToStatic( clientId ) }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t\t\t\t? __( 'Detach patterns' )\n\t\t\t\t\t\t\t\t\t: __( 'Detach pattern' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ ungroup }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</RecursionProvider>\n\t);\n}\n"]}
@@ -103,11 +103,8 @@ function ReusableBlockEdit({
103
103
  }
104
104
 
105
105
  const onConvertToRegularBlocks = (0, _element.useCallback)(() => {
106
- const successNotice = innerBlockCount > 1 ?
107
- /* translators: %s: name of the reusable block */
108
- (0, _i18n.__)('%s converted to regular blocks') :
109
- /* translators: %s: name of the reusable block */
110
- (0, _i18n.__)('%s converted to regular block');
106
+ /* translators: %s: name of the synced block */
107
+ const successNotice = (0, _i18n.__)('%s detached');
111
108
  createSuccessNotice((0, _i18n.sprintf)(successNotice, title));
112
109
  clearSelectedBlock(); // Convert action is executed at the end of the current JavaScript execution block
113
110
  // to prevent issues related to undo/redo actions.
@@ -135,8 +132,8 @@ function ReusableBlockEdit({
135
132
  style: [infoTextStyle, infoTitleStyle]
136
133
  }, infoTitle), (0, _element.createElement)(_reactNative.Text, {
137
134
  style: [infoTextStyle, infoDescriptionStyle]
138
- }, innerBlockCount > 1 ? (0, _i18n.__)('Alternatively, you can detach and edit these blocks separately by tapping “Convert to regular blocks”.') : (0, _i18n.__)('Alternatively, you can detach and edit this block separately by tapping “Convert to regular block”.')), (0, _element.createElement)(_components.TextControl, {
139
- label: innerBlockCount > 1 ? (0, _i18n.__)('Convert to regular blocks') : (0, _i18n.__)('Convert to regular block'),
135
+ }, innerBlockCount > 1 ? (0, _i18n.__)('Alternatively, you can detach and edit these blocks separately by tapping “Detach patterns”.') : (0, _i18n.__)('Alternatively, you can detach and edit this block separately by tapping “Detach pattern”.')), (0, _element.createElement)(_components.TextControl, {
136
+ label: innerBlockCount > 1 ? (0, _i18n.__)('Detach patterns') : (0, _i18n.__)('Detach pattern'),
140
137
  separatorType: "topFullWidth",
141
138
  onPress: onConvertToRegularBlocks,
142
139
  labelStyle: actionButtonStyle
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/block/edit.native.js"],"names":["ReusableBlockEdit","attributes","ref","clientId","isSelected","hasAlreadyRendered","showHelp","setShowHelp","infoTextStyle","styles","infoText","infoTextDark","infoTitleStyle","infoTitle","infoTitleDark","infoSheetIconStyle","infoSheetIcon","infoSheetIconDark","infoDescriptionStyle","infoDescription","infoDescriptionDark","actionButtonStyle","actionButton","actionButtonDark","spinnerStyle","spinner","spinnerDark","hasResolved","isEditing","isMissing","innerBlockCount","select","persistedBlock","coreStore","getEntityRecord","hasResolvedBlock","hasFinishedResolution","getBlockCount","blockEditorStore","reusableBlocksStore","__experimentalIsEditingReusableBlock","hostAppNamespace","editorStore","getEditorSettings","createSuccessNotice","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","clearSelectedBlock","blocks","onInput","onChange","id","title","openSheet","closeSheet","onConvertToRegularBlocks","successNotice","setImmediate","renderSheet","Platform","OS","infoContainer","help","color","size","element"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tActivityIndicator,\n\tPlatform,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useCallback } from '@wordpress/element';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBottomSheet,\n\tIcon,\n\tDisabled,\n\tTextControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { help } from '@wordpress/icons';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport EditTitle from './edit-title';\n\nexport default function ReusableBlockEdit( {\n\tattributes: { ref },\n\tclientId,\n\tisSelected,\n} ) {\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tconst [ showHelp, setShowHelp ] = useState( false );\n\tconst infoTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoText,\n\t\tstyles.infoTextDark\n\t);\n\tconst infoTitleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoTitle,\n\t\tstyles.infoTitleDark\n\t);\n\tconst infoSheetIconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoSheetIcon,\n\t\tstyles.infoSheetIconDark\n\t);\n\tconst infoDescriptionStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoDescription,\n\t\tstyles.infoDescriptionDark\n\t);\n\tconst actionButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.actionButton,\n\t\tstyles.actionButtonDark\n\t);\n\tconst spinnerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.spinner,\n\t\tstyles.spinnerDark\n\t);\n\n\tconst { hasResolved, isEditing, isMissing, innerBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst persistedBlock = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_block',\n\t\t\t\tref\n\t\t\t);\n\t\t\tconst hasResolvedBlock = select( coreStore ).hasFinishedResolution(\n\t\t\t\t'getEntityRecord',\n\t\t\t\t[ 'postType', 'wp_block', ref ]\n\t\t\t);\n\n\t\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\thasResolved: hasResolvedBlock,\n\t\t\t\tisEditing:\n\t\t\t\t\tselect(\n\t\t\t\t\t\treusableBlocksStore\n\t\t\t\t\t).__experimentalIsEditingReusableBlock( clientId ),\n\t\t\t\tisMissing: hasResolvedBlock && ! persistedBlock,\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ ref, clientId ]\n\t);\n\tconst hostAppNamespace = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getEditorSettings().hostAppNamespace,\n\t\t[]\n\t);\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title ] = useEntityProp( 'postType', 'wp_block', 'title', ref );\n\n\tfunction openSheet() {\n\t\tsetShowHelp( true );\n\t}\n\n\tfunction closeSheet() {\n\t\tsetShowHelp( false );\n\t}\n\n\tconst onConvertToRegularBlocks = useCallback( () => {\n\t\tconst successNotice =\n\t\t\tinnerBlockCount > 1\n\t\t\t\t? /* translators: %s: name of the reusable block */\n\t\t\t\t __( '%s converted to regular blocks' )\n\t\t\t\t: /* translators: %s: name of the reusable block */\n\t\t\t\t __( '%s converted to regular block' );\n\t\tcreateSuccessNotice( sprintf( successNotice, title ) );\n\n\t\tclearSelectedBlock();\n\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t// to prevent issues related to undo/redo actions.\n\t\tsetImmediate( () => convertBlockToStatic( clientId ) );\n\t}, [ title, clientId ] );\n\n\tfunction renderSheet() {\n\t\tconst infoTitle =\n\t\t\tPlatform.OS === 'android'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: name of the host app (e.g. WordPress) */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Editing reusable blocks is not yet supported on %s for Android'\n\t\t\t\t\t\t),\n\t\t\t\t\t\thostAppNamespace\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: name of the host app (e.g. WordPress) */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Editing reusable blocks is not yet supported on %s for iOS'\n\t\t\t\t\t\t),\n\t\t\t\t\t\thostAppNamespace\n\t\t\t\t );\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ showHelp }\n\t\t\t\thideHeader\n\t\t\t\tonClose={ closeSheet }\n\t\t\t>\n\t\t\t\t<View style={ styles.infoContainer }>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ help }\n\t\t\t\t\t\tcolor={ infoSheetIconStyle.color }\n\t\t\t\t\t\tsize={ styles.infoSheetIcon.size }\n\t\t\t\t\t/>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoTitleStyle ] }>\n\t\t\t\t\t\t{ infoTitle }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoDescriptionStyle ] }>\n\t\t\t\t\t\t{ innerBlockCount > 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Alternatively, you can detach and edit these blocks separately by tapping “Convert to regular blocks”.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Alternatively, you can detach and edit this block separately by tapping “Convert to regular block”.'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t\t\t? __( 'Convert to regular blocks' )\n\t\t\t\t\t\t\t\t: __( 'Convert to regular block' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tseparatorType=\"topFullWidth\"\n\t\t\t\t\t\tonPress={ onConvertToRegularBlocks }\n\t\t\t\t\t\tlabelStyle={ actionButtonStyle }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<View style={ spinnerStyle }>\n\t\t\t\t<ActivityIndicator animating />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tlet element = (\n\t\t<InnerBlocks\n\t\t\tvalue={ blocks }\n\t\t\tonChange={ onChange }\n\t\t\tonInput={ onInput }\n\t\t/>\n\t);\n\n\tif ( ! isEditing ) {\n\t\telement = <Disabled>{ element }</Disabled>;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ __( 'Help button' ) }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\taccessibilityHint={ __( 'Tap here to show help' ) }\n\t\t\t\tonPress={ openSheet }\n\t\t\t>\n\t\t\t\t<View>\n\t\t\t\t\t{ isSelected && <EditTitle title={ title } /> }\n\t\t\t\t\t{ element }\n\t\t\t\t\t{ renderSheet() }\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</RecursionProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/block/edit.native.js"],"names":["ReusableBlockEdit","attributes","ref","clientId","isSelected","hasAlreadyRendered","showHelp","setShowHelp","infoTextStyle","styles","infoText","infoTextDark","infoTitleStyle","infoTitle","infoTitleDark","infoSheetIconStyle","infoSheetIcon","infoSheetIconDark","infoDescriptionStyle","infoDescription","infoDescriptionDark","actionButtonStyle","actionButton","actionButtonDark","spinnerStyle","spinner","spinnerDark","hasResolved","isEditing","isMissing","innerBlockCount","select","persistedBlock","coreStore","getEntityRecord","hasResolvedBlock","hasFinishedResolution","getBlockCount","blockEditorStore","reusableBlocksStore","__experimentalIsEditingReusableBlock","hostAppNamespace","editorStore","getEditorSettings","createSuccessNotice","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","clearSelectedBlock","blocks","onInput","onChange","id","title","openSheet","closeSheet","onConvertToRegularBlocks","successNotice","setImmediate","renderSheet","Platform","OS","infoContainer","help","color","size","element"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tActivityIndicator,\n\tPlatform,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useCallback } from '@wordpress/element';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBottomSheet,\n\tIcon,\n\tDisabled,\n\tTextControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { help } from '@wordpress/icons';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport EditTitle from './edit-title';\n\nexport default function ReusableBlockEdit( {\n\tattributes: { ref },\n\tclientId,\n\tisSelected,\n} ) {\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tconst [ showHelp, setShowHelp ] = useState( false );\n\tconst infoTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoText,\n\t\tstyles.infoTextDark\n\t);\n\tconst infoTitleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoTitle,\n\t\tstyles.infoTitleDark\n\t);\n\tconst infoSheetIconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoSheetIcon,\n\t\tstyles.infoSheetIconDark\n\t);\n\tconst infoDescriptionStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoDescription,\n\t\tstyles.infoDescriptionDark\n\t);\n\tconst actionButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.actionButton,\n\t\tstyles.actionButtonDark\n\t);\n\tconst spinnerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.spinner,\n\t\tstyles.spinnerDark\n\t);\n\n\tconst { hasResolved, isEditing, isMissing, innerBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst persistedBlock = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_block',\n\t\t\t\tref\n\t\t\t);\n\t\t\tconst hasResolvedBlock = select( coreStore ).hasFinishedResolution(\n\t\t\t\t'getEntityRecord',\n\t\t\t\t[ 'postType', 'wp_block', ref ]\n\t\t\t);\n\n\t\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\thasResolved: hasResolvedBlock,\n\t\t\t\tisEditing:\n\t\t\t\t\tselect(\n\t\t\t\t\t\treusableBlocksStore\n\t\t\t\t\t).__experimentalIsEditingReusableBlock( clientId ),\n\t\t\t\tisMissing: hasResolvedBlock && ! persistedBlock,\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ ref, clientId ]\n\t);\n\tconst hostAppNamespace = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getEditorSettings().hostAppNamespace,\n\t\t[]\n\t);\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title ] = useEntityProp( 'postType', 'wp_block', 'title', ref );\n\n\tfunction openSheet() {\n\t\tsetShowHelp( true );\n\t}\n\n\tfunction closeSheet() {\n\t\tsetShowHelp( false );\n\t}\n\n\tconst onConvertToRegularBlocks = useCallback( () => {\n\t\t/* translators: %s: name of the synced block */\n\t\tconst successNotice = __( '%s detached' );\n\t\tcreateSuccessNotice( sprintf( successNotice, title ) );\n\n\t\tclearSelectedBlock();\n\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t// to prevent issues related to undo/redo actions.\n\t\tsetImmediate( () => convertBlockToStatic( clientId ) );\n\t}, [ title, clientId ] );\n\n\tfunction renderSheet() {\n\t\tconst infoTitle =\n\t\t\tPlatform.OS === 'android'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: name of the host app (e.g. WordPress) */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Editing reusable blocks is not yet supported on %s for Android'\n\t\t\t\t\t\t),\n\t\t\t\t\t\thostAppNamespace\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: name of the host app (e.g. WordPress) */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Editing reusable blocks is not yet supported on %s for iOS'\n\t\t\t\t\t\t),\n\t\t\t\t\t\thostAppNamespace\n\t\t\t\t );\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ showHelp }\n\t\t\t\thideHeader\n\t\t\t\tonClose={ closeSheet }\n\t\t\t>\n\t\t\t\t<View style={ styles.infoContainer }>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ help }\n\t\t\t\t\t\tcolor={ infoSheetIconStyle.color }\n\t\t\t\t\t\tsize={ styles.infoSheetIcon.size }\n\t\t\t\t\t/>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoTitleStyle ] }>\n\t\t\t\t\t\t{ infoTitle }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoDescriptionStyle ] }>\n\t\t\t\t\t\t{ innerBlockCount > 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Alternatively, you can detach and edit these blocks separately by tapping “Detach patterns”.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Alternatively, you can detach and edit this block separately by tapping “Detach pattern”.'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t\t\t? __( 'Detach patterns' )\n\t\t\t\t\t\t\t\t: __( 'Detach pattern' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tseparatorType=\"topFullWidth\"\n\t\t\t\t\t\tonPress={ onConvertToRegularBlocks }\n\t\t\t\t\t\tlabelStyle={ actionButtonStyle }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<View style={ spinnerStyle }>\n\t\t\t\t<ActivityIndicator animating />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tlet element = (\n\t\t<InnerBlocks\n\t\t\tvalue={ blocks }\n\t\t\tonChange={ onChange }\n\t\t\tonInput={ onInput }\n\t\t/>\n\t);\n\n\tif ( ! isEditing ) {\n\t\telement = <Disabled>{ element }</Disabled>;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ __( 'Help button' ) }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\taccessibilityHint={ __( 'Tap here to show help' ) }\n\t\t\t\tonPress={ openSheet }\n\t\t\t>\n\t\t\t\t<View>\n\t\t\t\t\t{ isSelected && <EditTitle title={ title } /> }\n\t\t\t\t\t{ element }\n\t\t\t\t\t{ renderSheet() }\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</RecursionProvider>\n\t);\n}\n"]}
@@ -55,7 +55,11 @@ const metadata = {
55
55
  html: false,
56
56
  spacing: {
57
57
  margin: true,
58
- padding: true
58
+ padding: true,
59
+ __experimentalDefaultControls: {
60
+ margin: false,
61
+ padding: false
62
+ }
59
63
  },
60
64
  typography: {
61
65
  fontSize: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/categories/index.js"],"names":["name","metadata","settings","icon","example","edit","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAEA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,eADuB;AAEvBC,EAAAA,OAAO,EAAE,EAFc;AAGvBC,EAAAA,IAAI,EAAJA;AAHuB,CAAjB;;;AAMA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEN,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { category as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/categories/index.js"],"names":["name","metadata","settings","icon","example","edit","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAEA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,eADuB;AAEvBC,EAAAA,OAAO,EAAE,EAFc;AAGvBC,EAAAA,IAAI,EAAJA;AAHuB,CAAjB;;;AAMA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEN,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { category as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -59,7 +59,11 @@ const metadata = {
59
59
  },
60
60
  spacing: {
61
61
  margin: ["top", "bottom"],
62
- padding: true
62
+ padding: true,
63
+ __experimentalDefaultControls: {
64
+ margin: false,
65
+ padding: false
66
+ }
63
67
  },
64
68
  __experimentalBorder: {
65
69
  radius: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/code/index.js"],"names":["name","metadata","settings","icon","example","attributes","content","transforms","edit","save","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;AAbA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,WADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACX;AACA;AACAC,MAAAA,OAAO,EAAE,cACR,yLADQ;AAGT;;AANW;AADJ,GAFc;AAYvBC,EAAAA,UAAU,EAAVA,mBAZuB;AAavBC,EAAAA,IAAI,EAAJA,aAbuB;AAcvBC,EAAAA,IAAI,EAAJA;AAduB,CAAjB;;;AAiBA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEV,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A “block” is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/code/index.js"],"names":["name","metadata","settings","icon","example","attributes","content","transforms","edit","save","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;AAbA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,WADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACX;AACA;AACAC,MAAAA,OAAO,EAAE,cACR,yLADQ;AAGT;;AANW;AADJ,GAFc;AAYvBC,EAAAA,UAAU,EAAVA,mBAZuB;AAavBC,EAAAA,IAAI,EAAJA,aAbuB;AAcvBC,EAAAA,IAAI,EAAJA;AAduB,CAAjB;;;AAiBA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEV,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A “block” is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -60,7 +60,11 @@ const metadata = {
60
60
  html: false,
61
61
  spacing: {
62
62
  margin: true,
63
- padding: true
63
+ padding: true,
64
+ __experimentalDefaultControls: {
65
+ margin: false,
66
+ padding: false
67
+ }
64
68
  },
65
69
  typography: {
66
70
  fontSize: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/details/index.js"],"names":["name","metadata","settings","icon","example","attributes","summary","showContent","innerBlocks","content","save","edit","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AAEA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,OAAO,EAAE,WADE;AAEXC,MAAAA,WAAW,EAAE;AAFF,KADJ;AAKRC,IAAAA,WAAW,EAAE,CACZ;AACCR,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXI,QAAAA,OAAO,EAAE,cACR,kOADQ;AADE;AAFb,KADY;AALL,GAFc;AAkBvBC,EAAAA,IAAI,EAAJA,aAlBuB;AAmBvBC,EAAAA,IAAI,EAAJA;AAnBuB,CAAjB;;;AAsBA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEZ,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { details as icon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsummary: 'La Mancha',\n\t\t\tshowContent: true,\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tsave,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/details/index.js"],"names":["name","metadata","settings","icon","example","attributes","summary","showContent","innerBlocks","content","save","edit","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AAEA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,OAAO,EAAE,WADE;AAEXC,MAAAA,WAAW,EAAE;AAFF,KADJ;AAKRC,IAAAA,WAAW,EAAE,CACZ;AACCR,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXI,QAAAA,OAAO,EAAE,cACR,kOADQ;AADE;AAFb,KADY;AALL,GAFc;AAkBvBC,EAAAA,IAAI,EAAJA,aAlBuB;AAmBvBC,EAAAA,IAAI,EAAJA;AAnBuB,CAAjB;;;AAsBA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEZ,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { details as icon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsummary: 'La Mancha',\n\t\t\tshowContent: true,\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tsave,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -143,7 +143,9 @@ const metadata = {
143
143
  blockGap: ["horizontal", "vertical"],
144
144
  __experimentalSkipSerialization: ["blockGap"],
145
145
  __experimentalDefaultControls: {
146
- blockGap: true
146
+ blockGap: true,
147
+ margin: false,
148
+ padding: false
147
149
  }
148
150
  },
149
151
  color: {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/index.js"],"names":["name","metadata","settings","icon","example","attributes","columns","innerBlocks","url","transforms","edit","save","deprecated","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,OAAO,EAAE;AADE,KADJ;AAIRC,IAAAA,WAAW,EAAE,CACZ;AACCP,MAAAA,IAAI,EAAE,YADP;AAECK,MAAAA,UAAU,EAAE;AACXG,QAAAA,GAAG,EAAE;AADM;AAFb,KADY,EAOZ;AACCR,MAAAA,IAAI,EAAE,YADP;AAECK,MAAAA,UAAU,EAAE;AACXG,QAAAA,GAAG,EAAE;AADM;AAFb,KAPY;AAJL,GAFc;AAqBvBC,EAAAA,UAAU,EAAVA,mBArBuB;AAsBvBC,EAAAA,IAAI,EAAJA,oBAtBuB;AAuBvBC,EAAAA,IAAI,EAAJA,aAvBuB;AAwBvBC,EAAAA,UAAU,EAAVA;AAxBuB,CAAjB;;;AA2BA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEb,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { gallery as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit-wrapper';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcolumns: 2,\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/image',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/image',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/index.js"],"names":["name","metadata","settings","icon","example","attributes","columns","innerBlocks","url","transforms","edit","save","deprecated","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,OAAO,EAAE;AADE,KADJ;AAIRC,IAAAA,WAAW,EAAE,CACZ;AACCP,MAAAA,IAAI,EAAE,YADP;AAECK,MAAAA,UAAU,EAAE;AACXG,QAAAA,GAAG,EAAE;AADM;AAFb,KADY,EAOZ;AACCR,MAAAA,IAAI,EAAE,YADP;AAECK,MAAAA,UAAU,EAAE;AACXG,QAAAA,GAAG,EAAE;AADM;AAFb,KAPY;AAJL,GAFc;AAqBvBC,EAAAA,UAAU,EAAVA,mBArBuB;AAsBvBC,EAAAA,IAAI,EAAJA,oBAtBuB;AAuBvBC,EAAAA,IAAI,EAAJA,aAvBuB;AAwBvBC,EAAAA,UAAU,EAAVA;AAxBuB,CAAjB;;;AA2BA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEb,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { gallery as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit-wrapper';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcolumns: 2,\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/image',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/image',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -70,7 +70,11 @@ const metadata = {
70
70
  },
71
71
  spacing: {
72
72
  margin: true,
73
- padding: true
73
+ padding: true,
74
+ __experimentalDefaultControls: {
75
+ margin: false,
76
+ padding: false
77
+ }
74
78
  },
75
79
  typography: {
76
80
  fontSize: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/heading/index.js"],"names":["name","metadata","settings","icon","example","attributes","content","level","__experimentalLabel","context","length","transforms","deprecated","merge","attributesToMerge","edit","save","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AAdA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,OAAO,EAAE,cAAI,gBAAJ,CADE;AAEXC,MAAAA,KAAK,EAAE;AAFI;AADJ,GAFc;;AAQvBC,EAAAA,mBAAmB,CAAEH,UAAF,EAAc;AAAEI,IAAAA;AAAF,GAAd,EAA4B;AAC9C,UAAM;AAAEH,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBF,UAA3B,CAD8C,CAG9C;AACA;;AACA,QAAKI,OAAO,KAAK,WAAZ,IAA2BH,OAAhC,EAA0C;AACzC,aAAOA,OAAP;AACA;;AAED,QAAKG,OAAO,KAAK,eAAjB,EAAmC;AAClC,aAAO,CAAEH,OAAF,IAAaA,OAAO,CAACI,MAAR,KAAmB,CAAhC,GACJ;AACA;AACA,oBAAI,kBAAJ,CAFA,EAGAH,KAHA,CADI,GAMJ;AACA;AACA,oBAAI,kBAAJ,CAFA,EAGAA,KAHA,EAIAD,OAJA,CANH;AAYA;AACD,GA/BsB;;AAgCvBK,EAAAA,UAAU,EAAVA,mBAhCuB;AAiCvBC,EAAAA,UAAU,EAAVA,mBAjCuB;;AAkCvBC,EAAAA,KAAK,CAAER,UAAF,EAAcS,iBAAd,EAAkC;AACtC,WAAO;AACNR,MAAAA,OAAO,EACN,CAAED,UAAU,CAACC,OAAX,IAAsB,EAAxB,KACEQ,iBAAiB,CAACR,OAAlB,IAA6B,EAD/B;AAFK,KAAP;AAKA,GAxCsB;;AAyCvBS,EAAAA,IAAI,EAAJA,aAzCuB;AA0CvBC,EAAAA,IAAI,EAAJA;AA1CuB,CAAjB;;;AA6CA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEjB,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { heading as icon } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcontent: __( 'Code is Poetry' ),\n\t\t\tlevel: 2,\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst { content, level } = attributes;\n\n\t\t// In the list view, use the block's content as the label.\n\t\t// If the content is empty, fall back to the default label.\n\t\tif ( context === 'list-view' && content ) {\n\t\t\treturn content;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\treturn ! content || content.length === 0\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: heading level. */\n\t\t\t\t\t\t__( 'Level %s. Empty.' ),\n\t\t\t\t\t\tlevel\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. 1: heading level. 2: heading content. */\n\t\t\t\t\t\t__( 'Level %1$s. %2$s' ),\n\t\t\t\t\t\tlevel,\n\t\t\t\t\t\tcontent\n\t\t\t\t );\n\t\t}\n\t},\n\ttransforms,\n\tdeprecated,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent:\n\t\t\t\t( attributes.content || '' ) +\n\t\t\t\t( attributesToMerge.content || '' ),\n\t\t};\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/heading/index.js"],"names":["name","metadata","settings","icon","example","attributes","content","level","__experimentalLabel","context","length","transforms","deprecated","merge","attributesToMerge","edit","save","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AAdA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,OAAO,EAAE,cAAI,gBAAJ,CADE;AAEXC,MAAAA,KAAK,EAAE;AAFI;AADJ,GAFc;;AAQvBC,EAAAA,mBAAmB,CAAEH,UAAF,EAAc;AAAEI,IAAAA;AAAF,GAAd,EAA4B;AAC9C,UAAM;AAAEH,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBF,UAA3B,CAD8C,CAG9C;AACA;;AACA,QAAKI,OAAO,KAAK,WAAZ,IAA2BH,OAAhC,EAA0C;AACzC,aAAOA,OAAP;AACA;;AAED,QAAKG,OAAO,KAAK,eAAjB,EAAmC;AAClC,aAAO,CAAEH,OAAF,IAAaA,OAAO,CAACI,MAAR,KAAmB,CAAhC,GACJ;AACA;AACA,oBAAI,kBAAJ,CAFA,EAGAH,KAHA,CADI,GAMJ;AACA;AACA,oBAAI,kBAAJ,CAFA,EAGAA,KAHA,EAIAD,OAJA,CANH;AAYA;AACD,GA/BsB;;AAgCvBK,EAAAA,UAAU,EAAVA,mBAhCuB;AAiCvBC,EAAAA,UAAU,EAAVA,mBAjCuB;;AAkCvBC,EAAAA,KAAK,CAAER,UAAF,EAAcS,iBAAd,EAAkC;AACtC,WAAO;AACNR,MAAAA,OAAO,EACN,CAAED,UAAU,CAACC,OAAX,IAAsB,EAAxB,KACEQ,iBAAiB,CAACR,OAAlB,IAA6B,EAD/B;AAFK,KAAP;AAKA,GAxCsB;;AAyCvBS,EAAAA,IAAI,EAAJA,aAzCuB;AA0CvBC,EAAAA,IAAI,EAAJA;AA1CuB,CAAjB;;;AA6CA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEjB,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { heading as icon } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcontent: __( 'Code is Poetry' ),\n\t\t\tlevel: 2,\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst { content, level } = attributes;\n\n\t\t// In the list view, use the block's content as the label.\n\t\t// If the content is empty, fall back to the default label.\n\t\tif ( context === 'list-view' && content ) {\n\t\t\treturn content;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\treturn ! content || content.length === 0\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: heading level. */\n\t\t\t\t\t\t__( 'Level %s. Empty.' ),\n\t\t\t\t\t\tlevel\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. 1: heading level. 2: heading content. */\n\t\t\t\t\t\t__( 'Level %1$s. %2$s' ),\n\t\t\t\t\t\tlevel,\n\t\t\t\t\t\tcontent\n\t\t\t\t );\n\t\t}\n\t},\n\ttransforms,\n\tdeprecated,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent:\n\t\t\t\t( attributes.content || '' ) +\n\t\t\t\t( attributesToMerge.content || '' ),\n\t\t};\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -60,7 +60,11 @@ const {
60
60
  },
61
61
  spacing: {
62
62
  margin: true,
63
- padding: true
63
+ padding: true,
64
+ __experimentalDefaultControls: {
65
+ margin: false,
66
+ padding: false
67
+ }
64
68
  },
65
69
  typography: {
66
70
  fontSize: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/heading/transforms.js"],"names":["transforms","from","type","isMultiBlock","blocks","transform","attributes","map","content","anchor","align","textAlign","name","selector","schema","phrasingContentSchema","isPaste","children","h1","h2","h3","h4","h5","h6","node","outerHTML","style","level","nodeName","prefix","Array","join","regExp","RegExp","to"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getLevelFromHeadingNodeName } from './shared';\nimport { name } from './block.json';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( { content, anchor, align: textAlign } ) =>\n\t\t\t\t\tcreateBlock( name, {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\tschema: ( { phrasingContentSchema, isPaste } ) => {\n\t\t\t\tconst schema = {\n\t\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\t\tattributes: isPaste ? [] : [ 'style', 'id' ],\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\th1: schema,\n\t\t\t\t\th2: schema,\n\t\t\t\t\th3: schema,\n\t\t\t\t\th4: schema,\n\t\t\t\t\th5: schema,\n\t\t\t\t\th6: schema,\n\t\t\t\t};\n\t\t\t},\n\t\t\ttransform( node ) {\n\t\t\t\tconst attributes = getBlockAttributes( name, node.outerHTML );\n\t\t\t\tconst { textAlign } = node.style || {};\n\n\t\t\t\tattributes.level = getLevelFromHeadingNodeName( node.nodeName );\n\n\t\t\t\tif (\n\t\t\t\t\ttextAlign === 'left' ||\n\t\t\t\t\ttextAlign === 'center' ||\n\t\t\t\t\ttextAlign === 'right'\n\t\t\t\t) {\n\t\t\t\t\tattributes.align = textAlign;\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( name, attributes );\n\t\t\t},\n\t\t},\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'prefix',\n\t\t\tprefix: Array( level + 1 ).join( '#' ),\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( name, {\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ) ),\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'enter',\n\t\t\tregExp: new RegExp( `^/(h|H)${ level }$` ),\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( name, {\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ) ),\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( { content, textAlign: align } ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', { content, align } )\n\t\t\t\t),\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/heading/transforms.js"],"names":["transforms","from","type","isMultiBlock","blocks","transform","attributes","map","content","anchor","align","textAlign","name","selector","schema","phrasingContentSchema","isPaste","children","h1","h2","h3","h4","h5","h6","node","outerHTML","style","level","nodeName","prefix","Array","join","regExp","RegExp","to"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getLevelFromHeadingNodeName } from './shared';\nimport { name } from './block.json';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( { content, anchor, align: textAlign } ) =>\n\t\t\t\t\tcreateBlock( name, {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\tschema: ( { phrasingContentSchema, isPaste } ) => {\n\t\t\t\tconst schema = {\n\t\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\t\tattributes: isPaste ? [] : [ 'style', 'id' ],\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\th1: schema,\n\t\t\t\t\th2: schema,\n\t\t\t\t\th3: schema,\n\t\t\t\t\th4: schema,\n\t\t\t\t\th5: schema,\n\t\t\t\t\th6: schema,\n\t\t\t\t};\n\t\t\t},\n\t\t\ttransform( node ) {\n\t\t\t\tconst attributes = getBlockAttributes( name, node.outerHTML );\n\t\t\t\tconst { textAlign } = node.style || {};\n\n\t\t\t\tattributes.level = getLevelFromHeadingNodeName( node.nodeName );\n\n\t\t\t\tif (\n\t\t\t\t\ttextAlign === 'left' ||\n\t\t\t\t\ttextAlign === 'center' ||\n\t\t\t\t\ttextAlign === 'right'\n\t\t\t\t) {\n\t\t\t\t\tattributes.align = textAlign;\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( name, attributes );\n\t\t\t},\n\t\t},\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'prefix',\n\t\t\tprefix: Array( level + 1 ).join( '#' ),\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( name, {\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ) ),\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'enter',\n\t\t\tregExp: new RegExp( `^/(h|H)${ level }$` ),\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( name, {\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ) ),\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( { content, textAlign: align } ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', { content, align } )\n\t\t\t\t),\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
@@ -511,7 +511,7 @@ function Image({
511
511
  }
512
512
  }, img);
513
513
  } else {
514
- const ratio = aspectRatio && (0, _utils.evalAspectRatio)(aspectRatio) || width && height && width / height || naturalWidth / naturalHeight;
514
+ const ratio = aspectRatio && (0, _utils.evalAspectRatio)(aspectRatio) || width && height && width / height || naturalWidth / naturalHeight || 1;
515
515
  const currentWidth = !width && height ? height * ratio : width;
516
516
  const currentHeight = !height && width ? width / ratio : height;
517
517
  const minWidth = naturalWidth < naturalHeight ? _constants.MIN_SIZE : _constants.MIN_SIZE * ratio;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/image/image.js"],"names":["DimensionsTool","ResolutionTool","blockEditorPrivateApis","scaleOptions","value","label","help","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","blockEditingMode","url","alt","caption","align","id","href","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","imageRef","prevCaption","showCaption","setShowCaption","allowResize","getBlock","blockEditorStore","image","multiImageSelection","select","getMedia","coreStore","getMultiSelectedBlockClientIds","getBlockName","multiSelectedClientIds","length","every","_clientId","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","getBlockRootClientId","getSettings","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","noticesStore","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","hasNonContentControls","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","canUploadMedia","window","fetch","then","response","blob","catch","captionRef","node","focus","naturalWidth","naturalHeight","current","undefined","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","updateAlignment","nextAlign","extraUpdatedAttributes","canEditImage","allowCrop","switchToCover","dimensionsUnitsOptions","availableUnits","controls","captionIcon","link","crop","overlayText","upload","newValue","parseInt","filename","defaultedAlt","borderProps","isRounded","className","event","target","objectFit","style","fallbackClientWidth","imageAttributes","ratio","currentWidth","currentHeight","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","display","top","right","bottom","left","direction","elt","offsetWidth","offsetHeight","RichText","isEmpty"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tBlockAlignmentControl,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalGetElementClassName,\n\t__experimentalUseBorderProps as useBorderProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tcrop,\n\toverlayText,\n\tupload,\n\tcaption as captionIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst imageRef = useRef();\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image, multiImageSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\tconst { getMultiSelectedBlockClientIds, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t\tmultiImageSelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected ]\n\t);\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetSettings,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\tconst settings = getSettings();\n\n\t\t\t\treturn {\n\t\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! ( isWideAligned && isLargeViewport );\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst canUploadMedia = !! mediaUpload;\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSelected ||\n\t\t\t! canUploadMedia\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) return;\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob, canUploadMedia ] );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t\tif ( ! caption ) {\n\t\t\t\tsetShowCaption( false );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\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\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ ! multiImageSelection && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload external image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t\tscale: undefined,\n\t\t\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t\thasValue={ () => alt !== '' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\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'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\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\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<DimensionsTool\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\twidth: width && `${ width }px`,\n\t\t\t\t\t\t\theight: height && `${ height }px`,\n\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\taspectRatio,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\tnewValue.width &&\n\t\t\t\t\t\t\t\t\tparseInt( newValue.width, 10 ),\n\t\t\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t\t\tnewValue.height &&\n\t\t\t\t\t\t\t\t\tparseInt( newValue.height, 10 ),\n\t\t\t\t\t\t\t\tscale: newValue.scale,\n\t\t\t\t\t\t\t\taspectRatio: newValue.aspectRatio,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdefaultScale=\"cover\"\n\t\t\t\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\t\t\t\tscaleOptions={ scaleOptions }\n\t\t\t\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t\t\t\t/>\n\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : 'inherit',\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : 'inherit',\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\t// clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0\n\t// So we try using the imageRef width first and fallback to clientWidth.\n\tconst fallbackClientWidth = imageRef.current?.width || clientWidth;\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ id }\n\t\t\t\turl={ url }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\tclientWidth={ fallbackClientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\tsetAttributes( imageAttributes )\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\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t/>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = <div style={ { width, height, aspectRatio } }>{ img }</div>;\n\t} else {\n\t\tconst ratio =\n\t\t\t( aspectRatio && evalAspectRatio( aspectRatio ) ) ||\n\t\t\t( width && height && width / height ) ||\n\t\t\tnaturalWidth / naturalHeight;\n\n\t\tconst currentWidth = ! width && height ? height * ratio : width;\n\t\tconst currentHeight = ! height && width ? width / ratio : height;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\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={ ratio }\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 ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: elt.offsetWidth,\n\t\t\t\t\t\theight: elt.offsetHeight,\n\t\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/image/image.js"],"names":["DimensionsTool","ResolutionTool","blockEditorPrivateApis","scaleOptions","value","label","help","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","blockEditingMode","url","alt","caption","align","id","href","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","imageRef","prevCaption","showCaption","setShowCaption","allowResize","getBlock","blockEditorStore","image","multiImageSelection","select","getMedia","coreStore","getMultiSelectedBlockClientIds","getBlockName","multiSelectedClientIds","length","every","_clientId","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","getBlockRootClientId","getSettings","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","noticesStore","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","hasNonContentControls","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","canUploadMedia","window","fetch","then","response","blob","catch","captionRef","node","focus","naturalWidth","naturalHeight","current","undefined","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","updateAlignment","nextAlign","extraUpdatedAttributes","canEditImage","allowCrop","switchToCover","dimensionsUnitsOptions","availableUnits","controls","captionIcon","link","crop","overlayText","upload","newValue","parseInt","filename","defaultedAlt","borderProps","isRounded","className","event","target","objectFit","style","fallbackClientWidth","imageAttributes","ratio","currentWidth","currentHeight","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","display","top","right","bottom","left","direction","elt","offsetWidth","offsetHeight","RichText","isEmpty"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tBlockAlignmentControl,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalGetElementClassName,\n\t__experimentalUseBorderProps as useBorderProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tcrop,\n\toverlayText,\n\tupload,\n\tcaption as captionIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst imageRef = useRef();\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image, multiImageSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\tconst { getMultiSelectedBlockClientIds, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t\tmultiImageSelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected ]\n\t);\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetSettings,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\tconst settings = getSettings();\n\n\t\t\t\treturn {\n\t\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! ( isWideAligned && isLargeViewport );\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst canUploadMedia = !! mediaUpload;\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSelected ||\n\t\t\t! canUploadMedia\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) return;\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob, canUploadMedia ] );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t\tif ( ! caption ) {\n\t\t\t\tsetShowCaption( false );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\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\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ ! multiImageSelection && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload external image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t\tscale: undefined,\n\t\t\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t\thasValue={ () => alt !== '' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\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'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\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\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<DimensionsTool\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\twidth: width && `${ width }px`,\n\t\t\t\t\t\t\theight: height && `${ height }px`,\n\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\taspectRatio,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\tnewValue.width &&\n\t\t\t\t\t\t\t\t\tparseInt( newValue.width, 10 ),\n\t\t\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t\t\tnewValue.height &&\n\t\t\t\t\t\t\t\t\tparseInt( newValue.height, 10 ),\n\t\t\t\t\t\t\t\tscale: newValue.scale,\n\t\t\t\t\t\t\t\taspectRatio: newValue.aspectRatio,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdefaultScale=\"cover\"\n\t\t\t\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\t\t\t\tscaleOptions={ scaleOptions }\n\t\t\t\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t\t\t\t/>\n\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : 'inherit',\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : 'inherit',\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\t// clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0\n\t// So we try using the imageRef width first and fallback to clientWidth.\n\tconst fallbackClientWidth = imageRef.current?.width || clientWidth;\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ id }\n\t\t\t\turl={ url }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\tclientWidth={ fallbackClientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\tsetAttributes( imageAttributes )\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\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t/>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = <div style={ { width, height, aspectRatio } }>{ img }</div>;\n\t} else {\n\t\tconst ratio =\n\t\t\t( aspectRatio && evalAspectRatio( aspectRatio ) ) ||\n\t\t\t( width && height && width / height ) ||\n\t\t\tnaturalWidth / naturalHeight ||\n\t\t\t1;\n\n\t\tconst currentWidth = ! width && height ? height * ratio : width;\n\t\tconst currentHeight = ! height && width ? width / ratio : height;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\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={ ratio }\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 ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: elt.offsetWidth,\n\t\t\t\t\t\theight: elt.offsetHeight,\n\t\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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</>\n\t);\n}\n"]}