@wordpress/block-library 9.40.2-next.v.202602241322.0 → 9.40.2

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 (226) hide show
  1. package/build/comment-reply-link/edit.cjs +2 -1
  2. package/build/comment-reply-link/edit.cjs.map +2 -2
  3. package/build/comments/edit/placeholder.cjs +2 -1
  4. package/build/comments/edit/placeholder.cjs.map +2 -2
  5. package/build/cover/edit/index.cjs +39 -26
  6. package/build/cover/edit/index.cjs.map +2 -2
  7. package/build/cover/embed-video-utils.cjs +8 -6
  8. package/build/cover/embed-video-utils.cjs.map +2 -2
  9. package/build/embed/embed-preview.cjs +2 -1
  10. package/build/embed/embed-preview.cjs.map +2 -2
  11. package/build/html/block.json +2 -1
  12. package/build/html/modal.cjs +147 -230
  13. package/build/html/modal.cjs.map +3 -3
  14. package/build/icon/block.json +3 -12
  15. package/build/image/image.cjs +1 -1
  16. package/build/image/image.cjs.map +2 -2
  17. package/build/latest-comments/deprecated.cjs +33 -0
  18. package/build/latest-comments/deprecated.cjs.map +2 -2
  19. package/build/navigation/edit/index.cjs +123 -119
  20. package/build/navigation/edit/index.cjs.map +3 -3
  21. package/build/navigation/edit/navigation-menu-selector.cjs +2 -1
  22. package/build/navigation/edit/navigation-menu-selector.cjs.map +2 -2
  23. package/build/navigation/view.cjs +9 -2
  24. package/build/navigation/view.cjs.map +2 -2
  25. package/build/navigation-link/edit.cjs +2 -1
  26. package/build/navigation-link/edit.cjs.map +2 -2
  27. package/build/navigation-link/shared/controls.cjs +29 -52
  28. package/build/navigation-link/shared/controls.cjs.map +3 -3
  29. package/build/navigation-link/shared/use-handle-link-change.cjs +19 -3
  30. package/build/navigation-link/shared/use-handle-link-change.cjs.map +3 -3
  31. package/build/navigation-link/shared/use-link-preview.cjs +8 -9
  32. package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
  33. package/build/navigation-submenu/edit.cjs +8 -22
  34. package/build/navigation-submenu/edit.cjs.map +2 -2
  35. package/build/nextpage/block.json +0 -1
  36. package/build/page-list-item/edit.cjs +6 -3
  37. package/build/page-list-item/edit.cjs.map +2 -2
  38. package/build/paragraph/edit.cjs +1 -1
  39. package/build/paragraph/edit.cjs.map +1 -1
  40. package/build/post-navigation-link/block.json +3 -1
  41. package/build/post-navigation-link/edit.cjs +36 -2
  42. package/build/post-navigation-link/edit.cjs.map +3 -3
  43. package/build/post-navigation-link/index.cjs +0 -2
  44. package/build/post-navigation-link/index.cjs.map +3 -3
  45. package/build/post-title/block.json +3 -1
  46. package/build/post-title/deprecated.cjs +1 -82
  47. package/build/post-title/deprecated.cjs.map +3 -3
  48. package/build/post-title/edit.cjs +36 -10
  49. package/build/post-title/edit.cjs.map +3 -3
  50. package/build/query-title/block.json +3 -1
  51. package/build/query-title/deprecated.cjs +1 -70
  52. package/build/query-title/deprecated.cjs.map +3 -3
  53. package/build/query-title/edit.cjs +35 -17
  54. package/build/query-title/edit.cjs.map +3 -3
  55. package/build/shortcode/block.json +2 -1
  56. package/build/site-tagline/block.json +4 -6
  57. package/build/site-tagline/deprecated.cjs +1 -66
  58. package/build/site-tagline/deprecated.cjs.map +3 -3
  59. package/build/site-tagline/edit.cjs +28 -14
  60. package/build/site-tagline/edit.cjs.map +3 -3
  61. package/build/site-title/block.json +3 -1
  62. package/build/site-title/deprecated.cjs +1 -79
  63. package/build/site-title/deprecated.cjs.map +3 -3
  64. package/build/site-title/edit.cjs +30 -14
  65. package/build/site-title/edit.cjs.map +3 -3
  66. package/build/tabs-menu-item/block.json +26 -1
  67. package/build/tabs-menu-item/controls.cjs +100 -2
  68. package/build/tabs-menu-item/controls.cjs.map +3 -3
  69. package/build/tabs-menu-item/edit.cjs +65 -6
  70. package/build/tabs-menu-item/edit.cjs.map +2 -2
  71. package/build/tabs-menu-item/save.cjs +15 -1
  72. package/build/tabs-menu-item/save.cjs.map +2 -2
  73. package/build-module/comment-reply-link/edit.mjs +3 -2
  74. package/build-module/comment-reply-link/edit.mjs.map +2 -2
  75. package/build-module/comments/edit/placeholder.mjs +3 -2
  76. package/build-module/comments/edit/placeholder.mjs.map +2 -2
  77. package/build-module/cover/edit/index.mjs +47 -29
  78. package/build-module/cover/edit/index.mjs.map +2 -2
  79. package/build-module/cover/embed-video-utils.mjs +7 -5
  80. package/build-module/cover/embed-video-utils.mjs.map +2 -2
  81. package/build-module/embed/embed-preview.mjs +2 -1
  82. package/build-module/embed/embed-preview.mjs.map +2 -2
  83. package/build-module/html/block.json +2 -1
  84. package/build-module/html/modal.mjs +149 -232
  85. package/build-module/html/modal.mjs.map +2 -2
  86. package/build-module/icon/block.json +3 -12
  87. package/build-module/image/image.mjs +1 -1
  88. package/build-module/image/image.mjs.map +2 -2
  89. package/build-module/latest-comments/deprecated.mjs +33 -0
  90. package/build-module/latest-comments/deprecated.mjs.map +2 -2
  91. package/build-module/navigation/edit/index.mjs +123 -119
  92. package/build-module/navigation/edit/index.mjs.map +2 -2
  93. package/build-module/navigation/edit/navigation-menu-selector.mjs +2 -1
  94. package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
  95. package/build-module/navigation/view.mjs +9 -2
  96. package/build-module/navigation/view.mjs.map +2 -2
  97. package/build-module/navigation-link/edit.mjs +2 -1
  98. package/build-module/navigation-link/edit.mjs.map +2 -2
  99. package/build-module/navigation-link/shared/controls.mjs +29 -53
  100. package/build-module/navigation-link/shared/controls.mjs.map +2 -2
  101. package/build-module/navigation-link/shared/use-handle-link-change.mjs +19 -3
  102. package/build-module/navigation-link/shared/use-handle-link-change.mjs.map +2 -2
  103. package/build-module/navigation-link/shared/use-link-preview.mjs +8 -9
  104. package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
  105. package/build-module/navigation-submenu/edit.mjs +9 -23
  106. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  107. package/build-module/nextpage/block.json +0 -1
  108. package/build-module/page-list-item/edit.mjs +6 -3
  109. package/build-module/page-list-item/edit.mjs.map +2 -2
  110. package/build-module/paragraph/edit.mjs +2 -2
  111. package/build-module/paragraph/edit.mjs.map +1 -1
  112. package/build-module/post-navigation-link/block.json +3 -1
  113. package/build-module/post-navigation-link/edit.mjs +30 -3
  114. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  115. package/build-module/post-navigation-link/index.mjs +0 -2
  116. package/build-module/post-navigation-link/index.mjs.map +2 -2
  117. package/build-module/post-title/block.json +3 -1
  118. package/build-module/post-title/deprecated.mjs +1 -82
  119. package/build-module/post-title/deprecated.mjs.map +2 -2
  120. package/build-module/post-title/edit.mjs +27 -10
  121. package/build-module/post-title/edit.mjs.map +2 -2
  122. package/build-module/query-title/block.json +3 -1
  123. package/build-module/query-title/deprecated.mjs +1 -70
  124. package/build-module/query-title/deprecated.mjs.map +2 -2
  125. package/build-module/query-title/edit.mjs +36 -17
  126. package/build-module/query-title/edit.mjs.map +2 -2
  127. package/build-module/shortcode/block.json +2 -1
  128. package/build-module/site-tagline/block.json +4 -6
  129. package/build-module/site-tagline/deprecated.mjs +1 -66
  130. package/build-module/site-tagline/deprecated.mjs.map +2 -2
  131. package/build-module/site-tagline/edit.mjs +29 -14
  132. package/build-module/site-tagline/edit.mjs.map +2 -2
  133. package/build-module/site-title/block.json +3 -1
  134. package/build-module/site-title/deprecated.mjs +1 -79
  135. package/build-module/site-title/deprecated.mjs.map +2 -2
  136. package/build-module/site-title/edit.mjs +31 -14
  137. package/build-module/site-title/edit.mjs.map +2 -2
  138. package/build-module/tabs-menu-item/block.json +26 -1
  139. package/build-module/tabs-menu-item/controls.mjs +104 -3
  140. package/build-module/tabs-menu-item/controls.mjs.map +2 -2
  141. package/build-module/tabs-menu-item/edit.mjs +66 -6
  142. package/build-module/tabs-menu-item/edit.mjs.map +2 -2
  143. package/build-module/tabs-menu-item/save.mjs +15 -1
  144. package/build-module/tabs-menu-item/save.mjs.map +2 -2
  145. package/build-style/editor-rtl.css +30 -6
  146. package/build-style/editor.css +30 -6
  147. package/build-style/html/editor-rtl.css +10 -6
  148. package/build-style/html/editor.css +10 -6
  149. package/build-style/icon/editor-rtl.css +5 -0
  150. package/build-style/icon/editor.css +5 -0
  151. package/build-style/navigation/style-rtl.css +15 -1
  152. package/build-style/navigation/style.css +15 -1
  153. package/build-style/navigation-link/editor-rtl.css +10 -0
  154. package/build-style/navigation-link/editor.css +10 -0
  155. package/build-style/navigation-overlay-close/style-rtl.css +3 -3
  156. package/build-style/navigation-overlay-close/style.css +3 -3
  157. package/build-style/style-rtl.css +30 -7
  158. package/build-style/style.css +30 -7
  159. package/build-style/tabs-menu-item/editor-rtl.css +5 -0
  160. package/build-style/tabs-menu-item/editor.css +5 -0
  161. package/build-style/tabs-menu-item/style-rtl.css +12 -3
  162. package/build-style/tabs-menu-item/style.css +12 -3
  163. package/package.json +38 -38
  164. package/src/accordion-item/index.php +17 -5
  165. package/src/comment-reply-link/edit.js +5 -2
  166. package/src/comments/edit/placeholder.js +5 -2
  167. package/src/cover/edit/index.js +72 -35
  168. package/src/cover/embed-video-utils.js +9 -7
  169. package/src/cover/index.php +8 -0
  170. package/src/details/index.php +47 -0
  171. package/src/embed/embed-preview.js +6 -5
  172. package/src/html/block.json +2 -1
  173. package/src/html/editor.scss +15 -5
  174. package/src/html/modal.js +32 -99
  175. package/src/icon/block.json +3 -12
  176. package/src/icon/editor.scss +5 -0
  177. package/src/icon/index.php +3 -1
  178. package/src/image/image.js +14 -15
  179. package/src/image/index.php +7 -5
  180. package/src/latest-comments/deprecated.js +33 -0
  181. package/src/navigation/edit/index.js +134 -130
  182. package/src/navigation/edit/navigation-menu-selector.js +2 -1
  183. package/src/navigation/index.php +62 -9
  184. package/src/navigation/style.scss +17 -1
  185. package/src/navigation/view.js +14 -2
  186. package/src/navigation-link/edit.js +1 -0
  187. package/src/navigation-link/editor.scss +18 -0
  188. package/src/navigation-link/shared/controls.js +35 -62
  189. package/src/navigation-link/shared/test/controls.js +5 -5
  190. package/src/navigation-link/shared/test/use-handle-link-change.test.js +212 -0
  191. package/src/navigation-link/shared/test/use-link-preview.test.js +19 -1
  192. package/src/navigation-link/shared/use-handle-link-change.js +36 -9
  193. package/src/navigation-link/shared/use-link-preview.js +14 -15
  194. package/src/navigation-overlay-close/style.scss +3 -3
  195. package/src/navigation-submenu/edit.js +11 -28
  196. package/src/nextpage/block.json +0 -1
  197. package/src/page-list-item/edit.js +8 -7
  198. package/src/paragraph/edit.js +2 -2
  199. package/src/post-featured-image/index.php +4 -2
  200. package/src/post-navigation-link/block.json +3 -1
  201. package/src/post-navigation-link/edit.js +35 -2
  202. package/src/post-navigation-link/index.js +0 -2
  203. package/src/post-title/block.json +3 -1
  204. package/src/post-title/deprecated.js +1 -86
  205. package/src/post-title/edit.js +18 -2
  206. package/src/query-title/block.json +3 -1
  207. package/src/query-title/deprecated.js +1 -74
  208. package/src/query-title/edit.js +27 -11
  209. package/src/shortcode/block.json +2 -1
  210. package/src/site-tagline/block.json +4 -6
  211. package/src/site-tagline/deprecated.js +1 -70
  212. package/src/site-tagline/edit.js +22 -9
  213. package/src/site-title/block.json +3 -1
  214. package/src/site-title/deprecated.js +1 -83
  215. package/src/site-title/edit.js +22 -9
  216. package/src/tabs-menu-item/block.json +26 -1
  217. package/src/tabs-menu-item/controls.js +108 -0
  218. package/src/tabs-menu-item/edit.js +79 -6
  219. package/src/tabs-menu-item/editor.scss +6 -0
  220. package/src/tabs-menu-item/save.js +26 -1
  221. package/src/tabs-menu-item/style.scss +14 -3
  222. package/build/post-navigation-link/deprecated.cjs +0 -100
  223. package/build/post-navigation-link/deprecated.cjs.map +0 -7
  224. package/build-module/post-navigation-link/deprecated.mjs +0 -69
  225. package/build-module/post-navigation-link/deprecated.mjs.map +0 -7
  226. package/src/post-navigation-link/deprecated.js +0 -72
