@wordpress/block-library 9.24.0 → 9.26.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 (300) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/avatar/edit.js +84 -39
  3. package/build/avatar/edit.js.map +1 -1
  4. package/build/avatar/user-control.js +32 -17
  5. package/build/avatar/user-control.js.map +1 -1
  6. package/build/button/edit.js +29 -17
  7. package/build/button/edit.js.map +1 -1
  8. package/build/columns/edit.js +18 -22
  9. package/build/columns/edit.js.map +1 -1
  10. package/build/comment-author-name/edit.js +41 -12
  11. package/build/comment-author-name/edit.js.map +1 -1
  12. package/build/comment-date/edit.js +41 -12
  13. package/build/comment-date/edit.js.map +1 -1
  14. package/build/comment-edit-link/edit.js +27 -7
  15. package/build/comment-edit-link/edit.js.map +1 -1
  16. package/build/comments/edit/comments-inspector-controls.js +1 -3
  17. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  18. package/build/comments-pagination/edit.js +23 -9
  19. package/build/comments-pagination/edit.js.map +1 -1
  20. package/build/comments-title/edit.js +41 -12
  21. package/build/comments-title/edit.js.map +1 -1
  22. package/build/details/edit.js +27 -3
  23. package/build/details/edit.js.map +1 -1
  24. package/build/embed/edit.js +2 -4
  25. package/build/embed/edit.js.map +1 -1
  26. package/build/embed/embed-controls.js +41 -22
  27. package/build/embed/embed-controls.js.map +1 -1
  28. package/build/embed/variations.js +0 -10
  29. package/build/embed/variations.js.map +1 -1
  30. package/build/file/inspector.js +73 -30
  31. package/build/file/inspector.js.map +1 -1
  32. package/build/form/edit.js +67 -38
  33. package/build/form/edit.js.map +1 -1
  34. package/build/form/index.js +3 -3
  35. package/build/form/index.js.map +1 -1
  36. package/build/form-input/edit.js +47 -18
  37. package/build/form-input/edit.js.map +1 -1
  38. package/build/form-input/index.js +2 -1
  39. package/build/form-input/index.js.map +1 -1
  40. package/build/form-submission-notification/index.js +2 -1
  41. package/build/form-submission-notification/index.js.map +1 -1
  42. package/build/form-submit-button/index.js +2 -1
  43. package/build/form-submit-button/index.js.map +1 -1
  44. package/build/image/image.js +1 -0
  45. package/build/image/image.js.map +1 -1
  46. package/build/image/view.js +0 -3
  47. package/build/image/view.js.map +1 -1
  48. package/build/latest-posts/edit.js +154 -82
  49. package/build/latest-posts/edit.js.map +1 -1
  50. package/build/list/ordered-list-settings.js +131 -52
  51. package/build/list/ordered-list-settings.js.map +1 -1
  52. package/build/navigation/edit/index.js +93 -51
  53. package/build/navigation/edit/index.js.map +1 -1
  54. package/build/navigation/edit/overlay-menu-preview.js +43 -27
  55. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  56. package/build/navigation-link/edit.js +11 -0
  57. package/build/navigation-link/edit.js.map +1 -1
  58. package/build/navigation-link/index.js +3 -0
  59. package/build/navigation-link/index.js.map +1 -1
  60. package/build/navigation-link/transforms.js +2 -0
  61. package/build/navigation-link/transforms.js.map +1 -1
  62. package/build/navigation-link/update-attributes.js +1 -0
  63. package/build/navigation-link/update-attributes.js.map +1 -1
  64. package/build/navigation-submenu/index.js +3 -0
  65. package/build/navigation-submenu/index.js.map +1 -1
  66. package/build/post-author/edit.js +75 -18
  67. package/build/post-author/edit.js.map +1 -1
  68. package/build/post-comments-count/index.js +3 -1
  69. package/build/post-comments-count/index.js.map +1 -1
  70. package/build/post-comments-count/transforms.js +26 -0
  71. package/build/post-comments-count/transforms.js.map +1 -0
  72. package/build/post-comments-link/index.js +3 -1
  73. package/build/post-comments-link/index.js.map +1 -1
  74. package/build/post-comments-link/transforms.js +26 -0
  75. package/build/post-comments-link/transforms.js.map +1 -0
  76. package/build/post-navigation-link/edit.js +72 -33
  77. package/build/post-navigation-link/edit.js.map +1 -1
  78. package/build/post-title/edit.js +56 -18
  79. package/build/post-title/edit.js.map +1 -1
  80. package/build/query/edit/enhanced-pagination-modal.js +1 -1
  81. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  82. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -6
  83. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  84. package/build/rss/edit.js +120 -46
  85. package/build/rss/edit.js.map +1 -1
  86. package/build/separator/edit.js +52 -20
  87. package/build/separator/edit.js.map +1 -1
  88. package/build/shortcode/index.js +2 -1
  89. package/build/shortcode/index.js.map +1 -1
  90. package/build/site-logo/edit.js +53 -19
  91. package/build/site-logo/edit.js.map +1 -1
  92. package/build/social-link/edit.js +21 -5
  93. package/build/social-link/edit.js.map +1 -1
  94. package/build/social-link/edit.native.js +13 -5
  95. package/build/social-link/edit.native.js.map +1 -1
  96. package/build/social-link/social-list.js +17 -25
  97. package/build/social-link/social-list.js.map +1 -1
  98. package/build/social-link/variations.js +53 -48
  99. package/build/social-link/variations.js.map +1 -1
  100. package/build/social-links/edit.js +38 -45
  101. package/build/social-links/edit.js.map +1 -1
  102. package/build/video/tracks-editor.js +63 -21
  103. package/build/video/tracks-editor.js.map +1 -1
  104. package/build-module/avatar/edit.js +83 -38
  105. package/build-module/avatar/edit.js.map +1 -1
  106. package/build-module/avatar/user-control.js +33 -18
  107. package/build-module/avatar/user-control.js.map +1 -1
  108. package/build-module/button/edit.js +30 -18
  109. package/build-module/button/edit.js.map +1 -1
  110. package/build-module/columns/edit.js +18 -22
  111. package/build-module/columns/edit.js.map +1 -1
  112. package/build-module/comment-author-name/edit.js +42 -13
  113. package/build-module/comment-author-name/edit.js.map +1 -1
  114. package/build-module/comment-date/edit.js +42 -13
  115. package/build-module/comment-date/edit.js.map +1 -1
  116. package/build-module/comment-edit-link/edit.js +28 -8
  117. package/build-module/comment-edit-link/edit.js.map +1 -1
  118. package/build-module/comments/edit/comments-inspector-controls.js +1 -3
  119. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  120. package/build-module/comments-pagination/edit.js +24 -10
  121. package/build-module/comments-pagination/edit.js.map +1 -1
  122. package/build-module/comments-title/edit.js +42 -13
  123. package/build-module/comments-title/edit.js.map +1 -1
  124. package/build-module/details/edit.js +29 -5
  125. package/build-module/details/edit.js.map +1 -1
  126. package/build-module/embed/edit.js +2 -4
  127. package/build-module/embed/edit.js.map +1 -1
  128. package/build-module/embed/embed-controls.js +42 -23
  129. package/build-module/embed/embed-controls.js.map +1 -1
  130. package/build-module/embed/variations.js +0 -10
  131. package/build-module/embed/variations.js.map +1 -1
  132. package/build-module/file/inspector.js +74 -31
  133. package/build-module/file/inspector.js.map +1 -1
  134. package/build-module/form/edit.js +68 -39
  135. package/build-module/form/edit.js.map +1 -1
  136. package/build-module/form/index.js +3 -3
  137. package/build-module/form/index.js.map +1 -1
  138. package/build-module/form-input/edit.js +48 -19
  139. package/build-module/form-input/edit.js.map +1 -1
  140. package/build-module/form-input/index.js +2 -1
  141. package/build-module/form-input/index.js.map +1 -1
  142. package/build-module/form-submission-notification/index.js +2 -1
  143. package/build-module/form-submission-notification/index.js.map +1 -1
  144. package/build-module/form-submit-button/index.js +2 -1
  145. package/build-module/form-submit-button/index.js.map +1 -1
  146. package/build-module/image/image.js +1 -0
  147. package/build-module/image/image.js.map +1 -1
  148. package/build-module/image/view.js +0 -3
  149. package/build-module/image/view.js.map +1 -1
  150. package/build-module/latest-posts/edit.js +155 -83
  151. package/build-module/latest-posts/edit.js.map +1 -1
  152. package/build-module/list/ordered-list-settings.js +132 -53
  153. package/build-module/list/ordered-list-settings.js.map +1 -1
  154. package/build-module/navigation/edit/index.js +94 -52
  155. package/build-module/navigation/edit/index.js.map +1 -1
  156. package/build-module/navigation/edit/overlay-menu-preview.js +44 -28
  157. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  158. package/build-module/navigation-link/edit.js +11 -0
  159. package/build-module/navigation-link/edit.js.map +1 -1
  160. package/build-module/navigation-link/index.js +3 -0
  161. package/build-module/navigation-link/index.js.map +1 -1
  162. package/build-module/navigation-link/transforms.js +2 -0
  163. package/build-module/navigation-link/transforms.js.map +1 -1
  164. package/build-module/navigation-link/update-attributes.js +1 -0
  165. package/build-module/navigation-link/update-attributes.js.map +1 -1
  166. package/build-module/navigation-submenu/index.js +3 -0
  167. package/build-module/navigation-submenu/index.js.map +1 -1
  168. package/build-module/post-author/edit.js +76 -19
  169. package/build-module/post-author/edit.js.map +1 -1
  170. package/build-module/post-comments-count/index.js +3 -1
  171. package/build-module/post-comments-count/index.js.map +1 -1
  172. package/build-module/post-comments-count/transforms.js +19 -0
  173. package/build-module/post-comments-count/transforms.js.map +1 -0
  174. package/build-module/post-comments-link/index.js +3 -1
  175. package/build-module/post-comments-link/index.js.map +1 -1
  176. package/build-module/post-comments-link/transforms.js +19 -0
  177. package/build-module/post-comments-link/transforms.js.map +1 -0
  178. package/build-module/post-navigation-link/edit.js +73 -34
  179. package/build-module/post-navigation-link/edit.js.map +1 -1
  180. package/build-module/post-title/edit.js +57 -19
  181. package/build-module/post-title/edit.js.map +1 -1
  182. package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
  183. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  184. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -6
  185. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  186. package/build-module/rss/edit.js +121 -47
  187. package/build-module/rss/edit.js.map +1 -1
  188. package/build-module/separator/edit.js +54 -22
  189. package/build-module/separator/edit.js.map +1 -1
  190. package/build-module/shortcode/index.js +2 -1
  191. package/build-module/shortcode/index.js.map +1 -1
  192. package/build-module/site-logo/edit.js +54 -20
  193. package/build-module/site-logo/edit.js.map +1 -1
  194. package/build-module/social-link/edit.js +24 -8
  195. package/build-module/social-link/edit.js.map +1 -1
  196. package/build-module/social-link/edit.native.js +15 -6
  197. package/build-module/social-link/edit.native.js.map +1 -1
  198. package/build-module/social-link/social-list.js +16 -21
  199. package/build-module/social-link/social-list.js.map +1 -1
  200. package/build-module/social-link/variations.js +53 -48
  201. package/build-module/social-link/variations.js.map +1 -1
  202. package/build-module/social-links/edit.js +40 -47
  203. package/build-module/social-links/edit.js.map +1 -1
  204. package/build-module/video/tracks-editor.js +65 -23
  205. package/build-module/video/tracks-editor.js.map +1 -1
  206. package/build-style/calendar/style-rtl.css +7 -7
  207. package/build-style/calendar/style.css +7 -7
  208. package/build-style/comments-pagination/editor-rtl.css +0 -12
  209. package/build-style/comments-pagination/editor.css +0 -14
  210. package/build-style/comments-pagination/style-rtl.css +0 -7
  211. package/build-style/comments-pagination/style.css +0 -9
  212. package/build-style/editor-rtl.css +9 -21
  213. package/build-style/editor.css +9 -23
  214. package/build-style/gallery/style-rtl.css +1 -0
  215. package/build-style/gallery/style.css +1 -0
  216. package/build-style/navigation/editor-rtl.css +8 -3
  217. package/build-style/navigation/editor.css +8 -3
  218. package/build-style/navigation/style-rtl.css +4 -0
  219. package/build-style/navigation/style.css +4 -0
  220. package/build-style/pullquote/editor-rtl.css +1 -1
  221. package/build-style/pullquote/editor.css +1 -1
  222. package/build-style/pullquote/style-rtl.css +2 -3
  223. package/build-style/pullquote/style.css +2 -3
  224. package/build-style/pullquote/theme-rtl.css +2 -2
  225. package/build-style/pullquote/theme.css +2 -2
  226. package/build-style/style-rtl.css +14 -17
  227. package/build-style/style.css +14 -19
  228. package/build-style/theme-rtl.css +2 -2
  229. package/build-style/theme.css +2 -2
  230. package/package.json +35 -35
  231. package/src/avatar/edit.js +99 -51
  232. package/src/avatar/user-control.js +34 -29
  233. package/src/button/edit.js +44 -29
  234. package/src/calendar/style.scss +10 -10
  235. package/src/columns/edit.js +20 -31
  236. package/src/comment-author-name/edit.js +54 -13
  237. package/src/comment-date/edit.js +50 -15
  238. package/src/comment-edit-link/edit.js +39 -11
  239. package/src/comments/edit/comments-inspector-controls.js +0 -2
  240. package/src/comments-pagination/edit.js +29 -9
  241. package/src/comments-pagination/editor.scss +0 -15
  242. package/src/comments-pagination/style.scss +0 -8
  243. package/src/comments-title/edit.js +53 -15
  244. package/src/details/edit.js +36 -4
  245. package/src/editor.scss +0 -1
  246. package/src/embed/edit.js +3 -5
  247. package/src/embed/embed-controls.js +55 -33
  248. package/src/embed/variations.js +0 -8
  249. package/src/file/inspector.js +99 -45
  250. package/src/form/block.json +1 -2
  251. package/src/form/edit.js +91 -47
  252. package/src/form/index.js +1 -0
  253. package/src/form-input/edit.js +56 -18
  254. package/src/form-input/index.js +1 -0
  255. package/src/form-submission-notification/index.js +1 -0
  256. package/src/form-submit-button/index.js +1 -0
  257. package/src/gallery/style.scss +1 -0
  258. package/src/image/image.js +1 -0
  259. package/src/image/index.php +4 -1
  260. package/src/image/view.js +0 -3
  261. package/src/latest-posts/edit.js +206 -98
  262. package/src/list/ordered-list-settings.js +172 -62
  263. package/src/navigation/edit/index.js +127 -64
  264. package/src/navigation/edit/overlay-menu-preview.js +43 -26
  265. package/src/navigation/editor.scss +8 -4
  266. package/src/navigation/style.scss +8 -0
  267. package/src/navigation-link/block.json +3 -0
  268. package/src/navigation-link/edit.js +14 -1
  269. package/src/navigation-link/index.php +4 -0
  270. package/src/navigation-link/transforms.js +2 -1
  271. package/src/navigation-link/update-attributes.js +1 -0
  272. package/src/navigation-submenu/block.json +3 -0
  273. package/src/navigation-submenu/index.php +4 -0
  274. package/src/post-author/edit.js +91 -27
  275. package/src/post-comments-count/index.js +2 -0
  276. package/src/post-comments-count/transforms.js +20 -0
  277. package/src/post-comments-link/index.js +2 -0
  278. package/src/post-comments-link/transforms.js +20 -0
  279. package/src/post-navigation-link/edit.js +96 -51
  280. package/src/post-title/edit.js +76 -24
  281. package/src/pullquote/editor.scss +1 -1
  282. package/src/pullquote/style.scss +2 -3
  283. package/src/pullquote/theme.scss +2 -2
  284. package/src/query/edit/enhanced-pagination-modal.js +1 -5
  285. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -13
  286. package/src/rss/edit.js +141 -55
  287. package/src/separator/edit.js +66 -21
  288. package/src/shortcode/block.json +2 -1
  289. package/src/site-logo/edit.js +69 -26
  290. package/src/site-title/index.php +1 -1
  291. package/src/social-link/edit.js +18 -7
  292. package/src/social-link/edit.native.js +10 -4
  293. package/src/social-link/index.php +62 -49
  294. package/src/social-link/social-list.js +15 -20
  295. package/src/social-link/variations.js +53 -48
  296. package/src/social-links/edit.js +38 -60
  297. package/src/video/tracks-editor.js +75 -22
  298. package/build-style/post-author/editor-rtl.css +0 -140
  299. package/build-style/post-author/editor.css +0 -140
  300. package/src/post-author/editor.scss +0 -7
