@wordpress/editor 13.32.0 → 13.33.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 (589) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +225 -2
  3. package/build/bindings/index.js.map +1 -1
  4. package/build/bindings/pattern-overrides.js.map +1 -1
  5. package/build/bindings/post-meta.js +12 -30
  6. package/build/bindings/post-meta.js.map +1 -1
  7. package/build/components/autocompleters/index.js.map +1 -1
  8. package/build/components/autocompleters/user.js.map +1 -1
  9. package/build/components/autosave-monitor/index.js +10 -0
  10. package/build/components/autosave-monitor/index.js.map +1 -1
  11. package/build/components/block-manager/category.js.map +1 -1
  12. package/build/components/block-manager/checklist.js.map +1 -1
  13. package/build/components/block-manager/index.js.map +1 -1
  14. package/build/components/block-removal-warnings/index.js.map +1 -1
  15. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
  16. package/build/components/character-count/index.js.map +1 -1
  17. package/build/components/commands/index.js +19 -0
  18. package/build/components/commands/index.js.map +1 -1
  19. package/build/components/commands/index.native.js.map +1 -1
  20. package/build/components/deprecated.js.map +1 -1
  21. package/build/components/deprecated.native.js.map +1 -1
  22. package/build/components/document-bar/index.js.map +1 -1
  23. package/build/components/document-outline/check.js.map +1 -1
  24. package/build/components/document-outline/index.js.map +1 -1
  25. package/build/components/document-outline/item.js.map +1 -1
  26. package/build/components/document-tools/index.js +1 -1
  27. package/build/components/document-tools/index.js.map +1 -1
  28. package/build/components/editor-canvas/edit-template-blocks-notification.js +13 -2
  29. package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
  30. package/build/components/editor-canvas/index.js +2 -2
  31. package/build/components/editor-canvas/index.js.map +1 -1
  32. package/build/components/editor-help/add-blocks.native.js.map +1 -1
  33. package/build/components/editor-help/customize-blocks.native.js.map +1 -1
  34. package/build/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  35. package/build/components/editor-help/help-get-support-button.native.js.map +1 -1
  36. package/build/components/editor-help/help-section-title.native.js.map +1 -1
  37. package/build/components/editor-help/help-topic-row.native.js.map +1 -1
  38. package/build/components/editor-help/icon-move-blocks.native.js.map +1 -1
  39. package/build/components/editor-help/index.native.js.map +1 -1
  40. package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
  41. package/build/components/editor-help/move-blocks.native.js.map +1 -1
  42. package/build/components/editor-help/remove-blocks.native.js.map +1 -1
  43. package/build/components/editor-help/view-sections.native.js.map +1 -1
  44. package/build/components/editor-history/redo.js.map +1 -1
  45. package/build/components/editor-history/undo.js.map +1 -1
  46. package/build/components/editor-notices/index.js.map +1 -1
  47. package/build/components/editor-snackbars/index.js.map +1 -1
  48. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  49. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  50. package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  51. package/build/components/entities-saved-states/index.js.map +1 -1
  52. package/build/components/error-boundary/index.js.map +1 -1
  53. package/build/components/error-boundary/index.native.js.map +1 -1
  54. package/build/components/global-keyboard-shortcuts/index.js +24 -0
  55. package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
  56. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +18 -0
  57. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  58. package/build/components/index.js +33 -1
  59. package/build/components/index.js.map +1 -1
  60. package/build/components/index.native.js.map +1 -1
  61. package/build/components/inserter-sidebar/index.js.map +1 -1
  62. package/build/components/keyboard-shortcut-help-modal/config.js +78 -0
  63. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -0
  64. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +49 -0
  65. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -0
  66. package/build/components/keyboard-shortcut-help-modal/index.js +126 -0
  67. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -0
  68. package/build/components/keyboard-shortcut-help-modal/shortcut.js +55 -0
  69. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -0
  70. package/build/components/list-view-sidebar/index.js.map +1 -1
  71. package/build/components/list-view-sidebar/list-view-outline.js.map +1 -1
  72. package/build/components/local-autosave-monitor/index.js.map +1 -1
  73. package/build/components/media-categories/index.js.map +1 -1
  74. package/build/components/mode-switcher/index.js.map +1 -1
  75. package/build/components/offline-status/index.native.js.map +1 -1
  76. package/build/components/page-attributes/check.js.map +1 -1
  77. package/build/components/page-attributes/order.js.map +1 -1
  78. package/build/components/page-attributes/panel.js.map +1 -1
  79. package/build/components/page-attributes/parent.js.map +1 -1
  80. package/build/components/pattern-overrides-panel/index.js.map +1 -1
  81. package/build/components/plugin-document-setting-panel/index.js.map +1 -1
  82. package/build/components/plugin-more-menu-item/index.js +78 -0
  83. package/build/components/plugin-more-menu-item/index.js.map +1 -0
  84. package/build/components/plugin-post-publish-panel/index.js.map +1 -1
  85. package/build/components/plugin-post-status-info/index.js +73 -0
  86. package/build/components/plugin-post-status-info/index.js.map +1 -0
  87. package/build/components/plugin-pre-publish-panel/index.js.map +1 -1
  88. package/build/components/plugin-sidebar/index.js +108 -0
  89. package/build/components/plugin-sidebar/index.js.map +1 -0
  90. package/build/components/plugin-sidebar-more-menu-item/index.js +71 -0
  91. package/build/components/plugin-sidebar-more-menu-item/index.js.map +1 -0
  92. package/build/components/post-actions/actions.js +218 -17
  93. package/build/components/post-actions/actions.js.map +1 -1
  94. package/build/components/post-actions/index.js +137 -0
  95. package/build/components/post-actions/index.js.map +1 -0
  96. package/build/components/post-author/check.js.map +1 -1
  97. package/build/components/post-author/combobox.js.map +1 -1
  98. package/build/components/post-author/constants.js.map +1 -1
  99. package/build/components/post-author/hook.js.map +1 -1
  100. package/build/components/post-author/index.js.map +1 -1
  101. package/build/components/post-author/panel.js.map +1 -1
  102. package/build/components/post-author/select.js.map +1 -1
  103. package/build/components/post-card-panel/index.js +40 -6
  104. package/build/components/post-card-panel/index.js.map +1 -1
  105. package/build/components/post-comments/index.js.map +1 -1
  106. package/build/components/post-discussion/panel.js.map +1 -1
  107. package/build/components/post-excerpt/check.js +8 -0
  108. package/build/components/post-excerpt/check.js.map +1 -1
  109. package/build/components/post-excerpt/index.js.map +1 -1
  110. package/build/components/post-excerpt/panel.js.map +1 -1
  111. package/build/components/post-excerpt/plugin.js.map +1 -1
  112. package/build/components/post-featured-image/check.js.map +1 -1
  113. package/build/components/post-featured-image/index.js.map +1 -1
  114. package/build/components/post-featured-image/panel.js.map +1 -1
  115. package/build/components/post-format/check.js.map +1 -1
  116. package/build/components/post-format/index.js.map +1 -1
  117. package/build/components/post-last-revision/check.js.map +1 -1
  118. package/build/components/post-last-revision/index.js.map +1 -1
  119. package/build/components/post-last-revision/panel.js.map +1 -1
  120. package/build/components/post-locked-modal/index.js.map +1 -1
  121. package/build/components/post-panel-row/index.js.map +1 -1
  122. package/build/components/post-pending-status/check.js.map +1 -1
  123. package/build/components/post-pending-status/index.js.map +1 -1
  124. package/build/components/post-pingbacks/index.js.map +1 -1
  125. package/build/components/post-preview-button/index.js.map +1 -1
  126. package/build/components/post-publish-button/index.js +31 -31
  127. package/build/components/post-publish-button/index.js.map +1 -1
  128. package/build/components/post-publish-button/label.js +51 -43
  129. package/build/components/post-publish-button/label.js.map +1 -1
  130. package/build/components/post-publish-panel/index.js.map +1 -1
  131. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  132. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  133. package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  134. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  135. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  136. package/build/components/post-publish-panel/prepublish.js.map +1 -1
  137. package/build/components/post-saved-state/index.js +10 -6
  138. package/build/components/post-saved-state/index.js.map +1 -1
  139. package/build/components/post-schedule/check.js.map +1 -1
  140. package/build/components/post-schedule/index.js.map +1 -1
  141. package/build/components/post-schedule/label.js.map +1 -1
  142. package/build/components/post-schedule/panel.js +8 -0
  143. package/build/components/post-schedule/panel.js.map +1 -1
  144. package/build/components/post-slug/check.js.map +1 -1
  145. package/build/components/post-slug/index.js +43 -68
  146. package/build/components/post-slug/index.js.map +1 -1
  147. package/build/components/post-status/index.js +239 -0
  148. package/build/components/post-status/index.js.map +1 -0
  149. package/build/components/post-sticky/check.js.map +1 -1
  150. package/build/components/post-sticky/index.js.map +1 -1
  151. package/build/components/post-switch-to-draft-button/index.js +6 -1
  152. package/build/components/post-switch-to-draft-button/index.js.map +1 -1
  153. package/build/components/post-sync-status/index.js.map +1 -1
  154. package/build/components/post-taxonomies/check.js.map +1 -1
  155. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  156. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  157. package/build/components/post-taxonomies/index.js.map +1 -1
  158. package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
  159. package/build/components/post-taxonomies/panel.js.map +1 -1
  160. package/build/components/post-template/block-theme.js +6 -2
  161. package/build/components/post-template/block-theme.js.map +1 -1
  162. package/build/components/post-template/classic-theme.js.map +1 -1
  163. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  164. package/build/components/post-template/create-new-template.js.map +1 -1
  165. package/build/components/post-template/hooks.js.map +1 -1
  166. package/build/components/post-template/panel.js.map +1 -1
  167. package/build/components/post-template/reset-default-template.js.map +1 -1
  168. package/build/components/post-template/swap-template-button.js.map +1 -1
  169. package/build/components/post-text-editor/index.js.map +1 -1
  170. package/build/components/post-title/constants.js.map +1 -1
  171. package/build/components/post-title/index.js.map +1 -1
  172. package/build/components/post-title/index.native.js.map +1 -1
  173. package/build/components/post-title/post-title-raw.js.map +1 -1
  174. package/build/components/post-title/use-post-title-focus.js.map +1 -1
  175. package/build/components/post-title/use-post-title.js.map +1 -1
  176. package/build/components/post-trash/check.js +23 -25
  177. package/build/components/post-trash/check.js.map +1 -1
  178. package/build/components/post-trash/index.js +2 -1
  179. package/build/components/post-trash/index.js.map +1 -1
  180. package/build/components/post-type-support-check/index.js.map +1 -1
  181. package/build/components/post-url/check.js.map +1 -1
  182. package/build/components/post-url/index.js +44 -19
  183. package/build/components/post-url/index.js.map +1 -1
  184. package/build/components/post-url/label.js.map +1 -1
  185. package/build/components/post-url/panel.js +14 -7
  186. package/build/components/post-url/panel.js.map +1 -1
  187. package/build/components/post-view-link/index.js.map +1 -1
  188. package/build/components/post-visibility/check.js.map +1 -1
  189. package/build/components/post-visibility/index.js +2 -1
  190. package/build/components/post-visibility/index.js.map +1 -1
  191. package/build/components/post-visibility/label.js.map +1 -1
  192. package/build/components/post-visibility/utils.js.map +1 -1
  193. package/build/components/preferences-modal/enable-panel.js.map +1 -1
  194. package/build/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  195. package/build/components/preferences-modal/index.js +19 -17
  196. package/build/components/preferences-modal/index.js.map +1 -1
  197. package/build/components/preview-dropdown/index.js.map +1 -1
  198. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  199. package/build/components/provider/index.js +4 -2
  200. package/build/components/provider/index.js.map +1 -1
  201. package/build/components/provider/index.native.js +6 -1
  202. package/build/components/provider/index.native.js.map +1 -1
  203. package/build/components/provider/navigation-block-editing-mode.js.map +1 -1
  204. package/build/components/provider/use-auto-switch-editor-sidebars.js +52 -0
  205. package/build/components/provider/use-auto-switch-editor-sidebars.js.map +1 -0
  206. package/build/components/provider/use-block-editor-settings.js +64 -43
  207. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  208. package/build/components/provider/use-block-editor-settings.native.js.map +1 -1
  209. package/build/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  210. package/build/components/provider/with-registry-provider.js +1 -0
  211. package/build/components/provider/with-registry-provider.js.map +1 -1
  212. package/build/components/start-page-options/index.js +139 -0
  213. package/build/components/start-page-options/index.js.map +1 -0
  214. package/build/components/table-of-contents/index.js.map +1 -1
  215. package/build/components/table-of-contents/panel.js.map +1 -1
  216. package/build/components/template-areas/index.js.map +1 -1
  217. package/build/components/template-validation-notice/index.js +23 -29
  218. package/build/components/template-validation-notice/index.js.map +1 -1
  219. package/build/components/theme-support-check/index.js +10 -16
  220. package/build/components/theme-support-check/index.js.map +1 -1
  221. package/build/components/time-to-read/index.js.map +1 -1
  222. package/build/components/unsaved-changes-warning/index.js.map +1 -1
  223. package/build/components/word-count/index.js.map +1 -1
  224. package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  225. package/build/hooks/default-autocompleters.js.map +1 -1
  226. package/build/hooks/index.js.map +1 -1
  227. package/build/hooks/index.native.js.map +1 -1
  228. package/build/hooks/pattern-overrides.js +22 -10
  229. package/build/hooks/pattern-overrides.js.map +1 -1
  230. package/build/hooks/use-select-nearest-editable-block.js.map +1 -1
  231. package/build/index.js.map +1 -1
  232. package/build/index.native.js.map +1 -1
  233. package/build/lock-unlock.js.map +1 -1
  234. package/build/private-apis.js +20 -1
  235. package/build/private-apis.js.map +1 -1
  236. package/build/store/actions.js.map +1 -1
  237. package/build/store/actions.native.js.map +1 -1
  238. package/build/store/constants.js +8 -1
  239. package/build/store/constants.js.map +1 -1
  240. package/build/store/defaults.js.map +1 -1
  241. package/build/store/index.js +1 -1
  242. package/build/store/index.js.map +1 -1
  243. package/build/store/local-autosave.js.map +1 -1
  244. package/build/store/private-actions.js +177 -4
  245. package/build/store/private-actions.js.map +1 -1
  246. package/build/store/private-selectors.js +1 -7
  247. package/build/store/private-selectors.js.map +1 -1
  248. package/build/store/reducer.js.map +1 -1
  249. package/build/store/reducer.native.js.map +1 -1
  250. package/build/store/selectors.js +5 -10
  251. package/build/store/selectors.js.map +1 -1
  252. package/build/store/selectors.native.js.map +1 -1
  253. package/build/store/utils/get-filtered-template-parts.js.map +1 -1
  254. package/build/store/utils/is-template-revertable.js +28 -0
  255. package/build/store/utils/is-template-revertable.js.map +1 -0
  256. package/build/store/utils/notice-builder.js.map +1 -1
  257. package/build/utils/get-template-part-icon.js.map +1 -1
  258. package/build/utils/index.js.map +1 -1
  259. package/build/utils/index.native.js.map +1 -1
  260. package/build/utils/media-upload/index.js.map +1 -1
  261. package/build/utils/media-upload/index.native.js.map +1 -1
  262. package/build/utils/terms.js.map +1 -1
  263. package/build/utils/url.js.map +1 -1
  264. package/build-module/bindings/index.js.map +1 -1
  265. package/build-module/bindings/pattern-overrides.js.map +1 -1
  266. package/build-module/bindings/post-meta.js +14 -31
  267. package/build-module/bindings/post-meta.js.map +1 -1
  268. package/build-module/components/autocompleters/index.js.map +1 -1
  269. package/build-module/components/autocompleters/user.js.map +1 -1
  270. package/build-module/components/autosave-monitor/index.js +10 -0
  271. package/build-module/components/autosave-monitor/index.js.map +1 -1
  272. package/build-module/components/block-manager/category.js.map +1 -1
  273. package/build-module/components/block-manager/checklist.js.map +1 -1
  274. package/build-module/components/block-manager/index.js.map +1 -1
  275. package/build-module/components/block-removal-warnings/index.js.map +1 -1
  276. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
  277. package/build-module/components/character-count/index.js.map +1 -1
  278. package/build-module/components/commands/index.js +20 -1
  279. package/build-module/components/commands/index.js.map +1 -1
  280. package/build-module/components/commands/index.native.js.map +1 -1
  281. package/build-module/components/deprecated.js.map +1 -1
  282. package/build-module/components/deprecated.native.js.map +1 -1
  283. package/build-module/components/document-bar/index.js.map +1 -1
  284. package/build-module/components/document-outline/check.js.map +1 -1
  285. package/build-module/components/document-outline/index.js.map +1 -1
  286. package/build-module/components/document-outline/item.js.map +1 -1
  287. package/build-module/components/document-tools/index.js +1 -1
  288. package/build-module/components/document-tools/index.js.map +1 -1
  289. package/build-module/components/editor-canvas/edit-template-blocks-notification.js +13 -2
  290. package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
  291. package/build-module/components/editor-canvas/index.js +2 -2
  292. package/build-module/components/editor-canvas/index.js.map +1 -1
  293. package/build-module/components/editor-help/add-blocks.native.js.map +1 -1
  294. package/build-module/components/editor-help/customize-blocks.native.js.map +1 -1
  295. package/build-module/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  296. package/build-module/components/editor-help/help-get-support-button.native.js.map +1 -1
  297. package/build-module/components/editor-help/help-section-title.native.js.map +1 -1
  298. package/build-module/components/editor-help/help-topic-row.native.js.map +1 -1
  299. package/build-module/components/editor-help/icon-move-blocks.native.js.map +1 -1
  300. package/build-module/components/editor-help/index.native.js.map +1 -1
  301. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  302. package/build-module/components/editor-help/move-blocks.native.js.map +1 -1
  303. package/build-module/components/editor-help/remove-blocks.native.js.map +1 -1
  304. package/build-module/components/editor-help/view-sections.native.js.map +1 -1
  305. package/build-module/components/editor-history/redo.js.map +1 -1
  306. package/build-module/components/editor-history/undo.js.map +1 -1
  307. package/build-module/components/editor-notices/index.js.map +1 -1
  308. package/build-module/components/editor-snackbars/index.js.map +1 -1
  309. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  310. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  311. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  312. package/build-module/components/entities-saved-states/index.js.map +1 -1
  313. package/build-module/components/error-boundary/index.js.map +1 -1
  314. package/build-module/components/error-boundary/index.native.js.map +1 -1
  315. package/build-module/components/global-keyboard-shortcuts/index.js +24 -0
  316. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
  317. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +18 -0
  318. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  319. package/build-module/components/index.js +4 -0
  320. package/build-module/components/index.js.map +1 -1
  321. package/build-module/components/index.native.js.map +1 -1
  322. package/build-module/components/inserter-sidebar/index.js.map +1 -1
  323. package/build-module/components/keyboard-shortcut-help-modal/config.js +71 -0
  324. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -0
  325. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +41 -0
  326. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -0
  327. package/build-module/components/keyboard-shortcut-help-modal/index.js +118 -0
  328. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -0
  329. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +48 -0
  330. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -0
  331. package/build-module/components/list-view-sidebar/index.js.map +1 -1
  332. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -1
  333. package/build-module/components/local-autosave-monitor/index.js.map +1 -1
  334. package/build-module/components/media-categories/index.js.map +1 -1
  335. package/build-module/components/mode-switcher/index.js.map +1 -1
  336. package/build-module/components/offline-status/index.native.js.map +1 -1
  337. package/build-module/components/page-attributes/check.js.map +1 -1
  338. package/build-module/components/page-attributes/order.js.map +1 -1
  339. package/build-module/components/page-attributes/panel.js.map +1 -1
  340. package/build-module/components/page-attributes/parent.js.map +1 -1
  341. package/build-module/components/pattern-overrides-panel/index.js.map +1 -1
  342. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -1
  343. package/build-module/components/plugin-more-menu-item/index.js +73 -0
  344. package/build-module/components/plugin-more-menu-item/index.js.map +1 -0
  345. package/build-module/components/plugin-post-publish-panel/index.js.map +1 -1
  346. package/build-module/components/plugin-post-status-info/index.js +66 -0
  347. package/build-module/components/plugin-post-status-info/index.js.map +1 -0
  348. package/build-module/components/plugin-pre-publish-panel/index.js.map +1 -1
  349. package/build-module/components/plugin-sidebar/index.js +102 -0
  350. package/build-module/components/plugin-sidebar/index.js.map +1 -0
  351. package/build-module/components/plugin-sidebar-more-menu-item/index.js +65 -0
  352. package/build-module/components/plugin-sidebar-more-menu-item/index.js.map +1 -0
  353. package/build-module/components/post-actions/actions.js +219 -15
  354. package/build-module/components/post-actions/actions.js.map +1 -1
  355. package/build-module/components/post-actions/index.js +130 -0
  356. package/build-module/components/post-actions/index.js.map +1 -0
  357. package/build-module/components/post-author/check.js.map +1 -1
  358. package/build-module/components/post-author/combobox.js.map +1 -1
  359. package/build-module/components/post-author/constants.js.map +1 -1
  360. package/build-module/components/post-author/hook.js.map +1 -1
  361. package/build-module/components/post-author/index.js.map +1 -1
  362. package/build-module/components/post-author/panel.js.map +1 -1
  363. package/build-module/components/post-author/select.js.map +1 -1
  364. package/build-module/components/post-card-panel/index.js +42 -8
  365. package/build-module/components/post-card-panel/index.js.map +1 -1
  366. package/build-module/components/post-comments/index.js.map +1 -1
  367. package/build-module/components/post-discussion/panel.js.map +1 -1
  368. package/build-module/components/post-excerpt/check.js +9 -0
  369. package/build-module/components/post-excerpt/check.js.map +1 -1
  370. package/build-module/components/post-excerpt/index.js.map +1 -1
  371. package/build-module/components/post-excerpt/panel.js.map +1 -1
  372. package/build-module/components/post-excerpt/plugin.js.map +1 -1
  373. package/build-module/components/post-featured-image/check.js.map +1 -1
  374. package/build-module/components/post-featured-image/index.js.map +1 -1
  375. package/build-module/components/post-featured-image/panel.js.map +1 -1
  376. package/build-module/components/post-format/check.js.map +1 -1
  377. package/build-module/components/post-format/index.js.map +1 -1
  378. package/build-module/components/post-last-revision/check.js.map +1 -1
  379. package/build-module/components/post-last-revision/index.js.map +1 -1
  380. package/build-module/components/post-last-revision/panel.js.map +1 -1
  381. package/build-module/components/post-locked-modal/index.js.map +1 -1
  382. package/build-module/components/post-panel-row/index.js.map +1 -1
  383. package/build-module/components/post-pending-status/check.js.map +1 -1
  384. package/build-module/components/post-pending-status/index.js.map +1 -1
  385. package/build-module/components/post-pingbacks/index.js.map +1 -1
  386. package/build-module/components/post-preview-button/index.js.map +1 -1
  387. package/build-module/components/post-publish-button/index.js +31 -31
  388. package/build-module/components/post-publish-button/index.js.map +1 -1
  389. package/build-module/components/post-publish-button/label.js +51 -42
  390. package/build-module/components/post-publish-button/label.js.map +1 -1
  391. package/build-module/components/post-publish-panel/index.js.map +1 -1
  392. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  393. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  394. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  395. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  396. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  397. package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
  398. package/build-module/components/post-saved-state/index.js +10 -6
  399. package/build-module/components/post-saved-state/index.js.map +1 -1
  400. package/build-module/components/post-schedule/check.js.map +1 -1
  401. package/build-module/components/post-schedule/index.js.map +1 -1
  402. package/build-module/components/post-schedule/label.js.map +1 -1
  403. package/build-module/components/post-schedule/panel.js +8 -0
  404. package/build-module/components/post-schedule/panel.js.map +1 -1
  405. package/build-module/components/post-slug/check.js.map +1 -1
  406. package/build-module/components/post-slug/index.js +44 -68
  407. package/build-module/components/post-slug/index.js.map +1 -1
  408. package/build-module/components/post-status/index.js +231 -0
  409. package/build-module/components/post-status/index.js.map +1 -0
  410. package/build-module/components/post-sticky/check.js.map +1 -1
  411. package/build-module/components/post-sticky/index.js.map +1 -1
  412. package/build-module/components/post-switch-to-draft-button/index.js +7 -1
  413. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  414. package/build-module/components/post-sync-status/index.js.map +1 -1
  415. package/build-module/components/post-taxonomies/check.js.map +1 -1
  416. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  417. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  418. package/build-module/components/post-taxonomies/index.js.map +1 -1
  419. package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
  420. package/build-module/components/post-taxonomies/panel.js.map +1 -1
  421. package/build-module/components/post-template/block-theme.js +7 -3
  422. package/build-module/components/post-template/block-theme.js.map +1 -1
  423. package/build-module/components/post-template/classic-theme.js.map +1 -1
  424. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  425. package/build-module/components/post-template/create-new-template.js.map +1 -1
  426. package/build-module/components/post-template/hooks.js.map +1 -1
  427. package/build-module/components/post-template/panel.js.map +1 -1
  428. package/build-module/components/post-template/reset-default-template.js.map +1 -1
  429. package/build-module/components/post-template/swap-template-button.js.map +1 -1
  430. package/build-module/components/post-text-editor/index.js.map +1 -1
  431. package/build-module/components/post-title/constants.js.map +1 -1
  432. package/build-module/components/post-title/index.js.map +1 -1
  433. package/build-module/components/post-title/index.native.js.map +1 -1
  434. package/build-module/components/post-title/post-title-raw.js.map +1 -1
  435. package/build-module/components/post-title/use-post-title-focus.js.map +1 -1
  436. package/build-module/components/post-title/use-post-title.js.map +1 -1
  437. package/build-module/components/post-trash/check.js +24 -26
  438. package/build-module/components/post-trash/check.js.map +1 -1
  439. package/build-module/components/post-trash/index.js +2 -1
  440. package/build-module/components/post-trash/index.js.map +1 -1
  441. package/build-module/components/post-type-support-check/index.js.map +1 -1
  442. package/build-module/components/post-url/check.js.map +1 -1
  443. package/build-module/components/post-url/index.js +46 -21
  444. package/build-module/components/post-url/index.js.map +1 -1
  445. package/build-module/components/post-url/label.js.map +1 -1
  446. package/build-module/components/post-url/panel.js +14 -7
  447. package/build-module/components/post-url/panel.js.map +1 -1
  448. package/build-module/components/post-view-link/index.js.map +1 -1
  449. package/build-module/components/post-visibility/check.js.map +1 -1
  450. package/build-module/components/post-visibility/index.js +2 -1
  451. package/build-module/components/post-visibility/index.js.map +1 -1
  452. package/build-module/components/post-visibility/label.js.map +1 -1
  453. package/build-module/components/post-visibility/utils.js.map +1 -1
  454. package/build-module/components/preferences-modal/enable-panel.js.map +1 -1
  455. package/build-module/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  456. package/build-module/components/preferences-modal/index.js +19 -17
  457. package/build-module/components/preferences-modal/index.js.map +1 -1
  458. package/build-module/components/preview-dropdown/index.js.map +1 -1
  459. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  460. package/build-module/components/provider/index.js +5 -3
  461. package/build-module/components/provider/index.js.map +1 -1
  462. package/build-module/components/provider/index.native.js.map +1 -1
  463. package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -1
  464. package/build-module/components/provider/use-auto-switch-editor-sidebars.js +46 -0
  465. package/build-module/components/provider/use-auto-switch-editor-sidebars.js.map +1 -0
  466. package/build-module/components/provider/use-block-editor-settings.js +66 -45
  467. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  468. package/build-module/components/provider/use-block-editor-settings.native.js.map +1 -1
  469. package/build-module/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  470. package/build-module/components/provider/with-registry-provider.js +1 -0
  471. package/build-module/components/provider/with-registry-provider.js.map +1 -1
  472. package/build-module/components/start-page-options/index.js +132 -0
  473. package/build-module/components/start-page-options/index.js.map +1 -0
  474. package/build-module/components/table-of-contents/index.js.map +1 -1
  475. package/build-module/components/table-of-contents/panel.js.map +1 -1
  476. package/build-module/components/template-areas/index.js.map +1 -1
  477. package/build-module/components/template-validation-notice/index.js +25 -31
  478. package/build-module/components/template-validation-notice/index.js.map +1 -1
  479. package/build-module/components/theme-support-check/index.js +11 -16
  480. package/build-module/components/theme-support-check/index.js.map +1 -1
  481. package/build-module/components/time-to-read/index.js.map +1 -1
  482. package/build-module/components/unsaved-changes-warning/index.js.map +1 -1
  483. package/build-module/components/word-count/index.js.map +1 -1
  484. package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  485. package/build-module/hooks/default-autocompleters.js.map +1 -1
  486. package/build-module/hooks/index.js.map +1 -1
  487. package/build-module/hooks/index.native.js.map +1 -1
  488. package/build-module/hooks/pattern-overrides.js +22 -10
  489. package/build-module/hooks/pattern-overrides.js.map +1 -1
  490. package/build-module/hooks/use-select-nearest-editable-block.js.map +1 -1
  491. package/build-module/index.js.map +1 -1
  492. package/build-module/index.native.js.map +1 -1
  493. package/build-module/lock-unlock.js.map +1 -1
  494. package/build-module/private-apis.js +18 -1
  495. package/build-module/private-apis.js.map +1 -1
  496. package/build-module/store/actions.js.map +1 -1
  497. package/build-module/store/actions.native.js.map +1 -1
  498. package/build-module/store/constants.js +7 -0
  499. package/build-module/store/constants.js.map +1 -1
  500. package/build-module/store/defaults.js.map +1 -1
  501. package/build-module/store/index.js.map +1 -1
  502. package/build-module/store/local-autosave.js.map +1 -1
  503. package/build-module/store/private-actions.js +174 -4
  504. package/build-module/store/private-actions.js.map +1 -1
  505. package/build-module/store/private-selectors.js +1 -6
  506. package/build-module/store/private-selectors.js.map +1 -1
  507. package/build-module/store/reducer.js.map +1 -1
  508. package/build-module/store/reducer.native.js.map +1 -1
  509. package/build-module/store/selectors.js +1 -6
  510. package/build-module/store/selectors.js.map +1 -1
  511. package/build-module/store/selectors.native.js.map +1 -1
  512. package/build-module/store/utils/get-filtered-template-parts.js.map +1 -1
  513. package/build-module/store/utils/is-template-revertable.js +22 -0
  514. package/build-module/store/utils/is-template-revertable.js.map +1 -0
  515. package/build-module/store/utils/notice-builder.js.map +1 -1
  516. package/build-module/utils/get-template-part-icon.js.map +1 -1
  517. package/build-module/utils/index.js.map +1 -1
  518. package/build-module/utils/index.native.js.map +1 -1
  519. package/build-module/utils/media-upload/index.js.map +1 -1
  520. package/build-module/utils/media-upload/index.native.js.map +1 -1
  521. package/build-module/utils/terms.js.map +1 -1
  522. package/build-module/utils/url.js.map +1 -1
  523. package/build-style/style-rtl.css +498 -25
  524. package/build-style/style.css +498 -25
  525. package/package.json +35 -35
  526. package/src/bindings/post-meta.js +11 -27
  527. package/src/components/autosave-monitor/index.js +9 -0
  528. package/src/components/commands/index.js +20 -1
  529. package/src/components/document-tools/index.js +16 -14
  530. package/src/components/editor-canvas/edit-template-blocks-notification.js +16 -2
  531. package/src/components/editor-canvas/index.js +4 -4
  532. package/src/components/error-boundary/style.native.scss +1 -1
  533. package/src/components/global-keyboard-shortcuts/index.js +25 -0
  534. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +20 -0
  535. package/src/components/index.js +4 -0
  536. package/src/components/keyboard-shortcut-help-modal/config.js +53 -0
  537. package/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +43 -0
  538. package/src/components/keyboard-shortcut-help-modal/index.js +160 -0
  539. package/src/components/keyboard-shortcut-help-modal/shortcut.js +67 -0
  540. package/src/components/keyboard-shortcut-help-modal/style.scss +61 -0
  541. package/src/components/plugin-more-menu-item/index.js +73 -0
  542. package/src/components/plugin-post-status-info/index.js +63 -0
  543. package/src/components/plugin-sidebar/index.js +98 -0
  544. package/src/components/plugin-sidebar-more-menu-item/index.js +64 -0
  545. package/src/components/post-actions/actions.js +294 -14
  546. package/src/components/post-actions/index.js +156 -0
  547. package/src/components/post-actions/style.scss +3 -0
  548. package/src/components/post-card-panel/index.js +69 -9
  549. package/src/components/post-excerpt/check.js +8 -0
  550. package/src/components/post-publish-button/index.js +23 -36
  551. package/src/components/post-publish-button/label.js +54 -39
  552. package/src/components/post-publish-button/test/index.js +15 -26
  553. package/src/components/post-publish-button/test/label.js +44 -21
  554. package/src/components/post-saved-state/index.js +13 -6
  555. package/src/components/post-saved-state/test/index.js +4 -0
  556. package/src/components/post-schedule/panel.js +22 -0
  557. package/src/components/post-slug/index.js +50 -68
  558. package/src/components/post-slug/test/index.js +29 -6
  559. package/src/components/post-status/index.js +310 -0
  560. package/src/components/post-status/style.scss +75 -0
  561. package/src/components/post-switch-to-draft-button/index.js +5 -0
  562. package/src/components/post-template/block-theme.js +31 -22
  563. package/src/components/post-trash/check.js +19 -19
  564. package/src/components/post-trash/index.js +1 -0
  565. package/src/components/post-url/index.js +131 -101
  566. package/src/components/post-url/panel.js +20 -7
  567. package/src/components/post-url/style.scss +8 -6
  568. package/src/components/post-visibility/index.js +1 -0
  569. package/src/components/preferences-modal/index.js +26 -22
  570. package/src/components/provider/index.js +17 -8
  571. package/src/components/provider/use-auto-switch-editor-sidebars.js +49 -0
  572. package/src/components/provider/use-block-editor-settings.js +59 -33
  573. package/src/components/provider/with-registry-provider.js +1 -0
  574. package/src/components/start-page-options/index.js +135 -0
  575. package/src/components/start-page-options/style.scss +26 -0
  576. package/src/components/template-validation-notice/index.js +48 -50
  577. package/src/components/theme-support-check/index.js +9 -16
  578. package/src/components/theme-support-check/test/index.js +44 -43
  579. package/src/hooks/pattern-overrides.js +25 -14
  580. package/src/private-apis.js +15 -0
  581. package/src/store/constants.js +7 -0
  582. package/src/store/private-actions.js +269 -4
  583. package/src/store/private-selectors.js +1 -6
  584. package/src/store/selectors.js +1 -6
  585. package/src/store/utils/is-template-revertable.js +23 -0
  586. package/src/style.scss +6 -2
  587. package/src/components/post-publish-button/style.scss +0 -8
  588. package/src/components/provider/test/disable-non-page-content-blocks.js +0 -111
  589. package/src/components/template-validation-notice/style.scss +0 -9
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { withSelect } from '@wordpress/data';
4
+ import { useSelect } from '@wordpress/data';
5
5
  import { store as coreStore } from '@wordpress/core-data';
