@wordpress/block-library 7.17.0 → 7.18.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 (233) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/audio/edit.js +44 -4
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/button/edit.js +1 -1
  5. package/build/button/edit.js.map +1 -1
  6. package/build/buttons/edit.native.js +1 -1
  7. package/build/buttons/edit.native.js.map +1 -1
  8. package/build/comment-template/index.js +6 -2
  9. package/build/comment-template/index.js.map +1 -1
  10. package/build/cover/edit/inspector-controls.js +3 -7
  11. package/build/cover/edit/inspector-controls.js.map +1 -1
  12. package/build/embed/deprecated.js +43 -4
  13. package/build/embed/deprecated.js.map +1 -1
  14. package/build/file/deprecated.js +108 -4
  15. package/build/file/deprecated.js.map +1 -1
  16. package/build/file/transforms.js +3 -9
  17. package/build/file/transforms.js.map +1 -1
  18. package/build/gallery/deprecated.js +148 -23
  19. package/build/gallery/deprecated.js.map +1 -1
  20. package/build/gallery/gallery.js +3 -2
  21. package/build/gallery/gallery.js.map +1 -1
  22. package/build/gallery/use-image-sizes.js +2 -1
  23. package/build/gallery/use-image-sizes.js.map +1 -1
  24. package/build/gallery/v1/edit.js +2 -1
  25. package/build/gallery/v1/edit.js.map +1 -1
  26. package/build/group/edit.js +7 -3
  27. package/build/group/edit.js.map +1 -1
  28. package/build/image/edit.native.js +1 -1
  29. package/build/image/edit.native.js.map +1 -1
  30. package/build/image/image.js +6 -9
  31. package/build/image/image.js.map +1 -1
  32. package/build/latest-posts/edit.js +1 -1
  33. package/build/latest-posts/edit.js.map +1 -1
  34. package/build/list/utils.js +4 -8
  35. package/build/list/utils.js.map +1 -1
  36. package/build/list-item/hooks/use-outdent-list-item.js +5 -7
  37. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  38. package/build/navigation/edit/index.js +12 -11
  39. package/build/navigation/edit/index.js.map +1 -1
  40. package/build/navigation/edit/unsaved-inner-blocks.js +3 -1
  41. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  42. package/build/navigation-link/edit.js +4 -2
  43. package/build/navigation-link/edit.js.map +1 -1
  44. package/build/navigation-submenu/edit.js +4 -4
  45. package/build/navigation-submenu/edit.js.map +1 -1
  46. package/build/page-list/edit.js +29 -10
  47. package/build/page-list/edit.js.map +1 -1
  48. package/build/post-comments-count/index.js +4 -0
  49. package/build/post-comments-count/index.js.map +1 -1
  50. package/build/post-comments-form/index.js +4 -0
  51. package/build/post-comments-form/index.js.map +1 -1
  52. package/build/post-comments-link/index.js +4 -0
  53. package/build/post-comments-link/index.js.map +1 -1
  54. package/build/post-content/edit.js +14 -6
  55. package/build/post-content/edit.js.map +1 -1
  56. package/build/pullquote/deprecated.js +6 -6
  57. package/build/pullquote/deprecated.js.map +1 -1
  58. package/build/search/edit.js +1 -3
  59. package/build/search/edit.js.map +1 -1
  60. package/build/site-logo/edit.js +1 -1
  61. package/build/site-logo/edit.js.map +1 -1
  62. package/build/site-tagline/edit.js +21 -9
  63. package/build/site-tagline/edit.js.map +1 -1
  64. package/build/site-title/edit/index.js +20 -8
  65. package/build/site-title/edit/index.js.map +1 -1
  66. package/build/social-link/edit.js +11 -2
  67. package/build/social-link/edit.js.map +1 -1
  68. package/build/social-link/index.js +3 -0
  69. package/build/social-link/index.js.map +1 -1
  70. package/build/spacer/controls.js +3 -7
  71. package/build/spacer/controls.js.map +1 -1
  72. package/build/table/deprecated.js +282 -27
  73. package/build/table/deprecated.js.map +1 -1
  74. package/build/table/state.js +1 -1
  75. package/build/table/state.js.map +1 -1
  76. package/build/utils/clean-empty-object.js +5 -4
  77. package/build/utils/clean-empty-object.js.map +1 -1
  78. package/build/video/deprecated.js +159 -0
  79. package/build/video/deprecated.js.map +1 -0
  80. package/build/video/edit.js +41 -5
  81. package/build/video/edit.js.map +1 -1
  82. package/build/video/index.js +3 -0
  83. package/build/video/index.js.map +1 -1
  84. package/build/video/tracks-editor.js +3 -28
  85. package/build/video/tracks-editor.js.map +1 -1
  86. package/build-module/audio/edit.js +46 -7
  87. package/build-module/audio/edit.js.map +1 -1
  88. package/build-module/button/edit.js +1 -1
  89. package/build-module/button/edit.js.map +1 -1
  90. package/build-module/buttons/edit.native.js +1 -1
  91. package/build-module/buttons/edit.native.js.map +1 -1
  92. package/build-module/comment-template/index.js +6 -2
  93. package/build-module/comment-template/index.js.map +1 -1
  94. package/build-module/cover/edit/inspector-controls.js +4 -8
  95. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  96. package/build-module/embed/deprecated.js +44 -5
  97. package/build-module/embed/deprecated.js.map +1 -1
  98. package/build-module/file/deprecated.js +108 -4
  99. package/build-module/file/deprecated.js.map +1 -1
  100. package/build-module/file/transforms.js +3 -8
  101. package/build-module/file/transforms.js.map +1 -1
  102. package/build-module/gallery/deprecated.js +147 -25
  103. package/build-module/gallery/deprecated.js.map +1 -1
  104. package/build-module/gallery/gallery.js +3 -2
  105. package/build-module/gallery/gallery.js.map +1 -1
  106. package/build-module/gallery/use-image-sizes.js +3 -2
  107. package/build-module/gallery/use-image-sizes.js.map +1 -1
  108. package/build-module/gallery/v1/edit.js +3 -2
  109. package/build-module/gallery/v1/edit.js.map +1 -1
  110. package/build-module/group/edit.js +7 -3
  111. package/build-module/group/edit.js.map +1 -1
  112. package/build-module/image/edit.native.js +1 -1
  113. package/build-module/image/edit.native.js.map +1 -1
  114. package/build-module/image/image.js +8 -11
  115. package/build-module/image/image.js.map +1 -1
  116. package/build-module/latest-posts/edit.js +2 -2
  117. package/build-module/latest-posts/edit.js.map +1 -1
  118. package/build-module/list/utils.js +5 -9
  119. package/build-module/list/utils.js.map +1 -1
  120. package/build-module/list-item/hooks/use-outdent-list-item.js +5 -6
  121. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  122. package/build-module/navigation/edit/index.js +12 -11
  123. package/build-module/navigation/edit/index.js.map +1 -1
  124. package/build-module/navigation/edit/unsaved-inner-blocks.js +3 -1
  125. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  126. package/build-module/navigation-link/edit.js +4 -3
  127. package/build-module/navigation-link/edit.js.map +1 -1
  128. package/build-module/navigation-submenu/edit.js +4 -4
  129. package/build-module/navigation-submenu/edit.js.map +1 -1
  130. package/build-module/page-list/edit.js +29 -10
  131. package/build-module/page-list/edit.js.map +1 -1
  132. package/build-module/post-comments-count/index.js +4 -0
  133. package/build-module/post-comments-count/index.js.map +1 -1
  134. package/build-module/post-comments-form/index.js +4 -0
  135. package/build-module/post-comments-form/index.js.map +1 -1
  136. package/build-module/post-comments-link/index.js +4 -0
  137. package/build-module/post-comments-link/index.js.map +1 -1
  138. package/build-module/post-content/edit.js +14 -6
  139. package/build-module/post-content/edit.js.map +1 -1
  140. package/build-module/pullquote/deprecated.js +7 -7
  141. package/build-module/pullquote/deprecated.js.map +1 -1
  142. package/build-module/search/edit.js +1 -3
  143. package/build-module/search/edit.js.map +1 -1
  144. package/build-module/site-logo/edit.js +2 -2
  145. package/build-module/site-logo/edit.js.map +1 -1
  146. package/build-module/site-tagline/edit.js +23 -11
  147. package/build-module/site-tagline/edit.js.map +1 -1
  148. package/build-module/site-title/edit/index.js +22 -10
  149. package/build-module/site-title/edit/index.js.map +1 -1
  150. package/build-module/social-link/edit.js +11 -2
  151. package/build-module/social-link/edit.js.map +1 -1
  152. package/build-module/social-link/index.js +3 -0
  153. package/build-module/social-link/index.js.map +1 -1
  154. package/build-module/spacer/controls.js +4 -8
  155. package/build-module/spacer/controls.js.map +1 -1
  156. package/build-module/table/deprecated.js +282 -27
  157. package/build-module/table/deprecated.js.map +1 -1
  158. package/build-module/table/state.js +1 -1
  159. package/build-module/table/state.js.map +1 -1
  160. package/build-module/utils/clean-empty-object.js +5 -5
  161. package/build-module/utils/clean-empty-object.js.map +1 -1
  162. package/build-module/video/deprecated.js +147 -0
  163. package/build-module/video/deprecated.js.map +1 -0
  164. package/build-module/video/edit.js +45 -9
  165. package/build-module/video/edit.js.map +1 -1
  166. package/build-module/video/index.js +2 -0
  167. package/build-module/video/index.js.map +1 -1
  168. package/build-module/video/tracks-editor.js +4 -29
  169. package/build-module/video/tracks-editor.js.map +1 -1
  170. package/build-style/button/style-rtl.css +1 -0
  171. package/build-style/button/style.css +1 -0
  172. package/build-style/comment-template/style-rtl.css +1 -0
  173. package/build-style/comment-template/style.css +1 -0
  174. package/build-style/editor-rtl.css +4 -4
  175. package/build-style/editor.css +4 -4
  176. package/build-style/navigation/editor-rtl.css +4 -4
  177. package/build-style/navigation/editor.css +4 -4
  178. package/build-style/navigation/style-rtl.css +3 -1
  179. package/build-style/navigation/style.css +3 -1
  180. package/build-style/post-comments-form/style-rtl.css +3 -0
  181. package/build-style/post-comments-form/style.css +3 -0
  182. package/build-style/style-rtl.css +8 -1
  183. package/build-style/style.css +8 -1
  184. package/package.json +29 -28
  185. package/src/audio/edit.js +79 -24
  186. package/src/button/edit.js +1 -1
  187. package/src/button/style.scss +2 -0
  188. package/src/buttons/edit.native.js +1 -1
  189. package/src/comment-template/block.json +6 -2
  190. package/src/comment-template/style.scss +2 -0
  191. package/src/cover/edit/inspector-controls.js +11 -13
  192. package/src/embed/deprecated.js +53 -26
  193. package/src/file/deprecated.js +130 -2
  194. package/src/file/transforms.js +3 -8
  195. package/src/gallery/deprecated.js +129 -4
  196. package/src/gallery/gallery.js +2 -0
  197. package/src/gallery/index.php +19 -10
  198. package/src/gallery/use-image-sizes.js +3 -2
  199. package/src/gallery/v1/edit.js +3 -2
  200. package/src/group/edit.js +10 -2
  201. package/src/image/edit.native.js +1 -1
  202. package/src/image/image.js +22 -10
  203. package/src/latest-posts/edit.js +2 -2
  204. package/src/list/utils.js +3 -11
  205. package/src/list-item/hooks/use-outdent-list-item.js +3 -6
  206. package/src/navigation/edit/index.js +13 -15
  207. package/src/navigation/edit/unsaved-inner-blocks.js +9 -2
  208. package/src/navigation/editor.scss +4 -4
  209. package/src/navigation/style.scss +3 -1
  210. package/src/navigation-link/edit.js +5 -4
  211. package/src/navigation-submenu/edit.js +7 -5
  212. package/src/page-list/edit.js +36 -22
  213. package/src/post-comments-count/block.json +4 -0
  214. package/src/post-comments-form/block.json +4 -0
  215. package/src/post-comments-form/style.scss +3 -0
  216. package/src/post-comments-link/block.json +4 -0
  217. package/src/post-content/edit.js +8 -4
  218. package/src/pullquote/deprecated.js +7 -7
  219. package/src/search/edit.js +1 -1
  220. package/src/site-logo/edit.js +2 -2
  221. package/src/site-tagline/edit.js +25 -18
  222. package/src/site-title/edit/index.js +26 -12
  223. package/src/social-link/block.json +3 -0
  224. package/src/social-link/edit.js +8 -1
  225. package/src/social-link/index.php +11 -7
  226. package/src/spacer/controls.js +10 -12
  227. package/src/table/deprecated.js +587 -348
  228. package/src/table/state.js +1 -1
  229. package/src/utils/clean-empty-object.js +5 -6
  230. package/src/video/deprecated.js +57 -0
  231. package/src/video/edit.js +71 -23
  232. package/src/video/index.js +2 -0
  233. package/src/video/tracks-editor.js +12 -28