@@ -12,9 +12,18 @@ import {
12
12
  InspectorControls,
13
13
  useBlockProps,
14
14
  } from '@wordpress/block-editor';
15
- import { PanelBody, ToggleControl } from '@wordpress/components';
15
+ import {
16
+ ToggleControl,
17
+ __experimentalToolsPanel as ToolsPanel,
18
+ __experimentalToolsPanelItem as ToolsPanelItem,
19
+ } from '@wordpress/components';
16
20
  import { __ } from '@wordpress/i18n';
17
21
 
22
+ /**
23
+ * Internal dependencies
24
+ */
25
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
26
+
18
27
  export default function Edit( {
19
28
  attributes: { linkTarget, textAlign },
20
29
  setAttributes,
@@ -25,6 +34,8 @@ export default function Edit( {
25
34
  } ),
26
35
  } );
27
36
 
37
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
38
+
28
39
  const blockControls = (
29
40
  <BlockControls group="block">
30
41
  <AlignmentControl
@@ -37,18 +48,35 @@ export default function Edit( {
37
48
  );
38
49
  const inspectorControls = (
39
50
  <InspectorControls>
40
- <PanelBody title={ __( 'Settings' ) }>
41
- <ToggleControl
42
- __nextHasNoMarginBottom
51
+ <ToolsPanel
52
+ label={ __( 'Settings' ) }
53
+ resetAll={ () => {
54
+ setAttributes( {
55
+ linkTarget: '_self',
56
+ } );
57
+ } }
58
+ dropdownMenuProps={ dropdownMenuProps }
59
+ >
60
+ <ToolsPanelItem
43
61
  label={ __( 'Open in new tab' ) }
44
- onChange={ ( value ) =>
45
- setAttributes( {
46
- linkTarget: value ? '_blank' : '_self',
47
- } )
62
+ isShownByDefault
63
+ hasValue={ () => linkTarget === '_blank' }
64
+ onDeselect={ () =>
65
+ setAttributes( { linkTarget: '_self' } )
48
66
  }
49
- checked={ linkTarget === '_blank' }
50
- />
51
- </PanelBody>
67
+ >
68
+ <ToggleControl
69
+ __nextHasNoMarginBottom
70
+ label={ __( 'Open in new tab' ) }
71
+ onChange={ ( value ) =>
72
+ setAttributes( {
73
+ linkTarget: value ? '_blank' : '_self',
74
+ } )
75
+ }
76
+ checked={ linkTarget === '_blank' }
77
+ />
78
+ </ToolsPanelItem>
79
+ </ToolsPanel>
52
80
  </InspectorControls>
53
81
  );
54
82
 
@@ -17,7 +17,6 @@ const { HTMLElementControl } = unlock( blockEditorPrivateApis );
17
17
  export default function CommentsInspectorControls( {
18
18
  attributes: { tagName },
19
19
  setAttributes,
20
- clientId,
21
20
  } ) {
22
21
  return (
23
22
  <InspectorControls>
@@ -27,7 +26,6 @@ export default function CommentsInspectorControls( {
27
26
  onChange={ ( value ) =>
28
27
  setAttributes( { tagName: value } )
29
28
  }
30
- clientId={ clientId }
31
29
  options={ [
32
30
  { label: __( 'Default (<div>)' ), value: 'div' },
33
31
  { label: '<section>', value: 'section' },
@@ -10,12 +10,16 @@ import {
10
10
  Warning,
11
11
  } from '@wordpress/block-editor';
12
12
  import { useSelect } from '@wordpress/data';
13
- import { PanelBody } from '@wordpress/components';
13
+ import {
14
+ __experimentalToolsPanel as ToolsPanel,
15
+ __experimentalToolsPanelItem as ToolsPanelItem,
16
+ } from '@wordpress/components';
14
17
 
15
18
  /**
16
19
  * Internal dependencies
17
20
  */
18
21
  import { CommentsPaginationArrowControls } from './comments-pagination-arrow-controls';
22
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
19
23
 
20
24
  const TEMPLATE = [
21
25
  [ 'core/comments-pagination-previous' ],
@@ -45,6 +49,7 @@ export default function QueryPaginationEdit( {
45
49
  }, [] );
46
50
 
47
51
  const blockProps = useBlockProps();
52
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
48
53
  const innerBlocksProps = useInnerBlocksProps( blockProps, {
49
54
  template: TEMPLATE,
50
55
  } );
@@ -73,14 +78,29 @@ export default function QueryPaginationEdit( {
73
78
  <>
74
79
  { hasNextPreviousBlocks && (
75
80
  <InspectorControls>
76
- <PanelBody title={ __( 'Settings' ) }>
77
- <CommentsPaginationArrowControls
78
- value={ paginationArrow }
79
- onChange={ ( value ) => {
80
- setAttributes( { paginationArrow: value } );
81
- } }
82
- />
83
- </PanelBody>
81
+ <ToolsPanel
82
+ label={ __( 'Settings' ) }
83
+ dropdownMenuProps={ dropdownMenuProps }
84
+ resetAll={ () =>
85
+ setAttributes( { paginationArrow: 'none' } )
86
+ }
87
+ >
88
+ <ToolsPanelItem
89
+ label={ __( 'Arrow' ) }
90
+ hasValue={ () => paginationArrow !== 'none' }
91
+ onDeselect={ () =>
92
+ setAttributes( { paginationArrow: 'none' } )
93
+ }
94
+ isShownByDefault
95
+ >
96
+ <CommentsPaginationArrowControls
97
+ value={ paginationArrow }
98
+ onChange={ ( value ) => {
99
+ setAttributes( { paginationArrow: value } );
100
+ } }
101
+ />
102
+ </ToolsPanelItem>
103
+ </ToolsPanel>
84
104
  </InspectorControls>
85
105
  ) }
86
106
  <div { ...innerBlocksProps } />
@@ -8,9 +8,6 @@ $pagination-margin: 0.5em;
8
8
  :where(.editor-styles-wrapper) {
9
9
  .wp-block-comments-pagination {
10
10
  max-width: 100%;
11
- &.block-editor-block-list__layout {
12
- margin: 0;
13
- }
14
11
  }
15
12
  }
16
13
 
@@ -18,18 +15,6 @@ $pagination-margin: 0.5em;
18
15
  > .wp-block-comments-pagination-next,
19
16
  > .wp-block-comments-pagination-previous,
20
17
  > .wp-block-comments-pagination-numbers {
21
- // Override editor auto block margins.
22
- margin-left: 0;
23
- margin-top: $pagination-margin;
24
-
25
- /*rtl:ignore*/
26
- margin-right: $pagination-margin;
27
- margin-bottom: $pagination-margin;
28
-
29
18
  font-size: inherit;
30
- &:last-child {
31
- /*rtl:ignore*/
32
- margin-right: 0;
33
- }
34
19
  }
35
20
  }
@@ -4,15 +4,7 @@ $pagination-margin: 0.5em;
4
4
  > .wp-block-comments-pagination-next,
5
5
  > .wp-block-comments-pagination-previous,
6
6
  > .wp-block-comments-pagination-numbers {
7
- /*rtl:ignore*/
8
- margin-right: $pagination-margin;
9
- margin-bottom: $pagination-margin;
10
-
11
7
  font-size: inherit;
12
- &:last-child {
13
- /*rtl:ignore*/
14
- margin-right: 0;
15
- }
16
8
  }
17
9
  .wp-block-comments-pagination-previous-arrow {
18
10
  margin-right: 1ch;
@@ -16,12 +16,21 @@ import {
16
16
  } from '@wordpress/block-editor';
17
17
  import { __, _n, sprintf } from '@wordpress/i18n';
18
18
  import { useEntityProp } from '@wordpress/core-data';
19
- import { PanelBody, ToggleControl } from '@wordpress/components';
19
+ import {
20
+ ToggleControl,
21
+ __experimentalToolsPanel as ToolsPanel,
22
+ __experimentalToolsPanelItem as ToolsPanelItem,
23
+ } from '@wordpress/components';
20
24
  import { useState, useEffect } from '@wordpress/element';
21
25
  import { useSelect } from '@wordpress/data';
22
26
  import apiFetch from '@wordpress/api-fetch';
23
27
  import { addQueryArgs } from '@wordpress/url';
24
28
 
29
+ /**
30
+ * Internal dependencies
31
+ */
32
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
33
+
25
34
  export default function Edit( {
26
35
  attributes: {
27
36
  textAlign,
@@ -53,6 +62,8 @@ export default function Edit( {
53
62
  return getSettings().__experimentalDiscussionSettings;
54
63
  } );
55
64
 
65
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
66
+
56
67
  useEffect( () => {
57
68
  if ( isSiteEditor ) {
58
69
  // Match the number of comments that will be shown in the comment-template/edit.js placeholder
@@ -111,24 +122,51 @@ export default function Edit( {
111
122
 
112
123
  const inspectorControls = (
113
124
  <InspectorControls>
114
- <PanelBody title={ __( 'Settings' ) }>
115
- <ToggleControl
116
- __nextHasNoMarginBottom
125
+ <ToolsPanel
126
+ label={ __( 'Settings' ) }
127
+ resetAll={ () => {
128
+ setAttributes( {
129
+ showPostTitle: true,
130
+ showCommentsCount: true,
131
+ } );
132
+ } }
133
+ dropdownMenuProps={ dropdownMenuProps }
134
+ >
135
+ <ToolsPanelItem
117
136
  label={ __( 'Show post title' ) }
118
- checked={ showPostTitle }
119
- onChange={ ( value ) =>
120
- setAttributes( { showPostTitle: value } )
137
+ isShownByDefault
138
+ hasValue={ () => ! showPostTitle }
139
+ onDeselect={ () =>
140
+ setAttributes( { showPostTitle: true } )
121
141
  }
122
- />
123
- <ToggleControl
124
- __nextHasNoMarginBottom
142
+ >
143
+ <ToggleControl
144
+ __nextHasNoMarginBottom
145
+ label={ __( 'Show post title' ) }
146
+ checked={ showPostTitle }
147
+ onChange={ ( value ) =>
148
+ setAttributes( { showPostTitle: value } )
149
+ }
150
+ />
151
+ </ToolsPanelItem>
152
+ <ToolsPanelItem
125
153
  label={ __( 'Show comments count' ) }
126
- checked={ showCommentsCount }
127
- onChange={ ( value ) =>
128
- setAttributes( { showCommentsCount: value } )
154
+ isShownByDefault
155
+ hasValue={ () => ! showCommentsCount }
156
+ onDeselect={ () =>
157
+ setAttributes( { showCommentsCount: true } )
129
158
  }
130
- />
131
- </PanelBody>
159
+ >
160
+ <ToggleControl
161
+ __nextHasNoMarginBottom
162
+ label={ __( 'Show comments count' ) }
163
+ checked={ showCommentsCount }
164
+ onChange={ ( value ) =>
165
+ setAttributes( { showCommentsCount: value } )
166
+ }
167
+ />
168
+ </ToolsPanelItem>
169
+ </ToolsPanel>
132
170
  </InspectorControls>
133
171
  );
134
172
 
@@ -6,20 +6,26 @@ import {
6
6
  useBlockProps,
7
7
  useInnerBlocksProps,
8
8
  InspectorControls,
9
+ store as blockEditorStore,
9
10
  } from '@wordpress/block-editor';
10
11
  import {
11
12
  TextControl,
12
13
  ToggleControl,
13
14
  __experimentalToolsPanel as ToolsPanel,
14
15
  __experimentalToolsPanelItem as ToolsPanelItem,
16
+ privateApis as componentsPrivateApis,
15
17
  } from '@wordpress/components';
16
18
  import { __ } from '@wordpress/i18n';
17
19
  import { useState } from '@wordpress/element';
20
+ import { useSelect } from '@wordpress/data';
18
21
 
19
22
  /**
20
23
  * Internal dependencies
21
24
  */
22
25
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
26
+ import { unlock } from '../lock-unlock';
27
+
28
+ const { withIgnoreIMEEvents } = unlock( componentsPrivateApis );
23
29
 
24
30
  const TEMPLATE = [
25
31
  [
@@ -30,7 +36,7 @@ const TEMPLATE = [
30
36
  ],
31
37
  ];
32
38
 
33
- function DetailsEdit( { attributes, setAttributes } ) {
39
+ function DetailsEdit( { attributes, setAttributes, clientId } ) {
34
40
  const { name, showContent, summary, allowedBlocks, placeholder } =
35
41
  attributes;
36
42
  const blockProps = useBlockProps();
@@ -42,6 +48,27 @@ function DetailsEdit( { attributes, setAttributes } ) {
42
48
  const [ isOpen, setIsOpen ] = useState( showContent );
43
49
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
44
50
 
51
+ // Check if the inner blocks are selected.
52
+ const hasSelectedInnerBlock = useSelect(
53
+ ( select ) =>
54
+ select( blockEditorStore ).hasSelectedInnerBlock( clientId, true ),
55
+ [ clientId ]
56
+ );
57
+
58
+ const handleSummaryKeyDown = ( event ) => {
59
+ if ( event.key === 'Enter' && ! event.shiftKey ) {
60
+ setIsOpen( ( prevIsOpen ) => ! prevIsOpen );
61
+ event.preventDefault();
62
+ }
63
+ };
64
+
65
+ // Prevent spacebar from toggling <details> while typing.
66
+ const handleSummaryKeyUp = ( event ) => {
67
+ if ( event.key === ' ' ) {
68
+ event.preventDefault();
69
+ }
70
+ };
71
+
45
72
  return (
46
73
  <>
47
74
  <InspectorControls>
@@ -93,13 +120,18 @@ function DetailsEdit( { attributes, setAttributes } ) {
93
120
  </InspectorControls>
94
121
  <details
95
122
  { ...innerBlocksProps }
96
- open={ isOpen }
123
+ open={ isOpen || hasSelectedInnerBlock }
97
124
  onToggle={ ( event ) => setIsOpen( event.target.open ) }
98
125
  >
99
- <summary>
126
+ <summary
127
+ onKeyDown={ withIgnoreIMEEvents( handleSummaryKeyDown ) }
128
+ onKeyUp={ handleSummaryKeyUp }
129
+ >
100
130
  <RichText
101
131
  identifier="summary"
102
- aria-label={ __( 'Write summary' ) }
132
+ aria-label={ __(
133
+ 'Write summary. Press Enter to expand or collapse the details.'
134
+ ) }
103
135
  placeholder={ placeholder || __( 'Write summary…' ) }
104
136
  withoutInteractiveFormatting
105
137
  value={ summary }
package/src/editor.scss CHANGED
@@ -31,7 +31,6 @@
31
31
  @import "./nextpage/editor.scss";
32
32
  @import "./page-list/editor.scss";
33
33
  @import "./paragraph/editor.scss";
34
- @import "./post-author/editor.scss";
35
34
  @import "./post-excerpt/editor.scss";
36
35
  @import "./pullquote/editor.scss";
37
36
  @import "./rss/editor.scss";
package/src/embed/edit.js CHANGED
@@ -118,11 +118,9 @@ const EmbedEdit = ( props ) => {
118
118
  responsive
119
119
  );
120
120
 
121
- const toggleResponsive = () => {
122
- const { allowResponsive, className } = attributes;
121
+ function toggleResponsive( newAllowResponsive ) {
122
+ const { className } = attributes;
123
123
  const { html } = preview;
124
- const newAllowResponsive = ! allowResponsive;
125
-
126
124
  setAttributes( {
127
125
  allowResponsive: newAllowResponsive,
128
126
  className: getClassNames(
@@ -131,7 +129,7 @@ const EmbedEdit = ( props ) => {
131
129
  responsive && newAllowResponsive
132
130
  ),
133
131
  } );
134
- };
132
+ }
135
133
 
136
134
  useEffect( () => {
137
135
  if ( preview?.html || ! cannotEmbed || ! hasResolved ) {
@@ -4,13 +4,19 @@
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import {
6
6
  ToolbarButton,
7
- PanelBody,
8
7
  ToggleControl,
9
8
  ToolbarGroup,
9
+ __experimentalToolsPanel as ToolsPanel,
10
+ __experimentalToolsPanelItem as ToolsPanelItem,
10
11
  } from '@wordpress/components';
11
12
  import { BlockControls, InspectorControls } from '@wordpress/block-editor';
12
13
  import { edit } from '@wordpress/icons';
13
14
 
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
19
+
14
20
  function getResponsiveHelp( checked ) {
15
21
  return checked
16
22
  ? __(
@@ -28,37 +34,53 @@ const EmbedControls = ( {
28
34
  allowResponsive,
29
35
  toggleResponsive,
30
36
  switchBackToURLInput,
31
- } ) => (
32
- <>
33
- <BlockControls>
34
- <ToolbarGroup>
35
- { showEditButton && (
36
- <ToolbarButton
37
- className="components-toolbar__control"
38
- label={ __( 'Edit URL' ) }
39
- icon={ edit }
40
- onClick={ switchBackToURLInput }
41
- />
42
- ) }
43
- </ToolbarGroup>
44
- </BlockControls>
45
- { themeSupportsResponsive && blockSupportsResponsive && (
46
- <InspectorControls>
47
- <PanelBody
48
- title={ __( 'Media settings' ) }
49
- className="blocks-responsive"
50
- >
51
- <ToggleControl
52
- __nextHasNoMarginBottom
53
- label={ __( 'Resize for smaller devices' ) }
54
- checked={ allowResponsive }
55
- help={ getResponsiveHelp }
56
- onChange={ toggleResponsive }
57
- />
58
- </PanelBody>
59
- </InspectorControls>
60
- ) }
61
- </>
62
- );
37
+ } ) => {
38
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
39
+
40
+ return (
41
+ <>
42
+ <BlockControls>
43
+ <ToolbarGroup>
44
+ { showEditButton && (
45
+ <ToolbarButton
46
+ className="components-toolbar__control"
47
+ label={ __( 'Edit URL' ) }
48
+ icon={ edit }
49
+ onClick={ switchBackToURLInput }
50
+ />
51
+ ) }
52
+ </ToolbarGroup>
53
+ </BlockControls>
54
+ { themeSupportsResponsive && blockSupportsResponsive && (
55
+ <InspectorControls>
56
+ <ToolsPanel
57
+ label={ __( 'Media settings' ) }
58
+ resetAll={ () => {
59
+ toggleResponsive( true );
60
+ } }
61
+ dropdownMenuProps={ dropdownMenuProps }
62
+ >
63
+ <ToolsPanelItem
64
+ label={ __( 'Media settings' ) }
65
+ isShownByDefault
66
+ hasValue={ () => ! allowResponsive }
67
+ onDeselect={ () => {
68
+ toggleResponsive( ! allowResponsive );
69
+ } }
70
+ >
71
+ <ToggleControl
72
+ __nextHasNoMarginBottom
73
+ label={ __( 'Resize for smaller devices' ) }
74
+ checked={ allowResponsive }
75
+ help={ getResponsiveHelp }
76
+ onChange={ toggleResponsive }
77
+ />
78
+ </ToolsPanelItem>
79
+ </ToolsPanel>
80
+ </InspectorControls>
81
+ ) }
82
+ </>
83
+ );
84
+ };
63
85
 
64
86
  export default EmbedControls;
@@ -251,14 +251,6 @@ const variations = [
251
251
  patterns: [ /^https?:\/\/(www\.)?reverbnation\.com\/.+/i ],
252
252
  attributes: { providerNameSlug: 'reverbnation', responsive: true },
253
253
  },
254
- {
255
- name: 'screencast',
256
- title: getTitle( 'Screencast' ),
257
- icon: embedVideoIcon,
258
- description: __( 'Embed Screencast content.' ),
259
- patterns: [ /^https?:\/\/(www\.)?screencast\.com\/.+/i ],
260
- attributes: { providerNameSlug: 'screencast', responsive: true },
261
- },
262
254
  {
263
255
  name: 'scribd',
264
256
  title: getTitle( 'Scribd' ),