@wordpress/editor 13.35.0 → 14.0.1

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 (947) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +333 -39
  3. package/build/bindings/index.js +1 -3
  4. package/build/bindings/index.js.map +1 -1
  5. package/build/bindings/pattern-overrides.js +1 -1
  6. package/build/bindings/pattern-overrides.js.map +1 -1
  7. package/build/bindings/post-meta.js +38 -2
  8. package/build/bindings/post-meta.js.map +1 -1
  9. package/build/components/autocompleters/user.js +12 -8
  10. package/build/components/autocompleters/user.js.map +1 -1
  11. package/build/components/block-manager/category.js +19 -17
  12. package/build/components/block-manager/category.js.map +1 -1
  13. package/build/components/block-manager/checklist.js +15 -14
  14. package/build/components/block-manager/checklist.js.map +1 -1
  15. package/build/components/block-manager/index.js +37 -33
  16. package/build/components/block-manager/index.js.map +1 -1
  17. package/build/components/block-removal-warnings/index.js +2 -2
  18. package/build/components/block-removal-warnings/index.js.map +1 -1
  19. package/build/components/block-settings-menu/content-only-settings-menu.js +59 -36
  20. package/build/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
  21. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js +16 -13
  22. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
  23. package/build/components/blog-title/index.js +116 -0
  24. package/build/components/blog-title/index.js.map +1 -0
  25. package/build/components/collapsible-block-toolbar/index.js +21 -18
  26. package/build/components/collapsible-block-toolbar/index.js.map +1 -1
  27. package/build/components/commands/index.js +109 -3
  28. package/build/components/commands/index.js.map +1 -1
  29. package/build/components/create-template-part-modal/index.js +167 -0
  30. package/build/components/create-template-part-modal/index.js.map +1 -0
  31. package/build/components/create-template-part-modal/utils.js +64 -0
  32. package/build/components/create-template-part-modal/utils.js.map +1 -0
  33. package/build/components/deprecated.js +2 -2
  34. package/build/components/deprecated.js.map +1 -1
  35. package/build/components/document-bar/index.js +94 -70
  36. package/build/components/document-bar/index.js.map +1 -1
  37. package/build/components/document-outline/index.js +124 -121
  38. package/build/components/document-outline/index.js.map +1 -1
  39. package/build/components/document-outline/item.js +18 -14
  40. package/build/components/document-outline/item.js.map +1 -1
  41. package/build/components/document-tools/index.js +56 -53
  42. package/build/components/document-tools/index.js.map +1 -1
  43. package/build/components/editor/index.js +83 -0
  44. package/build/components/editor/index.js.map +1 -0
  45. package/build/components/editor-help/add-blocks.native.js +14 -11
  46. package/build/components/editor-help/add-blocks.native.js.map +1 -1
  47. package/build/components/editor-help/customize-blocks.native.js +14 -11
  48. package/build/components/editor-help/customize-blocks.native.js.map +1 -1
  49. package/build/components/editor-help/help-detail-navigation-screen.native.js +32 -22
  50. package/build/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  51. package/build/components/editor-help/help-get-support-button.native.js +8 -6
  52. package/build/components/editor-help/help-get-support-button.native.js.map +1 -1
  53. package/build/components/editor-help/help-section-title.native.js +8 -6
  54. package/build/components/editor-help/help-section-title.native.js.map +1 -1
  55. package/build/components/editor-help/help-topic-row.native.js +7 -6
  56. package/build/components/editor-help/help-topic-row.native.js.map +1 -1
  57. package/build/components/editor-help/icon-move-blocks.native.js +7 -6
  58. package/build/components/editor-help/icon-move-blocks.native.js.map +1 -1
  59. package/build/components/editor-help/index.native.js +94 -76
  60. package/build/components/editor-help/index.native.js.map +1 -1
  61. package/build/components/editor-help/intro-to-blocks.native.js +41 -37
  62. package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
  63. package/build/components/editor-help/move-blocks.native.js +25 -21
  64. package/build/components/editor-help/move-blocks.native.js.map +1 -1
  65. package/build/components/editor-help/remove-blocks.native.js +12 -9
  66. package/build/components/editor-help/remove-blocks.native.js.map +1 -1
  67. package/build/components/editor-help/view-sections.native.js +24 -19
  68. package/build/components/editor-help/view-sections.native.js.map +1 -1
  69. package/build/components/editor-history/redo.js +2 -2
  70. package/build/components/editor-history/redo.js.map +1 -1
  71. package/build/components/editor-history/undo.js +2 -2
  72. package/build/components/editor-history/undo.js.map +1 -1
  73. package/build/components/editor-interface/content-slot-fill.js +23 -0
  74. package/build/components/editor-interface/content-slot-fill.js.map +1 -0
  75. package/build/components/editor-interface/index.js +176 -0
  76. package/build/components/editor-interface/index.js.map +1 -0
  77. package/build/components/editor-notices/index.js +22 -9
  78. package/build/components/editor-notices/index.js.map +1 -1
  79. package/build/components/editor-snackbars/index.js +2 -2
  80. package/build/components/editor-snackbars/index.js.map +1 -1
  81. package/build/components/entities-saved-states/entity-record-item.js +37 -10
  82. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  83. package/build/components/entities-saved-states/entity-type-list.js +25 -22
  84. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  85. package/build/components/entities-saved-states/index.js +53 -46
  86. package/build/components/entities-saved-states/index.js.map +1 -1
  87. package/build/components/error-boundary/index.js +27 -14
  88. package/build/components/error-boundary/index.js.map +1 -1
  89. package/build/components/error-boundary/index.native.js +45 -35
  90. package/build/components/error-boundary/index.native.js.map +1 -1
  91. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +3 -4
  92. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  93. package/build/components/global-styles-provider/index.js +81 -16
  94. package/build/components/global-styles-provider/index.js.map +1 -1
  95. package/build/components/header/back-button.js +37 -0
  96. package/build/components/header/back-button.js.map +1 -0
  97. package/build/components/header/index.js +85 -60
  98. package/build/components/header/index.js.map +1 -1
  99. package/build/components/inserter-sidebar/index.js +45 -19
  100. package/build/components/inserter-sidebar/index.js.map +1 -1
  101. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +2 -2
  102. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  103. package/build/components/keyboard-shortcut-help-modal/index.js +53 -48
  104. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  105. package/build/components/keyboard-shortcut-help-modal/shortcut.js +30 -26
  106. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  107. package/build/components/list-view-sidebar/index.js +59 -47
  108. package/build/components/list-view-sidebar/index.js.map +1 -1
  109. package/build/components/list-view-sidebar/list-view-outline.js +21 -4
  110. package/build/components/list-view-sidebar/list-view-outline.js.map +1 -1
  111. package/build/components/local-autosave-monitor/index.js +15 -2
  112. package/build/components/local-autosave-monitor/index.js.map +1 -1
  113. package/build/components/media-categories/index.js +1 -1
  114. package/build/components/media-categories/index.js.map +1 -1
  115. package/build/components/mode-switcher/index.js +10 -10
  116. package/build/components/mode-switcher/index.js.map +1 -1
  117. package/build/components/more-menu/copy-content-menu-item.js +5 -4
  118. package/build/components/more-menu/copy-content-menu-item.js.map +1 -1
  119. package/build/components/more-menu/index.js +89 -76
  120. package/build/components/more-menu/index.js.map +1 -1
  121. package/build/components/more-menu/tools-more-menu-group.js +2 -2
  122. package/build/components/more-menu/tools-more-menu-group.js.map +1 -1
  123. package/build/components/more-menu/view-more-menu-group.js +2 -2
  124. package/build/components/more-menu/view-more-menu-group.js.map +1 -1
  125. package/build/components/offline-status/index.native.js +12 -11
  126. package/build/components/offline-status/index.native.js.map +1 -1
  127. package/build/components/page-attributes/order.js +87 -14
  128. package/build/components/page-attributes/order.js.map +1 -1
  129. package/build/components/page-attributes/panel.js +10 -19
  130. package/build/components/page-attributes/panel.js.map +1 -1
  131. package/build/components/page-attributes/parent.js +86 -3
  132. package/build/components/page-attributes/parent.js.map +1 -1
  133. package/build/components/pattern-duplicate-modal/index.js +59 -0
  134. package/build/components/pattern-duplicate-modal/index.js.map +1 -0
  135. package/build/components/pattern-overrides-panel/index.js +2 -2
  136. package/build/components/pattern-overrides-panel/index.js.map +1 -1
  137. package/build/components/pattern-rename-modal/index.js +58 -0
  138. package/build/components/pattern-rename-modal/index.js.map +1 -0
  139. package/build/components/plugin-document-setting-panel/index.js +17 -12
  140. package/build/components/plugin-document-setting-panel/index.js.map +1 -1
  141. package/build/components/plugin-post-publish-panel/index.js +10 -7
  142. package/build/components/plugin-post-publish-panel/index.js.map +1 -1
  143. package/build/components/plugin-post-status-info/index.js +7 -4
  144. package/build/components/plugin-post-status-info/index.js.map +1 -1
  145. package/build/components/plugin-pre-publish-panel/index.js +10 -7
  146. package/build/components/plugin-pre-publish-panel/index.js.map +1 -1
  147. package/build/components/plugin-sidebar/index.js +3 -4
  148. package/build/components/plugin-sidebar/index.js.map +1 -1
  149. package/build/components/plugin-sidebar-more-menu-item/index.js +3 -5
  150. package/build/components/plugin-sidebar-more-menu-item/index.js.map +1 -1
  151. package/build/components/post-actions/actions.js +379 -309
  152. package/build/components/post-actions/actions.js.map +1 -1
  153. package/build/components/post-actions/export-pattern-action.js +64 -0
  154. package/build/components/post-actions/export-pattern-action.js.map +1 -0
  155. package/build/components/post-actions/export-pattern-action.native.js +11 -0
  156. package/build/components/post-actions/export-pattern-action.native.js.map +1 -0
  157. package/build/components/post-actions/index.js +66 -50
  158. package/build/components/post-actions/index.js.map +1 -1
  159. package/build/components/post-author/check.js +6 -6
  160. package/build/components/post-author/check.js.map +1 -1
  161. package/build/components/post-author/combobox.js +4 -3
  162. package/build/components/post-author/combobox.js.map +1 -1
  163. package/build/components/post-author/hook.js +2 -1
  164. package/build/components/post-author/hook.js.map +1 -1
  165. package/build/components/post-author/index.js +3 -3
  166. package/build/components/post-author/index.js.map +1 -1
  167. package/build/components/post-author/panel.js +72 -4
  168. package/build/components/post-author/panel.js.map +1 -1
  169. package/build/components/post-author/select.js +4 -3
  170. package/build/components/post-author/select.js.map +1 -1
  171. package/build/components/post-card-panel/index.js +54 -19
  172. package/build/components/post-card-panel/index.js.map +1 -1
  173. package/build/components/post-comments/index.js +38 -22
  174. package/build/components/post-comments/index.js.map +1 -1
  175. package/build/components/post-content-information/index.js +8 -5
  176. package/build/components/post-content-information/index.js.map +1 -1
  177. package/build/components/post-discussion/panel.js +54 -38
  178. package/build/components/post-discussion/panel.js.map +1 -1
  179. package/build/components/post-excerpt/check.js +6 -6
  180. package/build/components/post-excerpt/check.js.map +1 -1
  181. package/build/components/post-excerpt/index.js +18 -17
  182. package/build/components/post-excerpt/index.js.map +1 -1
  183. package/build/components/post-excerpt/panel.js +59 -42
  184. package/build/components/post-excerpt/panel.js.map +1 -1
  185. package/build/components/post-excerpt/plugin.js +7 -4
  186. package/build/components/post-excerpt/plugin.js.map +1 -1
  187. package/build/components/post-featured-image/check.js +17 -7
  188. package/build/components/post-featured-image/check.js.map +1 -1
  189. package/build/components/post-featured-image/index.js +77 -49
  190. package/build/components/post-featured-image/index.js.map +1 -1
  191. package/build/components/post-featured-image/panel.js +22 -7
  192. package/build/components/post-featured-image/panel.js.map +1 -1
  193. package/build/components/post-format/check.js +14 -4
  194. package/build/components/post-format/check.js.map +1 -1
  195. package/build/components/post-format/index.js +37 -20
  196. package/build/components/post-format/index.js.map +1 -1
  197. package/build/components/post-format/panel.js +73 -7
  198. package/build/components/post-format/panel.js.map +1 -1
  199. package/build/components/post-last-edited-panel/index.js +7 -4
  200. package/build/components/post-last-edited-panel/index.js.map +1 -1
  201. package/build/components/post-last-revision/check.js +13 -5
  202. package/build/components/post-last-revision/check.js.map +1 -1
  203. package/build/components/post-last-revision/index.js +49 -17
  204. package/build/components/post-last-revision/index.js.map +1 -1
  205. package/build/components/post-last-revision/panel.js +12 -5
  206. package/build/components/post-last-revision/panel.js.map +1 -1
  207. package/build/components/post-locked-modal/index.js +57 -35
  208. package/build/components/post-locked-modal/index.js.map +1 -1
  209. package/build/components/post-panel-row/index.js +11 -8
  210. package/build/components/post-panel-row/index.js.map +1 -1
  211. package/build/components/post-panel-section/index.js +5 -4
  212. package/build/components/post-panel-section/index.js.map +1 -1
  213. package/build/components/post-pending-status/check.js +10 -0
  214. package/build/components/post-pending-status/check.js.map +1 -1
  215. package/build/components/post-pending-status/index.js +14 -7
  216. package/build/components/post-pending-status/index.js.map +1 -1
  217. package/build/components/post-pingbacks/index.js +13 -5
  218. package/build/components/post-pingbacks/index.js.map +1 -1
  219. package/build/components/post-preview-button/index.js +46 -21
  220. package/build/components/post-preview-button/index.js.map +1 -1
  221. package/build/components/post-publish-button/index.js +21 -11
  222. package/build/components/post-publish-button/index.js.map +1 -1
  223. package/build/components/post-publish-button/post-publish-button-or-toggle.js +2 -2
  224. package/build/components/post-publish-button/post-publish-button-or-toggle.js.map +1 -1
  225. package/build/components/post-publish-panel/index.js +47 -33
  226. package/build/components/post-publish-panel/index.js.map +1 -1
  227. package/build/components/post-publish-panel/maybe-category-panel.js +12 -9
  228. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  229. package/build/components/post-publish-panel/maybe-post-format-panel.js +21 -15
  230. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  231. package/build/components/post-publish-panel/maybe-tags-panel.js +13 -10
  232. package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  233. package/build/components/post-publish-panel/maybe-upload-media.js +29 -24
  234. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  235. package/build/components/post-publish-panel/postpublish.js +55 -38
  236. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  237. package/build/components/post-publish-panel/prepublish.js +41 -26
  238. package/build/components/post-publish-panel/prepublish.js.map +1 -1
  239. package/build/components/post-saved-state/index.js +8 -8
  240. package/build/components/post-saved-state/index.js.map +1 -1
  241. package/build/components/post-schedule/check.js +8 -0
  242. package/build/components/post-schedule/check.js.map +1 -1
  243. package/build/components/post-schedule/index.js +30 -5
  244. package/build/components/post-schedule/index.js.map +1 -1
  245. package/build/components/post-schedule/label.js +16 -0
  246. package/build/components/post-schedule/label.js.map +1 -1
  247. package/build/components/post-schedule/panel.js +43 -30
  248. package/build/components/post-schedule/panel.js.map +1 -1
  249. package/build/components/post-slug/check.js +5 -4
  250. package/build/components/post-slug/check.js.map +1 -1
  251. package/build/components/post-slug/index.js +5 -3
  252. package/build/components/post-slug/index.js.map +1 -1
  253. package/build/components/post-slug/panel.js +7 -4
  254. package/build/components/post-slug/panel.js.map +1 -1
  255. package/build/components/post-status/index.js +118 -119
  256. package/build/components/post-status/index.js.map +1 -1
  257. package/build/components/post-sticky/index.js +16 -8
  258. package/build/components/post-sticky/index.js.map +1 -1
  259. package/build/components/post-sticky/panel.js +6 -2
  260. package/build/components/post-sticky/panel.js.map +1 -1
  261. package/build/components/post-switch-to-draft-button/index.js +25 -21
  262. package/build/components/post-switch-to-draft-button/index.js.map +1 -1
  263. package/build/components/post-sync-status/index.js +8 -6
  264. package/build/components/post-sync-status/index.js.map +1 -1
  265. package/build/components/post-taxonomies/flat-term-selector.js +21 -20
  266. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  267. package/build/components/post-taxonomies/hierarchical-term-selector.js +71 -61
  268. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  269. package/build/components/post-taxonomies/index.js +6 -6
  270. package/build/components/post-taxonomies/index.js.map +1 -1
  271. package/build/components/post-taxonomies/most-used-terms.js +19 -15
  272. package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
  273. package/build/components/post-taxonomies/panel.js +15 -11
  274. package/build/components/post-taxonomies/panel.js.map +1 -1
  275. package/build/components/post-template/block-theme.js +42 -32
  276. package/build/components/post-template/block-theme.js.map +1 -1
  277. package/build/components/post-template/classic-theme.js +73 -50
  278. package/build/components/post-template/classic-theme.js.map +1 -1
  279. package/build/components/post-template/create-new-template-modal.js +33 -27
  280. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  281. package/build/components/post-template/create-new-template.js +14 -11
  282. package/build/components/post-template/create-new-template.js.map +1 -1
  283. package/build/components/post-template/panel.js +16 -10
  284. package/build/components/post-template/panel.js.map +1 -1
  285. package/build/components/post-template/reset-default-template.js +5 -4
  286. package/build/components/post-template/reset-default-template.js.map +1 -1
  287. package/build/components/post-template/swap-template-button.js +20 -15
  288. package/build/components/post-template/swap-template-button.js.map +1 -1
  289. package/build/components/post-text-editor/index.js +27 -20
  290. package/build/components/post-text-editor/index.js.map +1 -1
  291. package/build/components/post-title/index.js +29 -17
  292. package/build/components/post-title/index.js.map +1 -1
  293. package/build/components/post-title/index.native.js +81 -57
  294. package/build/components/post-title/index.native.js.map +1 -1
  295. package/build/components/post-title/post-title-raw.js +10 -3
  296. package/build/components/post-title/post-title-raw.js.map +1 -1
  297. package/build/components/post-title/use-post-title-focus.js +7 -0
  298. package/build/components/post-title/use-post-title-focus.js.map +1 -1
  299. package/build/components/post-title/use-post-title.js +5 -0
  300. package/build/components/post-title/use-post-title.js.map +1 -1
  301. package/build/components/post-transform-panel/index.js +11 -11
  302. package/build/components/post-transform-panel/index.js.map +1 -1
  303. package/build/components/post-trash/index.js +19 -15
  304. package/build/components/post-trash/index.js.map +1 -1
  305. package/build/components/post-url/check.js +8 -0
  306. package/build/components/post-url/check.js.map +1 -1
  307. package/build/components/post-url/index.js +98 -73
  308. package/build/components/post-url/index.js.map +1 -1
  309. package/build/components/post-url/label.js +11 -0
  310. package/build/components/post-url/label.js.map +1 -1
  311. package/build/components/post-url/panel.js +56 -26
  312. package/build/components/post-url/panel.js.map +1 -1
  313. package/build/components/post-view-link/index.js +2 -2
  314. package/build/components/post-view-link/index.js.map +1 -1
  315. package/build/components/post-visibility/check.js +9 -0
  316. package/build/components/post-visibility/check.js.map +1 -1
  317. package/build/components/post-visibility/index.js +83 -68
  318. package/build/components/post-visibility/index.js.map +1 -1
  319. package/build/components/post-visibility/label.js +11 -0
  320. package/build/components/post-visibility/label.js.map +1 -1
  321. package/build/components/posts-per-page/index.js +109 -0
  322. package/build/components/posts-per-page/index.js.map +1 -0
  323. package/build/components/preferences-modal/enable-plugin-document-setting-panel.js +7 -5
  324. package/build/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  325. package/build/components/preferences-modal/index.js +124 -102
  326. package/build/components/preferences-modal/index.js.map +1 -1
  327. package/build/components/preview-dropdown/index.js +47 -31
  328. package/build/components/preview-dropdown/index.js.map +1 -1
  329. package/build/components/provider/disable-non-page-content-blocks.js +5 -3
  330. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  331. package/build/components/provider/index.js +94 -20
  332. package/build/components/provider/index.js.map +1 -1
  333. package/build/components/provider/index.native.js +55 -19
  334. package/build/components/provider/index.native.js.map +1 -1
  335. package/build/components/provider/use-block-editor-settings.js +7 -6
  336. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  337. package/build/components/provider/with-registry-provider.js +31 -24
  338. package/build/components/provider/with-registry-provider.js.map +1 -1
  339. package/build/components/resizable-editor/index.js +96 -0
  340. package/build/components/resizable-editor/index.js.map +1 -0
  341. package/build/components/resizable-editor/resize-handle.js +59 -0
  342. package/build/components/resizable-editor/resize-handle.js.map +1 -0
  343. package/build/components/save-publish-panels/index.js +35 -26
  344. package/build/components/save-publish-panels/index.js.map +1 -1
  345. package/build/components/sidebar/header.js +17 -14
  346. package/build/components/sidebar/header.js.map +1 -1
  347. package/build/components/sidebar/index.js +36 -32
  348. package/build/components/sidebar/index.js.map +1 -1
  349. package/build/components/sidebar/post-summary.js +39 -33
  350. package/build/components/sidebar/post-summary.js.map +1 -1
  351. package/build/components/site-discussion/index.js +133 -0
  352. package/build/components/site-discussion/index.js.map +1 -0
  353. package/build/components/start-page-options/index.js +13 -11
  354. package/build/components/start-page-options/index.js.map +1 -1
  355. package/build/components/start-template-options/index.js +29 -23
  356. package/build/components/start-template-options/index.js.map +1 -1
  357. package/build/components/table-of-contents/index.js +4 -4
  358. package/build/components/table-of-contents/index.js.map +1 -1
  359. package/build/components/table-of-contents/panel.js +53 -35
  360. package/build/components/table-of-contents/panel.js.map +1 -1
  361. package/build/components/template-areas/index.js +36 -22
  362. package/build/components/template-areas/index.js.map +1 -1
  363. package/build/components/template-content-panel/index.js +7 -6
  364. package/build/components/template-content-panel/index.js.map +1 -1
  365. package/build/components/template-validation-notice/index.js +25 -21
  366. package/build/components/template-validation-notice/index.js.map +1 -1
  367. package/build/components/text-editor/index.js +73 -0
  368. package/build/components/text-editor/index.js.map +1 -0
  369. package/build/components/time-to-read/index.js +8 -8
  370. package/build/components/time-to-read/index.js.map +1 -1
  371. package/build/components/{editor-canvas → visual-editor}/edit-template-blocks-notification.js +6 -6
  372. package/build/components/visual-editor/edit-template-blocks-notification.js.map +1 -0
  373. package/build/components/{editor-canvas → visual-editor}/index.js +115 -74
  374. package/build/components/visual-editor/index.js.map +1 -0
  375. package/build/components/word-count/index.js +5 -4
  376. package/build/components/word-count/index.js.map +1 -1
  377. package/build/hooks/custom-sources-backwards-compatibility.js +3 -4
  378. package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  379. package/build/hooks/index.js +1 -0
  380. package/build/hooks/index.js.map +1 -1
  381. package/build/hooks/media-upload.js +10 -0
  382. package/build/hooks/media-upload.js.map +1 -0
  383. package/build/hooks/pattern-overrides.js +15 -11
  384. package/build/hooks/pattern-overrides.js.map +1 -1
  385. package/build/private-apis.js +12 -28
  386. package/build/private-apis.js.map +1 -1
  387. package/build/private-apis.native.js +2 -26
  388. package/build/private-apis.native.js.map +1 -1
  389. package/build/store/constants.js +4 -1
  390. package/build/store/constants.js.map +1 -1
  391. package/build/store/private-actions.js +10 -14
  392. package/build/store/private-actions.js.map +1 -1
  393. package/build/store/private-selectors.js +39 -1
  394. package/build/store/private-selectors.js.map +1 -1
  395. package/build/store/selectors.js +1 -1
  396. package/build/store/selectors.js.map +1 -1
  397. package/build/utils/set-nested-value.js +44 -0
  398. package/build/utils/set-nested-value.js.map +1 -0
  399. package/build-module/bindings/index.js +1 -3
  400. package/build-module/bindings/index.js.map +1 -1
  401. package/build-module/bindings/pattern-overrides.js +1 -1
  402. package/build-module/bindings/pattern-overrides.js.map +1 -1
  403. package/build-module/bindings/post-meta.js +38 -2
  404. package/build-module/bindings/post-meta.js.map +1 -1
  405. package/build-module/components/autocompleters/user.js +14 -9
  406. package/build-module/components/autocompleters/user.js.map +1 -1
  407. package/build-module/components/block-manager/category.js +20 -17
  408. package/build-module/components/block-manager/category.js.map +1 -1
  409. package/build-module/components/block-manager/checklist.js +16 -14
  410. package/build-module/components/block-manager/checklist.js.map +1 -1
  411. package/build-module/components/block-manager/index.js +38 -33
  412. package/build-module/components/block-manager/index.js.map +1 -1
  413. package/build-module/components/block-removal-warnings/index.js +2 -2
  414. package/build-module/components/block-removal-warnings/index.js.map +1 -1
  415. package/build-module/components/block-settings-menu/content-only-settings-menu.js +61 -36
  416. package/build-module/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
  417. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js +16 -13
  418. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
  419. package/build-module/components/blog-title/index.js +110 -0
  420. package/build-module/components/blog-title/index.js.map +1 -0
  421. package/build-module/components/collapsible-block-toolbar/index.js +23 -18
  422. package/build-module/components/collapsible-block-toolbar/index.js.map +1 -1
  423. package/build-module/components/commands/index.js +111 -5
  424. package/build-module/components/commands/index.js.map +1 -1
  425. package/build-module/components/create-template-part-modal/index.js +160 -0
  426. package/build-module/components/create-template-part-modal/index.js.map +1 -0
  427. package/build-module/components/create-template-part-modal/utils.js +54 -0
  428. package/build-module/components/create-template-part-modal/utils.js.map +1 -0
  429. package/build-module/components/deprecated.js +2 -2
  430. package/build-module/components/deprecated.js.map +1 -1
  431. package/build-module/components/document-bar/index.js +93 -68
  432. package/build-module/components/document-bar/index.js.map +1 -1
  433. package/build-module/components/document-outline/index.js +125 -120
  434. package/build-module/components/document-outline/index.js.map +1 -1
  435. package/build-module/components/document-outline/item.js +19 -14
  436. package/build-module/components/document-outline/item.js.map +1 -1
  437. package/build-module/components/document-tools/index.js +58 -53
  438. package/build-module/components/document-tools/index.js.map +1 -1
  439. package/build-module/components/editor/index.js +76 -0
  440. package/build-module/components/editor/index.js.map +1 -0
  441. package/build-module/components/editor-help/add-blocks.native.js +16 -11
  442. package/build-module/components/editor-help/add-blocks.native.js.map +1 -1
  443. package/build-module/components/editor-help/customize-blocks.native.js +16 -11
  444. package/build-module/components/editor-help/customize-blocks.native.js.map +1 -1
  445. package/build-module/components/editor-help/help-detail-navigation-screen.native.js +33 -22
  446. package/build-module/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  447. package/build-module/components/editor-help/help-get-support-button.native.js +8 -6
  448. package/build-module/components/editor-help/help-get-support-button.native.js.map +1 -1
  449. package/build-module/components/editor-help/help-section-title.native.js +8 -6
  450. package/build-module/components/editor-help/help-section-title.native.js.map +1 -1
  451. package/build-module/components/editor-help/help-topic-row.native.js +7 -6
  452. package/build-module/components/editor-help/help-topic-row.native.js.map +1 -1
  453. package/build-module/components/editor-help/icon-move-blocks.native.js +7 -6
  454. package/build-module/components/editor-help/icon-move-blocks.native.js.map +1 -1
  455. package/build-module/components/editor-help/index.native.js +96 -76
  456. package/build-module/components/editor-help/index.native.js.map +1 -1
  457. package/build-module/components/editor-help/intro-to-blocks.native.js +43 -37
  458. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  459. package/build-module/components/editor-help/move-blocks.native.js +27 -21
  460. package/build-module/components/editor-help/move-blocks.native.js.map +1 -1
  461. package/build-module/components/editor-help/remove-blocks.native.js +14 -9
  462. package/build-module/components/editor-help/remove-blocks.native.js.map +1 -1
  463. package/build-module/components/editor-help/view-sections.native.js +25 -19
  464. package/build-module/components/editor-help/view-sections.native.js.map +1 -1
  465. package/build-module/components/editor-history/redo.js +2 -2
  466. package/build-module/components/editor-history/redo.js.map +1 -1
  467. package/build-module/components/editor-history/undo.js +2 -2
  468. package/build-module/components/editor-history/undo.js.map +1 -1
  469. package/build-module/components/editor-interface/content-slot-fill.js +16 -0
  470. package/build-module/components/editor-interface/content-slot-fill.js.map +1 -0
  471. package/build-module/components/editor-interface/index.js +170 -0
  472. package/build-module/components/editor-interface/index.js.map +1 -0
  473. package/build-module/components/editor-notices/index.js +25 -9
  474. package/build-module/components/editor-notices/index.js.map +1 -1
  475. package/build-module/components/editor-snackbars/index.js +2 -2
  476. package/build-module/components/editor-snackbars/index.js.map +1 -1
  477. package/build-module/components/entities-saved-states/entity-record-item.js +40 -11
  478. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  479. package/build-module/components/entities-saved-states/entity-type-list.js +26 -22
  480. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  481. package/build-module/components/entities-saved-states/index.js +54 -46
  482. package/build-module/components/entities-saved-states/index.js.map +1 -1
  483. package/build-module/components/error-boundary/index.js +27 -14
  484. package/build-module/components/error-boundary/index.js.map +1 -1
  485. package/build-module/components/error-boundary/index.native.js +46 -35
  486. package/build-module/components/error-boundary/index.native.js.map +1 -1
  487. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +2 -2
  488. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  489. package/build-module/components/global-styles-provider/index.js +82 -17
  490. package/build-module/components/global-styles-provider/index.js.map +1 -1
  491. package/build-module/components/header/back-button.js +31 -0
  492. package/build-module/components/header/back-button.js.map +1 -0
  493. package/build-module/components/header/index.js +86 -60
  494. package/build-module/components/header/index.js.map +1 -1
  495. package/build-module/components/inserter-sidebar/index.js +47 -21
  496. package/build-module/components/inserter-sidebar/index.js.map +1 -1
  497. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +2 -2
  498. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  499. package/build-module/components/keyboard-shortcut-help-modal/index.js +54 -48
  500. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  501. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +32 -26
  502. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  503. package/build-module/components/list-view-sidebar/index.js +60 -47
  504. package/build-module/components/list-view-sidebar/index.js.map +1 -1
  505. package/build-module/components/list-view-sidebar/list-view-outline.js +23 -4
  506. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -1
  507. package/build-module/components/local-autosave-monitor/index.js +15 -2
  508. package/build-module/components/local-autosave-monitor/index.js.map +1 -1
  509. package/build-module/components/media-categories/index.js +1 -1
  510. package/build-module/components/media-categories/index.js.map +1 -1
  511. package/build-module/components/mode-switcher/index.js +9 -8
  512. package/build-module/components/mode-switcher/index.js.map +1 -1
  513. package/build-module/components/more-menu/copy-content-menu-item.js +5 -4
  514. package/build-module/components/more-menu/copy-content-menu-item.js.map +1 -1
  515. package/build-module/components/more-menu/index.js +91 -76
  516. package/build-module/components/more-menu/index.js.map +1 -1
  517. package/build-module/components/more-menu/tools-more-menu-group.js +2 -2
  518. package/build-module/components/more-menu/tools-more-menu-group.js.map +1 -1
  519. package/build-module/components/more-menu/view-more-menu-group.js +2 -2
  520. package/build-module/components/more-menu/view-more-menu-group.js.map +1 -1
  521. package/build-module/components/offline-status/index.native.js +12 -9
  522. package/build-module/components/offline-status/index.native.js.map +1 -1
  523. package/build-module/components/page-attributes/order.js +90 -17
  524. package/build-module/components/page-attributes/order.js.map +1 -1
  525. package/build-module/components/page-attributes/panel.js +13 -21
  526. package/build-module/components/page-attributes/panel.js.map +1 -1
  527. package/build-module/components/page-attributes/parent.js +88 -5
  528. package/build-module/components/page-attributes/parent.js.map +1 -1
  529. package/build-module/components/pattern-duplicate-modal/index.js +51 -0
  530. package/build-module/components/pattern-duplicate-modal/index.js.map +1 -0
  531. package/build-module/components/pattern-overrides-panel/index.js +2 -2
  532. package/build-module/components/pattern-overrides-panel/index.js.map +1 -1
  533. package/build-module/components/pattern-rename-modal/index.js +50 -0
  534. package/build-module/components/pattern-rename-modal/index.js.map +1 -0
  535. package/build-module/components/plugin-document-setting-panel/index.js +19 -12
  536. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -1
  537. package/build-module/components/plugin-post-publish-panel/index.js +10 -7
  538. package/build-module/components/plugin-post-publish-panel/index.js.map +1 -1
  539. package/build-module/components/plugin-post-status-info/index.js +7 -4
  540. package/build-module/components/plugin-post-status-info/index.js.map +1 -1
  541. package/build-module/components/plugin-pre-publish-panel/index.js +10 -7
  542. package/build-module/components/plugin-pre-publish-panel/index.js.map +1 -1
  543. package/build-module/components/plugin-sidebar/index.js +2 -2
  544. package/build-module/components/plugin-sidebar/index.js.map +1 -1
  545. package/build-module/components/plugin-sidebar-more-menu-item/index.js +2 -3
  546. package/build-module/components/plugin-sidebar-more-menu-item/index.js.map +1 -1
  547. package/build-module/components/post-actions/actions.js +380 -309
  548. package/build-module/components/post-actions/actions.js.map +1 -1
  549. package/build-module/components/post-actions/export-pattern-action.js +58 -0
  550. package/build-module/components/post-actions/export-pattern-action.js.map +1 -0
  551. package/build-module/components/post-actions/export-pattern-action.native.js +5 -0
  552. package/build-module/components/post-actions/export-pattern-action.native.js.map +1 -0
  553. package/build-module/components/post-actions/index.js +68 -50
  554. package/build-module/components/post-actions/index.js.map +1 -1
  555. package/build-module/components/post-author/check.js +5 -4
  556. package/build-module/components/post-author/check.js.map +1 -1
  557. package/build-module/components/post-author/combobox.js +4 -3
  558. package/build-module/components/post-author/combobox.js.map +1 -1
  559. package/build-module/components/post-author/hook.js +2 -1
  560. package/build-module/components/post-author/hook.js.map +1 -1
  561. package/build-module/components/post-author/index.js +3 -3
  562. package/build-module/components/post-author/index.js.map +1 -1
  563. package/build-module/components/post-author/panel.js +72 -4
  564. package/build-module/components/post-author/panel.js.map +1 -1
  565. package/build-module/components/post-author/select.js +4 -3
  566. package/build-module/components/post-author/select.js.map +1 -1
  567. package/build-module/components/post-card-panel/index.js +54 -20
  568. package/build-module/components/post-card-panel/index.js.map +1 -1
  569. package/build-module/components/post-comments/index.js +40 -22
  570. package/build-module/components/post-comments/index.js.map +1 -1
  571. package/build-module/components/post-content-information/index.js +8 -5
  572. package/build-module/components/post-content-information/index.js.map +1 -1
  573. package/build-module/components/post-discussion/panel.js +56 -39
  574. package/build-module/components/post-discussion/panel.js.map +1 -1
  575. package/build-module/components/post-excerpt/check.js +5 -4
  576. package/build-module/components/post-excerpt/check.js.map +1 -1
  577. package/build-module/components/post-excerpt/index.js +17 -15
  578. package/build-module/components/post-excerpt/index.js.map +1 -1
  579. package/build-module/components/post-excerpt/panel.js +60 -40
  580. package/build-module/components/post-excerpt/panel.js.map +1 -1
  581. package/build-module/components/post-excerpt/plugin.js +7 -4
  582. package/build-module/components/post-excerpt/plugin.js.map +1 -1
  583. package/build-module/components/post-featured-image/check.js +18 -6
  584. package/build-module/components/post-featured-image/check.js.map +1 -1
  585. package/build-module/components/post-featured-image/index.js +78 -49
  586. package/build-module/components/post-featured-image/index.js.map +1 -1
  587. package/build-module/components/post-featured-image/panel.js +22 -7
  588. package/build-module/components/post-featured-image/panel.js.map +1 -1
  589. package/build-module/components/post-format/check.js +14 -4
  590. package/build-module/components/post-format/check.js.map +1 -1
  591. package/build-module/components/post-format/index.js +39 -21
  592. package/build-module/components/post-format/index.js.map +1 -1
  593. package/build-module/components/post-format/panel.js +75 -7
  594. package/build-module/components/post-format/panel.js.map +1 -1
  595. package/build-module/components/post-last-edited-panel/index.js +7 -4
  596. package/build-module/components/post-last-edited-panel/index.js.map +1 -1
  597. package/build-module/components/post-last-revision/check.js +14 -4
  598. package/build-module/components/post-last-revision/check.js.map +1 -1
  599. package/build-module/components/post-last-revision/index.js +48 -17
  600. package/build-module/components/post-last-revision/index.js.map +1 -1
  601. package/build-module/components/post-last-revision/panel.js +13 -4
  602. package/build-module/components/post-last-revision/panel.js.map +1 -1
  603. package/build-module/components/post-locked-modal/index.js +60 -34
  604. package/build-module/components/post-locked-modal/index.js.map +1 -1
  605. package/build-module/components/post-panel-row/index.js +12 -8
  606. package/build-module/components/post-panel-row/index.js.map +1 -1
  607. package/build-module/components/post-panel-section/index.js +5 -4
  608. package/build-module/components/post-panel-section/index.js.map +1 -1
  609. package/build-module/components/post-pending-status/check.js +11 -0
  610. package/build-module/components/post-pending-status/check.js.map +1 -1
  611. package/build-module/components/post-pending-status/index.js +15 -7
  612. package/build-module/components/post-pending-status/index.js.map +1 -1
  613. package/build-module/components/post-pingbacks/index.js +13 -5
  614. package/build-module/components/post-pingbacks/index.js.map +1 -1
  615. package/build-module/components/post-preview-button/index.js +48 -21
  616. package/build-module/components/post-preview-button/index.js.map +1 -1
  617. package/build-module/components/post-publish-button/index.js +22 -11
  618. package/build-module/components/post-publish-button/index.js.map +1 -1
  619. package/build-module/components/post-publish-button/post-publish-button-or-toggle.js +2 -2
  620. package/build-module/components/post-publish-button/post-publish-button-or-toggle.js.map +1 -1
  621. package/build-module/components/post-publish-panel/index.js +49 -33
  622. package/build-module/components/post-publish-panel/index.js.map +1 -1
  623. package/build-module/components/post-publish-panel/maybe-category-panel.js +13 -9
  624. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  625. package/build-module/components/post-publish-panel/maybe-post-format-panel.js +22 -15
  626. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  627. package/build-module/components/post-publish-panel/maybe-tags-panel.js +14 -10
  628. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  629. package/build-module/components/post-publish-panel/maybe-upload-media.js +30 -24
  630. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  631. package/build-module/components/post-publish-panel/postpublish.js +57 -38
  632. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  633. package/build-module/components/post-publish-panel/prepublish.js +43 -26
  634. package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
  635. package/build-module/components/post-saved-state/index.js +8 -6
  636. package/build-module/components/post-saved-state/index.js.map +1 -1
  637. package/build-module/components/post-schedule/check.js +9 -0
  638. package/build-module/components/post-schedule/check.js.map +1 -1
  639. package/build-module/components/post-schedule/index.js +30 -6
  640. package/build-module/components/post-schedule/index.js.map +1 -1
  641. package/build-module/components/post-schedule/label.js +17 -0
  642. package/build-module/components/post-schedule/label.js.map +1 -1
  643. package/build-module/components/post-schedule/panel.js +43 -30
  644. package/build-module/components/post-schedule/panel.js.map +1 -1
  645. package/build-module/components/post-slug/check.js +5 -4
  646. package/build-module/components/post-slug/check.js.map +1 -1
  647. package/build-module/components/post-slug/index.js +5 -3
  648. package/build-module/components/post-slug/index.js.map +1 -1
  649. package/build-module/components/post-slug/panel.js +7 -4
  650. package/build-module/components/post-slug/panel.js.map +1 -1
  651. package/build-module/components/post-status/index.js +121 -120
  652. package/build-module/components/post-status/index.js.map +1 -1
  653. package/build-module/components/post-sticky/index.js +17 -9
  654. package/build-module/components/post-sticky/index.js.map +1 -1
  655. package/build-module/components/post-sticky/panel.js +6 -2
  656. package/build-module/components/post-sticky/panel.js.map +1 -1
  657. package/build-module/components/post-switch-to-draft-button/index.js +27 -21
  658. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  659. package/build-module/components/post-sync-status/index.js +8 -6
  660. package/build-module/components/post-sync-status/index.js.map +1 -1
  661. package/build-module/components/post-taxonomies/flat-term-selector.js +22 -18
  662. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  663. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +71 -59
  664. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  665. package/build-module/components/post-taxonomies/index.js +6 -6
  666. package/build-module/components/post-taxonomies/index.js.map +1 -1
  667. package/build-module/components/post-taxonomies/most-used-terms.js +20 -15
  668. package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
  669. package/build-module/components/post-taxonomies/panel.js +15 -11
  670. package/build-module/components/post-taxonomies/panel.js.map +1 -1
  671. package/build-module/components/post-template/block-theme.js +44 -32
  672. package/build-module/components/post-template/block-theme.js.map +1 -1
  673. package/build-module/components/post-template/classic-theme.js +74 -50
  674. package/build-module/components/post-template/classic-theme.js.map +1 -1
  675. package/build-module/components/post-template/create-new-template-modal.js +34 -27
  676. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  677. package/build-module/components/post-template/create-new-template.js +16 -11
  678. package/build-module/components/post-template/create-new-template.js.map +1 -1
  679. package/build-module/components/post-template/panel.js +17 -9
  680. package/build-module/components/post-template/panel.js.map +1 -1
  681. package/build-module/components/post-template/reset-default-template.js +5 -4
  682. package/build-module/components/post-template/reset-default-template.js.map +1 -1
  683. package/build-module/components/post-template/swap-template-button.js +22 -15
  684. package/build-module/components/post-template/swap-template-button.js.map +1 -1
  685. package/build-module/components/post-text-editor/index.js +30 -19
  686. package/build-module/components/post-text-editor/index.js.map +1 -1
  687. package/build-module/components/post-title/index.js +29 -18
  688. package/build-module/components/post-title/index.js.map +1 -1
  689. package/build-module/components/post-title/index.native.js +81 -57
  690. package/build-module/components/post-title/index.native.js.map +1 -1
  691. package/build-module/components/post-title/post-title-raw.js +11 -2
  692. package/build-module/components/post-title/post-title-raw.js.map +1 -1
  693. package/build-module/components/post-title/use-post-title-focus.js +8 -0
  694. package/build-module/components/post-title/use-post-title-focus.js.map +1 -1
  695. package/build-module/components/post-title/use-post-title.js +6 -0
  696. package/build-module/components/post-title/use-post-title.js.map +1 -1
  697. package/build-module/components/post-transform-panel/index.js +12 -12
  698. package/build-module/components/post-transform-panel/index.js.map +1 -1
  699. package/build-module/components/post-trash/index.js +21 -15
  700. package/build-module/components/post-trash/index.js.map +1 -1
  701. package/build-module/components/post-url/check.js +9 -0
  702. package/build-module/components/post-url/check.js.map +1 -1
  703. package/build-module/components/post-url/index.js +100 -72
  704. package/build-module/components/post-url/index.js.map +1 -1
  705. package/build-module/components/post-url/label.js +12 -0
  706. package/build-module/components/post-url/label.js.map +1 -1
  707. package/build-module/components/post-url/panel.js +59 -25
  708. package/build-module/components/post-url/panel.js.map +1 -1
  709. package/build-module/components/post-view-link/index.js +2 -2
  710. package/build-module/components/post-view-link/index.js.map +1 -1
  711. package/build-module/components/post-visibility/check.js +10 -0
  712. package/build-module/components/post-visibility/check.js.map +1 -1
  713. package/build-module/components/post-visibility/index.js +85 -67
  714. package/build-module/components/post-visibility/index.js.map +1 -1
  715. package/build-module/components/post-visibility/label.js +12 -0
  716. package/build-module/components/post-visibility/label.js.map +1 -1
  717. package/build-module/components/posts-per-page/index.js +103 -0
  718. package/build-module/components/posts-per-page/index.js.map +1 -0
  719. package/build-module/components/preferences-modal/enable-plugin-document-setting-panel.js +7 -5
  720. package/build-module/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  721. package/build-module/components/preferences-modal/index.js +126 -102
  722. package/build-module/components/preferences-modal/index.js.map +1 -1
  723. package/build-module/components/preview-dropdown/index.js +49 -31
  724. package/build-module/components/preview-dropdown/index.js.map +1 -1
  725. package/build-module/components/provider/disable-non-page-content-blocks.js +5 -3
  726. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  727. package/build-module/components/provider/index.js +96 -20
  728. package/build-module/components/provider/index.js.map +1 -1
  729. package/build-module/components/provider/index.native.js +58 -20
  730. package/build-module/components/provider/index.native.js.map +1 -1
  731. package/build-module/components/provider/use-block-editor-settings.js +7 -6
  732. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  733. package/build-module/components/provider/with-registry-provider.js +33 -26
  734. package/build-module/components/provider/with-registry-provider.js.map +1 -1
  735. package/build-module/components/resizable-editor/index.js +89 -0
  736. package/build-module/components/resizable-editor/index.js.map +1 -0
  737. package/build-module/components/resizable-editor/resize-handle.js +54 -0
  738. package/build-module/components/resizable-editor/resize-handle.js.map +1 -0
  739. package/build-module/components/save-publish-panels/index.js +37 -26
  740. package/build-module/components/save-publish-panels/index.js.map +1 -1
  741. package/build-module/components/sidebar/header.js +18 -14
  742. package/build-module/components/sidebar/header.js.map +1 -1
  743. package/build-module/components/sidebar/index.js +36 -31
  744. package/build-module/components/sidebar/index.js.map +1 -1
  745. package/build-module/components/sidebar/post-summary.js +34 -25
  746. package/build-module/components/sidebar/post-summary.js.map +1 -1
  747. package/build-module/components/site-discussion/index.js +127 -0
  748. package/build-module/components/site-discussion/index.js.map +1 -0
  749. package/build-module/components/start-page-options/index.js +13 -11
  750. package/build-module/components/start-page-options/index.js.map +1 -1
  751. package/build-module/components/start-template-options/index.js +30 -23
  752. package/build-module/components/start-template-options/index.js.map +1 -1
  753. package/build-module/components/table-of-contents/index.js +4 -4
  754. package/build-module/components/table-of-contents/index.js.map +1 -1
  755. package/build-module/components/table-of-contents/panel.js +55 -35
  756. package/build-module/components/table-of-contents/panel.js.map +1 -1
  757. package/build-module/components/template-areas/index.js +37 -22
  758. package/build-module/components/template-areas/index.js.map +1 -1
  759. package/build-module/components/template-content-panel/index.js +7 -6
  760. package/build-module/components/template-content-panel/index.js.map +1 -1
  761. package/build-module/components/template-validation-notice/index.js +27 -21
  762. package/build-module/components/template-validation-notice/index.js.map +1 -1
  763. package/build-module/components/text-editor/index.js +66 -0
  764. package/build-module/components/text-editor/index.js.map +1 -0
  765. package/build-module/components/time-to-read/index.js +7 -6
  766. package/build-module/components/time-to-read/index.js.map +1 -1
  767. package/build-module/components/{editor-canvas → visual-editor}/edit-template-blocks-notification.js +5 -4
  768. package/build-module/components/visual-editor/edit-template-blocks-notification.js.map +1 -0
  769. package/build-module/components/{editor-canvas → visual-editor}/index.js +118 -75
  770. package/build-module/components/visual-editor/index.js.map +1 -0
  771. package/build-module/components/word-count/index.js +5 -4
  772. package/build-module/components/word-count/index.js.map +1 -1
  773. package/build-module/hooks/custom-sources-backwards-compatibility.js +2 -2
  774. package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  775. package/build-module/hooks/index.js +1 -0
  776. package/build-module/hooks/index.js.map +1 -1
  777. package/build-module/hooks/media-upload.js +7 -0
  778. package/build-module/hooks/media-upload.js.map +1 -0
  779. package/build-module/hooks/pattern-overrides.js +17 -11
  780. package/build-module/hooks/pattern-overrides.js.map +1 -1
  781. package/build-module/private-apis.js +12 -28
  782. package/build-module/private-apis.js.map +1 -1
  783. package/build-module/private-apis.native.js +2 -26
  784. package/build-module/private-apis.native.js.map +1 -1
  785. package/build-module/store/constants.js +3 -0
  786. package/build-module/store/constants.js.map +1 -1
  787. package/build-module/store/private-actions.js +10 -14
  788. package/build-module/store/private-actions.js.map +1 -1
  789. package/build-module/store/private-selectors.js +38 -1
  790. package/build-module/store/private-selectors.js.map +1 -1
  791. package/build-module/store/selectors.js +1 -1
  792. package/build-module/store/selectors.js.map +1 -1
  793. package/build-module/utils/set-nested-value.js +38 -0
  794. package/build-module/utils/set-nested-value.js.map +1 -0
  795. package/build-style/style-rtl.css +344 -129
  796. package/build-style/style.css +344 -129
  797. package/package.json +40 -36
  798. package/src/bindings/index.js +1 -4
  799. package/src/bindings/pattern-overrides.js +1 -1
  800. package/src/bindings/post-meta.js +46 -6
  801. package/src/components/block-settings-menu/content-only-settings-menu.js +26 -12
  802. package/src/components/blog-title/index.js +124 -0
  803. package/src/components/blog-title/style.scss +4 -0
  804. package/src/components/collapsible-block-toolbar/style.scss +3 -1
  805. package/src/components/commands/index.js +113 -3
  806. package/src/components/create-template-part-modal/index.js +205 -0
  807. package/src/components/create-template-part-modal/style.scss +69 -0
  808. package/src/components/create-template-part-modal/test/utils.js +60 -0
  809. package/src/components/create-template-part-modal/utils.js +67 -0
  810. package/src/components/document-bar/index.js +32 -21
  811. package/src/components/document-tools/index.js +2 -7
  812. package/src/components/editor/index.js +93 -0
  813. package/src/components/editor-help/help-get-support-button.native.js +1 -1
  814. package/src/components/editor-interface/content-slot-fill.js +15 -0
  815. package/src/components/editor-interface/index.js +230 -0
  816. package/src/components/editor-interface/style.scss +3 -0
  817. package/src/components/editor-notices/index.js +10 -0
  818. package/src/components/entities-saved-states/entity-record-item.js +45 -16
  819. package/src/components/entities-saved-states/style.scss +11 -5
  820. package/src/components/error-boundary/index.js +10 -0
  821. package/src/components/error-boundary/index.native.js +1 -1
  822. package/src/components/global-styles-provider/index.js +100 -8
  823. package/src/components/header/back-button.js +32 -0
  824. package/src/components/header/index.js +26 -18
  825. package/src/components/header/style.scss +6 -1
  826. package/src/components/inserter-sidebar/index.js +65 -32
  827. package/src/components/inserter-sidebar/style.scss +0 -13
  828. package/src/components/local-autosave-monitor/index.js +12 -0
  829. package/src/components/media-categories/index.js +1 -3
  830. package/src/components/page-attributes/order.js +79 -3
  831. package/src/components/page-attributes/panel.js +10 -26
  832. package/src/components/page-attributes/parent.js +98 -2
  833. package/src/components/page-attributes/style.scss +19 -0
  834. package/src/components/pattern-duplicate-modal/index.js +50 -0
  835. package/src/components/pattern-rename-modal/index.js +44 -0
  836. package/src/components/post-actions/actions.js +308 -261
  837. package/src/components/post-actions/export-pattern-action.js +74 -0
  838. package/src/components/post-actions/export-pattern-action.native.js +4 -0
  839. package/src/components/post-actions/index.js +16 -5
  840. package/src/components/post-author/combobox.js +1 -0
  841. package/src/components/post-author/hook.js +1 -1
  842. package/src/components/post-author/panel.js +63 -2
  843. package/src/components/post-author/select.js +1 -0
  844. package/src/components/post-author/style.scss +6 -0
  845. package/src/components/post-card-panel/index.js +69 -22
  846. package/src/components/post-card-panel/style.scss +23 -1
  847. package/src/components/post-comments/index.js +5 -0
  848. package/src/components/post-discussion/panel.js +9 -2
  849. package/src/components/post-discussion/style.scss +1 -3
  850. package/src/components/post-excerpt/panel.js +45 -48
  851. package/src/components/post-excerpt/style.scss +0 -17
  852. package/src/components/post-featured-image/check.js +9 -0
  853. package/src/components/post-featured-image/index.js +15 -0
  854. package/src/components/post-featured-image/panel.js +9 -0
  855. package/src/components/post-format/check.js +8 -0
  856. package/src/components/post-format/index.js +15 -4
  857. package/src/components/post-format/panel.js +71 -6
  858. package/src/components/post-format/style.scss +10 -4
  859. package/src/components/post-last-revision/check.js +8 -0
  860. package/src/components/post-last-revision/index.js +31 -3
  861. package/src/components/post-last-revision/panel.js +5 -0
  862. package/src/components/post-last-revision/style.scss +4 -0
  863. package/src/components/post-locked-modal/index.js +6 -0
  864. package/src/components/post-panel-row/style.scss +16 -0
  865. package/src/components/post-pending-status/check.js +10 -0
  866. package/src/components/post-pending-status/index.js +5 -0
  867. package/src/components/post-pingbacks/index.js +6 -0
  868. package/src/components/post-preview-button/index.js +16 -0
  869. package/src/components/post-preview-button/test/index.js +10 -2
  870. package/src/components/post-publish-button/index.js +17 -4
  871. package/src/components/post-publish-panel/index.js +2 -0
  872. package/src/components/post-publish-panel/maybe-tags-panel.js +1 -1
  873. package/src/components/post-publish-panel/style.scss +28 -36
  874. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +3 -3
  875. package/src/components/post-schedule/check.js +8 -0
  876. package/src/components/post-schedule/index.js +30 -3
  877. package/src/components/post-schedule/label.js +15 -0
  878. package/src/components/post-schedule/panel.js +9 -1
  879. package/src/components/post-schedule/style.scss +0 -11
  880. package/src/components/post-status/index.js +30 -52
  881. package/src/components/post-status/style.scss +4 -34
  882. package/src/components/post-sticky/index.js +12 -7
  883. package/src/components/post-sticky/style.scss +3 -0
  884. package/src/components/post-sync-status/index.js +2 -8
  885. package/src/components/post-template/block-theme.js +1 -0
  886. package/src/components/post-template/classic-theme.js +15 -0
  887. package/src/components/post-template/panel.js +5 -0
  888. package/src/components/post-template/style.scss +0 -8
  889. package/src/components/post-text-editor/index.js +5 -0
  890. package/src/components/post-title/index.js +8 -1
  891. package/src/components/post-title/index.native.js +70 -35
  892. package/src/components/post-title/post-title-raw.js +8 -0
  893. package/src/components/post-title/use-post-title-focus.js +7 -0
  894. package/src/components/post-title/use-post-title.js +5 -0
  895. package/src/components/post-transform-panel/index.js +2 -10
  896. package/src/components/post-url/check.js +8 -0
  897. package/src/components/post-url/index.js +41 -24
  898. package/src/components/post-url/label.js +10 -0
  899. package/src/components/post-url/panel.js +18 -5
  900. package/src/components/post-url/style.scss +0 -9
  901. package/src/components/post-visibility/check.js +9 -0
  902. package/src/components/post-visibility/index.js +7 -0
  903. package/src/components/post-visibility/label.js +10 -0
  904. package/src/components/posts-per-page/index.js +101 -0
  905. package/src/components/posts-per-page/style.scss +4 -0
  906. package/src/components/provider/disable-non-page-content-blocks.js +9 -4
  907. package/src/components/provider/index.js +68 -0
  908. package/src/components/provider/index.native.js +43 -2
  909. package/src/components/provider/use-block-editor-settings.js +4 -6
  910. package/src/components/provider/with-registry-provider.js +32 -31
  911. package/src/components/resizable-editor/index.js +90 -0
  912. package/src/components/resizable-editor/resize-handle.js +62 -0
  913. package/src/components/resizable-editor/style.scss +53 -0
  914. package/src/components/save-publish-panels/index.js +10 -2
  915. package/src/components/save-publish-panels/style.scss +0 -8
  916. package/src/components/sidebar/index.js +0 -4
  917. package/src/components/sidebar/post-summary.js +16 -21
  918. package/src/components/sidebar/style.scss +1 -1
  919. package/src/components/site-discussion/index.js +138 -0
  920. package/src/components/site-discussion/style.scss +19 -0
  921. package/src/components/start-template-options/style.scss +0 -8
  922. package/src/components/template-areas/index.js +15 -6
  923. package/src/components/text-editor/index.js +57 -0
  924. package/src/components/text-editor/style.scss +71 -0
  925. package/src/components/{editor-canvas → visual-editor}/index.js +177 -108
  926. package/src/components/visual-editor/style.scss +37 -0
  927. package/src/hooks/index.js +1 -0
  928. package/src/hooks/media-upload.js +11 -0
  929. package/src/private-apis.js +12 -28
  930. package/src/private-apis.native.js +2 -26
  931. package/src/store/constants.js +7 -0
  932. package/src/store/private-actions.js +22 -50
  933. package/src/store/private-selectors.js +45 -0
  934. package/src/store/selectors.js +1 -1
  935. package/src/style.scss +10 -0
  936. package/src/utils/set-nested-value.js +39 -0
  937. package/build/components/editor-canvas/edit-template-blocks-notification.js.map +0 -1
  938. package/build/components/editor-canvas/index.js.map +0 -1
  939. package/build/components/post-trash/panel.js +0 -18
  940. package/build/components/post-trash/panel.js.map +0 -1
  941. package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +0 -1
  942. package/build-module/components/editor-canvas/index.js.map +0 -1
  943. package/build-module/components/post-trash/panel.js +0 -10
  944. package/build-module/components/post-trash/panel.js.map +0 -1
  945. package/src/components/post-trash/panel.js +0 -13
  946. package/src/components/provider/README.md +0 -37
  947. /package/src/components/{editor-canvas → visual-editor}/edit-template-blocks-notification.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["external","trash","backup","addQueryArgs","useDispatch","useSelect","decodeEntities","store","coreStore","__","_n","sprintf","_x","noticesStore","useMemo","useState","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","TEMPLATE_ORIGINS","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_POST_TYPE","editorStore","unlock","isTemplateRevertable","getItemTitle","item","title","rendered","trashPostAction","id","label","isPrimary","icon","isEligible","status","supportsBulk","hideModalHeader","RenderModal","items","posts","closeModal","onActionStart","onActionPerformed","isBusy","setIsBusy","createSuccessNotice","createErrorNotice","deleteEntityRecord","createElement","spacing","length","justify","variant","onClick","disabled","__experimentalIsFocusable","promiseResult","Promise","allSettled","map","post","type","throwOnError","every","successMessage","errorMessage","reason","message","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","usePermanentlyDeletePostAction","callback","force","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","viewPostAction","window","open","link","postRevisionsAction","_post$_links$predeces","_post$_links$version","lastRevisionId","_links","revisionsCount","count","href","revision","document","location","renamePostAction","originalTitle","setTitle","onRename","event","preventDefault","error","code","onSubmit","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","duplicatePostAction","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItem","slug","author","comment_status","content","raw","excerpt","meta","parent","password","template","format","featured_media","menu_order","ping_status","categories","tags","placeholder","resetTemplateAction","revertTemplate","onConfirm","allowUndo","fallbackErrorMessage","isTemplateRemovable","source","custom","has_theme_file","deleteTemplateAction","templates","removeTemplates","renameTemplateAction","is_custom","editedTitle","setEditedTitle","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","usePostActions","postType","postTypeObject","select","getPostType","permanentlyDeletePostAction","restorePostAction","isTemplateOrTemplatePart","includes","isPattern","isLoaded","actions","viewable","process","env","IS_GUTENBERG_PLUGIN","Boolean","i","existingCallback","_onActionPerformed","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState } from '@wordpress/element';\n\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tPATTERN_POST_TYPE,\n} from '../../store/constants';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\nconst trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems: posts,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ posts.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The page's title.\n\t\t\t\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of pages (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete %d page?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete %d pages?',\n\t\t\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( posts );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to the Trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of pages. */\n\t\t\t\t\t\t\t\t\t\t__( '%s pages moved to the Trash.' ),\n\t\t\t\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t\t\t\t__( '%s posts moved to the Trash.' ),\n\t\t\t\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'trash-post-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\tpromiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the post to the trash.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the posts to the trash.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the posts to the trash: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Some errors occurred while moving the pages to the trash: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction usePermanentlyDeletePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'permanently-delete-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n}\n\nfunction useRestorePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tawait Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( posts.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'restore-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nconst viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tlabel: __( 'View revisions' ),\n\tisPrimary: false,\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst renamePostAction = {\n\tid: 'rename-post',\n\tlabel: __( 'Rename' ),\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst originalTitle = decodeEntities(\n\t\t\ttypeof item.title === 'string' ? item.title : item.title.rendered\n\t\t);\n\t\tconst [ title, setTitle ] = useState( () => originalTitle );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice( __( 'Name updated' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tonActionPerformed?.( items );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while updating the name' );\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst duplicatePostAction = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst [ title, setTitle ] = useState(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: Existing item title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\tgetItemTitle( item )\n\t\t\t)\n\t\t);\n\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\t\tauthor: item.author,\n\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\tcategories: item.categories,\n\t\t\t\t\t\ttags: item.tags,\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tnewItem.title?.rendered || title\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: isTemplateRevertable,\n\ticon: backup,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { revertTemplate } = unlock( useDispatch( editorStore ) );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( items[ 0 ].title.rendered )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __( 'Reset to default and clear all customizations?' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\tisBusy( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\n/**\n * Check if a template is removable.\n * Copy from packages/edit-site/src/utils/is-template-removable.js.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is revertable.\n */\nfunction isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\ttemplate.source === TEMPLATE_ORIGINS.custom && ! template.has_theme_file\n\t);\n}\n\nconst deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisEligible: isTemplateRemovable,\n\ticon: trash,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems: templates,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { removeTemplates } = unlock( useDispatch( editorStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( templates );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait removeTemplates( templates, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonActionPerformed?.( templates );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nconst renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal, onActionPerformed } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tonActionPerformed?.( templates );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nexport function usePostActions( postType, onActionPerformed ) {\n\tconst { postTypeObject } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tpostTypeObject: getPostType( postType ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst permanentlyDeletePostAction = usePermanentlyDeletePostAction();\n\tconst restorePostAction = useRestorePostAction();\n\tconst isTemplateOrTemplatePart = [\n\t\tTEMPLATE_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t].includes( postType );\n\tconst isPattern = postType === PATTERN_POST_TYPE;\n\tconst isLoaded = !! postTypeObject;\n\treturn useMemo( () => {\n\t\tif ( ! isLoaded ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst actions = [\n\t\t\tisTemplateOrTemplatePart && resetTemplateAction,\n\t\t\tpostTypeObject?.viewable && viewPostAction,\n\t\t\t! isTemplateOrTemplatePart && restorePostAction,\n\t\t\tisTemplateOrTemplatePart && deleteTemplateAction,\n\t\t\t! isTemplateOrTemplatePart && permanentlyDeletePostAction,\n\t\t\tpostRevisionsAction,\n\t\t\tprocess.env.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! isTemplateOrTemplatePart &&\n\t\t\t\t ! isPattern &&\n\t\t\t\t duplicatePostAction\n\t\t\t\t: false,\n\t\t\t! isTemplateOrTemplatePart && renamePostAction,\n\t\t\tisTemplateOrTemplatePart && renameTemplateAction,\n\t\t\t! isTemplateOrTemplatePart && trashPostAction,\n\t\t].filter( Boolean );\n\n\t\tif ( onActionPerformed ) {\n\t\t\tfor ( let i = 0; i < actions.length; ++i ) {\n\t\t\t\tif ( actions[ i ].callback ) {\n\t\t\t\t\tconst existingCallback = actions[ i ].callback;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tcallback: ( items, _onActionPerformed ) => {\n\t\t\t\t\t\t\texistingCallback( items, ( _items ) => {\n\t\t\t\t\t\t\t\tif ( _onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t_onActionPerformed( _items );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonActionPerformed( actions[ i ].id, _items );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif ( actions[ i ].RenderModal ) {\n\t\t\t\t\tconst ExistingRenderModal = actions[ i ].RenderModal;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tRenderModal: ( props ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ExistingRenderModal\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tonActionPerformed={ ( _items ) => {\n\t\t\t\t\t\t\t\t\t\tif ( props.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t\t_items\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t}, [\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tpermanentlyDeletePostAction,\n\t\trestorePostAction,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["external","trash","backup","addQueryArgs","useDispatch","useSelect","decodeEntities","store","coreStore","__","_n","sprintf","_x","noticesStore","useMemo","useState","privateApis","patternsPrivateApis","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","TEMPLATE_ORIGINS","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_POST_TYPE","editorStore","unlock","isTemplateRevertable","exportPatternAsJSONAction","CreateTemplatePartModalContents","jsx","_jsx","jsxs","_jsxs","PATTERN_TYPES","CreatePatternModalContents","useDuplicatePatternProps","isTemplateRemovable","template","source","templatePart","includes","custom","has_theme_file","canDeleteOrReset","item","isTemplatePart","type","isUserPattern","user","isCustom","getItemTitle","title","rendered","deletePostAction","id","label","isPrimary","icon","isEligible","post","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onActionStart","onActionPerformed","isBusy","setIsBusy","removeTemplates","spacing","children","length","justify","variant","onClick","disabled","__experimentalIsFocusable","allowUndo","trashPostAction","status","createSuccessNotice","createErrorNotice","deleteEntityRecord","promiseResult","Promise","allSettled","map","throwOnError","every","successMessage","errorMessage","reason","message","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","usePermanentlyDeletePostAction","callback","posts","force","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","viewPostAction","window","open","link","postRevisionsAction","_items$0$_links$versi","revisionsCount","_links","count","_post$_links$predeces","_post$_links$version","lastRevisionId","href","revision","document","location","renamePostAction","Object","values","is_custom","isCustomPattern","hasThemeFile","originalTitle","setTitle","onRename","event","preventDefault","error","code","onSubmit","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","duplicatePostAction","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItem","slug","author","comment_status","content","raw","excerpt","meta","parent","password","format","featured_media","menu_order","ping_status","categories","tags","placeholder","isTemplatePartRevertable","resetTemplateAction","revertTemplate","onConfirm","fallbackErrorMessage","duplicatePatternAction","modalHeader","isThemePattern","theme","duplicatedProps","pattern","patternPost","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","blocks","defaultArea","area","defaultTitle","onCreate","onError","usePostActions","postType","postTypeObject","select","getPostType","permanentlyDeletePostAction","restorePostAction","isTemplateOrTemplatePart","isPattern","isLoaded","supportsRevisions","supports","revisions","supportsTitle","actions","viewable","globalThis","IS_GUTENBERG_PLUGIN","Boolean","i","existingCallback","_onActionPerformed","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tPATTERN_POST_TYPE,\n} from '../../store/constants';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\nimport { exportPatternAsJSONAction } from './export-pattern-action';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\n// Patterns.\nconst { PATTERN_TYPES, CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\n/**\n * Check if a template is removable.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is removable.\n */\nfunction isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t// In patterns list page we map the templates parts to a different object\n\t// than the one returned from the endpoint. This is why we need to check for\n\t// two props whether is custom or has a theme file.\n\treturn (\n\t\t[ template.source, template.templatePart?.source ].includes(\n\t\t\tTEMPLATE_ORIGINS.custom\n\t\t) &&\n\t\t! template.has_theme_file &&\n\t\t! template.templatePart?.has_theme_file\n\t);\n}\nconst canDeleteOrReset = ( item ) => {\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\treturn isUserPattern || ( isTemplatePart && item.isCustom );\n};\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\n// This action is used for templates, patterns and template parts.\n// Every other post type uses the similar `trashPostAction` which\n// moves the post to trash.\nconst deletePostAction = {\n\tid: 'delete-post',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( post ) {\n\t\tif (\n\t\t\t[ TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE ].includes(\n\t\t\t\tpost.type\n\t\t\t)\n\t\t) {\n\t\t\treturn isTemplateRemovable( post );\n\t\t}\n\t\t// We can only remove user patterns.\n\t\treturn post.type === PATTERN_TYPES.user;\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { removeTemplates } = unlock( useDispatch( editorStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait removeTemplates( items, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nconst trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\treturn ! [ 'auto-draft', 'trash' ].includes( item.status );\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash \"%s\"?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d item?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id,\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else if ( items[ 0 ].type === 'page' ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t\t__( '%s items moved to trash.' ),\n\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t\t\t\t__( '%s items move to trash.' ),\n\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\tpromiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the items.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Some errors occurred while moving to trash the items: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Trash' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction usePermanentlyDeletePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'permanently-delete-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n}\n\nfunction useRestorePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tawait Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( posts.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'restore-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nconst viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tlabel( items ) {\n\t\tconst revisionsCount =\n\t\t\titems[ 0 ]._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn sprintf(\n\t\t\t/* translators: %s: number of revisions */\n\t\t\t__( 'View revisions (%s)' ),\n\t\t\trevisionsCount\n\t\t);\n\t},\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst renamePostAction = {\n\tid: 'rename-post',\n\tlabel: __( 'Rename' ),\n\tisEligible( post ) {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\t// Templates, template parts and patterns have special checks for renaming.\n\t\tif (\n\t\t\t! [\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t...Object.values( PATTERN_TYPES ),\n\t\t\t].includes( post.type )\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\t// In the case of templates, we can only rename custom templates.\n\t\tif ( post.type === TEMPLATE_POST_TYPE ) {\n\t\t\treturn isTemplateRemovable( post ) && post.is_custom;\n\t\t}\n\t\t// Make necessary checks for template parts and patterns.\n\t\tconst isTemplatePart = post.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = post.type === PATTERN_TYPES.user;\n\t\t// In patterns list page we map the templates parts to a different object\n\t\t// than the one returned from the endpoint. This is why we need to check for\n\t\t// two props whether is custom or has a theme file.\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern ||\n\t\t\t( isTemplatePart &&\n\t\t\t\t( post.isCustom || post.source === TEMPLATE_ORIGINS.custom ) );\n\t\tconst hasThemeFile =\n\t\t\tisTemplatePart &&\n\t\t\t( post.templatePart?.has_theme_file || post.has_theme_file );\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst originalTitle = decodeEntities(\n\t\t\ttypeof item.title === 'string' ? item.title : item.title.rendered\n\t\t);\n\t\tconst [ title, setTitle ] = useState( () => originalTitle );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice( __( 'Name updated' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tonActionPerformed?.( items );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while updating the name' );\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst duplicatePostAction = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst [ title, setTitle ] = useState(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: Existing item title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\tgetItemTitle( item )\n\t\t\t)\n\t\t);\n\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\t\tauthor: item.author,\n\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\tcategories: item.categories,\n\t\t\t\t\t\ttags: item.tags,\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tnewItem.title?.rendered || title\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst isTemplatePartRevertable = ( item ) => {\n\tif ( ! item ) {\n\t\treturn false;\n\t}\n\tconst hasThemeFile = item.templatePart?.has_theme_file;\n\treturn canDeleteOrReset( item ) && hasThemeFile;\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: ( item ) => {\n\t\treturn item.type === TEMPLATE_PART_POST_TYPE\n\t\t\t? isTemplatePartRevertable( item )\n\t\t\t: isTemplateRevertable( item );\n\t},\n\ticon: backup,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { revertTemplate, removeTemplates } = unlock(\n\t\t\tuseDispatch( editorStore )\n\t\t);\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\t\tawait removeTemplates( items );\n\t\t\t\t} else {\n\t\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\t\tif ( template.type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities( getItemTitle( items[ 0 ] ) )\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __( 'Reset to default and clear all customizations?' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern:\n\t\t\t\tisThemePattern || ! item.patternPost ? item : item.patternPost,\n\t\t\tonSuccess: () => closeModal(),\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tfunction onTemplatePartSuccess() {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart?.area || item.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport function usePostActions( postType, onActionPerformed ) {\n\tconst { postTypeObject } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tpostTypeObject: getPostType( postType ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst permanentlyDeletePostAction = usePermanentlyDeletePostAction();\n\tconst restorePostAction = useRestorePostAction();\n\tconst isTemplateOrTemplatePart = [\n\t\tTEMPLATE_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t].includes( postType );\n\tconst isPattern = postType === PATTERN_POST_TYPE;\n\tconst isLoaded = !! postTypeObject;\n\tconst supportsRevisions = !! postTypeObject?.supports?.revisions;\n\tconst supportsTitle = !! postTypeObject?.supports?.title;\n\treturn useMemo( () => {\n\t\tif ( ! isLoaded ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst actions = [\n\t\t\tpostTypeObject?.viewable && viewPostAction,\n\t\t\tsupportsRevisions && postRevisionsAction,\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! isTemplateOrTemplatePart &&\n\t\t\t\t ! isPattern &&\n\t\t\t\t duplicatePostAction\n\t\t\t\t: false,\n\t\t\tisTemplateOrTemplatePart && duplicateTemplatePartAction,\n\t\t\tisPattern && duplicatePatternAction,\n\t\t\tsupportsTitle && renamePostAction,\n\t\t\tisPattern && exportPatternAsJSONAction,\n\t\t\tisTemplateOrTemplatePart ? resetTemplateAction : restorePostAction,\n\t\t\tisTemplateOrTemplatePart || isPattern\n\t\t\t\t? deletePostAction\n\t\t\t\t: trashPostAction,\n\t\t\t! isTemplateOrTemplatePart && permanentlyDeletePostAction,\n\t\t].filter( Boolean );\n\n\t\tif ( onActionPerformed ) {\n\t\t\tfor ( let i = 0; i < actions.length; ++i ) {\n\t\t\t\tif ( actions[ i ].callback ) {\n\t\t\t\t\tconst existingCallback = actions[ i ].callback;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tcallback: ( items, _onActionPerformed ) => {\n\t\t\t\t\t\t\texistingCallback( items, ( _items ) => {\n\t\t\t\t\t\t\t\tif ( _onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t_onActionPerformed( _items );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonActionPerformed( actions[ i ].id, _items );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif ( actions[ i ].RenderModal ) {\n\t\t\t\t\tconst ExistingRenderModal = actions[ i ].RenderModal;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tRenderModal: ( props ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ExistingRenderModal\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tonActionPerformed={ ( _items ) => {\n\t\t\t\t\t\t\t\t\t\tif ( props.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t\t_items\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t}, [\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tpermanentlyDeletePostAction,\n\t\trestorePostAction,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t\tsupportsRevisions,\n\t\tsupportsTitle,\n\t] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { paramCase as kebabCase } from 'change-case';
