@wordpress/editor 14.3.0 → 14.5.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 (537) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +2 -1
  3. package/build/bindings/api.js +65 -0
  4. package/build/bindings/api.js.map +1 -0
  5. package/build/bindings/pattern-overrides.js +23 -13
  6. package/build/bindings/pattern-overrides.js.map +1 -1
  7. package/build/bindings/post-meta.js +35 -12
  8. package/build/bindings/post-meta.js.map +1 -1
  9. package/build/components/block-settings-menu/content-only-settings-menu.js +4 -1
  10. package/build/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
  11. package/build/components/blog-title/index.js +7 -3
  12. package/build/components/blog-title/index.js.map +1 -1
  13. package/build/components/collapsible-block-toolbar/index.js +2 -3
  14. package/build/components/collapsible-block-toolbar/index.js.map +1 -1
  15. package/build/components/commands/index.js +8 -2
  16. package/build/components/commands/index.js.map +1 -1
  17. package/build/components/document-bar/index.js +1 -1
  18. package/build/components/document-bar/index.js.map +1 -1
  19. package/build/components/global-styles-provider/index.js +15 -3
  20. package/build/components/global-styles-provider/index.js.map +1 -1
  21. package/build/components/header/back-button.js +7 -8
  22. package/build/components/header/back-button.js.map +1 -1
  23. package/build/components/header/index.js +21 -20
  24. package/build/components/header/index.js.map +1 -1
  25. package/build/components/page-attributes/order.js +1 -67
  26. package/build/components/page-attributes/order.js.map +1 -1
  27. package/build/components/page-attributes/panel.js +1 -4
  28. package/build/components/page-attributes/panel.js.map +1 -1
  29. package/build/components/page-attributes/parent.js +6 -2
  30. package/build/components/page-attributes/parent.js.map +1 -1
  31. package/build/components/post-actions/actions.js +131 -344
  32. package/build/components/post-actions/actions.js.map +1 -1
  33. package/build/components/post-actions/index.js +16 -6
  34. package/build/components/post-actions/index.js.map +1 -1
  35. package/build/components/post-author/hook.js +10 -3
  36. package/build/components/post-author/hook.js.map +1 -1
  37. package/build/components/post-author/panel.js +2 -1
  38. package/build/components/post-author/panel.js.map +1 -1
  39. package/build/components/post-card-panel/index.js +9 -3
  40. package/build/components/post-card-panel/index.js.map +1 -1
  41. package/build/components/post-comments/index.js +6 -20
  42. package/build/components/post-comments/index.js.map +1 -1
  43. package/build/components/post-content-information/index.js +7 -1
  44. package/build/components/post-content-information/index.js.map +1 -1
  45. package/build/components/post-discussion/panel.js +2 -2
  46. package/build/components/post-discussion/panel.js.map +1 -1
  47. package/build/components/post-excerpt/panel.js +1 -1
  48. package/build/components/post-excerpt/panel.js.map +1 -1
  49. package/build/components/post-featured-image/index.js +3 -1
  50. package/build/components/post-featured-image/index.js.map +1 -1
  51. package/build/components/post-last-revision/index.js +2 -1
  52. package/build/components/post-last-revision/index.js.map +1 -1
  53. package/build/components/post-publish-button/index.js +4 -11
  54. package/build/components/post-publish-button/index.js.map +1 -1
  55. package/build/components/post-publish-panel/maybe-category-panel.js +4 -1
  56. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  57. package/build/components/post-publish-panel/maybe-tags-panel.js +2 -1
  58. package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  59. package/build/components/post-status/index.js +47 -51
  60. package/build/components/post-status/index.js.map +1 -1
  61. package/build/components/post-taxonomies/flat-term-selector.js +17 -6
  62. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  63. package/build/components/post-taxonomies/index.js +7 -1
  64. package/build/components/post-taxonomies/index.js.map +1 -1
  65. package/build/components/post-template/block-theme.js +4 -4
  66. package/build/components/post-template/block-theme.js.map +1 -1
  67. package/build/components/post-template/classic-theme.js +8 -2
  68. package/build/components/post-template/classic-theme.js.map +1 -1
  69. package/build/components/post-template/create-new-template-modal.js +3 -0
  70. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  71. package/build/components/post-template/create-new-template.js +4 -1
  72. package/build/components/post-template/create-new-template.js.map +1 -1
  73. package/build/components/post-template/hooks.js +5 -1
  74. package/build/components/post-template/hooks.js.map +1 -1
  75. package/build/components/post-template/panel.js +8 -2
  76. package/build/components/post-template/panel.js.map +1 -1
  77. package/build/components/post-trash/check.js +6 -4
  78. package/build/components/post-trash/check.js.map +1 -1
  79. package/build/components/post-url/panel.js +9 -4
  80. package/build/components/post-url/panel.js.map +1 -1
  81. package/build/components/posts-per-page/index.js +6 -2
  82. package/build/components/posts-per-page/index.js.map +1 -1
  83. package/build/components/preview-dropdown/index.js +82 -17
  84. package/build/components/preview-dropdown/index.js.map +1 -1
  85. package/build/components/provider/disable-non-page-content-blocks.js +14 -18
  86. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  87. package/build/components/provider/use-block-editor-settings.js +15 -6
  88. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  89. package/build/components/save-publish-panels/index.js +1 -2
  90. package/build/components/save-publish-panels/index.js.map +1 -1
  91. package/build/components/sidebar/index.js +3 -9
  92. package/build/components/sidebar/index.js.map +1 -1
  93. package/build/components/site-discussion/index.js +12 -22
  94. package/build/components/site-discussion/index.js.map +1 -1
  95. package/build/components/template-content-panel/index.js +17 -15
  96. package/build/components/template-content-panel/index.js.map +1 -1
  97. package/build/components/visual-editor/edit-template-blocks-notification.js +4 -4
  98. package/build/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  99. package/build/components/visual-editor/index.js +7 -3
  100. package/build/components/visual-editor/index.js.map +1 -1
  101. package/build/{hooks → components/visual-editor}/use-select-nearest-editable-block.js +1 -1
  102. package/build/components/visual-editor/use-select-nearest-editable-block.js.map +1 -0
  103. package/build/dataviews/actions/delete-post.js +2 -0
  104. package/build/dataviews/actions/delete-post.js.map +1 -1
  105. package/build/dataviews/actions/export-pattern.native.js +9 -0
  106. package/build/dataviews/actions/export-pattern.native.js.map +1 -0
  107. package/build/dataviews/actions/permanently-delete-post.js +107 -0
  108. package/build/dataviews/actions/permanently-delete-post.js.map +1 -0
  109. package/build/dataviews/actions/restore-post.js +112 -0
  110. package/build/dataviews/actions/restore-post.js.map +1 -0
  111. package/build/dataviews/actions/trash-post.js +142 -0
  112. package/build/dataviews/actions/trash-post.js.map +1 -0
  113. package/build/dataviews/store/private-actions.js +45 -0
  114. package/build/dataviews/store/private-actions.js.map +1 -1
  115. package/build/dataviews/store/private-selectors.js +10 -10
  116. package/build/dataviews/store/private-selectors.js.map +1 -1
  117. package/build/dataviews/store/reducer.js +15 -1
  118. package/build/dataviews/store/reducer.js.map +1 -1
  119. package/build/dataviews/types.js.map +1 -1
  120. package/build/hooks/pattern-overrides.js +1 -1
  121. package/build/hooks/pattern-overrides.js.map +1 -1
  122. package/build/index.js +0 -1
  123. package/build/index.js.map +1 -1
  124. package/build/private-apis.js +3 -2
  125. package/build/private-apis.js.map +1 -1
  126. package/build/store/actions.js +16 -2
  127. package/build/store/actions.js.map +1 -1
  128. package/build/store/private-actions.js +8 -1
  129. package/build/store/private-actions.js.map +1 -1
  130. package/build/store/private-selectors.js +33 -2
  131. package/build/store/private-selectors.js.map +1 -1
  132. package/build/utils/media-upload/index.js +35 -2
  133. package/build/utils/media-upload/index.js.map +1 -1
  134. package/build-module/bindings/api.js +57 -0
  135. package/build-module/bindings/api.js.map +1 -0
  136. package/build-module/bindings/pattern-overrides.js +23 -13
  137. package/build-module/bindings/pattern-overrides.js.map +1 -1
  138. package/build-module/bindings/post-meta.js +35 -12
  139. package/build-module/bindings/post-meta.js.map +1 -1
  140. package/build-module/components/block-settings-menu/content-only-settings-menu.js +4 -1
  141. package/build-module/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
  142. package/build-module/components/blog-title/index.js +7 -3
  143. package/build-module/components/blog-title/index.js.map +1 -1
  144. package/build-module/components/collapsible-block-toolbar/index.js +1 -2
  145. package/build-module/components/collapsible-block-toolbar/index.js.map +1 -1
  146. package/build-module/components/commands/index.js +8 -2
  147. package/build-module/components/commands/index.js.map +1 -1
  148. package/build-module/components/document-bar/index.js +1 -1
  149. package/build-module/components/document-bar/index.js.map +1 -1
  150. package/build-module/components/global-styles-provider/index.js +15 -3
  151. package/build-module/components/global-styles-provider/index.js.map +1 -1
  152. package/build-module/components/header/back-button.js +5 -7
  153. package/build-module/components/header/back-button.js.map +1 -1
  154. package/build-module/components/header/index.js +21 -22
  155. package/build-module/components/header/index.js.map +1 -1
  156. package/build-module/components/page-attributes/order.js +4 -70
  157. package/build-module/components/page-attributes/order.js.map +1 -1
  158. package/build-module/components/page-attributes/panel.js +1 -6
  159. package/build-module/components/page-attributes/panel.js.map +1 -1
  160. package/build-module/components/page-attributes/parent.js +7 -3
  161. package/build-module/components/page-attributes/parent.js.map +1 -1
  162. package/build-module/components/post-actions/actions.js +137 -350
  163. package/build-module/components/post-actions/actions.js.map +1 -1
  164. package/build-module/components/post-actions/index.js +16 -6
  165. package/build-module/components/post-actions/index.js.map +1 -1
  166. package/build-module/components/post-author/hook.js +10 -3
  167. package/build-module/components/post-author/hook.js.map +1 -1
  168. package/build-module/components/post-author/panel.js +2 -1
  169. package/build-module/components/post-author/panel.js.map +1 -1
  170. package/build-module/components/post-card-panel/index.js +9 -3
  171. package/build-module/components/post-card-panel/index.js.map +1 -1
  172. package/build-module/components/post-comments/index.js +8 -24
  173. package/build-module/components/post-comments/index.js.map +1 -1
  174. package/build-module/components/post-content-information/index.js +7 -1
  175. package/build-module/components/post-content-information/index.js.map +1 -1
  176. package/build-module/components/post-discussion/panel.js +3 -3
  177. package/build-module/components/post-discussion/panel.js.map +1 -1
  178. package/build-module/components/post-excerpt/panel.js +1 -1
  179. package/build-module/components/post-excerpt/panel.js.map +1 -1
  180. package/build-module/components/post-featured-image/index.js +3 -1
  181. package/build-module/components/post-featured-image/index.js.map +1 -1
  182. package/build-module/components/post-last-revision/index.js +2 -1
  183. package/build-module/components/post-last-revision/index.js.map +1 -1
  184. package/build-module/components/post-publish-button/index.js +4 -11
  185. package/build-module/components/post-publish-button/index.js.map +1 -1
  186. package/build-module/components/post-publish-panel/maybe-category-panel.js +4 -1
  187. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  188. package/build-module/components/post-publish-panel/maybe-tags-panel.js +2 -1
  189. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  190. package/build-module/components/post-status/index.js +49 -53
  191. package/build-module/components/post-status/index.js.map +1 -1
  192. package/build-module/components/post-taxonomies/flat-term-selector.js +17 -6
  193. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  194. package/build-module/components/post-taxonomies/index.js +7 -1
  195. package/build-module/components/post-taxonomies/index.js.map +1 -1
  196. package/build-module/components/post-template/block-theme.js +4 -4
  197. package/build-module/components/post-template/block-theme.js.map +1 -1
  198. package/build-module/components/post-template/classic-theme.js +8 -2
  199. package/build-module/components/post-template/classic-theme.js.map +1 -1
  200. package/build-module/components/post-template/create-new-template-modal.js +3 -0
  201. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  202. package/build-module/components/post-template/create-new-template.js +4 -1
  203. package/build-module/components/post-template/create-new-template.js.map +1 -1
  204. package/build-module/components/post-template/hooks.js +5 -1
  205. package/build-module/components/post-template/hooks.js.map +1 -1
  206. package/build-module/components/post-template/panel.js +8 -2
  207. package/build-module/components/post-template/panel.js.map +1 -1
  208. package/build-module/components/post-trash/check.js +6 -4
  209. package/build-module/components/post-trash/check.js.map +1 -1
  210. package/build-module/components/post-url/panel.js +10 -7
  211. package/build-module/components/post-url/panel.js.map +1 -1
  212. package/build-module/components/posts-per-page/index.js +6 -2
  213. package/build-module/components/posts-per-page/index.js.map +1 -1
  214. package/build-module/components/preview-dropdown/index.js +84 -19
  215. package/build-module/components/preview-dropdown/index.js.map +1 -1
  216. package/build-module/components/provider/disable-non-page-content-blocks.js +15 -19
  217. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  218. package/build-module/components/provider/use-block-editor-settings.js +15 -6
  219. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  220. package/build-module/components/save-publish-panels/index.js +1 -2
  221. package/build-module/components/save-publish-panels/index.js.map +1 -1
  222. package/build-module/components/sidebar/index.js +3 -9
  223. package/build-module/components/sidebar/index.js.map +1 -1
  224. package/build-module/components/site-discussion/index.js +14 -24
  225. package/build-module/components/site-discussion/index.js.map +1 -1
  226. package/build-module/components/template-content-panel/index.js +18 -16
  227. package/build-module/components/template-content-panel/index.js.map +1 -1
  228. package/build-module/components/visual-editor/edit-template-blocks-notification.js +4 -4
  229. package/build-module/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  230. package/build-module/components/visual-editor/index.js +7 -3
  231. package/build-module/components/visual-editor/index.js.map +1 -1
  232. package/build-module/{hooks → components/visual-editor}/use-select-nearest-editable-block.js +1 -1
  233. package/build-module/components/visual-editor/use-select-nearest-editable-block.js.map +1 -0
  234. package/build-module/dataviews/actions/delete-post.js +2 -0
  235. package/build-module/dataviews/actions/delete-post.js.map +1 -1
  236. package/build-module/dataviews/actions/export-pattern.native.js +3 -0
  237. package/build-module/dataviews/actions/export-pattern.native.js.map +1 -0
  238. package/build-module/dataviews/actions/permanently-delete-post.js +99 -0
  239. package/build-module/dataviews/actions/permanently-delete-post.js.map +1 -0
  240. package/build-module/dataviews/actions/restore-post.js +104 -0
  241. package/build-module/dataviews/actions/restore-post.js.map +1 -0
  242. package/build-module/dataviews/actions/trash-post.js +135 -0
  243. package/build-module/dataviews/actions/trash-post.js.map +1 -0
  244. package/build-module/dataviews/store/private-actions.js +40 -0
  245. package/build-module/dataviews/store/private-actions.js.map +1 -1
  246. package/build-module/dataviews/store/private-selectors.js +8 -9
  247. package/build-module/dataviews/store/private-selectors.js.map +1 -1
  248. package/build-module/dataviews/store/reducer.js +15 -1
  249. package/build-module/dataviews/store/reducer.js.map +1 -1
  250. package/build-module/dataviews/types.js.map +1 -1
  251. package/build-module/hooks/pattern-overrides.js +1 -1
  252. package/build-module/hooks/pattern-overrides.js.map +1 -1
  253. package/build-module/index.js +0 -1
  254. package/build-module/index.js.map +1 -1
  255. package/build-module/private-apis.js +3 -2
  256. package/build-module/private-apis.js.map +1 -1
  257. package/build-module/store/actions.js +16 -2
  258. package/build-module/store/actions.js.map +1 -1
  259. package/build-module/store/private-actions.js +8 -1
  260. package/build-module/store/private-actions.js.map +1 -1
  261. package/build-module/store/private-selectors.js +32 -2
  262. package/build-module/store/private-selectors.js.map +1 -1
  263. package/build-module/utils/media-upload/index.js +36 -3
  264. package/build-module/utils/media-upload/index.js.map +1 -1
  265. package/build-style/style-rtl.css +97 -45
  266. package/build-style/style.css +97 -45
  267. package/build-types/bindings/api.d.ts +25 -0
  268. package/build-types/bindings/api.d.ts.map +1 -0
  269. package/build-types/bindings/pattern-overrides.d.ts +5 -6
  270. package/build-types/bindings/pattern-overrides.d.ts.map +1 -1
  271. package/build-types/bindings/post-meta.d.ts +11 -7
  272. package/build-types/bindings/post-meta.d.ts.map +1 -1
  273. package/build-types/components/autocompleters/user.d.ts +2 -2
  274. package/build-types/components/autocompleters/user.d.ts.map +1 -1
  275. package/build-types/components/block-settings-menu/plugin-block-settings-menu-item.d.ts.map +1 -1
  276. package/build-types/components/blog-title/index.d.ts.map +1 -1
  277. package/build-types/components/collapsible-block-toolbar/index.d.ts +1 -2
  278. package/build-types/components/collapsible-block-toolbar/index.d.ts.map +1 -1
  279. package/build-types/components/commands/index.d.ts.map +1 -1
  280. package/build-types/components/document-bar/index.d.ts.map +1 -1
  281. package/build-types/components/document-outline/check.d.ts.map +1 -1
  282. package/build-types/components/document-outline/index.d.ts.map +1 -1
  283. package/build-types/components/editor-history/redo.d.ts +1 -1
  284. package/build-types/components/editor-history/undo.d.ts +1 -1
  285. package/build-types/components/editor-notices/index.d.ts.map +1 -1
  286. package/build-types/components/editor-snackbars/index.d.ts.map +1 -1
  287. package/build-types/components/entities-saved-states/index.d.ts.map +1 -1
  288. package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
  289. package/build-types/components/header/back-button.d.ts +1 -0
  290. package/build-types/components/header/back-button.d.ts.map +1 -1
  291. package/build-types/components/header/index.d.ts.map +1 -1
  292. package/build-types/components/local-autosave-monitor/index.d.ts.map +1 -1
  293. package/build-types/components/media-categories/index.d.ts.map +1 -1
  294. package/build-types/components/more-menu/tools-more-menu-group.d.ts.map +1 -1
  295. package/build-types/components/more-menu/view-more-menu-group.d.ts.map +1 -1
  296. package/build-types/components/page-attributes/check.d.ts.map +1 -1
  297. package/build-types/components/page-attributes/order.d.ts +1 -1
  298. package/build-types/components/page-attributes/order.d.ts.map +1 -1
  299. package/build-types/components/page-attributes/panel.d.ts.map +1 -1
  300. package/build-types/components/page-attributes/parent.d.ts.map +1 -1
  301. package/build-types/components/plugin-document-setting-panel/index.d.ts.map +1 -1
  302. package/build-types/components/plugin-post-publish-panel/index.d.ts.map +1 -1
  303. package/build-types/components/plugin-post-status-info/index.d.ts.map +1 -1
  304. package/build-types/components/plugin-pre-publish-panel/index.d.ts.map +1 -1
  305. package/build-types/components/plugin-sidebar/index.d.ts.map +1 -1
  306. package/build-types/components/plugin-sidebar-more-menu-item/index.d.ts.map +1 -1
  307. package/build-types/components/post-actions/actions.d.ts.map +1 -1
  308. package/build-types/components/post-actions/index.d.ts.map +1 -1
  309. package/build-types/components/post-author/check.d.ts.map +1 -1
  310. package/build-types/components/post-author/hook.d.ts +1 -1
  311. package/build-types/components/post-author/hook.d.ts.map +1 -1
  312. package/build-types/components/post-author/index.d.ts.map +1 -1
  313. package/build-types/components/post-author/panel.d.ts.map +1 -1
  314. package/build-types/components/post-card-panel/index.d.ts.map +1 -1
  315. package/build-types/components/post-comments/index.d.ts.map +1 -1
  316. package/build-types/components/post-content-information/index.d.ts.map +1 -1
  317. package/build-types/components/post-discussion/panel.d.ts.map +1 -1
  318. package/build-types/components/post-excerpt/check.d.ts.map +1 -1
  319. package/build-types/components/post-excerpt/index.d.ts.map +1 -1
  320. package/build-types/components/post-excerpt/panel.d.ts.map +1 -1
  321. package/build-types/components/post-excerpt/plugin.d.ts.map +1 -1
  322. package/build-types/components/post-featured-image/check.d.ts.map +1 -1
  323. package/build-types/components/post-featured-image/panel.d.ts.map +1 -1
  324. package/build-types/components/post-format/index.d.ts.map +1 -1
  325. package/build-types/components/post-format/panel.d.ts.map +1 -1
  326. package/build-types/components/post-last-revision/check.d.ts.map +1 -1
  327. package/build-types/components/post-last-revision/index.d.ts.map +1 -1
  328. package/build-types/components/post-last-revision/panel.d.ts.map +1 -1
  329. package/build-types/components/post-locked-modal/index.d.ts.map +1 -1
  330. package/build-types/components/post-pending-status/check.d.ts.map +1 -1
  331. package/build-types/components/post-pending-status/index.d.ts.map +1 -1
  332. package/build-types/components/post-preview-button/index.d.ts.map +1 -1
  333. package/build-types/components/post-publish-button/index.d.ts.map +1 -1
  334. package/build-types/components/post-publish-panel/maybe-category-panel.d.ts.map +1 -1
  335. package/build-types/components/post-saved-state/index.d.ts +1 -1
  336. package/build-types/components/post-saved-state/index.d.ts.map +1 -1
  337. package/build-types/components/post-schedule/check.d.ts.map +1 -1
  338. package/build-types/components/post-schedule/index.d.ts.map +1 -1
  339. package/build-types/components/post-schedule/label.d.ts.map +1 -1
  340. package/build-types/components/post-schedule/panel.d.ts.map +1 -1
  341. package/build-types/components/post-slug/check.d.ts.map +1 -1
  342. package/build-types/components/post-slug/index.d.ts.map +1 -1
  343. package/build-types/components/post-status/index.d.ts +2 -1
  344. package/build-types/components/post-status/index.d.ts.map +1 -1
  345. package/build-types/components/post-sticky/check.d.ts.map +1 -1
  346. package/build-types/components/post-sticky/index.d.ts.map +1 -1
  347. package/build-types/components/post-switch-to-draft-button/index.d.ts.map +1 -1
  348. package/build-types/components/post-sync-status/index.d.ts.map +1 -1
  349. package/build-types/components/post-taxonomies/check.d.ts.map +1 -1
  350. package/build-types/components/post-taxonomies/flat-term-selector.d.ts +9 -7
  351. package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
  352. package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts +13 -11
  353. package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
  354. package/build-types/components/post-taxonomies/index.d.ts.map +1 -1
  355. package/build-types/components/post-template/block-theme.d.ts.map +1 -1
  356. package/build-types/components/post-template/classic-theme.d.ts.map +1 -1
  357. package/build-types/components/post-template/create-new-template-modal.d.ts.map +1 -1
  358. package/build-types/components/post-template/create-new-template.d.ts.map +1 -1
  359. package/build-types/components/post-template/hooks.d.ts.map +1 -1
  360. package/build-types/components/post-template/panel.d.ts.map +1 -1
  361. package/build-types/components/post-text-editor/index.d.ts.map +1 -1
  362. package/build-types/components/post-trash/check.d.ts.map +1 -1
  363. package/build-types/components/post-trash/index.d.ts.map +1 -1
  364. package/build-types/components/post-type-support-check/index.d.ts.map +1 -1
  365. package/build-types/components/post-url/check.d.ts.map +1 -1
  366. package/build-types/components/post-url/index.d.ts.map +1 -1
  367. package/build-types/components/post-url/label.d.ts.map +1 -1
  368. package/build-types/components/post-url/panel.d.ts.map +1 -1
  369. package/build-types/components/post-visibility/check.d.ts.map +1 -1
  370. package/build-types/components/post-visibility/index.d.ts.map +1 -1
  371. package/build-types/components/posts-per-page/index.d.ts.map +1 -1
  372. package/build-types/components/preferences-modal/enable-plugin-document-setting-panel.d.ts.map +1 -1
  373. package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
  374. package/build-types/components/provider/disable-non-page-content-blocks.d.ts.map +1 -1
  375. package/build-types/components/provider/index.d.ts.map +1 -1
  376. package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
  377. package/build-types/components/save-publish-panels/index.d.ts.map +1 -1
  378. package/build-types/components/sidebar/index.d.ts.map +1 -1
  379. package/build-types/components/site-discussion/index.d.ts.map +1 -1
  380. package/build-types/components/template-content-panel/index.d.ts +1 -3
  381. package/build-types/components/template-content-panel/index.d.ts.map +1 -1
  382. package/build-types/components/theme-support-check/index.d.ts.map +1 -1
  383. package/build-types/components/time-to-read/index.d.ts.map +1 -1
  384. package/build-types/components/unsaved-changes-warning/index.d.ts.map +1 -1
  385. package/build-types/components/visual-editor/edit-template-blocks-notification.d.ts +1 -1
  386. package/build-types/components/visual-editor/edit-template-blocks-notification.d.ts.map +1 -1
  387. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  388. package/build-types/components/visual-editor/use-select-nearest-editable-block.d.ts.map +1 -0
  389. package/build-types/components/word-count/index.d.ts.map +1 -1
  390. package/build-types/dataviews/actions/delete-post.d.ts.map +1 -1
  391. package/build-types/dataviews/actions/export-pattern.native.d.ts +3 -0
  392. package/build-types/dataviews/actions/export-pattern.native.d.ts.map +1 -0
  393. package/build-types/dataviews/actions/permanently-delete-post.d.ts +5 -0
  394. package/build-types/dataviews/actions/permanently-delete-post.d.ts.map +1 -0
  395. package/build-types/dataviews/actions/restore-post.d.ts +5 -0
  396. package/build-types/dataviews/actions/restore-post.d.ts.map +1 -0
  397. package/build-types/dataviews/actions/trash-post.d.ts +5 -0
  398. package/build-types/dataviews/actions/trash-post.d.ts.map +1 -0
  399. package/build-types/dataviews/api.d.ts +1 -1
  400. package/build-types/dataviews/api.d.ts.map +1 -1
  401. package/build-types/dataviews/store/private-actions.d.ts +8 -3
  402. package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
  403. package/build-types/dataviews/store/private-selectors.d.ts +2 -2
  404. package/build-types/dataviews/store/private-selectors.d.ts.map +1 -1
  405. package/build-types/dataviews/store/reducer.d.ts +4 -1
  406. package/build-types/dataviews/store/reducer.d.ts.map +1 -1
  407. package/build-types/dataviews/types.d.ts +9 -0
  408. package/build-types/dataviews/types.d.ts.map +1 -1
  409. package/build-types/hooks/custom-sources-backwards-compatibility.d.ts +1 -1
  410. package/build-types/hooks/custom-sources-backwards-compatibility.d.ts.map +1 -1
  411. package/build-types/hooks/pattern-overrides.d.ts.map +1 -1
  412. package/build-types/private-apis.d.ts.map +1 -1
  413. package/build-types/store/actions.d.ts.map +1 -1
  414. package/build-types/store/private-actions.d.ts.map +1 -1
  415. package/build-types/store/private-selectors.d.ts +11 -0
  416. package/build-types/store/private-selectors.d.ts.map +1 -1
  417. package/build-types/store/reducer.d.ts +1 -0
  418. package/build-types/store/reducer.d.ts.map +1 -1
  419. package/build-types/store/selectors.d.ts +0 -1
  420. package/build-types/store/selectors.d.ts.map +1 -1
  421. package/build-types/utils/media-upload/index.d.ts.map +1 -1
  422. package/package.json +38 -37
  423. package/src/bindings/api.js +57 -0
  424. package/src/bindings/pattern-overrides.js +28 -17
  425. package/src/bindings/post-meta.js +39 -14
  426. package/src/components/block-settings-menu/content-only-settings-menu.js +4 -4
  427. package/src/components/blog-title/index.js +8 -3
  428. package/src/components/collapsible-block-toolbar/index.js +1 -3
  429. package/src/components/collapsible-block-toolbar/style.scss +0 -3
  430. package/src/components/commands/index.js +4 -2
  431. package/src/components/document-bar/index.js +1 -1
  432. package/src/components/document-bar/style.scss +2 -6
  433. package/src/components/document-tools/style.scss +4 -4
  434. package/src/components/editor-interface/style.scss +9 -0
  435. package/src/components/global-styles-provider/index.js +22 -11
  436. package/src/components/header/back-button.js +6 -6
  437. package/src/components/header/index.js +27 -27
  438. package/src/components/header/style.scss +64 -21
  439. package/src/components/inserter-sidebar/style.scss +1 -6
  440. package/src/components/list-view-sidebar/style.scss +4 -0
  441. package/src/components/page-attributes/order.js +3 -77
  442. package/src/components/page-attributes/panel.js +1 -7
  443. package/src/components/page-attributes/parent.js +25 -7
  444. package/src/components/post-actions/actions.js +158 -463
  445. package/src/components/post-actions/index.js +19 -7
  446. package/src/components/post-author/hook.js +11 -3
  447. package/src/components/post-author/panel.js +3 -1
  448. package/src/components/post-card-panel/index.js +9 -3
  449. package/src/components/post-comments/index.js +8 -21
  450. package/src/components/post-content-information/index.js +7 -1
  451. package/src/components/post-discussion/panel.js +5 -3
  452. package/src/components/post-excerpt/panel.js +2 -1
  453. package/src/components/post-featured-image/index.js +5 -1
  454. package/src/components/post-last-revision/index.js +1 -0
  455. package/src/components/post-panel-row/style.scss +0 -1
  456. package/src/components/post-publish-button/index.js +4 -17
  457. package/src/components/post-publish-panel/maybe-category-panel.js +4 -1
  458. package/src/components/post-publish-panel/maybe-tags-panel.js +1 -1
  459. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +2 -2
  460. package/src/components/post-status/index.js +29 -51
  461. package/src/components/post-taxonomies/flat-term-selector.js +19 -5
  462. package/src/components/post-taxonomies/index.js +8 -1
  463. package/src/components/post-template/block-theme.js +5 -1
  464. package/src/components/post-template/classic-theme.js +8 -3
  465. package/src/components/post-template/create-new-template-modal.js +7 -1
  466. package/src/components/post-template/create-new-template.js +4 -1
  467. package/src/components/post-template/hooks.js +8 -2
  468. package/src/components/post-template/panel.js +10 -2
  469. package/src/components/post-trash/check.js +9 -5
  470. package/src/components/post-url/panel.js +15 -4
  471. package/src/components/posts-per-page/index.js +7 -2
  472. package/src/components/preview-dropdown/index.js +113 -35
  473. package/src/components/preview-dropdown/style.scss +5 -0
  474. package/src/components/provider/disable-non-page-content-blocks.js +27 -24
  475. package/src/components/provider/use-block-editor-settings.js +15 -6
  476. package/src/components/save-publish-panels/index.js +1 -4
  477. package/src/components/sidebar/index.js +2 -5
  478. package/src/components/site-discussion/index.js +15 -22
  479. package/src/components/template-content-panel/index.js +37 -21
  480. package/src/components/visual-editor/edit-template-blocks-notification.js +5 -1
  481. package/src/components/visual-editor/index.js +13 -8
  482. package/src/components/visual-editor/style.scss +1 -4
  483. package/src/{hooks → components/visual-editor}/use-select-nearest-editable-block.js +1 -1
  484. package/src/dataviews/actions/delete-post.tsx +2 -0
  485. package/src/dataviews/actions/export-pattern.native.tsx +3 -0
  486. package/src/dataviews/actions/permanently-delete-post.tsx +116 -0
  487. package/src/dataviews/actions/restore-post.tsx +134 -0
  488. package/src/dataviews/actions/trash-post.tsx +196 -0
  489. package/src/dataviews/store/private-actions.ts +68 -0
  490. package/src/dataviews/store/private-selectors.ts +9 -17
  491. package/src/dataviews/store/reducer.ts +20 -1
  492. package/src/dataviews/types.ts +11 -0
  493. package/src/hooks/pattern-overrides.js +1 -1
  494. package/src/index.js +0 -1
  495. package/src/private-apis.js +6 -2
  496. package/src/store/actions.js +36 -13
  497. package/src/store/private-actions.js +8 -4
  498. package/src/store/private-selectors.js +45 -2
  499. package/src/store/test/actions.js +9 -3
  500. package/src/store/test/private-selectors.js +78 -0
  501. package/src/utils/media-upload/index.js +38 -3
  502. package/tsconfig.tsbuildinfo +1 -1
  503. package/build/bindings/index.js +0 -22
  504. package/build/bindings/index.js.map +0 -1
  505. package/build/dataviews/actions/index.js +0 -32
  506. package/build/dataviews/actions/index.js.map +0 -1
  507. package/build/hooks/use-select-nearest-editable-block.js.map +0 -1
  508. package/build/store/utils/get-filtered-template-parts.js +0 -71
  509. package/build/store/utils/get-filtered-template-parts.js.map +0 -1
  510. package/build/utils/set-nested-value.js +0 -44
  511. package/build/utils/set-nested-value.js.map +0 -1
  512. package/build-module/bindings/index.js +0 -17
  513. package/build-module/bindings/index.js.map +0 -1
  514. package/build-module/dataviews/actions/index.js +0 -24
  515. package/build-module/dataviews/actions/index.js.map +0 -1
  516. package/build-module/hooks/use-select-nearest-editable-block.js.map +0 -1
  517. package/build-module/store/utils/get-filtered-template-parts.js +0 -64
  518. package/build-module/store/utils/get-filtered-template-parts.js.map +0 -1
  519. package/build-module/utils/set-nested-value.js +0 -38
  520. package/build-module/utils/set-nested-value.js.map +0 -1
  521. package/build-types/bindings/index.d.ts +0 -2
  522. package/build-types/bindings/index.d.ts.map +0 -1
  523. package/build-types/dataviews/actions/index.d.ts +0 -2
  524. package/build-types/dataviews/actions/index.d.ts.map +0 -1
  525. package/build-types/hooks/use-select-nearest-editable-block.d.ts.map +0 -1
  526. package/build-types/store/utils/get-filtered-template-parts.d.ts +0 -3
  527. package/build-types/store/utils/get-filtered-template-parts.d.ts.map +0 -1
  528. package/build-types/utils/set-nested-value.d.ts +0 -20
  529. package/build-types/utils/set-nested-value.d.ts.map +0 -1
  530. package/src/bindings/index.js +0 -15
  531. package/src/components/document-outline/test/__snapshots__/index.js.snap +0 -111
  532. package/src/components/document-outline/test/index.js +0 -185
  533. package/src/dataviews/actions/index.ts +0 -25
  534. package/src/store/utils/get-filtered-template-parts.js +0 -69
  535. package/src/store/utils/test/get-filtered-template-parts.js +0 -189
  536. package/src/utils/set-nested-value.js +0 -39
  537. /package/build-types/{hooks → components/visual-editor}/use-select-nearest-editable-block.d.ts +0 -0