6
6
 
7
7
  /**
@@ -9,26 +9,26 @@ import { store as coreStore } from '@wordpress/core-data';
9
9
  */
10
10
  import { store as editorStore } from '../../store';
11
11
 
12
- function PostTrashCheck( { isNew, postId, canUserDelete, children } ) {
13
- if ( isNew || ! postId || ! canUserDelete ) {
12
+ export default function PostTrashCheck( { children } ) {
13
+ const { canTrashPost } = useSelect( ( select ) => {
14
+ const { isEditedPostNew, getCurrentPostId, getCurrentPostType } =
15
+ select( editorStore );
16
+ const { getPostType, canUser } = select( coreStore );
17
+ const postType = getPostType( getCurrentPostType() );
18
+ const postId = getCurrentPostId();
19
+ const isNew = isEditedPostNew();
20
+ const resource = postType?.rest_base || ''; // eslint-disable-line camelcase
21
+ const canUserDelete =
22
+ postId && resource ? canUser( 'delete', resource, postId ) : false;
23
+
24
+ return {
25
+ canTrashPost: ( ! isNew || postId ) && canUserDelete,
26
+ };
27
+ }, [] );
28
+
29
+ if ( ! canTrashPost ) {
14
30
  return null;
15
31
  }
16
32
 
17
33
  return children;
18
34
  }
19
-
20
- export default withSelect( ( select ) => {
21
- const { isEditedPostNew, getCurrentPostId, getCurrentPostType } =
22
- select( editorStore );
23
- const { getPostType, canUser } = select( coreStore );
24
- const postId = getCurrentPostId();
25
- const postType = getPostType( getCurrentPostType() );
26
- const resource = postType?.rest_base || ''; // eslint-disable-line camelcase
27
-
28
- return {
29
- isNew: isEditedPostNew(),
30
- postId,
31
- canUserDelete:
32
- postId && resource ? canUser( 'delete', resource, postId ) : false,
33
- };
34
- } )( PostTrashCheck );
@@ -54,6 +54,7 @@ export default function PostTrash() {
54
54
  isOpen={ showConfirmDialog }
55
55
  onConfirm={ handleConfirm }
56
56
  onCancel={ () => setShowConfirmDialog( false ) }
57
+ confirmButtonText={ __( 'Move to trash' ) }
57
58
  >
58
59
  { __(
59
60
  'Are you sure you want to move this post to the trash?'
@@ -6,122 +6,152 @@ import { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';
6
6
  import { useState } from '@wordpress/element';
7
7
  import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
8
8
  import { __ } from '@wordpress/i18n';
9
- import { TextControl, ExternalLink } from '@wordpress/components';
9
+ import {
10
+ ExternalLink,
11
+ Button,
12
+ __experimentalInputControl as InputControl,
13
+ __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,
14
+ __experimentalVStack as VStack,
15
+ } from '@wordpress/components';
16
+ import { store as noticesStore } from '@wordpress/notices';
17
+ import { copySmall } from '@wordpress/icons';
10
18
  import { store as coreStore } from '@wordpress/core-data';
19
+ import { useCopyToClipboard } from '@wordpress/compose';
11
20
 
12
21
  /**
13
22
  * Internal dependencies
14
23
  */
24
+ import { usePostURLLabel } from './label';
15
25
  import { store as editorStore } from '../../store';
16
26
 
17
27
  export default function PostURL( { onClose } ) {
18
- const {
19
- isEditable,
20
- postSlug,
21
- viewPostLabel,
22
- postLink,
23
- permalinkPrefix,
24
- permalinkSuffix,
25
- } = useSelect( ( select ) => {
26
- const post = select( editorStore ).getCurrentPost();
27
- const postTypeSlug = select( editorStore ).getCurrentPostType();
28
- const postType = select( coreStore ).getPostType( postTypeSlug );
29
- const permalinkParts = select( editorStore ).getPermalinkParts();
30
- const hasPublishAction = post?._links?.[ 'wp:action-publish' ] ?? false;
31
-
32
- return {
33
- isEditable:
34
- select( editorStore ).isPermalinkEditable() && hasPublishAction,
35
- postSlug: safeDecodeURIComponent(
36
- select( editorStore ).getEditedPostSlug()
37
- ),
38
- viewPostLabel: postType?.labels.view_item,
39
- postLink: post.link,
40
- permalinkPrefix: permalinkParts?.prefix,
41
- permalinkSuffix: permalinkParts?.suffix,
42
- };
43
- }, [] );
28
+ const { isEditable, postSlug, postLink, permalinkPrefix, permalinkSuffix } =
29
+ useSelect( ( select ) => {
30
+ const post = select( editorStore ).getCurrentPost();
31
+ const postTypeSlug = select( editorStore ).getCurrentPostType();
32
+ const postType = select( coreStore ).getPostType( postTypeSlug );
33
+ const permalinkParts = select( editorStore ).getPermalinkParts();
34
+ const hasPublishAction =
35
+ post?._links?.[ 'wp:action-publish' ] ?? false;
44
36
 
37
+ return {
38
+ isEditable:
39
+ select( editorStore ).isPermalinkEditable() &&
40
+ hasPublishAction,
41
+ postSlug: safeDecodeURIComponent(
42
+ select( editorStore ).getEditedPostSlug()
43
+ ),
44
+ viewPostLabel: postType?.labels.view_item,
45
+ postLink: post.link,
46
+ permalinkPrefix: permalinkParts?.prefix,
47
+ permalinkSuffix: permalinkParts?.suffix,
48
+ };
49
+ }, [] );
45
50
  const { editPost } = useDispatch( editorStore );
46
-
51
+ const { createNotice } = useDispatch( noticesStore );
47
52
  const [ forceEmptyField, setForceEmptyField ] = useState( false );
48
-
53
+ const postUrlLabel = usePostURLLabel();
54
+ const copyButtonRef = useCopyToClipboard( postUrlLabel, () => {
55
+ createNotice( 'info', __( 'Copied URL to clipboard.' ), {
56
+ isDismissible: true,
57
+ type: 'snackbar',
58
+ } );
59
+ } );
49
60
  return (
50
61
  <div className="editor-post-url">
51
- <InspectorPopoverHeader title={ __( 'URL' ) } onClose={ onClose } />
52
- { isEditable && (
53
- <TextControl
54
- __nextHasNoMarginBottom
55
- label={ __( 'Permalink' ) }
56
- value={ forceEmptyField ? '' : postSlug }
57
- autoComplete="off"
58
- spellCheck="false"
59
- help={
60
- <>
61
- { __( 'The last part of the URL.' ) }{ ' ' }
62
- <ExternalLink
63
- href={ __(
64
- 'https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink'
65
- ) }
66
- >
67
- { __( 'Learn more.' ) }
68
- </ExternalLink>
69
- </>
70
- }
71
- onChange={ ( newValue ) => {
72
- editPost( { slug: newValue } );
73
- // When we delete the field the permalink gets
74
- // reverted to the original value.
75
- // The forceEmptyField logic allows the user to have
76
- // the field temporarily empty while typing.
77
- if ( ! newValue ) {
78
- if ( ! forceEmptyField ) {
79
- setForceEmptyField( true );
62
+ <InspectorPopoverHeader
63
+ title={ __( 'Link' ) }
64
+ onClose={ onClose }
65
+ />
66
+ <VStack spacing={ 3 }>
67
+ { isEditable && (
68
+ <div>
69
+ { __( 'Customize the last part of the URL. ' ) }
70
+ <ExternalLink
71
+ href={ __(
72
+ 'https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink'
73
+ ) }
74
+ >
75
+ { __( 'Learn more.' ) }
76
+ </ExternalLink>
77
+ </div>
78
+ ) }
79
+ <div>
80
+ { isEditable && (
81
+ <InputControl
82
+ __next40pxDefaultSize
83
+ prefix={
84
+ <InputControlPrefixWrapper>
85
+ /
86
+ </InputControlPrefixWrapper>
80
87
  }
81
- return;
82
- }
83
- if ( forceEmptyField ) {
84
- setForceEmptyField( false );
85
- }
86
- } }
87
- onBlur={ ( event ) => {
88
- editPost( {
89
- slug: cleanForSlug( event.target.value ),
90
- } );
91
- if ( forceEmptyField ) {
92
- setForceEmptyField( false );
93
- }
94
- } }
95
- />
96
- ) }
97
- { isEditable && (
98
- <h3 className="editor-post-url__link-label">
99
- { viewPostLabel ?? __( 'View post' ) }
100
- </h3>
101
- ) }
102
- <p>
103
- <ExternalLink
104
- className="editor-post-url__link"
105
- href={ postLink }
106
- target="_blank"
107
- >
108
- { isEditable ? (
109
- <>
110
- <span className="editor-post-url__link-prefix">
111
- { permalinkPrefix }
112
- </span>
113
- <span className="editor-post-url__link-slug">
114
- { postSlug }
115
- </span>
116
- <span className="editor-post-url__link-suffix">
117
- { permalinkSuffix }
118
- </span>
119
- </>
120
- ) : (
121
- postLink
88
+ suffix={
89
+ <Button
90
+ icon={ copySmall }
91
+ ref={ copyButtonRef }
92
+ />
93
+ }
94
+ label={ __( 'Link' ) }
95
+ hideLabelFromVision
96
+ value={ forceEmptyField ? '' : postSlug }
97
+ autoComplete="off"
98
+ spellCheck="false"
99
+ type="text"
100
+ className="editor-post-url__input"
101
+ onChange={ ( newValue ) => {
102
+ editPost( { slug: newValue } );
103
+ // When we delete the field the permalink gets
104
+ // reverted to the original value.
105
+ // The forceEmptyField logic allows the user to have
106
+ // the field temporarily empty while typing.
107
+ if ( ! newValue ) {
108
+ if ( ! forceEmptyField ) {
109
+ setForceEmptyField( true );
110
+ }
111
+ return;
112
+ }
113
+ if ( forceEmptyField ) {
114
+ setForceEmptyField( false );
115
+ }
116
+ } }
117
+ onBlur={ ( event ) => {
118
+ editPost( {
119
+ slug: cleanForSlug( event.target.value ),
120
+ } );
121
+ if ( forceEmptyField ) {
122
+ setForceEmptyField( false );
123
+ }
124
+ } }
125
+ help={
126
+ <ExternalLink
127
+ className="editor-post-url__link"
128
+ href={ postLink }
129
+ target="_blank"
130
+ >
131
+ <span className="editor-post-url__link-prefix">
132
+ { permalinkPrefix }
133
+ </span>
134
+ <span className="editor-post-url__link-slug">
135
+ { postSlug }
136
+ </span>
137
+ <span className="editor-post-url__link-suffix">
138
+ { permalinkSuffix }
139
+ </span>
140
+ </ExternalLink>
141
+ }
142
+ />
143
+ ) }
144
+ { ! isEditable && (
145
+ <ExternalLink
146
+ className="editor-post-url__link"
147
+ href={ postLink }
148
+ target="_blank"
149
+ >
150
+ { postLink }
151
+ </ExternalLink>
122
152
  ) }
123
- </ExternalLink>
124
- </p>
153
+ </div>
154
+ </VStack>
125
155
  </div>
126
156
  );
127
157
  }
@@ -2,16 +2,18 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useMemo, useState } from '@wordpress/element';
5
+ import { useSelect } from '@wordpress/data';
5
6
  import { Dropdown, Button } from '@wordpress/components';
6
7
  import { __, sprintf } from '@wordpress/i18n';
8
+ import { safeDecodeURIComponent } from '@wordpress/url';
7
9
 
8
10
  /**
9
11
  * Internal dependencies
10
12
  */
11
13
  import PostURLCheck from './check';
12
14
  import PostURL from './index';
13
- import { usePostURLLabel } from './label';
14
15
  import PostPanelRow from '../post-panel-row';
16
+ import { store as editorStore } from '../../store';
15
17
 
16
18
  export default function PostURLPanel() {
17
19
  // Use internal state instead of a ref to make sure that the component
@@ -19,13 +21,20 @@ export default function PostURLPanel() {
19
21
  const [ popoverAnchor, setPopoverAnchor ] = useState( null );
20
22
  // Memoize popoverProps to avoid returning a new object every time.
21
23
  const popoverProps = useMemo(
22
- () => ( { anchor: popoverAnchor, placement: 'bottom-end' } ),
24
+ () => ( {
25
+ // Anchor the popover to the middle of the entire row so that it doesn't
26
+ // move around when the label changes.
27
+ anchor: popoverAnchor,
28
+ placement: 'left-start',
29
+ offset: 36,
30
+ shift: true,
31
+ } ),
23
32
  [ popoverAnchor ]
24
33
  );
25
34
 
26
35
  return (
27
36
  <PostURLCheck>
28
- <PostPanelRow label={ __( 'URL' ) } ref={ setPopoverAnchor }>
37
+ <PostPanelRow label={ __( 'Link' ) } ref={ setPopoverAnchor }>
29
38
  <Dropdown
30
39
  popoverProps={ popoverProps }
31
40
  className="editor-post-url__panel-dropdown"
@@ -44,18 +53,22 @@ export default function PostURLPanel() {
44
53
  }
45
54
 
46
55
  function PostURLToggle( { isOpen, onClick } ) {
47
- const label = usePostURLLabel();
56
+ const slug = useSelect(
57
+ ( select ) => select( editorStore ).getEditedPostSlug(),
58
+ []
59
+ );
60
+ const decodedSlug = safeDecodeURIComponent( slug );
48
61
  return (
49
62
  <Button
50
63
  __next40pxDefaultSize
51
64
  className="editor-post-url__panel-toggle"
52
65
  variant="tertiary"
53
66
  aria-expanded={ isOpen }
54
- // translators: %s: Current post URL.
55
- aria-label={ sprintf( __( 'Change URL: %s' ), label ) }
67
+ // translators: %s: Current post link.
68
+ aria-label={ sprintf( __( 'Change link: %s' ), decodedSlug ) }
56
69
  onClick={ onClick }
57
70
  >
58
- { label }
71
+ { decodedSlug }
59
72
  </Button>
60
73
  );
61
74
  }
@@ -17,19 +17,21 @@
17
17
  margin: $grid-unit-10;
18
18
  }
19
19
 
20
- .editor-post-url__link-label {
21
- font-size: $default-font-size;
22
- font-weight: 400;
23
- margin: 0;
24
- }
25
-
26
20
  /* rtl:begin:ignore */
27
21
  .editor-post-url__link {
28
22
  direction: ltr;
29
23
  word-break: break-word;
24
+ margin-top: $grid-unit-05;
25
+ color: $gray-700;
30
26
  }
31
27
  /* rtl:end:ignore */
32
28
 
33
29
  .editor-post-url__link-slug {
34
30
  font-weight: 600;
35
31
  }
32
+
33
+ // TODO: This might indicate a need to update the InputControl itself, as
34
+ // there is no way currently to control the padding when adding prefix/suffix.
35
+ .editor-post-url__input input.components-input-control__input {
36
+ padding-inline-start: 0 !important;
37
+ }
@@ -125,6 +125,7 @@ export default function PostVisibility( { onClose } ) {
125
125
  isOpen={ showPrivateConfirmDialog }
126
126
  onConfirm={ confirmPrivate }
127
127
  onCancel={ handleDialogCancel }
128
+ confirmButtonText={ __( 'Publish' ) }
128
129
  >
129
130
  { __( 'Would you like to privately publish this post now?' ) }
130
131
  </ConfirmDialog>
@@ -10,6 +10,7 @@ import {
10
10
  store as preferencesStore,
11
11
  privateApis as preferencesPrivateApis,
12
12
  } from '@wordpress/preferences';
13
+ import { store as interfaceStore } from '@wordpress/interface';
13
14
 
14
15
  /**
15
16
  * Internal dependencies
@@ -32,16 +33,13 @@ const {
32
33
  PreferenceToggleControl,
33
34
  } = unlock( preferencesPrivateApis );
34
35
 
35
- export default function EditorPreferencesModal( {
36
- extraSections = {},
37
- isActive,
38
- onClose,
39
- } ) {
36
+ export default function EditorPreferencesModal( { extraSections = {} } ) {
40
37
  const isLargeViewport = useViewportMatch( 'medium' );
41
- const { showBlockBreadcrumbsOption } = useSelect(
38
+ const { isActive, showBlockBreadcrumbsOption } = useSelect(
42
39
  ( select ) => {
43
40
  const { getEditorSettings } = select( editorStore );
44
41
  const { get } = select( preferencesStore );
42
+ const { isModalActive } = select( interfaceStore );
45
43
  const isRichEditingEnabled = getEditorSettings().richEditingEnabled;
46
44
  const isDistractionFreeEnabled = get( 'core', 'distractionFree' );
47
45
  return {
@@ -49,26 +47,16 @@ export default function EditorPreferencesModal( {
49
47
  ! isDistractionFreeEnabled &&
50
48
  isLargeViewport &&
51
49
  isRichEditingEnabled,
50
+ isActive: isModalActive( 'editor/preferences' ),
52
51
  };
53
52
  },
54
53
  [ isLargeViewport ]
55
54
  );
56
-
55
+ const { closeModal } = useDispatch( interfaceStore );
57
56
  const { setIsListViewOpened, setIsInserterOpened } =
58
57
  useDispatch( editorStore );
59
58
  const { set: setPreference } = useDispatch( preferencesStore );
60
59
 
61
- const toggleDistractionFree = () => {
62
- setPreference( 'core', 'fixedToolbar', true );
63
- setIsInserterOpened( false );
64
- setIsListViewOpened( false );
65
- // Todo: Check sidebar when closing/opening distraction free.
66
- };
67
-
68
- const turnOffDistractionFree = () => {
69
- setPreference( 'core', 'distractionFree', false );
70
- };
71
-
72
60
  const sections = useMemo(
73
61
  () => [
74
62
  {
@@ -165,7 +153,13 @@ export default function EditorPreferencesModal( {
165
153
  <PreferenceToggleControl
166
154
  scope="core"
167
155
  featureName="fixedToolbar"
168
- onToggle={ turnOffDistractionFree }
156
+ onToggle={ () =>
157
+ setPreference(
158
+ 'core',
159
+ 'distractionFree',
160
+ false
161
+ )
162
+ }
169
163
  help={ __(
170
164
  'Access all block and document tools in a single place.'
171
165
  ) }
@@ -174,7 +168,11 @@ export default function EditorPreferencesModal( {
174
168
  <PreferenceToggleControl
175
169
  scope="core"
176
170
  featureName="distractionFree"
177
- onToggle={ toggleDistractionFree }
171
+ onToggle={ () => {
172
+ setPreference( 'core', 'fixedToolbar', true );
173
+ setIsInserterOpened( false );
174
+ setIsListViewOpened( false );
175
+ } }
178
176
  help={ __(
179
177
  'Reduce visual distractions by hiding the toolbar and other elements to focus on writing.'
180
178
  ) }
@@ -254,7 +252,13 @@ export default function EditorPreferencesModal( {
254
252
  ),
255
253
  },
256
254
  ],
257
- [ isLargeViewport, showBlockBreadcrumbsOption, extraSections ]
255
+ [
256
+ showBlockBreadcrumbsOption,
257
+ extraSections,
258
+ setIsInserterOpened,
259
+ setIsListViewOpened,
260
+ setPreference,
261
+ ]
258
262
  );
259
263
 
260
264
  if ( ! isActive ) {
@@ -262,7 +266,7 @@ export default function EditorPreferencesModal( {
262
266
  }
263
267
 
264
268
  return (
265
- <PreferencesModal closeModal={ onClose }>
269
+ <PreferencesModal closeModal={ closeModal }>
266
270
  <PreferencesModalTabs sections={ sections } />
267
271
  </PreferencesModal>
268
272
  );
@@ -26,6 +26,8 @@ import NavigationBlockEditingMode from './navigation-block-editing-mode';
26
26
  import { useHideBlocksFromInserter } from './use-hide-blocks-from-inserter';
27
27
  import useCommands from '../commands';
28
28
  import BlockRemovalWarnings from '../block-removal-warnings';
29
+ import StartPageOptions from '../start-page-options';
30
+ import KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';
29
31
 
30
32
  const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );
31
33
  const { PatternsMenuItems } = unlock( editPatternsPrivateApis );
@@ -167,7 +169,8 @@ export const ExperimentalEditorProvider = withRegistryProvider(
167
169
  const blockEditorSettings = useBlockEditorSettings(
168
170
  editorSettings,
169
171
  type,
170
- id
172
+ id,
173
+ mode
171
174
  );
172
175
  const [ blocks, onInput, onChange ] = useBlockEditorProps(
173
176
  post,
@@ -258,14 +261,20 @@ export const ExperimentalEditorProvider = withRegistryProvider(
258
261
  useSubRegistry={ false }
259
262
  >
260
263
  { children }
261
- <PatternsMenuItems />
262
- { mode === 'template-locked' && (
263
- <DisableNonPageContentBlocks />
264
- ) }
265
- { type === 'wp_navigation' && (
266
- <NavigationBlockEditingMode />
264
+ { ! settings.__unstableIsPreviewMode && (
265
+ <>
266
+ <PatternsMenuItems />
267
+ { mode === 'template-locked' && (
268
+ <DisableNonPageContentBlocks />
269
+ ) }
270
+ { type === 'wp_navigation' && (
271
+ <NavigationBlockEditingMode />
272
+ ) }
273
+ <KeyboardShortcutHelpModal />
274
+ <BlockRemovalWarnings />
275
+ <StartPageOptions />
276
+ </>
267
277
  ) }
268
- <BlockRemovalWarnings />
269
278
  </BlockEditorProviderComponent>
270
279
  </BlockContextProvider>
271
280
  </EntityProvider>
@@ -0,0 +1,49 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useSelect, useDispatch } from '@wordpress/data';
5
+ import { useEffect } from '@wordpress/element';
6
+ import { store as blockEditorStore } from '@wordpress/block-editor';
7
+ import { store as preferencesStore } from '@wordpress/preferences';
8
+ import { store as interfaceStore } from '@wordpress/interface';
9
+
10
+ /**
11
+ * This listener hook monitors for block selection and triggers the appropriate
12
+ * sidebar state.
13
+ */
14
+ function useAutoSwitchEditorSidebars() {
15
+ const { hasBlockSelection } = useSelect( ( select ) => {
16
+ return {
17
+ hasBlockSelection:
18
+ !! select( blockEditorStore ).getBlockSelectionStart(),
19
+ };
20
+ }, [] );
21
+
22
+ const { getActiveComplementaryArea } = useSelect( interfaceStore );
23
+ const { enableComplementaryArea } = useDispatch( interfaceStore );
24
+ const { get: getPreference } = useSelect( preferencesStore );
25
+
26
+ useEffect( () => {
27
+ const activeGeneralSidebar = getActiveComplementaryArea( 'core' );
28
+ const isEditorSidebarOpened = [
29
+ 'edit-post/document',
30
+ 'edit-post/block',
31
+ ].includes( activeGeneralSidebar );
32
+ const isDistractionFree = getPreference( 'core', 'distractionFree' );
33
+ if ( ! isEditorSidebarOpened || isDistractionFree ) {
34
+ return;
35
+ }
36
+ if ( hasBlockSelection ) {
37
+ enableComplementaryArea( 'core', 'edit-post/block' );
38
+ } else {
39
+ enableComplementaryArea( 'core', 'edit-post/document' );
40
+ }
41
+ }, [
42
+ hasBlockSelection,
43
+ getActiveComplementaryArea,
44
+ enableComplementaryArea,
45
+ getPreference,
46
+ ] );
47
+ }
48
+
49
+ export default useAutoSwitchEditorSidebars;