@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
@@ -3,10 +3,11 @@
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import {
6
- PanelBody,
7
6
  RangeControl,
8
7
  SelectControl,
9
8
  ToggleControl,
9
+ __experimentalToolsPanel as ToolsPanel,
10
+ __experimentalToolsPanelItem as ToolsPanelItem,
10
11
  } from '@wordpress/components';
11
12
  import { InspectorControls } from '@wordpress/block-editor';
12
13
 
@@ -14,6 +15,7 @@ import { InspectorControls } from '@wordpress/block-editor';
14
15
  * Internal dependencies
15
16
  */
16
17
  import { MIN_PREVIEW_HEIGHT, MAX_PREVIEW_HEIGHT } from './edit';
18
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
17
19
 
18
20
  export default function FileBlockInspector( {
19
21
  hrefs,
@@ -28,6 +30,7 @@ export default function FileBlockInspector( {
28
30
  changePreviewHeight,
29
31
  } ) {
30
32
  const { href, textLinkHref, attachmentPage } = hrefs;
33
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
31
34
 
32
35
  let linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];
33
36
  if ( attachmentPage ) {
@@ -41,58 +44,109 @@ export default function FileBlockInspector( {
41
44
  <>
42
45
  <InspectorControls>
43
46
  { href.endsWith( '.pdf' ) && (
44
- <PanelBody title={ __( 'PDF settings' ) }>
45
- <ToggleControl
46
- __nextHasNoMarginBottom
47
+ <ToolsPanel
48
+ label={ __( 'PDF settings' ) }
49
+ resetAll={ () => {
50
+ changeDisplayPreview( true );
51
+ changePreviewHeight( 600 );
52
+ } }
53
+ dropdownMenuProps={ dropdownMenuProps }
54
+ >
55
+ <ToolsPanelItem
47
56
  label={ __( 'Show inline embed' ) }
48
- help={
49
- displayPreview
50
- ? __(
51
- "Note: Most phone and tablet browsers won't display embedded PDFs."
52
- )
53
- : null
54
- }
55
- checked={ !! displayPreview }
56
- onChange={ changeDisplayPreview }
57
- />
58
- { displayPreview && (
59
- <RangeControl
57
+ isShownByDefault
58
+ hasValue={ () => ! displayPreview }
59
+ onDeselect={ () => changeDisplayPreview( true ) }
60
+ >
61
+ <ToggleControl
60
62
  __nextHasNoMarginBottom
61
- __next40pxDefaultSize
62
- label={ __( 'Height in pixels' ) }
63
- min={ MIN_PREVIEW_HEIGHT }
64
- max={ Math.max(
65
- MAX_PREVIEW_HEIGHT,
66
- previewHeight
67
- ) }
68
- value={ previewHeight }
69
- onChange={ changePreviewHeight }
63
+ label={ __( 'Show inline embed' ) }
64
+ help={
65
+ displayPreview
66
+ ? __(
67
+ "Note: Most phone and tablet browsers won't display embedded PDFs."
68
+ )
69
+ : null
70
+ }
71
+ checked={ !! displayPreview }
72
+ onChange={ changeDisplayPreview }
70
73
  />
74
+ </ToolsPanelItem>
75
+ { displayPreview && (
76
+ <ToolsPanelItem
77
+ label={ __( 'Height in pixels' ) }
78
+ isShownByDefault
79
+ hasValue={ () => previewHeight !== 600 }
80
+ onDeselect={ () => changePreviewHeight( 600 ) }
81
+ >
82
+ <RangeControl
83
+ __nextHasNoMarginBottom
84
+ __next40pxDefaultSize
85
+ label={ __( 'Height in pixels' ) }
86
+ min={ MIN_PREVIEW_HEIGHT }
87
+ max={ Math.max(
88
+ MAX_PREVIEW_HEIGHT,
89
+ previewHeight
90
+ ) }
91
+ value={ previewHeight }
92
+ onChange={ changePreviewHeight }
93
+ />
94
+ </ToolsPanelItem>
71
95
  ) }
72
- </PanelBody>
96
+ </ToolsPanel>
73
97
  ) }
74
- <PanelBody title={ __( 'Settings' ) }>
75
- <SelectControl
76
- __next40pxDefaultSize
77
- __nextHasNoMarginBottom
98
+
99
+ <ToolsPanel
100
+ label={ __( 'Settings' ) }
101
+ resetAll={ () => {
102
+ changeLinkDestinationOption( href );
103
+ changeOpenInNewWindow( false );
104
+ changeShowDownloadButton( true );
105
+ } }
106
+ dropdownMenuProps={ dropdownMenuProps }
107
+ >
108
+ <ToolsPanelItem
78
109
  label={ __( 'Link to' ) }
79
- value={ textLinkHref }
80
- options={ linkDestinationOptions }
81
- onChange={ changeLinkDestinationOption }
82
- />
83
- <ToggleControl
84
- __nextHasNoMarginBottom
110
+ isShownByDefault
111
+ hasValue={ () => textLinkHref !== href }
112
+ onDeselect={ () => changeLinkDestinationOption( href ) }
113
+ >
114
+ <SelectControl
115
+ __next40pxDefaultSize
116
+ __nextHasNoMarginBottom
117
+ label={ __( 'Link to' ) }
118
+ value={ textLinkHref }
119
+ options={ linkDestinationOptions }
120
+ onChange={ changeLinkDestinationOption }
121
+ />
122
+ </ToolsPanelItem>
123
+ <ToolsPanelItem
85
124
  label={ __( 'Open in new tab' ) }
86
- checked={ openInNewWindow }
87
- onChange={ changeOpenInNewWindow }
88
- />
89
- <ToggleControl
90
- __nextHasNoMarginBottom
125
+ isShownByDefault
126
+ hasValue={ () => !! openInNewWindow }
127
+ onDeselect={ () => changeOpenInNewWindow( false ) }
128
+ >
129
+ <ToggleControl
130
+ __nextHasNoMarginBottom
131
+ label={ __( 'Open in new tab' ) }
132
+ checked={ openInNewWindow }
133
+ onChange={ changeOpenInNewWindow }
134
+ />
135
+ </ToolsPanelItem>
136
+ <ToolsPanelItem
91
137
  label={ __( 'Show download button' ) }
92
- checked={ showDownloadButton }
93
- onChange={ changeShowDownloadButton }
94
- />
95
- </PanelBody>
138
+ isShownByDefault
139
+ hasValue={ () => ! showDownloadButton }
140
+ onDeselect={ () => changeShowDownloadButton( true ) }
141
+ >
142
+ <ToggleControl
143
+ __nextHasNoMarginBottom
144
+ label={ __( 'Show download button' ) }
145
+ checked={ showDownloadButton }
146
+ onChange={ changeShowDownloadButton }
147
+ />
148
+ </ToolsPanelItem>
149
+ </ToolsPanel>
96
150
  </InspectorControls>
97
151
  </>
98
152
  );
@@ -62,7 +62,6 @@
62
62
  "__experimentalDefaultControls": {
63
63
  "fontSize": true
64
64
  }
65
- },
66
- "__experimentalSelector": "form"
65
+ }
67
66
  }
68
67
  }
package/src/form/edit.js CHANGED
@@ -9,12 +9,18 @@ import {
9
9
  InspectorControls,
10
10
  store as blockEditorStore,
11
11
  } from '@wordpress/block-editor';
12
- import { TextControl, SelectControl, PanelBody } from '@wordpress/components';
12
+ import {
13
+ SelectControl,
14
+ TextControl,
15
+ __experimentalToolsPanel as ToolsPanel,
16
+ __experimentalToolsPanelItem as ToolsPanelItem,
17
+ } from '@wordpress/components';
13
18
  import { useSelect } from '@wordpress/data';
14
19
 
15
20
  /**
16
21
  * Internal dependencies
17
22
  */
23
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
18
24
  import {
19
25
  formSubmissionNotificationSuccess,
20
26
  formSubmissionNotificationError,
@@ -51,6 +57,17 @@ const TEMPLATE = [
51
57
  ];
52
58
 
53
59
  const Edit = ( { attributes, setAttributes, clientId } ) => {
60
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
61
+
62
+ const resetAllSettings = () => {
63
+ setAttributes( {
64
+ submissionMethod: 'email',
65
+ email: undefined,
66
+ action: undefined,
67
+ method: 'post',
68
+ } );
69
+ };
70
+
54
71
  const { action, method, email, submissionMethod } = attributes;
55
72
  const blockProps = useBlockProps();
56
73
 
@@ -75,58 +92,86 @@ const Edit = ( { attributes, setAttributes, clientId } ) => {
75
92
  return (
76
93
  <>
77
94
  <InspectorControls>
78
- <PanelBody title={ __( 'Settings' ) }>
79
- <SelectControl
80
- __nextHasNoMarginBottom
81
- __next40pxDefaultSize
95
+ <ToolsPanel
96
+ dropdownMenuProps={ dropdownMenuProps }
97
+ label={ __( 'Settings' ) }
98
+ resetAll={ resetAllSettings }
99
+ >
100
+ <ToolsPanelItem
101
+ hasValue={ () => submissionMethod !== 'email' }
82
102
  label={ __( 'Submissions method' ) }
83
- options={ [
84
- // TODO: Allow plugins to add their own submission methods.
85
- {
86
- label: __( 'Send email' ),
87
- value: 'email',
88
- },
89
- {
90
- label: __( '- Custom -' ),
91
- value: 'custom',
92
- },
93
- ] }
94
- value={ submissionMethod }
95
- onChange={ ( value ) =>
96
- setAttributes( { submissionMethod: value } )
97
- }
98
- help={
99
- submissionMethod === 'custom'
100
- ? __(
101
- 'Select the method to use for form submissions. Additional options for the "custom" mode can be found in the "Advanced" section.'
102
- )
103
- : __(
104
- 'Select the method to use for form submissions.'
105
- )
103
+ onDeselect={ () =>
104
+ setAttributes( {
105
+ submissionMethod: 'email',
106
+ } )
106
107
  }
107
- />
108
- { submissionMethod === 'email' && (
109
- <TextControl
108
+ isShownByDefault
109
+ >
110
+ <SelectControl
110
111
  __nextHasNoMarginBottom
111
112
  __next40pxDefaultSize
112
- autoComplete="off"
113
+ label={ __( 'Submissions method' ) }
114
+ options={ [
115
+ // TODO: Allow plugins to add their own submission methods.
116
+ {
117
+ label: __( 'Send email' ),
118
+ value: 'email',
119
+ },
120
+ {
121
+ label: __( '- Custom -' ),
122
+ value: 'custom',
123
+ },
124
+ ] }
125
+ value={ submissionMethod }
126
+ onChange={ ( value ) =>
127
+ setAttributes( { submissionMethod: value } )
128
+ }
129
+ help={
130
+ submissionMethod === 'custom'
131
+ ? __(
132
+ 'Select the method to use for form submissions. Additional options for the "custom" mode can be found in the "Advanced" section.'
133
+ )
134
+ : __(
135
+ 'Select the method to use for form submissions.'
136
+ )
137
+ }
138
+ />
139
+ </ToolsPanelItem>
140
+ { submissionMethod === 'email' && (
141
+ <ToolsPanelItem
142
+ hasValue={ () => !! email }
113
143
  label={ __( 'Email for form submissions' ) }
114
- value={ email }
115
- required
116
- onChange={ ( value ) => {
117
- setAttributes( { email: value } );
144
+ onDeselect={ () =>
118
145
  setAttributes( {
119
- action: `mailto:${ value }`,
120
- } );
121
- setAttributes( { method: 'post' } );
122
- } }
123
- help={ __(
124
- 'The email address where form submissions will be sent. Separate multiple email addresses with a comma.'
125
- ) }
126
- type="email"
127
- />
146
+ email: undefined,
147
+ action: undefined,
148
+ method: 'post',
149
+ } )
150
+ }
151
+ isShownByDefault
152
+ >
153
+ <TextControl
154
+ __nextHasNoMarginBottom
155
+ __next40pxDefaultSize
156
+ autoComplete="off"
157
+ label={ __( 'Email for form submissions' ) }
158
+ value={ email || '' }
159
+ required
160
+ onChange={ ( value ) => {
161
+ setAttributes( { email: value } );
162
+ setAttributes( {
163
+ action: `mailto:${ value }`,
164
+ } );
165
+ setAttributes( { method: 'post' } );
166
+ } }
167
+ help={ __(
168
+ 'The email address where form submissions will be sent. Separate multiple email addresses with a comma.'
169
+ ) }
170
+ type="email"
171
+ />
172
+ </ToolsPanelItem>
128
173
  ) }
129
- </PanelBody>
174
+ </ToolsPanel>
130
175
  </InspectorControls>
131
176
  { submissionMethod !== 'email' && (
132
177
  <InspectorControls group="advanced">
@@ -166,7 +211,6 @@ const Edit = ( { attributes, setAttributes, clientId } ) => {
166
211
  ) }
167
212
  <form
168
213
  { ...innerBlocksProps }
169
- className="wp-block-form"
170
214
  encType={ submissionMethod === 'email' ? 'text/plain' : null }
171
215
  />
172
216
  </>
package/src/form/index.js CHANGED
@@ -20,6 +20,7 @@ export const settings = {
20
20
  edit,
21
21
  save,
22
22
  variations,
23
+ example: {},
23
24
  };
24
25
 
25
26
  export const init = () => {
@@ -14,14 +14,24 @@ import {
14
14
  __experimentalUseBorderProps as useBorderProps,
15
15
  __experimentalUseColorProps as useColorProps,
16
16
  } from '@wordpress/block-editor';
17
- import { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';
18
-
17
+ import {
18
+ TextControl,
19
+ CheckboxControl,
20
+ __experimentalToolsPanel as ToolsPanel,
21
+ __experimentalToolsPanelItem as ToolsPanelItem,
22
+ } from '@wordpress/components';
19
23
  import { useRef } from '@wordpress/element';
20
24
 
25
+ /**
26
+ * Internal dependencies
27
+ */
28
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
29
+
21
30
  function InputFieldBlock( { attributes, setAttributes, className } ) {
22
31
  const { type, name, label, inlineLabel, required, placeholder, value } =
23
32
  attributes;
24
33
  const blockProps = useBlockProps();
34
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
25
35
  const ref = useRef();
26
36
  const TagName = type === 'textarea' ? 'textarea' : 'input';
27
37
 
@@ -38,30 +48,58 @@ function InputFieldBlock( { attributes, setAttributes, className } ) {
38
48
  <>
39
49
  { 'hidden' !== type && (
40
50
  <InspectorControls>
41
- <PanelBody title={ __( 'Settings' ) }>
51
+ <ToolsPanel
52
+ label={ __( 'Settings' ) }
53
+ resetAll={ () => {
54
+ setAttributes( {
55
+ inlineLabel: false,
56
+ required: false,
57
+ } );
58
+ } }
59
+ dropdownMenuProps={ dropdownMenuProps }
60
+ >
42
61
  { 'checkbox' !== type && (
62
+ <ToolsPanelItem
63
+ label={ __( 'Inline label' ) }
64
+ hasValue={ () => !! inlineLabel }
65
+ onDeselect={ () =>
66
+ setAttributes( { inlineLabel: false } )
67
+ }
68
+ isShownByDefault
69
+ >
70
+ <CheckboxControl
71
+ __nextHasNoMarginBottom
72
+ label={ __( 'Inline label' ) }
73
+ checked={ inlineLabel }
74
+ onChange={ ( newVal ) => {
75
+ setAttributes( {
76
+ inlineLabel: newVal,
77
+ } );
78
+ } }
79
+ />
80
+ </ToolsPanelItem>
81
+ ) }
82
+
83
+ <ToolsPanelItem
84
+ label={ __( 'Required' ) }
85
+ hasValue={ () => !! required }
86
+ onDeselect={ () =>
87
+ setAttributes( { required: false } )
88
+ }
89
+ isShownByDefault
90
+ >
43
91
  <CheckboxControl
44
92
  __nextHasNoMarginBottom
45
- label={ __( 'Inline label' ) }
46
- checked={ inlineLabel }
93
+ label={ __( 'Required' ) }
94
+ checked={ required }
47
95
  onChange={ ( newVal ) => {
48
96
  setAttributes( {
49
- inlineLabel: newVal,
97
+ required: newVal,
50
98
  } );
51
99
  } }
52
100
  />
53
- ) }
54
- <CheckboxControl
55
- __nextHasNoMarginBottom
56
- label={ __( 'Required' ) }
57
- checked={ required }
58
- onChange={ ( newVal ) => {
59
- setAttributes( {
60
- required: newVal,
61
- } );
62
- } }
63
- />
64
- </PanelBody>
101
+ </ToolsPanelItem>
102
+ </ToolsPanel>
65
103
  </InspectorControls>
66
104
  ) }
67
105
  <InspectorControls group="advanced">
@@ -17,6 +17,7 @@ export const settings = {
17
17
  edit,
18
18
  save,
19
19
  variations,
20
+ example: {},
20
21
  };
21
22
 
22
23
  export const init = () => initBlock( { name, metadata, settings } );
@@ -21,6 +21,7 @@ export const settings = {
21
21
  edit,
22
22
  save,
23
23
  variations,
24
+ example: {},
24
25
  };
25
26
 
26
27
  export const init = () => initBlock( { name, metadata, settings } );
@@ -13,6 +13,7 @@ export { metadata, name };
13
13
  export const settings = {
14
14
  edit,
15
15
  save,
16
+ example: {},
16
17
  };
17
18
 
18
19
  export const init = () => initBlock( { name, metadata, settings } );
@@ -58,6 +58,7 @@ figure.wp-block-gallery.has-nested-images {
58
58
  content: "";
59
59
  height: 100%;
60
60
  max-height: 40%;
61
+ pointer-events: none;
61
62
 
62
63
  // Blur the background under the gradient scrim.
63
64
  backdrop-filter: blur(3px);
@@ -595,6 +595,7 @@ export default function Image( {
595
595
  aspectRatio: undefined,
596
596
  lightbox: undefined,
597
597
  } );
598
+ updateImage( DEFAULT_MEDIA_SIZE_SLUG );
598
599
  };
599
600
 
600
601
  const sizeControls = (
@@ -204,6 +204,7 @@ function block_core_image_render_lightbox( $block_content, $block ) {
204
204
  JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP
205
205
  )
206
206
  );
207
+ $p->set_attribute( 'data-wp-key', $unique_image_id );
207
208
 
208
209
  // Image.
209
210
  $p->next_tag( 'img' );
@@ -272,12 +273,14 @@ function block_core_image_print_lightbox_overlay() {
272
273
  <div
273
274
  class="wp-lightbox-overlay zoom"
274
275
  data-wp-interactive="core/image"
276
+ data-wp-router-region='{ "id": "core/image-overlay", "attachTo": "body" }'
277
+ data-wp-key="wp-lightbox-overlay"
275
278
  data-wp-context='{}'
276
279
  data-wp-bind--role="state.roleAttribute"
277
280
  data-wp-bind--aria-label="state.currentImage.ariaLabel"
278
281
  data-wp-bind--aria-modal="state.ariaModal"
279
282
  data-wp-class--active="state.overlayEnabled"
280
- data-wp-class--show-closing-animation="state.showClosingAnimation"
283
+ data-wp-class--show-closing-animation="state.overlayOpened"
281
284
  data-wp-watch="callbacks.setOverlayFocus"
282
285
  data-wp-on--keydown="actions.handleKeydown"
283
286
  data-wp-on-async--touchstart="actions.handleTouchStart"
package/src/image/view.js CHANGED
@@ -110,9 +110,6 @@ const { state, actions, callbacks } = store(
110
110
  },
111
111
  hideLightbox() {
112
112
  if ( state.overlayEnabled ) {
113
- // Starts the overlay closing animation. The showClosingAnimation
114
- // class is used to avoid showing it on page load.
115
- state.showClosingAnimation = true;
116
113
  state.overlayEnabled = false;
117
114
 
118
115
  // Waits until the close animation has completed before allowing a