5
+ import { downloadZip } from 'client-zip';
6
+
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import { downloadBlob } from '@wordpress/blob';
11
+ import { __ } from '@wordpress/i18n';
12
+ import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+ import { unlock } from '../../lock-unlock';
18
+
19
+ // Patterns.
20
+ const {
21
+ PATTERN_TYPES
22
+ } = unlock(patternsPrivateApis);
23
+ function getJsonFromItem(item) {
24
+ return JSON.stringify({
25
+ __file: item.type,
26
+ title: item.title || item.name,
27
+ content: item.patternPost.content.raw,
28
+ syncStatus: item.patternPost.wp_pattern_sync_status
29
+ }, null, 2);
30
+ }
31
+ export const exportPatternAsJSONAction = {
32
+ id: 'export-pattern',
33
+ label: __('Export as JSON'),
34
+ supportsBulk: true,
35
+ isEligible: item => {
36
+ if (!item.type) {
37
+ return false;
38
+ }
39
+ return item.type === PATTERN_TYPES.user;
40
+ },
41
+ callback: async items => {
42
+ if (items.length === 1) {
43
+ return downloadBlob(`${kebabCase(items[0].title || items[0].name)}.json`, getJsonFromItem(items[0]), 'application/json');
44
+ }
45
+ const nameCount = {};
46
+ const filesToZip = items.map(item => {
47
+ const name = kebabCase(item.title || item.name);
48
+ nameCount[name] = (nameCount[name] || 0) + 1;
49
+ return {
50
+ name: `${name + (nameCount[name] > 1 ? '-' + (nameCount[name] - 1) : '')}.json`,
51
+ lastModified: new Date(),
52
+ input: getJsonFromItem(item)
53
+ };
54
+ });
55
+ return downloadBlob(__('patterns-export') + '.zip', await downloadZip(filesToZip).blob(), 'application/zip');
56
+ }
57
+ };
58
+ //# sourceMappingURL=export-pattern-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["paramCase","kebabCase","downloadZip","downloadBlob","__","privateApis","patternsPrivateApis","unlock","PATTERN_TYPES","getJsonFromItem","item","JSON","stringify","__file","type","title","name","content","patternPost","raw","syncStatus","wp_pattern_sync_status","exportPatternAsJSONAction","id","label","supportsBulk","isEligible","user","callback","items","length","nameCount","filesToZip","map","lastModified","Date","input","blob"],"sources":["@wordpress/editor/src/components/post-actions/export-pattern-action.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\nimport { downloadZip } from 'client-zip';\n\n/**\n * WordPress dependencies\n */\nimport { downloadBlob } from '@wordpress/blob';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\n// Patterns.\nconst { PATTERN_TYPES } = unlock( patternsPrivateApis );\n\nfunction getJsonFromItem( item ) {\n\treturn JSON.stringify(\n\t\t{\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternPost.content.raw,\n\t\t\tsyncStatus: item.patternPost.wp_pattern_sync_status,\n\t\t},\n\t\tnull,\n\t\t2\n\t);\n}\n\nexport const exportPatternAsJSONAction = {\n\tid: 'export-pattern',\n\tlabel: __( 'Export as JSON' ),\n\tsupportsBulk: true,\n\tisEligible: ( item ) => {\n\t\tif ( ! item.type ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn item.type === PATTERN_TYPES.user;\n\t},\n\tcallback: async ( items ) => {\n\t\tif ( items.length === 1 ) {\n\t\t\treturn downloadBlob(\n\t\t\t\t`${ kebabCase( items[ 0 ].title || items[ 0 ].name ) }.json`,\n\t\t\t\tgetJsonFromItem( items[ 0 ] ),\n\t\t\t\t'application/json'\n\t\t\t);\n\t\t}\n\t\tconst nameCount = {};\n\t\tconst filesToZip = items.map( ( item ) => {\n\t\t\tconst name = kebabCase( item.title || item.name );\n\t\t\tnameCount[ name ] = ( nameCount[ name ] || 0 ) + 1;\n\t\t\treturn {\n\t\t\t\tname: `${\n\t\t\t\t\tname +\n\t\t\t\t\t( nameCount[ name ] > 1\n\t\t\t\t\t\t? '-' + ( nameCount[ name ] - 1 )\n\t\t\t\t\t\t: '' )\n\t\t\t\t}.json`,\n\t\t\t\tlastModified: new Date(),\n\t\t\t\tinput: getJsonFromItem( item ),\n\t\t\t};\n\t\t} );\n\t\treturn downloadBlob(\n\t\t\t__( 'patterns-export' ) + '.zip',\n\t\t\tawait downloadZip( filesToZip ).blob(),\n\t\t\t'application/zip'\n\t\t);\n\t},\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,IAAIC,SAAS,QAAQ,aAAa;AACpD,SAASC,WAAW,QAAQ,YAAY;;AAExC;AACA;AACA;AACA,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,IAAIC,mBAAmB,QAAQ,qBAAqB;;AAExE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C;AACA,MAAM;EAAEC;AAAc,CAAC,GAAGD,MAAM,CAAED,mBAAoB,CAAC;AAEvD,SAASG,eAAeA,CAAEC,IAAI,EAAG;EAChC,OAAOC,IAAI,CAACC,SAAS,CACpB;IACCC,MAAM,EAAEH,IAAI,CAACI,IAAI;IACjBC,KAAK,EAAEL,IAAI,CAACK,KAAK,IAAIL,IAAI,CAACM,IAAI;IAC9BC,OAAO,EAAEP,IAAI,CAACQ,WAAW,CAACD,OAAO,CAACE,GAAG;IACrCC,UAAU,EAAEV,IAAI,CAACQ,WAAW,CAACG;EAC9B,CAAC,EACD,IAAI,EACJ,CACD,CAAC;AACF;AAEA,OAAO,MAAMC,yBAAyB,GAAG;EACxCC,EAAE,EAAE,gBAAgB;EACpBC,KAAK,EAAEpB,EAAE,CAAE,gBAAiB,CAAC;EAC7BqB,YAAY,EAAE,IAAI;EAClBC,UAAU,EAAIhB,IAAI,IAAM;IACvB,IAAK,CAAEA,IAAI,CAACI,IAAI,EAAG;MAClB,OAAO,KAAK;IACb;IACA,OAAOJ,IAAI,CAACI,IAAI,KAAKN,aAAa,CAACmB,IAAI;EACxC,CAAC;EACDC,QAAQ,EAAE,MAAQC,KAAK,IAAM;IAC5B,IAAKA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAG;MACzB,OAAO3B,YAAY,CACjB,GAAGF,SAAS,CAAE4B,KAAK,CAAE,CAAC,CAAE,CAACd,KAAK,IAAIc,KAAK,CAAE,CAAC,CAAE,CAACb,IAAK,CAAG,OAAM,EAC5DP,eAAe,CAAEoB,KAAK,CAAE,CAAC,CAAG,CAAC,EAC7B,kBACD,CAAC;IACF;IACA,MAAME,SAAS,GAAG,CAAC,CAAC;IACpB,MAAMC,UAAU,GAAGH,KAAK,CAACI,GAAG,CAAIvB,IAAI,IAAM;MACzC,MAAMM,IAAI,GAAGf,SAAS,CAAES,IAAI,CAACK,KAAK,IAAIL,IAAI,CAACM,IAAK,CAAC;MACjDe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAEe,SAAS,CAAEf,IAAI,CAAE,IAAI,CAAC,IAAK,CAAC;MAClD,OAAO;QACNA,IAAI,EAAG,GACNA,IAAI,IACFe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAC,GACpB,GAAG,IAAKe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAC,CAAE,GAC/B,EAAE,CACL,OAAM;QACPkB,YAAY,EAAE,IAAIC,IAAI,CAAC,CAAC;QACxBC,KAAK,EAAE3B,eAAe,CAAEC,IAAK;MAC9B,CAAC;IACF,CAAE,CAAC;IACH,OAAOP,YAAY,CAClBC,EAAE,CAAE,iBAAkB,CAAC,GAAG,MAAM,EAChC,MAAMF,WAAW,CAAE8B,UAAW,CAAC,CAACK,IAAI,CAAC,CAAC,EACtC,iBACD,CAAC;EACF;AACD,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ // Client-zip is meant to be used in a browser and is therefore released as an ES6 module only,
2
+ // in order for the native build to succeed we are importing a null action and avoiding importing
3
+ // the non working in native context client-zip module.
4
+ export const exportPatternAsJSONAction = null;
5
+ //# sourceMappingURL=export-pattern-action.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["exportPatternAsJSONAction"],"sources":["@wordpress/editor/src/components/post-actions/export-pattern-action.native.js"],"sourcesContent":["// Client-zip is meant to be used in a browser and is therefore released as an ES6 module only,\n// in order for the native build to succeed we are importing a null action and avoiding importing\n// the non working in native context client-zip module.\nexport const exportPatternAsJSONAction = null;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,MAAMA,yBAAyB,GAAG,IAAI","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { createElement, Fragment } from "react";
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
@@ -7,6 +6,7 @@ import { useState, useMemo } from '@wordpress/element';
7
6
  import { __ } from '@wordpress/i18n';
