@wordpress/block-library 7.14.2 → 7.15.1-next.4d3b314fd5.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 (235) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/build/avatar/index.js +1 -1
  3. package/build/block/edit.native.js +1 -1
  4. package/build/block/edit.native.js.map +1 -1
  5. package/build/buttons/edit.native.js +1 -3
  6. package/build/buttons/edit.native.js.map +1 -1
  7. package/build/calendar/index.js +9 -0
  8. package/build/calendar/index.js.map +1 -1
  9. package/build/code/index.js +1 -1
  10. package/build/code/index.js.map +1 -1
  11. package/build/comments/edit/comments-legacy.js +1 -1
  12. package/build/comments/edit/comments-legacy.js.map +1 -1
  13. package/build/comments-pagination-next/index.js +1 -1
  14. package/build/comments-pagination-numbers/index.js +8 -1
  15. package/build/comments-pagination-numbers/index.js.map +1 -1
  16. package/build/comments-pagination-previous/index.js +1 -1
  17. package/build/comments-title/edit.js +1 -1
  18. package/build/comments-title/edit.js.map +1 -1
  19. package/build/cover/edit/use-cover-is-dark.js +10 -7
  20. package/build/cover/edit/use-cover-is-dark.js.map +1 -1
  21. package/build/cover/index.js +9 -2
  22. package/build/cover/index.js.map +1 -1
  23. package/build/embed/deprecated.js +12 -6
  24. package/build/embed/deprecated.js.map +1 -1
  25. package/build/embed/index.js +12 -6
  26. package/build/embed/index.js.map +1 -1
  27. package/build/embed/transforms.js +12 -6
  28. package/build/embed/transforms.js.map +1 -1
  29. package/build/embed/util.js +12 -6
  30. package/build/embed/util.js.map +1 -1
  31. package/build/embed/variations.js +1 -1
  32. package/build/embed/variations.js.map +1 -1
  33. package/build/freeform/edit.js +5 -8
  34. package/build/freeform/edit.js.map +1 -1
  35. package/build/gallery/deprecated.js +4 -4
  36. package/build/gallery/deprecated.js.map +1 -1
  37. package/build/gallery/gallery.js +2 -28
  38. package/build/gallery/gallery.js.map +1 -1
  39. package/build/list-item/edit.js +2 -1
  40. package/build/list-item/edit.js.map +1 -1
  41. package/build/missing/edit.js +9 -2
  42. package/build/missing/edit.js.map +1 -1
  43. package/build/more/edit.js +1 -1
  44. package/build/more/edit.js.map +1 -1
  45. package/build/navigation/menu-items-to-blocks.js +16 -6
  46. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  47. package/build/paragraph/drop-zone.js +99 -0
  48. package/build/paragraph/drop-zone.js.map +1 -0
  49. package/build/paragraph/edit.js +11 -3
  50. package/build/paragraph/edit.js.map +1 -1
  51. package/build/post-content/edit.js +6 -1
  52. package/build/post-content/edit.js.map +1 -1
  53. package/build/post-excerpt/edit.js +1 -1
  54. package/build/post-excerpt/edit.js.map +1 -1
  55. package/build/post-navigation-link/edit.js +35 -4
  56. package/build/post-navigation-link/edit.js.map +1 -1
  57. package/build/post-navigation-link/index.js +6 -1
  58. package/build/post-navigation-link/index.js.map +1 -1
  59. package/build/post-template/edit.js +13 -28
  60. package/build/post-template/edit.js.map +1 -1
  61. package/build/query/edit/inspector-controls/index.js +4 -8
  62. package/build/query/edit/inspector-controls/index.js.map +1 -1
  63. package/build/query/edit/inspector-controls/sticky-control.js +1 -1
  64. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
  65. package/build/query/edit/query-placeholder.js +2 -2
  66. package/build/query/edit/query-placeholder.js.map +1 -1
  67. package/build/query-title/edit.js +1 -1
  68. package/build/query-title/edit.js.map +1 -1
  69. package/build/quote/transforms.js +2 -2
  70. package/build/quote/transforms.js.map +1 -1
  71. package/build/read-more/edit.js +1 -1
  72. package/build/read-more/edit.js.map +1 -1
  73. package/build/site-tagline/index.js +1 -1
  74. package/build/social-links/edit.native.js +1 -0
  75. package/build/social-links/edit.native.js.map +1 -1
  76. package/build/template-part/edit/index.js +2 -2
  77. package/build/template-part/edit/index.js.map +1 -1
  78. package/build-module/avatar/index.js +1 -1
  79. package/build-module/block/edit.native.js +1 -1
  80. package/build-module/block/edit.native.js.map +1 -1
  81. package/build-module/buttons/edit.native.js +1 -2
  82. package/build-module/buttons/edit.native.js.map +1 -1
  83. package/build-module/calendar/index.js +9 -0
  84. package/build-module/calendar/index.js.map +1 -1
  85. package/build-module/code/index.js +1 -1
  86. package/build-module/code/index.js.map +1 -1
  87. package/build-module/comments/edit/comments-legacy.js +1 -1
  88. package/build-module/comments/edit/comments-legacy.js.map +1 -1
  89. package/build-module/comments-pagination-next/index.js +1 -1
  90. package/build-module/comments-pagination-numbers/index.js +8 -1
  91. package/build-module/comments-pagination-numbers/index.js.map +1 -1
  92. package/build-module/comments-pagination-previous/index.js +1 -1
  93. package/build-module/comments-title/edit.js +1 -1
  94. package/build-module/comments-title/edit.js.map +1 -1
  95. package/build-module/cover/edit/use-cover-is-dark.js +9 -4
  96. package/build-module/cover/edit/use-cover-is-dark.js.map +1 -1
  97. package/build-module/cover/index.js +9 -2
  98. package/build-module/cover/index.js.map +1 -1
  99. package/build-module/embed/deprecated.js +12 -6
  100. package/build-module/embed/deprecated.js.map +1 -1
  101. package/build-module/embed/index.js +12 -6
  102. package/build-module/embed/index.js.map +1 -1
  103. package/build-module/embed/transforms.js +12 -6
  104. package/build-module/embed/transforms.js.map +1 -1
  105. package/build-module/embed/util.js +12 -6
  106. package/build-module/embed/util.js.map +1 -1
  107. package/build-module/embed/variations.js +1 -1
  108. package/build-module/embed/variations.js.map +1 -1
  109. package/build-module/freeform/edit.js +3 -6
  110. package/build-module/freeform/edit.js.map +1 -1
  111. package/build-module/gallery/deprecated.js +4 -4
  112. package/build-module/gallery/deprecated.js.map +1 -1
  113. package/build-module/gallery/gallery.js +2 -29
  114. package/build-module/gallery/gallery.js.map +1 -1
  115. package/build-module/list-item/edit.js +2 -1
  116. package/build-module/list-item/edit.js.map +1 -1
  117. package/build-module/missing/edit.js +11 -4
  118. package/build-module/missing/edit.js.map +1 -1
  119. package/build-module/more/edit.js +1 -1
  120. package/build-module/more/edit.js.map +1 -1
  121. package/build-module/navigation/menu-items-to-blocks.js +16 -6
  122. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  123. package/build-module/paragraph/drop-zone.js +88 -0
  124. package/build-module/paragraph/drop-zone.js.map +1 -0
  125. package/build-module/paragraph/edit.js +10 -3
  126. package/build-module/paragraph/edit.js.map +1 -1
  127. package/build-module/post-content/edit.js +6 -1
  128. package/build-module/post-content/edit.js.map +1 -1
  129. package/build-module/post-excerpt/edit.js +1 -1
  130. package/build-module/post-excerpt/edit.js.map +1 -1
  131. package/build-module/post-navigation-link/edit.js +37 -6
  132. package/build-module/post-navigation-link/edit.js.map +1 -1
  133. package/build-module/post-navigation-link/index.js +6 -1
  134. package/build-module/post-navigation-link/index.js.map +1 -1
  135. package/build-module/post-template/edit.js +14 -29
  136. package/build-module/post-template/edit.js.map +1 -1
  137. package/build-module/query/edit/inspector-controls/index.js +2 -6
  138. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  139. package/build-module/query/edit/inspector-controls/sticky-control.js +1 -1
  140. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
  141. package/build-module/query/edit/query-placeholder.js +2 -2
  142. package/build-module/query/edit/query-placeholder.js.map +1 -1
  143. package/build-module/query-title/edit.js +1 -1
  144. package/build-module/query-title/edit.js.map +1 -1
  145. package/build-module/quote/transforms.js +2 -2
  146. package/build-module/quote/transforms.js.map +1 -1
  147. package/build-module/read-more/edit.js +1 -1
  148. package/build-module/read-more/edit.js.map +1 -1
  149. package/build-module/site-tagline/index.js +1 -1
  150. package/build-module/social-links/edit.native.js +1 -0
  151. package/build-module/social-links/edit.native.js.map +1 -1
  152. package/build-module/template-part/edit/index.js +3 -3
  153. package/build-module/template-part/edit/index.js.map +1 -1
  154. package/build-style/calendar/style-rtl.css +21 -12
  155. package/build-style/calendar/style.css +21 -12
  156. package/build-style/classic-rtl.css +85 -0
  157. package/build-style/classic.css +85 -0
  158. package/build-style/editor-rtl.css +41 -2
  159. package/build-style/editor.css +41 -2
  160. package/build-style/group/editor-rtl.css +11 -1
  161. package/build-style/group/editor.css +11 -1
  162. package/build-style/image/editor-rtl.css +3 -0
  163. package/build-style/image/editor.css +3 -0
  164. package/build-style/navigation/editor-rtl.css +11 -1
  165. package/build-style/navigation/editor.css +11 -1
  166. package/build-style/paragraph/editor-rtl.css +16 -0
  167. package/build-style/paragraph/editor.css +16 -0
  168. package/build-style/post-navigation-link/style-rtl.css +90 -0
  169. package/build-style/post-navigation-link/style.css +90 -0
  170. package/build-style/style-rtl.css +36 -12
  171. package/build-style/style.css +36 -12
  172. package/package.json +29 -29
  173. package/src/archives/index.php +4 -7
  174. package/src/avatar/block.json +1 -1
  175. package/src/block/edit.native.js +1 -1
  176. package/src/buttons/edit.native.js +1 -2
  177. package/src/buttons/test/__snapshots__/edit.native.js.snap +28 -0
  178. package/src/buttons/test/edit.native.js +170 -0
  179. package/src/calendar/block.json +9 -0
  180. package/src/calendar/index.php +22 -1
  181. package/src/calendar/style.scss +28 -15
  182. package/src/classic.scss +15 -0
  183. package/src/code/index.js +1 -1
  184. package/src/columns/test/__snapshots__/edit.native.js.snap +219 -0
  185. package/src/columns/test/edit.native.js +432 -0
  186. package/src/comment-template/index.php +18 -8
  187. package/src/comments/edit/comments-legacy.js +1 -1
  188. package/src/comments-pagination-next/block.json +1 -1
  189. package/src/comments-pagination-numbers/block.json +8 -1
  190. package/src/comments-pagination-previous/block.json +1 -1
  191. package/src/comments-title/edit.js +1 -1
  192. package/src/cover/edit/use-cover-is-dark.js +11 -7
  193. package/src/cover/index.js +8 -1
  194. package/src/cover/test/__snapshots__/edit.native.js.snap +64 -0
  195. package/src/cover/test/edit.native.js +136 -4
  196. package/src/embed/block.json +12 -6
  197. package/src/embed/test/index.native.js +1 -2
  198. package/src/embed/variations.js +1 -1
  199. package/src/freeform/edit.js +12 -10
  200. package/src/gallery/deprecated.js +4 -4
  201. package/src/gallery/gallery.js +1 -31
  202. package/src/group/test/__snapshots__/edit.native.js.snap +19 -0
  203. package/src/group/test/edit.native.js +102 -0
  204. package/src/image/editor.scss +4 -0
  205. package/src/list-item/edit.js +1 -0
  206. package/src/missing/edit.js +15 -4
  207. package/src/more/edit.js +1 -1
  208. package/src/navigation/menu-items-to-blocks.js +39 -22
  209. package/src/navigation/test/menu-items-to-blocks.js +6 -0
  210. package/src/navigation-submenu/index.php +11 -2
  211. package/src/page-list/index.php +1 -1
  212. package/src/paragraph/drop-zone.js +105 -0
  213. package/src/paragraph/edit.js +14 -1
  214. package/src/paragraph/editor.scss +20 -0
  215. package/src/post-content/edit.js +3 -1
  216. package/src/post-excerpt/edit.js +1 -1
  217. package/src/post-featured-image/index.php +11 -18
  218. package/src/post-navigation-link/block.json +6 -1
  219. package/src/post-navigation-link/edit.js +64 -3
  220. package/src/post-navigation-link/index.php +23 -0
  221. package/src/post-navigation-link/style.scss +23 -0
  222. package/src/post-template/edit.js +14 -23
  223. package/src/query/edit/inspector-controls/index.js +2 -6
  224. package/src/query/edit/inspector-controls/sticky-control.js +1 -1
  225. package/src/query/edit/query-placeholder.js +4 -1
  226. package/src/query-title/edit.js +1 -1
  227. package/src/quote/transforms.js +1 -1
  228. package/src/read-more/edit.js +1 -1
  229. package/src/site-tagline/block.json +1 -1
  230. package/src/social-links/edit.native.js +7 -1
  231. package/src/social-links/test/__snapshots__/edit.native.js.snap +57 -0
  232. package/src/social-links/test/edit.native.js +199 -0
  233. package/src/style.scss +1 -0
  234. package/src/tag-cloud/index.php +1 -8
  235. package/src/template-part/edit/index.js +60 -58