@@ -38,18 +38,26 @@ const {
38
38
  useDuplicatePatternProps
39
39
  } = (0, _lockUnlock.unlock)(_patterns.privateApis);
40
40
 
41
- // TODO: this should be shared with other components (page-pages).
41
+ // TODO: this should be shared with other components (see post-fields in edit-site).
42
42
  const fields = [{
43
43
  type: 'text',
44
- header: (0, _i18n.__)('Title'),
45
44
  id: 'title',
45
+ label: (0, _i18n.__)('Title'),
46
46
  placeholder: (0, _i18n.__)('No title'),
47
47
  getValue: ({
48
48
  item
49
49
  }) => item.title
50
+ }, {
51
+ type: 'integer',
52
+ id: 'menu_order',
53
+ label: (0, _i18n.__)('Order'),
54
+ description: (0, _i18n.__)('Determines the order of pages.')
50
55
  }];
51
- const form = {
52
- visibleFields: ['title']
56
+ const formDuplicateAction = {
57
+ fields: ['title']
58
+ };
59
+ const formOrderAction = {
60
+ fields: ['menu_order']
53
61
  };
54
62
 
55
63
  /**
@@ -67,307 +75,6 @@ function isTemplateRemovable(template) {
67
75
  // two props whether is custom or has a theme file.
68
76
  return template?.source === _constants.TEMPLATE_ORIGINS.custom && !template?.has_theme_file;
69
77
  }
70
- const trashPostAction = {
71
- id: 'move-to-trash',
72
- label: (0, _i18n.__)('Move to Trash'),
73
- isPrimary: true,
74
- icon: _icons.trash,
75
- isEligible(item) {
76
- return !['auto-draft', 'trash'].includes(item.status);
77
- },
78
- supportsBulk: true,
79
- hideModalHeader: true,
80
- RenderModal: ({
81
- items,
82
- closeModal,
83
- onActionPerformed
84
- }) => {
85
- const [isBusy, setIsBusy] = (0, _element.useState)(false);
86
- const {
87
- createSuccessNotice,
88
- createErrorNotice
89
- } = (0, _data.useDispatch)(_notices.store);
90
- const {
91
- deleteEntityRecord
92
- } = (0, _data.useDispatch)(_coreData.store);
93
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
94
- spacing: "5",
95
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalText, {
96
- children: items.length === 1 ? (0, _i18n.sprintf)(
97
- // translators: %s: The item's title.
98
- (0, _i18n.__)('Are you sure you want to move to trash "%s"?'), (0, _utils.getItemTitle)(items[0])) : (0, _i18n.sprintf)(
99
- // translators: %d: The number of items (2 or more).
100
- (0, _i18n._n)('Are you sure you want to move to trash %d item?', 'Are you sure you want to move to trash %d items?', items.length), items.length)
101
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
102
- justify: "right",
103
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
104
- variant: "tertiary",
105
- onClick: closeModal,
106
- disabled: isBusy,
107
- accessibleWhenDisabled: true,
108
- children: (0, _i18n.__)('Cancel')
109
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
110
- variant: "primary",
111
- onClick: async () => {
112
- setIsBusy(true);
113
- const promiseResult = await Promise.allSettled(items.map(item => deleteEntityRecord('postType', item.type, item.id, {}, {
114
- throwOnError: true
115
- })));
116
- // If all the promises were fulfilled with success.
117
- if (promiseResult.every(({
118
- status
119
- }) => status === 'fulfilled')) {
120
- let successMessage;
121
- if (promiseResult.length === 1) {
122
- successMessage = (0, _i18n.sprintf)( /* translators: The item's title. */
123
- (0, _i18n.__)('"%s" moved to trash.'), (0, _utils.getItemTitle)(items[0]));
124
- } else {
125
- successMessage = (0, _i18n.sprintf)( /* translators: The number of items. */
126
- (0, _i18n._n)('%s item moved to trash.', '%s items moved to trash.', items.length), items.length);
127
- }
128
- createSuccessNotice(successMessage, {
129
- type: 'snackbar',
130
- id: 'move-to-trash-action'
131
- });
132
- } else {
133
- // If there was at least one failure.
134
- let errorMessage;
135
- // If we were trying to delete a single item.
136
- if (promiseResult.length === 1) {
137
- if (promiseResult[0].reason?.message) {
138
- errorMessage = promiseResult[0].reason.message;
139
- } else {
140
- errorMessage = (0, _i18n.__)('An error occurred while moving to trash the item.');
141
- }
142
- // If we were trying to delete multiple items.
143
- } else {
144
- const errorMessages = new Set();
145
- const failedPromises = promiseResult.filter(({
146
- status
147
- }) => status === 'rejected');
148
- for (const failedPromise of failedPromises) {
149
- if (failedPromise.reason?.message) {
150
- errorMessages.add(failedPromise.reason.message);
151
- }
152
- }
153
- if (errorMessages.size === 0) {
154
- errorMessage = (0, _i18n.__)('An error occurred while moving to trash the items.');
155
- } else if (errorMessages.size === 1) {
156
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
157
- (0, _i18n.__)('An error occurred while moving to trash the item: %s'), [...errorMessages][0]);
158
- } else {
159
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
160
- (0, _i18n.__)('Some errors occurred while moving to trash the items: %s'), [...errorMessages].join(','));
161
- }
162
- }
163
- createErrorNotice(errorMessage, {
164
- type: 'snackbar'
165
- });
166
- }
167
- if (onActionPerformed) {
168
- onActionPerformed(items);
169
- }
170
- setIsBusy(false);
171
- closeModal();
172
- },
173
- isBusy: isBusy,
174
- disabled: isBusy,
175
- accessibleWhenDisabled: true,
176
- children: (0, _i18n.__)('Trash')
177
- })]
178
- })]
179
- });
180
- }
181
- };
182
- function useCanUserEligibilityCheckPostType(capability, resource, action) {
183
- const registry = (0, _data.useRegistry)();
184
- return (0, _element.useMemo)(() => ({
185
- ...action,
186
- isEligible(item) {
187
- return action.isEligible(item) && registry.select(_coreData.store).canUser(capability, resource, item.id);
188
- }
189
- }), [action, registry, capability, resource]);
190
- }
191
- function useTrashPostAction(resource) {
192
- return useCanUserEligibilityCheckPostType('delete', resource, trashPostAction);
193
- }
194
- const permanentlyDeletePostAction = {
195
- id: 'permanently-delete',
196
- label: (0, _i18n.__)('Permanently delete'),
197
- supportsBulk: true,
198
- isEligible({
199
- status
200
- }) {
201
- return status === 'trash';
202
- },
203
- async callback(posts, {
204
- registry,
205
- onActionPerformed
206
- }) {
207
- const {
208
- createSuccessNotice,
209
- createErrorNotice
210
- } = registry.dispatch(_notices.store);
211
- const {
212
- deleteEntityRecord
213
- } = registry.dispatch(_coreData.store);
214
- const promiseResult = await Promise.allSettled(posts.map(post => {
215
- return deleteEntityRecord('postType', post.type, post.id, {
216
- force: true
217
- }, {
218
- throwOnError: true
219
- });
220
- }));
221
- // If all the promises were fulfilled with success.
222
- if (promiseResult.every(({
223
- status
224
- }) => status === 'fulfilled')) {
225
- let successMessage;
226
- if (promiseResult.length === 1) {
227
- successMessage = (0, _i18n.sprintf)( /* translators: The posts's title. */
228
- (0, _i18n.__)('"%s" permanently deleted.'), (0, _utils.getItemTitle)(posts[0]));
229
- } else {
230
- successMessage = (0, _i18n.__)('The posts were permanently deleted.');
231
- }
232
- createSuccessNotice(successMessage, {
233
- type: 'snackbar',
234
- id: 'permanently-delete-post-action'
235
- });
236
- onActionPerformed?.(posts);
237
- } else {
238
- // If there was at lease one failure.
239
- let errorMessage;
240
- // If we were trying to permanently delete a single post.
241
- if (promiseResult.length === 1) {
242
- if (promiseResult[0].reason?.message) {
243
- errorMessage = promiseResult[0].reason.message;
244
- } else {
245
- errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the post.');
246
- }
247
- // If we were trying to permanently delete multiple posts
248
- } else {
249
- const errorMessages = new Set();
250
- const failedPromises = promiseResult.filter(({
251
- status
252
- }) => status === 'rejected');
253
- for (const failedPromise of failedPromises) {
254
- if (failedPromise.reason?.message) {
255
- errorMessages.add(failedPromise.reason.message);
256
- }
257
- }
258
- if (errorMessages.size === 0) {
259
- errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the posts.');
260
- } else if (errorMessages.size === 1) {
261
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
262
- (0, _i18n.__)('An error occurred while permanently deleting the posts: %s'), [...errorMessages][0]);
263
- } else {
264
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
265
- (0, _i18n.__)('Some errors occurred while permanently deleting the posts: %s'), [...errorMessages].join(','));
266
- }
267
- }
268
- createErrorNotice(errorMessage, {
269
- type: 'snackbar'
270
- });
271
- }
272
- }
273
- };
274
- function usePermanentlyDeletePostAction(resource) {
275
- return useCanUserEligibilityCheckPostType('delete', resource, permanentlyDeletePostAction);
276
- }
277
- const restorePostAction = {
278
- id: 'restore',
279
- label: (0, _i18n.__)('Restore'),
280
- isPrimary: true,
281
- icon: _icons.backup,
282
- supportsBulk: true,
283
- isEligible({
284
- status
285
- }) {
286
- return status === 'trash';
287
- },
288
- async callback(posts, {
289
- registry,
290
- onActionPerformed
291
- }) {
292
- const {
293
- createSuccessNotice,
294
- createErrorNotice
295
- } = registry.dispatch(_notices.store);
296
- const {
297
- editEntityRecord,
298
- saveEditedEntityRecord
299
- } = registry.dispatch(_coreData.store);
300
- await Promise.allSettled(posts.map(post => {
301
- return editEntityRecord('postType', post.type, post.id, {
302
- status: 'draft'
303
- });
304
- }));
305
- const promiseResult = await Promise.allSettled(posts.map(post => {
306
- return saveEditedEntityRecord('postType', post.type, post.id, {
307
- throwOnError: true
308
- });
309
- }));
310
- if (promiseResult.every(({
311
- status
312
- }) => status === 'fulfilled')) {
313
- let successMessage;
314
- if (posts.length === 1) {
315
- successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
316
- (0, _i18n.__)('"%s" has been restored.'), (0, _utils.getItemTitle)(posts[0]));
317
- } else if (posts[0].type === 'page') {
318
- successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
319
- (0, _i18n.__)('%d pages have been restored.'), posts.length);
320
- } else {
321
- successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
322
- (0, _i18n.__)('%d posts have been restored.'), posts.length);
323
- }
324
- createSuccessNotice(successMessage, {
325
- type: 'snackbar',
326
- id: 'restore-post-action'
327
- });
328
- if (onActionPerformed) {
329
- onActionPerformed(posts);
330
- }
331
- } else {
332
- // If there was at lease one failure.
333
- let errorMessage;
334
- // If we were trying to move a single post to the trash.
335
- if (promiseResult.length === 1) {
336
- if (promiseResult[0].reason?.message) {
337
- errorMessage = promiseResult[0].reason.message;
338
- } else {
339
- errorMessage = (0, _i18n.__)('An error occurred while restoring the post.');
340
- }
341
- // If we were trying to move multiple posts to the trash
342
- } else {
343
- const errorMessages = new Set();
344
- const failedPromises = promiseResult.filter(({
345
- status
346
- }) => status === 'rejected');
347
- for (const failedPromise of failedPromises) {
348
- if (failedPromise.reason?.message) {
349
- errorMessages.add(failedPromise.reason.message);
350
- }
351
- }
352
- if (errorMessages.size === 0) {
353
- errorMessage = (0, _i18n.__)('An error occurred while restoring the posts.');
354
- } else if (errorMessages.size === 1) {
355
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
356
- (0, _i18n.__)('An error occurred while restoring the posts: %s'), [...errorMessages][0]);
357
- } else {
358
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
359
- (0, _i18n.__)('Some errors occurred while restoring the posts: %s'), [...errorMessages].join(','));
360
- }
361
- }
362
- createErrorNotice(errorMessage, {
363
- type: 'snackbar'
364
- });
365
- }
366
- }
367
- };
368
- function useRestorePostAction(resource) {
369
- return useCanUserEligibilityCheckPostType('update', resource, restorePostAction);
370
- }
371
78
  const viewPostAction = {
372
79
  id: 'view-post',
373
80
  label: (0, _i18n.__)('View'),
@@ -426,11 +133,11 @@ const renamePostAction = {
426
133
  }
427
134
  // Templates, template parts and patterns have special checks for renaming.
428
135
  if (![_constants.TEMPLATE_POST_TYPE, _constants.TEMPLATE_PART_POST_TYPE, ...Object.values(PATTERN_TYPES)].includes(post.type)) {
429
- return true;
136
+ return post.permissions?.update;
430
137
  }
431
138
  // In the case of templates, we can only rename custom templates.
432
139
  if (post.type === _constants.TEMPLATE_POST_TYPE) {
433
- return isTemplateRemovable(post) && post.is_custom;
140
+ return isTemplateRemovable(post) && post.is_custom && post.permissions?.update;
434
141
  }
435
142
  // Make necessary checks for template parts and patterns.
436
143
  const isTemplatePart = post.type === _constants.TEMPLATE_PART_POST_TYPE;
@@ -440,7 +147,7 @@ const renamePostAction = {
440
147
  // two props whether is custom or has a theme file.
441
148
  const isCustomPattern = isUserPattern || isTemplatePart && post.source === _constants.TEMPLATE_ORIGINS.custom;
442
149
  const hasThemeFile = post?.has_theme_file;
443
- return isCustomPattern && !hasThemeFile;
150
+ return isCustomPattern && !hasThemeFile && post.permissions?.update;
444
151
  },
445
152
  RenderModal: ({
446
153
  items,
@@ -512,21 +219,105 @@ const renamePostAction = {
512
219
  });
513
220
  }
514
221
  };
