@wordpress/edit-site 5.27.2 → 5.28.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 (334) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +3 -6
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +1 -2
  5. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-template-modal-content.js +1 -2
  7. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  8. package/build/components/block-editor/editor-canvas.js +1 -2
  9. package/build/components/block-editor/editor-canvas.js.map +1 -1
  10. package/build/components/block-editor/inserter-media-categories.js +1 -2
  11. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  12. package/build/components/block-editor/resizable-editor.js +1 -2
  13. package/build/components/block-editor/resizable-editor.js.map +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js +4 -3
  15. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/{use-post-link-props.js → use-navigate-to-entity-record.js} +9 -8
  17. package/build/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
  18. package/build/components/block-editor/use-site-editor-settings.js +30 -4
  19. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  20. package/build/components/editor/index.js +6 -3
  21. package/build/components/editor/index.js.map +1 -1
  22. package/build/components/editor-canvas-container/index.js +1 -2
  23. package/build/components/editor-canvas-container/index.js.map +1 -1
  24. package/build/components/global-styles/block-preview-panel.js +1 -2
  25. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  26. package/build/components/global-styles/color-indicator-wrapper.js +1 -2
  27. package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
  28. package/build/components/global-styles/font-families.js +9 -5
  29. package/build/components/global-styles/font-families.js.map +1 -1
  30. package/build/components/global-styles/font-family-item.js +1 -2
  31. package/build/components/global-styles/font-family-item.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/collection-font-details.js +1 -2
  33. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/collection-font-variant.js +13 -13
  35. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  36. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +1 -2
  37. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  38. package/build/components/global-styles/font-library-modal/context.js +2 -4
  39. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  40. package/build/components/global-styles/font-library-modal/font-card.js +3 -3
  41. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  42. package/build/components/global-styles/font-library-modal/font-collection.js +9 -7
  43. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  44. package/build/components/global-styles/font-library-modal/font-demo.js +5 -11
  45. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  46. package/build/components/global-styles/font-library-modal/fonts-grid.js +1 -2
  47. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  48. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +2 -3
  49. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  50. package/build/components/global-styles/font-library-modal/index.js +1 -2
  51. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  52. package/build/components/global-styles/font-library-modal/installed-fonts.js +6 -5
  53. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  54. package/build/components/global-styles/font-library-modal/library-font-card.js +2 -3
  55. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  56. package/build/components/global-styles/font-library-modal/library-font-details.js +1 -2
  57. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  58. package/build/components/global-styles/font-library-modal/library-font-variant.js +13 -13
  59. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  60. package/build/components/global-styles/font-library-modal/tab-panel-layout.js +4 -3
  61. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  62. package/build/components/global-styles/font-library-modal/upload-fonts.js +3 -8
  63. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  64. package/build/components/global-styles/font-library-modal/utils/constants.js +3 -6
  65. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  66. package/build/components/global-styles/font-library-modal/utils/index.js +4 -1
  67. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  68. package/build/components/global-styles/header.js +1 -2
  69. package/build/components/global-styles/header.js.map +1 -1
  70. package/build/components/global-styles/palette.js +1 -2
  71. package/build/components/global-styles/palette.js.map +1 -1
  72. package/build/components/global-styles/preview.js +1 -2
  73. package/build/components/global-styles/preview.js.map +1 -1
  74. package/build/components/global-styles/root-menu.js +1 -2
  75. package/build/components/global-styles/root-menu.js.map +1 -1
  76. package/build/components/global-styles/screen-block-list.js +1 -2
  77. package/build/components/global-styles/screen-block-list.js.map +1 -1
  78. package/build/components/global-styles/screen-block.js +1 -11
  79. package/build/components/global-styles/screen-block.js.map +1 -1
  80. package/build/components/global-styles/screen-color-palette.js +1 -2
  81. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  82. package/build/components/global-styles/screen-colors.js +1 -2
  83. package/build/components/global-styles/screen-colors.js.map +1 -1
  84. package/build/components/global-styles/screen-css.js +1 -2
  85. package/build/components/global-styles/screen-css.js.map +1 -1
  86. package/build/components/global-styles/screen-layout.js +1 -2
  87. package/build/components/global-styles/screen-layout.js.map +1 -1
  88. package/build/components/global-styles/screen-revisions/index.js +1 -2
  89. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  90. package/build/components/global-styles/screen-revisions/revisions-buttons.js +2 -3
  91. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  92. package/build/components/global-styles/screen-root.js +1 -2
  93. package/build/components/global-styles/screen-root.js.map +1 -1
  94. package/build/components/global-styles/screen-style-variations.js +1 -2
  95. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  96. package/build/components/global-styles/screen-typography-element.js +3 -6
  97. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  98. package/build/components/global-styles/screen-typography.js +1 -2
  99. package/build/components/global-styles/screen-typography.js.map +1 -1
  100. package/build/components/global-styles/subtitle.js +1 -2
  101. package/build/components/global-styles/subtitle.js.map +1 -1
  102. package/build/components/global-styles/typogrphy-elements.js +1 -2
  103. package/build/components/global-styles/typogrphy-elements.js.map +1 -1
  104. package/build/components/global-styles/ui.js +3 -4
  105. package/build/components/global-styles/ui.js.map +1 -1
  106. package/build/components/header-edit-mode/mode-switcher/index.js +1 -2
  107. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  108. package/build/components/header-edit-mode/more-menu/index.js +12 -21
  109. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  110. package/build/components/header-edit-mode/plugin-more-menu-item/index.js +1 -2
  111. package/build/components/header-edit-mode/plugin-more-menu-item/index.js.map +1 -1
  112. package/build/components/header-edit-mode/tools-more-menu-group/index.js +1 -2
  113. package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
  114. package/build/components/keyboard-shortcut-help-modal/config.js +1 -2
  115. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  116. package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
  117. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  118. package/build/components/keyboard-shortcuts/edit-mode.js +1 -2
  119. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  120. package/build/components/keyboard-shortcuts/global.js +1 -2
  121. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  122. package/build/components/keyboard-shortcuts/register.js +1 -2
  123. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  124. package/build/components/layout/index.js +0 -2
  125. package/build/components/layout/index.js.map +1 -1
  126. package/build/components/media/index.js +1 -2
  127. package/build/components/media/index.js.map +1 -1
  128. package/build/components/page-pages/index.js +27 -15
  129. package/build/components/page-pages/index.js.map +1 -1
  130. package/build/components/page-patterns/dataviews-pattern-actions.js +87 -32
  131. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  132. package/build/components/page-patterns/grid-item.js +2 -6
  133. package/build/components/page-patterns/grid-item.js.map +1 -1
  134. package/build/components/page-patterns/index.js +2 -1
  135. package/build/components/page-patterns/index.js.map +1 -1
  136. package/build/components/page-patterns/search-items.js +0 -1
  137. package/build/components/page-patterns/search-items.js.map +1 -1
  138. package/build/components/page-patterns/use-patterns.js +1 -2
  139. package/build/components/page-patterns/use-patterns.js.map +1 -1
  140. package/build/components/page-templates-template-parts/actions.js +2 -4
  141. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  142. package/build/components/page-templates-template-parts/index.js +8 -5
  143. package/build/components/page-templates-template-parts/index.js.map +1 -1
  144. package/build/components/pattern-modal/index.js +1 -2
  145. package/build/components/pattern-modal/index.js.map +1 -1
  146. package/build/components/plugin-template-setting-panel/index.js +1 -2
  147. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  148. package/build/components/preferences-modal/index.js +1 -2
  149. package/build/components/preferences-modal/index.js.map +1 -1
  150. package/build/components/resizable-frame/index.js +1 -2
  151. package/build/components/resizable-frame/index.js.map +1 -1
  152. package/build/components/revisions/index.js +1 -2
  153. package/build/components/revisions/index.js.map +1 -1
  154. package/build/components/routes/link.js +2 -6
  155. package/build/components/routes/link.js.map +1 -1
  156. package/build/components/sidebar/index.js +3 -4
  157. package/build/components/sidebar/index.js.map +1 -1
  158. package/build/components/sidebar-dataviews/default-views.js +4 -6
  159. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  160. package/build/components/sidebar-edit-mode/constants.js +2 -4
  161. package/build/components/sidebar-edit-mode/constants.js.map +1 -1
  162. package/build/components/sidebar-edit-mode/index.js +97 -18
  163. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  164. package/build/components/sidebar-edit-mode/settings-header/index.js +21 -43
  165. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  166. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +1 -2
  167. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  168. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js +1 -2
  169. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
  170. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  171. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  172. package/build/components/site-hub/index.js +1 -2
  173. package/build/components/site-hub/index.js.map +1 -1
  174. package/build/components/site-icon/index.js +3 -4
  175. package/build/components/site-icon/index.js.map +1 -1
  176. package/build/components/style-book/index.js +1 -2
  177. package/build/components/style-book/index.js.map +1 -1
  178. package/build/components/template-part-converter/convert-to-template-part.js +0 -1
  179. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  180. package/build/hooks/navigation-menu-edit.js +1 -2
  181. package/build/hooks/navigation-menu-edit.js.map +1 -1
  182. package/build/hooks/template-part-edit.js +1 -2
  183. package/build/hooks/template-part-edit.js.map +1 -1
  184. package/build/store/actions.js +7 -2
  185. package/build/store/actions.js.map +1 -1
  186. package/build/store/constants.js +1 -2
  187. package/build/store/constants.js.map +1 -1
  188. package/build/store/index.js +4 -6
  189. package/build/store/index.js.map +1 -1
  190. package/build/store/reducer.js +1 -2
  191. package/build/store/reducer.js.map +1 -1
  192. package/build/store/selectors.js +9 -18
  193. package/build/store/selectors.js.map +1 -1
  194. package/build/store/utils.js +1 -2
  195. package/build/store/utils.js.map +1 -1
  196. package/build/utils/constants.js +13 -26
  197. package/build/utils/constants.js.map +1 -1
  198. package/build-module/components/block-editor/site-editor-canvas.js +5 -4
  199. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  200. package/build-module/components/block-editor/{use-post-link-props.js → use-navigate-to-entity-record.js} +8 -7
  201. package/build-module/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
  202. package/build-module/components/block-editor/use-site-editor-settings.js +29 -4
  203. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  204. package/build-module/components/editor/index.js +6 -3
  205. package/build-module/components/editor/index.js.map +1 -1
  206. package/build-module/components/global-styles/font-families.js +8 -4
  207. package/build-module/components/global-styles/font-families.js.map +1 -1
  208. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +12 -11
  209. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  210. package/build-module/components/global-styles/font-library-modal/font-card.js +3 -2
  211. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  212. package/build-module/components/global-styles/font-library-modal/font-collection.js +9 -6
  213. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  214. package/build-module/components/global-styles/font-library-modal/font-demo.js +4 -9
  215. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  216. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  217. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  218. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +5 -3
  219. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  220. package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
  221. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  222. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +12 -11
  223. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  224. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +3 -1
  225. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  226. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +3 -7
  227. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  228. package/build-module/components/global-styles/font-library-modal/utils/index.js +4 -1
  229. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  230. package/build-module/components/global-styles/screen-block.js +0 -9
  231. package/build-module/components/global-styles/screen-block.js.map +1 -1
  232. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  233. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  234. package/build-module/components/global-styles/screen-typography-element.js +3 -5
  235. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  236. package/build-module/components/header-edit-mode/more-menu/index.js +12 -21
  237. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  238. package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
  239. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  240. package/build-module/components/layout/index.js +0 -2
  241. package/build-module/components/layout/index.js.map +1 -1
  242. package/build-module/components/page-pages/index.js +25 -13
  243. package/build-module/components/page-pages/index.js.map +1 -1
  244. package/build-module/components/page-patterns/dataviews-pattern-actions.js +81 -20
  245. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  246. package/build-module/components/page-patterns/grid-item.js +1 -4
  247. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  248. package/build-module/components/page-patterns/index.js +2 -1
  249. package/build-module/components/page-patterns/index.js.map +1 -1
  250. package/build-module/components/page-patterns/search-items.js +0 -1
  251. package/build-module/components/page-patterns/search-items.js.map +1 -1
  252. package/build-module/components/page-templates-template-parts/index.js +6 -3
  253. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  254. package/build-module/components/routes/link.js +2 -5
  255. package/build-module/components/routes/link.js.map +1 -1
  256. package/build-module/components/sidebar-dataviews/default-views.js +3 -3
  257. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  258. package/build-module/components/sidebar-edit-mode/index.js +98 -18
  259. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  260. package/build-module/components/sidebar-edit-mode/settings-header/index.js +23 -43
  261. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  262. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +2 -2
  263. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  264. package/build-module/components/site-icon/index.js +2 -2
  265. package/build-module/components/site-icon/index.js.map +1 -1
  266. package/build-module/components/template-part-converter/convert-to-template-part.js +0 -1
  267. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  268. package/build-module/store/actions.js +7 -2
  269. package/build-module/store/actions.js.map +1 -1
  270. package/build-style/style-rtl.css +394 -218
  271. package/build-style/style.css +394 -218
  272. package/package.json +42 -42
  273. package/src/components/add-new-template/style.scss +0 -12
  274. package/src/components/block-editor/site-editor-canvas.js +4 -3
  275. package/src/components/block-editor/style.scss +2 -20
  276. package/src/components/block-editor/use-navigate-to-entity-record.js +25 -0
  277. package/src/components/block-editor/use-site-editor-settings.js +35 -4
  278. package/src/components/editor/index.js +7 -1
  279. package/src/components/global-styles/font-families.js +13 -4
  280. package/src/components/global-styles/font-library-modal/collection-font-variant.js +10 -8
  281. package/src/components/global-styles/font-library-modal/font-card.js +10 -4
  282. package/src/components/global-styles/font-library-modal/font-collection.js +9 -7
  283. package/src/components/global-styles/font-library-modal/font-demo.js +8 -9
  284. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  285. package/src/components/global-styles/font-library-modal/installed-fonts.js +8 -3
  286. package/src/components/global-styles/font-library-modal/library-font-card.js +1 -1
  287. package/src/components/global-styles/font-library-modal/library-font-variant.js +10 -8
  288. package/src/components/global-styles/font-library-modal/style.scss +13 -17
  289. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +2 -0
  290. package/src/components/global-styles/font-library-modal/upload-fonts.js +4 -13
  291. package/src/components/global-styles/font-library-modal/utils/index.js +2 -1
  292. package/src/components/global-styles/screen-block.js +0 -12
  293. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  294. package/src/components/global-styles/screen-revisions/style.scss +21 -15
  295. package/src/components/global-styles/screen-typography-element.js +2 -4
  296. package/src/components/global-styles/style.scss +4 -0
  297. package/src/components/header-edit-mode/more-menu/index.js +10 -18
  298. package/src/components/header-edit-mode/style.scss +54 -6
  299. package/src/components/layout/style.scss +2 -7
  300. package/src/components/page/style.scss +0 -1
  301. package/src/components/page-pages/index.js +32 -23
  302. package/src/components/page-pages/style.scss +28 -27
  303. package/src/components/page-patterns/dataviews-pattern-actions.js +106 -30
  304. package/src/components/page-patterns/grid-item.js +0 -2
  305. package/src/components/page-patterns/index.js +1 -0
  306. package/src/components/page-patterns/style.scss +4 -9
  307. package/src/components/page-templates-template-parts/index.js +23 -16
  308. package/src/components/page-templates-template-parts/style.scss +16 -0
  309. package/src/components/routes/link.js +2 -11
  310. package/src/components/sidebar-dataviews/default-views.js +3 -3
  311. package/src/components/sidebar-edit-mode/index.js +121 -25
  312. package/src/components/sidebar-edit-mode/settings-header/index.js +25 -63
  313. package/src/components/sidebar-edit-mode/settings-header/style.scss +0 -87
  314. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +3 -0
  315. package/src/components/sidebar-edit-mode/style.scss +4 -0
  316. package/src/components/sidebar-navigation-screen/style.scss +2 -1
  317. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +9 -3
  318. package/src/components/site-hub/style.scss +0 -1
  319. package/src/components/site-icon/index.js +1 -1
  320. package/src/components/site-icon/style.scss +9 -1
  321. package/src/store/actions.js +20 -3
  322. package/build/components/block-editor/back-button.js +0 -46
  323. package/build/components/block-editor/back-button.js.map +0 -1
  324. package/build/components/block-editor/use-post-link-props.js.map +0 -1
  325. package/build/components/global-styles/font-library-modal/font-variant.js +0 -51
  326. package/build/components/global-styles/font-library-modal/font-variant.js.map +0 -1
  327. package/build-module/components/block-editor/back-button.js +0 -38
  328. package/build-module/components/block-editor/back-button.js.map +0 -1
  329. package/build-module/components/block-editor/use-post-link-props.js.map +0 -1
  330. package/build-module/components/global-styles/font-library-modal/font-variant.js +0 -42
  331. package/build-module/components/global-styles/font-library-modal/font-variant.js.map +0 -1
  332. package/src/components/block-editor/back-button.js +0 -51
  333. package/src/components/block-editor/use-post-link-props.js +0 -24
  334. package/src/components/global-styles/font-library-modal/font-variant.js +0 -53
