@wordpress/block-library 8.8.0 → 8.9.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 (185) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/cover/transforms.js +10 -7
  3. package/build/cover/transforms.js.map +1 -1
  4. package/build/group/edit.js +3 -1
  5. package/build/group/edit.js.map +1 -1
  6. package/build/group/index.js +3 -0
  7. package/build/group/index.js.map +1 -1
  8. package/build/image/edit.js +16 -13
  9. package/build/image/edit.js.map +1 -1
  10. package/build/image/index.js +1 -1
  11. package/build/index.native.js +9 -5
  12. package/build/index.native.js.map +1 -1
  13. package/build/media-text/edit.js +4 -2
  14. package/build/media-text/edit.js.map +1 -1
  15. package/build/media-text/index.js +3 -0
  16. package/build/media-text/index.js.map +1 -1
  17. package/build/navigation/edit/index.js +32 -64
  18. package/build/navigation/edit/index.js.map +1 -1
  19. package/build/post-date/edit.js +4 -2
  20. package/build/post-date/edit.js.map +1 -1
  21. package/build/post-excerpt/edit.js +2 -2
  22. package/build/post-excerpt/edit.js.map +1 -1
  23. package/build/post-featured-image/edit.js +8 -5
  24. package/build/post-featured-image/edit.js.map +1 -1
  25. package/build/query/deprecated.js +8 -6
  26. package/build/query/deprecated.js.map +1 -1
  27. package/build/query/edit/inspector-controls/create-new-post-link.js +41 -0
  28. package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
  29. package/build/query/edit/inspector-controls/index.js +14 -6
  30. package/build/query/edit/inspector-controls/index.js.map +1 -1
  31. package/build/query/edit/pattern-selection-modal.js +2 -1
  32. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  33. package/build/query/index.js +5 -12
  34. package/build/query/index.js.map +1 -1
  35. package/build/site-logo/edit.js +114 -16
  36. package/build/site-logo/edit.js.map +1 -1
  37. package/build/site-logo/index.js +1 -1
  38. package/build/social-link/icons/chain.js +1 -1
  39. package/build/social-link/icons/chain.js.map +1 -1
  40. package/build/social-link/icons/mail.js +1 -1
  41. package/build/social-link/icons/mail.js.map +1 -1
  42. package/build/spacer/edit.js +117 -11
  43. package/build/spacer/edit.js.map +1 -1
  44. package/build/template-part/edit/index.js +2 -1
  45. package/build/template-part/edit/index.js.map +1 -1
  46. package/build/template-part/edit/utils/hooks.js +2 -2
  47. package/build/template-part/edit/utils/hooks.js.map +1 -1
  48. package/build/utils/migrate-font-family.js +12 -5
  49. package/build/utils/migrate-font-family.js.map +1 -1
  50. package/build/video/edit.native.js +4 -3
  51. package/build/video/edit.native.js.map +1 -1
  52. package/build-module/cover/transforms.js +5 -1
  53. package/build-module/cover/transforms.js.map +1 -1
  54. package/build-module/group/edit.js +3 -1
  55. package/build-module/group/edit.js.map +1 -1
  56. package/build-module/group/index.js +3 -0
  57. package/build-module/group/index.js.map +1 -1
  58. package/build-module/image/edit.js +16 -13
  59. package/build-module/image/edit.js.map +1 -1
  60. package/build-module/image/index.js +1 -1
  61. package/build-module/index.native.js +9 -5
  62. package/build-module/index.native.js.map +1 -1
  63. package/build-module/media-text/edit.js +4 -2
  64. package/build-module/media-text/edit.js.map +1 -1
  65. package/build-module/media-text/index.js +3 -0
  66. package/build-module/media-text/index.js.map +1 -1
  67. package/build-module/navigation/edit/index.js +31 -63
  68. package/build-module/navigation/edit/index.js.map +1 -1
  69. package/build-module/post-date/edit.js +4 -2
  70. package/build-module/post-date/edit.js.map +1 -1
  71. package/build-module/post-excerpt/edit.js +2 -2
  72. package/build-module/post-excerpt/edit.js.map +1 -1
  73. package/build-module/post-featured-image/edit.js +8 -5
  74. package/build-module/post-featured-image/edit.js.map +1 -1
  75. package/build-module/query/deprecated.js +5 -2
  76. package/build-module/query/deprecated.js.map +1 -1
  77. package/build-module/query/edit/inspector-controls/create-new-post-link.js +33 -0
  78. package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
  79. package/build-module/query/edit/inspector-controls/index.js +12 -7
  80. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  81. package/build-module/query/edit/pattern-selection-modal.js +2 -1
  82. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  83. package/build-module/query/index.js +5 -10
  84. package/build-module/query/index.js.map +1 -1
  85. package/build-module/site-logo/edit.js +115 -18
  86. package/build-module/site-logo/edit.js.map +1 -1
  87. package/build-module/site-logo/index.js +1 -1
  88. package/build-module/social-link/icons/chain.js +1 -1
  89. package/build-module/social-link/icons/chain.js.map +1 -1
  90. package/build-module/social-link/icons/mail.js +1 -1
  91. package/build-module/social-link/icons/mail.js.map +1 -1
  92. package/build-module/spacer/edit.js +118 -12
  93. package/build-module/spacer/edit.js.map +1 -1
  94. package/build-module/template-part/edit/index.js +2 -1
  95. package/build-module/template-part/edit/index.js.map +1 -1
  96. package/build-module/template-part/edit/utils/hooks.js +2 -2
  97. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  98. package/build-module/utils/migrate-font-family.js +9 -1
  99. package/build-module/utils/migrate-font-family.js.map +1 -1
  100. package/build-module/video/edit.native.js +4 -3
  101. package/build-module/video/edit.native.js.map +1 -1
  102. package/build-style/cover/editor-rtl.css +3 -3
  103. package/build-style/cover/editor.css +3 -3
  104. package/build-style/cover/style-rtl.css +1 -2
  105. package/build-style/cover/style.css +1 -2
  106. package/build-style/editor-rtl.css +71 -34
  107. package/build-style/editor.css +71 -34
  108. package/build-style/html/editor-rtl.css +2 -2
  109. package/build-style/html/editor.css +2 -2
  110. package/build-style/image/editor-rtl.css +1 -1
  111. package/build-style/image/editor.css +1 -1
  112. package/build-style/query/editor-rtl.css +8 -12
  113. package/build-style/query/editor.css +8 -12
  114. package/build-style/search/style-rtl.css +2 -0
  115. package/build-style/search/style.css +2 -0
  116. package/build-style/shortcode/editor-rtl.css +3 -4
  117. package/build-style/shortcode/editor.css +3 -4
  118. package/build-style/site-logo/editor-rtl.css +46 -0
  119. package/build-style/site-logo/editor.css +46 -0
  120. package/build-style/style-rtl.css +3 -2
  121. package/build-style/style.css +3 -2
  122. package/build-style/template-part/editor-rtl.css +8 -12
  123. package/build-style/template-part/editor.css +8 -12
  124. package/package.json +31 -31
  125. package/src/buttons/test/__snapshots__/edit.native.js.snap +18 -0
  126. package/src/buttons/test/edit.native.js +123 -2
  127. package/src/cover/editor.scss +1 -1
  128. package/src/cover/style.scss +0 -1
  129. package/src/cover/transforms.js +4 -1
  130. package/src/gallery/test/index.native.js +4 -4
  131. package/src/group/block.json +3 -0
  132. package/src/group/edit.js +8 -2
  133. package/src/heading/test/__snapshots__/index.native.js.snap +12 -0
  134. package/src/heading/test/index.native.js +71 -0
  135. package/src/html/editor.scss +2 -21
  136. package/src/image/block.json +1 -1
  137. package/src/image/edit.js +21 -17
  138. package/src/image/editor.scss +1 -1
  139. package/src/index.native.js +9 -5
  140. package/src/list/test/edit.native.js +7 -7
  141. package/src/media-text/block.json +3 -0
  142. package/src/media-text/edit.js +2 -1
  143. package/src/navigation/edit/index.js +32 -106
  144. package/src/navigation/index.php +15 -8
  145. package/src/paragraph/test/edit.native.js +288 -28
  146. package/src/post-date/edit.js +4 -0
  147. package/src/post-date/index.php +17 -8
  148. package/src/post-excerpt/edit.js +1 -1
  149. package/src/post-featured-image/edit.js +6 -5
  150. package/src/post-featured-image/index.php +1 -1
  151. package/src/preformatted/test/edit.native.js +6 -9
  152. package/src/pullquote/test/edit.native.js +7 -12
  153. package/src/query/deprecated.js +4 -1
  154. package/src/query/edit/inspector-controls/create-new-post-link.js +26 -0
  155. package/src/query/edit/inspector-controls/index.js +13 -6
  156. package/src/query/edit/pattern-selection-modal.js +1 -0
  157. package/src/query/editor.scss +8 -11
  158. package/src/query/index.js +1 -7
  159. package/src/quote/test/edit.native.js +6 -10
  160. package/src/search/style.scss +3 -0
  161. package/src/shortcode/editor.scss +1 -21
  162. package/src/site-logo/block.json +1 -1
  163. package/src/site-logo/edit.js +123 -9
  164. package/src/site-logo/editor.scss +57 -0
  165. package/src/social-link/icons/chain.js +1 -1
  166. package/src/social-link/icons/mail.js +1 -1
  167. package/src/social-link/index.php +2 -2
  168. package/src/spacer/edit.js +157 -18
  169. package/src/template-part/edit/index.js +1 -0
  170. package/src/template-part/edit/utils/hooks.js +2 -2
  171. package/src/template-part/editor.scss +9 -11
  172. package/src/utils/migrate-font-family.js +8 -1
  173. package/src/verse/test/edit.native.js +4 -9
  174. package/src/video/edit.native.js +2 -2
  175. package/tsconfig.json +1 -0
  176. package/build/query/hooks.js +0 -72
  177. package/build/query/hooks.js.map +0 -1
  178. package/build/utils/clean-empty-object.js +0 -37
  179. package/build/utils/clean-empty-object.js.map +0 -1
  180. package/build-module/query/hooks.js +0 -59
  181. package/build-module/query/hooks.js.map +0 -1
  182. package/build-module/utils/clean-empty-object.js +0 -28
  183. package/build-module/utils/clean-empty-object.js.map +0 -1
  184. package/src/query/hooks.js +0 -53
  185. package/src/utils/clean-empty-object.js +0 -28
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 8.9.0 (2023-04-26)
6
+
5
7
  ## 8.8.0 (2023-04-12)