@@ -1,3 +1,8 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
@@ -12,7 +17,10 @@ import {
12
17
  import {
13
18
  InspectorControls,
14
19
  RichText,
20
+ BlockControls,
21
+ AlignmentToolbar,
15
22
  useBlockProps,
23
+ useBlockEditingMode,
16
24
  } from '@wordpress/block-editor';
17
25
  import { __, _x } from '@wordpress/i18n';
18
26
  import { useSelect } from '@wordpress/data';
@@ -25,9 +33,19 @@ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
25
33
 
26
34
  export default function PostNavigationLinkEdit( {
27
35
  context: { postType },
28
- attributes: { type, label, showTitle, linkLabel, arrow, taxonomy },
36
+ attributes: {
37
+ type,
38
+ label,
39
+ showTitle,
40
+ textAlign,
41
+ linkLabel,
42
+ arrow,
43
+ taxonomy,
44
+ },
29
45
  setAttributes,
30
46
  } ) {
47
+ const blockEditingMode = useBlockEditingMode();
48
+ const showControls = blockEditingMode === 'default';
31
49
  const isNext = type === 'next';
32
50
  let placeholder = isNext ? __( 'Next' ) : __( 'Previous' );
33
51
 
@@ -48,7 +66,12 @@ export default function PostNavigationLinkEdit( {
48
66
  }
49
67
 
50
68
  const ariaLabel = isNext ? __( 'Next post' ) : __( 'Previous post' );
51
- const blockProps = useBlockProps();
69
+ const blockProps = useBlockProps( {
70
+ className: clsx( {
71
+ [ `has-text-align-${ textAlign }` ]: textAlign,
72
+ } ),
73
+ } );
74
+
52
75
  const taxonomies = useSelect(
53
76
  ( select ) => {
54
77
  const { getTaxonomies } = select( coreStore );
@@ -197,6 +220,16 @@ export default function PostNavigationLinkEdit( {
197
220
  ) }
198
221
  />
199
222
  </InspectorControls>
223
+ { showControls && (
224
+ <BlockControls>
225
+ <AlignmentToolbar
226
+ value={ textAlign }
227
+ onChange={ ( nextAlign ) => {
228
+ setAttributes( { textAlign: nextAlign } );
229
+ } }
230
+ />
231
+ </BlockControls>
232
+ ) }
200
233
  <div { ...blockProps }>
201
234
  { ! isNext && displayArrow && (
202
235
  <span
@@ -10,7 +10,6 @@ import initBlock from '../utils/init-block';
10
10
  import metadata from './block.json';
11
11
  import edit from './edit';
12
12
  import variations from './variations';
13
- import deprecated from './deprecated';
14
13
 
15
14
  const { name } = metadata;
16
15
  export { metadata, name };
@@ -18,7 +17,6 @@ export { metadata, name };
18
17
  export const settings = {
19
18
  edit,
20
19
  variations,
21
- deprecated,
22
20
  example: {
23
21
  attributes: {
24
22
  label: __( 'Next post' ),
@@ -8,6 +8,9 @@
8
8
  "textdomain": "default",
9
9
  "usesContext": [ "postId", "postType", "queryId" ],
10
10
  "attributes": {
11
+ "textAlign": {
12
+ "type": "string"
13
+ },
11
14
  "level": {
12
15
  "type": "number",
13
16
  "default": 2
@@ -55,7 +58,6 @@
55
58
  "typography": {
56
59
  "fontSize": true,
57
60
  "lineHeight": true,
58
- "textAlign": true,
59
61
  "__experimentalFontFamily": true,
60
62
  "__experimentalFontWeight": true,
61
63
  "__experimentalFontStyle": true,
@@ -2,91 +2,6 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import migrateFontFamily from '../utils/migrate-font-family';
5
- import migrateTextAlign from '../utils/migrate-text-align';
6
-
7
- const v2 = {
8
- attributes: {
9
- textAlign: {
10
- type: 'string',
11
- },
12
- level: {
13
- type: 'number',
14
- default: 2,
15
- },
16
- levelOptions: {
17
- type: 'array',
18
- },
19
- isLink: {
20
- type: 'boolean',
21
- default: false,
22
- },
23
- rel: {
24
- type: 'string',
25
- attribute: 'rel',
26
- default: '',
27
- },
28
- linkTarget: {
29
- type: 'string',
30
- default: '_self',
31
- },
32
- },
33
- supports: {
34
- anchor: true,
35
- align: [ 'wide', 'full' ],
36
- html: false,
37
- color: {
38
- gradients: true,
39
- link: true,
40
- __experimentalDefaultControls: {
41
- background: true,
42
- text: true,
43
- link: true,
44
- },
45
- },
46
- spacing: {
47
- padding: true,
48
- margin: true,
49
- },
50
- typography: {
51
- fontSize: true,
52
- lineHeight: true,
53
- __experimentalFontFamily: true,
54
- __experimentalTextTransform: true,
55
- __experimentalTextDecoration: true,
56
- __experimentalFontStyle: true,
57
- __experimentalFontWeight: true,
58
- __experimentalLetterSpacing: true,
59
- __experimentalDefaultControls: {
60
- fontSize: true,
61
- },
62
- },
63
- interactivity: {
64
- clientNavigation: true,
65
- },
66
- __experimentalBorder: {
67
- radius: true,
68
- color: true,
69
- width: true,
70
- style: true,
71
- __experimentalDefaultControls: {
72
- radius: true,
73
- color: true,
74
- width: true,
75
- style: true,
76
- },
77
- },
78
- },
79
- migrate: migrateTextAlign,
80
- isEligible( attributes ) {
81
- return (
82
- !! attributes.textAlign ||
83
- !! attributes.className?.match(
84
- /\bhas-text-align-(left|center|right)\b/
85
- )
86
- );
87
- },
88
- save: () => null,
89
- };
90
5
 
91
6
  const v1 = {
92
7
  attributes: {
@@ -147,4 +62,4 @@ const v1 = {
147
62
  *
148
63
  * See block-deprecation.md
149
64
  */
150
- export default [ v2, v1 ];
65
+ export default [ v1 ];
@@ -1,7 +1,13 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
9
  import {
10
+ AlignmentControl,
5
11
  BlockControls,
6
12
  InspectorControls,
7
13
  useBlockProps,
@@ -28,7 +34,7 @@ import { createInterpolateElement } from '@wordpress/element';
28
34
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
29
35
 
30
36
  export default function PostTitleEdit( {
31
- attributes: { level, levelOptions, isLink, rel, linkTarget },
37
+ attributes: { level, levelOptions, textAlign, isLink, rel, linkTarget },
32
38
  setAttributes,
33
39
  context: { postType, postId, queryId },
34
40
  insertBlocksAfter,
@@ -66,7 +72,11 @@ export default function PostTitleEdit( {
66
72
  const onSplitAtEnd = () => {
67
73
  insertBlocksAfter( createBlock( getDefaultBlockName() ) );
68
74
  };
69
- const blockProps = useBlockProps();
75
+ const blockProps = useBlockProps( {
76
+ className: clsx( {
77
+ [ `has-text-align-${ textAlign }` ]: textAlign,
78
+ } ),
79
+ } );
70
80
  const blockEditingMode = useBlockEditingMode();
71
81
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
72
82
 
@@ -137,6 +147,12 @@ export default function PostTitleEdit( {
137
147
  setAttributes( { level: newLevel } )
138
148
  }
139
149
  />
150
+ <AlignmentControl
151
+ value={ textAlign }
152
+ onChange={ ( nextAlign ) => {
153
+ setAttributes( { textAlign: nextAlign } );
154
+ } }
155
+ />
140
156
  </BlockControls>
141
157
  <InspectorControls>
142
158
  <ToolsPanel
@@ -10,6 +10,9 @@
10
10
  "type": {
11
11
  "type": "string"
12
12
  },
13
+ "textAlign": {
14
+ "type": "string"
15
+ },
13
16
  "level": {
14
17
  "type": "number",
15
18
  "default": 1
@@ -50,7 +53,6 @@
50
53
  "typography": {
51
54
  "fontSize": true,
52
55
  "lineHeight": true,
53
- "textAlign": true,
54
56
  "__experimentalFontFamily": true,
55
57
  "__experimentalFontStyle": true,
56
58
  "__experimentalFontWeight": true,
@@ -2,79 +2,6 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import migrateFontFamily from '../utils/migrate-font-family';
5
- import migrateTextAlign from '../utils/migrate-text-align';
6
-
7
- const v2 = {
8
- attributes: {
9
- type: {
10
- type: 'string',
11
- },
12
- textAlign: {
13
- type: 'string',
14
- },
15
- level: {
16
- type: 'number',
17
- default: 1,
18
- },
19
- levelOptions: {
20
- type: 'array',
21
- },
22
- },
23
- supports: {
24
- anchor: true,
25
- align: [ 'wide', 'full' ],
26
- html: false,
27
- color: {
28
- gradients: true,
29
- __experimentalDefaultControls: {
30
- background: true,
31
- text: true,
32
- },
33
- },
34
- spacing: {
35
- padding: true,
36
- margin: true,
37
- },
38
- typography: {
39
- fontSize: true,
40
- lineHeight: true,
41
- __experimentalFontFamily: true,
42
- __experimentalTextTransform: true,
43
- __experimentalTextDecoration: true,
44
- __experimentalFontStyle: true,
45
- __experimentalFontWeight: true,
46
- __experimentalLetterSpacing: true,
47
- __experimentalDefaultControls: {
48
- fontSize: true,
49
- },
50
- },
51
- interactivity: {
52
- clientNavigation: true,
53
- },
54
- __experimentalBorder: {
55
- radius: true,
56
- color: true,
57
- width: true,
58
- style: true,
59
- __experimentalDefaultControls: {
60
- radius: true,
61
- color: true,
62
- width: true,
63
- style: true,
64
- },
65
- },
66
- },
67
- migrate: migrateTextAlign,
68
- isEligible( attributes ) {
69
- return (
70
- !! attributes.textAlign ||
71
- !! attributes.className?.match(
72
- /\bhas-text-align-(left|center|right)\b/
73
- )
74
- );
75
- },
76
- save: () => null,
77
- };
78
5
 
79
6
  const v1 = {
80
7
  attributes: {
@@ -121,4 +48,4 @@ const v1 = {
121
48
  *
122
49
  * See block-deprecation.md
123
50
  */
124
- export default [ v2, v1 ];
51
+ export default [ v1 ];
@@ -1,7 +1,13 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
9
  import {
10
+ AlignmentControl,
5
11
  BlockControls,
6
12
  InspectorControls,
7
13
  useBlockProps,
@@ -21,19 +27,21 @@ import { __, _x, sprintf } from '@wordpress/i18n';
21
27
  import { useArchiveLabel } from './use-archive-label';
22
28
  import { usePostTypeLabel } from './use-post-type-label';
23
29
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
24
- import useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';
25
30
 
26
31
  const SUPPORTED_TYPES = [ 'archive', 'search', 'post-type' ];
27
32
 
28
- export default function QueryTitleEdit( props ) {
29
- useDeprecatedTextAlign( props );
30
-
31
- const {
32
- attributes: { type, level, levelOptions, showPrefix, showSearchTerm },
33
- setAttributes,
34
- context: { query },
35
- } = props;
36
-
33
+ export default function QueryTitleEdit( {
34
+ attributes: {
35
+ type,
36
+ level,
37
+ levelOptions,
38
+ textAlign,
39
+ showPrefix,
40
+ showSearchTerm,
41
+ },
42
+ setAttributes,
43
+ context: { query },
44
+ } ) {
37
45
  const { archiveTypeLabel, archiveNameLabel } = useArchiveLabel();
38
46
  const { postTypeLabel } = usePostTypeLabel( query?.postType );
39
47
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
@@ -41,7 +49,9 @@ export default function QueryTitleEdit( props ) {
41
49
  const TagName = level === 0 ? 'p' : `h${ level }`;
42
50
 
43
51
  const blockProps = useBlockProps( {
44
- className: 'wp-block-query-title__placeholder',
52
+ className: clsx( 'wp-block-query-title__placeholder', {
53
+ [ `has-text-align-${ textAlign }` ]: textAlign,
54
+ } ),
45
55
  } );
46
56
 
47
57
  if ( ! SUPPORTED_TYPES.includes( type ) ) {
@@ -229,6 +239,12 @@ export default function QueryTitleEdit( props ) {
229
239
  setAttributes( { level: newLevel } )
230
240
  }
231
241
  />
242
+ <AlignmentControl
243
+ value={ textAlign }
244
+ onChange={ ( nextAlign ) => {
245
+ setAttributes( { textAlign: nextAlign } );
246
+ } }
247
+ />
232
248
  </BlockControls>
233
249
  { titleElement }
234
250
  </>
@@ -17,7 +17,8 @@
17
17
  "className": false,
18
18
  "customClassName": false,
19
19
  "html": false,
20
- "customCSS": false
20
+ "customCSS": false,
21
+ "visibility": false
21
22
  },
22
23
  "editorStyle": "wp-block-shortcode-editor"
23
24
  }
@@ -8,6 +8,9 @@
8
8
  "keywords": [ "description" ],
9
9
  "textdomain": "default",
10
10
  "attributes": {
11
+ "textAlign": {
12
+ "type": "string"
13
+ },
11
14
  "level": {
12
15
  "type": "number",
13
16
  "default": 0
@@ -20,11 +23,7 @@
20
23
  "example": {
21
24
  "viewportWidth": 350,
22
25
  "attributes": {
23
- "style": {
24
- "typography": {
25
- "textAlign": "center"
26
- }
27
- }
26
+ "textAlign": "center"
28
27
  }
29
28
  },
30
29
  "supports": {
@@ -50,7 +49,6 @@
50
49
  "typography": {
51
50
  "fontSize": true,
52
51
  "lineHeight": true,
53
- "textAlign": true,
54
52
  "__experimentalFontFamily": true,
55
53
  "__experimentalTextTransform": true,
56
54
  "__experimentalTextDecoration": true,
@@ -2,75 +2,6 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import migrateFontFamily from '../utils/migrate-font-family';
5
- import migrateTextAlign from '../utils/migrate-text-align';
6
-
7
- const v2 = {
8
- attributes: {
9
- textAlign: {
10
- type: 'string',
11
- },
12
- level: {
13
- type: 'number',
14
- },
15
- levelOptions: {
16
- type: 'array',
17
- default: [ 0, 1, 2, 3, 4, 5, 6 ],
18
- },
19
- },
20
- supports: {
21
- anchor: true,
22
- reusable: false,
23
- html: false,
24
- color: {
25
- gradients: true,
26
- __experimentalDefaultControls: {
27
- background: true,
28
- text: true,
29
- },
30
- },
31
- spacing: {
32
- margin: true,
33
- padding: true,
34
- __experimentalDefaultControls: {
35
- margin: false,
36
- padding: false,
37
- },
38
- },
39
- typography: {
40
- fontSize: true,
41
- lineHeight: true,
42
- __experimentalFontFamily: true,
43
- __experimentalTextTransform: true,
44
- __experimentalTextDecoration: true,
45
- __experimentalFontStyle: true,
46
- __experimentalFontWeight: true,
47
- __experimentalLetterSpacing: true,
48
- __experimentalWritingMode: true,
49
- __experimentalDefaultControls: {
50
- fontSize: true,
51
- },
52
- },
53
- interactivity: {
54
- clientNavigation: true,
55
- },
56
- __experimentalBorder: {
57
- radius: true,
58
- color: true,
59
- width: true,
60
- style: true,
61
- },
62
- },
63
- migrate: migrateTextAlign,
64
- isEligible( attributes ) {
65
- return (
66
- !! attributes.textAlign ||
67
- !! attributes.className?.match(
68
- /\bhas-text-align-(left|center|right)\b/
69
- )
70
- );
71
- },
72
- save: () => null,
73
- };
74
5
 
75
6
  const v1 = {
76
7
  attributes: {
@@ -115,4 +46,4 @@ const v1 = {
115
46
  *
116
47
  * See block-deprecation.md
117
48
  */
118
- export default [ v2, v1 ];
49
+ export default [ v1 ];
@@ -1,9 +1,15 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
9
  import { useDispatch, useSelect } from '@wordpress/data';
5
10
  import { store as coreStore } from '@wordpress/core-data';
6
11
  import {
12
+ AlignmentControl,
7
13
  useBlockProps,
8
14
  BlockControls,
9
15
  HeadingLevelDropdown,
@@ -11,13 +17,13 @@ import {
11
17
  } from '@wordpress/block-editor';
12
18
  import { __ } from '@wordpress/i18n';
13
19
  import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
14
- import useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';
15
-
16
- export default function SiteTaglineEdit( props ) {
17
- useDeprecatedTextAlign( props );
18
20
 
19
- const { attributes, setAttributes, insertBlocksAfter } = props;
20
- const { level, levelOptions } = attributes;
21
+ export default function SiteTaglineEdit( {
22
+ attributes,
23
+ setAttributes,
24
+ insertBlocksAfter,
25
+ } ) {
26
+ const { textAlign, level, levelOptions } = attributes;
21
27
  const { canUserEdit, tagline } = useSelect( ( select ) => {
22
28
  const { canUser, getEntityRecord, getEditedEntityRecord } =
23
29
  select( coreStore );
@@ -46,10 +52,11 @@ export default function SiteTaglineEdit( props ) {
46
52
  }
47
53
 
48
54
  const blockProps = useBlockProps( {
49
- className:
50
- ! canUserEdit && ! tagline && 'wp-block-site-tagline__placeholder',
55
+ className: clsx( {
56
+ [ `has-text-align-${ textAlign }` ]: textAlign,
57
+ 'wp-block-site-tagline__placeholder': ! canUserEdit && ! tagline,
58
+ } ),
51
59
  } );
52
-
53
60
  const siteTaglineContent = canUserEdit ? (
54
61
  <RichText
55
62
  allowedFormats={ [] }
@@ -79,6 +86,12 @@ export default function SiteTaglineEdit( props ) {
79
86
  setAttributes( { level: newLevel } )
80
87
  }
81
88
  />
89
+ <AlignmentControl
90
+ onChange={ ( newAlign ) =>
91
+ setAttributes( { textAlign: newAlign } )
92
+ }
93
+ value={ textAlign }
94
+ />
82
95
  </BlockControls>
83
96
  { siteTaglineContent }
84
97
  </>
@@ -15,6 +15,9 @@
15
15
  "type": "array",
16
16
  "default": [ 0, 1, 2, 3, 4, 5, 6 ]
17
17
  },
18
+ "textAlign": {
19
+ "type": "string"
20
+ },
18
21
  "isLink": {
19
22
  "type": "boolean",
20
23
  "default": true,
@@ -53,7 +56,6 @@
53
56
  "typography": {
54
57
  "fontSize": true,
55
58
  "lineHeight": true,
56
- "textAlign": true,
57
59
  "__experimentalFontFamily": true,
58
60
  "__experimentalTextTransform": true,
59
61
  "__experimentalTextDecoration": true,