@@ -161,49 +161,125 @@ export const deleteAction = {
161
161
  return canDeleteOrReset( item ) && ! hasThemeFile;
162
162
  },
163
163
  hideModalHeader: true,
164
- RenderModal: ( { items, closeModal } ) => {
165
- const [ item ] = items;
164
+ supportsBulk: true,
165
+ RenderModal: ( { items, closeModal, onPerform } ) => {
166
166
  const { __experimentalDeleteReusableBlock } =
167
167
  useDispatch( reusableBlocksStore );
168
168
  const { createErrorNotice, createSuccessNotice } =
169
169
  useDispatch( noticesStore );
170
- const { removeTemplate } = useDispatch( editSiteStore );
170
+ const { removeTemplates } = unlock( useDispatch( editSiteStore ) );
171
171
 
172
172
  const deletePattern = async () => {
173
- try {
174
- await __experimentalDeleteReusableBlock( item.id );
175
- createSuccessNotice(
176
- sprintf(
177
- // translators: %s: The pattern's title e.g. 'Call to action'.
173
+ const promiseResult = await Promise.allSettled(
174
+ items.map( ( item ) => {
175
+ return __experimentalDeleteReusableBlock( item.id );
176
+ } )
177
+ );
178
+ // If all the promises were fulfilled with success.
179
+ if (
180
+ promiseResult.every( ( { status } ) => status === 'fulfilled' )
181
+ ) {
182
+ let successMessage;
183
+ if ( promiseResult.length === 1 ) {
184
+ successMessage = sprintf(
185
+ /* translators: The posts's title. */
178
186
  __( '"%s" deleted.' ),
179
- item.title
180
- ),
181
- { type: 'snackbar', id: 'edit-site-patterns-success' }
182
- );
183
- } catch ( error ) {
184
- const errorMessage =
185
- error.message && error.code !== 'unknown_error'
186
- ? error.message
187
- : __( 'An error occurred while deleting the pattern.' );
188
- createErrorNotice( errorMessage, {
187
+ items[ 0 ].title
188
+ );
189
+ } else {
190
+ successMessage = __( 'The patterns were deleted.' );
191
+ }
192
+ createSuccessNotice( successMessage, {
189
193
  type: 'snackbar',
190
- id: 'edit-site-patterns-error',
194
+ id: 'edit-site-page-trashed',
191
195
  } );
196
+ } else {
197
+ // If there was at lease one failure.
198
+ let errorMessage;
199
+ // If we were trying to delete a single pattern.
200
+ if ( promiseResult.length === 1 ) {
201
+ if ( promiseResult[ 0 ].reason?.message ) {
202
+ errorMessage = promiseResult[ 0 ].reason.message;
203
+ } else {
204
+ errorMessage = __(
205
+ 'An error occurred while deleting the pattern.'
206
+ );
207
+ }
208
+ // If we were trying to delete multiple patterns.
209
+ } else {
210
+ const errorMessages = new Set();
211
+ const failedPromises = promiseResult.filter(
212
+ ( { status } ) => status === 'rejected'
213
+ );
214
+ for ( const failedPromise of failedPromises ) {
215
+ if ( failedPromise.reason?.message ) {
216
+ errorMessages.add( failedPromise.reason.message );
217
+ }
218
+ }
219
+ if ( errorMessages.size === 0 ) {
220
+ errorMessage = __(
221
+ 'An error occurred while deleting the patterns.'
222
+ );
223
+ } else if ( errorMessages.size === 1 ) {
224
+ errorMessage = sprintf(
225
+ /* translators: %s: an error message */
226
+ __(
227
+ 'An error occurred while deleting the patterns: %s'
228
+ ),
229
+ [ ...errorMessages ][ 0 ]
230
+ );
231
+ } else {
232
+ errorMessage = sprintf(
233
+ /* translators: %s: a list of comma separated error messages */
234
+ __(
235
+ 'Some errors occurred while deleting the patterns: %s'
236
+ ),
237
+ [ ...errorMessages ].join( ',' )
238
+ );
239
+ }
240
+ createErrorNotice( errorMessage, {
241
+ type: 'snackbar',
242
+ } );
243
+ }
192
244
  }
193
245
  };
194
- const deleteItem = () =>
195
- item.type === TEMPLATE_PART_POST_TYPE
196
- ? removeTemplate( item )
197
- : deletePattern();
246
+ const deleteItem = () => {
247
+ if ( items[ 0 ].type === TEMPLATE_PART_POST_TYPE ) {
248
+ removeTemplates( items );
249
+ } else {
250
+ deletePattern();
251
+ }
252
+ if ( onPerform ) {
253
+ onPerform();
254
+ }
255
+ closeModal();
256
+ };
257
+ let questionMessage;
258
+ if ( items.length === 1 ) {
259
+ questionMessage = sprintf(
260
+ // translators: %s: The page's title.
261
+ __( 'Are you sure you want to delete "%s"?' ),
262
+ decodeEntities( items[ 0 ].title || items[ 0 ].name )
263
+ );
264
+ } else if (
265
+ items.length > 1 &&
266
+ items[ 0 ].type === TEMPLATE_PART_POST_TYPE
267
+ ) {
268
+ questionMessage = sprintf(
269
+ // translators: %d: The number of template parts (2 or more).
270
+ __( 'Are you sure you want to delete %d template parts?' ),
271
+ items.length
272
+ );
273
+ } else {
274
+ questionMessage = sprintf(
275
+ // translators: %d: The number of patterns (2 or more).
276
+ __( 'Are you sure you want to delete %d patterns?' ),
277
+ items.length
278
+ );
279
+ }
198
280
  return (
199
281
  <VStack spacing="5">
200
- <Text>
201
- { sprintf(
202
- // translators: %s: The pattern or template part's title e.g. 'Call to action'.
203
- __( 'Are you sure you want to delete "%s"?' ),
204
- decodeEntities( item.title || item.name )
205
- ) }
206
- </Text>
282
+ <Text>{ questionMessage }</Text>
207
283
  <HStack justify="right">
208
284
  <Button variant="tertiary" onClick={ closeModal }>
209
285
  { __( 'Cancel' ) }
@@ -171,8 +171,6 @@ function GridItem( { categoryId, item, ...props } ) {
171
171
  <li className={ patternClassNames }>
172
172
  <button
173
173
  className={ previewClassNames }
174
- // Even though still incomplete, passing ids helps performance.
175
- // @see https://reakit.io/docs/composite/#performance.
176
174
  id={ `edit-site-patterns-${ item.name }` }
177
175
  type="button"
178
176
  { ...props }
@@ -324,6 +324,7 @@ export default function DataviewsPatterns() {
324
324
  elements: SYNC_FILTERS,
325
325
  filterBy: {
326
326
  operators: [ OPERATOR_IN ],
327
+ isPrimary: true,
327
328
  },
328
329
  enableSorting: false,
329
330
  } );
@@ -31,17 +31,12 @@
31
31
  flex-grow: 1;
32
32
  }
33
33
 
34
- // The increased specificity here is to overcome component styles
35
- // without relying on internal component class names.
34
+ // TODO: Consider using the Theme component to automatically adapt to a dark background.
36
35
  .edit-site-patterns__search {
37
- input[type="search"] {
38
- height: $button-size-next-default-40px;
39
- background: $gray-800;
40
- color: $gray-200;
36
+ --wp-components-color-foreground: #{$gray-200};
41
37
 
42
- &:focus {
43
- background: $gray-800;
44
- }
38
+ .components-input-control__container {
39
+ background: $gray-800;
45
40
  }
46
41
 
47
42
  svg {
@@ -151,6 +151,7 @@ function Preview( { item, viewType } ) {
151
151
  postType: item.type,
152
152
  canvas: 'edit',
153
153
  } );
154
+
154
155
  const isEmpty = ! blocks?.length;
155
156
  // Wrap everything in a block editor provider to ensure 'styles' that are needed
156
157
  // for the previews are synced between the site editor store and the block editor store.
@@ -165,18 +166,23 @@ function Preview( { item, viewType } ) {
165
166
  className={ `page-templates-preview-field is-viewtype-${ viewType }` }
166
167
  style={ { backgroundColor } }
167
168
  >
168
- <button
169
- className="page-templates-preview-field__button"
170
- type="button"
171
- onClick={ onClick }
172
- aria-label={ item.title?.rendered || item.title }
173
- >
174
- { isEmpty &&
175
- ( item.type === TEMPLATE_POST_TYPE
176
- ? __( 'Empty template' )
177
- : __( 'Empty template part' ) ) }
178
- { ! isEmpty && <BlockPreview blocks={ blocks } /> }
179
- </button>
169
+ { viewType === LAYOUT_LIST && ! isEmpty && (
170
+ <BlockPreview blocks={ blocks } />
171
+ ) }
172
+ { viewType !== LAYOUT_LIST && (
173
+ <button
174
+ className="page-templates-preview-field__button"
175
+ type="button"
176
+ onClick={ onClick }
177
+ aria-label={ item.title?.rendered || item.title }
178
+ >
179
+ { isEmpty &&
180
+ ( item.type === TEMPLATE_POST_TYPE
181
+ ? __( 'Empty template' )
182
+ : __( 'Empty template part' ) ) }
183
+ { ! isEmpty && <BlockPreview blocks={ blocks } /> }
184
+ </button>
185
+ ) }
180
186
  </div>
181
187
  </ExperimentalBlockEditorProvider>
182
188
  );
@@ -186,11 +192,13 @@ export default function PageTemplatesTemplateParts( { postType } ) {
186
192
  const { params } = useLocation();
187
193
  const { activeView = 'all', layout } = params;
188
194
  const defaultView = useMemo( () => {
195
+ const usedType = window?.__experimentalAdminViews
196
+ ? layout ?? DEFAULT_VIEW.type
197
+ : DEFAULT_VIEW.type;
189
198
  return {
190
199
  ...DEFAULT_VIEW,
191
- type: window?.__experimentalAdminViews
192
- ? layout ?? DEFAULT_VIEW.type
193
- : DEFAULT_VIEW.type,
200
+ type: usedType,
201
+ layout: defaultConfigPerViewType[ usedType ],
194
202
  filters:
195
203
  activeView !== 'all'
196
204
  ? [
@@ -317,7 +325,6 @@ export default function PageTemplatesTemplateParts( { postType } ) {
317
325
  render: ( { item } ) => {
318
326
  return <AuthorField viewType={ view.type } item={ item } />;
319
327
  },
320
- enableHiding: false,
321
328
  type: ENUMERATION_TYPE,
322
329
  elements: authors,
323
330
  width: '1%',
@@ -37,6 +37,22 @@
37
37
  border-radius: 3px 3px 0 0;
38
38
  }
39
39
  }
40
+
41
+ &.is-viewtype-table {
42
+ border-radius: $radius-block-ui;
43
+ position: relative;
44
+
45
+ &::after {
46
+ content: "";
47
+ position: absolute;
48
+ top: 0;
49
+ left: 0;
50
+ width: 100%;
51
+ height: 100%;
52
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
53
+ border-radius: $radius-block-ui;
54
+ }
55
+ }
40
56
  }
41
57
 
42
58
  .page-templates-description {
@@ -15,12 +15,8 @@ import {
15
15
 
16
16
  const { useHistory } = unlock( routerPrivateApis );
17
17
 
18
- export function getPostLinkProps(
19
- history,
20
- params = {},
21
- state,
22
- shouldReplace = false
23
- ) {
18
+ export function useLink( params, state, shouldReplace = false ) {
19
+ const history = useHistory();
24
20
  function onClick( event ) {
25
21
  event?.preventDefault();
26
22
 
@@ -52,11 +48,6 @@ export function getPostLinkProps(
52
48
  };
53
49
  }
54
50
 
55
- export function useLink( params, state, shouldReplace ) {
56
- const history = useHistory();
57
- return getPostLinkProps( history, params, state, shouldReplace );
58
- }
59
-
60
51
  export default function Link( {
61
52
  params = {},
62
53
  state,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __ } from '@wordpress/i18n';
4
+ import { __, _x } from '@wordpress/i18n';
5
5
  import { trash } from '@wordpress/icons';
6
6
 
7
7
  /**
@@ -42,14 +42,14 @@ const DEFAULT_PAGE_BASE = {
42
42
  // better to keep track of the hidden ones.
43
43
  hiddenFields: [ 'date', 'featured-image' ],
44
44
  layout: {
45
- ...DEFAULT_CONFIG_PER_VIEW_TYPE[ LAYOUT_LIST ],
45
+ ...DEFAULT_CONFIG_PER_VIEW_TYPE[ LAYOUT_TABLE ],
46
46
  },
47
47
  };
48
48
 
49
49
  export const DEFAULT_VIEWS = {
50
50
  page: [
51
51
  {
52
- title: __( 'All' ),
52
+ title: _x( 'All', 'pages' ),
53
53
  slug: 'all',
54
54
  view: DEFAULT_PAGE_BASE,
55
55
  },
@@ -1,13 +1,17 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createSlotFill } from '@wordpress/components';
4
+ import {
5
+ createSlotFill,
6
+ privateApis as componentsPrivateApis,
7
+ } from '@wordpress/components';
5
8
  import { isRTL, __ } from '@wordpress/i18n';
6
9
  import { drawerLeft, drawerRight } from '@wordpress/icons';
7
- import { useEffect } from '@wordpress/element';
10
+ import { useCallback, useContext, useEffect, useRef } from '@wordpress/element';
8
11
  import { useSelect, useDispatch } from '@wordpress/data';
9
12
  import { store as interfaceStore } from '@wordpress/interface';
10
13
  import { store as blockEditorStore } from '@wordpress/block-editor';
14
+ import { store as coreStore } from '@wordpress/core-data';
11
15
 
12
16
  /**
13
17
  * Internal dependencies
@@ -21,12 +25,89 @@ import TemplatePanel from './template-panel';
21
25
  import PluginTemplateSettingPanel from '../plugin-template-setting-panel';
22
26
  import { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from './constants';
23
27
  import { store as editSiteStore } from '../../store';
28
+ import { unlock } from '../../lock-unlock';
29
+
30
+ const { Tabs } = unlock( componentsPrivateApis );
24
31
 
25
32
  const { Slot: InspectorSlot, Fill: InspectorFill } = createSlotFill(
26
33
  'EditSiteSidebarInspector'
27
34
  );
28
35
  export const SidebarInspectorFill = InspectorFill;
29
36
 
37
+ const FillContents = ( {
38
+ sidebarName,
39
+ isEditingPage,
40
+ supportsGlobalStyles,
41
+ } ) => {
42
+ const tabListRef = useRef( null );
43
+ // Because `DefaultSidebar` renders a `ComplementaryArea`, we
44
+ // need to forward the `Tabs` context so it can be passed through the
45
+ // underlying slot/fill.
46
+ const tabsContextValue = useContext( Tabs.Context );
47
+
48
+ // This effect addresses a race condition caused by tabbing from the last
49
+ // block in the editor into the settings sidebar. Without this effect, the
50
+ // selected tab and browser focus can become separated in an unexpected way.
51
+ // (e.g the "block" tab is focused, but the "post" tab is selected).
52
+ useEffect( () => {
53
+ const tabsElements = Array.from(
54
+ tabListRef.current?.querySelectorAll( '[role="tab"]' ) || []
55
+ );
56
+ const selectedTabElement = tabsElements.find(
57
+ // We are purposefully using a custom `data-tab-id` attribute here
58
+ // because we don't want rely on any assumptions about `Tabs`
59
+ // component internals.
60
+ ( element ) => element.getAttribute( 'data-tab-id' ) === sidebarName
61
+ );
62
+ const activeElement = selectedTabElement?.ownerDocument.activeElement;
63
+ const tabsHasFocus = tabsElements.some( ( element ) => {
64
+ return activeElement && activeElement.id === element.id;
65
+ } );
66
+ if (
67
+ tabsHasFocus &&
68
+ selectedTabElement &&
69
+ selectedTabElement.id !== activeElement?.id
70
+ ) {
71
+ selectedTabElement?.focus();
72
+ }
73
+ }, [ sidebarName ] );
74
+
75
+ return (
76
+ <>
77
+ <DefaultSidebar
78
+ identifier={ sidebarName }
79
+ title={ __( 'Settings' ) }
80
+ icon={ isRTL() ? drawerLeft : drawerRight }
81
+ closeLabel={ __( 'Close Settings' ) }
82
+ header={
83
+ <Tabs.Context.Provider value={ tabsContextValue }>
84
+ <SettingsHeader ref={ tabListRef } />
85
+ </Tabs.Context.Provider>
86
+ }
87
+ headerClassName="edit-site-sidebar-edit-mode__panel-tabs"
88
+ // This classname is added so we can apply a corrective negative
89
+ // margin to the panel.
90
+ // see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049
91
+ className="edit-site-sidebar__panel"
92
+ >
93
+ <Tabs.Context.Provider value={ tabsContextValue }>
94
+ <Tabs.TabPanel
95
+ tabId={ SIDEBAR_TEMPLATE }
96
+ focusable={ false }
97
+ >
98
+ { isEditingPage ? <PagePanels /> : <TemplatePanel /> }
99
+ <PluginTemplateSettingPanel.Slot />
100
+ </Tabs.TabPanel>
101
+ <Tabs.TabPanel tabId={ SIDEBAR_BLOCK } focusable={ false }>
102
+ <InspectorSlot bubblesVirtually />
103
+ </Tabs.TabPanel>
104
+ </Tabs.Context.Provider>
105
+ </DefaultSidebar>
106
+ { supportsGlobalStyles && <GlobalStylesSidebar /> }
107
+ </>
108
+ );
109
+ };
110
+
30
111
  export function SidebarComplementaryAreaFills() {
31
112
  const {
32
113
  sidebar,
@@ -34,21 +115,26 @@ export function SidebarComplementaryAreaFills() {
34
115
  hasBlockSelection,
35
116
  supportsGlobalStyles,
36
117
  isEditingPage,
118
+ isEditorOpen,
37
119
  } = useSelect( ( select ) => {
38
120
  const _sidebar =
39
121
  select( interfaceStore ).getActiveComplementaryArea( STORE_NAME );
122
+
40
123
  const _isEditorSidebarOpened = [
41
124
  SIDEBAR_BLOCK,
42
125
  SIDEBAR_TEMPLATE,
43
126
  ].includes( _sidebar );
44
- const settings = select( editSiteStore ).getSettings();
127
+ const { getCanvasMode } = unlock( select( editSiteStore ) );
128
+
45
129
  return {
46
130
  sidebar: _sidebar,
47
131
  isEditorSidebarOpened: _isEditorSidebarOpened,
48
132
  hasBlockSelection:
49
133
  !! select( blockEditorStore ).getBlockSelectionStart(),
50
- supportsGlobalStyles: ! settings?.supportsTemplatePartsMode,
134
+ supportsGlobalStyles:
135
+ select( coreStore ).getCurrentTheme()?.is_block_theme,
51
136
  isEditingPage: select( editSiteStore ).isPage(),
137
+ isEditorOpen: getCanvasMode() === 'edit',
52
138
  };
53
139
  }, [] );
54
140
  const { enableComplementaryArea } = useDispatch( interfaceStore );
@@ -78,27 +164,37 @@ export function SidebarComplementaryAreaFills() {
78
164
  sidebarName = hasBlockSelection ? SIDEBAR_BLOCK : SIDEBAR_TEMPLATE;
79
165
  }
80
166
 
167
+ // `newSelectedTabId` could technically be falsey if no tab is selected (i.e.
168
+ // the initial render) or when we don't want a tab displayed (i.e. the
169
+ // sidebar is closed). These cases should both be covered by the `!!` check
170
+ // below, so we shouldn't need any additional falsey handling.
171
+ const onTabSelect = useCallback(
172
+ ( newSelectedTabId ) => {
173
+ if ( !! newSelectedTabId ) {
174
+ enableComplementaryArea( STORE_NAME, newSelectedTabId );
175
+ }
176
+ },
177
+ [ enableComplementaryArea ]
178
+ );
179
+
81
180
  return (
82
- <>
83
- <DefaultSidebar
84
- identifier={ sidebarName }
85
- title={ __( 'Settings' ) }
86
- icon={ isRTL() ? drawerLeft : drawerRight }
87
- closeLabel={ __( 'Close Settings' ) }
88
- header={ <SettingsHeader sidebarName={ sidebarName } /> }
89
- headerClassName="edit-site-sidebar-edit-mode__panel-tabs"
90
- >
91
- { sidebarName === SIDEBAR_TEMPLATE && (
92
- <>
93
- { isEditingPage ? <PagePanels /> : <TemplatePanel /> }
94
- <PluginTemplateSettingPanel.Slot />
95
- </>
96
- ) }
97
- { sidebarName === SIDEBAR_BLOCK && (
98
- <InspectorSlot bubblesVirtually />
99
- ) }
100
- </DefaultSidebar>
101
- { supportsGlobalStyles && <GlobalStylesSidebar /> }
102
- </>
181
+ <Tabs
182
+ // Due to how this component is controlled (via a value from the
183
+ // edit-site store), when the sidebar closes the currently selected
184
+ // tab can't be found. This causes the component to continuously reset
185
+ // the selection to `null` in an infinite loop. Proactively setting
186
+ // the selected tab to `null` avoids that.
187
+ selectedTabId={
188
+ isEditorOpen && isEditorSidebarOpened ? sidebarName : null
189
+ }
190
+ onSelect={ onTabSelect }
191
+ selectOnMove={ false }
192
+ >
193
+ <FillContents
194
+ sidebarName={ sidebarName }
195
+ isEditingPage={ isEditingPage }
196
+ supportsGlobalStyles={ supportsGlobalStyles }
197
+ />
198
+ </Tabs>
103
199
  );
104
200
  }
@@ -1,82 +1,44 @@
1
- /**
2
- * External dependencies
3
- */
4
- import classnames from 'classnames';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
- import { Button } from '@wordpress/components';
10
- import { __, sprintf } from '@wordpress/i18n';
11
- import { useSelect, useDispatch } from '@wordpress/data';
12
- import { store as interfaceStore } from '@wordpress/interface';
4
+ import { privateApis as componentsPrivateApis } from '@wordpress/components';
5
+ import { __ } from '@wordpress/i18n';
6
+ import { useSelect } from '@wordpress/data';
13
7
  import { store as editorStore } from '@wordpress/editor';
8
+ import { forwardRef } from '@wordpress/element';
14
9
 
15
10
  /**
16
11
  * Internal dependencies
17
12
  */
18
- import { STORE_NAME } from '../../../store/constants';
19
13
  import { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';
14
+ import { unlock } from '../../../lock-unlock';
20
15
 
21
- const SettingsHeader = ( { sidebarName } ) => {
16
+ const { Tabs } = unlock( componentsPrivateApis );
17
+
18
+ const SettingsHeader = ( _, ref ) => {
22
19
  const postTypeLabel = useSelect(
23
20
  ( select ) => select( editorStore ).getPostTypeLabel(),
24
21
  []
25
22
  );
26
23
 
27
- const { enableComplementaryArea } = useDispatch( interfaceStore );
28
- const openTemplateSettings = () =>
29
- enableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );
30
- const openBlockSettings = () =>
31
- enableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );
32
-
33
- const documentAriaLabel =
34
- sidebarName === SIDEBAR_TEMPLATE
35
- ? // translators: ARIA label for the Template sidebar tab, selected.
36
- sprintf( __( '%s (selected)' ), postTypeLabel )
37
- : postTypeLabel;
38
-
39
- /* Use a list so screen readers will announce how many tabs there are. */
40
24
  return (
41
- <ul>
42
- <li>
43
- <Button
44
- onClick={ openTemplateSettings }
45
- className={ classnames(
46
- 'edit-site-sidebar-edit-mode__panel-tab',
47
- {
48
- 'is-active': sidebarName === SIDEBAR_TEMPLATE,
49
- }
50
- ) }
51
- aria-label={ documentAriaLabel }
52
- data-label={ postTypeLabel }
53
- >
54
- { postTypeLabel }
55
- </Button>
56
- </li>
57
- <li>
58
- <Button
59
- onClick={ openBlockSettings }
60
- className={ classnames(
61
- 'edit-site-sidebar-edit-mode__panel-tab',
62
- {
63
- 'is-active': sidebarName === SIDEBAR_BLOCK,
64
- }
65
- ) }
66
- aria-label={
67
- sidebarName === SIDEBAR_BLOCK
68
- ? // translators: ARIA label for the Block Settings Sidebar tab, selected.
69
- __( 'Block (selected)' )
70
- : // translators: ARIA label for the Block Settings Sidebar tab, not selected.
71
- __( 'Block' )
72
- }
73
- data-label={ __( 'Block' ) }
74
- >
75
- { __( 'Block' ) }
76
- </Button>
77
- </li>
78
- </ul>
25
+ <Tabs.TabList ref={ ref }>
26
+ <Tabs.Tab
27
+ tabId={ SIDEBAR_TEMPLATE }
28
+ // Used for focus management in the SettingsSidebar component.
29
+ data-tab-id={ SIDEBAR_TEMPLATE }
30
+ >
31
+ { postTypeLabel }
32
+ </Tabs.Tab>
33
+ <Tabs.Tab
34
+ tabId={ SIDEBAR_BLOCK }
35
+ // Used for focus management in the SettingsSidebar component.
36
+ data-tab-id={ SIDEBAR_BLOCK }
37
+ >
38
+ { __( 'Block' ) }
39
+ </Tabs.Tab>
40
+ </Tabs.TabList>
79
41
  );
80
42
  };
81
43
 
82
- export default SettingsHeader;
44
+ export default forwardRef( SettingsHeader );