8
7
  import { privateApis as componentsPrivateApis, Button, Modal } from '@wordpress/components';
9
8
  import { moreVertical } from '@wordpress/icons';
9
+ import { store as coreStore } from '@wordpress/core-data';
10
10
 
11
11
  /**
12
12
  * Internal dependencies
@@ -14,6 +14,9 @@ import { moreVertical } from '@wordpress/icons';
14
14
  import { unlock } from '../../lock-unlock';
15
15
  import { usePostActions } from './actions';
16
16
  import { store as editorStore } from '../../store';
17
+ import { jsx as _jsx } from "react/jsx-runtime";
18
+ import { Fragment as _Fragment } from "react/jsx-runtime";
19
+ import { jsxs as _jsxs } from "react/jsx-runtime";
17
20
  const {
18
21
  DropdownMenuV2: DropdownMenu,
19
22
  DropdownMenuGroupV2: DropdownMenuGroup,
@@ -32,11 +35,15 @@ export default function PostActions({
32
35
  } = useSelect(select => {
33
36
  const {
34
37
  getCurrentPostType,
35
- getCurrentPost
38
+ getCurrentPostId
36
39
  } = select(editorStore);
40
+ const {
41
+ getEditedEntityRecord
42
+ } = select(coreStore);
43
+ const _postType = getCurrentPostType();
37
44
  return {
38
- item: getCurrentPost(),
39
- postType: getCurrentPostType()
45
+ item: getEditedEntityRecord('postType', _postType, getCurrentPostId()),
46
+ postType: _postType
40
47
  };
41
48
  }, []);
42
49
  const allActions = usePostActions(postType, onActionPerformed);
@@ -45,9 +52,9 @@ export default function PostActions({
45
52
  return !action.isEligible || action.isEligible(item);
46
53
  });
47
54
  }, [allActions, item]);
48
- return createElement(DropdownMenu, {
55
+ return /*#__PURE__*/_jsx(DropdownMenu, {
49
56
  open: isActionsMenuOpen,
50
- trigger: createElement(Button, {
57
+ trigger: /*#__PURE__*/_jsx(Button, {
51
58
  size: "small",
52
59
  icon: moreVertical,
53
60
  label: __('Actions'),
@@ -58,14 +65,15 @@ export default function PostActions({
58
65
  ...buttonProps
59
66
  }),
60
67
  onOpenChange: setIsActionsMenuOpen,
61
- placement: "bottom-end"
62
- }, createElement(ActionsDropdownMenuGroup, {
63
- actions: actions,
64
- item: item,
65
- onClose: () => {
66
- setIsActionsMenuOpen(false);
67
- }
68
- }));
68
+ placement: "bottom-end",
69
+ children: /*#__PURE__*/_jsx(ActionsDropdownMenuGroup, {
70
+ actions: actions,
71
+ item: item,
72
+ onClose: () => {
73
+ setIsActionsMenuOpen(false);
74
+ }
75
+ })
76
+ });
69
77
  }
70
78
 
71
79
  // From now on all the functions on this file are copied as from the dataviews packages,
@@ -76,12 +84,17 @@ export default function PostActions({
76
84
  // Copied as is from packages/dataviews/src/item-actions.js
77
85
  function DropdownMenuItemTrigger({
78
86
  action,
79
- onClick
87
+ onClick,
88
+ items
80
89
  }) {
81
- return createElement(DropdownMenuItem, {
90
+ const label = typeof action.label === 'string' ? action.label : action.label(items);
91
+ return /*#__PURE__*/_jsx(DropdownMenuItem, {
82
92
  onClick: onClick,
83
- hideOnClick: !action.RenderModal
84
- }, createElement(DropdownMenuItemLabel, null, action.label));
93
+ hideOnClick: !action.RenderModal,
94
+ children: /*#__PURE__*/_jsx(DropdownMenuItemLabel, {
95
+ children: label
96
+ })
97
+ });
85
98
  }
86
99
 
87
100
  // Copied as is from packages/dataviews/src/item-actions.js
@@ -95,28 +108,32 @@ function ActionWithModal({
95
108
  const [isModalOpen, setIsModalOpen] = useState(false);
96
109
  const actionTriggerProps = {
97
110
  action,
98
- onClick: () => setIsModalOpen(true)
111
+ onClick: () => setIsModalOpen(true),
112
+ items: [item]
99
113
  };
100
114
  const {
101
115
  RenderModal,
102
116
  hideModalHeader
103
117
  } = action;
104
- return createElement(Fragment, null, createElement(ActionTrigger, {
105
- ...actionTriggerProps
106
- }), isModalOpen && createElement(Modal, {
107
- title: action.modalHeader || action.label,
108
- __experimentalHideHeader: !!hideModalHeader,
109
- onRequestClose: () => {
110
- setIsModalOpen(false);
111
- },
112
- overlayClassName: `editor-action-modal editor-action-modal__${kebabCase(action.id)}`
113
- }, createElement(RenderModal, {
114
- items: [item],
115
- closeModal: () => {
116
- setIsModalOpen(false);
117
- onClose();
118
- }
119
- })));
118
+ return /*#__PURE__*/_jsxs(_Fragment, {
119
+ children: [/*#__PURE__*/_jsx(ActionTrigger, {
120
+ ...actionTriggerProps
121
+ }), isModalOpen && /*#__PURE__*/_jsx(Modal, {
122
+ title: action.modalHeader || action.label,
123
+ __experimentalHideHeader: !!hideModalHeader,
124
+ onRequestClose: () => {
125
+ setIsModalOpen(false);
126
+ },
127
+ overlayClassName: `editor-action-modal editor-action-modal__${kebabCase(action.id)}`,
128
+ children: /*#__PURE__*/_jsx(RenderModal, {
129
+ items: [item],
130
+ closeModal: () => {
131
+ setIsModalOpen(false);
132
+ onClose();
133
+ }
134
+ })
135
+ })]
136
+ });
120
137
  }
121
138
 
122
139
  // Copied as is from packages/dataviews/src/item-actions.js
@@ -126,21 +143,22 @@ function ActionsDropdownMenuGroup({
126
143
  item,
127
144
  onClose
128
145
  }) {
129
- return createElement(DropdownMenuGroup, null, actions.map(action => {
130
- if (action.RenderModal) {
131
- return createElement(ActionWithModal, {
132
- key: action.id,
146
+ return /*#__PURE__*/_jsx(DropdownMenuGroup, {
147
+ children: actions.map(action => {
148
+ if (action.RenderModal) {
149
+ return /*#__PURE__*/_jsx(ActionWithModal, {
150
+ action: action,
151
+ item: item,
152
+ ActionTrigger: DropdownMenuItemTrigger,
153
+ onClose: onClose
154
+ }, action.id);
155
+ }
156
+ return /*#__PURE__*/_jsx(DropdownMenuItemTrigger, {
133
157
  action: action,
134
- item: item,
135
- ActionTrigger: DropdownMenuItemTrigger,
136
- onClose: onClose
137
- });
138
- }
139
- return createElement(DropdownMenuItemTrigger, {
140
- key: action.id,
141
- action: action,
142
- onClick: () => action.callback([item])
143
- });
144
- }));
158
+ onClick: () => action.callback([item]),
159
+ items: [item]
160
+ }, action.id);
161
+ })
162
+ });
145
163
  }
146
164
  //# sourceMappingURL=index.js.map