@@ -9,14 +9,15 @@ import classnames from 'classnames';
9
9
  */
10
10
 
11
11
  import { getBlobByURL, isBlobURL } from '@wordpress/blob';
12
- import { Disabled, PanelBody, SelectControl, Spinner, ToggleControl } from '@wordpress/components';
12
+ import { Disabled, PanelBody, SelectControl, Spinner, ToggleControl, ToolbarButton } from '@wordpress/components';
13
13
  import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaReplaceFlow, RichText, useBlockProps, store as blockEditorStore, __experimentalGetElementClassName } from '@wordpress/block-editor';
14
- import { useEffect } from '@wordpress/element';
14
+ import { useEffect, useState, useCallback } from '@wordpress/element';
15
15
  import { __, _x } from '@wordpress/i18n';
16
16
  import { useDispatch, useSelect } from '@wordpress/data';
17
- import { audio as icon } from '@wordpress/icons';
17
+ import { audio as icon, caption as captionIcon } from '@wordpress/icons';
18
18
  import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
19
19
  import { store as noticesStore } from '@wordpress/notices';
20
+ import { usePrevious } from '@wordpress/compose';
20
21
  /**
21
22
  * Internal dependencies
22
23
  */
@@ -41,6 +42,8 @@ function AudioEdit(_ref) {
41
42
  preload,
42
43
  src
43
44
  } = attributes;
45
+ const prevCaption = usePrevious(caption);
46
+ const [showCaption, setShowCaption] = useState(!!caption);
44
47
  const isTemporaryAudio = !id && isBlobURL(src);
45
48
  const mediaUpload = useSelect(select => {
46
49
  const {
@@ -64,7 +67,25 @@ function AudioEdit(_ref) {
64
67
  });
65
68
  }
66
69
  }
67
- }, []);
70
+ }, []); // We need to show the caption when changes come from
71
+ // history navigation(undo/redo).
72
+
73
+ useEffect(() => {
74
+ if (caption && !prevCaption) {
75
+ setShowCaption(true);
76
+ }
77
+ }, [caption, prevCaption]); // Focus the caption when we click to add one.
78
+
79
+ const captionRef = useCallback(node => {
80
+ if (node && !caption) {
81
+ node.focus();
82
+ }
83
+ }, [caption]);
84
+ useEffect(() => {
85
+ if (!isSelected && !caption) {
86
+ setShowCaption(false);
87
+ }
88
+ }, [isSelected, caption]);
68
89
 