515
- function useRenamePostAction(resource) {
516
- return useCanUserEligibilityCheckPostType('update', resource, renamePostAction);
517
- }
518
- const useDuplicatePostAction = postType => {
222
+ function ReorderModal({
223
+ items,
224
+ closeModal,
225
+ onActionPerformed
226
+ }) {
227
+ const [item, setItem] = (0, _element.useState)(items[0]);
228
+ const orderInput = item.menu_order;
519
229
  const {
520
- userCanCreatePost
521
- } = (0, _data.useSelect)(select => {
230
+ editEntityRecord,
231
+ saveEditedEntityRecord
232
+ } = (0, _data.useDispatch)(_coreData.store);
233
+ const {
234
+ createSuccessNotice,
235
+ createErrorNotice
236
+ } = (0, _data.useDispatch)(_notices.store);
237
+ async function onOrder(event) {
238
+ event.preventDefault();
239
+ if (!(0, _dataviews.isItemValid)(item, fields, formOrderAction)) {
240
+ return;
241
+ }
242
+ try {
243
+ await editEntityRecord('postType', item.type, item.id, {
244
+ menu_order: orderInput
245
+ });
246
+ closeModal();
247
+ // Persist edited entity.
248
+ await saveEditedEntityRecord('postType', item.type, item.id, {
249
+ throwOnError: true
250
+ });
251
+ createSuccessNotice((0, _i18n.__)('Order updated'), {
252
+ type: 'snackbar'
253
+ });
254
+ onActionPerformed?.(items);
255
+ } catch (error) {
256
+ const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while updating the order');
257
+ createErrorNotice(errorMessage, {
258
+ type: 'snackbar'
259
+ });
260
+ }
261
+ }
262
+ const isSaveDisabled = !(0, _dataviews.isItemValid)(item, fields, formOrderAction);
263
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
264
+ onSubmit: onOrder,
265
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
266
+ spacing: "5",
267
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
268
+ children: (0, _i18n.__)('Determines the order of pages. Pages with the same order value are sorted alphabetically. Negative order values are supported.')
269
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviews.DataForm, {
270
+ data: item,
271
+ fields: fields,
272
+ form: formOrderAction,
273
+ onChange: setItem
274
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
275
+ justify: "right",
276
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
277
+ __next40pxDefaultSize: true,
278
+ variant: "tertiary",
279
+ onClick: () => {
280
+ closeModal();
281
+ },
282
+ children: (0, _i18n.__)('Cancel')
283
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
284
+ __next40pxDefaultSize: true,
285
+ variant: "primary",
286
+ type: "submit",
287
+ accessibleWhenDisabled: true,
288
+ disabled: isSaveDisabled,
289
+ __experimentalIsFocusable: true,
290
+ children: (0, _i18n.__)('Save')
291
+ })]
292
+ })]
293
+ })
294
+ });
295
+ }
296
+ function useReorderPagesAction(postType) {
297
+ const supportsPageAttributes = (0, _data.useSelect)(select => {
522
298
  const {
523
- getPostType,
524
- canUser
299
+ getPostType
525
300
  } = select(_coreData.store);
526
- const resource = getPostType(postType)?.rest_base || '';
527
- return {
528
- userCanCreatePost: canUser('create', resource)
529
- };
301
+ const postTypeObject = getPostType(postType);
302
+ return !!postTypeObject?.supports?.['page-attributes'];
303
+ }, [postType]);
304
+ return (0, _element.useMemo)(() => supportsPageAttributes && {
305
+ id: 'order-pages',
306
+ label: (0, _i18n.__)('Order'),
307
+ isEligible({
308
+ status
309
+ }) {
310
+ return status !== 'trash';
311
+ },
312
+ RenderModal: ReorderModal
313
+ }, [supportsPageAttributes]);
314
+ }
315
+ const useDuplicatePostAction = postType => {
316
+ const userCanCreatePost = (0, _data.useSelect)(select => {
317
+ return select(_coreData.store).canUser('create', {
318
+ kind: 'postType',
319
+ name: postType
320
+ });
530
321
  }, [postType]);
531
322
  return (0, _element.useMemo)(() => userCanCreatePost && {
532
323
  id: 'duplicate-post',
@@ -615,7 +406,7 @@ const useDuplicatePostAction = postType => {
615
406
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviews.DataForm, {
616
407
  data: item,
617
408
  fields: fields,
618
- form: form,
409
+ form: formDuplicateAction,
619
410
  onChange: setItem
620
411
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
621
412
  spacing: 2,
@@ -672,10 +463,10 @@ const duplicateTemplatePartAction = exports.duplicateTemplatePartAction = {
672
463
  const [item] = items;
673
464
  const blocks = (0, _element.useMemo)(() => {
674
465
  var _item$blocks;
675
- return (_item$blocks = item.blocks) !== null && _item$blocks !== void 0 ? _item$blocks : (0, _blocks.parse)(item.content.raw, {
466
+ return (_item$blocks = item.blocks) !== null && _item$blocks !== void 0 ? _item$blocks : (0, _blocks.parse)(typeof item.content === 'string' ? item.content : item.content.raw, {
676
467
  __unstableSkipMigrationLogs: true
677
468
  });
678
- }, [item?.content?.raw, item.blocks]);
469
+ }, [item.content, item.blocks]);
679
470
  const {
680
471
  createSuccessNotice
681
472
  } = (0, _data.useDispatch)(_notices.store);
@@ -707,33 +498,32 @@ function usePostActions({
707
498
  const {
708
499
  defaultActions,
709
500
  postTypeObject,
710
- userCanCreatePostType,
711
- resource,
712
- cachedCanUserResolvers
501
+ userCanCreatePostType
713
502
  } = (0, _data.useSelect)(select => {
714
503
  const {
715
504
  getPostType,
716
- canUser,
717
- getCachedResolvers
505
+ canUser
718
506
  } = select(_coreData.store);
719
507
  const {
720
508
  getEntityActions
721
509
  } = (0, _lockUnlock.unlock)(select(_store.store));
722
- const _postTypeObject = getPostType(postType);
723
- const _resource = _postTypeObject?.rest_base || '';
724
510
  return {
725
- postTypeObject: _postTypeObject,
511
+ postTypeObject: getPostType(postType),
726
512
  defaultActions: getEntityActions('postType', postType),
727
- userCanCreatePostType: canUser('create', _resource),
728
- resource: _resource,
729
- cachedCanUserResolvers: getCachedResolvers()?.canUser
513
+ userCanCreatePostType: canUser('create', {
514
+ kind: 'postType',
515
+ name: postType
516
+ })
730
517
  };
731
518
  }, [postType]);
519
+ const {
520
+ registerPostTypeActions
521
+ } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
522
+ (0, _element.useEffect)(() => {
523
+ registerPostTypeActions(postType);
524
+ }, [registerPostTypeActions, postType]);
732
525
  const duplicatePostAction = useDuplicatePostAction(postType);
733
- const trashPostActionForPostType = useTrashPostAction(resource);
734
- const permanentlyDeletePostActionForPostType = usePermanentlyDeletePostAction(resource);
735
- const renamePostActionForPostType = useRenamePostAction(resource);
736
- const restorePostActionForPostType = useRestorePostAction(resource);
526
+ const reorderPagesAction = useReorderPagesAction(postType);
737
527
  const isTemplateOrTemplatePart = [_constants.TEMPLATE_POST_TYPE, _constants.TEMPLATE_PART_POST_TYPE].includes(postType);
738
528
  const isPattern = postType === _constants.PATTERN_POST_TYPE;
739
529
  const isLoaded = !!postTypeObject;
@@ -743,7 +533,7 @@ function usePostActions({
743
533
  if (!isLoaded) {
744
534
  return [];
745
535
  }
746
- let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, !isTemplateOrTemplatePart && restorePostActionForPostType, !isTemplateOrTemplatePart && !isPattern && trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType, ...defaultActions].filter(Boolean);
536
+ let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostAction, reorderPagesAction, ...defaultActions].filter(Boolean);
747
537
  // Filter actions based on provided context. If not provided
748
538
  // all actions are returned. We'll have a single entry for getting the actions
749
539
  // and the consumer should provide the context to filter the actions, if needed.
@@ -766,7 +556,7 @@ function usePostActions({
766
556
  existingCallback(items, {
767
557
  ...argsObject,
768
558
  onActionPerformed: _items => {
769
- if (argsObject.onActionPerformed) {
559
+ if (argsObject?.onActionPerformed) {
770
560
  argsObject.onActionPerformed(_items);
771
561
  }
772
562
  onActionPerformed(actions[i].id, _items);
@@ -795,9 +585,6 @@ function usePostActions({
795
585
  }
796
586
  }
797
587
  return actions;
798
- // We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render
799
- // when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.
800
- // eslint-disable-next-line react-hooks/exhaustive-deps
801
- }, [defaultActions, userCanCreatePostType, isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable, duplicatePostAction, trashPostActionForPostType, restorePostActionForPostType, renamePostActionForPostType, permanentlyDeletePostActionForPostType, onActionPerformed, isLoaded, supportsRevisions, supportsTitle, context, cachedCanUserResolvers]);
588
+ }, [defaultActions, userCanCreatePostType, isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable, duplicatePostAction, reorderPagesAction, onActionPerformed, isLoaded, supportsRevisions, supportsTitle, context]);
802
589
  }
803
590
  //# sourceMappingURL=actions.js.map