@wordpress/block-library 9.1.0 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +19 -17
  2. package/build/button/index.js +1 -0
  3. package/build/button/index.js.map +1 -1
  4. package/build/image/image.js +3 -2
  5. package/build/image/image.js.map +1 -1
  6. package/build/lock-unlock.js +1 -1
  7. package/build/lock-unlock.js.map +1 -1
  8. package/build/quote/edit.js +1 -0
  9. package/build/quote/edit.js.map +1 -1
  10. package/build/site-tagline/index.js +1 -0
  11. package/build/site-tagline/index.js.map +1 -1
  12. package/build/site-title/index.js +1 -0
  13. package/build/site-title/index.js.map +1 -1
  14. package/build/social-link/edit.js +4 -18
  15. package/build/social-link/edit.js.map +1 -1
  16. package/build/table-of-contents/index.js +1 -1
  17. package/build/utils/caption.js +2 -1
  18. package/build/utils/caption.js.map +1 -1
  19. package/build/verse/index.js +1 -0
  20. package/build/verse/index.js.map +1 -1
  21. package/build-module/button/index.js +1 -0
  22. package/build-module/button/index.js.map +1 -1
  23. package/build-module/image/image.js +3 -2
  24. package/build-module/image/image.js.map +1 -1
  25. package/build-module/lock-unlock.js +1 -1
  26. package/build-module/lock-unlock.js.map +1 -1
  27. package/build-module/quote/edit.js +1 -0
  28. package/build-module/quote/edit.js.map +1 -1
  29. package/build-module/site-tagline/index.js +1 -0
  30. package/build-module/site-tagline/index.js.map +1 -1
  31. package/build-module/site-title/index.js +1 -0
  32. package/build-module/site-title/index.js.map +1 -1
  33. package/build-module/social-link/edit.js +5 -19
  34. package/build-module/social-link/edit.js.map +1 -1
  35. package/build-module/table-of-contents/index.js +1 -1
  36. package/build-module/utils/caption.js +2 -1
  37. package/build-module/utils/caption.js.map +1 -1
  38. package/build-module/verse/index.js +1 -0
  39. package/build-module/verse/index.js.map +1 -1
  40. package/build-style/audio/style-rtl.css +1 -1
  41. package/build-style/audio/style.css +1 -1
  42. package/build-style/audio/theme-rtl.css +2 -2
  43. package/build-style/audio/theme.css +2 -2
  44. package/build-style/common-rtl.css +1 -3
  45. package/build-style/common.css +1 -3
  46. package/build-style/editor-rtl.css +0 -12
  47. package/build-style/editor.css +0 -12
  48. package/build-style/embed/style-rtl.css +1 -1
  49. package/build-style/embed/style.css +1 -1
  50. package/build-style/embed/theme-rtl.css +2 -2
  51. package/build-style/embed/theme.css +2 -2
  52. package/build-style/image/editor-rtl.css +0 -12
  53. package/build-style/image/editor.css +0 -12
  54. package/build-style/image/style-rtl.css +7 -1
  55. package/build-style/image/style.css +7 -1
  56. package/build-style/media-text/style-rtl.css +4 -0
  57. package/build-style/media-text/style.css +4 -0
  58. package/build-style/navigation/style-rtl.css +1 -0
  59. package/build-style/navigation/style.css +1 -0
  60. package/build-style/reset-rtl.css +1 -5
  61. package/build-style/reset.css +1 -5
  62. package/build-style/search/style-rtl.css +1 -2
  63. package/build-style/search/style.css +1 -2
  64. package/build-style/style-rtl.css +17 -9
  65. package/build-style/style.css +17 -9
  66. package/build-style/table/theme-rtl.css +2 -2
  67. package/build-style/table/theme.css +2 -2
  68. package/build-style/theme-rtl.css +8 -8
  69. package/build-style/theme.css +8 -8
  70. package/build-style/video/style-rtl.css +1 -1
  71. package/build-style/video/style.css +1 -1
  72. package/build-style/video/theme-rtl.css +2 -2
  73. package/build-style/video/theme.css +2 -2
  74. package/package.json +35 -35
  75. package/src/audio/style.scss +1 -1
  76. package/src/audio/theme.scss +1 -1
  77. package/src/button/block.json +1 -0
  78. package/src/embed/style.scss +1 -1
  79. package/src/embed/theme.scss +1 -1
  80. package/src/image/editor.scss +0 -13
  81. package/src/image/image.js +9 -2
  82. package/src/image/style.scss +11 -1
  83. package/src/lock-unlock.js +1 -1
  84. package/src/media-text/index.php +68 -18
  85. package/src/media-text/style.scss +4 -0
  86. package/src/navigation/index.php +5 -3
  87. package/src/navigation/style.scss +1 -0
  88. package/src/paragraph/test/__snapshots__/edit.native.js.snap +30 -0
  89. package/src/paragraph/test/edit.native.js +99 -0
  90. package/src/post-date/index.php +1 -1
  91. package/src/quote/edit.js +1 -0
  92. package/src/reset.scss +11 -12
  93. package/src/site-tagline/block.json +1 -0
  94. package/src/site-title/block.json +1 -0
  95. package/src/social-link/edit.js +0 -20
  96. package/src/table/theme.scss +1 -1
  97. package/src/table-of-contents/block.json +1 -1
  98. package/src/template-part/index.php +1 -1
  99. package/src/utils/caption.js +5 -1
  100. package/src/verse/block.json +1 -0
  101. package/src/video/style.scss +1 -1
  102. package/src/video/theme.scss +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 9.2.0 (2024-06-26)