@@ -11,7 +11,6 @@ import classnames from 'classnames';
11
11
 
12
12
  import { RichText, useInnerBlocksProps, __experimentalGetElementClassName } from '@wordpress/block-editor';
13
13
  import { VisuallyHidden } from '@wordpress/components';
14
- import { useState, useEffect } from '@wordpress/element';
15
14
  import { __ } from '@wordpress/i18n';
16
15
  import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
17
16
  import { View } from '@wordpress/primitives';
@@ -43,25 +42,6 @@ export const Gallery = props => {
43
42
  alignments: []
44
43
  }
45
44
  });
46
- const [captionFocused, setCaptionFocused] = useState(false);
47
-
48
- function onFocusCaption() {
49
- if (!captionFocused) {
50
- setCaptionFocused(true);
51
- }
52
- }
53
-
54
- function removeCaptionFocus() {
55
- if (captionFocused) {
56
- setCaptionFocused(false);
57
- }
58
- }
59
-
60
- useEffect(() => {
61
- if (!isSelected) {
62
- setCaptionFocused(false);
63
- }
64
- }, [isSelected]);
65
45
  return createElement("figure", _extends({}, innerBlocksProps, {
66
46
  className: classnames(blockProps.className, 'blocks-gallery-grid', {
67
47
  [`align${align}`]: align,
@@ -70,12 +50,9 @@ export const Gallery = props => {
70
50
  'is-cropped': imageCrop
71
51
  })
72
52
  }), children, isSelected && !children && createElement(View, {
73
- className: "blocks-gallery-media-placeholder-wrapper",
74
- onClick: removeCaptionFocus
53
+ className: "blocks-gallery-media-placeholder-wrapper"
75
54
  }, mediaPlaceholder), createElement(RichTextVisibilityHelper, {
76
55
  isHidden: !isSelected && RichText.isEmpty(caption),
77
- captionFocused: captionFocused,
78
- onFocusCaption: onFocusCaption,
79
56
  tagName: "figcaption",
80
57
  className: classnames('blocks-gallery-caption', __experimentalGetElementClassName('caption')),
81
58
  "aria-label": __('Gallery caption text'),
@@ -92,8 +69,6 @@ export const Gallery = props => {
92
69
  function RichTextVisibilityHelper(_ref) {
93
70
  let {
94
71
  isHidden,
95
- captionFocused,
96
- onFocusCaption,
97
72
  className,
98
73
  value,
99
74
  placeholder,
@@ -113,9 +88,7 @@ function RichTextVisibilityHelper(_ref) {
113
88
  value: value,
114
89
  placeholder: placeholder,
115
90
  className: className,
116
- tagName: tagName,
117
- isSelected: captionFocused,
118
- onClick: onFocusCaption
91
+ tagName: tagName
119
92
  }, richTextProps));
120
93
  }
121
94
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/gallery.js"],"names":["classnames","RichText","useInnerBlocksProps","__experimentalGetElementClassName","VisuallyHidden","useState","useEffect","__","createBlock","getDefaultBlockName","View","allowedBlocks","Gallery","props","attributes","isSelected","setAttributes","mediaPlaceholder","insertBlocksAfter","blockProps","align","columns","caption","imageCrop","children","innerBlocksProps","orientation","renderAppender","__experimentalLayout","type","alignments","captionFocused","setCaptionFocused","onFocusCaption","removeCaptionFocus","className","undefined","isEmpty","value","RichTextVisibilityHelper","isHidden","placeholder","tagName","captionRef","richTextProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseInnerBlocksProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { View } from '@wordpress/primitives';\n\nconst allowedBlocks = [ 'core/image' ];\n\nexport const Gallery = ( props ) => {\n\tconst {\n\t\tattributes,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tmediaPlaceholder,\n\t\tinsertBlocksAfter,\n\t\tblockProps,\n\t} = props;\n\n\tconst { align, columns, caption, imageCrop } = attributes;\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t__experimentalLayout: { type: 'default', alignments: [] },\n\t} );\n\n\tconst [ captionFocused, setCaptionFocused ] = useState( false );\n\n\tfunction onFocusCaption() {\n\t\tif ( ! captionFocused ) {\n\t\t\tsetCaptionFocused( true );\n\t\t}\n\t}\n\n\tfunction removeCaptionFocus() {\n\t\tif ( captionFocused ) {\n\t\t\tsetCaptionFocused( false );\n\t\t}\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetCaptionFocused( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\treturn (\n\t\t<figure\n\t\t\t{ ...innerBlocksProps }\n\t\t\tclassName={ classnames(\n\t\t\t\tblockProps.className,\n\t\t\t\t'blocks-gallery-grid',\n\t\t\t\t{\n\t\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t\t[ `columns-${ columns }` ]: columns !== undefined,\n\t\t\t\t\t[ `columns-default` ]: columns === undefined,\n\t\t\t\t\t'is-cropped': imageCrop,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ children }\n\t\t\t{ isSelected && ! children && (\n\t\t\t\t<View\n\t\t\t\t\tclassName=\"blocks-gallery-media-placeholder-wrapper\"\n\t\t\t\t\tonClick={ removeCaptionFocus }\n\t\t\t\t>\n\t\t\t\t\t{ mediaPlaceholder }\n\t\t\t\t</View>\n\t\t\t) }\n\t\t\t<RichTextVisibilityHelper\n\t\t\t\tisHidden={ ! isSelected && RichText.isEmpty( caption ) }\n\t\t\t\tcaptionFocused={ captionFocused }\n\t\t\t\tonFocusCaption={ onFocusCaption }\n\t\t\t\ttagName=\"figcaption\"\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'blocks-gallery-caption',\n\t\t\t\t\t__experimentalGetElementClassName( 'caption' )\n\t\t\t\t) }\n\t\t\t\taria-label={ __( 'Gallery caption text' ) }\n\t\t\t\tplaceholder={ __( 'Write gallery caption…' ) }\n\t\t\t\tvalue={ caption }\n\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\tinlineToolbar\n\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</figure>\n\t);\n};\n\nfunction RichTextVisibilityHelper( {\n\tisHidden,\n\tcaptionFocused,\n\tonFocusCaption,\n\tclassName,\n\tvalue,\n\tplaceholder,\n\ttagName,\n\tcaptionRef,\n\t...richTextProps\n} ) {\n\tif ( isHidden ) {\n\t\treturn <VisuallyHidden as={ RichText } { ...richTextProps } />;\n\t}\n\n\treturn (\n\t\t<RichText\n\t\t\tref={ captionRef }\n\t\t\tvalue={ value }\n\t\t\tplaceholder={ placeholder }\n\t\t\tclassName={ className }\n\t\t\ttagName={ tagName }\n\t\t\tisSelected={ captionFocused }\n\t\t\tonClick={ onFocusCaption }\n\t\t\t{ ...richTextProps }\n\t\t/>\n\t);\n}\n\nexport default Gallery;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/gallery.js"],"names":["classnames","RichText","useInnerBlocksProps","__experimentalGetElementClassName","VisuallyHidden","__","createBlock","getDefaultBlockName","View","allowedBlocks","Gallery","props","attributes","isSelected","setAttributes","mediaPlaceholder","insertBlocksAfter","blockProps","align","columns","caption","imageCrop","children","innerBlocksProps","orientation","renderAppender","__experimentalLayout","type","alignments","className","undefined","isEmpty","value","RichTextVisibilityHelper","isHidden","placeholder","tagName","captionRef","richTextProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseInnerBlocksProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { View } from '@wordpress/primitives';\n\nconst allowedBlocks = [ 'core/image' ];\n\nexport const Gallery = ( props ) => {\n\tconst {\n\t\tattributes,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tmediaPlaceholder,\n\t\tinsertBlocksAfter,\n\t\tblockProps,\n\t} = props;\n\n\tconst { align, columns, caption, imageCrop } = attributes;\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t__experimentalLayout: { type: 'default', alignments: [] },\n\t} );\n\n\treturn (\n\t\t<figure\n\t\t\t{ ...innerBlocksProps }\n\t\t\tclassName={ classnames(\n\t\t\t\tblockProps.className,\n\t\t\t\t'blocks-gallery-grid',\n\t\t\t\t{\n\t\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t\t[ `columns-${ columns }` ]: columns !== undefined,\n\t\t\t\t\t[ `columns-default` ]: columns === undefined,\n\t\t\t\t\t'is-cropped': imageCrop,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ children }\n\t\t\t{ isSelected && ! children && (\n\t\t\t\t<View className=\"blocks-gallery-media-placeholder-wrapper\">\n\t\t\t\t\t{ mediaPlaceholder }\n\t\t\t\t</View>\n\t\t\t) }\n\t\t\t<RichTextVisibilityHelper\n\t\t\t\tisHidden={ ! isSelected && RichText.isEmpty( caption ) }\n\t\t\t\ttagName=\"figcaption\"\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'blocks-gallery-caption',\n\t\t\t\t\t__experimentalGetElementClassName( 'caption' )\n\t\t\t\t) }\n\t\t\t\taria-label={ __( 'Gallery caption text' ) }\n\t\t\t\tplaceholder={ __( 'Write gallery caption…' ) }\n\t\t\t\tvalue={ caption }\n\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\tinlineToolbar\n\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</figure>\n\t);\n};\n\nfunction RichTextVisibilityHelper( {\n\tisHidden,\n\tclassName,\n\tvalue,\n\tplaceholder,\n\ttagName,\n\tcaptionRef,\n\t...richTextProps\n} ) {\n\tif ( isHidden ) {\n\t\treturn <VisuallyHidden as={ RichText } { ...richTextProps } />;\n\t}\n\n\treturn (\n\t\t<RichText\n\t\t\tref={ captionRef }\n\t\t\tvalue={ value }\n\t\t\tplaceholder={ placeholder }\n\t\t\tclassName={ className }\n\t\t\ttagName={ tagName }\n\t\t\t{ ...richTextProps }\n\t\t/>\n\t);\n}\n\nexport default Gallery;\n"]}
@@ -49,7 +49,8 @@ export default function ListItemEdit(_ref2) {
49
49
  ref: useCopy(clientId)
50
50
  });
51
51
  const innerBlocksProps = useInnerBlocksProps(blockProps, {
52
- allowedBlocks: ['core/list']
52
+ allowedBlocks: ['core/list'],
53
+ renderAppender: false
53
54
  });
54
55
  const useEnterRef = useEnter({
55
56
  content,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/list-item/edit.js"],"names":["RichText","useBlockProps","useInnerBlocksProps","BlockControls","isRTL","__","ToolbarButton","formatOutdent","formatOutdentRTL","formatIndentRTL","formatIndent","useMergeRefs","useEnter","useSpace","useIndentListItem","useOutdentListItem","useSplit","useMerge","useCopy","convertToListItems","IndentUI","clientId","canIndent","indentListItem","canOutdent","outdentListItem","ListItemEdit","attributes","setAttributes","onReplace","placeholder","content","blockProps","ref","innerBlocksProps","allowedBlocks","useEnterRef","useSpaceRef","onSplit","onMerge","nextContent","blocks","args","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport {\n\tformatOutdent,\n\tformatOutdentRTL,\n\tformatIndentRTL,\n\tformatIndent,\n} from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseSplit,\n\tuseMerge,\n\tuseCopy,\n} from './hooks';\nimport { convertToListItems } from './utils';\n\nexport function IndentUI( { clientId } ) {\n\tconst [ canIndent, indentListItem ] = useIndentListItem( clientId );\n\tconst [ canOutdent, outdentListItem ] = useOutdentListItem( clientId );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescribedBy={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ () => outdentListItem() }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatIndentRTL : formatIndent }\n\t\t\t\ttitle={ __( 'Indent' ) }\n\t\t\t\tdescribedBy={ __( 'Indent list item' ) }\n\t\t\t\tisDisabled={ ! canIndent }\n\t\t\t\tonClick={ () => indentListItem() }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function ListItemEdit( {\n\tattributes,\n\tsetAttributes,\n\tonReplace,\n\tclientId,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps( { ref: useCopy( clientId ) } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list' ],\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onSplit = useSplit( clientId );\n\tconst onMerge = useMerge( clientId );\n\treturn (\n\t\t<>\n\t\t\t<li { ...innerBlocksProps }>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ useMergeRefs( [ useEnterRef, useSpaceRef ] ) }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\ttagName=\"div\"\n\t\t\t\t\tonChange={ ( nextContent ) =>\n\t\t\t\t\t\tsetAttributes( { content: nextContent } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\taria-label={ __( 'List text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'List' ) }\n\t\t\t\t\tonSplit={ onSplit }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t\tonReplace={ ( blocks, ...args ) => {\n\t\t\t\t\t\tonReplace( convertToListItems( blocks ), ...args );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</li>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<IndentUI clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/list-item/edit.js"],"names":["RichText","useBlockProps","useInnerBlocksProps","BlockControls","isRTL","__","ToolbarButton","formatOutdent","formatOutdentRTL","formatIndentRTL","formatIndent","useMergeRefs","useEnter","useSpace","useIndentListItem","useOutdentListItem","useSplit","useMerge","useCopy","convertToListItems","IndentUI","clientId","canIndent","indentListItem","canOutdent","outdentListItem","ListItemEdit","attributes","setAttributes","onReplace","placeholder","content","blockProps","ref","innerBlocksProps","allowedBlocks","renderAppender","useEnterRef","useSpaceRef","onSplit","onMerge","nextContent","blocks","args","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport {\n\tformatOutdent,\n\tformatOutdentRTL,\n\tformatIndentRTL,\n\tformatIndent,\n} from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseSplit,\n\tuseMerge,\n\tuseCopy,\n} from './hooks';\nimport { convertToListItems } from './utils';\n\nexport function IndentUI( { clientId } ) {\n\tconst [ canIndent, indentListItem ] = useIndentListItem( clientId );\n\tconst [ canOutdent, outdentListItem ] = useOutdentListItem( clientId );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescribedBy={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ () => outdentListItem() }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatIndentRTL : formatIndent }\n\t\t\t\ttitle={ __( 'Indent' ) }\n\t\t\t\tdescribedBy={ __( 'Indent list item' ) }\n\t\t\t\tisDisabled={ ! canIndent }\n\t\t\t\tonClick={ () => indentListItem() }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function ListItemEdit( {\n\tattributes,\n\tsetAttributes,\n\tonReplace,\n\tclientId,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps( { ref: useCopy( clientId ) } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list' ],\n\t\trenderAppender: false,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onSplit = useSplit( clientId );\n\tconst onMerge = useMerge( clientId );\n\treturn (\n\t\t<>\n\t\t\t<li { ...innerBlocksProps }>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ useMergeRefs( [ useEnterRef, useSpaceRef ] ) }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\ttagName=\"div\"\n\t\t\t\t\tonChange={ ( nextContent ) =>\n\t\t\t\t\t\tsetAttributes( { content: nextContent } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\taria-label={ __( 'List text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'List' ) }\n\t\t\t\t\tonSplit={ onSplit }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t\tonReplace={ ( blocks, ...args ) => {\n\t\t\t\t\t\tonReplace( convertToListItems( blocks ), ...args );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</li>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<IndentUI clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n"]}
@@ -6,22 +6,29 @@ import { createElement } from "@wordpress/element";
6
6
  import { __, sprintf } from '@wordpress/i18n';
7
7
  import { RawHTML } from '@wordpress/element';
8
8
  import { Button } from '@wordpress/components';
9
- import { getBlockType, createBlock } from '@wordpress/blocks';
10
- import { withDispatch } from '@wordpress/data';
9
+ import { createBlock } from '@wordpress/blocks';
10
+ import { withDispatch, useSelect } from '@wordpress/data';
11
11
  import { Warning, useBlockProps, store as blockEditorStore } from '@wordpress/block-editor';
12
12
  import { safeHTML } from '@wordpress/dom';
13
13
 
14
14
  function MissingBlockWarning(_ref) {
15
15
  let {
16
16
  attributes,
17
- convertToHTML
17
+ convertToHTML,
18
+ clientId
18
19
  } = _ref;
19
20
  const {
20
21
  originalName,
21
22
  originalUndelimitedContent
22
23
  } = attributes;
23
24
  const hasContent = !!originalUndelimitedContent;
24
- const hasHTMLBlock = getBlockType('core/html');
25
+ const hasHTMLBlock = useSelect(select => {
26
+ const {
27
+ canInsertBlockType,
28
+ getBlockRootClientId
29
+ } = select(blockEditorStore);
30
+ return canInsertBlockType('core/html', getBlockRootClientId(clientId));
31
+ }, [clientId]);
25
32
  const actions = [];
26
33
  let messageHTML;
27
34
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/missing/edit.js"],"names":["__","sprintf","RawHTML","Button","getBlockType","createBlock","withDispatch","Warning","useBlockProps","store","blockEditorStore","safeHTML","MissingBlockWarning","attributes","convertToHTML","originalName","originalUndelimitedContent","hasContent","hasHTMLBlock","actions","messageHTML","push","className","MissingEdit","dispatch","clientId","replaceBlock","content"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,YAAT,EAAuBC,WAAvB,QAA0C,mBAA1C;AACA,SAASC,YAAT,QAA6B,iBAA7B;AACA,SACCC,OADD,EAECC,aAFD,EAGCC,KAAK,IAAIC,gBAHV,QAIO,yBAJP;AAKA,SAASC,QAAT,QAAyB,gBAAzB;;AAEA,SAASC,mBAAT,OAA8D;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AAC7D,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA+CH,UAArD;AACA,QAAMI,UAAU,GAAG,CAAC,CAAED,0BAAtB;AACA,QAAME,YAAY,GAAGd,YAAY,CAAE,WAAF,CAAjC;AAEA,QAAMe,OAAO,GAAG,EAAhB;AACA,MAAIC,WAAJ;;AACA,MAAKH,UAAU,IAAIC,YAAnB,EAAkC;AACjCE,IAAAA,WAAW,GAAGnB,OAAO;AACpB;AACAD,IAAAA,EAAE,CACD,2JADC,CAFkB,EAKpBe,YALoB,CAArB;AAOAI,IAAAA,OAAO,CAACE,IAAR,CACC,cAAC,MAAD;AAAQ,MAAA,GAAG,EAAC,SAAZ;AAAsB,MAAA,OAAO,EAAGP,aAAhC;AAAgD,MAAA,OAAO,EAAC;AAAxD,OACGd,EAAE,CAAE,cAAF,CADL,CADD;AAKA,GAbD,MAaO;AACNoB,IAAAA,WAAW,GAAGnB,OAAO;AACpB;AACAD,IAAAA,EAAE,CACD,8GADC,CAFkB,EAKpBe,YALoB,CAArB;AAOA;;AAED,SACC,qBAAUP,aAAa,CAAE;AAAEc,IAAAA,SAAS,EAAE;AAAb,GAAF,CAAvB,EACC,cAAC,OAAD;AAAS,IAAA,OAAO,EAAGH;AAAnB,KAA+BC,WAA/B,CADD,EAEC,cAAC,OAAD,QAAWT,QAAQ,CAAEK,0BAAF,CAAnB,CAFD,CADD;AAMA;;AAED,MAAMO,WAAW,GAAGjB,YAAY,CAAE,CAAEkB,QAAF,YAA0C;AAAA,MAA9B;AAAEC,IAAAA,QAAF;AAAYZ,IAAAA;AAAZ,GAA8B;AAC3E,QAAM;AAAEa,IAAAA;AAAF,MAAmBF,QAAQ,CAAEd,gBAAF,CAAjC;AACA,SAAO;AACNI,IAAAA,aAAa,GAAG;AACfY,MAAAA,YAAY,CACXD,QADW,EAEXpB,WAAW,CAAE,WAAF,EAAe;AACzBsB,QAAAA,OAAO,EAAEd,UAAU,CAACG;AADK,OAAf,CAFA,CAAZ;AAMA;;AARK,GAAP;AAUA,CAZ+B,CAAZ,CAYfJ,mBAZe,CAApB;AAcA,eAAeW,WAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { getBlockType, createBlock } from '@wordpress/blocks';\nimport { withDispatch } from '@wordpress/data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { safeHTML } from '@wordpress/dom';\n\nfunction MissingBlockWarning( { attributes, convertToHTML } ) {\n\tconst { originalName, originalUndelimitedContent } = attributes;\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst hasHTMLBlock = getBlockType( 'core/html' );\n\n\tconst actions = [];\n\tlet messageHTML;\n\tif ( hasContent && hasHTMLBlock ) {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn’t include support for the \"%s\" block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely.'\n\t\t\t),\n\t\t\toriginalName\n\t\t);\n\t\tactions.push(\n\t\t\t<Button key=\"convert\" onClick={ convertToHTML } variant=\"primary\">\n\t\t\t\t{ __( 'Keep as HTML' ) }\n\t\t\t</Button>\n\t\t);\n\t} else {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn’t include support for the \"%s\" block. You can leave this block intact or remove it entirely.'\n\t\t\t),\n\t\t\toriginalName\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps( { className: 'has-warning' } ) }>\n\t\t\t<Warning actions={ actions }>{ messageHTML }</Warning>\n\t\t\t<RawHTML>{ safeHTML( originalUndelimitedContent ) }</RawHTML>\n\t\t</div>\n\t);\n}\n\nconst MissingEdit = withDispatch( ( dispatch, { clientId, attributes } ) => {\n\tconst { replaceBlock } = dispatch( blockEditorStore );\n\treturn {\n\t\tconvertToHTML() {\n\t\t\treplaceBlock(\n\t\t\t\tclientId,\n\t\t\t\tcreateBlock( 'core/html', {\n\t\t\t\t\tcontent: attributes.originalUndelimitedContent,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t};\n} )( MissingBlockWarning );\n\nexport default MissingEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/missing/edit.js"],"names":["__","sprintf","RawHTML","Button","createBlock","withDispatch","useSelect","Warning","useBlockProps","store","blockEditorStore","safeHTML","MissingBlockWarning","attributes","convertToHTML","clientId","originalName","originalUndelimitedContent","hasContent","hasHTMLBlock","select","canInsertBlockType","getBlockRootClientId","actions","messageHTML","push","className","MissingEdit","dispatch","replaceBlock","content"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,QAA4B,mBAA5B;AACA,SAASC,YAAT,EAAuBC,SAAvB,QAAwC,iBAAxC;AACA,SACCC,OADD,EAECC,aAFD,EAGCC,KAAK,IAAIC,gBAHV,QAIO,yBAJP;AAKA,SAASC,QAAT,QAAyB,gBAAzB;;AAEA,SAASC,mBAAT,OAAwE;AAAA,MAA1C;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,aAAd;AAA6BC,IAAAA;AAA7B,GAA0C;AACvE,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA+CJ,UAArD;AACA,QAAMK,UAAU,GAAG,CAAC,CAAED,0BAAtB;AACA,QAAME,YAAY,GAAGb,SAAS,CAC3Bc,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,kBAAF;AAAsBC,MAAAA;AAAtB,QACLF,MAAM,CAAEV,gBAAF,CADP;AAGA,WAAOW,kBAAkB,CACxB,WADwB,EAExBC,oBAAoB,CAAEP,QAAF,CAFI,CAAzB;AAIA,GAT4B,EAU7B,CAAEA,QAAF,CAV6B,CAA9B;AAaA,QAAMQ,OAAO,GAAG,EAAhB;AACA,MAAIC,WAAJ;;AACA,MAAKN,UAAU,IAAIC,YAAnB,EAAkC;AACjCK,IAAAA,WAAW,GAAGvB,OAAO;AACpB;AACAD,IAAAA,EAAE,CACD,2JADC,CAFkB,EAKpBgB,YALoB,CAArB;AAOAO,IAAAA,OAAO,CAACE,IAAR,CACC,cAAC,MAAD;AAAQ,MAAA,GAAG,EAAC,SAAZ;AAAsB,MAAA,OAAO,EAAGX,aAAhC;AAAgD,MAAA,OAAO,EAAC;AAAxD,OACGd,EAAE,CAAE,cAAF,CADL,CADD;AAKA,GAbD,MAaO;AACNwB,IAAAA,WAAW,GAAGvB,OAAO;AACpB;AACAD,IAAAA,EAAE,CACD,8GADC,CAFkB,EAKpBgB,YALoB,CAArB;AAOA;;AAED,SACC,qBAAUR,aAAa,CAAE;AAAEkB,IAAAA,SAAS,EAAE;AAAb,GAAF,CAAvB,EACC,cAAC,OAAD;AAAS,IAAA,OAAO,EAAGH;AAAnB,KAA+BC,WAA/B,CADD,EAEC,cAAC,OAAD,QAAWb,QAAQ,CAAEM,0BAAF,CAAnB,CAFD,CADD;AAMA;;AAED,MAAMU,WAAW,GAAGtB,YAAY,CAAE,CAAEuB,QAAF,YAA0C;AAAA,MAA9B;AAAEb,IAAAA,QAAF;AAAYF,IAAAA;AAAZ,GAA8B;AAC3E,QAAM;AAAEgB,IAAAA;AAAF,MAAmBD,QAAQ,CAAElB,gBAAF,CAAjC;AACA,SAAO;AACNI,IAAAA,aAAa,GAAG;AACfe,MAAAA,YAAY,CACXd,QADW,EAEXX,WAAW,CAAE,WAAF,EAAe;AACzB0B,QAAAA,OAAO,EAAEjB,UAAU,CAACI;AADK,OAAf,CAFA,CAAZ;AAMA;;AARK,GAAP;AAUA,CAZ+B,CAAZ,CAYfL,mBAZe,CAApB;AAcA,eAAee,WAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { safeHTML } from '@wordpress/dom';\n\nfunction MissingBlockWarning( { attributes, convertToHTML, clientId } ) {\n\tconst { originalName, originalUndelimitedContent } = attributes;\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst hasHTMLBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn canInsertBlockType(\n\t\t\t\t'core/html',\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst actions = [];\n\tlet messageHTML;\n\tif ( hasContent && hasHTMLBlock ) {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn’t include support for the \"%s\" block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely.'\n\t\t\t),\n\t\t\toriginalName\n\t\t);\n\t\tactions.push(\n\t\t\t<Button key=\"convert\" onClick={ convertToHTML } variant=\"primary\">\n\t\t\t\t{ __( 'Keep as HTML' ) }\n\t\t\t</Button>\n\t\t);\n\t} else {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn’t include support for the \"%s\" block. You can leave this block intact or remove it entirely.'\n\t\t\t),\n\t\t\toriginalName\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps( { className: 'has-warning' } ) }>\n\t\t\t<Warning actions={ actions }>{ messageHTML }</Warning>\n\t\t\t<RawHTML>{ safeHTML( originalUndelimitedContent ) }</RawHTML>\n\t\t</div>\n\t);\n}\n\nconst MissingEdit = withDispatch( ( dispatch, { clientId, attributes } ) => {\n\tconst { replaceBlock } = dispatch( blockEditorStore );\n\treturn {\n\t\tconvertToHTML() {\n\t\t\treplaceBlock(\n\t\t\t\tclientId,\n\t\t\t\tcreateBlock( 'core/html', {\n\t\t\t\t\tcontent: attributes.originalUndelimitedContent,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t};\n} )( MissingBlockWarning );\n\nexport default MissingEdit;\n"]}
@@ -52,7 +52,7 @@ export default function MoreEdit(_ref) {
52
52
  onChange: toggleHideExcerpt,
53
53
  help: getHideExcerptHelp
54
54
  }))), createElement("div", useBlockProps(), createElement("input", {
55
- "aria-label": __('Read more link text'),
55
+ "aria-label": __('Read more link text'),
56
56
  type: "text",
57
57
  value: customText,
58
58
  placeholder: DEFAULT_TEXT,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/more/edit.js"],"names":["__","PanelBody","ToggleControl","InspectorControls","useBlockProps","ENTER","getDefaultBlockName","createBlock","DEFAULT_TEXT","MoreEdit","attributes","customText","noTeaser","insertBlocksAfter","setAttributes","onChangeInput","event","target","value","undefined","onKeyDown","keyCode","getHideExcerptHelp","checked","toggleHideExcerpt","style","width","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,aAApB,QAAyC,uBAAzC;AACA,SAASC,iBAAT,EAA4BC,aAA5B,QAAiD,yBAAjD;AACA,SAASC,KAAT,QAAsB,qBAAtB;AACA,SAASC,mBAAT,EAA8BC,WAA9B,QAAiD,mBAAjD;;AAEA,MAAMC,YAAY,GAAGR,EAAE,CAAE,WAAF,CAAvB;;AAEA,eAAe,SAASS,QAAT,OAIX;AAAA,MAJ8B;AACjCC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAF;AAAcC,MAAAA;AAAd,KADqB;AAEjCC,IAAAA,iBAFiC;AAGjCC,IAAAA;AAHiC,GAI9B;;AACH,QAAMC,aAAa,GAAKC,KAAF,IAAa;AAClCF,IAAAA,aAAa,CAAE;AACdH,MAAAA,UAAU,EACTK,KAAK,CAACC,MAAN,CAAaC,KAAb,KAAuB,EAAvB,GAA4BF,KAAK,CAACC,MAAN,CAAaC,KAAzC,GAAiDC;AAFpC,KAAF,CAAb;AAIA,GALD;;AAOA,QAAMC,SAAS,GAAG,SAAmB;AAAA,QAAjB;AAAEC,MAAAA;AAAF,KAAiB;;AACpC,QAAKA,OAAO,KAAKhB,KAAjB,EAAyB;AACxBQ,MAAAA,iBAAiB,CAAE,CAAEN,WAAW,CAAED,mBAAmB,EAArB,CAAb,CAAF,CAAjB;AACA;AACD,GAJD;;AAMA,QAAMgB,kBAAkB,GAAKC,OAAF,IAC1BA,OAAO,GACJvB,EAAE,CAAE,wBAAF,CADE,GAEJA,EAAE,CAAE,yBAAF,CAHN;;AAKA,QAAMwB,iBAAiB,GAAG,MAAMV,aAAa,CAAE;AAAEF,IAAAA,QAAQ,EAAE,CAAEA;AAAd,GAAF,CAA7C;;AAEA,QAAMa,KAAK,GAAG;AACbC,IAAAA,KAAK,EAAG,GAAG,CAAEf,UAAU,GAAGA,UAAH,GAAgBH,YAA5B,EAA2CmB,MAA3C,GAAoD,GAAK;AADvD,GAAd;AAIA,SACC,8BACC,cAAC,iBAAD,QACC,cAAC,SAAD,QACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAG3B,EAAE,CACT,2CADS,CADX;AAIC,IAAA,OAAO,EAAG,CAAC,CAAEY,QAJd;AAKC,IAAA,QAAQ,EAAGY,iBALZ;AAMC,IAAA,IAAI,EAAGF;AANR,IADD,CADD,CADD,EAaC,qBAAUlB,aAAa,EAAvB,EACC;AACC,kBAAaJ,EAAE,CAAE,qBAAF,CADhB;AAEC,IAAA,IAAI,EAAC,MAFN;AAGC,IAAA,KAAK,EAAGW,UAHT;AAIC,IAAA,WAAW,EAAGH,YAJf;AAKC,IAAA,QAAQ,EAAGO,aALZ;AAMC,IAAA,SAAS,EAAGK,SANb;AAOC,IAAA,KAAK,EAAGK;AAPT,IADD,CAbD,CADD;AA2BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport { getDefaultBlockName, createBlock } from '@wordpress/blocks';\n\nconst DEFAULT_TEXT = __( 'Read more' );\n\nexport default function MoreEdit( {\n\tattributes: { customText, noTeaser },\n\tinsertBlocksAfter,\n\tsetAttributes,\n} ) {\n\tconst onChangeInput = ( event ) => {\n\t\tsetAttributes( {\n\t\t\tcustomText:\n\t\t\t\tevent.target.value !== '' ? event.target.value : undefined,\n\t\t} );\n\t};\n\n\tconst onKeyDown = ( { keyCode } ) => {\n\t\tif ( keyCode === ENTER ) {\n\t\t\tinsertBlocksAfter( [ createBlock( getDefaultBlockName() ) ] );\n\t\t}\n\t};\n\n\tconst getHideExcerptHelp = ( checked ) =>\n\t\tchecked\n\t\t\t? __( 'The excerpt is hidden.' )\n\t\t\t: __( 'The excerpt is visible.' );\n\n\tconst toggleHideExcerpt = () => setAttributes( { noTeaser: ! noTeaser } );\n\n\tconst style = {\n\t\twidth: `${ ( customText ? customText : DEFAULT_TEXT ).length + 1.2 }em`,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t'Hide the excerpt on the full content page'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ !! noTeaser }\n\t\t\t\t\t\tonChange={ toggleHideExcerpt }\n\t\t\t\t\t\thelp={ getHideExcerptHelp }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<input\n\t\t\t\t\taria-label={ __( 'Read more link text' ) }\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={ customText }\n\t\t\t\t\tplaceholder={ DEFAULT_TEXT }\n\t\t\t\t\tonChange={ onChangeInput }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/more/edit.js"],"names":["__","PanelBody","ToggleControl","InspectorControls","useBlockProps","ENTER","getDefaultBlockName","createBlock","DEFAULT_TEXT","MoreEdit","attributes","customText","noTeaser","insertBlocksAfter","setAttributes","onChangeInput","event","target","value","undefined","onKeyDown","keyCode","getHideExcerptHelp","checked","toggleHideExcerpt","style","width","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,aAApB,QAAyC,uBAAzC;AACA,SAASC,iBAAT,EAA4BC,aAA5B,QAAiD,yBAAjD;AACA,SAASC,KAAT,QAAsB,qBAAtB;AACA,SAASC,mBAAT,EAA8BC,WAA9B,QAAiD,mBAAjD;;AAEA,MAAMC,YAAY,GAAGR,EAAE,CAAE,WAAF,CAAvB;;AAEA,eAAe,SAASS,QAAT,OAIX;AAAA,MAJ8B;AACjCC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAF;AAAcC,MAAAA;AAAd,KADqB;AAEjCC,IAAAA,iBAFiC;AAGjCC,IAAAA;AAHiC,GAI9B;;AACH,QAAMC,aAAa,GAAKC,KAAF,IAAa;AAClCF,IAAAA,aAAa,CAAE;AACdH,MAAAA,UAAU,EACTK,KAAK,CAACC,MAAN,CAAaC,KAAb,KAAuB,EAAvB,GAA4BF,KAAK,CAACC,MAAN,CAAaC,KAAzC,GAAiDC;AAFpC,KAAF,CAAb;AAIA,GALD;;AAOA,QAAMC,SAAS,GAAG,SAAmB;AAAA,QAAjB;AAAEC,MAAAA;AAAF,KAAiB;;AACpC,QAAKA,OAAO,KAAKhB,KAAjB,EAAyB;AACxBQ,MAAAA,iBAAiB,CAAE,CAAEN,WAAW,CAAED,mBAAmB,EAArB,CAAb,CAAF,CAAjB;AACA;AACD,GAJD;;AAMA,QAAMgB,kBAAkB,GAAKC,OAAF,IAC1BA,OAAO,GACJvB,EAAE,CAAE,wBAAF,CADE,GAEJA,EAAE,CAAE,yBAAF,CAHN;;AAKA,QAAMwB,iBAAiB,GAAG,MAAMV,aAAa,CAAE;AAAEF,IAAAA,QAAQ,EAAE,CAAEA;AAAd,GAAF,CAA7C;;AAEA,QAAMa,KAAK,GAAG;AACbC,IAAAA,KAAK,EAAG,GAAG,CAAEf,UAAU,GAAGA,UAAH,GAAgBH,YAA5B,EAA2CmB,MAA3C,GAAoD,GAAK;AADvD,GAAd;AAIA,SACC,8BACC,cAAC,iBAAD,QACC,cAAC,SAAD,QACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAG3B,EAAE,CACT,2CADS,CADX;AAIC,IAAA,OAAO,EAAG,CAAC,CAAEY,QAJd;AAKC,IAAA,QAAQ,EAAGY,iBALZ;AAMC,IAAA,IAAI,EAAGF;AANR,IADD,CADD,CADD,EAaC,qBAAUlB,aAAa,EAAvB,EACC;AACC,kBAAaJ,EAAE,CAAE,uBAAF,CADhB;AAEC,IAAA,IAAI,EAAC,MAFN;AAGC,IAAA,KAAK,EAAGW,UAHT;AAIC,IAAA,WAAW,EAAGH,YAJf;AAKC,IAAA,QAAQ,EAAGO,aALZ;AAMC,IAAA,SAAS,EAAGK,SANb;AAOC,IAAA,KAAK,EAAGK;AAPT,IADD,CAbD,CADD;AA2BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport { getDefaultBlockName, createBlock } from '@wordpress/blocks';\n\nconst DEFAULT_TEXT = __( 'Read more' );\n\nexport default function MoreEdit( {\n\tattributes: { customText, noTeaser },\n\tinsertBlocksAfter,\n\tsetAttributes,\n} ) {\n\tconst onChangeInput = ( event ) => {\n\t\tsetAttributes( {\n\t\t\tcustomText:\n\t\t\t\tevent.target.value !== '' ? event.target.value : undefined,\n\t\t} );\n\t};\n\n\tconst onKeyDown = ( { keyCode } ) => {\n\t\tif ( keyCode === ENTER ) {\n\t\t\tinsertBlocksAfter( [ createBlock( getDefaultBlockName() ) ] );\n\t\t}\n\t};\n\n\tconst getHideExcerptHelp = ( checked ) =>\n\t\tchecked\n\t\t\t? __( 'The excerpt is hidden.' )\n\t\t\t: __( 'The excerpt is visible.' );\n\n\tconst toggleHideExcerpt = () => setAttributes( { noTeaser: ! noTeaser } );\n\n\tconst style = {\n\t\twidth: `${ ( customText ? customText : DEFAULT_TEXT ).length + 1.2 }em`,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t'Hide the excerpt on the full content page'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ !! noTeaser }\n\t\t\t\t\t\tonChange={ toggleHideExcerpt }\n\t\t\t\t\t\thelp={ getHideExcerptHelp }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<input\n\t\t\t\t\taria-label={ __( 'Read more link text' ) }\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={ customText }\n\t\t\t\t\tplaceholder={ DEFAULT_TEXT }\n\t\t\t\t\tonChange={ onChangeInput }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
@@ -24,10 +24,12 @@ export default function menuItemsToBlocks(menuItems) {
24
24
  * A recursive function that maps menu item nodes to blocks.
25
25
  *
26
26
  * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.
27
+ * @param {number} level An integer representing the nesting level.
27
28
  * @return {Object} Object containing innerBlocks and mapping.
28
29
  */
29
30
 
30
31
  function mapMenuItemsToBlocks(menuItems) {
32
+ let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
31
33
  let mapping = {}; // The menuItem should be in menu_order sort order.
32
34
 
33
35
  const sortedItems = [...menuItems].sort((a, b) => a.menu_order - b.menu_order);
@@ -46,19 +48,19 @@ function mapMenuItemsToBlocks(menuItems) {
46
48
  return block;
47
49
  }
48
50
 
49
- const attributes = menuItemToBlockAttributes(menuItem); // If there are children recurse to build those nested blocks.
51
+ const blockType = (_menuItem$children = menuItem.children) !== null && _menuItem$children !== void 0 && _menuItem$children.length ? 'core/navigation-submenu' : 'core/navigation-link';
52
+ const attributes = menuItemToBlockAttributes(menuItem, blockType, level); // If there are children recurse to build those nested blocks.
50
53
 
51
54
  const {
52
55
  innerBlocks: nestedBlocks = [],
53
56
  // alias to avoid shadowing
54
57
  mapping: nestedMapping = {} // alias to avoid shadowing
55
58
 
56
- } = (_menuItem$children = menuItem.children) !== null && _menuItem$children !== void 0 && _menuItem$children.length ? mapMenuItemsToBlocks(menuItem.children) : {}; // Update parent mapping with nested mapping.
59
+ } = (_menuItem$children2 = menuItem.children) !== null && _menuItem$children2 !== void 0 && _menuItem$children2.length ? mapMenuItemsToBlocks(menuItem.children, level + 1) : {}; // Update parent mapping with nested mapping.
57
60
 
58
61
  mapping = { ...mapping,
59
62
  ...nestedMapping
60
- };
61
- const blockType = (_menuItem$children2 = menuItem.children) !== null && _menuItem$children2 !== void 0 && _menuItem$children2.length ? 'core/navigation-submenu' : 'core/navigation-link'; // Create block with nested "innerBlocks".
63
+ }; // Create block with nested "innerBlocks".
62
64
 
63
65
  const block = createBlock(blockType, attributes, nestedBlocks); // Create mapping for menuItem -> block.
64
66
 
@@ -94,12 +96,14 @@ function mapMenuItemsToBlocks(menuItems) {
94
96
  /**
95
97
  * Convert block attributes to menu item.
96
98
  *
97
- * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.
99
+ * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.
100
+ * @param {string} blockType The block type.
101
+ * @param {number} level An integer representing the nesting level.
98
102
  * @return {Object} the block attributes converted from the WPNavMenuItem item.
99
103
  */
100
104
 
101
105
 
102
- function menuItemToBlockAttributes(_ref) {
106
+ function menuItemToBlockAttributes(_ref, blockType, level) {
103
107
  var _object;
104
108
 
105
109
  let {
@@ -153,6 +157,12 @@ function menuItemToBlockAttributes(_ref) {
153
157
  }),
154
158
  ...(target === '_blank' && {
155
159
  opensInNewTab: true
160
+ }),
161
+ ...(blockType === 'core/navigation-submenu' && {
162
+ isTopLevelItem: level === 0
163
+ }),
164
+ ...(blockType === 'core/navigation-link' && {
165
+ isTopLevelLink: level === 0
156
166
  })
157
167
  };
158
168
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/menu-items-to-blocks.js"],"names":["createBlock","parse","applyFilters","menuItemsToBlocks","menuItems","menuTree","createDataTree","blocks","mapMenuItemsToBlocks","mapping","sortedItems","sort","a","b","menu_order","innerBlocks","map","menuItem","type","block","content","raw","attributes","menuItemToBlockAttributes","nestedBlocks","nestedMapping","children","length","blockType","id","clientId","title","menuItemTitleField","xfn","classes","attr_title","object","object_id","description","url","menuItemTypeField","target","label","rendered","kind","replace","join","trim","rel","className","opensInNewTab","dataset","relation","hashTable","Object","create","dataTree","data","push"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Convert a flat menu item structure to a nested blocks structure.\n *\n * @param {Object[]} menuItems An array of menu items.\n *\n * @return {WPBlock[]} An array of blocks.\n */\nexport default function menuItemsToBlocks( menuItems ) {\n\tif ( ! menuItems ) {\n\t\treturn null;\n\t}\n\n\tconst menuTree = createDataTree( menuItems );\n\tconst blocks = mapMenuItemsToBlocks( menuTree );\n\treturn applyFilters(\n\t\t'blocks.navigation.__unstableMenuItemsToBlocks',\n\t\tblocks,\n\t\tmenuItems\n\t);\n}\n\n/**\n * A recursive function that maps menu item nodes to blocks.\n *\n * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.\n * @return {Object} Object containing innerBlocks and mapping.\n */\nfunction mapMenuItemsToBlocks( menuItems ) {\n\tlet mapping = {};\n\n\t// The menuItem should be in menu_order sort order.\n\tconst sortedItems = [ ...menuItems ].sort(\n\t\t( a, b ) => a.menu_order - b.menu_order\n\t);\n\n\tconst innerBlocks = sortedItems.map( ( menuItem ) => {\n\t\tif ( menuItem.type === 'block' ) {\n\t\t\tconst [ block ] = parse( menuItem.content.raw );\n\n\t\t\tif ( ! block ) {\n\t\t\t\treturn createBlock( 'core/freeform', {\n\t\t\t\t\tcontent: menuItem.content,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn block;\n\t\t}\n\n\t\tconst attributes = menuItemToBlockAttributes( menuItem );\n\n\t\t// If there are children recurse to build those nested blocks.\n\t\tconst {\n\t\t\tinnerBlocks: nestedBlocks = [], // alias to avoid shadowing\n\t\t\tmapping: nestedMapping = {}, // alias to avoid shadowing\n\t\t} = menuItem.children?.length\n\t\t\t? mapMenuItemsToBlocks( menuItem.children )\n\t\t\t: {};\n\n\t\t// Update parent mapping with nested mapping.\n\t\tmapping = {\n\t\t\t...mapping,\n\t\t\t...nestedMapping,\n\t\t};\n\n\t\tconst blockType = menuItem.children?.length\n\t\t\t? 'core/navigation-submenu'\n\t\t\t: 'core/navigation-link';\n\n\t\t// Create block with nested \"innerBlocks\".\n\t\tconst block = createBlock( blockType, attributes, nestedBlocks );\n\n\t\t// Create mapping for menuItem -> block.\n\t\tmapping[ menuItem.id ] = block.clientId;\n\n\t\treturn block;\n\t} );\n\n\treturn {\n\t\tinnerBlocks,\n\t\tmapping,\n\t};\n}\n\n/**\n * A WP nav_menu_item object.\n * For more documentation on the individual fields present on a menu item please see:\n * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789\n *\n * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js.\n *\n * @typedef WPNavMenuItem\n *\n * @property {Object} title stores the raw and rendered versions of the title/label for this menu item.\n * @property {Array} xfn the XFN relationships expressed in the link of this menu item.\n * @property {Array} classes the HTML class attributes for this menu item.\n * @property {string} attr_title the HTML title attribute for this menu item.\n * @property {string} object The type of object originally represented, such as 'category', 'post', or 'attachment'.\n * @property {string} object_id The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.\n * @property {string} description The description of this menu item.\n * @property {string} url The URL to which this menu item points.\n * @property {string} type The family of objects originally represented, such as 'post_type' or 'taxonomy'.\n * @property {string} target The target attribute of the link element for this menu item.\n */\n\n/**\n * Convert block attributes to menu item.\n *\n * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.\n * @return {Object} the block attributes converted from the WPNavMenuItem item.\n */\nfunction menuItemToBlockAttributes( {\n\ttitle: menuItemTitleField,\n\txfn,\n\tclasses,\n\t// eslint-disable-next-line camelcase\n\tattr_title,\n\tobject,\n\t// eslint-disable-next-line camelcase\n\tobject_id,\n\tdescription,\n\turl,\n\ttype: menuItemTypeField,\n\ttarget,\n} ) {\n\t// For historical reasons, the `core/navigation-link` variation type is `tag`\n\t// whereas WP Core expects `post_tag` as the `object` type.\n\t// To avoid writing a block migration we perform a conversion here.\n\t// See also inverse equivalent in `blockAttributesToMenuItem`.\n\tif ( object && object === 'post_tag' ) {\n\t\tobject = 'tag';\n\t}\n\n\treturn {\n\t\tlabel: menuItemTitleField?.rendered || '',\n\t\t...( object?.length && {\n\t\t\ttype: object,\n\t\t} ),\n\t\tkind: menuItemTypeField?.replace( '_', '-' ) || 'custom',\n\t\turl: url || '',\n\t\t...( xfn?.length &&\n\t\t\txfn.join( ' ' ).trim() && {\n\t\t\t\trel: xfn.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( classes?.length &&\n\t\t\tclasses.join( ' ' ).trim() && {\n\t\t\t\tclassName: classes.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t/* eslint-disable camelcase */\n\t\t...( attr_title?.length && {\n\t\t\ttitle: attr_title,\n\t\t} ),\n\t\t...( object_id &&\n\t\t\t'custom' !== object && {\n\t\t\t\tid: object_id,\n\t\t\t} ),\n\t\t/* eslint-enable camelcase */\n\t\t...( description?.length && {\n\t\t\tdescription,\n\t\t} ),\n\t\t...( target === '_blank' && {\n\t\t\topensInNewTab: true,\n\t\t} ),\n\t};\n}\n\n/**\n * Creates a nested, hierarchical tree representation from unstructured data that\n * has an inherent relationship defined between individual items.\n *\n * For example, by default, each element in the dataset should have an `id` and\n * `parent` property where the `parent` property indicates a relationship between\n * the current item and another item with a matching `id` properties.\n *\n * This is useful for building linked lists of data from flat data structures.\n *\n * @param {Array} dataset linked data to be rearranged into a hierarchical tree based on relational fields.\n * @param {string} id the property which uniquely identifies each entry within the array.\n * @param {*} relation the property which identifies how the current item is related to other items in the data (if at all).\n * @return {Array} a nested array of parent/child relationships\n */\nfunction createDataTree( dataset, id = 'id', relation = 'parent' ) {\n\tconst hashTable = Object.create( null );\n\tconst dataTree = [];\n\n\tfor ( const data of dataset ) {\n\t\thashTable[ data[ id ] ] = {\n\t\t\t...data,\n\t\t\tchildren: [],\n\t\t};\n\t\tif ( data[ relation ] ) {\n\t\t\thashTable[ data[ relation ] ] = hashTable[ data[ relation ] ] || {};\n\t\t\thashTable[ data[ relation ] ].children =\n\t\t\t\thashTable[ data[ relation ] ].children || [];\n\t\t\thashTable[ data[ relation ] ].children.push(\n\t\t\t\thashTable[ data[ id ] ]\n\t\t\t);\n\t\t} else {\n\t\t\tdataTree.push( hashTable[ data[ id ] ] );\n\t\t}\n\t}\n\n\treturn dataTree;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/menu-items-to-blocks.js"],"names":["createBlock","parse","applyFilters","menuItemsToBlocks","menuItems","menuTree","createDataTree","blocks","mapMenuItemsToBlocks","level","mapping","sortedItems","sort","a","b","menu_order","innerBlocks","map","menuItem","type","block","content","raw","blockType","children","length","attributes","menuItemToBlockAttributes","nestedBlocks","nestedMapping","id","clientId","title","menuItemTitleField","xfn","classes","attr_title","object","object_id","description","url","menuItemTypeField","target","label","rendered","kind","replace","join","trim","rel","className","opensInNewTab","isTopLevelItem","isTopLevelLink","dataset","relation","hashTable","Object","create","dataTree","data","push"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Convert a flat menu item structure to a nested blocks structure.\n *\n * @param {Object[]} menuItems An array of menu items.\n *\n * @return {WPBlock[]} An array of blocks.\n */\nexport default function menuItemsToBlocks( menuItems ) {\n\tif ( ! menuItems ) {\n\t\treturn null;\n\t}\n\n\tconst menuTree = createDataTree( menuItems );\n\tconst blocks = mapMenuItemsToBlocks( menuTree );\n\treturn applyFilters(\n\t\t'blocks.navigation.__unstableMenuItemsToBlocks',\n\t\tblocks,\n\t\tmenuItems\n\t);\n}\n\n/**\n * A recursive function that maps menu item nodes to blocks.\n *\n * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.\n * @param {number} level An integer representing the nesting level.\n * @return {Object} Object containing innerBlocks and mapping.\n */\nfunction mapMenuItemsToBlocks( menuItems, level = 0 ) {\n\tlet mapping = {};\n\n\t// The menuItem should be in menu_order sort order.\n\tconst sortedItems = [ ...menuItems ].sort(\n\t\t( a, b ) => a.menu_order - b.menu_order\n\t);\n\n\tconst innerBlocks = sortedItems.map( ( menuItem ) => {\n\t\tif ( menuItem.type === 'block' ) {\n\t\t\tconst [ block ] = parse( menuItem.content.raw );\n\n\t\t\tif ( ! block ) {\n\t\t\t\treturn createBlock( 'core/freeform', {\n\t\t\t\t\tcontent: menuItem.content,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn block;\n\t\t}\n\n\t\tconst blockType = menuItem.children?.length\n\t\t\t? 'core/navigation-submenu'\n\t\t\t: 'core/navigation-link';\n\n\t\tconst attributes = menuItemToBlockAttributes(\n\t\t\tmenuItem,\n\t\t\tblockType,\n\t\t\tlevel\n\t\t);\n\n\t\t// If there are children recurse to build those nested blocks.\n\t\tconst {\n\t\t\tinnerBlocks: nestedBlocks = [], // alias to avoid shadowing\n\t\t\tmapping: nestedMapping = {}, // alias to avoid shadowing\n\t\t} = menuItem.children?.length\n\t\t\t? mapMenuItemsToBlocks( menuItem.children, level + 1 )\n\t\t\t: {};\n\n\t\t// Update parent mapping with nested mapping.\n\t\tmapping = {\n\t\t\t...mapping,\n\t\t\t...nestedMapping,\n\t\t};\n\n\t\t// Create block with nested \"innerBlocks\".\n\t\tconst block = createBlock( blockType, attributes, nestedBlocks );\n\n\t\t// Create mapping for menuItem -> block.\n\t\tmapping[ menuItem.id ] = block.clientId;\n\n\t\treturn block;\n\t} );\n\n\treturn {\n\t\tinnerBlocks,\n\t\tmapping,\n\t};\n}\n\n/**\n * A WP nav_menu_item object.\n * For more documentation on the individual fields present on a menu item please see:\n * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789\n *\n * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js.\n *\n * @typedef WPNavMenuItem\n *\n * @property {Object} title stores the raw and rendered versions of the title/label for this menu item.\n * @property {Array} xfn the XFN relationships expressed in the link of this menu item.\n * @property {Array} classes the HTML class attributes for this menu item.\n * @property {string} attr_title the HTML title attribute for this menu item.\n * @property {string} object The type of object originally represented, such as 'category', 'post', or 'attachment'.\n * @property {string} object_id The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.\n * @property {string} description The description of this menu item.\n * @property {string} url The URL to which this menu item points.\n * @property {string} type The family of objects originally represented, such as 'post_type' or 'taxonomy'.\n * @property {string} target The target attribute of the link element for this menu item.\n */\n\n/**\n * Convert block attributes to menu item.\n *\n * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.\n * @param {string} blockType The block type.\n * @param {number} level An integer representing the nesting level.\n * @return {Object} the block attributes converted from the WPNavMenuItem item.\n */\nfunction menuItemToBlockAttributes(\n\t{\n\t\ttitle: menuItemTitleField,\n\t\txfn,\n\t\tclasses,\n\t\t// eslint-disable-next-line camelcase\n\t\tattr_title,\n\t\tobject,\n\t\t// eslint-disable-next-line camelcase\n\t\tobject_id,\n\t\tdescription,\n\t\turl,\n\t\ttype: menuItemTypeField,\n\t\ttarget,\n\t},\n\tblockType,\n\tlevel\n) {\n\t// For historical reasons, the `core/navigation-link` variation type is `tag`\n\t// whereas WP Core expects `post_tag` as the `object` type.\n\t// To avoid writing a block migration we perform a conversion here.\n\t// See also inverse equivalent in `blockAttributesToMenuItem`.\n\tif ( object && object === 'post_tag' ) {\n\t\tobject = 'tag';\n\t}\n\n\treturn {\n\t\tlabel: menuItemTitleField?.rendered || '',\n\t\t...( object?.length && {\n\t\t\ttype: object,\n\t\t} ),\n\t\tkind: menuItemTypeField?.replace( '_', '-' ) || 'custom',\n\t\turl: url || '',\n\t\t...( xfn?.length &&\n\t\t\txfn.join( ' ' ).trim() && {\n\t\t\t\trel: xfn.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( classes?.length &&\n\t\t\tclasses.join( ' ' ).trim() && {\n\t\t\t\tclassName: classes.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t/* eslint-disable camelcase */\n\t\t...( attr_title?.length && {\n\t\t\ttitle: attr_title,\n\t\t} ),\n\t\t...( object_id &&\n\t\t\t'custom' !== object && {\n\t\t\t\tid: object_id,\n\t\t\t} ),\n\t\t/* eslint-enable camelcase */\n\t\t...( description?.length && {\n\t\t\tdescription,\n\t\t} ),\n\t\t...( target === '_blank' && {\n\t\t\topensInNewTab: true,\n\t\t} ),\n\t\t...( blockType === 'core/navigation-submenu' && {\n\t\t\tisTopLevelItem: level === 0,\n\t\t} ),\n\t\t...( blockType === 'core/navigation-link' && {\n\t\t\tisTopLevelLink: level === 0,\n\t\t} ),\n\t};\n}\n\n/**\n * Creates a nested, hierarchical tree representation from unstructured data that\n * has an inherent relationship defined between individual items.\n *\n * For example, by default, each element in the dataset should have an `id` and\n * `parent` property where the `parent` property indicates a relationship between\n * the current item and another item with a matching `id` properties.\n *\n * This is useful for building linked lists of data from flat data structures.\n *\n * @param {Array} dataset linked data to be rearranged into a hierarchical tree based on relational fields.\n * @param {string} id the property which uniquely identifies each entry within the array.\n * @param {*} relation the property which identifies how the current item is related to other items in the data (if at all).\n * @return {Array} a nested array of parent/child relationships\n */\nfunction createDataTree( dataset, id = 'id', relation = 'parent' ) {\n\tconst hashTable = Object.create( null );\n\tconst dataTree = [];\n\n\tfor ( const data of dataset ) {\n\t\thashTable[ data[ id ] ] = {\n\t\t\t...data,\n\t\t\tchildren: [],\n\t\t};\n\t\tif ( data[ relation ] ) {\n\t\t\thashTable[ data[ relation ] ] = hashTable[ data[ relation ] ] || {};\n\t\t\thashTable[ data[ relation ] ].children =\n\t\t\t\thashTable[ data[ relation ] ].children || [];\n\t\t\thashTable[ data[ relation ] ].children.push(\n\t\t\t\thashTable[ data[ id ] ]\n\t\t\t);\n\t\t} else {\n\t\t\tdataTree.push( hashTable[ data[ id ] ] );\n\t\t}\n\t}\n\n\treturn dataTree;\n}\n"]}
@@ -0,0 +1,88 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { useState } from '@wordpress/element';
7
+ import { useSelect } from '@wordpress/data';
8
+ import { __experimentalUseOnBlockDrop as useOnBlockDrop, store as blockEditorStore } from '@wordpress/block-editor';
9
+ import { __experimentalUseDropZone as useDropZone, useReducedMotion } from '@wordpress/compose';
10
+ import { Popover, __unstableMotion as motion, __unstableAnimatePresence as AnimatePresence } from '@wordpress/components';
11
+ const animateVariants = {
12
+ hide: {
13
+ opacity: 0,
14
+ scaleY: 0.75
15
+ },
16
+ show: {
17
+ opacity: 1,
18
+ scaleY: 1
19
+ },
20
+ exit: {
21
+ opacity: 0,
22
+ scaleY: 0.9
23
+ }
24
+ };
25
+ export default function DropZone(_ref) {
26
+ let {
27
+ paragraphElement,
28
+ clientId
29
+ } = _ref;
30
+ const {
31
+ rootClientId,
32
+ blockIndex
33
+ } = useSelect(select => {
34
+ const selectors = select(blockEditorStore);
35
+ return {
36
+ rootClientId: selectors.getBlockRootClientId(clientId),
37
+ blockIndex: selectors.getBlockIndex(clientId)
38
+ };
39
+ }, [clientId]);
40
+ const onBlockDrop = useOnBlockDrop(rootClientId, blockIndex, {
41
+ action: 'replace'
42
+ });
43
+ const [isDragging, setIsDragging] = useState(false);
44
+ const [isVisible, setIsVisible] = useState(false);
45
+ const popoverRef = useDropZone({
46
+ onDragStart: () => {
47
+ setIsDragging(true);
48
+ },
49
+ onDragEnd: () => {
50
+ setIsDragging(false);
51
+ }
52
+ });
53
+ const dropZoneRef = useDropZone({
54
+ onDrop: onBlockDrop,
55
+ onDragEnter: () => {
56
+ setIsVisible(true);
57
+ },
58
+ onDragLeave: () => {
59
+ setIsVisible(false);
60
+ }
61
+ });
62
+ const reducedMotion = useReducedMotion();
63
+ return createElement(Popover, {
64
+ anchor: paragraphElement,
65
+ animate: false,
66
+ placement: "top-start",
67
+ focusOnMount: false,
68
+ flip: false,
69
+ resize: false,
70
+ className: "wp-block-paragraph__drop-zone",
71
+ ref: popoverRef
72
+ }, isDragging ? createElement("div", {
73
+ className: "wp-block-paragraph__drop-zone-backdrop",
74
+ ref: dropZoneRef,
75
+ style: {
76
+ width: paragraphElement === null || paragraphElement === void 0 ? void 0 : paragraphElement.offsetWidth,
77
+ height: paragraphElement === null || paragraphElement === void 0 ? void 0 : paragraphElement.offsetHeight
78
+ }
79
+ }, createElement(AnimatePresence, null, isVisible ? createElement(motion.div, {
80
+ key: "drop-zone-foreground",
81
+ "data-testid": "empty-paragraph-drop-zone",
82
+ initial: reducedMotion ? animateVariants.show : animateVariants.hide,
83
+ animate: animateVariants.show,
84
+ exit: reducedMotion ? animateVariants.show : animateVariants.exit,
85
+ className: "wp-block-paragraph__drop-zone-foreground"
86
+ }) : null)) : null);
87
+ }
88
+ //# sourceMappingURL=drop-zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/paragraph/drop-zone.js"],"names":["useState","useSelect","__experimentalUseOnBlockDrop","useOnBlockDrop","store","blockEditorStore","__experimentalUseDropZone","useDropZone","useReducedMotion","Popover","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","animateVariants","hide","opacity","scaleY","show","exit","DropZone","paragraphElement","clientId","rootClientId","blockIndex","select","selectors","getBlockRootClientId","getBlockIndex","onBlockDrop","action","isDragging","setIsDragging","isVisible","setIsVisible","popoverRef","onDragStart","onDragEnd","dropZoneRef","onDrop","onDragEnter","onDragLeave","reducedMotion","width","offsetWidth","height","offsetHeight"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\t__experimentalUseOnBlockDrop as useOnBlockDrop,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseDropZone as useDropZone,\n\tuseReducedMotion,\n} from '@wordpress/compose';\nimport {\n\tPopover,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\n\nconst animateVariants = {\n\thide: { opacity: 0, scaleY: 0.75 },\n\tshow: { opacity: 1, scaleY: 1 },\n\texit: { opacity: 0, scaleY: 0.9 },\n};\n\nexport default function DropZone( { paragraphElement, clientId } ) {\n\tconst { rootClientId, blockIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst selectors = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\trootClientId: selectors.getBlockRootClientId( clientId ),\n\t\t\t\tblockIndex: selectors.getBlockIndex( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst onBlockDrop = useOnBlockDrop( rootClientId, blockIndex, {\n\t\taction: 'replace',\n\t} );\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst [ isVisible, setIsVisible ] = useState( false );\n\tconst popoverRef = useDropZone( {\n\t\tonDragStart: () => {\n\t\t\tsetIsDragging( true );\n\t\t},\n\t\tonDragEnd: () => {\n\t\t\tsetIsDragging( false );\n\t\t},\n\t} );\n\tconst dropZoneRef = useDropZone( {\n\t\tonDrop: onBlockDrop,\n\t\tonDragEnter: () => {\n\t\t\tsetIsVisible( true );\n\t\t},\n\t\tonDragLeave: () => {\n\t\t\tsetIsVisible( false );\n\t\t},\n\t} );\n\tconst reducedMotion = useReducedMotion();\n\n\treturn (\n\t\t<Popover\n\t\t\tanchor={ paragraphElement }\n\t\t\tanimate={ false }\n\t\t\tplacement=\"top-start\"\n\t\t\tfocusOnMount={ false }\n\t\t\tflip={ false }\n\t\t\tresize={ false }\n\t\t\tclassName=\"wp-block-paragraph__drop-zone\"\n\t\t\tref={ popoverRef }\n\t\t>\n\t\t\t{ isDragging ? (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-paragraph__drop-zone-backdrop\"\n\t\t\t\t\tref={ dropZoneRef }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: paragraphElement?.offsetWidth,\n\t\t\t\t\t\theight: paragraphElement?.offsetHeight,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t{ isVisible ? (\n\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\tkey=\"drop-zone-foreground\"\n\t\t\t\t\t\t\t\tdata-testid=\"empty-paragraph-drop-zone\"\n\t\t\t\t\t\t\t\tinitial={\n\t\t\t\t\t\t\t\t\treducedMotion\n\t\t\t\t\t\t\t\t\t\t? animateVariants.show\n\t\t\t\t\t\t\t\t\t\t: animateVariants.hide\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tanimate={ animateVariants.show }\n\t\t\t\t\t\t\t\texit={\n\t\t\t\t\t\t\t\t\treducedMotion\n\t\t\t\t\t\t\t\t\t\t? animateVariants.show\n\t\t\t\t\t\t\t\t\t\t: animateVariants.exit\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"wp-block-paragraph__drop-zone-foreground\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t</div>\n\t\t\t) : null }\n\t\t</Popover>\n\t);\n}\n"]}
@@ -9,9 +9,11 @@ import classnames from 'classnames';
9
9
  * WordPress dependencies
10
10
  */
11
11
 
12
+ import { useState } from '@wordpress/element';
12
13
  import { __, _x, isRTL } from '@wordpress/i18n';
13
14
  import { ToolbarButton, ToggleControl, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
14
15
  import { AlignmentControl, BlockControls, InspectorControls, RichText, useBlockProps, useSetting } from '@wordpress/block-editor';
16
+ import { useMergeRefs } from '@wordpress/compose';
15
17
  import { createBlock } from '@wordpress/blocks';
16
18
  import { formatLtr } from '@wordpress/icons';
17
19
  /**
@@ -19,6 +21,7 @@ import { formatLtr } from '@wordpress/icons';
19
21
  */
20
22
 
21
23
  import { useOnEnter } from './use-enter';
24
+ import DropZone from './drop-zone';
22
25
  const name = 'core/paragraph';
23
26
 
24
27
  function ParagraphRTLControl(_ref) {
@@ -53,11 +56,12 @@ function ParagraphBlock(_ref2) {
53
56
  placeholder
54
57
  } = attributes;
55
58
  const isDropCapFeatureEnabled = useSetting('typography.dropCap');
59
+ const [paragraphElement, setParagraphElement] = useState(null);
56
60
  const blockProps = useBlockProps({
57
- ref: useOnEnter({
61
+ ref: useMergeRefs([useOnEnter({
58
62
  clientId,
59
63
  content
60
- }),
64
+ }), setParagraphElement]),
61
65
  className: classnames({
62
66
  'has-drop-cap': dropCap,
63
67
  [`has-text-align-${align}`]: align
@@ -97,7 +101,10 @@ function ParagraphBlock(_ref2) {
97
101
  dropCap: !dropCap
98
102
  }),
99
103
  help: dropCap ? __('Showing large initial letter.') : __('Toggle to show a large initial letter.')
100
- }))), createElement(RichText, _extends({
104
+ }))), !content && createElement(DropZone, {
105
+ clientId: clientId,
106
+ paragraphElement: paragraphElement
107
+ }), createElement(RichText, _extends({
101
108
  identifier: "content",
102
109
  tagName: "p"
103
110
  }, blockProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/paragraph/edit.js"],"names":["classnames","__","_x","isRTL","ToolbarButton","ToggleControl","__experimentalToolsPanelItem","ToolsPanelItem","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","useSetting","createBlock","formatLtr","useOnEnter","name","ParagraphRTLControl","direction","setDirection","undefined","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","align","content","dropCap","placeholder","isDropCapFeatureEnabled","blockProps","ref","className","style","newAlign","newDirection","newContent","value","isOriginal","newAttributes","block"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst isDropCapFeatureEnabled = useSetting( 'typography.dropCap' );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { align: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\tdirection={ direction }\n\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ isDropCapFeatureEnabled && (\n\t\t\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { dropCap: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { dropCap: ! dropCap } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tdropCap\n\t\t\t\t\t\t\t\t\t? __( 'Showing large initial letter.' )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'Toggle to show a large initial letter.'\n\t\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</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tcontent\n\t\t\t\t\t\t? __( 'Paragraph block' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tdata-empty={ content ? false : true }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/paragraph/edit.js"],"names":["classnames","useState","__","_x","isRTL","ToolbarButton","ToggleControl","__experimentalToolsPanelItem","ToolsPanelItem","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","useSetting","useMergeRefs","createBlock","formatLtr","useOnEnter","DropZone","name","ParagraphRTLControl","direction","setDirection","undefined","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","align","content","dropCap","placeholder","isDropCapFeatureEnabled","paragraphElement","setParagraphElement","blockProps","ref","className","style","newAlign","newDirection","newContent","value","isOriginal","newAttributes","block"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { createBlock } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\nimport DropZone from './drop-zone';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst isDropCapFeatureEnabled = useSetting( 'typography.dropCap' );\n\tconst [ paragraphElement, setParagraphElement ] = useState( null );\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [\n\t\t\tuseOnEnter( { clientId, content } ),\n\t\t\tsetParagraphElement,\n\t\t] ),\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { align: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\tdirection={ direction }\n\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ isDropCapFeatureEnabled && (\n\t\t\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { dropCap: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { dropCap: ! dropCap } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tdropCap\n\t\t\t\t\t\t\t\t\t? __( 'Showing large initial letter.' )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'Toggle to show a large initial letter.'\n\t\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</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t{ ! content && (\n\t\t\t\t<DropZone\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tparagraphElement={ paragraphElement }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tcontent\n\t\t\t\t\t\t? __( 'Paragraph block' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tdata-empty={ content ? false : true }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"]}
@@ -47,7 +47,12 @@ function EditableContent(_ref2) {
47
47
  return (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout;
48
48
  }, []);
49
49
  const defaultLayout = useSetting('layout') || {};
50
- const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
50
+ const usedLayout = !(layout !== null && layout !== void 0 && layout.type) ? { ...defaultLayout,
51
+ ...layout,
52
+ type: 'default'
53
+ } : { ...defaultLayout,
54
+ ...layout
55
+ };
51
56
  const [blocks, onInput, onChange] = useEntityBlockEditor('postType', postType, {
52
57
  id: postId
53
58
  });