6
8
 
7
9
  ## 8.7.0 (2023-03-29)
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -9,9 +7,11 @@ exports.default = void 0;
9
7
 
10
8
  var _blocks = require("@wordpress/blocks");
11
9
 
10
+ var _blockEditor = require("@wordpress/block-editor");
11
+
12
12
  var _shared = require("./shared");
13
13
 
14
- var _cleanEmptyObject = _interopRequireDefault(require("../utils/clean-empty-object"));
14
+ var _privateApis = require("../private-apis");
15
15
 
16
16
  /**
17
17
  * WordPress dependencies
@@ -20,6 +20,9 @@ var _cleanEmptyObject = _interopRequireDefault(require("../utils/clean-empty-obj
20
20
  /**
21
21
  * Internal dependencies
22
22
  */
23
+ const {
24
+ cleanEmptyObject
25
+ } = (0, _privateApis.unlock)(_blockEditor.privateApis);
23
26
  const transforms = {
24
27
  from: [{
25
28
  type: 'block',
@@ -114,7 +117,7 @@ const transforms = {
114
117
  const attributesWithoutBackgroundColors = { ...attributes,
115
118
  backgroundColor: undefined,
116
119
  gradient: undefined,
117
- style: (0, _cleanEmptyObject.default)({ ...(attributes === null || attributes === void 0 ? void 0 : attributes.style),
120
+ style: cleanEmptyObject({ ...(attributes === null || attributes === void 0 ? void 0 : attributes.style),
118
121
  color: style !== null && style !== void 0 && style.color ? { ...(style === null || style === void 0 ? void 0 : style.color),
119
122
  background: undefined,
120
123
  gradient: undefined
@@ -234,7 +237,7 @@ const transforms = {
234
237
  const transformedColorAttributes = {
235
238
  backgroundColor: attributes === null || attributes === void 0 ? void 0 : attributes.overlayColor,
236
239
  gradient: attributes === null || attributes === void 0 ? void 0 : attributes.gradient,
237
- style: (0, _cleanEmptyObject.default)({ ...(attributes === null || attributes === void 0 ? void 0 : attributes.style),
240
+ style: cleanEmptyObject({ ...(attributes === null || attributes === void 0 ? void 0 : attributes.style),
238
241
  color: attributes !== null && attributes !== void 0 && attributes.customOverlayColor || attributes !== null && attributes !== void 0 && attributes.customGradient || attributes !== null && attributes !== void 0 && (_attributes$style = attributes.style) !== null && _attributes$style !== void 0 && _attributes$style.color ? {
239
242
  background: attributes === null || attributes === void 0 ? void 0 : attributes.customOverlayColor,
240
243
  gradient: attributes === null || attributes === void 0 ? void 0 : attributes.customGradient,
@@ -248,7 +251,7 @@ const transforms = {
248
251
  if ((innerBlocks === null || innerBlocks === void 0 ? void 0 : innerBlocks.length) === 1 && ((_innerBlocks$2 = innerBlocks[0]) === null || _innerBlocks$2 === void 0 ? void 0 : _innerBlocks$2.name) === 'core/group') {
249
252
  var _groupAttributes$styl, _groupAttributes$styl2, _groupAttributes$styl3, _groupAttributes$styl4, _transformedColorAttr, _groupAttributes$styl5, _transformedColorAttr2, _groupAttributes$styl6, _innerBlocks$4;
250
253
 
251
- const groupAttributes = (0, _cleanEmptyObject.default)(innerBlocks[0].attributes || {}); // If the Group block contains any kind of background color or gradient,
254
+ const groupAttributes = cleanEmptyObject(innerBlocks[0].attributes || {}); // If the Group block contains any kind of background color or gradient,
252
255
  // skip merging Cover background colors, and preserve the Group block's colors.
253
256
 
254
257
  if (groupAttributes !== null && groupAttributes !== void 0 && groupAttributes.backgroundColor || groupAttributes !== null && groupAttributes !== void 0 && groupAttributes.gradient || groupAttributes !== null && groupAttributes !== void 0 && (_groupAttributes$styl = groupAttributes.style) !== null && _groupAttributes$styl !== void 0 && (_groupAttributes$styl2 = _groupAttributes$styl.color) !== null && _groupAttributes$styl2 !== void 0 && _groupAttributes$styl2.background || groupAttributes !== null && groupAttributes !== void 0 && (_groupAttributes$styl3 = groupAttributes.style) !== null && _groupAttributes$styl3 !== void 0 && (_groupAttributes$styl4 = _groupAttributes$styl3.color) !== null && _groupAttributes$styl4 !== void 0 && _groupAttributes$styl4.gradient) {
@@ -259,7 +262,7 @@ const transforms = {
259
262
 
260
263
  return (0, _blocks.createBlock)('core/group', { ...transformedColorAttributes,
261
264
  ...groupAttributes,
262
- style: (0, _cleanEmptyObject.default)({ ...(groupAttributes === null || groupAttributes === void 0 ? void 0 : groupAttributes.style),
265
+ style: cleanEmptyObject({ ...(groupAttributes === null || groupAttributes === void 0 ? void 0 : groupAttributes.style),
263
266
  color: transformedColorAttributes !== null && transformedColorAttributes !== void 0 && (_transformedColorAttr = transformedColorAttributes.style) !== null && _transformedColorAttr !== void 0 && _transformedColorAttr.color || groupAttributes !== null && groupAttributes !== void 0 && (_groupAttributes$styl5 = groupAttributes.style) !== null && _groupAttributes$styl5 !== void 0 && _groupAttributes$styl5.color ? { ...(transformedColorAttributes === null || transformedColorAttributes === void 0 ? void 0 : (_transformedColorAttr2 = transformedColorAttributes.style) === null || _transformedColorAttr2 === void 0 ? void 0 : _transformedColorAttr2.color),
264
267
  ...(groupAttributes === null || groupAttributes === void 0 ? void 0 : (_groupAttributes$styl6 = groupAttributes.style) === null || _groupAttributes$styl6 === void 0 ? void 0 : _groupAttributes$styl6.color)
265
268
  } : undefined
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/transforms.js"],"names":["transforms","from","type","blocks","transform","caption","url","alt","align","id","anchor","style","dimRatio","color","duotone","content","fontSize","src","backgroundType","VIDEO_BACKGROUND_TYPE","attributes","innerBlocks","backgroundColor","gradient","length","name","background","undefined","parentAttributes","overlayColor","customOverlayColor","customGradient","attributesWithoutBackgroundColors","to","isMatch","IMAGE_BACKGROUND_TYPE","title","useFeaturedImage","transformedColorAttributes","groupAttributes"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE } from './shared';\nimport cleanEmptyObject from '../utils/clean-empty-object';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { caption, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\tdimRatio: 50,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\talt,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\tduotone: style?.color?.duotone,\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[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t\talign: 'center',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\ttransform: ( { caption, src, align, id, anchor } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\tdimRatio: 50,\n\t\t\t\t\t\turl: src,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tbackgroundType: VIDEO_BACKGROUND_TYPE,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t\talign: 'center',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst { align, anchor, backgroundColor, gradient, style } =\n\t\t\t\t\tattributes;\n\n\t\t\t\t// If the Group block being transformed has a Cover block as its\n\t\t\t\t// only child return that Cover block.\n\t\t\t\tif (\n\t\t\t\t\tinnerBlocks?.length === 1 &&\n\t\t\t\t\tinnerBlocks[ 0 ]?.name === 'core/cover'\n\t\t\t\t) {\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\tinnerBlocks[ 0 ].attributes,\n\t\t\t\t\t\tinnerBlocks[ 0 ].innerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// If no background or gradient color is provided, default to 50% opacity.\n\t\t\t\t// This matches the styling of a Cover block with a background image,\n\t\t\t\t// in the state where a background image has been removed.\n\t\t\t\tconst dimRatio =\n\t\t\t\t\tbackgroundColor ||\n\t\t\t\t\tgradient ||\n\t\t\t\t\tstyle?.color?.background ||\n\t\t\t\t\tstyle?.color?.gradient\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: 50;\n\n\t\t\t\t// Move the background or gradient color to the parent Cover block.\n\t\t\t\tconst parentAttributes = {\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t\tdimRatio,\n\t\t\t\t\toverlayColor: backgroundColor,\n\t\t\t\t\tcustomOverlayColor: style?.color?.background,\n\t\t\t\t\tgradient,\n\t\t\t\t\tcustomGradient: style?.color?.gradient,\n\t\t\t\t};\n\n\t\t\t\tconst attributesWithoutBackgroundColors = {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tbackgroundColor: undefined,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tcolor: style?.color\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...style?.color,\n\t\t\t\t\t\t\t\t\tbackground: undefined,\n\t\t\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t};\n\n\t\t\t\t// Preserve the block by nesting it within the Cover block,\n\t\t\t\t// instead of converting the Group block directly to the Cover block.\n\t\t\t\treturn createBlock( 'core/cover', parentAttributes, [\n\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\tattributesWithoutBackgroundColors,\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t),\n\t\t\t\t] );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents an image background.\n\t\t\t\t\treturn backgroundType === IMAGE_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\turl,\n\t\t\t\t\talt,\n\t\t\t\t\talign,\n\t\t\t\t\tid,\n\t\t\t\t\tanchor,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents a video background.\n\t\t\t\t\treturn backgroundType === VIDEO_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, align, id, anchor } ) =>\n\t\t\t\tcreateBlock( 'core/video', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\tsrc: url,\n\t\t\t\t\tid,\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\tisMatch: ( { url, useFeaturedImage } ) => {\n\t\t\t\t// If the Cover block uses background media, skip this transform,\n\t\t\t\t// and instead use the Group block's default transform.\n\t\t\t\tif ( url || useFeaturedImage ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\t// Convert Cover overlay colors to comparable Group background colors.\n\t\t\t\tconst transformedColorAttributes = {\n\t\t\t\t\tbackgroundColor: attributes?.overlayColor,\n\t\t\t\t\tgradient: attributes?.gradient,\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\tattributes?.customOverlayColor ||\n\t\t\t\t\t\t\tattributes?.customGradient ||\n\t\t\t\t\t\t\tattributes?.style?.color\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\tattributes?.customOverlayColor,\n\t\t\t\t\t\t\t\t\t\tgradient: attributes?.customGradient,\n\t\t\t\t\t\t\t\t\t\t...attributes?.style?.color,\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t};\n\n\t\t\t\t// If the Cover block contains only a single Group block as a direct child,\n\t\t\t\t// then attempt to merge the Cover's background colors with the child Group block,\n\t\t\t\t// and remove the Cover block as the wrapper.\n\t\t\t\tif (\n\t\t\t\t\tinnerBlocks?.length === 1 &&\n\t\t\t\t\tinnerBlocks[ 0 ]?.name === 'core/group'\n\t\t\t\t) {\n\t\t\t\t\tconst groupAttributes = cleanEmptyObject(\n\t\t\t\t\t\tinnerBlocks[ 0 ].attributes || {}\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the Group block contains any kind of background color or gradient,\n\t\t\t\t\t// skip merging Cover background colors, and preserve the Group block's colors.\n\t\t\t\t\tif (\n\t\t\t\t\t\tgroupAttributes?.backgroundColor ||\n\t\t\t\t\t\tgroupAttributes?.gradient ||\n\t\t\t\t\t\tgroupAttributes?.style?.color?.background ||\n\t\t\t\t\t\tgroupAttributes?.style?.color?.gradient\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t\tgroupAttributes,\n\t\t\t\t\t\t\tinnerBlocks[ 0 ]?.innerBlocks\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...transformedColorAttributes,\n\t\t\t\t\t\t\t...groupAttributes,\n\t\t\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t\t\t...groupAttributes?.style,\n\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\ttransformedColorAttributes?.style?.color ||\n\t\t\t\t\t\t\t\t\tgroupAttributes?.style?.color\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...transformedColorAttributes\n\t\t\t\t\t\t\t\t\t\t\t\t\t?.style?.color,\n\t\t\t\t\t\t\t\t\t\t\t\t...groupAttributes?.style\n\t\t\t\t\t\t\t\t\t\t\t\t\t?.color,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks[ 0 ]?.innerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// In all other cases, transform the Cover block directly to a Group block.\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{ ...attributes, ...transformedColorAttributes },\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/transforms.js"],"names":["cleanEmptyObject","blockEditorPrivateApis","transforms","from","type","blocks","transform","caption","url","alt","align","id","anchor","style","dimRatio","color","duotone","content","fontSize","src","backgroundType","VIDEO_BACKGROUND_TYPE","attributes","innerBlocks","backgroundColor","gradient","length","name","background","undefined","parentAttributes","overlayColor","customOverlayColor","customGradient","attributesWithoutBackgroundColors","to","isMatch","IMAGE_BACKGROUND_TYPE","title","useFeaturedImage","transformedColorAttributes","groupAttributes"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE } from './shared';\nimport { unlock } from '../private-apis';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { caption, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\tdimRatio: 50,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\talt,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\tduotone: style?.color?.duotone,\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[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t\talign: 'center',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\ttransform: ( { caption, src, align, id, anchor } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\tdimRatio: 50,\n\t\t\t\t\t\turl: src,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tbackgroundType: VIDEO_BACKGROUND_TYPE,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t\talign: 'center',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst { align, anchor, backgroundColor, gradient, style } =\n\t\t\t\t\tattributes;\n\n\t\t\t\t// If the Group block being transformed has a Cover block as its\n\t\t\t\t// only child return that Cover block.\n\t\t\t\tif (\n\t\t\t\t\tinnerBlocks?.length === 1 &&\n\t\t\t\t\tinnerBlocks[ 0 ]?.name === 'core/cover'\n\t\t\t\t) {\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\tinnerBlocks[ 0 ].attributes,\n\t\t\t\t\t\tinnerBlocks[ 0 ].innerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// If no background or gradient color is provided, default to 50% opacity.\n\t\t\t\t// This matches the styling of a Cover block with a background image,\n\t\t\t\t// in the state where a background image has been removed.\n\t\t\t\tconst dimRatio =\n\t\t\t\t\tbackgroundColor ||\n\t\t\t\t\tgradient ||\n\t\t\t\t\tstyle?.color?.background ||\n\t\t\t\t\tstyle?.color?.gradient\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: 50;\n\n\t\t\t\t// Move the background or gradient color to the parent Cover block.\n\t\t\t\tconst parentAttributes = {\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t\tdimRatio,\n\t\t\t\t\toverlayColor: backgroundColor,\n\t\t\t\t\tcustomOverlayColor: style?.color?.background,\n\t\t\t\t\tgradient,\n\t\t\t\t\tcustomGradient: style?.color?.gradient,\n\t\t\t\t};\n\n\t\t\t\tconst attributesWithoutBackgroundColors = {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tbackgroundColor: undefined,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tcolor: style?.color\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...style?.color,\n\t\t\t\t\t\t\t\t\tbackground: undefined,\n\t\t\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t};\n\n\t\t\t\t// Preserve the block by nesting it within the Cover block,\n\t\t\t\t// instead of converting the Group block directly to the Cover block.\n\t\t\t\treturn createBlock( 'core/cover', parentAttributes, [\n\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\tattributesWithoutBackgroundColors,\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t),\n\t\t\t\t] );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents an image background.\n\t\t\t\t\treturn backgroundType === IMAGE_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\turl,\n\t\t\t\t\talt,\n\t\t\t\t\talign,\n\t\t\t\t\tid,\n\t\t\t\t\tanchor,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents a video background.\n\t\t\t\t\treturn backgroundType === VIDEO_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, align, id, anchor } ) =>\n\t\t\t\tcreateBlock( 'core/video', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\tsrc: url,\n\t\t\t\t\tid,\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\tisMatch: ( { url, useFeaturedImage } ) => {\n\t\t\t\t// If the Cover block uses background media, skip this transform,\n\t\t\t\t// and instead use the Group block's default transform.\n\t\t\t\tif ( url || useFeaturedImage ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\t// Convert Cover overlay colors to comparable Group background colors.\n\t\t\t\tconst transformedColorAttributes = {\n\t\t\t\t\tbackgroundColor: attributes?.overlayColor,\n\t\t\t\t\tgradient: attributes?.gradient,\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\tattributes?.customOverlayColor ||\n\t\t\t\t\t\t\tattributes?.customGradient ||\n\t\t\t\t\t\t\tattributes?.style?.color\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\tattributes?.customOverlayColor,\n\t\t\t\t\t\t\t\t\t\tgradient: attributes?.customGradient,\n\t\t\t\t\t\t\t\t\t\t...attributes?.style?.color,\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t};\n\n\t\t\t\t// If the Cover block contains only a single Group block as a direct child,\n\t\t\t\t// then attempt to merge the Cover's background colors with the child Group block,\n\t\t\t\t// and remove the Cover block as the wrapper.\n\t\t\t\tif (\n\t\t\t\t\tinnerBlocks?.length === 1 &&\n\t\t\t\t\tinnerBlocks[ 0 ]?.name === 'core/group'\n\t\t\t\t) {\n\t\t\t\t\tconst groupAttributes = cleanEmptyObject(\n\t\t\t\t\t\tinnerBlocks[ 0 ].attributes || {}\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the Group block contains any kind of background color or gradient,\n\t\t\t\t\t// skip merging Cover background colors, and preserve the Group block's colors.\n\t\t\t\t\tif (\n\t\t\t\t\t\tgroupAttributes?.backgroundColor ||\n\t\t\t\t\t\tgroupAttributes?.gradient ||\n\t\t\t\t\t\tgroupAttributes?.style?.color?.background ||\n\t\t\t\t\t\tgroupAttributes?.style?.color?.gradient\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t\tgroupAttributes,\n\t\t\t\t\t\t\tinnerBlocks[ 0 ]?.innerBlocks\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...transformedColorAttributes,\n\t\t\t\t\t\t\t...groupAttributes,\n\t\t\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t\t\t...groupAttributes?.style,\n\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\ttransformedColorAttributes?.style?.color ||\n\t\t\t\t\t\t\t\t\tgroupAttributes?.style?.color\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...transformedColorAttributes\n\t\t\t\t\t\t\t\t\t\t\t\t\t?.style?.color,\n\t\t\t\t\t\t\t\t\t\t\t\t...groupAttributes?.style\n\t\t\t\t\t\t\t\t\t\t\t\t\t?.color,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks[ 0 ]?.innerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// In all other cases, transform the Cover block directly to a Group block.\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{ ...attributes, ...transformedColorAttributes },\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
@@ -113,6 +113,7 @@ function GroupEdit(_ref2) {
113
113
  const {
114
114
  tagName: TagName = 'div',
115
115
  templateLock,
116
+ allowedBlocks,
116
117
  layout = {}
117
118
  } = attributes; // Layout settings.
118
119
 
@@ -155,6 +156,7 @@ function GroupEdit(_ref2) {
155
156
  className: 'wp-block-group__inner-container'
156
157
  }, {
157
158
  templateLock,
159
+ allowedBlocks,
158
160
  renderAppender,
159
161
  __unstableDisableLayoutClassNames: !layoutSupportEnabled
160
162
  });
@@ -173,7 +175,7 @@ function GroupEdit(_ref2) {
173
175
  onSelectTagName: value => setAttributes({
174
176
  tagName: value
175
177
  })
176
- }), showPlaceholder && (0, _element.createElement)(_primitives.View, innerBlocksProps, innerBlocksProps.children, (0, _element.createElement)(_placeholder.default, {
178
+ }), showPlaceholder && (0, _element.createElement)(_primitives.View, null, innerBlocksProps.children, (0, _element.createElement)(_placeholder.default, {
177
179
  clientId: clientId,
178
180
  name: name,
179
181
  onSelect: selectVariation
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/group/edit.js"],"names":["GroupEditControls","tagName","onSelectTagName","htmlElementMessages","header","main","section","article","aside","footer","label","value","GroupEdit","attributes","name","setAttributes","clientId","__unstableLayoutClassNames","layoutClassNames","hasInnerBlocks","themeSupportsLayout","select","getBlock","getSettings","blockEditorStore","block","innerBlocks","length","supportsLayout","TagName","templateLock","layout","defaultLayout","usedLayout","type","layoutSupportEnabled","blockProps","className","showPlaceholder","setShowPlaceholder","usedLayoutType","renderAppender","InnerBlocks","ButtonBlockAppender","innerBlocksProps","__unstableDisableLayoutClassNames","selectBlock","selectVariation","nextVariation","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tuseSetting,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { View } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport GroupPlaceHolder, { useShouldShowPlaceHolder } from './placeholder';\n\n/**\n * Render inspector controls for the Group block.\n *\n * @param {Object} props Component props.\n * @param {string} props.tagName The HTML tag name.\n * @param {Function} props.onSelectTagName onChange function for the SelectControl.\n *\n * @return {JSX.Element} The control group.\n */\nfunction GroupEditControls( { tagName, onSelectTagName } ) {\n\tconst htmlElementMessages = {\n\t\theader: __(\n\t\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t\t),\n\t\tmain: __(\n\t\t\t'The <main> element should be used for the primary content of your document only. '\n\t\t),\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\tarticle: __(\n\t\t\t'The <article> element should represent a self-contained, syndicatable portion of the document.'\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t\tfooter: __(\n\t\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t\t),\n\t};\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t] }\n\t\t\t\tvalue={ tagName }\n\t\t\t\tonChange={ onSelectTagName }\n\t\t\t\thelp={ htmlElementMessages[ tagName ] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n\nfunction GroupEdit( {\n\tattributes,\n\tname,\n\tsetAttributes,\n\tclientId,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst { hasInnerBlocks, themeSupportsLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getSettings } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t\tthemeSupportsLayout: getSettings()?.supportsLayout,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { tagName: TagName = 'div', templateLock, layout = {} } = attributes;\n\n\t// Layout settings.\n\tconst defaultLayout = useSetting( 'layout' ) || {};\n\tconst usedLayout = ! layout?.type\n\t\t? { ...defaultLayout, ...layout, type: 'default' }\n\t\t: { ...defaultLayout, ...layout };\n\tconst { type = 'default' } = usedLayout;\n\tconst layoutSupportEnabled =\n\t\tthemeSupportsLayout || type === 'flex' || type === 'grid';\n\n\t// Hooks.\n\tconst blockProps = useBlockProps( {\n\t\tclassName: ! layoutSupportEnabled ? layoutClassNames : null,\n\t} );\n\tconst [ showPlaceholder, setShowPlaceholder ] = useShouldShowPlaceHolder( {\n\t\tattributes,\n\t\tusedLayoutType: usedLayout?.type,\n\t\thasInnerBlocks,\n\t} );\n\n\t// Default to the regular appender being rendered.\n\tlet renderAppender;\n\tif ( showPlaceholder ) {\n\t\t// In the placeholder state, ensure the appender is not rendered.\n\t\t// This is needed because `...innerBlocksProps` is used in the placeholder\n\t\t// state so that blocks can dragged onto the placeholder area\n\t\t// from both the list view and in the editor canvas.\n\t\trenderAppender = false;\n\t} else if ( ! hasInnerBlocks ) {\n\t\t// When there is no placeholder, but the block is also empty,\n\t\t// use the larger button appender.\n\t\trenderAppender = InnerBlocks.ButtonBlockAppender;\n\t}\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\tlayoutSupportEnabled\n\t\t\t? blockProps\n\t\t\t: { className: 'wp-block-group__inner-container' },\n\t\t{\n\t\t\ttemplateLock,\n\t\t\trenderAppender,\n\t\t\t__unstableDisableLayoutClassNames: ! layoutSupportEnabled,\n\t\t}\n\t);\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tconst selectVariation = ( nextVariation ) => {\n\t\tsetAttributes( nextVariation.attributes );\n\t\tselectBlock( clientId, -1 );\n\t\tsetShowPlaceholder( false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<GroupEditControls\n\t\t\t\ttagName={ TagName }\n\t\t\t\tonSelectTagName={ ( value ) =>\n\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ showPlaceholder && (\n\t\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t\t<GroupPlaceHolder\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tonSelect={ selectVariation }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t\t{ layoutSupportEnabled && ! showPlaceholder && (\n\t\t\t\t<TagName { ...innerBlocksProps } />\n\t\t\t) }\n\t\t\t{ /* Ideally this is not needed but it's there for backward compatibility reason\n\t\t\t\tto keep this div for themes that might rely on its presence */ }\n\t\t\t{ ! layoutSupportEnabled && ! showPlaceholder && (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t\t</TagName>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default GroupEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/group/edit.js"],"names":["GroupEditControls","tagName","onSelectTagName","htmlElementMessages","header","main","section","article","aside","footer","label","value","GroupEdit","attributes","name","setAttributes","clientId","__unstableLayoutClassNames","layoutClassNames","hasInnerBlocks","themeSupportsLayout","select","getBlock","getSettings","blockEditorStore","block","innerBlocks","length","supportsLayout","TagName","templateLock","allowedBlocks","layout","defaultLayout","usedLayout","type","layoutSupportEnabled","blockProps","className","showPlaceholder","setShowPlaceholder","usedLayoutType","renderAppender","InnerBlocks","ButtonBlockAppender","innerBlocksProps","__unstableDisableLayoutClassNames","selectBlock","selectVariation","nextVariation","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tuseSetting,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { View } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport GroupPlaceHolder, { useShouldShowPlaceHolder } from './placeholder';\n\n/**\n * Render inspector controls for the Group block.\n *\n * @param {Object} props Component props.\n * @param {string} props.tagName The HTML tag name.\n * @param {Function} props.onSelectTagName onChange function for the SelectControl.\n *\n * @return {JSX.Element} The control group.\n */\nfunction GroupEditControls( { tagName, onSelectTagName } ) {\n\tconst htmlElementMessages = {\n\t\theader: __(\n\t\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t\t),\n\t\tmain: __(\n\t\t\t'The <main> element should be used for the primary content of your document only. '\n\t\t),\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\tarticle: __(\n\t\t\t'The <article> element should represent a self-contained, syndicatable portion of the document.'\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t\tfooter: __(\n\t\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t\t),\n\t};\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t] }\n\t\t\t\tvalue={ tagName }\n\t\t\t\tonChange={ onSelectTagName }\n\t\t\t\thelp={ htmlElementMessages[ tagName ] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n\nfunction GroupEdit( {\n\tattributes,\n\tname,\n\tsetAttributes,\n\tclientId,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst { hasInnerBlocks, themeSupportsLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getSettings } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t\tthemeSupportsLayout: getSettings()?.supportsLayout,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\ttagName: TagName = 'div',\n\t\ttemplateLock,\n\t\tallowedBlocks,\n\t\tlayout = {},\n\t} = attributes;\n\n\t// Layout settings.\n\tconst defaultLayout = useSetting( 'layout' ) || {};\n\tconst usedLayout = ! layout?.type\n\t\t? { ...defaultLayout, ...layout, type: 'default' }\n\t\t: { ...defaultLayout, ...layout };\n\tconst { type = 'default' } = usedLayout;\n\tconst layoutSupportEnabled =\n\t\tthemeSupportsLayout || type === 'flex' || type === 'grid';\n\n\t// Hooks.\n\tconst blockProps = useBlockProps( {\n\t\tclassName: ! layoutSupportEnabled ? layoutClassNames : null,\n\t} );\n\tconst [ showPlaceholder, setShowPlaceholder ] = useShouldShowPlaceHolder( {\n\t\tattributes,\n\t\tusedLayoutType: usedLayout?.type,\n\t\thasInnerBlocks,\n\t} );\n\n\t// Default to the regular appender being rendered.\n\tlet renderAppender;\n\tif ( showPlaceholder ) {\n\t\t// In the placeholder state, ensure the appender is not rendered.\n\t\t// This is needed because `...innerBlocksProps` is used in the placeholder\n\t\t// state so that blocks can dragged onto the placeholder area\n\t\t// from both the list view and in the editor canvas.\n\t\trenderAppender = false;\n\t} else if ( ! hasInnerBlocks ) {\n\t\t// When there is no placeholder, but the block is also empty,\n\t\t// use the larger button appender.\n\t\trenderAppender = InnerBlocks.ButtonBlockAppender;\n\t}\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\tlayoutSupportEnabled\n\t\t\t? blockProps\n\t\t\t: { className: 'wp-block-group__inner-container' },\n\t\t{\n\t\t\ttemplateLock,\n\t\t\tallowedBlocks,\n\t\t\trenderAppender,\n\t\t\t__unstableDisableLayoutClassNames: ! layoutSupportEnabled,\n\t\t}\n\t);\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tconst selectVariation = ( nextVariation ) => {\n\t\tsetAttributes( nextVariation.attributes );\n\t\tselectBlock( clientId, -1 );\n\t\tsetShowPlaceholder( false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<GroupEditControls\n\t\t\t\ttagName={ TagName }\n\t\t\t\tonSelectTagName={ ( value ) =>\n\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ showPlaceholder && (\n\t\t\t\t<View>\n\t\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t\t<GroupPlaceHolder\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tonSelect={ selectVariation }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t\t{ layoutSupportEnabled && ! showPlaceholder && (\n\t\t\t\t<TagName { ...innerBlocksProps } />\n\t\t\t) }\n\t\t\t{ /* Ideally this is not needed but it's there for backward compatibility reason\n\t\t\t\tto keep this div for themes that might rely on its presence */ }\n\t\t\t{ ! layoutSupportEnabled && ! showPlaceholder && (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t\t</TagName>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default GroupEdit;\n"]}
@@ -47,6 +47,9 @@ const metadata = {
47
47
  templateLock: {
48
48
  type: ["string", "boolean"],
49
49
  "enum": ["all", "insert", "contentOnly", false]
50
+ },
51
+ allowedBlocks: {
52
+ type: "array"
50
53
  }
51
54
  },
52
55
  supports: {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/group/index.js"],"names":["name","metadata","settings","icon","example","attributes","style","color","text","background","innerBlocks","customTextColor","fontSize","content","transforms","edit","save","deprecated","variations","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAfA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,YADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNC,UAAAA,IAAI,EAAE,SADA;AAENC,UAAAA,UAAU,EAAE;AAFN;AADD;AADI,KADJ;AASRC,IAAAA,WAAW,EAAE,CACZ;AACCV,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,MAAJ;AAHE;AAFb,KADY,EASZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,MAAJ;AAHE;AAFb,KATY,EAiBZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,QAAJ;AAHE;AAFb,KAjBY,EAyBZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,OAAJ;AAHE;AAFb,KAzBY,EAiCZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,OAAJ;AAHE;AAFb,KAjCY,EAyCZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,MAAJ;AAHE;AAFb,KAzCY;AATL,GAFc;AA8DvBC,EAAAA,UAAU,EAAVA,mBA9DuB;AA+DvBC,EAAAA,IAAI,EAAJA,aA/DuB;AAgEvBC,EAAAA,IAAI,EAAJA,aAhEuB;AAiEvBC,EAAAA,UAAU,EAAVA,mBAjEuB;AAkEvBC,EAAAA,UAAU,EAAVA;AAlEuB,CAAjB;;;AAqEA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEnB,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tstyle: {\n\t\t\t\tcolor: {\n\t\t\t\t\ttext: '#000000',\n\t\t\t\t\tbackground: '#ffffff',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/group/index.js"],"names":["name","metadata","settings","icon","example","attributes","style","color","text","background","innerBlocks","customTextColor","fontSize","content","transforms","edit","save","deprecated","variations","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAfA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,YADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNC,UAAAA,IAAI,EAAE,SADA;AAENC,UAAAA,UAAU,EAAE;AAFN;AADD;AADI,KADJ;AASRC,IAAAA,WAAW,EAAE,CACZ;AACCV,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,MAAJ;AAHE;AAFb,KADY,EASZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,MAAJ;AAHE;AAFb,KATY,EAiBZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,QAAJ;AAHE;AAFb,KAjBY,EAyBZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,OAAJ;AAHE;AAFb,KAzBY,EAiCZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,OAAJ;AAHE;AAFb,KAjCY,EAyCZ;AACCb,MAAAA,IAAI,EAAE,gBADP;AAECK,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAE,cAAI,MAAJ;AAHE;AAFb,KAzCY;AATL,GAFc;AA8DvBC,EAAAA,UAAU,EAAVA,mBA9DuB;AA+DvBC,EAAAA,IAAI,EAAJA,aA/DuB;AAgEvBC,EAAAA,IAAI,EAAJA,aAhEuB;AAiEvBC,EAAAA,UAAU,EAAVA,mBAjEuB;AAkEvBC,EAAAA,UAAU,EAAVA;AAlEuB,CAAjB;;;AAqEA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEnB,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tstyle: {\n\t\t\t\tcolor: {\n\t\t\t\t\ttext: '#000000',\n\t\t\t\t\tbackground: '#ffffff',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -43,21 +43,10 @@ var _constants = require("./constants");
43
43
  /**
44
44
  * Internal dependencies
45
45
  */
46
- // Much of this description is duplicated from MediaPlaceholder.
47
- const placeholder = content => {
48
- return (0, _element.createElement)(_components.Placeholder, {
49
- className: "block-editor-media-placeholder",
50
- withIllustration: true,
51
- icon: _icons.image,
52
- label: (0, _i18n.__)('Image'),
53
- instructions: (0, _i18n.__)('Upload an image file, pick one from your media library, or add one with a URL.')
54
- }, content);
55
- };
46
+
56
47
  /**
57
48
  * Module constants
58
49
  */
59
-
60
-
61
50
  const pickRelevantMediaFiles = (image, size) => {
62
51
  var _image$sizes, _image$sizes$size, _image$media_details, _image$media_details$, _image$media_details$2;
63
52
 
@@ -347,7 +336,21 @@ function ImageEdit(_ref2) {
347
336
  const blockProps = (0, _blockEditor.useBlockProps)({
348
337
  ref,
349
338
  className: classes
350
- });
339
+ }); // Much of this description is duplicated from MediaPlaceholder.
340
+
341
+ const placeholder = content => {
342
+ return (0, _element.createElement)(_components.Placeholder, {
343
+ className: (0, _classnames.default)('block-editor-media-placeholder', {
344
+ [borderProps.className]: !!borderProps.className && !isSelected
345
+ }),
346
+ withIllustration: true,
347
+ icon: _icons.image,
348
+ label: (0, _i18n.__)('Image'),
349
+ instructions: (0, _i18n.__)('Upload an image file, pick one from your media library, or add one with a URL.'),
350
+ style: isSelected ? undefined : borderProps.style
351
+ }, content);
352
+ };
353
+
351
354
  return (0, _element.createElement)("figure", blockProps, (temporaryURL || url) && (0, _element.createElement)(_image.default, {
352
355
  temporaryURL: temporaryURL,
353
356
  attributes: attributes,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/image/edit.js"],"names":["placeholder","content","icon","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isTemporaryImage","id","isExternalImage","hasDefaultSize","defaultSize","ImageEdit","attributes","setAttributes","isSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","align","width","height","sizeSlug","temporaryURL","setTemporaryURL","altRef","current","captionRef","ref","imageDefaultSize","mediaUpload","isContentLocked","select","getSettings","__unstableGetContentLockingParent","blockEditorStore","settings","createErrorNotice","noticesStore","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","ALLOWED_MEDIA_TYPES","onError","isExternal","mediaPreview","borderProps","classes","style","blockProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockAlignmentControl,\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Image from './image';\n\n// Much of this description is duplicated from MediaPlaceholder.\nconst placeholder = ( content ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\twithIllustration={ true }\n\t\t\ticon={ icon }\n\t\t\tlabel={ __( 'Image' ) }\n\t\t\tinstructions={ __(\n\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t) }\n\t\t>\n\t\t\t{ content }\n\t\t</Placeholder>\n\t);\n};\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated default image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} defaultSize\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasDefaultSize( image, defaultSize ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ defaultSize ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ defaultSize ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst ref = useRef();\n\tconst { imageDefaultSize, mediaUpload, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetContentLockingParent } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\treturn {\n\t\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tisContentLocked:\n\t\t\t\t\t!! __unstableGetContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, imageDefaultSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\t// Fallback to size \"full\" if there's no default image size.\n\t\t\t\t// It means the image is smaller, and the block will use a full-size URL.\n\t\t\t\tsizeSlug: hasDefaultSize( media, imageDefaultSize )\n\t\t\t\t\t? imageDefaultSize\n\t\t\t\t\t: 'full',\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tlet isTemp = isTemporaryImage( id, url );\n\n\t// Upload a temporary image on mount.\n\tuseEffect( () => {\n\t\tif ( ! isTemp ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( url );\n\n\t\tif ( file ) {\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ img ] ) => {\n\t\t\t\t\tonSelectImage( img );\n\t\t\t\t},\n\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tisTemp = false;\n\t\t\t\t\tonUploadError( message );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\t// If an image is temporary, revoke the Blob url when it is uploaded (and is\n\t// no longer temporary).\n\tuseEffect( () => {\n\t\tif ( isTemp ) {\n\t\t\tsetTemporaryURL( url );\n\t\t\treturn;\n\t\t}\n\t\trevokeBlobURL( temporaryURL );\n\t}, [ isTemp, url ] );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName={ 'edit-image-preview' }\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className || ! isEmpty( borderProps.style ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t{ ( temporaryURL || url ) && (\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontainerRef={ ref }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && ! isContentLocked && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/image/edit.js"],"names":["pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isTemporaryImage","id","isExternalImage","hasDefaultSize","defaultSize","ImageEdit","attributes","setAttributes","isSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","align","width","height","sizeSlug","temporaryURL","setTemporaryURL","altRef","current","captionRef","ref","imageDefaultSize","mediaUpload","isContentLocked","select","getSettings","__unstableGetContentLockingParent","blockEditorStore","settings","createErrorNotice","noticesStore","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","ALLOWED_MEDIA_TYPES","onError","isExternal","mediaPreview","borderProps","classes","style","blockProps","placeholder","content","icon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockAlignmentControl,\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated default image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} defaultSize\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasDefaultSize( image, defaultSize ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ defaultSize ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ defaultSize ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst ref = useRef();\n\tconst { imageDefaultSize, mediaUpload, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetContentLockingParent } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\treturn {\n\t\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tisContentLocked:\n\t\t\t\t\t!! __unstableGetContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, imageDefaultSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\t// Fallback to size \"full\" if there's no default image size.\n\t\t\t\t// It means the image is smaller, and the block will use a full-size URL.\n\t\t\t\tsizeSlug: hasDefaultSize( media, imageDefaultSize )\n\t\t\t\t\t? imageDefaultSize\n\t\t\t\t\t: 'full',\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tlet isTemp = isTemporaryImage( id, url );\n\n\t// Upload a temporary image on mount.\n\tuseEffect( () => {\n\t\tif ( ! isTemp ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( url );\n\n\t\tif ( file ) {\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ img ] ) => {\n\t\t\t\t\tonSelectImage( img );\n\t\t\t\t},\n\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tisTemp = false;\n\t\t\t\t\tonUploadError( message );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\t// If an image is temporary, revoke the Blob url when it is uploaded (and is\n\t// no longer temporary).\n\tuseEffect( () => {\n\t\tif ( isTemp ) {\n\t\t\tsetTemporaryURL( url );\n\t\t\treturn;\n\t\t}\n\t\trevokeBlobURL( temporaryURL );\n\t}, [ isTemp, url ] );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName={ 'edit-image-preview' }\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className || ! isEmpty( borderProps.style ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t) }\n\t\t\t\tstyle={ isSelected ? undefined : borderProps.style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t{ ( temporaryURL || url ) && (\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontainerRef={ ref }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && ! isContentLocked && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"]}
@@ -134,7 +134,7 @@ const metadata = {
134
134
  }
135
135
  },
136
136
  selectors: {
137
- border: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area",
137
+ border: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
138
138
  filter: {
139
139
  duotone: ".wp-block-image img, .wp-block-image .components-placeholder"
140
140
  }
@@ -221,15 +221,19 @@ const registerCoreBlocks = () => {
221
221
  * than 0, a "new" badge is displayed on the block type within the block
222
222
  * inserter.
223
223
  *
224
+ * With the below example, the Audio block will be displayed as "new" until its
225
+ * impression count reaches 0, which occurs by various actions decrementing
226
+ * the impression count.
227
+ *
228
+ * {
229
+ * [ audio.name ]: 40
230
+ * }
231
+ *
224
232
  * @constant {{ string, number }}
225
233
  */
226
234
 
227
235
 
228
236
  exports.registerCoreBlocks = registerCoreBlocks;
229
- const NEW_BLOCK_TYPES = {
230
- [embed.name]: 40,
231
- [search.name]: 40,
232
- [audio.name]: 40
233
- };
237
+ const NEW_BLOCK_TYPES = {};
234
238
  exports.NEW_BLOCK_TYPES = NEW_BLOCK_TYPES;
235
239
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/index.native.js"],"names":["coreBlocks","paragraph","image","heading","gallery","list","listItem","quote","shortcode","archives","audio","button","calendar","categories","code","columns","column","cover","embed","file","html","mediaText","latestComments","latestPosts","missing","more","nextpage","preformatted","pullquote","rss","search","separator","reusableBlock","spacer","table","tagCloud","textColumns","verse","video","classic","buttons","socialLink","socialLinks","reduce","accumulator","block","name","registerBlockVariations","metadata","settings","variations","sort","a","b","title","localeCompare","forEach","v","icon","devOnly","__DEV__","iOSOnly","Platform","OS","hiddenBlocks","includes","supports","inserter","transforms","supportedMobileTransforms","registerCoreBlocks","group","filter","Boolean","init","NEW_BLOCK_TYPES"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tregisterBlockType,\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n} from '@wordpress/blocks';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport * as paragraph from './paragraph';\nimport * as image from './image';\nimport * as heading from './heading';\nimport * as quote from './quote';\nimport * as gallery from './gallery';\nimport * as archives from './archives';\nimport * as audio from './audio';\nimport * as button from './button';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as code from './code';\nimport * as columns from './columns';\nimport * as column from './column';\nimport * as cover from './cover';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as html from './html';\nimport * as mediaText from './media-text';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as listItem from './list-item';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as nextpage from './nextpage';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as reusableBlock from './block';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as spacer from './spacer';\nimport * as table from './table';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\nimport * as tagCloud from './tag-cloud';\nimport * as classic from './freeform';\nimport * as group from './group';\nimport * as buttons from './buttons';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\n\nimport { transformationCategory } from './utils/transformation-categories';\n\nexport const coreBlocks = [\n\t// Common blocks are grouped at the top to prioritize their display\n\t// in various contexts — like the inserter and auto-complete components.\n\tparagraph,\n\timage,\n\theading,\n\tgallery,\n\tlist,\n\tlistItem,\n\tquote,\n\n\t// Register all remaining core blocks.\n\tshortcode,\n\tarchives,\n\taudio,\n\tbutton,\n\tcalendar,\n\tcategories,\n\tcode,\n\tcolumns,\n\tcolumn,\n\tcover,\n\tembed,\n\tfile,\n\thtml,\n\tmediaText,\n\tlatestComments,\n\tlatestPosts,\n\tmissing,\n\tmore,\n\tnextpage,\n\tpreformatted,\n\tpullquote,\n\trss,\n\tsearch,\n\tseparator,\n\treusableBlock,\n\tspacer,\n\ttable,\n\ttagCloud,\n\ttextColumns,\n\tverse,\n\tvideo,\n\tclassic,\n\tbuttons,\n\tsocialLink,\n\tsocialLinks,\n].reduce( ( accumulator, block ) => {\n\taccumulator[ block.name ] = block;\n\treturn accumulator;\n}, {} );\n\n/**\n * Function to register a block variations e.g. social icons different types.\n *\n * @param {Object} block The block which variations will be registered.\n *\n */\nconst registerBlockVariations = ( block ) => {\n\tconst { metadata, settings, name } = block;\n\n\tif ( ! settings.variations ) {\n\t\treturn;\n\t}\n\n\t[ ...settings.variations ]\n\t\t.sort( ( a, b ) => a.title.localeCompare( b.title ) )\n\t\t.forEach( ( v ) => {\n\t\t\tregisterBlockType( `${ name }-${ v.name }`, {\n\t\t\t\t...metadata,\n\t\t\t\tname: `${ name }-${ v.name }`,\n\t\t\t\t...settings,\n\t\t\t\ticon: v.icon(),\n\t\t\t\ttitle: v.title,\n\t\t\t\tvariations: [],\n\t\t\t} );\n\t\t} );\n};\n\n// Only enable code block for development\n// eslint-disable-next-line no-undef\nconst devOnly = ( block ) => ( !! __DEV__ ? block : null );\n\n// eslint-disable-next-line no-unused-vars\nconst iOSOnly = ( block ) =>\n\tPlatform.OS === 'ios' ? block : devOnly( block );\n\n// Hide the Classic block and SocialLink block\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/react-native-editor',\n\t( settings, name ) => {\n\t\tconst hiddenBlocks = [ 'core/freeform', 'core/social-link' ];\n\t\tif (\n\t\t\thiddenBlocks.includes( name ) &&\n\t\t\thasBlockSupport( settings, 'inserter', true )\n\t\t) {\n\t\t\tsettings.supports = {\n\t\t\t\t...settings.supports,\n\t\t\t\tinserter: false,\n\t\t\t};\n\t\t}\n\n\t\treturn settings;\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/react-native-editor',\n\t( settings, name ) => {\n\t\tif ( ! settings.transforms ) {\n\t\t\treturn settings;\n\t\t}\n\n\t\tif ( ! settings.transforms.supportedMobileTransforms ) {\n\t\t\treturn {\n\t\t\t\t...settings,\n\t\t\t\ttransforms: {\n\t\t\t\t\t...settings.transforms,\n\t\t\t\t\tsupportedMobileTransforms: transformationCategory( name ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn settings;\n\t}\n);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = () => {\n\t// When adding new blocks to this list please also consider updating /src/block-support/supported-blocks.json in the Gutenberg-Mobile repo\n\t[\n\t\tparagraph,\n\t\theading,\n\t\tdevOnly( code ),\n\t\tmissing,\n\t\tmore,\n\t\timage,\n\t\tvideo,\n\t\tnextpage,\n\t\tseparator,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\t\tmediaText,\n\t\tpreformatted,\n\t\tgallery,\n\t\tcolumns,\n\t\tcolumn,\n\t\tgroup,\n\t\tclassic,\n\t\tbutton,\n\t\tspacer,\n\t\tshortcode,\n\t\tbuttons,\n\t\tlatestPosts,\n\t\tverse,\n\t\tcover,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tpullquote,\n\t\tfile,\n\t\taudio,\n\t\treusableBlock,\n\t\tsearch,\n\t\tembed,\n\t]\n\t\t.filter( Boolean )\n\t\t.forEach( ( { init } ) => init() );\n\n\tregisterBlockVariations( socialLink );\n\tsetDefaultBlockName( paragraph.name );\n\tsetFreeformContentHandlerName( classic.name );\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tif ( group ) {\n\t\tsetGroupingBlockName( group.name );\n\t}\n};\n\n/**\n * Dictates which block types are considered \"new.\" For each of the block types\n * below, if the native host app does not already have an impression count set,\n * an initial count will be set. When a block type's impression count is greater\n * than 0, a \"new\" badge is displayed on the block type within the block\n * inserter.\n *\n * @constant {{ string, number }}\n */\nexport const NEW_BLOCK_TYPES = {\n\t[ embed.name ]: 40,\n\t[ search.name ]: 40,\n\t[ audio.name ]: 40,\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/index.native.js"],"names":["coreBlocks","paragraph","image","heading","gallery","list","listItem","quote","shortcode","archives","audio","button","calendar","categories","code","columns","column","cover","embed","file","html","mediaText","latestComments","latestPosts","missing","more","nextpage","preformatted","pullquote","rss","search","separator","reusableBlock","spacer","table","tagCloud","textColumns","verse","video","classic","buttons","socialLink","socialLinks","reduce","accumulator","block","name","registerBlockVariations","metadata","settings","variations","sort","a","b","title","localeCompare","forEach","v","icon","devOnly","__DEV__","iOSOnly","Platform","OS","hiddenBlocks","includes","supports","inserter","transforms","supportedMobileTransforms","registerCoreBlocks","group","filter","Boolean","init","NEW_BLOCK_TYPES"],"mappings":";;;;;;;AAGA;;AAKA;;AAQA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAjEA;AACA;AACA;;AAGA;AACA;AACA;;AAWA;AACA;AACA;AA+CO,MAAMA,UAAU,GAAG,CACzB;AACA;AACAC,SAHyB,EAIzBC,KAJyB,EAKzBC,OALyB,EAMzBC,OANyB,EAOzBC,IAPyB,EAQzBC,QARyB,EASzBC,KATyB,EAWzB;AACAC,SAZyB,EAazBC,QAbyB,EAczBC,KAdyB,EAezBC,MAfyB,EAgBzBC,QAhByB,EAiBzBC,UAjByB,EAkBzBC,IAlByB,EAmBzBC,OAnByB,EAoBzBC,MApByB,EAqBzBC,KArByB,EAsBzBC,KAtByB,EAuBzBC,IAvByB,EAwBzBC,IAxByB,EAyBzBC,SAzByB,EA0BzBC,cA1ByB,EA2BzBC,WA3ByB,EA4BzBC,OA5ByB,EA6BzBC,IA7ByB,EA8BzBC,QA9ByB,EA+BzBC,YA/ByB,EAgCzBC,SAhCyB,EAiCzBC,GAjCyB,EAkCzBC,MAlCyB,EAmCzBC,SAnCyB,EAoCzBC,aApCyB,EAqCzBC,MArCyB,EAsCzBC,KAtCyB,EAuCzBC,QAvCyB,EAwCzBC,WAxCyB,EAyCzBC,KAzCyB,EA0CzBC,KA1CyB,EA2CzBC,OA3CyB,EA4CzBC,OA5CyB,EA6CzBC,UA7CyB,EA8CzBC,WA9CyB,EA+CxBC,MA/CwB,CA+ChB,CAAEC,WAAF,EAAeC,KAAf,KAA0B;AACnCD,EAAAA,WAAW,CAAEC,KAAK,CAACC,IAAR,CAAX,GAA4BD,KAA5B;AACA,SAAOD,WAAP;AACA,CAlDyB,EAkDvB,EAlDuB,CAAnB;AAoDP;AACA;AACA;AACA;AACA;AACA;;;;AACA,MAAMG,uBAAuB,GAAKF,KAAF,IAAa;AAC5C,QAAM;AAAEG,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBH,IAAAA;AAAtB,MAA+BD,KAArC;;AAEA,MAAK,CAAEI,QAAQ,CAACC,UAAhB,EAA6B;AAC5B;AACA;;AAED,GAAE,GAAGD,QAAQ,CAACC,UAAd,EACEC,IADF,CACQ,CAAEC,CAAF,EAAKC,CAAL,KAAYD,CAAC,CAACE,KAAF,CAAQC,aAAR,CAAuBF,CAAC,CAACC,KAAzB,CADpB,EAEEE,OAFF,CAEaC,CAAF,IAAS;AAClB,mCAAoB,GAAGX,IAAM,IAAIW,CAAC,CAACX,IAAM,EAAzC,EAA4C,EAC3C,GAAGE,QADwC;AAE3CF,MAAAA,IAAI,EAAG,GAAGA,IAAM,IAAIW,CAAC,CAACX,IAAM,EAFe;AAG3C,SAAGG,QAHwC;AAI3CS,MAAAA,IAAI,EAAED,CAAC,CAACC,IAAF,EAJqC;AAK3CJ,MAAAA,KAAK,EAAEG,CAAC,CAACH,KALkC;AAM3CJ,MAAAA,UAAU,EAAE;AAN+B,KAA5C;AAQA,GAXF;AAYA,CAnBD,C,CAqBA;AACA;;;AACA,MAAMS,OAAO,GAAKd,KAAF,IAAe,CAAC,CAAEe,OAAH,GAAaf,KAAb,GAAqB,IAApD,C,CAEA;;;AACA,MAAMgB,OAAO,GAAKhB,KAAF,IACfiB,sBAASC,EAAT,KAAgB,KAAhB,GAAwBlB,KAAxB,GAAgCc,OAAO,CAAEd,KAAF,CADxC,C,CAGA;;;AACA,sBACC,0BADD,EAEC,0BAFD,EAGC,CAAEI,QAAF,EAAYH,IAAZ,KAAsB;AACrB,QAAMkB,YAAY,GAAG,CAAE,eAAF,EAAmB,kBAAnB,CAArB;;AACA,MACCA,YAAY,CAACC,QAAb,CAAuBnB,IAAvB,KACA,6BAAiBG,QAAjB,EAA2B,UAA3B,EAAuC,IAAvC,CAFD,EAGE;AACDA,IAAAA,QAAQ,CAACiB,QAAT,GAAoB,EACnB,GAAGjB,QAAQ,CAACiB,QADO;AAEnBC,MAAAA,QAAQ,EAAE;AAFS,KAApB;AAIA;;AAED,SAAOlB,QAAP;AACA,CAhBF;AAmBA,sBACC,0BADD,EAEC,0BAFD,EAGC,CAAEA,QAAF,EAAYH,IAAZ,KAAsB;AACrB,MAAK,CAAEG,QAAQ,CAACmB,UAAhB,EAA6B;AAC5B,WAAOnB,QAAP;AACA;;AAED,MAAK,CAAEA,QAAQ,CAACmB,UAAT,CAAoBC,yBAA3B,EAAuD;AACtD,WAAO,EACN,GAAGpB,QADG;AAENmB,MAAAA,UAAU,EAAE,EACX,GAAGnB,QAAQ,CAACmB,UADD;AAEXC,QAAAA,yBAAyB,EAAE,sDAAwBvB,IAAxB;AAFhB;AAFN,KAAP;AAOA;;AAED,SAAOG,QAAP;AACA,CAnBF;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,MAAMqB,kBAAkB,GAAG,MAAM;AACvC;AACA,GACCrE,SADD,EAECE,OAFD,EAGCwD,OAAO,CAAE7C,IAAF,CAHR,EAICU,OAJD,EAKCC,IALD,EAMCvB,KAND,EAOCoC,KAPD,EAQCZ,QARD,EASCK,SATD,EAUC1B,IAVD,EAWCC,QAXD,EAYCC,KAZD,EAaCc,SAbD,EAcCM,YAdD,EAeCvB,OAfD,EAgBCW,OAhBD,EAiBCC,MAjBD,EAkBCuD,KAlBD,EAmBChC,OAnBD,EAoBC5B,MApBD,EAqBCsB,MArBD,EAsBCzB,SAtBD,EAuBCgC,OAvBD,EAwBCjB,WAxBD,EAyBCc,KAzBD,EA0BCpB,KA1BD,EA2BCwB,UA3BD,EA4BCC,WA5BD,EA6BCd,SA7BD,EA8BCT,IA9BD,EA+BCT,KA/BD,EAgCCsB,aAhCD,EAiCCF,MAjCD,EAkCCZ,KAlCD,EAoCEsD,MApCF,CAoCUC,OApCV,EAqCEjB,OArCF,CAqCW;AAAA,QAAE;AAAEkB,MAAAA;AAAF,KAAF;AAAA,WAAgBA,IAAI,EAApB;AAAA,GArCX;AAuCA3B,EAAAA,uBAAuB,CAAEN,UAAF,CAAvB;AACA,mCAAqBxC,SAAS,CAAC6C,IAA/B;AACA,6CAA+BP,OAAO,CAACO,IAAvC;AACA,8CAAgCtB,OAAO,CAACsB,IAAxC;;AACA,MAAKyB,KAAL,EAAa;AACZ,sCAAsBA,KAAK,CAACzB,IAA5B;AACA;AACD,CAhDM;AAkDP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACO,MAAM6B,eAAe,GAAG,EAAxB","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tregisterBlockType,\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n} from '@wordpress/blocks';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport * as paragraph from './paragraph';\nimport * as image from './image';\nimport * as heading from './heading';\nimport * as quote from './quote';\nimport * as gallery from './gallery';\nimport * as archives from './archives';\nimport * as audio from './audio';\nimport * as button from './button';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as code from './code';\nimport * as columns from './columns';\nimport * as column from './column';\nimport * as cover from './cover';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as html from './html';\nimport * as mediaText from './media-text';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as listItem from './list-item';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as nextpage from './nextpage';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as reusableBlock from './block';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as spacer from './spacer';\nimport * as table from './table';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\nimport * as tagCloud from './tag-cloud';\nimport * as classic from './freeform';\nimport * as group from './group';\nimport * as buttons from './buttons';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\n\nimport { transformationCategory } from './utils/transformation-categories';\n\nexport const coreBlocks = [\n\t// Common blocks are grouped at the top to prioritize their display\n\t// in various contexts — like the inserter and auto-complete components.\n\tparagraph,\n\timage,\n\theading,\n\tgallery,\n\tlist,\n\tlistItem,\n\tquote,\n\n\t// Register all remaining core blocks.\n\tshortcode,\n\tarchives,\n\taudio,\n\tbutton,\n\tcalendar,\n\tcategories,\n\tcode,\n\tcolumns,\n\tcolumn,\n\tcover,\n\tembed,\n\tfile,\n\thtml,\n\tmediaText,\n\tlatestComments,\n\tlatestPosts,\n\tmissing,\n\tmore,\n\tnextpage,\n\tpreformatted,\n\tpullquote,\n\trss,\n\tsearch,\n\tseparator,\n\treusableBlock,\n\tspacer,\n\ttable,\n\ttagCloud,\n\ttextColumns,\n\tverse,\n\tvideo,\n\tclassic,\n\tbuttons,\n\tsocialLink,\n\tsocialLinks,\n].reduce( ( accumulator, block ) => {\n\taccumulator[ block.name ] = block;\n\treturn accumulator;\n}, {} );\n\n/**\n * Function to register a block variations e.g. social icons different types.\n *\n * @param {Object} block The block which variations will be registered.\n *\n */\nconst registerBlockVariations = ( block ) => {\n\tconst { metadata, settings, name } = block;\n\n\tif ( ! settings.variations ) {\n\t\treturn;\n\t}\n\n\t[ ...settings.variations ]\n\t\t.sort( ( a, b ) => a.title.localeCompare( b.title ) )\n\t\t.forEach( ( v ) => {\n\t\t\tregisterBlockType( `${ name }-${ v.name }`, {\n\t\t\t\t...metadata,\n\t\t\t\tname: `${ name }-${ v.name }`,\n\t\t\t\t...settings,\n\t\t\t\ticon: v.icon(),\n\t\t\t\ttitle: v.title,\n\t\t\t\tvariations: [],\n\t\t\t} );\n\t\t} );\n};\n\n// Only enable code block for development\n// eslint-disable-next-line no-undef\nconst devOnly = ( block ) => ( !! __DEV__ ? block : null );\n\n// eslint-disable-next-line no-unused-vars\nconst iOSOnly = ( block ) =>\n\tPlatform.OS === 'ios' ? block : devOnly( block );\n\n// Hide the Classic block and SocialLink block\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/react-native-editor',\n\t( settings, name ) => {\n\t\tconst hiddenBlocks = [ 'core/freeform', 'core/social-link' ];\n\t\tif (\n\t\t\thiddenBlocks.includes( name ) &&\n\t\t\thasBlockSupport( settings, 'inserter', true )\n\t\t) {\n\t\t\tsettings.supports = {\n\t\t\t\t...settings.supports,\n\t\t\t\tinserter: false,\n\t\t\t};\n\t\t}\n\n\t\treturn settings;\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/react-native-editor',\n\t( settings, name ) => {\n\t\tif ( ! settings.transforms ) {\n\t\t\treturn settings;\n\t\t}\n\n\t\tif ( ! settings.transforms.supportedMobileTransforms ) {\n\t\t\treturn {\n\t\t\t\t...settings,\n\t\t\t\ttransforms: {\n\t\t\t\t\t...settings.transforms,\n\t\t\t\t\tsupportedMobileTransforms: transformationCategory( name ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn settings;\n\t}\n);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = () => {\n\t// When adding new blocks to this list please also consider updating /src/block-support/supported-blocks.json in the Gutenberg-Mobile repo\n\t[\n\t\tparagraph,\n\t\theading,\n\t\tdevOnly( code ),\n\t\tmissing,\n\t\tmore,\n\t\timage,\n\t\tvideo,\n\t\tnextpage,\n\t\tseparator,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\t\tmediaText,\n\t\tpreformatted,\n\t\tgallery,\n\t\tcolumns,\n\t\tcolumn,\n\t\tgroup,\n\t\tclassic,\n\t\tbutton,\n\t\tspacer,\n\t\tshortcode,\n\t\tbuttons,\n\t\tlatestPosts,\n\t\tverse,\n\t\tcover,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tpullquote,\n\t\tfile,\n\t\taudio,\n\t\treusableBlock,\n\t\tsearch,\n\t\tembed,\n\t]\n\t\t.filter( Boolean )\n\t\t.forEach( ( { init } ) => init() );\n\n\tregisterBlockVariations( socialLink );\n\tsetDefaultBlockName( paragraph.name );\n\tsetFreeformContentHandlerName( classic.name );\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tif ( group ) {\n\t\tsetGroupingBlockName( group.name );\n\t}\n};\n\n/**\n * Dictates which block types are considered \"new.\" For each of the block types\n * below, if the native host app does not already have an impression count set,\n * an initial count will be set. When a block type's impression count is greater\n * than 0, a \"new\" badge is displayed on the block type within the block\n * inserter.\n *\n * With the below example, the Audio block will be displayed as \"new\" until its\n * impression count reaches 0, which occurs by various actions decrementing\n * the impression count.\n *\n * {\n * \t[ audio.name ]: 40\n * }\n *\n * @constant {{ string, number }}\n */\nexport const NEW_BLOCK_TYPES = {};\n"]}
@@ -147,7 +147,8 @@ function MediaTextEdit(_ref2) {
147
147
  mediaUrl,
148
148
  mediaWidth,
149
149
  rel,
150
- verticalAlignment
150
+ verticalAlignment,
151
+ allowedBlocks
151
152
  } = attributes;
152
153
  const mediaSizeSlug = attributes.mediaSizeSlug || _constants.DEFAULT_MEDIA_SIZE_SLUG;
153
154
  const {
@@ -313,7 +314,8 @@ function MediaTextEdit(_ref2) {
313
314
  const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)({
314
315
  className: 'wp-block-media-text__content'
315
316
  }, {
316
- template: _constants.TEMPLATE
317
+ template: _constants.TEMPLATE,
318
+ allowedBlocks
317
319
  });
318
320
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.InspectorControls, null, mediaTextGeneralSettings), (0, _element.createElement)(_blockEditor.BlockControls, {
319
321
  group: "block"