6
+
5
7
  ## 9.1.0 (2024-06-15)
6
8
 
7
9
  ## 9.0.0 (2024-05-31)
@@ -45,7 +47,7 @@
45
47
 
46
48
  ## 8.21.0 (2023-10-18)
47
49
 
48
- ### Bug Fix
50
+ ### Bug Fixes
49
51
 
50
52
  - Fix Image block lightbox missing alt attribute and improve accessibility. ([#54608](https://github.com/WordPress/gutenberg/pull/55010))
51
53
 
@@ -107,13 +109,13 @@
107
109
 
108
110
  ## 7.14.0 (2022-09-13)
109
111
 
110
- ### New Feature
112
+ ### New Features
111
113
 
112
114
  - Made it possible to import individual blocks ([#42258](https://github.com/WordPress/gutenberg/pull/42258)). Check [README](./README.md#loading-individual-blocks) for more information.
113
115
 
114
116
  ## 7.13.0 (2022-08-24)
115
117
 
116
- ### Bug Fix
118
+ ### Bug Fixes
117
119
 
118
120
  - Ensure all dependencies allow version ranges ([#43355](https://github.com/WordPress/gutenberg/pull/43355)).
119
121
 
@@ -131,7 +133,7 @@
131
133
 
132
134
  ## 7.6.0 (2022-05-18)
133
135
 
134
- ### Enhancement
136
+ ### Enhancements
135
137
 
136
138
  - Declare blocks as \_\_experimental in block.json to automate syncing Gutenberg packages to WordPress ([#40655](https://github.com/WordPress/gutenberg/pull/40655)).
137
139
 
@@ -143,11 +145,11 @@
143
145
 
144
146
  ## 7.2.0 (2022-03-23)
145
147
 
146
- ### Bug Fix
148
+ ### Bug Fixes
147
149
 
148
150
  - Table block: Fix deprecation eligibility to prevent loss of named (color palette) background color ([#39445](https://github.com/WordPress/gutenberg/pull/39445)).
149
151
 
150
- ### Enhancement
152
+ ### Enhancements
151
153
 
152
154
  - Social Icons: Avoid loss of previously selected background color when switching back from "Logos Only" style ([#39276](https://github.com/WordPress/gutenberg/pull/39276)).
153
155
 
@@ -155,11 +157,11 @@
155
157
 
156
158
  ## 7.0.0 (2022-02-10)
157
159
 
158
- ### Breaking Change
160
+ ### Breaking Changes
159
161
 
160
162
  - The `GUTENBERG_PHASE` environment variable has been renamed to `IS_GUTENBERG_PLUGIN` and is now a boolean ([#38202](https://github.com/WordPress/gutenberg/pull/38202)).
161
163
 
162
- ### Bug Fix
164
+ ### Bug Fixes
163
165
 
164
166
  - Gallery block: disable edit as html support ([#39318](https://github.com/WordPress/gutenberg/pull/39318)).
165
167
  - Removed unused `@wordpress/escape-html` and `@wordpress/is-shallow-equal` dependencies ([#38388](https://github.com/WordPress/gutenberg/pull/38388)).
@@ -170,13 +172,13 @@
170
172
 
171
173
  ## 6.0.0 (2021-09-09)
172
174
 
173
- ### Breaking Change
175
+ ### Breaking Changes
174
176
 
175
177
  - Remove the background-colors, foreground-colors, and gradient-colors mixins.
176
178
 
177
179
  ## 5.0.0 (2021-07-29)
178
180
 
179
- ### Breaking Change
181
+ ### Breaking Changes
180
182
 
181
183
  - Upgraded React components to work with v17.0 ([#29118](https://github.com/WordPress/gutenberg/pull/29118)). There are no new features in React v17.0 as explained in the [blog post](https://reactjs.org/blog/2020/10/20/react-v17.html).
182
184
 
@@ -223,7 +225,7 @@
223
225
 
224
226
  ## 2.27.0 (2020-12-17)
225
227
 
226
- ### Enhancement
228
+ ### Enhancements
227
229
 
228
230
  - File Block: Copy url button is moved to Block toolbar.
229
231
  - Code and Preformatted Blocks: delete on backspace from an empty block.
@@ -235,13 +237,13 @@
235
237
  ([#26569](https://github.com/WordPress/gutenberg/pull/26569)).
236
238
  - Fix Image Block, reset image dimensions when replace URL. bug mentioned in ([#26333](https://github.com/WordPress/gutenberg/issues/26333)).
237
239
 
238
- ### Enhancement
240
+ ### Enhancements
239
241
 
240
242
  - File Block: Copy url button is moved to Block toolbar.
241
243
 
242
244
  ## 2.23.0 (2020-09-03)
243
245
 
244
- ### Enhancement
246
+ ### Enhancements
245
247
 
246
248
  - Site title is now a link.
247
249
 
@@ -288,7 +290,7 @@
288
290
 
289
291
  ## 2.3.0 (2019-03-06)
290
292
 
291
- ### New Feature
293
+ ### New Features
292
294
 
293
295
  - Add background color controls for the table block.
294
296
  - Add new `RSS` block ([#7966](https://github.com/WordPress/gutenberg/pull/7966)).
@@ -320,7 +322,7 @@
320
322
 
321
323
  ## 2.2.2 (2018-11-12)
322
324
 
323
- ### Polish
325
+ ### Internal
324
326
 
325
327
  - Columns Block: Improve usability while editing columns.
326
328
 
@@ -334,7 +336,7 @@
334
336
 
335
337
  ## 2.1.8 (2018-11-03)
336
338
 
337
- ### Polish
339
+ ### Internal
338
340
 
339
341
  - File Block: Create file blocks when dropping multiple files at once.
340
342
 
@@ -368,7 +370,7 @@
368
370
 
369
371
  ## 2.0.0 (2018-09-05)
370
372
 
371
- ### Breaking Change
373
+ ### Breaking Changes
372
374
 
373
375
  - Change how required built-ins are polyfilled with Babel 7 ([#9171](https://github.com/WordPress/gutenberg/pull/9171)). If you're using an environment that has limited or no support for ES2015+ such as lower versions of IE then using [core-js](https://github.com/zloirock/core-js) or [@babel/polyfill](https://babeljs.io/docs/en/next/babel-polyfill) will add support for these methods.
374
376
 
@@ -112,6 +112,7 @@ const metadata = exports.metadata = {
112
112
  __experimentalTextTransform: true,
113
113
  __experimentalTextDecoration: true,
114
114
  __experimentalLetterSpacing: true,
115
+ __experimentalWritingMode: true,
115
116
  __experimentalDefaultControls: {
116
117
  fontSize: true
117
118
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","metadata","exports","$schema","apiVersion","name","title","category","parent","description","keywords","textdomain","attributes","tagName","type","textAlign","url","source","selector","attribute","__experimentalRole","text","linkTarget","rel","placeholder","backgroundColor","textColor","gradient","width","supports","anchor","splitting","align","alignWide","color","__experimentalSkipSerialization","gradients","__experimentalDefaultControls","background","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","reusable","shadow","spacing","padding","__experimentalBorder","radius","style","__experimentalSelector","interactivity","clientNavigation","styles","label","isDefault","editorStyle","settings","icon","example","className","__","edit","save","deprecated","merge","a","init","initBlock"],"sources":["@wordpress/block-library/src/button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { button 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';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tclassName: 'is-style-fill',\n\t\t\ttext: __( 'Call to Action' ),\n\t\t},\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n\tmerge: ( a, { text = '' } ) => ( {\n\t\t...a,\n\t\ttext: ( a.text || '' ) + text,\n\t} ),\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","metadata","exports","$schema","apiVersion","name","title","category","parent","description","keywords","textdomain","attributes","tagName","type","textAlign","url","source","selector","attribute","__experimentalRole","text","linkTarget","rel","placeholder","backgroundColor","textColor","gradient","width","supports","anchor","splitting","align","alignWide","color","__experimentalSkipSerialization","gradients","__experimentalDefaultControls","background","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","__experimentalWritingMode","reusable","shadow","spacing","padding","__experimentalBorder","radius","style","__experimentalSelector","interactivity","clientNavigation","styles","label","isDefault","editorStyle","settings","icon","example","className","__","edit","save","deprecated","merge","a","init","initBlock"],"sources":["@wordpress/block-library/src/button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { button 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';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tclassName: 'is-style-fill',\n\t\t\ttext: __( 'Call to Action' ),\n\t\t},\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n\tmerge: ( a, { text = '' } ) => ( {\n\t\t...a,\n\t\ttext: ( a.text || '' ) + text,\n\t} ),\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,WAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,KAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,IAAAM,KAAA,GAAAH,sBAAA,CAAAH,OAAA;AAbA;AACA;AACA;AAIA;AACA;AACA;AAFA,MAAAO,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,OAAA;MAAAC,IAAA;MAAA;MAAA;IAAA;IAAAA,IAAA;MAAAA,IAAA;MAAA;IAAA;IAAAC,SAAA;MAAAD,IAAA;IAAA;IAAAE,GAAA;MAAAF,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAC,kBAAA;IAAA;IAAAd,KAAA;MAAAQ,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAC,kBAAA;IAAA;IAAAC,IAAA;MAAAP,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAE,kBAAA;IAAA;IAAAE,UAAA;MAAAR,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAC,kBAAA;IAAA;IAAAG,GAAA;MAAAT,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAC,kBAAA;IAAA;IAAAI,WAAA;MAAAV,IAAA;IAAA;IAAAW,eAAA;MAAAX,IAAA;IAAA;IAAAY,SAAA;MAAAZ,IAAA;IAAA;IAAAa,QAAA;MAAAb,IAAA;IAAA;IAAAc,KAAA;MAAAd,IAAA;IAAA;EAAA;EAAAe,QAAA;IAAAC,MAAA;IAAAC,SAAA;IAAAC,KAAA;IAAAC,SAAA;IAAAC,KAAA;MAAAC,+BAAA;MAAAC,SAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAjB,IAAA;MAAA;IAAA;IAAAkB,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAC,yBAAA;MAAAX,6BAAA;QAAAG,QAAA;MAAA;IAAA;IAAAS,QAAA;IAAAC,MAAA;MAAAf,+BAAA;IAAA;IAAAgB,OAAA;MAAAhB,+BAAA;MAAAiB,OAAA;MAAAf,6BAAA;QAAAe,OAAA;MAAA;IAAA;IAAAC,oBAAA;MAAAnB,KAAA;MAAAoB,MAAA;MAAAC,KAAA;MAAA3B,KAAA;MAAAO,+BAAA;MAAAE,6BAAA;QAAAH,KAAA;QAAAoB,MAAA;QAAAC,KAAA;QAAA3B,KAAA;MAAA;IAAA;IAAA4B,sBAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,MAAA;IAAAtD,IAAA;IAAAuD,KAAA;IAAAC,SAAA;EAAA;IAAAxD,IAAA;IAAAuD,KAAA;EAAA;EAAAE,WAAA;EAAAP,KAAA;AAAA;AASA,MAAM;EAAElD;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAInB,MAAM0D,QAAQ,GAAA7D,OAAA,CAAA6D,QAAA,GAAG;EACvBC,IAAI,EAAJA,aAAI;EACJC,OAAO,EAAE;IACRrD,UAAU,EAAE;MACXsD,SAAS,EAAE,eAAe;MAC1B7C,IAAI,EAAE,IAAA8C,QAAE,EAAE,gBAAiB;IAC5B;EACD,CAAC;EACDC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA,mBAAU;EACVC,KAAK,EAAEA,CAAEC,CAAC,EAAE;IAAEnD,IAAI,GAAG;EAAG,CAAC,MAAQ;IAChC,GAAGmD,CAAC;IACJnD,IAAI,EAAE,CAAEmD,CAAC,CAACnD,IAAI,IAAI,EAAE,IAAKA;EAC1B,CAAC;AACF,CAAC;AAEM,MAAMoD,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAErE,IAAI;EAAEJ,QAAQ;EAAE8D;AAAS,CAAE,CAAC;AAAC7D,OAAA,CAAAuE,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -382,6 +382,7 @@ function Image({
382
382
  children: isResizable && dimensionsControl
383
383
  })
384
384
  });
385
+ const arePatternOverridesEnabled = metadata?.bindings?.__default?.source === 'core/pattern-overrides';
385
386
  const {
386
387
  lockUrlControls = false,
387
388
  lockHrefControls = false,
@@ -418,7 +419,7 @@ function Image({
418
419
  lockHrefControls:
419
420
  // Disable editing the link of the URL if the image is inside a pattern instance.
420
421
  // This is a temporary solution until we support overriding the link on the frontend.
421
- hasParentPattern,
422
+ hasParentPattern || arePatternOverridesEnabled,
422
423
  lockCaption:
423
424
  // Disable editing the caption if the image is inside a pattern instance.
424
425
  // This is a temporary solution until we support overriding the caption on the frontend.
@@ -792,7 +793,7 @@ function Image({
792
793
  isSelected: isSingleSelected,
793
794
  insertBlocksAfter: insertBlocksAfter,
794
795
  label: (0, _i18n.__)('Image caption text'),
795
- showToolbarButton: isSingleSelected && hasNonContentControls,
796
+ showToolbarButton: isSingleSelected && hasNonContentControls && !arePatternOverridesEnabled,
796
797
  readOnly: lockCaption
797
798
  })]
798
799
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_blob","require","_components","_compose","_data","_blockEditor","_element","_i18n","_keycodes","_url","_blocks","_icons","_notices","_coreData","_lockUnlock","_util","_edit","_caption","_constants","_constants2","_utils","_jsxRuntime","DimensionsTool","ResolutionTool","unlock","blockEditorPrivateApis","scaleOptions","value","label","_x","help","__","ImageWrapper","href","children","jsx","onClick","event","preventDefault","style","pointerEvents","cursor","display","Image","temporaryURL","attributes","setAttributes","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","context","clientId","blockEditingMode","parentLayoutType","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","useRef","allowResize","getBlock","getSettings","useSelect","blockEditorStore","image","select","coreStore","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","isLargeViewport","useViewportMatch","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","useState","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","useEffect","isExternalImage","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","useMemo","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","createUpgradedEmbedBlock","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","isBlobURL","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","canEditImage","allowCrop","switchToCover","switchToBlockType","dimensionsUnitsOptions","useCustomUnits","availableUnits","useSettings","showLightboxSetting","lightboxChecked","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","InspectorControls","__experimentalToolsPanel","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","lockUrlControls","lockHrefControls","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","lockCaption","getBlockBindingsSource","blocksStore","getBlockParentsByBlockName","urlBinding","altBinding","titleBinding","bindings","hasParentPattern","length","urlBindingSource","source","altBindingSource","titleBindingSource","canUserEditValue","args","sprintf","showUrlInput","showCoverControls","showBlockControls","controls","jsxs","Fragment","BlockControls","group","__experimentalImageURLInputUI","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","ToolbarButton","icon","crop","overlayText","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","ToolbarGroup","upload","Dropdown","popoverProps","position","renderToggle","isOpen","onToggle","onKeyDown","keyCode","DOWN","renderContent","TextareaControl","className","disabled","ExternalLink","__nextHasNoMarginBottom","TextControl","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","readOnly","options","__next40pxDefaultSize","filename","getFilename","defaultedAlt","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","isRounded","src","onLoad","target","ref","objectFit","Spinner","__experimentalImageEditor","onSaveImage","imageAttributes","onFinishEditing","numericRatio","evalAspectRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","isRTL","ResizableBox","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","Caption","isSelected","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"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\tDropdown,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { crop, overlayText, upload } 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 { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../utils/constants';\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\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n\tparentLayoutType,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\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\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\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 hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport &&\n\t\tparentLayoutType !== 'grid';\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\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! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) {\n\t\t\treturn;\n\t\t}\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, isSingleSelected, externalBlob ] );\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 onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction resetLightbox() {\n\t\t// When deleting a link from an image while lightbox settings\n\t\t// are enabled by default, we should disable the lightbox,\n\t\t// otherwise the resulting UX looks like a mistake.\n\t\t// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.\n\t\tif ( lightboxSetting?.enabled && lightboxSetting?.allowEditing ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\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\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\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\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = isSingleSelected && 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 [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t// If a block-level override is set, we should give users the option to\n\t\t// remove that override, even if the lightbox UI is disabled in the settings.\n\t\t( !! lightbox && lightbox?.enabled !== lightboxSetting?.enabled ) ||\n\t\tlightboxSetting?.allowEditing;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\tlockCaption = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst { getBlockParentsByBlockName } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern =\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block' ).length > 0;\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t! urlBindingSource?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: urlBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t! altBindingSource?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: altBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t! titleBindingSource?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: titleBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\ttitleBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSingleSelected, metadata?.bindings ]\n\t);\n\n\tconst showUrlInput =\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockHrefControls &&\n\t\t! lockUrlControls;\n\n\tconst showCoverControls = isSingleSelected && canInsertCover;\n\n\tconst showBlockControls = showUrlInput || allowCrop || showCoverControls;\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ showBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ showUrlInput && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t\tresetLightbox={ resetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ allowCrop && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showCoverControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && ! isEditingImage && ! lockUrlControls && (\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{ isSingleSelected && 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 to Media Library' ) }\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{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t'Alt',\n\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\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\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\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{ __(\n\t\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\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\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'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Title' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\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\t\t\t\t) }\n\t\t\t\t\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\t\t\t\t{ __(\n\t\t\t\t\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\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\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={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\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\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\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\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{ __(\n\t\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\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\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'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\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{ isResizable && dimensionsControl }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\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\t__next40pxDefaultSize\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\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\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\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\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\t{ __(\n\t\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\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</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 shadowProps = getShadowClassesAndStyles( 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%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ 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\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\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\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={ isSingleSelected }\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\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\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<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ img }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={ isSingleSelected && hasNonContentControls }\n\t\t\t\treadOnly={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blob","require","_components","_compose","_data","_blockEditor","_element","_i18n","_keycodes","_url","_blocks","_icons","_notices","_coreData","_lockUnlock","_util","_edit","_caption","_constants","_constants2","_utils","_jsxRuntime","DimensionsTool","ResolutionTool","unlock","blockEditorPrivateApis","scaleOptions","value","label","_x","help","__","ImageWrapper","href","children","jsx","onClick","event","preventDefault","style","pointerEvents","cursor","display","Image","temporaryURL","attributes","setAttributes","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","context","clientId","blockEditingMode","parentLayoutType","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","useRef","allowResize","getBlock","getSettings","useSelect","blockEditorStore","image","select","coreStore","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","isLargeViewport","useViewportMatch","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","useState","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","useEffect","isExternalImage","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","useMemo","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","createUpgradedEmbedBlock","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","isBlobURL","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","canEditImage","allowCrop","switchToCover","switchToBlockType","dimensionsUnitsOptions","useCustomUnits","availableUnits","useSettings","showLightboxSetting","lightboxChecked","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","InspectorControls","__experimentalToolsPanel","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","arePatternOverridesEnabled","bindings","__default","source","lockUrlControls","lockHrefControls","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","lockCaption","getBlockBindingsSource","blocksStore","getBlockParentsByBlockName","urlBinding","altBinding","titleBinding","hasParentPattern","length","urlBindingSource","altBindingSource","titleBindingSource","canUserEditValue","args","sprintf","showUrlInput","showCoverControls","showBlockControls","controls","jsxs","Fragment","BlockControls","group","__experimentalImageURLInputUI","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","ToolbarButton","icon","crop","overlayText","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","ToolbarGroup","upload","Dropdown","popoverProps","position","renderToggle","isOpen","onToggle","onKeyDown","keyCode","DOWN","renderContent","TextareaControl","className","disabled","ExternalLink","__nextHasNoMarginBottom","TextControl","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","readOnly","options","__next40pxDefaultSize","filename","getFilename","defaultedAlt","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","isRounded","src","onLoad","target","ref","objectFit","Spinner","__experimentalImageEditor","onSaveImage","imageAttributes","onFinishEditing","numericRatio","evalAspectRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","isRTL","ResizableBox","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","Caption","isSelected","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"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\tDropdown,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { crop, overlayText, upload } 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 { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../utils/constants';\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\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n\tparentLayoutType,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\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\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\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 hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport &&\n\t\tparentLayoutType !== 'grid';\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\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! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) {\n\t\t\treturn;\n\t\t}\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, isSingleSelected, externalBlob ] );\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 onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction resetLightbox() {\n\t\t// When deleting a link from an image while lightbox settings\n\t\t// are enabled by default, we should disable the lightbox,\n\t\t// otherwise the resulting UX looks like a mistake.\n\t\t// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.\n\t\tif ( lightboxSetting?.enabled && lightboxSetting?.allowEditing ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\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\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\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\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = isSingleSelected && 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 [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t// If a block-level override is set, we should give users the option to\n\t\t// remove that override, even if the lightbox UI is disabled in the settings.\n\t\t( !! lightbox && lightbox?.enabled !== lightboxSetting?.enabled ) ||\n\t\tlightboxSetting?.allowEditing;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst arePatternOverridesEnabled =\n\t\tmetadata?.bindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\tlockCaption = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst { getBlockParentsByBlockName } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern =\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block' ).length > 0;\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t! urlBindingSource?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: urlBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern || arePatternOverridesEnabled,\n\t\t\t\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t! altBindingSource?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: altBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t! titleBindingSource?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: titleBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\ttitleBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSingleSelected, metadata?.bindings ]\n\t);\n\n\tconst showUrlInput =\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockHrefControls &&\n\t\t! lockUrlControls;\n\n\tconst showCoverControls = isSingleSelected && canInsertCover;\n\n\tconst showBlockControls = showUrlInput || allowCrop || showCoverControls;\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ showBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ showUrlInput && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t\tresetLightbox={ resetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ allowCrop && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showCoverControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && ! isEditingImage && ! lockUrlControls && (\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{ isSingleSelected && 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 to Media Library' ) }\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{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t'Alt',\n\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\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\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\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{ __(\n\t\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\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\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'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Title' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\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\t\t\t\t) }\n\t\t\t\t\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\t\t\t\t{ __(\n\t\t\t\t\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\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\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={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\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\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\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\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{ __(\n\t\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\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\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'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\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{ isResizable && dimensionsControl }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\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\t__next40pxDefaultSize\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\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\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\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\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\t{ __(\n\t\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\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</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 shadowProps = getShadowClassesAndStyles( 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%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ 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\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\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\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={ isSingleSelected }\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\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\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<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ img }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={\n\t\t\t\t\tisSingleSelected &&\n\t\t\t\t\thasNonContentControls &&\n\t\t\t\t\t! arePatternOverridesEnabled\n\t\t\t\t}\n\t\t\t\treadOnly={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ var _privateApis = require("@wordpress/private-apis");
12
12
  const {
13
13
  lock,
14
14
  unlock
15
- } = (0, _privateApis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.', '@wordpress/block-library');
15
+ } = (0, _privateApis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/block-library');
16
16
  exports.unlock = unlock;
17
17
  exports.lock = lock;
18
18
  //# sourceMappingURL=lock-unlock.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_privateApis","require","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","exports"],"sources":["@wordpress/block-library/src/lock-unlock.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',\n\t\t'@wordpress/block-library'\n\t);\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5B,IAAAC,6DAAgD,EAC/C,iHAAiH,EACjH,0BACD,CAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAAAE,OAAA,CAAAH,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["_privateApis","require","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","exports"],"sources":["@wordpress/block-library/src/lock-unlock.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/block-library'\n\t);\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5B,IAAAC,6DAAgD,EAC/C,+HAA+H,EAC/H,0BACD,CAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAAAE,OAAA,CAAAH,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -122,6 +122,7 @@ function QuoteEdit({
122
122
  (0, _i18n.__)('Add citation'),
123
123
  addLabel: (0, _i18n.__)('Add citation'),
124
124
  removeLabel: (0, _i18n.__)('Remove citation'),
125
+ excludeElementClassName: true,
125
126
  className: "wp-block-quote__citation",
126
127
  insertBlocksAfter: insertBlocksAfter,
127
128
  ...(!isWebPlatform ? {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_blockEditor","_components","_data","_element","_deprecated","_icons","_deprecated2","_caption","_jsxRuntime","isWebPlatform","Platform","OS","TEMPLATE","useMigrateOnLoad","attributes","clientId","registry","useRegistry","updateBlockAttributes","replaceInnerBlocks","useDispatch","blockEditorStore","useEffect","value","newAttributes","newInnerBlocks","migrateToQuoteV2","deprecated","since","version","alternative","batch","QuoteEdit","setAttributes","insertBlocksAfter","className","style","isSelected","textAlign","blockProps","useBlockProps","clsx","innerBlocksProps","useInnerBlocksProps","template","templateInsertUpdatesSelection","__experimentalCaptureToolbars","renderAppender","jsxs","Fragment","children","jsx","BlockControls","group","AlignmentControl","onChange","nextAlign","BlockQuotation","Caption","attributeKey","tagName","display","__unstableMobileNoFocusOnMount","icon","verse","label","__","placeholder","addLabel","removeLabel"],"sources":["@wordpress/block-library/src/quote/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { BlockQuotation } from '@wordpress/components';\nimport { useDispatch, useRegistry } from '@wordpress/data';\nimport { Platform, useEffect } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { verse } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { migrateToQuoteV2 } from './deprecated';\nimport { Caption } from '../utils/caption';\n\nconst isWebPlatform = Platform.OS === 'web';\n\nconst TEMPLATE = [ [ 'core/paragraph', {} ] ];\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old quote block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nconst useMigrateOnLoad = ( attributes, clientId ) => {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.value ) {\n\t\t\t// No need to migrate if it doesn't have the value attribute.\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] =\n\t\t\tmigrateToQuoteV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the quote block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.value ] );\n};\n\nexport default function QuoteEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tclientId,\n\tclassName,\n\tstyle,\n\tisSelected,\n} ) {\n\tconst { textAlign } = attributes;\n\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\t...( ! isWebPlatform && { style } ),\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t__experimentalCaptureToolbars: true,\n\t\trenderAppender: false,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockQuotation { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t<Caption\n\t\t\t\t\tattributeKey=\"citation\"\n\t\t\t\t\ttagName={ isWebPlatform ? 'cite' : 'p' }\n\t\t\t\t\tstyle={ isWebPlatform && { display: 'block' } }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\ticon={ verse }\n\t\t\t\t\tlabel={ __( 'Quote citation' ) }\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t// translators: placeholder text used for the\n\t\t\t\t\t\t// citation\n\t\t\t\t\t\t__( 'Add citation' )\n\t\t\t\t\t}\n\t\t\t\t\taddLabel={ __( 'Add citation' ) }\n\t\t\t\t\tremoveLabel={ __( 'Remove citation' ) }\n\t\t\t\t\tclassName=\"wp-block-quote__citation\"\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\t{ ...( ! isWebPlatform ? { textAlign } : {} ) }\n\t\t\t\t/>\n\t\t\t</BlockQuotation>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_blockEditor","_components","_data","_element","_deprecated","_icons","_deprecated2","_caption","_jsxRuntime","isWebPlatform","Platform","OS","TEMPLATE","useMigrateOnLoad","attributes","clientId","registry","useRegistry","updateBlockAttributes","replaceInnerBlocks","useDispatch","blockEditorStore","useEffect","value","newAttributes","newInnerBlocks","migrateToQuoteV2","deprecated","since","version","alternative","batch","QuoteEdit","setAttributes","insertBlocksAfter","className","style","isSelected","textAlign","blockProps","useBlockProps","clsx","innerBlocksProps","useInnerBlocksProps","template","templateInsertUpdatesSelection","__experimentalCaptureToolbars","renderAppender","jsxs","Fragment","children","jsx","BlockControls","group","AlignmentControl","onChange","nextAlign","BlockQuotation","Caption","attributeKey","tagName","display","__unstableMobileNoFocusOnMount","icon","verse","label","__","placeholder","addLabel","removeLabel","excludeElementClassName"],"sources":["@wordpress/block-library/src/quote/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { BlockQuotation } from '@wordpress/components';\nimport { useDispatch, useRegistry } from '@wordpress/data';\nimport { Platform, useEffect } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { verse } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { migrateToQuoteV2 } from './deprecated';\nimport { Caption } from '../utils/caption';\n\nconst isWebPlatform = Platform.OS === 'web';\n\nconst TEMPLATE = [ [ 'core/paragraph', {} ] ];\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old quote block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nconst useMigrateOnLoad = ( attributes, clientId ) => {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.value ) {\n\t\t\t// No need to migrate if it doesn't have the value attribute.\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] =\n\t\t\tmigrateToQuoteV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the quote block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.value ] );\n};\n\nexport default function QuoteEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tclientId,\n\tclassName,\n\tstyle,\n\tisSelected,\n} ) {\n\tconst { textAlign } = attributes;\n\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\t...( ! isWebPlatform && { style } ),\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t__experimentalCaptureToolbars: true,\n\t\trenderAppender: false,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockQuotation { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t<Caption\n\t\t\t\t\tattributeKey=\"citation\"\n\t\t\t\t\ttagName={ isWebPlatform ? 'cite' : 'p' }\n\t\t\t\t\tstyle={ isWebPlatform && { display: 'block' } }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\ticon={ verse }\n\t\t\t\t\tlabel={ __( 'Quote citation' ) }\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t// translators: placeholder text used for the\n\t\t\t\t\t\t// citation\n\t\t\t\t\t\t__( 'Add citation' )\n\t\t\t\t\t}\n\t\t\t\t\taddLabel={ __( 'Add citation' ) }\n\t\t\t\t\tremoveLabel={ __( 'Remove citation' ) }\n\t\t\t\t\texcludeElementClassName\n\t\t\t\t\tclassName=\"wp-block-quote__citation\"\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\t{ ...( ! isWebPlatform ? { textAlign } : {} ) }\n\t\t\t\t/>\n\t\t\t</BlockQuotation>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -58,6 +58,7 @@ const metadata = exports.metadata = {
58
58
  __experimentalFontStyle: true,
59
59
  __experimentalFontWeight: true,
60
60
  __experimentalLetterSpacing: true,
61
+ __experimentalWritingMode: true,
61
62
  __experimentalDefaultControls: {
62
63
  fontSize: true
63
64
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","_icon","_deprecated","metadata","exports","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","textAlign","type","level","example","supports","align","html","color","gradients","__experimentalDefaultControls","background","text","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalTextTransform","__experimentalTextDecoration","__experimentalFontStyle","__experimentalFontWeight","__experimentalLetterSpacing","interactivity","clientNavigation","editorStyle","settings","icon","edit","deprecated","init","initBlock"],"sources":["@wordpress/block-library/src/site-tagline/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAPA;AACA;AACA;AAFA,MAAAI,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;IAAA;EAAA;EAAAE,OAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAL,6BAAA;QAAAI,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,uBAAA;MAAAC,wBAAA;MAAAC,2BAAA;MAAAd,6BAAA;QAAAO,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,WAAA;AAAA;AASA,MAAM;EAAEjC;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAGnB,MAAMkC,QAAQ,GAAArC,OAAA,CAAAqC,QAAA,GAAG;EACvBC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA;AACD,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEvC,IAAI;EAAEJ,QAAQ;EAAEsC;AAAS,CAAE,CAAC;AAACrC,OAAA,CAAAyC,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","_icon","_deprecated","metadata","exports","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","textAlign","type","level","example","supports","align","html","color","gradients","__experimentalDefaultControls","background","text","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalTextTransform","__experimentalTextDecoration","__experimentalFontStyle","__experimentalFontWeight","__experimentalLetterSpacing","__experimentalWritingMode","interactivity","clientNavigation","editorStyle","settings","icon","edit","deprecated","init","initBlock"],"sources":["@wordpress/block-library/src/site-tagline/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAPA;AACA;AACA;AAFA,MAAAI,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;IAAA;EAAA;EAAAE,OAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAL,6BAAA;QAAAI,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,uBAAA;MAAAC,wBAAA;MAAAC,2BAAA;MAAAC,yBAAA;MAAAf,6BAAA;QAAAO,QAAA;MAAA;IAAA;IAAAS,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,WAAA;AAAA;AASA,MAAM;EAAElC;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAGnB,MAAMmC,QAAQ,GAAAtC,OAAA,CAAAsC,QAAA,GAAG;EACvBC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA;AACD,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAExC,IAAI;EAAEJ,QAAQ;EAAEuC;AAAS,CAAE,CAAC;AAACtC,OAAA,CAAA0C,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -73,6 +73,7 @@ const metadata = exports.metadata = {
73
73
  __experimentalFontStyle: true,
74
74
  __experimentalFontWeight: true,
75
75
  __experimentalLetterSpacing: true,
76
+ __experimentalWritingMode: true,
76
77
  __experimentalDefaultControls: {
77
78
  fontSize: true
78
79
  }