69
90
  function toggleAttribute(attribute) {
70
91
  return newValue => {
@@ -117,7 +138,8 @@ function AudioEdit(_ref) {
117
138
  // previous attributes should be removed because they may be temporary blob urls.
118
139
  setAttributes({
119
140
  src: undefined,
120
- id: undefined
141
+ id: undefined,
142
+ caption: undefined
121
143
  });
122
144
  return;
123
145
  } // Sets the block's attribute and updates the edit component from the
@@ -126,7 +148,8 @@ function AudioEdit(_ref) {
126
148
 
127
149
  setAttributes({
128
150
  src: media.url,
129
- id: media.id
151
+ id: media.id,
152
+ caption: media.caption
130
153
  });
131
154
  }
132
155
 
@@ -152,6 +175,21 @@ function AudioEdit(_ref) {
152
175
  }
153
176
 
154
177
  return createElement(Fragment, null, createElement(BlockControls, {
178
+ group: "block"
179
+ }, createElement(ToolbarButton, {
180
+ onClick: () => {
181
+ setShowCaption(!showCaption);
182
+
183
+ if (showCaption && caption) {
184
+ setAttributes({
185
+ caption: undefined
186
+ });
187
+ }
188
+ },
189
+ icon: captionIcon,
190
+ isPressed: showCaption,
191
+ label: showCaption ? __('Remove caption') : __('Add caption')
192
+ })), createElement(BlockControls, {
155
193
  group: "other"
156
194
  }, createElement(MediaReplaceFlow, {
157
195
  mediaId: id,
@@ -197,9 +235,10 @@ function AudioEdit(_ref) {
197
235
  }, createElement("audio", {
198
236
  controls: "controls",
199
237
  src: src
200
- })), isTemporaryAudio && createElement(Spinner, null), (!RichText.isEmpty(caption) || isSelected) && createElement(RichText, {
238
+ })), isTemporaryAudio && createElement(Spinner, null), showCaption && (!RichText.isEmpty(caption) || isSelected) && createElement(RichText, {
201
239
  tagName: "figcaption",
202
240
  className: __experimentalGetElementClassName('caption'),
241
+ ref: captionRef,
203
242
  "aria-label": __('Audio caption text'),
204
243
  placeholder: __('Add caption'),
205
244
  value: caption,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/audio/edit.js"],"names":["classnames","getBlobByURL","isBlobURL","Disabled","PanelBody","SelectControl","Spinner","ToggleControl","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","RichText","useBlockProps","store","blockEditorStore","__experimentalGetElementClassName","useEffect","__","_x","useDispatch","useSelect","audio","icon","createBlock","getDefaultBlockName","noticesStore","createUpgradedEmbedBlock","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","className","setAttributes","onReplace","isSelected","insertBlocksAfter","id","autoplay","caption","loop","preload","src","isTemporaryAudio","mediaUpload","select","getSettings","file","filesList","onFileChange","media","onSelectAudio","onError","e","onUploadError","allowedTypes","toggleAttribute","attribute","newValue","onSelectURL","newSrc","embedBlock","url","undefined","createErrorNotice","message","type","getAutoplayHelp","checked","classes","blockProps","value","label","isEmpty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { audio as icon } from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, caption, loop, preload, src } = attributes;\n\tconst isTemporaryAudio = ! id && isBlobURL( src );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ media ] ) => onSelectAudio( media ),\n\t\t\t\t\tonError: ( e ) => onUploadError( e ),\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [] );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( { src: media.url, id: media.id } );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryAudio,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryAudio && <Spinner /> }\n\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\taria-label={ __( 'Audio caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default AudioEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/audio/edit.js"],"names":["classnames","getBlobByURL","isBlobURL","Disabled","PanelBody","SelectControl","Spinner","ToggleControl","ToolbarButton","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","RichText","useBlockProps","store","blockEditorStore","__experimentalGetElementClassName","useEffect","useState","useCallback","__","_x","useDispatch","useSelect","audio","icon","caption","captionIcon","createBlock","getDefaultBlockName","noticesStore","usePrevious","createUpgradedEmbedBlock","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","className","setAttributes","onReplace","isSelected","insertBlocksAfter","id","autoplay","loop","preload","src","prevCaption","showCaption","setShowCaption","isTemporaryAudio","mediaUpload","select","getSettings","file","filesList","onFileChange","media","onSelectAudio","onError","e","onUploadError","allowedTypes","captionRef","node","focus","toggleAttribute","attribute","newValue","onSelectURL","newSrc","embedBlock","url","undefined","createErrorNotice","message","type","getAutoplayHelp","checked","classes","blockProps","value","label","isEmpty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { useEffect, useState, useCallback } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { audio as icon, caption as captionIcon } from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, caption, loop, preload, src } = attributes;\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst isTemporaryAudio = ! id && isBlobURL( src );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ media ] ) => onSelectAudio( media ),\n\t\t\t\t\tonError: ( e ) => onUploadError( e ),\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [] );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! caption ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryAudio,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryAudio && <Spinner /> }\n\t\t\t\t{ showCaption &&\n\t\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\t\taria-label={ __( 'Audio caption text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default AudioEdit;\n"]}
@@ -186,7 +186,7 @@ function ButtonEdit(props) {
186
186
  onClick: unlink,
187
187
  isActive: true
188
188
  })), isSelected && (isEditingURL || isURLSet) && createElement(Popover, {
189
- position: "bottom center",
189
+ placement: "bottom",
190
190
  onClose: () => {
191
191
  var _richTextRef$current2;
192
192
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/button/edit.js"],"names":["classnames","__","useCallback","useEffect","useState","useRef","Button","ButtonGroup","PanelBody","TextControl","ToolbarButton","Popover","BlockControls","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","__experimentalGetSpacingClassesAndStyles","useSpacingProps","__experimentalLinkControl","LinkControl","__experimentalGetElementClassName","displayShortcut","isKeyboardEvent","link","linkOff","createBlock","useMergeRefs","NEW_TAB_REL","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","map","widthValue","ButtonEdit","props","attributes","className","isSelected","onReplace","mergeBlocks","linkTarget","placeholder","rel","style","text","url","onSetLinkRel","value","onToggleOpenInNewTab","newLinkTarget","updatedRel","setButtonText","newText","replace","onKeyDown","event","primary","startEditing","primaryShift","unlink","richTextRef","current","focus","popoverAnchor","setPopoverAnchor","borderProps","colorProps","spacingProps","ref","blockProps","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","preventDefault","fontSize","border","radius","newURL","newOpensInNewTab"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useEffect, useState, useRef } from '@wordpress/element';\nimport {\n\tButton,\n\tButtonGroup,\n\tPanelBody,\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalLinkControl as LinkControl,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs } from '@wordpress/compose';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tconst width = selectedWidth === newWidth ? undefined : newWidth;\n\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Width settings' ) }>\n\t\t\t<ButtonGroup aria-label={ __( 'Button width' ) }>\n\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\twidthValue === selectedWidth\n\t\t\t\t\t\t\t\t\t? 'primary'\n\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\tonClick={ () => handleChange( widthValue ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ButtonGroup>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t} = props;\n\tconst { linkTarget, placeholder, rel, style, text, url, width } =\n\t\tattributes;\n\tconst onSetLinkRel = useCallback(\n\t\t( value ) => {\n\t\t\tsetAttributes( { rel: value } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tfunction onToggleOpenInNewTab( value ) {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel = rel;\n\t\tif ( newLinkTarget && ! rel ) {\n\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t} else if ( ! newLinkTarget && rel === NEW_TAB_REL ) {\n\t\t\tupdatedRel = undefined;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t} );\n\t}\n\n\tfunction setButtonText( newText ) {\n\t\t// Remove anchor tags from button text content.\n\t\tsetAttributes( { text: newText.replace( /<\\/?a[^>]*>/g, '' ) } );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === '_blank';\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t\t[ `has-custom-font-size` ]: blockProps.style.fontSize,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ richTextRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) => setButtonText( value ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t\t...spacingProps.style,\n\t\t\t\t\t} }\n\t\t\t\t\tonSplit={ ( value ) =>\n\t\t\t\t\t\tcreateBlock( 'core/button', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\ttext: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isURLSet && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ startEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isURLSet && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift( 'k' ) }\n\t\t\t\t\t\tonClick={ unlink }\n\t\t\t\t\t\tisActive={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isSelected && ( isEditingURL || isURLSet ) && (\n\t\t\t\t<Popover\n\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t__unstableSlotName={ '__unstable-block-tools-after' }\n\t\t\t\t\tshift\n\t\t\t\t>\n\t\t\t\t\t<LinkControl\n\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\tvalue={ { url, opensInNewTab } }\n\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\turl: newURL = '',\n\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\tsetAttributes( { url: newURL } );\n\n\t\t\t\t\t\t\tif ( opensInNewTab !== newOpensInNewTab ) {\n\t\t\t\t\t\t\t\tonToggleOpenInNewTab( newOpensInNewTab );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t/>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/button/edit.js"],"names":["classnames","__","useCallback","useEffect","useState","useRef","Button","ButtonGroup","PanelBody","TextControl","ToolbarButton","Popover","BlockControls","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","__experimentalGetSpacingClassesAndStyles","useSpacingProps","__experimentalLinkControl","LinkControl","__experimentalGetElementClassName","displayShortcut","isKeyboardEvent","link","linkOff","createBlock","useMergeRefs","NEW_TAB_REL","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","map","widthValue","ButtonEdit","props","attributes","className","isSelected","onReplace","mergeBlocks","linkTarget","placeholder","rel","style","text","url","onSetLinkRel","value","onToggleOpenInNewTab","newLinkTarget","updatedRel","setButtonText","newText","replace","onKeyDown","event","primary","startEditing","primaryShift","unlink","richTextRef","current","focus","popoverAnchor","setPopoverAnchor","borderProps","colorProps","spacingProps","ref","blockProps","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","preventDefault","fontSize","border","radius","newURL","newOpensInNewTab"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useEffect, useState, useRef } from '@wordpress/element';\nimport {\n\tButton,\n\tButtonGroup,\n\tPanelBody,\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalLinkControl as LinkControl,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs } from '@wordpress/compose';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tconst width = selectedWidth === newWidth ? undefined : newWidth;\n\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Width settings' ) }>\n\t\t\t<ButtonGroup aria-label={ __( 'Button width' ) }>\n\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\twidthValue === selectedWidth\n\t\t\t\t\t\t\t\t\t? 'primary'\n\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\tonClick={ () => handleChange( widthValue ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ButtonGroup>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t} = props;\n\tconst { linkTarget, placeholder, rel, style, text, url, width } =\n\t\tattributes;\n\tconst onSetLinkRel = useCallback(\n\t\t( value ) => {\n\t\t\tsetAttributes( { rel: value } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tfunction onToggleOpenInNewTab( value ) {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel = rel;\n\t\tif ( newLinkTarget && ! rel ) {\n\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t} else if ( ! newLinkTarget && rel === NEW_TAB_REL ) {\n\t\t\tupdatedRel = undefined;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t} );\n\t}\n\n\tfunction setButtonText( newText ) {\n\t\t// Remove anchor tags from button text content.\n\t\tsetAttributes( { text: newText.replace( /<\\/?a[^>]*>/g, '' ) } );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === '_blank';\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t\t[ `has-custom-font-size` ]: blockProps.style.fontSize,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ richTextRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) => setButtonText( value ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t\t...spacingProps.style,\n\t\t\t\t\t} }\n\t\t\t\t\tonSplit={ ( value ) =>\n\t\t\t\t\t\tcreateBlock( 'core/button', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\ttext: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isURLSet && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ startEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isURLSet && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift( 'k' ) }\n\t\t\t\t\t\tonClick={ unlink }\n\t\t\t\t\t\tisActive={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isSelected && ( isEditingURL || isURLSet ) && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t__unstableSlotName={ '__unstable-block-tools-after' }\n\t\t\t\t\tshift\n\t\t\t\t>\n\t\t\t\t\t<LinkControl\n\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\tvalue={ { url, opensInNewTab } }\n\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\turl: newURL = '',\n\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\tsetAttributes( { url: newURL } );\n\n\t\t\t\t\t\t\tif ( opensInNewTab !== newOpensInNewTab ) {\n\t\t\t\t\t\t\t\tonToggleOpenInNewTab( newOpensInNewTab );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t/>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"]}
@@ -126,7 +126,7 @@ export default function ButtonsEdit(_ref) {
126
126
  }),
127
127
  popoverProps: {
128
128
  position: 'bottom right',
129
- isAlternate: true
129
+ variant: 'toolbar'
130
130
  }
131
131
  })), resizeObserver, createElement(InnerBlocks, {
132
132
  allowedBlocks: ALLOWED_BLOCKS,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/buttons/edit.native.js"],"names":["View","BlockControls","InnerBlocks","JustifyContentControl","store","blockEditorStore","createBlock","getBlockSupport","debounce","useResizeObserver","useDispatch","useSelect","useState","useEffect","useRef","useCallback","alignmentHelpers","name","buttonBlockName","styles","ALLOWED_BLOCKS","layoutProp","type","alignments","ButtonsEdit","attributes","layout","align","clientId","isSelected","setAttributes","blockWidth","resizeObserver","sizes","maxWidth","setMaxWidth","marginLeft","spacing","layoutBlockSupport","defaultBlockLayout","default","usedLayout","justifyContent","isInnerButtonSelected","shouldDelete","select","getBlockCount","getBlockParents","getSelectedBlockClientId","selectedBlockClientId","selectedBlockParents","preferredStyle","preferredStyleVariations","getSettings","__experimentalPreferredStyleVariations","value","getBlockOrder","insertBlock","removeBlock","selectBlock","width","isFullWidth","isFullWidthBlock","onAddNextButton","selectedId","order","selectedButtonIndex","findIndex","i","index","length","insertedBlock","renderFooterAppender","appenderContainer","justifyControls","remove","shouldRenderFooterAppender","position","isAlternate","className","current","undefined"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tJustifyContentControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { createBlock, getBlockSupport } from '@wordpress/blocks';\nimport { debounce, useResizeObserver } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useEffect, useRef, useCallback } from '@wordpress/element';\nimport { alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { name as buttonBlockName } from '../button/';\nimport styles from './editor.scss';\n\nconst ALLOWED_BLOCKS = [ buttonBlockName ];\n\nconst layoutProp = { type: 'default', alignments: [] };\n\nexport default function ButtonsEdit( {\n\tattributes: { layout, align },\n\tclientId,\n\tisSelected,\n\tsetAttributes,\n\tblockWidth,\n\tname,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ maxWidth, setMaxWidth ] = useState( 0 );\n\tconst { marginLeft: spacing } = styles.spacing;\n\n\t// Extract attributes from block layout\n\tconst layoutBlockSupport = getBlockSupport( name, '__experimentalLayout' );\n\tconst defaultBlockLayout = layoutBlockSupport?.default;\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst { justifyContent } = usedLayout;\n\n\tconst { isInnerButtonSelected, shouldDelete } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockCount, getBlockParents, getSelectedBlockClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst selectedBlockParents = getBlockParents(\n\t\t\t\tselectedBlockClientId,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tisInnerButtonSelected: selectedBlockParents[ 0 ] === clientId,\n\t\t\t\t// The purpose of `shouldDelete` check is giving the ability to\n\t\t\t\t// pass to mobile toolbar function called `onDelete` which removes\n\t\t\t\t// the whole `Buttons` container along with the last inner button\n\t\t\t\t// when there is exactly one button.\n\t\t\t\tshouldDelete: getBlockCount( clientId ) === 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst preferredStyle = useSelect( ( select ) => {\n\t\tconst preferredStyleVariations =\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalPreferredStyleVariations;\n\t\treturn preferredStyleVariations?.value?.[ buttonBlockName ];\n\t}, [] );\n\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tconst { width } = sizes || {};\n\t\tconst { isFullWidth } = alignmentHelpers;\n\n\t\tif ( width ) {\n\t\t\tconst isFullWidthBlock = isFullWidth( align );\n\t\t\tsetMaxWidth( isFullWidthBlock ? blockWidth : width );\n\t\t}\n\t}, [ sizes, align ] );\n\n\tconst onAddNextButton = useCallback(\n\t\tdebounce( ( selectedId ) => {\n\t\t\tconst order = getBlockOrder( clientId );\n\t\t\tconst selectedButtonIndex = order.findIndex(\n\t\t\t\t( i ) => i === selectedId\n\t\t\t);\n\n\t\t\tconst index =\n\t\t\t\tselectedButtonIndex === -1\n\t\t\t\t\t? order.length + 1\n\t\t\t\t\t: selectedButtonIndex;\n\n\t\t\tconst insertedBlock = createBlock( 'core/button' );\n\n\t\t\tinsertBlock( insertedBlock, index, clientId );\n\t\t\tselectBlock( insertedBlock.clientId );\n\t\t}, 200 ),\n\t\t[]\n\t);\n\n\tconst renderFooterAppender = useRef( () => (\n\t\t<View style={ styles.appenderContainer }>\n\t\t\t<InnerBlocks.ButtonBlockAppender\n\t\t\t\tisFloating={ true }\n\t\t\t\tonAddBlock={ onAddNextButton }\n\t\t\t/>\n\t\t</View>\n\t) );\n\n\tconst justifyControls = [ 'left', 'center', 'right' ];\n\n\tconst remove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\tconst shouldRenderFooterAppender = isSelected || isInnerButtonSelected;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<JustifyContentControl\n\t\t\t\t\t\tallowedControls={ justifyControls }\n\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t...usedLayout,\n\t\t\t\t\t\t\t\t\tjustifyContent: value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tposition: 'bottom right',\n\t\t\t\t\t\t\tisAlternate: true,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ resizeObserver }\n\t\t\t<InnerBlocks\n\t\t\t\tallowedBlocks={ ALLOWED_BLOCKS }\n\t\t\t\ttemplate={ [\n\t\t\t\t\t[\n\t\t\t\t\t\tbuttonBlockName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\tpreferredStyle &&\n\t\t\t\t\t\t\t\t`is-style-${ preferredStyle }`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t] }\n\t\t\t\trenderFooterAppender={\n\t\t\t\t\tshouldRenderFooterAppender && renderFooterAppender.current\n\t\t\t\t}\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\thorizontalAlignment={ justifyContent }\n\t\t\t\tonDeleteBlock={ shouldDelete ? remove : undefined }\n\t\t\t\tonAddBlock={ onAddNextButton }\n\t\t\t\tparentWidth={ maxWidth } // This value controls the width of that the buttons are able to expand to.\n\t\t\t\tmarginHorizontal={ spacing }\n\t\t\t\tmarginVertical={ spacing }\n\t\t\t\t__experimentalLayout={ layoutProp }\n\t\t\t\ttemplateInsertUpdatesSelection\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/buttons/edit.native.js"],"names":["View","BlockControls","InnerBlocks","JustifyContentControl","store","blockEditorStore","createBlock","getBlockSupport","debounce","useResizeObserver","useDispatch","useSelect","useState","useEffect","useRef","useCallback","alignmentHelpers","name","buttonBlockName","styles","ALLOWED_BLOCKS","layoutProp","type","alignments","ButtonsEdit","attributes","layout","align","clientId","isSelected","setAttributes","blockWidth","resizeObserver","sizes","maxWidth","setMaxWidth","marginLeft","spacing","layoutBlockSupport","defaultBlockLayout","default","usedLayout","justifyContent","isInnerButtonSelected","shouldDelete","select","getBlockCount","getBlockParents","getSelectedBlockClientId","selectedBlockClientId","selectedBlockParents","preferredStyle","preferredStyleVariations","getSettings","__experimentalPreferredStyleVariations","value","getBlockOrder","insertBlock","removeBlock","selectBlock","width","isFullWidth","isFullWidthBlock","onAddNextButton","selectedId","order","selectedButtonIndex","findIndex","i","index","length","insertedBlock","renderFooterAppender","appenderContainer","justifyControls","remove","shouldRenderFooterAppender","position","variant","className","current","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SACCC,aADD,EAECC,WAFD,EAGCC,qBAHD,EAICC,KAAK,IAAIC,gBAJV,QAKO,yBALP;AAMA,SAASC,WAAT,EAAsBC,eAAtB,QAA6C,mBAA7C;AACA,SAASC,QAAT,EAAmBC,iBAAnB,QAA4C,oBAA5C;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,QAAT,EAAmBC,SAAnB,EAA8BC,MAA9B,EAAsCC,WAAtC,QAAyD,oBAAzD;AACA,SAASC,gBAAT,QAAiC,uBAAjC;AAEA;AACA;AACA;;AACA,SAASC,IAAI,IAAIC,eAAjB,QAAwC,YAAxC;AACA,OAAOC,MAAP,MAAmB,eAAnB;AAEA,MAAMC,cAAc,GAAG,CAAEF,eAAF,CAAvB;AAEA,MAAMG,UAAU,GAAG;AAAEC,EAAAA,IAAI,EAAE,SAAR;AAAmBC,EAAAA,UAAU,EAAE;AAA/B,CAAnB;AAEA,eAAe,SAASC,WAAT,OAOX;AAAA,MAPiC;AACpCC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV,KADwB;AAEpCC,IAAAA,QAFoC;AAGpCC,IAAAA,UAHoC;AAIpCC,IAAAA,aAJoC;AAKpCC,IAAAA,UALoC;AAMpCd,IAAAA;AANoC,GAOjC;AACH,QAAM,CAAEe,cAAF,EAAkBC,KAAlB,IAA4BxB,iBAAiB,EAAnD;AACA,QAAM,CAAEyB,QAAF,EAAYC,WAAZ,IAA4BvB,QAAQ,CAAE,CAAF,CAA1C;AACA,QAAM;AAAEwB,IAAAA,UAAU,EAAEC;AAAd,MAA0BlB,MAAM,CAACkB,OAAvC,CAHG,CAKH;;AACA,QAAMC,kBAAkB,GAAG/B,eAAe,CAAEU,IAAF,EAAQ,sBAAR,CAA1C;AACA,QAAMsB,kBAAkB,GAAGD,kBAAH,aAAGA,kBAAH,uBAAGA,kBAAkB,CAAEE,OAA/C;AACA,QAAMC,UAAU,GAAGf,MAAM,IAAIa,kBAAV,IAAgC,EAAnD;AACA,QAAM;AAAEG,IAAAA;AAAF,MAAqBD,UAA3B;AAEA,QAAM;AAAEE,IAAAA,qBAAF;AAAyBC,IAAAA;AAAzB,MAA0CjC,SAAS,CACtDkC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA,eAAjB;AAAkCC,MAAAA;AAAlC,QACLH,MAAM,CAAExC,gBAAF,CADP;AAEA,UAAM4C,qBAAqB,GAAGD,wBAAwB,EAAtD;AACA,UAAME,oBAAoB,GAAGH,eAAe,CAC3CE,qBAD2C,EAE3C,IAF2C,CAA5C;AAKA,WAAO;AACNN,MAAAA,qBAAqB,EAAEO,oBAAoB,CAAE,CAAF,CAApB,KAA8BtB,QAD/C;AAEN;AACA;AACA;AACA;AACAgB,MAAAA,YAAY,EAAEE,aAAa,CAAElB,QAAF,CAAb,KAA8B;AANtC,KAAP;AAQA,GAlBuD,EAmBxD,CAAEA,QAAF,CAnBwD,CAAzD;AAsBA,QAAMuB,cAAc,GAAGxC,SAAS,CAAIkC,MAAF,IAAc;AAAA;;AAC/C,UAAMO,wBAAwB,GAC7BP,MAAM,CAAExC,gBAAF,CAAN,CAA2BgD,WAA3B,GACEC,sCAFH;;AAGA,WAAOF,wBAAP,aAAOA,wBAAP,gDAAOA,wBAAwB,CAAEG,KAAjC,0DAAO,sBAAmCrC,eAAnC,CAAP;AACA,GAL+B,EAK7B,EAL6B,CAAhC;AAOA,QAAM;AAAEsC,IAAAA;AAAF,MAAoB7C,SAAS,CAAEN,gBAAF,CAAnC;AACA,QAAM;AAAEoD,IAAAA,WAAF;AAAeC,IAAAA,WAAf;AAA4BC,IAAAA;AAA5B,MACLjD,WAAW,CAAEL,gBAAF,CADZ;AAGAQ,EAAAA,SAAS,CAAE,MAAM;AAChB,UAAM;AAAE+C,MAAAA;AAAF,QAAY3B,KAAK,IAAI,EAA3B;AACA,UAAM;AAAE4B,MAAAA;AAAF,QAAkB7C,gBAAxB;;AAEA,QAAK4C,KAAL,EAAa;AACZ,YAAME,gBAAgB,GAAGD,WAAW,CAAElC,KAAF,CAApC;AACAQ,MAAAA,WAAW,CAAE2B,gBAAgB,GAAG/B,UAAH,GAAgB6B,KAAlC,CAAX;AACA;AACD,GARQ,EAQN,CAAE3B,KAAF,EAASN,KAAT,CARM,CAAT;AAUA,QAAMoC,eAAe,GAAGhD,WAAW,CAClCP,QAAQ,CAAIwD,UAAF,IAAkB;AAC3B,UAAMC,KAAK,GAAGT,aAAa,CAAE5B,QAAF,CAA3B;AACA,UAAMsC,mBAAmB,GAAGD,KAAK,CAACE,SAAN,CACzBC,CAAF,IAASA,CAAC,KAAKJ,UADY,CAA5B;AAIA,UAAMK,KAAK,GACVH,mBAAmB,KAAK,CAAC,CAAzB,GACGD,KAAK,CAACK,MAAN,GAAe,CADlB,GAEGJ,mBAHJ;AAKA,UAAMK,aAAa,GAAGjE,WAAW,CAAE,aAAF,CAAjC;AAEAmD,IAAAA,WAAW,CAAEc,aAAF,EAAiBF,KAAjB,EAAwBzC,QAAxB,CAAX;AACA+B,IAAAA,WAAW,CAAEY,aAAa,CAAC3C,QAAhB,CAAX;AACA,GAfO,EAeL,GAfK,CAD0B,EAiBlC,EAjBkC,CAAnC;AAoBA,QAAM4C,oBAAoB,GAAG1D,MAAM,CAAE,MACpC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGK,MAAM,CAACsD;AAArB,KACC,cAAC,WAAD,CAAa,mBAAb;AACC,IAAA,UAAU,EAAG,IADd;AAEC,IAAA,UAAU,EAAGV;AAFd,IADD,CADkC,CAAnC;AASA,QAAMW,eAAe,GAAG,CAAE,MAAF,EAAU,QAAV,EAAoB,OAApB,CAAxB;AAEA,QAAMC,MAAM,GAAG5D,WAAW,CAAE,MAAM2C,WAAW,CAAE9B,QAAF,CAAnB,EAAiC,CAAEA,QAAF,CAAjC,CAA1B;AACA,QAAMgD,0BAA0B,GAAG/C,UAAU,IAAIc,qBAAjD;AACA,SACC,8BACGd,UAAU,IACX,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,qBAAD;AACC,IAAA,eAAe,EAAG6C,eADnB;AAEC,IAAA,KAAK,EAAGhC,cAFT;AAGC,IAAA,QAAQ,EAAKa,KAAF,IACVzB,aAAa,CAAE;AACdJ,MAAAA,MAAM,EAAE,EACP,GAAGe,UADI;AAEPC,QAAAA,cAAc,EAAEa;AAFT;AADM,KAAF,CAJf;AAWC,IAAA,YAAY,EAAG;AACdsB,MAAAA,QAAQ,EAAE,cADI;AAEdC,MAAAA,OAAO,EAAE;AAFK;AAXhB,IADD,CAFF,EAqBG9C,cArBH,EAsBC,cAAC,WAAD;AACC,IAAA,aAAa,EAAGZ,cADjB;AAEC,IAAA,QAAQ,EAAG,CACV,CACCF,eADD,EAEC;AACC6D,MAAAA,SAAS,EACR5B,cAAc,IACb,YAAYA,cAAgB;AAH/B,KAFD,CADU,CAFZ;AAYC,IAAA,oBAAoB,EACnByB,0BAA0B,IAAIJ,oBAAoB,CAACQ,OAbrD;AAeC,IAAA,WAAW,EAAC,YAfb;AAgBC,IAAA,mBAAmB,EAAGtC,cAhBvB;AAiBC,IAAA,aAAa,EAAGE,YAAY,GAAG+B,MAAH,GAAYM,SAjBzC;AAkBC,IAAA,UAAU,EAAGlB,eAlBd;AAmBC,IAAA,WAAW,EAAG7B,QAnBf,CAmB0B;AAnB1B;AAoBC,IAAA,gBAAgB,EAAGG,OApBpB;AAqBC,IAAA,cAAc,EAAGA,OArBlB;AAsBC,IAAA,oBAAoB,EAAGhB,UAtBxB;AAuBC,IAAA,8BAA8B,MAvB/B;AAwBC,IAAA,UAAU,EAAGU;AAxBd,IAtBD,CADD;AAmDA","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tJustifyContentControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { createBlock, getBlockSupport } from '@wordpress/blocks';\nimport { debounce, useResizeObserver } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useEffect, useRef, useCallback } from '@wordpress/element';\nimport { alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { name as buttonBlockName } from '../button/';\nimport styles from './editor.scss';\n\nconst ALLOWED_BLOCKS = [ buttonBlockName ];\n\nconst layoutProp = { type: 'default', alignments: [] };\n\nexport default function ButtonsEdit( {\n\tattributes: { layout, align },\n\tclientId,\n\tisSelected,\n\tsetAttributes,\n\tblockWidth,\n\tname,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ maxWidth, setMaxWidth ] = useState( 0 );\n\tconst { marginLeft: spacing } = styles.spacing;\n\n\t// Extract attributes from block layout\n\tconst layoutBlockSupport = getBlockSupport( name, '__experimentalLayout' );\n\tconst defaultBlockLayout = layoutBlockSupport?.default;\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst { justifyContent } = usedLayout;\n\n\tconst { isInnerButtonSelected, shouldDelete } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockCount, getBlockParents, getSelectedBlockClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst selectedBlockParents = getBlockParents(\n\t\t\t\tselectedBlockClientId,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tisInnerButtonSelected: selectedBlockParents[ 0 ] === clientId,\n\t\t\t\t// The purpose of `shouldDelete` check is giving the ability to\n\t\t\t\t// pass to mobile toolbar function called `onDelete` which removes\n\t\t\t\t// the whole `Buttons` container along with the last inner button\n\t\t\t\t// when there is exactly one button.\n\t\t\t\tshouldDelete: getBlockCount( clientId ) === 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst preferredStyle = useSelect( ( select ) => {\n\t\tconst preferredStyleVariations =\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalPreferredStyleVariations;\n\t\treturn preferredStyleVariations?.value?.[ buttonBlockName ];\n\t}, [] );\n\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tconst { width } = sizes || {};\n\t\tconst { isFullWidth } = alignmentHelpers;\n\n\t\tif ( width ) {\n\t\t\tconst isFullWidthBlock = isFullWidth( align );\n\t\t\tsetMaxWidth( isFullWidthBlock ? blockWidth : width );\n\t\t}\n\t}, [ sizes, align ] );\n\n\tconst onAddNextButton = useCallback(\n\t\tdebounce( ( selectedId ) => {\n\t\t\tconst order = getBlockOrder( clientId );\n\t\t\tconst selectedButtonIndex = order.findIndex(\n\t\t\t\t( i ) => i === selectedId\n\t\t\t);\n\n\t\t\tconst index =\n\t\t\t\tselectedButtonIndex === -1\n\t\t\t\t\t? order.length + 1\n\t\t\t\t\t: selectedButtonIndex;\n\n\t\t\tconst insertedBlock = createBlock( 'core/button' );\n\n\t\t\tinsertBlock( insertedBlock, index, clientId );\n\t\t\tselectBlock( insertedBlock.clientId );\n\t\t}, 200 ),\n\t\t[]\n\t);\n\n\tconst renderFooterAppender = useRef( () => (\n\t\t<View style={ styles.appenderContainer }>\n\t\t\t<InnerBlocks.ButtonBlockAppender\n\t\t\t\tisFloating={ true }\n\t\t\t\tonAddBlock={ onAddNextButton }\n\t\t\t/>\n\t\t</View>\n\t) );\n\n\tconst justifyControls = [ 'left', 'center', 'right' ];\n\n\tconst remove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\tconst shouldRenderFooterAppender = isSelected || isInnerButtonSelected;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<JustifyContentControl\n\t\t\t\t\t\tallowedControls={ justifyControls }\n\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t...usedLayout,\n\t\t\t\t\t\t\t\t\tjustifyContent: value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tposition: 'bottom right',\n\t\t\t\t\t\t\tvariant: 'toolbar',\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ resizeObserver }\n\t\t\t<InnerBlocks\n\t\t\t\tallowedBlocks={ ALLOWED_BLOCKS }\n\t\t\t\ttemplate={ [\n\t\t\t\t\t[\n\t\t\t\t\t\tbuttonBlockName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\tpreferredStyle &&\n\t\t\t\t\t\t\t\t`is-style-${ preferredStyle }`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t] }\n\t\t\t\trenderFooterAppender={\n\t\t\t\t\tshouldRenderFooterAppender && renderFooterAppender.current\n\t\t\t\t}\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\thorizontalAlignment={ justifyContent }\n\t\t\t\tonDeleteBlock={ shouldDelete ? remove : undefined }\n\t\t\t\tonAddBlock={ onAddNextButton }\n\t\t\t\tparentWidth={ maxWidth } // This value controls the width of that the buttons are able to expand to.\n\t\t\t\tmarginHorizontal={ spacing }\n\t\t\t\tmarginVertical={ spacing }\n\t\t\t\t__experimentalLayout={ layoutProp }\n\t\t\t\ttemplateInsertUpdatesSelection\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
@@ -18,9 +18,13 @@ const metadata = {
18
18
  textdomain: "default",
19
19
  usesContext: ["postId"],
20
20
  supports: {
21
- reusable: false,
22
- html: false,
23
21
  align: true,
22
+ html: false,
23
+ reusable: false,
24
+ spacing: {
25
+ margin: true,
26
+ padding: true
27
+ },
24
28
  typography: {
25
29
  fontSize: true,
26
30
  lineHeight: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/comment-template/index.js"],"names":["layout","icon","initBlock","edit","save","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAnB,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBN,EAAAA,IADuB;AAEvBE,EAAAA,IAFuB;AAGvBC,EAAAA;AAHuB,CAAjB;AAMP,OAAO,MAAMI,IAAI,GAAG,MAAMN,SAAS,CAAE;AAAEG,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { layout as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/comment-template/index.js"],"names":["layout","icon","initBlock","edit","save","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAnB,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBN,EAAAA,IADuB;AAEvBE,EAAAA,IAFuB;AAGvBC,EAAAA;AAHuB,CAAjB;AAMP,OAAO,MAAMI,IAAI,GAAG,MAAMN,SAAS,CAAE;AAAEG,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { layout as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -5,7 +5,7 @@ import { createElement } from "@wordpress/element";
5
5
  * WordPress dependencies
6
6
  */
7
7
  import { Fragment, useMemo } from '@wordpress/element';
8
- import { BaseControl, Button, ExternalLink, FocalPointPicker, PanelBody, PanelRow, RangeControl, TextareaControl, ToggleControl, __experimentalUseCustomUnits as useCustomUnits, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUnitControl as UnitControl, __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue } from '@wordpress/components';
8
+ import { Button, ExternalLink, FocalPointPicker, PanelBody, PanelRow, RangeControl, TextareaControl, ToggleControl, __experimentalUseCustomUnits as useCustomUnits, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUnitControl as UnitControl, __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue } from '@wordpress/components';
9
9
  import { useInstanceId } from '@wordpress/compose';
10
10
  import { InspectorControls, useSetting, __experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown, __experimentalUseGradient, __experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients } from '@wordpress/block-editor';
11
11
  import { __ } from '@wordpress/i18n';
@@ -52,21 +52,17 @@ function CoverHeightInput(_ref) {
52
52
  return [parsedQuantity, unit].join('');
53
53
  }, [unit, value]);
54
54
  const min = isPx ? COVER_MIN_HEIGHT : 0;
55
- return createElement(BaseControl, {
55
+ return createElement(UnitControl, {
56
56
  label: __('Minimum height of cover'),
57
- id: inputId
58
- }, createElement(UnitControl, {
59
57
  id: inputId,
60
58
  isResetValueOnUnitChange: true,
61
59
  min: min,
62
60
  onChange: handleOnChange,
63
61
  onUnitChange: onUnitChange,
64
- style: {
65
- maxWidth: 80
66
- },
62
+ __unstableInputWidth: '80px',
67
63
  units: units,
68
64
  value: computedValue
69
- }));
65
+ });
70
66
  }
71
67
 
72
68
  export default function CoverInspectorControls(_ref2) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/edit/inspector-controls.js"],"names":["Fragment","useMemo","BaseControl","Button","ExternalLink","FocalPointPicker","PanelBody","PanelRow","RangeControl","TextareaControl","ToggleControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useInstanceId","InspectorControls","useSetting","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseGradient","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","__","COVER_MIN_HEIGHT","mediaPosition","CoverHeightInput","onChange","onUnitChange","unit","value","instanceId","inputId","isPx","units","availableUnits","defaultValues","px","em","rem","vw","vh","handleOnChange","unprocessedValue","inputValue","parseFloat","undefined","isNaN","computedValue","parsedQuantity","join","min","maxWidth","CoverInspectorControls","attributes","setAttributes","clientId","setOverlayColor","coverRef","currentSettings","useFeaturedImage","dimRatio","focalPoint","hasParallax","isRepeated","minHeight","minHeightUnit","alt","isVideoBackground","isImageBackground","mediaElement","url","isImgElement","overlayColor","gradientValue","setGradient","toggleParallax","toggleIsRepeated","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","current","style","colorGradientSettings","newFocalPoint","newAlt","id","backgroundType","colorValue","color","label","onColorChange","onGradientChange","isShownByDefault","resetAllFilter","customOverlayColor","gradient","customGradient","newDimRation","newMinHeight","nextUnit"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Fragment, useMemo } from '@wordpress/element';\nimport {\n\tBaseControl,\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseSetting,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseGradient,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { COVER_MIN_HEIGHT, mediaPosition } from '../shared';\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: 430, '%': 20, em: 20, rem: 20, vw: 20, vh: 50 },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\treturn;\n\t\t}\n\t\tonChange( inputValue );\n\t};\n\n\tconst computedValue = useMemo( () => {\n\t\tconst [ parsedQuantity ] = parseQuantityAndUnitFromRawValue( value );\n\t\treturn [ parsedQuantity, unit ].join( '' );\n\t}, [ unit, value ] );\n\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<BaseControl label={ __( 'Minimum height of cover' ) } id={ inputId }>\n\t\t\t<UnitControl\n\t\t\t\tid={ inputId }\n\t\t\t\tisResetValueOnUnitChange\n\t\t\t\tmin={ min }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tonUnitChange={ onUnitChange }\n\t\t\t\tstyle={ { maxWidth: 80 } }\n\t\t\t\tunits={ units }\n\t\t\t\tvalue={ computedValue }\n\t\t\t/>\n\t\t</BaseControl>\n\t);\n}\nexport default function CoverInspectorControls( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tsetOverlayColor,\n\tcoverRef,\n\tcurrentSettings,\n} ) {\n\tconst {\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t} = attributes;\n\tconst {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t} = currentSettings;\n\n\tconst { gradientValue, setGradient } = __experimentalUseGradient();\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = mediaElement.current\n\t\t\t? [ mediaElement.current.style, 'objectPosition' ]\n\t\t\t: [ coverRef.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Media settings' ) }>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\t\t\turl &&\n\t\t\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t\t\tisImgElement && (\n\t\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Alt text (alternative text)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\turl: undefined,\n\t\t\t\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\t\t\t\tbackgroundType: undefined,\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\thasParallax: undefined,\n\t\t\t\t\t\t\t\t\t\tisRepeated: undefined,\n\t\t\t\t\t\t\t\t\t\tuseFeaturedImage: false,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"color\">\n\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tlabel: __( 'Overlay' ),\n\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\tresetAllFilter: () => ( {\n\t\t\t\t\t\t\t\toverlayColor: undefined,\n\t\t\t\t\t\t\t\tcustomOverlayColor: undefined,\n\t\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\t\tcustomGradient: undefined,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t/>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t// If there's a media background the dimRatio will be\n\t\t\t\t\t\t// defaulted to 50 whereas it will be 100 for colors.\n\t\t\t\t\t\treturn dimRatio === undefined\n\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t: dimRatio !== ( url ? 50 : 100 );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { dimRatio: url ? 50 : 100 } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tdimRatio: url ? 50 : 100,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ ( newDimRation ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdimRatio: newDimRation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={ minHeight }\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\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</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/edit/inspector-controls.js"],"names":["Fragment","useMemo","Button","ExternalLink","FocalPointPicker","PanelBody","PanelRow","RangeControl","TextareaControl","ToggleControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useInstanceId","InspectorControls","useSetting","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseGradient","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","__","COVER_MIN_HEIGHT","mediaPosition","CoverHeightInput","onChange","onUnitChange","unit","value","instanceId","inputId","isPx","units","availableUnits","defaultValues","px","em","rem","vw","vh","handleOnChange","unprocessedValue","inputValue","parseFloat","undefined","isNaN","computedValue","parsedQuantity","join","min","CoverInspectorControls","attributes","setAttributes","clientId","setOverlayColor","coverRef","currentSettings","useFeaturedImage","dimRatio","focalPoint","hasParallax","isRepeated","minHeight","minHeightUnit","alt","isVideoBackground","isImageBackground","mediaElement","url","isImgElement","overlayColor","gradientValue","setGradient","toggleParallax","toggleIsRepeated","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","current","style","colorGradientSettings","newFocalPoint","newAlt","id","backgroundType","colorValue","color","label","onColorChange","onGradientChange","isShownByDefault","resetAllFilter","customOverlayColor","gradient","customGradient","newDimRation","newMinHeight","nextUnit"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Fragment, useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseSetting,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseGradient,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { COVER_MIN_HEIGHT, mediaPosition } from '../shared';\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: 430, '%': 20, em: 20, rem: 20, vw: 20, vh: 50 },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\treturn;\n\t\t}\n\t\tonChange( inputValue );\n\t};\n\n\tconst computedValue = useMemo( () => {\n\t\tconst [ parsedQuantity ] = parseQuantityAndUnitFromRawValue( value );\n\t\treturn [ parsedQuantity, unit ].join( '' );\n\t}, [ unit, value ] );\n\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ __( 'Minimum height of cover' ) }\n\t\t\tid={ inputId }\n\t\t\tisResetValueOnUnitChange\n\t\t\tmin={ min }\n\t\t\tonChange={ handleOnChange }\n\t\t\tonUnitChange={ onUnitChange }\n\t\t\t__unstableInputWidth={ '80px' }\n\t\t\tunits={ units }\n\t\t\tvalue={ computedValue }\n\t\t/>\n\t);\n}\nexport default function CoverInspectorControls( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tsetOverlayColor,\n\tcoverRef,\n\tcurrentSettings,\n} ) {\n\tconst {\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t} = attributes;\n\tconst {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t} = currentSettings;\n\n\tconst { gradientValue, setGradient } = __experimentalUseGradient();\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = mediaElement.current\n\t\t\t? [ mediaElement.current.style, 'objectPosition' ]\n\t\t\t: [ coverRef.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Media settings' ) }>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\t\t\turl &&\n\t\t\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t\t\tisImgElement && (\n\t\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Alt text (alternative text)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\turl: undefined,\n\t\t\t\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\t\t\t\tbackgroundType: undefined,\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\thasParallax: undefined,\n\t\t\t\t\t\t\t\t\t\tisRepeated: undefined,\n\t\t\t\t\t\t\t\t\t\tuseFeaturedImage: false,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"color\">\n\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tlabel: __( 'Overlay' ),\n\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\tresetAllFilter: () => ( {\n\t\t\t\t\t\t\t\toverlayColor: undefined,\n\t\t\t\t\t\t\t\tcustomOverlayColor: undefined,\n\t\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\t\tcustomGradient: undefined,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t/>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t// If there's a media background the dimRatio will be\n\t\t\t\t\t\t// defaulted to 50 whereas it will be 100 for colors.\n\t\t\t\t\t\treturn dimRatio === undefined\n\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t: dimRatio !== ( url ? 50 : 100 );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { dimRatio: url ? 50 : 100 } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tdimRatio: url ? 50 : 100,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ ( newDimRation ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdimRatio: newDimRation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={ minHeight }\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\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</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"]}
@@ -60,14 +60,52 @@ const metadata = {
60
60
  * WordPress dependencies
61
61
  */
62
62
 
63
- import { RichText } from '@wordpress/block-editor';
63
+ import { RichText, useBlockProps } from '@wordpress/block-editor';
64
64
  const {
65
65
  attributes: blockAttributes
66
- } = metadata;
67
- const deprecated = [{
66
+ } = metadata; // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
67
+ // to the embed figcaption element.
68
+
69
+ const v2 = {
68
70
  attributes: blockAttributes,
69
71
 
70
72
  save(_ref) {
73
+ let {
74
+ attributes
75
+ } = _ref;
76
+ const {
77
+ url,
78
+ caption,
79
+ type,
80
+ providerNameSlug
81
+ } = attributes;
82
+
83
+ if (!url) {
84
+ return null;
85
+ }
86
+
87
+ const className = classnames('wp-block-embed', {
88
+ [`is-type-${type}`]: type,
89
+ [`is-provider-${providerNameSlug}`]: providerNameSlug,
90
+ [`wp-block-embed-${providerNameSlug}`]: providerNameSlug
91
+ });
92
+ return createElement("figure", useBlockProps.save({
93
+ className
94
+ }), createElement("div", {
95
+ className: "wp-block-embed__wrapper"
96
+ }, `\n${url}\n`
97
+ /* URL needs to be on its own line. */
98
+ ), !RichText.isEmpty(caption) && createElement(RichText.Content, {
99
+ tagName: "figcaption",
100
+ value: caption
101
+ }));
102
+ }
103
+
104
+ };
105
+ const v1 = {
106
+ attributes: blockAttributes,
107
+
108
+ save(_ref2) {
71
109
  let {
72
110
  attributes: {
73
111
  url,
@@ -75,7 +113,7 @@ const deprecated = [{
75
113
  type,
76
114
  providerNameSlug
77
115
  }
78
- } = _ref;
116
+ } = _ref2;
79
117
 
80
118
  if (!url) {
81
119
  return null;
@@ -95,6 +133,7 @@ const deprecated = [{
95
133
  }));
96
134
  }
97
135
 
98
- }];
136
+ };
137
+ const deprecated = [v2, v1];
99
138
  export default deprecated;
100
139
  //# sourceMappingURL=deprecated.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/deprecated.js"],"names":["classnames","RichText","attributes","blockAttributes","metadata","deprecated","save","url","caption","type","providerNameSlug","embedClassName","isEmpty"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,yBAAzB;AAEA,MAAM;AAAEC,EAAAA,UAAU,EAAEC;AAAd,IAAkCC,QAAxC;AAEA,MAAMC,UAAU,GAAG,CAClB;AACCH,EAAAA,UAAU,EAAEC,eADb;;AAECG,EAAAA,IAAI,OAA6D;AAAA,QAA3D;AAAEJ,MAAAA,UAAU,EAAE;AAAEK,QAAAA,GAAF;AAAOC,QAAAA,OAAP;AAAgBC,QAAAA,IAAhB;AAAsBC,QAAAA;AAAtB;AAAd,KAA2D;;AAChE,QAAK,CAAEH,GAAP,EAAa;AACZ,aAAO,IAAP;AACA;;AAED,UAAMI,cAAc,GAAGX,UAAU,CAAE,gBAAF,EAAoB;AACpD,OAAG,WAAWS,IAAM,EAApB,GAAyBA,IAD2B;AAEpD,OAAG,eAAeC,gBAAkB,EAApC,GAAyCA;AAFW,KAApB,CAAjC;AAKA,WACC;AAAQ,MAAA,SAAS,EAAGC;AAApB,OACI,KAAKJ,GAAK;AAAI;AADlB,MAEG,CAAEN,QAAQ,CAACW,OAAT,CAAkBJ,OAAlB,CAAF,IACD,cAAC,QAAD,CAAU,OAAV;AACC,MAAA,OAAO,EAAC,YADT;AAEC,MAAA,KAAK,EAAGA;AAFT,MAHF,CADD;AAWA;;AAvBF,CADkB,CAAnB;AA4BA,eAAeH,UAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\n/**\n * WordPress dependencies\n */\nimport { RichText } from '@wordpress/block-editor';\n\nconst { attributes: blockAttributes } = metadata;\n\nconst deprecated = [\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes: { url, caption, type, providerNameSlug } } ) {\n\t\t\tif ( ! url ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst embedClassName = classnames( 'wp-block-embed', {\n\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<figure className={ embedClassName }>\n\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/deprecated.js"],"names":["classnames","RichText","useBlockProps","attributes","blockAttributes","metadata","v2","save","url","caption","type","providerNameSlug","className","isEmpty","v1","embedClassName","deprecated"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,aAAnB,QAAwC,yBAAxC;AAEA,MAAM;AAAEC,EAAAA,UAAU,EAAEC;AAAd,IAAkCC,QAAxC,C,CAEA;AACA;;AACA,MAAMC,EAAE,GAAG;AACVH,EAAAA,UAAU,EAAEC,eADF;;AAEVG,EAAAA,IAAI,OAAmB;AAAA,QAAjB;AAAEJ,MAAAA;AAAF,KAAiB;AACtB,UAAM;AAAEK,MAAAA,GAAF;AAAOC,MAAAA,OAAP;AAAgBC,MAAAA,IAAhB;AAAsBC,MAAAA;AAAtB,QAA2CR,UAAjD;;AAEA,QAAK,CAAEK,GAAP,EAAa;AACZ,aAAO,IAAP;AACA;;AAED,UAAMI,SAAS,GAAGZ,UAAU,CAAE,gBAAF,EAAoB;AAC/C,OAAG,WAAWU,IAAM,EAApB,GAAyBA,IADsB;AAE/C,OAAG,eAAeC,gBAAkB,EAApC,GAAyCA,gBAFM;AAG/C,OAAG,kBAAkBA,gBAAkB,EAAvC,GAA4CA;AAHG,KAApB,CAA5B;AAMA,WACC,wBAAaT,aAAa,CAACK,IAAd,CAAoB;AAAEK,MAAAA;AAAF,KAApB,CAAb,EACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACI,KAAKJ,GAAK;AAAI;AADlB,KADD,EAIG,CAAEP,QAAQ,CAACY,OAAT,CAAkBJ,OAAlB,CAAF,IACD,cAAC,QAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MALF,CADD;AAUA;;AAzBS,CAAX;AA4BA,MAAMK,EAAE,GAAG;AACVX,EAAAA,UAAU,EAAEC,eADF;;AAEVG,EAAAA,IAAI,QAA6D;AAAA,QAA3D;AAAEJ,MAAAA,UAAU,EAAE;AAAEK,QAAAA,GAAF;AAAOC,QAAAA,OAAP;AAAgBC,QAAAA,IAAhB;AAAsBC,QAAAA;AAAtB;AAAd,KAA2D;;AAChE,QAAK,CAAEH,GAAP,EAAa;AACZ,aAAO,IAAP;AACA;;AAED,UAAMO,cAAc,GAAGf,UAAU,CAAE,gBAAF,EAAoB;AACpD,OAAG,WAAWU,IAAM,EAApB,GAAyBA,IAD2B;AAEpD,OAAG,eAAeC,gBAAkB,EAApC,GAAyCA;AAFW,KAApB,CAAjC;AAKA,WACC;AAAQ,MAAA,SAAS,EAAGI;AAApB,OACI,KAAKP,GAAK;AAAI;AADlB,MAEG,CAAEP,QAAQ,CAACY,OAAT,CAAkBJ,OAAlB,CAAF,IACD,cAAC,QAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MAHF,CADD;AAQA;;AApBS,CAAX;AAuBA,MAAMO,UAAU,GAAG,CAAEV,EAAF,EAAMQ,EAAN,CAAnB;AAEA,eAAeE,UAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nconst { attributes: blockAttributes } = metadata;\n\n// In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname\n// to the embed figcaption element.\nconst v2 = {\n\tattributes: blockAttributes,\n\tsave( { attributes } ) {\n\t\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst className = classnames( 'wp-block-embed', {\n\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]: providerNameSlug,\n\t\t} );\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t</div>\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes: { url, caption, type, providerNameSlug } } ) {\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst embedClassName = classnames( 'wp-block-embed', {\n\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t} );\n\n\t\treturn (\n\t\t\t<figure className={ embedClassName }>\n\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst deprecated = [ v2, v1 ];\n\nexport default deprecated;\n"]}