@wordpress/editor 14.40.2-next.v.202602271551.0 → 14.40.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/collab-sidebar/add-comment.cjs +0 -3
  3. package/build/components/collab-sidebar/add-comment.cjs.map +2 -2
  4. package/build/components/collab-sidebar/comments.cjs +0 -3
  5. package/build/components/collab-sidebar/comments.cjs.map +2 -2
  6. package/build/components/collab-sidebar/index.cjs +7 -4
  7. package/build/components/collab-sidebar/index.cjs.map +2 -2
  8. package/build/components/collab-sidebar/utils.cjs +13 -15
  9. package/build/components/collab-sidebar/utils.cjs.map +2 -2
  10. package/build/components/collaborators-overlay/avatar-iframe-styles.cjs +141 -0
  11. package/build/components/collaborators-overlay/avatar-iframe-styles.cjs.map +7 -0
  12. package/build/components/collaborators-overlay/collaborator-styles.cjs +38 -2
  13. package/build/components/collaborators-overlay/collaborator-styles.cjs.map +2 -2
  14. package/build/components/collaborators-overlay/compute-selection.cjs +185 -0
  15. package/build/components/collaborators-overlay/compute-selection.cjs.map +7 -0
  16. package/build/components/collaborators-overlay/cursor-dom-utils.cjs +243 -0
  17. package/build/components/collaborators-overlay/cursor-dom-utils.cjs.map +7 -0
  18. package/build/components/collaborators-overlay/cursor-registry.cjs +86 -0
  19. package/build/components/collaborators-overlay/cursor-registry.cjs.map +7 -0
  20. package/build/components/collaborators-overlay/index.cjs +7 -2
  21. package/build/components/collaborators-overlay/index.cjs.map +2 -2
  22. package/build/components/collaborators-overlay/overlay-iframe-styles.cjs +148 -0
  23. package/build/components/collaborators-overlay/overlay-iframe-styles.cjs.map +7 -0
  24. package/build/components/collaborators-overlay/overlay.cjs +141 -229
  25. package/build/components/collaborators-overlay/overlay.cjs.map +3 -3
  26. package/build/components/collaborators-overlay/timing-utils.cjs +46 -0
  27. package/build/components/collaborators-overlay/timing-utils.cjs.map +7 -0
  28. package/build/components/collaborators-overlay/use-block-highlighting.cjs +91 -42
  29. package/build/components/collaborators-overlay/use-block-highlighting.cjs.map +2 -2
  30. package/build/components/collaborators-overlay/use-debounced-recompute.cjs +49 -0
  31. package/build/components/collaborators-overlay/use-debounced-recompute.cjs.map +7 -0
  32. package/build/components/collaborators-overlay/use-render-cursors.cjs +82 -172
  33. package/build/components/collaborators-overlay/use-render-cursors.cjs.map +3 -3
  34. package/build/components/collaborators-presence/avatar/component.cjs +121 -0
  35. package/build/components/collaborators-presence/avatar/component.cjs.map +7 -0
  36. package/build/components/collaborators-presence/avatar/index.cjs +37 -0
  37. package/build/components/collaborators-presence/avatar/index.cjs.map +7 -0
  38. package/build/components/collaborators-presence/avatar/types.cjs +19 -0
  39. package/build/components/collaborators-presence/avatar/types.cjs.map +7 -0
  40. package/build/components/collaborators-presence/avatar/use-image-loading-status.cjs +44 -0
  41. package/build/components/collaborators-presence/avatar/use-image-loading-status.cjs.map +7 -0
  42. package/build/components/collaborators-presence/avatar-group/component.cjs +78 -0
  43. package/build/components/collaborators-presence/avatar-group/component.cjs.map +7 -0
  44. package/build/components/collaborators-presence/avatar-group/index.cjs +37 -0
  45. package/build/components/collaborators-presence/avatar-group/index.cjs.map +7 -0
  46. package/build/components/collaborators-presence/avatar-group/types.cjs +19 -0
  47. package/build/components/collaborators-presence/avatar-group/types.cjs.map +7 -0
  48. package/build/components/collaborators-presence/index.cjs +66 -19
  49. package/build/components/collaborators-presence/index.cjs.map +3 -3
  50. package/build/components/collaborators-presence/list.cjs +60 -38
  51. package/build/components/collaborators-presence/list.cjs.map +3 -3
  52. package/build/components/collaborators-presence/use-collaborator-notifications.cjs +149 -0
  53. package/build/components/collaborators-presence/use-collaborator-notifications.cjs.map +7 -0
  54. package/build/components/editor-interface/index.cjs +11 -6
  55. package/build/components/editor-interface/index.cjs.map +2 -2
  56. package/build/components/inserter-sidebar/index.cjs +2 -1
  57. package/build/components/inserter-sidebar/index.cjs.map +2 -2
  58. package/build/components/more-menu/copy-content-menu-item.cjs +19 -2
  59. package/build/components/more-menu/copy-content-menu-item.cjs.map +3 -3
  60. package/build/components/post-last-revision/index.cjs +27 -6
  61. package/build/components/post-last-revision/index.cjs.map +2 -2
  62. package/build/components/post-locked-modal/index.cjs +49 -17
  63. package/build/components/post-locked-modal/index.cjs.map +3 -3
  64. package/build/components/post-revisions-preview/block-diff.cjs +130 -34
  65. package/build/components/post-revisions-preview/block-diff.cjs.map +2 -2
  66. package/build/components/post-revisions-preview/diff-markers.cjs +6 -5
  67. package/build/components/post-revisions-preview/diff-markers.cjs.map +2 -2
  68. package/build/components/post-revisions-preview/revisions-canvas.cjs +16 -60
  69. package/build/components/post-revisions-preview/revisions-canvas.cjs.map +3 -3
  70. package/build/components/post-revisions-preview/revisions-slider.cjs +102 -39
  71. package/build/components/post-revisions-preview/revisions-slider.cjs.map +3 -3
  72. package/build/components/post-text-editor/index.cjs +20 -5
  73. package/build/components/post-text-editor/index.cjs.map +3 -3
  74. package/build/components/preferences-modal/index.cjs +36 -4
  75. package/build/components/preferences-modal/index.cjs.map +2 -2
  76. package/build/components/provider/disable-non-page-content-blocks.cjs +31 -28
  77. package/build/components/provider/disable-non-page-content-blocks.cjs.map +3 -3
  78. package/build/components/provider/index.cjs +17 -5
  79. package/build/components/provider/index.cjs.map +2 -2
  80. package/build/components/provider/use-block-editor-settings.cjs +20 -4
  81. package/build/components/provider/use-block-editor-settings.cjs.map +3 -3
  82. package/build/components/provider/{use-post-content-blocks.cjs → use-post-content-block-types.cjs} +8 -19
  83. package/build/components/provider/use-post-content-block-types.cjs.map +7 -0
  84. package/build/components/provider/use-revision-blocks.cjs +106 -0
  85. package/build/components/provider/use-revision-blocks.cjs.map +7 -0
  86. package/build/components/revision-block-diff/index.cjs +61 -0
  87. package/build/components/revision-block-diff/index.cjs.map +7 -0
  88. package/build/components/revision-diff-panel/index.cjs +68 -0
  89. package/build/components/revision-diff-panel/index.cjs.map +7 -0
  90. package/build/components/revision-fields-diff/index.cjs +96 -0
  91. package/build/components/revision-fields-diff/index.cjs.map +7 -0
  92. package/build/components/sidebar/header.cjs +1 -1
  93. package/build/components/sidebar/header.cjs.map +2 -2
  94. package/build/components/sidebar/index.cjs +7 -1
  95. package/build/components/sidebar/index.cjs.map +3 -3
  96. package/build/components/style-book/index.cjs +4 -3
  97. package/build/components/style-book/index.cjs.map +2 -2
  98. package/build/components/sync-connection-error-modal/index.cjs +187 -0
  99. package/build/components/sync-connection-error-modal/index.cjs.map +7 -0
  100. package/build/components/sync-connection-error-modal/use-retry-countdown.cjs +84 -0
  101. package/build/components/sync-connection-error-modal/use-retry-countdown.cjs.map +7 -0
  102. package/build/components/template-content-panel/index.cjs +35 -31
  103. package/build/components/template-content-panel/index.cjs.map +3 -3
  104. package/build/components/template-part-menu-items/convert-to-regular.cjs +54 -11
  105. package/build/components/template-part-menu-items/convert-to-regular.cjs.map +3 -3
  106. package/build/components/visual-editor/index.cjs +6 -15
  107. package/build/components/visual-editor/index.cjs.map +2 -2
  108. package/build/store/private-actions.cjs +46 -2
  109. package/build/store/private-actions.cjs.map +2 -2
  110. package/build/store/private-selectors.cjs +154 -29
  111. package/build/store/private-selectors.cjs.map +2 -2
  112. package/build/store/reducer.cjs +27 -0
  113. package/build/store/reducer.cjs.map +2 -2
  114. package/build/store/selectors.cjs +0 -14
  115. package/build/store/selectors.cjs.map +2 -2
  116. package/build/utils/media-finalize/index.cjs +43 -0
  117. package/build/utils/media-finalize/index.cjs.map +7 -0
  118. package/build/utils/media-upload/on-success.cjs +46 -0
  119. package/build/utils/media-upload/on-success.cjs.map +7 -0
  120. package/build/utils/sync-error-messages.cjs +32 -15
  121. package/build/utils/sync-error-messages.cjs.map +3 -3
  122. package/build-module/components/collab-sidebar/add-comment.mjs +0 -3
  123. package/build-module/components/collab-sidebar/add-comment.mjs.map +2 -2
  124. package/build-module/components/collab-sidebar/comments.mjs +0 -3
  125. package/build-module/components/collab-sidebar/comments.mjs.map +2 -2
  126. package/build-module/components/collab-sidebar/index.mjs +7 -4
  127. package/build-module/components/collab-sidebar/index.mjs.map +2 -2
  128. package/build-module/components/collab-sidebar/utils.mjs +13 -15
  129. package/build-module/components/collab-sidebar/utils.mjs.map +2 -2
  130. package/build-module/components/collaborators-overlay/avatar-iframe-styles.mjs +128 -0
  131. package/build-module/components/collaborators-overlay/avatar-iframe-styles.mjs.map +7 -0
  132. package/build-module/components/collaborators-overlay/collaborator-styles.mjs +25 -1
  133. package/build-module/components/collaborators-overlay/collaborator-styles.mjs.map +2 -2
  134. package/build-module/components/collaborators-overlay/compute-selection.mjs +166 -0
  135. package/build-module/components/collaborators-overlay/compute-selection.mjs.map +7 -0
  136. package/build-module/components/collaborators-overlay/cursor-dom-utils.mjs +213 -0
  137. package/build-module/components/collaborators-overlay/cursor-dom-utils.mjs.map +7 -0
  138. package/build-module/components/collaborators-overlay/cursor-registry.mjs +61 -0
  139. package/build-module/components/collaborators-overlay/cursor-registry.mjs.map +7 -0
  140. package/build-module/components/collaborators-overlay/index.mjs +7 -2
  141. package/build-module/components/collaborators-overlay/index.mjs.map +2 -2
  142. package/build-module/components/collaborators-overlay/overlay-iframe-styles.mjs +130 -0
  143. package/build-module/components/collaborators-overlay/overlay-iframe-styles.mjs.map +7 -0
  144. package/build-module/components/collaborators-overlay/overlay.mjs +132 -230
  145. package/build-module/components/collaborators-overlay/overlay.mjs.map +2 -2
  146. package/build-module/components/collaborators-overlay/timing-utils.mjs +21 -0
  147. package/build-module/components/collaborators-overlay/timing-utils.mjs.map +7 -0
  148. package/build-module/components/collaborators-overlay/use-block-highlighting.mjs +93 -45
  149. package/build-module/components/collaborators-overlay/use-block-highlighting.mjs.map +2 -2
  150. package/build-module/components/collaborators-overlay/use-debounced-recompute.mjs +24 -0
  151. package/build-module/components/collaborators-overlay/use-debounced-recompute.mjs.map +7 -0
  152. package/build-module/components/collaborators-overlay/use-render-cursors.mjs +83 -176
  153. package/build-module/components/collaborators-overlay/use-render-cursors.mjs.map +2 -2
  154. package/build-module/components/collaborators-presence/avatar/component.mjs +90 -0
  155. package/build-module/components/collaborators-presence/avatar/component.mjs.map +7 -0
  156. package/build-module/components/collaborators-presence/avatar/index.mjs +6 -0
  157. package/build-module/components/collaborators-presence/avatar/index.mjs.map +7 -0
  158. package/build-module/components/collaborators-presence/avatar/types.mjs +1 -0
  159. package/build-module/components/collaborators-presence/avatar/types.mjs.map +7 -0
  160. package/build-module/components/collaborators-presence/avatar/use-image-loading-status.mjs +19 -0
  161. package/build-module/components/collaborators-presence/avatar/use-image-loading-status.mjs.map +7 -0
  162. package/build-module/components/collaborators-presence/avatar-group/component.mjs +47 -0
  163. package/build-module/components/collaborators-presence/avatar-group/component.mjs.map +7 -0
  164. package/build-module/components/collaborators-presence/avatar-group/index.mjs +6 -0
  165. package/build-module/components/collaborators-presence/avatar-group/index.mjs.map +7 -0
  166. package/build-module/components/collaborators-presence/avatar-group/types.mjs +1 -0
  167. package/build-module/components/collaborators-presence/avatar-group/types.mjs.map +7 -0
  168. package/build-module/components/collaborators-presence/index.mjs +57 -23
  169. package/build-module/components/collaborators-presence/index.mjs.map +2 -2
  170. package/build-module/components/collaborators-presence/list.mjs +52 -44
  171. package/build-module/components/collaborators-presence/list.mjs.map +2 -2
  172. package/build-module/components/collaborators-presence/use-collaborator-notifications.mjs +126 -0
  173. package/build-module/components/collaborators-presence/use-collaborator-notifications.mjs.map +7 -0
  174. package/build-module/components/editor-interface/index.mjs +12 -7
  175. package/build-module/components/editor-interface/index.mjs.map +2 -2
  176. package/build-module/components/inserter-sidebar/index.mjs +2 -1
  177. package/build-module/components/inserter-sidebar/index.mjs.map +2 -2
  178. package/build-module/components/more-menu/copy-content-menu-item.mjs +19 -2
  179. package/build-module/components/more-menu/copy-content-menu-item.mjs.map +2 -2
  180. package/build-module/components/post-last-revision/index.mjs +27 -6
  181. package/build-module/components/post-last-revision/index.mjs.map +2 -2
  182. package/build-module/components/post-locked-modal/index.mjs +49 -17
  183. package/build-module/components/post-locked-modal/index.mjs.map +2 -2
  184. package/build-module/components/post-revisions-preview/block-diff.mjs +130 -34
  185. package/build-module/components/post-revisions-preview/block-diff.mjs.map +2 -2
  186. package/build-module/components/post-revisions-preview/diff-markers.mjs +6 -5
  187. package/build-module/components/post-revisions-preview/diff-markers.mjs.map +2 -2
  188. package/build-module/components/post-revisions-preview/revisions-canvas.mjs +18 -65
  189. package/build-module/components/post-revisions-preview/revisions-canvas.mjs.map +2 -2
  190. package/build-module/components/post-revisions-preview/revisions-slider.mjs +110 -42
  191. package/build-module/components/post-revisions-preview/revisions-slider.mjs.map +2 -2
  192. package/build-module/components/post-text-editor/index.mjs +20 -5
  193. package/build-module/components/post-text-editor/index.mjs.map +2 -2
  194. package/build-module/components/preferences-modal/index.mjs +36 -4
  195. package/build-module/components/preferences-modal/index.mjs.map +2 -2
  196. package/build-module/components/provider/disable-non-page-content-blocks.mjs +31 -28
  197. package/build-module/components/provider/disable-non-page-content-blocks.mjs.map +2 -2
  198. package/build-module/components/provider/index.mjs +17 -5
  199. package/build-module/components/provider/index.mjs.map +2 -2
  200. package/build-module/components/provider/use-block-editor-settings.mjs +20 -4
  201. package/build-module/components/provider/use-block-editor-settings.mjs.map +2 -2
  202. package/build-module/components/provider/use-post-content-block-types.mjs +23 -0
  203. package/build-module/components/provider/use-post-content-block-types.mjs.map +7 -0
  204. package/build-module/components/provider/use-revision-blocks.mjs +81 -0
  205. package/build-module/components/provider/use-revision-blocks.mjs.map +7 -0
  206. package/build-module/components/revision-block-diff/index.mjs +30 -0
  207. package/build-module/components/revision-block-diff/index.mjs.map +7 -0
  208. package/build-module/components/revision-diff-panel/index.mjs +37 -0
  209. package/build-module/components/revision-diff-panel/index.mjs.map +7 -0
  210. package/build-module/components/revision-fields-diff/index.mjs +65 -0
  211. package/build-module/components/revision-fields-diff/index.mjs.map +7 -0
  212. package/build-module/components/sidebar/header.mjs +1 -1
  213. package/build-module/components/sidebar/header.mjs.map +2 -2
  214. package/build-module/components/sidebar/index.mjs +7 -1
  215. package/build-module/components/sidebar/index.mjs.map +2 -2
  216. package/build-module/components/style-book/index.mjs +4 -3
  217. package/build-module/components/style-book/index.mjs.map +2 -2
  218. package/build-module/components/sync-connection-error-modal/index.mjs +170 -0
  219. package/build-module/components/sync-connection-error-modal/index.mjs.map +7 -0
  220. package/build-module/components/sync-connection-error-modal/use-retry-countdown.mjs +59 -0
  221. package/build-module/components/sync-connection-error-modal/use-retry-countdown.mjs.map +7 -0
  222. package/build-module/components/template-content-panel/index.mjs +25 -31
  223. package/build-module/components/template-content-panel/index.mjs.map +2 -2
  224. package/build-module/components/template-part-menu-items/convert-to-regular.mjs +60 -14
  225. package/build-module/components/template-part-menu-items/convert-to-regular.mjs.map +2 -2
  226. package/build-module/components/visual-editor/index.mjs +6 -15
  227. package/build-module/components/visual-editor/index.mjs.map +2 -2
  228. package/build-module/store/private-actions.mjs +44 -2
  229. package/build-module/store/private-actions.mjs.map +2 -2
  230. package/build-module/store/private-selectors.mjs +153 -29
  231. package/build-module/store/private-selectors.mjs.map +2 -2
  232. package/build-module/store/reducer.mjs +25 -0
  233. package/build-module/store/reducer.mjs.map +2 -2
  234. package/build-module/store/selectors.mjs +0 -13
  235. package/build-module/store/selectors.mjs.map +2 -2
  236. package/build-module/utils/media-finalize/index.mjs +12 -0
  237. package/build-module/utils/media-finalize/index.mjs.map +7 -0
  238. package/build-module/utils/media-upload/on-success.mjs +25 -0
  239. package/build-module/utils/media-upload/on-success.mjs.map +7 -0
  240. package/build-module/utils/sync-error-messages.mjs +27 -15
  241. package/build-module/utils/sync-error-messages.mjs.map +3 -3
  242. package/build-style/style-rtl.css +296 -121
  243. package/build-style/style.css +296 -121
  244. package/build-types/components/autocompleters/link.d.ts +8 -0
  245. package/build-types/components/autocompleters/link.d.ts.map +1 -0
  246. package/build-types/components/collab-sidebar/add-comment.d.ts.map +1 -1
  247. package/build-types/components/collab-sidebar/add-note-menu-item.d.ts +5 -0
  248. package/build-types/components/collab-sidebar/add-note-menu-item.d.ts.map +1 -0
  249. package/build-types/components/collab-sidebar/add-note.d.ts +6 -0
  250. package/build-types/components/collab-sidebar/add-note.d.ts.map +1 -0
  251. package/build-types/components/collab-sidebar/board-store.d.ts +9 -0
  252. package/build-types/components/collab-sidebar/board-store.d.ts.map +1 -0
  253. package/build-types/components/collab-sidebar/floating-container.d.ts +8 -0
  254. package/build-types/components/collab-sidebar/floating-container.d.ts.map +1 -0
  255. package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
  256. package/build-types/components/collab-sidebar/note-byline.d.ts +10 -0
  257. package/build-types/components/collab-sidebar/note-byline.d.ts.map +1 -0
  258. package/build-types/components/collab-sidebar/note-card.d.ts +8 -0
  259. package/build-types/components/collab-sidebar/note-card.d.ts.map +1 -0
  260. package/build-types/components/collab-sidebar/note-form.d.ts +7 -0
  261. package/build-types/components/collab-sidebar/note-form.d.ts.map +1 -0
  262. package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts +5 -0
  263. package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts.map +1 -0
  264. package/build-types/components/collab-sidebar/note-thread.d.ts +11 -0
  265. package/build-types/components/collab-sidebar/note-thread.d.ts.map +1 -0
  266. package/build-types/components/collab-sidebar/note.d.ts +9 -0
  267. package/build-types/components/collab-sidebar/note.d.ts.map +1 -0
  268. package/build-types/components/collab-sidebar/notes.d.ts +7 -0
  269. package/build-types/components/collab-sidebar/notes.d.ts.map +1 -0
  270. package/build-types/components/collab-sidebar/utils.d.ts.map +1 -1
  271. package/build-types/components/collaborators-overlay/avatar-iframe-styles.d.ts +11 -0
  272. package/build-types/components/collaborators-overlay/avatar-iframe-styles.d.ts.map +1 -0
  273. package/build-types/components/collaborators-overlay/collaborator-styles.d.ts +17 -2
  274. package/build-types/components/collaborators-overlay/collaborator-styles.d.ts.map +1 -1
  275. package/build-types/components/collaborators-overlay/compute-selection.d.ts +24 -0
  276. package/build-types/components/collaborators-overlay/compute-selection.d.ts.map +1 -0
  277. package/build-types/components/collaborators-overlay/cursor-dom-utils.d.ts +72 -0
  278. package/build-types/components/collaborators-overlay/cursor-dom-utils.d.ts.map +1 -0
  279. package/build-types/components/collaborators-overlay/cursor-registry.d.ts +36 -0
  280. package/build-types/components/collaborators-overlay/cursor-registry.d.ts.map +1 -0
  281. package/build-types/components/collaborators-overlay/index.d.ts +7 -4
  282. package/build-types/components/collaborators-overlay/index.d.ts.map +1 -1
  283. package/build-types/components/collaborators-overlay/overlay-iframe-styles.d.ts +6 -0
  284. package/build-types/components/collaborators-overlay/overlay-iframe-styles.d.ts.map +1 -0
  285. package/build-types/components/collaborators-overlay/overlay.d.ts +4 -1
  286. package/build-types/components/collaborators-overlay/overlay.d.ts.map +1 -1
  287. package/build-types/components/collaborators-overlay/timing-utils.d.ts +11 -0
  288. package/build-types/components/collaborators-overlay/timing-utils.d.ts.map +1 -0
  289. package/build-types/components/collaborators-overlay/use-block-highlighting.d.ts +21 -5
  290. package/build-types/components/collaborators-overlay/use-block-highlighting.d.ts.map +1 -1
  291. package/build-types/components/collaborators-overlay/use-debounced-recompute.d.ts +10 -0
  292. package/build-types/components/collaborators-overlay/use-debounced-recompute.d.ts.map +1 -0
  293. package/build-types/components/collaborators-overlay/use-render-cursors.d.ts +6 -1
  294. package/build-types/components/collaborators-overlay/use-render-cursors.d.ts.map +1 -1
  295. package/build-types/components/collaborators-presence/avatar/component.d.ts +7 -0
  296. package/build-types/components/collaborators-presence/avatar/component.d.ts.map +1 -0
  297. package/build-types/components/collaborators-presence/avatar/index.d.ts +3 -0
  298. package/build-types/components/collaborators-presence/avatar/index.d.ts.map +1 -0
  299. package/build-types/components/collaborators-presence/avatar/types.d.ts +66 -0
  300. package/build-types/components/collaborators-presence/avatar/types.d.ts.map +1 -0
  301. package/build-types/components/collaborators-presence/avatar/use-image-loading-status.d.ts +17 -0
  302. package/build-types/components/collaborators-presence/avatar/use-image-loading-status.d.ts.map +1 -0
  303. package/build-types/components/collaborators-presence/avatar-group/component.d.ts +7 -0
  304. package/build-types/components/collaborators-presence/avatar-group/component.d.ts.map +1 -0
  305. package/build-types/components/collaborators-presence/avatar-group/index.d.ts +3 -0
  306. package/build-types/components/collaborators-presence/avatar-group/index.d.ts.map +1 -0
  307. package/build-types/components/collaborators-presence/avatar-group/types.d.ts +14 -0
  308. package/build-types/components/collaborators-presence/avatar-group/types.d.ts.map +1 -0
  309. package/build-types/components/collaborators-presence/index.d.ts.map +1 -1
  310. package/build-types/components/collaborators-presence/list.d.ts +6 -2
  311. package/build-types/components/collaborators-presence/list.d.ts.map +1 -1
  312. package/build-types/components/collaborators-presence/use-collaborator-notifications.d.ts +9 -0
  313. package/build-types/components/collaborators-presence/use-collaborator-notifications.d.ts.map +1 -0
  314. package/build-types/components/editor-interface/index.d.ts.map +1 -1
  315. package/build-types/components/inserter-sidebar/index.d.ts.map +1 -1
  316. package/build-types/components/media/media-editor-modal.d.ts +15 -0
  317. package/build-types/components/media/media-editor-modal.d.ts.map +1 -0
  318. package/build-types/components/more-menu/copy-content-menu-item.d.ts.map +1 -1
  319. package/build-types/components/post-last-revision/index.d.ts.map +1 -1
  320. package/build-types/components/post-locked-modal/index.d.ts.map +1 -1
  321. package/build-types/components/post-revisions-panel/index.d.ts +2 -0
  322. package/build-types/components/post-revisions-panel/index.d.ts.map +1 -0
  323. package/build-types/components/post-revisions-preview/block-diff.d.ts.map +1 -1
  324. package/build-types/components/post-revisions-preview/diff-markers.d.ts.map +1 -1
  325. package/build-types/components/post-revisions-preview/revisions-canvas.d.ts +2 -5
  326. package/build-types/components/post-revisions-preview/revisions-canvas.d.ts.map +1 -1
  327. package/build-types/components/post-revisions-preview/revisions-slider.d.ts +1 -1
  328. package/build-types/components/post-revisions-preview/revisions-slider.d.ts.map +1 -1
  329. package/build-types/components/post-text-editor/index.d.ts.map +1 -1
  330. package/build-types/components/post-text-editor/utils.d.ts +29 -0
  331. package/build-types/components/post-text-editor/utils.d.ts.map +1 -0
  332. package/build-types/components/provider/disable-non-page-content-blocks.d.ts.map +1 -1
  333. package/build-types/components/provider/index.d.ts.map +1 -1
  334. package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
  335. package/build-types/components/provider/use-network-reconnect.d.ts +8 -0
  336. package/build-types/components/provider/use-network-reconnect.d.ts.map +1 -0
  337. package/build-types/components/provider/use-post-content-block-types.d.ts +9 -0
  338. package/build-types/components/provider/use-post-content-block-types.d.ts.map +1 -0
  339. package/build-types/components/provider/use-revision-blocks.d.ts +10 -0
  340. package/build-types/components/provider/use-revision-blocks.d.ts.map +1 -0
  341. package/build-types/components/revision-block-diff/index.d.ts +6 -0
  342. package/build-types/components/revision-block-diff/index.d.ts.map +1 -0
  343. package/build-types/components/revision-diff-panel/index.d.ts +14 -0
  344. package/build-types/components/revision-diff-panel/index.d.ts.map +1 -0
  345. package/build-types/components/revision-fields-diff/index.d.ts +6 -0
  346. package/build-types/components/revision-fields-diff/index.d.ts.map +1 -0
  347. package/build-types/components/sidebar/dataform-post-summary.d.ts +4 -0
  348. package/build-types/components/sidebar/dataform-post-summary.d.ts.map +1 -0
  349. package/build-types/components/sidebar/index.d.ts.map +1 -1
  350. package/build-types/components/sidebar/post-revision-summary.d.ts +2 -0
  351. package/build-types/components/sidebar/post-revision-summary.d.ts.map +1 -0
  352. package/build-types/components/style-book/index.d.ts +2 -1
  353. package/build-types/components/style-book/index.d.ts.map +1 -1
  354. package/build-types/components/sync-connection-error-modal/index.d.ts +8 -0
  355. package/build-types/components/sync-connection-error-modal/index.d.ts.map +1 -0
  356. package/build-types/components/sync-connection-error-modal/use-retry-countdown.d.ts +11 -0
  357. package/build-types/components/sync-connection-error-modal/use-retry-countdown.d.ts.map +1 -0
  358. package/build-types/components/template-actions-panel/block-theme-content.d.ts +2 -0
  359. package/build-types/components/template-actions-panel/block-theme-content.d.ts.map +1 -0
  360. package/build-types/components/template-actions-panel/classic-theme-content.d.ts +2 -0
  361. package/build-types/components/template-actions-panel/classic-theme-content.d.ts.map +1 -0
  362. package/build-types/components/template-actions-panel/index.d.ts +2 -0
  363. package/build-types/components/template-actions-panel/index.d.ts.map +1 -0
  364. package/build-types/components/template-content-panel/index.d.ts.map +1 -1
  365. package/build-types/components/template-part-menu-items/convert-to-regular.d.ts.map +1 -1
  366. package/build-types/components/upload-progress-snackbar/index.d.ts +19 -0
  367. package/build-types/components/upload-progress-snackbar/index.d.ts.map +1 -0
  368. package/build-types/components/upload-progress-snackbar/stories/index.story.d.ts +28 -0
  369. package/build-types/components/upload-progress-snackbar/stories/index.story.d.ts.map +1 -0
  370. package/build-types/components/upload-progress-snackbar/tracker.d.ts +41 -0
  371. package/build-types/components/upload-progress-snackbar/tracker.d.ts.map +1 -0
  372. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  373. package/build-types/store/private-actions.d.ts +12 -0
  374. package/build-types/store/private-actions.d.ts.map +1 -1
  375. package/build-types/store/private-selectors.d.ts +45 -0
  376. package/build-types/store/private-selectors.d.ts.map +1 -1
  377. package/build-types/store/reducer.d.ts +21 -0
  378. package/build-types/store/reducer.d.ts.map +1 -1
  379. package/build-types/store/selectors.d.ts +0 -10
  380. package/build-types/store/selectors.d.ts.map +1 -1
  381. package/build-types/utils/media-delete/index.d.ts +2 -0
  382. package/build-types/utils/media-delete/index.d.ts.map +1 -0
  383. package/build-types/utils/media-finalize/index.d.ts +2 -0
  384. package/build-types/utils/media-finalize/index.d.ts.map +1 -0
  385. package/build-types/utils/media-upload/on-success.d.ts +9 -0
  386. package/build-types/utils/media-upload/on-success.d.ts.map +1 -0
  387. package/build-types/utils/sync-error-messages.d.ts +17 -3
  388. package/build-types/utils/sync-error-messages.d.ts.map +1 -1
  389. package/package.json +45 -44
  390. package/src/components/collab-sidebar/add-comment.js +0 -4
  391. package/src/components/collab-sidebar/comments.js +0 -5
  392. package/src/components/collab-sidebar/index.js +7 -4
  393. package/src/components/collab-sidebar/utils.js +9 -10
  394. package/src/components/collaborators-overlay/avatar-iframe-styles.ts +134 -0
  395. package/src/components/collaborators-overlay/collaborator-styles.ts +43 -2
  396. package/src/components/collaborators-overlay/compute-selection.ts +315 -0
  397. package/src/components/collaborators-overlay/cursor-dom-utils.ts +382 -0
  398. package/src/components/collaborators-overlay/cursor-registry.ts +96 -0
  399. package/src/components/collaborators-overlay/index.tsx +12 -4
  400. package/src/components/collaborators-overlay/overlay-iframe-styles.ts +131 -0
  401. package/src/components/collaborators-overlay/overlay.tsx +145 -223
  402. package/src/components/collaborators-overlay/timing-utils.ts +30 -0
  403. package/src/components/collaborators-overlay/use-block-highlighting.ts +152 -64
  404. package/src/components/collaborators-overlay/use-debounced-recompute.ts +32 -0
  405. package/src/components/collaborators-overlay/use-render-cursors.ts +120 -282
  406. package/src/components/collaborators-presence/avatar/component.tsx +123 -0
  407. package/src/components/collaborators-presence/avatar/index.ts +2 -0
  408. package/src/components/collaborators-presence/avatar/styles.scss +184 -0
  409. package/src/components/collaborators-presence/avatar/test/index.tsx +389 -0
  410. package/src/components/collaborators-presence/avatar/types.ts +66 -0
  411. package/src/components/collaborators-presence/avatar/use-image-loading-status.ts +36 -0
  412. package/src/components/collaborators-presence/avatar-group/component.tsx +55 -0
  413. package/src/components/collaborators-presence/avatar-group/index.ts +2 -0
  414. package/src/components/collaborators-presence/avatar-group/styles.scss +33 -0
  415. package/src/components/collaborators-presence/avatar-group/test/index.tsx +139 -0
  416. package/src/components/collaborators-presence/avatar-group/types.ts +13 -0
  417. package/src/components/collaborators-presence/index.tsx +43 -12
  418. package/src/components/collaborators-presence/list.tsx +68 -40
  419. package/src/components/collaborators-presence/styles/collaborators-list.scss +26 -19
  420. package/src/components/collaborators-presence/styles/collaborators-presence.scss +6 -2
  421. package/src/components/collaborators-presence/test/use-collaborator-notifications.ts +397 -0
  422. package/src/components/collaborators-presence/use-collaborator-notifications.ts +203 -0
  423. package/src/components/document-bar/style.scss +1 -1
  424. package/src/components/editor-interface/index.js +13 -6
  425. package/src/components/inserter-sidebar/index.js +4 -1
  426. package/src/components/more-menu/copy-content-menu-item.js +20 -2
  427. package/src/components/post-last-revision/index.js +35 -6
  428. package/src/components/post-last-revision/style.scss +0 -3
  429. package/src/components/post-locked-modal/index.js +69 -25
  430. package/src/components/post-panel-row/style.scss +1 -0
  431. package/src/components/post-revisions-preview/block-diff.js +224 -61
  432. package/src/components/post-revisions-preview/diff-markers.js +15 -12
  433. package/src/components/post-revisions-preview/revisions-canvas.js +23 -86
  434. package/src/components/post-revisions-preview/revisions-slider.js +136 -63
  435. package/src/components/post-revisions-preview/style.scss +3 -3
  436. package/src/components/post-revisions-preview/test/block-diff.js +202 -35
  437. package/src/components/post-text-editor/index.js +25 -6
  438. package/src/components/preferences-modal/index.js +37 -7
  439. package/src/components/provider/disable-non-page-content-blocks.js +42 -40
  440. package/src/components/provider/index.js +20 -2
  441. package/src/components/provider/use-block-editor-settings.js +21 -1
  442. package/src/components/provider/use-post-content-block-types.js +30 -0
  443. package/src/components/provider/use-revision-blocks.js +105 -0
  444. package/src/components/revision-block-diff/index.js +39 -0
  445. package/src/components/revision-diff-panel/index.js +59 -0
  446. package/src/components/revision-diff-panel/style.scss +13 -0
  447. package/src/components/revision-fields-diff/index.js +91 -0
  448. package/src/components/sidebar/header.js +1 -1
  449. package/src/components/sidebar/index.js +4 -0
  450. package/src/components/style-book/index.js +4 -2
  451. package/src/components/sync-connection-error-modal/index.tsx +253 -0
  452. package/src/components/sync-connection-error-modal/style.scss +14 -0
  453. package/src/components/sync-connection-error-modal/use-retry-countdown.ts +93 -0
  454. package/src/components/template-content-panel/index.js +30 -38
  455. package/src/components/template-part-menu-items/convert-to-regular.js +74 -12
  456. package/src/components/visual-editor/index.js +6 -23
  457. package/src/store/private-actions.js +70 -1
  458. package/src/store/private-selectors.js +215 -37
  459. package/src/store/reducer.js +41 -0
  460. package/src/store/selectors.js +0 -19
  461. package/src/style.scss +4 -1
  462. package/src/utils/media-finalize/index.js +11 -0
  463. package/src/utils/media-finalize/test/index.js +34 -0
  464. package/src/utils/media-upload/on-success.js +34 -0
  465. package/src/utils/sync-error-messages.ts +72 -0
  466. package/src/utils/test/sync-error-messages.js +34 -0
  467. package/build/components/provider/use-post-content-blocks.cjs.map +0 -7
  468. package/build/components/sync-connection-modal/index.cjs +0 -130
  469. package/build/components/sync-connection-modal/index.cjs.map +0 -7
  470. package/build-module/components/provider/use-post-content-blocks.mjs +0 -34
  471. package/build-module/components/provider/use-post-content-blocks.mjs.map +0 -7
  472. package/build-module/components/sync-connection-modal/index.mjs +0 -114
  473. package/build-module/components/sync-connection-modal/index.mjs.map +0 -7
  474. package/build-types/components/provider/use-post-content-blocks.d.ts +0 -2
  475. package/build-types/components/provider/use-post-content-blocks.d.ts.map +0 -1
  476. package/build-types/components/sync-connection-modal/index.d.ts +0 -8
  477. package/build-types/components/sync-connection-modal/index.d.ts.map +0 -1
  478. package/src/components/provider/use-post-content-blocks.js +0 -42
  479. package/src/components/sync-connection-modal/index.js +0 -140
  480. package/src/components/sync-connection-modal/style.scss +0 -11
  481. package/src/utils/sync-error-messages.js +0 -53
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/provider/disable-non-page-content-blocks.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport usePostContentBlocks from './use-post-content-blocks';\n\n/**\n * Component that when rendered, makes it so that the site editor allows only\n * page content to be edited.\n */\nexport default function DisableNonPageContentBlocks() {\n\tconst contentOnlyIds = usePostContentBlocks();\n\tconst { templateParts } = useSelect( ( select ) => {\n\t\tconst { getBlocksByName } = select( blockEditorStore );\n\t\treturn {\n\t\t\ttemplateParts: getBlocksByName( 'core/template-part' ),\n\t\t};\n\t}, [] );\n\tconst disabledIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder } = select( blockEditorStore );\n\t\t\treturn templateParts.flatMap( ( clientId ) =>\n\t\t\t\tgetBlockOrder( clientId )\n\t\t\t);\n\t\t},\n\t\t[ templateParts ]\n\t);\n\n\tconst registry = useRegistry();\n\n\t// The code here is split into multiple `useEffects` calls.\n\t// This is done to avoid setting/unsetting block editing modes multiple times unnecessarily.\n\t//\n\t// For example, the block editing mode of the root block (clientId: '') only\n\t// needs to be set once, not when `contentOnlyIds` or `disabledIds` change.\n\t//\n\t// It's also unlikely that these different types of blocks are being inserted\n\t// or removed at the same time, so using different effects reflects that.\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tsetBlockEditingMode( '', 'disabled' );\n\n\t\treturn () => {\n\t\t\tunsetBlockEditingMode( '' );\n\t\t};\n\t}, [ registry ] );\n\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tregistry.batch( () => {\n\t\t\tfor ( const clientId of contentOnlyIds ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'contentOnly' );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tregistry.batch( () => {\n\t\t\t\tfor ( const clientId of contentOnlyIds ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t}, [ contentOnlyIds, registry ] );\n\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tregistry.batch( () => {\n\t\t\tfor ( const clientId of templateParts ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'contentOnly' );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tregistry.batch( () => {\n\t\t\t\tfor ( const clientId of templateParts ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t}, [ templateParts, registry ] );\n\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tregistry.batch( () => {\n\t\t\tfor ( const clientId of disabledIds ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'disabled' );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tregistry.batch( () => {\n\t\t\t\tfor ( const clientId of disabledIds ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t}, [ disabledIds, registry ] );\n\n\treturn null;\n}\n"],
5
- "mappings": ";AAGA,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,iBAAiB;AAK1B,OAAO,0BAA0B;AAMlB,SAAR,8BAA+C;AACrD,QAAM,iBAAiB,qBAAqB;AAC5C,QAAM,EAAE,cAAc,IAAI,UAAW,CAAE,WAAY;AAClD,UAAM,EAAE,gBAAgB,IAAI,OAAQ,gBAAiB;AACrD,WAAO;AAAA,MACN,eAAe,gBAAiB,oBAAqB;AAAA,IACtD;AAAA,EACD,GAAG,CAAC,CAAE;AACN,QAAM,cAAc;AAAA,IACnB,CAAE,WAAY;AACb,YAAM,EAAE,cAAc,IAAI,OAAQ,gBAAiB;AACnD,aAAO,cAAc;AAAA,QAAS,CAAE,aAC/B,cAAe,QAAS;AAAA,MACzB;AAAA,IACD;AAAA,IACA,CAAE,aAAc;AAAA,EACjB;AAEA,QAAM,WAAW,YAAY;AAU7B,YAAW,MAAM;AAChB,UAAM,EAAE,qBAAqB,sBAAsB,IAClD,SAAS,SAAU,gBAAiB;AAErC,wBAAqB,IAAI,UAAW;AAEpC,WAAO,MAAM;AACZ,4BAAuB,EAAG;AAAA,IAC3B;AAAA,EACD,GAAG,CAAE,QAAS,CAAE;AAEhB,YAAW,MAAM;AAChB,UAAM,EAAE,qBAAqB,sBAAsB,IAClD,SAAS,SAAU,gBAAiB;AAErC,aAAS,MAAO,MAAM;AACrB,iBAAY,YAAY,gBAAiB;AACxC,4BAAqB,UAAU,aAAc;AAAA,MAC9C;AAAA,IACD,CAAE;AAEF,WAAO,MAAM;AACZ,eAAS,MAAO,MAAM;AACrB,mBAAY,YAAY,gBAAiB;AACxC,gCAAuB,QAAS;AAAA,QACjC;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,gBAAgB,QAAS,CAAE;AAEhC,YAAW,MAAM;AAChB,UAAM,EAAE,qBAAqB,sBAAsB,IAClD,SAAS,SAAU,gBAAiB;AAErC,aAAS,MAAO,MAAM;AACrB,iBAAY,YAAY,eAAgB;AACvC,4BAAqB,UAAU,aAAc;AAAA,MAC9C;AAAA,IACD,CAAE;AAEF,WAAO,MAAM;AACZ,eAAS,MAAO,MAAM;AACrB,mBAAY,YAAY,eAAgB;AACvC,gCAAuB,QAAS;AAAA,QACjC;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,eAAe,QAAS,CAAE;AAE/B,YAAW,MAAM;AAChB,UAAM,EAAE,qBAAqB,sBAAsB,IAClD,SAAS,SAAU,gBAAiB;AAErC,aAAS,MAAO,MAAM;AACrB,iBAAY,YAAY,aAAc;AACrC,4BAAqB,UAAU,UAAW;AAAA,MAC3C;AAAA,IACD,CAAE;AAEF,WAAO,MAAM;AACZ,eAAS,MAAO,MAAM;AACrB,mBAAY,YAAY,aAAc;AACrC,gCAAuB,QAAS;AAAA,QACjC;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,aAAa,QAAS,CAAE;AAE7B,SAAO;AACR;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport usePostContentBlockTypes from './use-post-content-block-types';\n\n/**\n * Component that when rendered, makes it so that the site editor allows only\n * page content to be edited.\n */\nexport default function DisableNonPageContentBlocks() {\n\tconst postContentBlockTypes = usePostContentBlockTypes();\n\tconst { contentOnlyIds, templateParts } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostBlocksByName } = unlock( select( editorStore ) );\n\t\t\tconst { getBlocksByName } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcontentOnlyIds: getPostBlocksByName( postContentBlockTypes ),\n\t\t\t\ttemplateParts: getBlocksByName( 'core/template-part' ),\n\t\t\t};\n\t\t},\n\t\t[ postContentBlockTypes ]\n\t);\n\t// This is a separate `useSelect` because `templatePartChildren` is\n\t// derived via flatMap, which always produces a new array. Combining it\n\t// with the above subscription causes an infinite render loop: the new\n\t// array fails useSelect's shallow equality check \u2192 re-render \u2192 effect\n\t// fires setBlockEditingMode \u2192 store changes \u2192 useSelect re-runs \u2192 \u2026\n\tconst templatePartChildren = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder } = select( blockEditorStore );\n\t\t\treturn templateParts.flatMap( ( clientId ) =>\n\t\t\t\tgetBlockOrder( clientId )\n\t\t\t);\n\t\t},\n\t\t[ templateParts ]\n\t);\n\n\tconst registry = useRegistry();\n\n\t// The effects below are split so that changes to one group of blocks\n\t// don't cause unnecessary set/unset cycles for the others. For example,\n\t// the root block ('') editing mode only needs to be set once.\n\t// Child blocks of templates and templateParts are also loaded separately,\n\t// so these are kept in separate effects.\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tsetBlockEditingMode( '', 'disabled' );\n\n\t\treturn () => {\n\t\t\tunsetBlockEditingMode( '' );\n\t\t};\n\t}, [ registry ] );\n\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tregistry.batch( () => {\n\t\t\tfor ( const clientId of templateParts ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'contentOnly' );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tregistry.batch( () => {\n\t\t\t\tfor ( const clientId of templateParts ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t}, [ templateParts, registry ] );\n\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tconst contentOnlySet = new Set( contentOnlyIds );\n\n\t\tregistry.batch( () => {\n\t\t\tfor ( const clientId of contentOnlyIds ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'contentOnly' );\n\t\t\t}\n\t\t\tfor ( const clientId of templatePartChildren ) {\n\t\t\t\tif ( ! contentOnlySet.has( clientId ) ) {\n\t\t\t\t\tsetBlockEditingMode( clientId, 'disabled' );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tregistry.batch( () => {\n\t\t\t\tfor ( const clientId of contentOnlyIds ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t\tfor ( const clientId of templatePartChildren ) {\n\t\t\t\t\tif ( ! contentOnlySet.has( clientId ) ) {\n\t\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t}, [ contentOnlyIds, templatePartChildren, registry ] );\n\n\treturn null;\n}\n"],
5
+ "mappings": ";AAGA,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,iBAAiB;AAK1B,SAAS,SAAS,mBAAmB;AACrC,SAAS,cAAc;AACvB,OAAO,8BAA8B;AAMtB,SAAR,8BAA+C;AACrD,QAAM,wBAAwB,yBAAyB;AACvD,QAAM,EAAE,gBAAgB,cAAc,IAAI;AAAA,IACzC,CAAE,WAAY;AACb,YAAM,EAAE,oBAAoB,IAAI,OAAQ,OAAQ,WAAY,CAAE;AAC9D,YAAM,EAAE,gBAAgB,IAAI,OAAQ,gBAAiB;AACrD,aAAO;AAAA,QACN,gBAAgB,oBAAqB,qBAAsB;AAAA,QAC3D,eAAe,gBAAiB,oBAAqB;AAAA,MACtD;AAAA,IACD;AAAA,IACA,CAAE,qBAAsB;AAAA,EACzB;AAMA,QAAM,uBAAuB;AAAA,IAC5B,CAAE,WAAY;AACb,YAAM,EAAE,cAAc,IAAI,OAAQ,gBAAiB;AACnD,aAAO,cAAc;AAAA,QAAS,CAAE,aAC/B,cAAe,QAAS;AAAA,MACzB;AAAA,IACD;AAAA,IACA,CAAE,aAAc;AAAA,EACjB;AAEA,QAAM,WAAW,YAAY;AAO7B,YAAW,MAAM;AAChB,UAAM,EAAE,qBAAqB,sBAAsB,IAClD,SAAS,SAAU,gBAAiB;AAErC,wBAAqB,IAAI,UAAW;AAEpC,WAAO,MAAM;AACZ,4BAAuB,EAAG;AAAA,IAC3B;AAAA,EACD,GAAG,CAAE,QAAS,CAAE;AAEhB,YAAW,MAAM;AAChB,UAAM,EAAE,qBAAqB,sBAAsB,IAClD,SAAS,SAAU,gBAAiB;AAErC,aAAS,MAAO,MAAM;AACrB,iBAAY,YAAY,eAAgB;AACvC,4BAAqB,UAAU,aAAc;AAAA,MAC9C;AAAA,IACD,CAAE;AAEF,WAAO,MAAM;AACZ,eAAS,MAAO,MAAM;AACrB,mBAAY,YAAY,eAAgB;AACvC,gCAAuB,QAAS;AAAA,QACjC;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,eAAe,QAAS,CAAE;AAE/B,YAAW,MAAM;AAChB,UAAM,EAAE,qBAAqB,sBAAsB,IAClD,SAAS,SAAU,gBAAiB;AAErC,UAAM,iBAAiB,IAAI,IAAK,cAAe;AAE/C,aAAS,MAAO,MAAM;AACrB,iBAAY,YAAY,gBAAiB;AACxC,4BAAqB,UAAU,aAAc;AAAA,MAC9C;AACA,iBAAY,YAAY,sBAAuB;AAC9C,YAAK,CAAE,eAAe,IAAK,QAAS,GAAI;AACvC,8BAAqB,UAAU,UAAW;AAAA,QAC3C;AAAA,MACD;AAAA,IACD,CAAE;AAEF,WAAO,MAAM;AACZ,eAAS,MAAO,MAAM;AACrB,mBAAY,YAAY,gBAAiB;AACxC,gCAAuB,QAAS;AAAA,QACjC;AACA,mBAAY,YAAY,sBAAuB;AAC9C,cAAK,CAAE,eAAe,IAAK,QAAS,GAAI;AACvC,kCAAuB,QAAS;AAAA,UACjC;AAAA,QACD;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,gBAAgB,sBAAsB,QAAS,CAAE;AAEtD,SAAO;AACR;",
6
6
  "names": []
7
7
  }
@@ -28,6 +28,7 @@ import { unlock } from "../../lock-unlock.mjs";
28
28
  import DisableNonPageContentBlocks from "./disable-non-page-content-blocks.mjs";
29
29
  import NavigationBlockEditingMode from "./navigation-block-editing-mode.mjs";
30
30
  import { useHideBlocksFromInserter } from "./use-hide-blocks-from-inserter.mjs";
31
+ import { useRevisionBlocks } from "./use-revision-blocks.mjs";
31
32
  import useCommands from "../commands/index.mjs";
32
33
  import useUploadSaveLock from "./use-upload-save-lock.mjs";
33
34
  import BlockRemovalWarnings from "../block-removal-warnings/index.mjs";
@@ -49,6 +50,7 @@ var NON_CONTEXTUAL_POST_TYPES = [
49
50
  "wp_template_part"
50
51
  ];
51
52
  function useBlockEditorProps(post, template, mode) {
53
+ const revisionBlocks = useRevisionBlocks();
52
54
  const rootLevelPost = mode === "template-locked" ? "template" : "post";
53
55
  const [postBlocks, onInput, onChange] = useEntityBlockEditor(
54
56
  "postType",
@@ -80,6 +82,9 @@ function useBlockEditorProps(post, template, mode) {
80
82
  }
81
83
  return postBlocks;
82
84
  }, [maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks]);
85
+ if (revisionBlocks !== null) {
86
+ return [revisionBlocks, noop, noop];
87
+ }
83
88
  const disableRootLevelChanges = !!template && mode === "template-locked" || post.type === "wp_navigation";
84
89
  if (disableRootLevelChanges) {
85
90
  return [blocks, noop, noop];
@@ -107,14 +112,18 @@ var ExperimentalEditorProvider = withRegistryProvider(
107
112
  isReady,
108
113
  mode,
109
114
  defaultMode,
110
- postTypeEntities
115
+ postTypeEntities,
116
+ isInRevisionsMode,
117
+ currentRevisionId
111
118
  } = useSelect(
112
119
  (select) => {
113
120
  const {
114
121
  getEditorSettings,
115
122
  getRenderingMode,
116
123
  __unstableIsEditorReady,
117
- getDefaultRenderingMode
124
+ getDefaultRenderingMode,
125
+ isRevisionsMode: _isRevisionsMode,
126
+ getCurrentRevisionId: _getCurrentRevisionId
118
127
  } = unlock(select(editorStore));
119
128
  const { getEntitiesConfig, getEntityRecordEdits } = select(coreStore);
120
129
  const _mode = getRenderingMode();
@@ -132,7 +141,9 @@ var ExperimentalEditorProvider = withRegistryProvider(
132
141
  mode: isRenderingModeReady ? _mode : void 0,
133
142
  defaultMode: hasResolvedDefaultMode ? _defaultMode : void 0,
134
143
  selection: entityEdits?.selection,
135
- postTypeEntities: post.type === "wp_template" ? getEntitiesConfig("postType") : null
144
+ postTypeEntities: post.type === "wp_template" ? getEntitiesConfig("postType") : null,
145
+ isInRevisionsMode: _isRevisionsMode(),
146
+ currentRevisionId: _getCurrentRevisionId()
136
147
  };
137
148
  },
138
149
  [post.type, post.id, hasTemplate]
@@ -277,14 +288,15 @@ var ExperimentalEditorProvider = withRegistryProvider(
277
288
  kind: "postType",
278
289
  type: post.type,
279
290
  id: post.id,
291
+ revisionId: currentRevisionId ?? void 0,
280
292
  children: /* @__PURE__ */ jsx(BlockContextProvider, { value: defaultBlockContext, children: /* @__PURE__ */ jsxs(
281
293
  BlockEditorProviderComponent,
282
294
  {
283
295
  value: blocks,
284
296
  onChange,
285
297
  onInput,
286
- selection,
287
- onChangeSelection,
298
+ selection: isInRevisionsMode ? void 0 : selection,
299
+ onChangeSelection: isInRevisionsMode ? noop : onChangeSelection,
288
300
  settings: blockEditorSettings,
289
301
  useSubRegistry: false,
290
302
  children: [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/provider/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tEntityProvider,\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport { ATTACHMENT_POST_TYPE } from '../../store/constants';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lock-unlock';\nimport DisableNonPageContentBlocks from './disable-non-page-content-blocks';\nimport NavigationBlockEditingMode from './navigation-block-editing-mode';\nimport { useHideBlocksFromInserter } from './use-hide-blocks-from-inserter';\nimport useCommands from '../commands';\nimport useUploadSaveLock from './use-upload-save-lock';\nimport BlockRemovalWarnings from '../block-removal-warnings';\nimport StartPageOptions from '../start-page-options';\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport StartTemplateOptions from '../start-template-options';\nimport EditorKeyboardShortcuts from '../global-keyboard-shortcuts';\nimport PatternRenameModal from '../pattern-rename-modal';\nimport PatternDuplicateModal from '../pattern-duplicate-modal';\nimport TemplatePartMenuItems from '../template-part-menu-items';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * These are global entities that are only there to split blocks into logical units\n * They don't provide a \"context\" for the current post/page being rendered.\n * So we should not use their ids as post context. This is important to allow post blocks\n * (post content, post title) to be used within them without issues.\n */\nconst NON_CONTEXTUAL_POST_TYPES = [\n\t'wp_block',\n\t'wp_navigation',\n\t'wp_template_part',\n];\n\n/**\n * Depending on the post, template and template mode,\n * returns the appropriate blocks and change handlers for the block editor provider.\n *\n * @param {Array} post Block list.\n * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.\n * @param {string} mode Rendering mode.\n *\n * @example\n * ```jsx\n * const [ blocks, onInput, onChange ] = useBlockEditorProps( post, template, mode );\n * ```\n *\n * @return {Array} Block editor props.\n */\nfunction useBlockEditorProps( post, template, mode ) {\n\tconst rootLevelPost = mode === 'template-locked' ? 'template' : 'post';\n\tconst [ postBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpost.type,\n\t\t{ id: post.id }\n\t);\n\tconst [ templateBlocks, onInputTemplate, onChangeTemplate ] =\n\t\tuseEntityBlockEditor( 'postType', template?.type, {\n\t\t\tid: template?.id,\n\t\t} );\n\tconst maybeNavigationBlocks = useMemo( () => {\n\t\tif ( post.type === 'wp_navigation' ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\t\tref: post.id,\n\t\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t\t// the block's content.\n\t\t\t\t\ttemplateLock: false,\n\t\t\t\t} ),\n\t\t\t];\n\t\t}\n\t}, [ post.type, post.id ] );\n\n\t// It is important that we don't create a new instance of blocks on every change\n\t// We should only create a new instance if the blocks them selves change, not a dependency of them.\n\tconst blocks = useMemo( () => {\n\t\tif ( maybeNavigationBlocks ) {\n\t\t\treturn maybeNavigationBlocks;\n\t\t}\n\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [ maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks ] );\n\n\t// Handle fallback to postBlocks outside of the above useMemo, to ensure\n\t// that constructed block templates that call `createBlock` are not generated\n\t// too frequently. This ensures that clientIds are stable.\n\tconst disableRootLevelChanges =\n\t\t( !! template && mode === 'template-locked' ) ||\n\t\tpost.type === 'wp_navigation';\n\tif ( disableRootLevelChanges ) {\n\t\treturn [ blocks, noop, noop ];\n\t}\n\n\treturn [\n\t\tblocks,\n\t\trootLevelPost === 'post' ? onInput : onInputTemplate,\n\t\trootLevelPost === 'post' ? onChange : onChangeTemplate,\n\t];\n}\n\n/**\n * This component provides the editor context and manages the state of the block editor.\n *\n * @param {Object} props The component props.\n * @param {Object} props.post The post object.\n * @param {Object} props.settings The editor settings.\n * @param {boolean} props.recovery Indicates if the editor is in recovery mode.\n * @param {Array} props.initialEdits The initial edits for the editor.\n * @param {Object} props.children The child components.\n * @param {Object} [props.BlockEditorProviderComponent] The block editor provider component to use. Defaults to ExperimentalBlockEditorProvider.\n * @param {Object} [props.__unstableTemplate] The template object.\n *\n * @example\n * ```jsx\n * <ExperimentalEditorProvider\n * post={ post }\n * settings={ settings }\n * recovery={ recovery }\n * initialEdits={ initialEdits }\n * __unstableTemplate={ template }\n * >\n * { children }\n * </ExperimentalEditorProvider>\n *\n * @return {Object} The rendered ExperimentalEditorProvider component.\n */\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t\t__unstableTemplate: template,\n\t} ) => {\n\t\tconst hasTemplate = !! template;\n\t\tconst {\n\t\t\teditorSettings,\n\t\t\tselection,\n\t\t\tisReady,\n\t\t\tmode,\n\t\t\tdefaultMode,\n\t\t\tpostTypeEntities,\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetRenderingMode,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t\tgetDefaultRenderingMode,\n\t\t\t\t} = unlock( select( editorStore ) );\n\t\t\t\tconst { getEntitiesConfig, getEntityRecordEdits } =\n\t\t\t\t\tselect( coreStore );\n\n\t\t\t\tconst _mode = getRenderingMode();\n\t\t\t\tconst _defaultMode = getDefaultRenderingMode( post.type );\n\t\t\t\t/**\n\t\t\t\t * To avoid content \"flash\", wait until rendering mode has been resolved.\n\t\t\t\t * This is important for the initial render of the editor.\n\t\t\t\t *\n\t\t\t\t * - Wait for template to be resolved if the default mode is 'template-locked'.\n\t\t\t\t * - Wait for default mode to be resolved otherwise.\n\t\t\t\t */\n\t\t\t\tconst hasResolvedDefaultMode =\n\t\t\t\t\t_defaultMode === 'template-locked'\n\t\t\t\t\t\t? hasTemplate\n\t\t\t\t\t\t: _defaultMode !== undefined;\n\t\t\t\t// Wait until the default mode is retrieved and start rendering canvas.\n\t\t\t\tconst isRenderingModeReady = _defaultMode !== undefined;\n\n\t\t\t\t// Read selection directly from entity edits using the post prop,\n\t\t\t\t// bypassing getCurrentPostId() which lags behind in useEffect.\n\t\t\t\tconst entityEdits = getEntityRecordEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpost.type,\n\t\t\t\t\tpost.id\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tmode: isRenderingModeReady ? _mode : undefined,\n\t\t\t\t\tdefaultMode: hasResolvedDefaultMode\n\t\t\t\t\t\t? _defaultMode\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tselection: entityEdits?.selection,\n\t\t\t\t\tpostTypeEntities:\n\t\t\t\t\t\tpost.type === 'wp_template'\n\t\t\t\t\t\t\t? getEntitiesConfig( 'postType' )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ post.type, post.id, hasTemplate ]\n\t\t);\n\n\t\tconst shouldRenderTemplate = hasTemplate && mode !== 'post-only';\n\t\tconst rootLevelPost = shouldRenderTemplate ? template : post;\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tconst postContext = {};\n\t\t\t// If it is a template, try to inherit the post type from the name.\n\t\t\tif ( post.type === 'wp_template' ) {\n\t\t\t\tif ( post.slug === 'page' ) {\n\t\t\t\t\tpostContext.postType = 'page';\n\t\t\t\t} else if ( post.slug === 'single' ) {\n\t\t\t\t\tpostContext.postType = 'post';\n\t\t\t\t} else if ( post.slug.split( '-' )[ 0 ] === 'single' ) {\n\t\t\t\t\t// If the slug is single-{postType}, infer the post type from the name.\n\t\t\t\t\tconst postTypeNames =\n\t\t\t\t\t\tpostTypeEntities?.map( ( entity ) => entity.name ) ||\n\t\t\t\t\t\t[];\n\t\t\t\t\tconst match = post.slug.match(\n\t\t\t\t\t\t`^single-(${ postTypeNames.join( '|' ) })(?:-.+)?$`\n\t\t\t\t\t);\n\t\t\t\t\tif ( match ) {\n\t\t\t\t\t\tpostContext.postType = match[ 1 ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\t! NON_CONTEXTUAL_POST_TYPES.includes( rootLevelPost.type ) ||\n\t\t\t\tshouldRenderTemplate\n\t\t\t) {\n\t\t\t\tpostContext.postId = post.id;\n\t\t\t\tpostContext.postType = post.type;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...postContext,\n\t\t\t\ttemplateSlug:\n\t\t\t\t\trootLevelPost.type === 'wp_template'\n\t\t\t\t\t\t? rootLevelPost.slug\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t}, [\n\t\t\tshouldRenderTemplate,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\tpost.slug,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost.slug,\n\t\t\tpostTypeEntities,\n\t\t] );\n\t\tconst { id, type } = rootLevelPost;\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\ttype,\n\t\t\tid,\n\t\t\tmode\n\t\t);\n\t\tconst [ blocks, onInput, onChange ] = useBlockEditorProps(\n\t\t\tpost,\n\t\t\ttemplate,\n\t\t\tmode\n\t\t);\n\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\tsetCurrentTemplateId,\n\t\t\tsetEditedPost,\n\t\t\tsetRenderingMode,\n\t\t} = unlock( useDispatch( editorStore ) );\n\t\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\t\tconst onChangeSelection = useCallback(\n\t\t\t( newSelection ) => {\n\t\t\t\teditEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpost.type,\n\t\t\t\t\tpost.id,\n\t\t\t\t\t{ selection: newSelection },\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\t\t\t},\n\t\t\t[ editEntityRecord, post.type, post.id ]\n\t\t);\n\t\tconst { createWarningNotice, removeNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\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\n\t\t\t// The dependencies of the hook are omitted deliberately\n\t\t\t// We only want to run setupEditor (with initialEdits) only once per post.\n\t\t\t// A better solution in the future would be to split this effect into multiple ones.\n\t\t}, [] );\n\n\t\t// Synchronizes the active post with the state\n\t\tuseEffect( () => {\n\t\t\tsetEditedPost( post.type, post.id );\n\t\t\tif (\n\t\t\t\ttypeof window !== 'undefined' &&\n\t\t\t\twindow.__experimentalTemplateActivate\n\t\t\t) {\n\t\t\t\t// Clear any notices dependent on the post context.\n\t\t\t\tremoveNotice( 'template-activate-notice' );\n\t\t\t}\n\n\t\t\treturn () => setEditedPost( null, null );\n\t\t}, [ post.type, post.id, setEditedPost, removeNotice ] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings, updateEditorSettings ] );\n\n\t\t// Synchronizes the active template with the state.\n\t\tuseEffect( () => {\n\t\t\tsetCurrentTemplateId( template?.id );\n\t\t}, [ template?.id, setCurrentTemplateId ] );\n\n\t\t// Sets the right rendering mode when loading the editor.\n\t\tuseEffect( () => {\n\t\t\tif ( defaultMode ) {\n\t\t\t\tsetRenderingMode( defaultMode );\n\t\t\t}\n\t\t}, [ defaultMode, setRenderingMode ] );\n\n\t\tuseHideBlocksFromInserter( post.type, mode );\n\n\t\t// Register the editor commands.\n\t\tuseCommands();\n\n\t\t// Lock post saving when media uploads are in progress (experimental feature).\n\t\tuseUploadSaveLock();\n\n\t\tif ( ! isReady || ! mode ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst isAttachment =\n\t\t\tpost.type === ATTACHMENT_POST_TYPE &&\n\t\t\twindow?.__experimentalMediaEditor;\n\n\t\t// Early return for attachments - no block editor needed\n\t\tif ( isAttachment ) {\n\t\t\treturn (\n\t\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\t\ttype={ post.type }\n\t\t\t\t\t\tid={ post.id }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t{ ! settings.isPreviewMode && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</EntityProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t{ ! settings.isPreviewMode && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<PatternsMenuItems />\n\t\t\t\t\t\t\t\t\t<TemplatePartMenuItems />\n\t\t\t\t\t\t\t\t\t{ mode === 'template-locked' && (\n\t\t\t\t\t\t\t\t\t\t<DisableNonPageContentBlocks />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ type === 'wp_navigation' && (\n\t\t\t\t\t\t\t\t\t\t<NavigationBlockEditingMode />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t\t\t\t\t\t\t<BlockRemovalWarnings />\n\t\t\t\t\t\t\t\t\t<StartPageOptions />\n\t\t\t\t\t\t\t\t\t<StartTemplateOptions />\n\t\t\t\t\t\t\t\t\t<PatternRenameModal />\n\t\t\t\t\t\t\t\t\t<PatternDuplicateModal />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\n/**\n * This component establishes a new post editing context, and serves as the entry point for a new post editor (or post with template editor).\n *\n * It supports a large number of post types, including post, page, templates,\n * custom post types, patterns, template parts.\n *\n * All modification and changes are performed to the `@wordpress/core-data` store.\n *\n * @param {Object} props The component props.\n * @param {Object} [props.post] The post object to edit. This is required.\n * @param {Object} [props.__unstableTemplate] The template object wrapper the edited post.\n * This is optional and can only be used when the post type supports templates (like posts and pages).\n * @param {Object} [props.settings] The settings object to use for the editor.\n * This is optional and can be used to override the default settings.\n * @param {React.ReactNode} [props.children] Children elements for which the BlockEditorProvider context should apply.\n * This is optional.\n *\n * @example\n * ```jsx\n * <EditorProvider\n * post={ post }\n * settings={ settings }\n * __unstableTemplate={ template }\n * >\n * { children }\n * </EditorProvider>\n * ```\n *\n * @return {React.ReactNode} The rendered EditorProvider component.\n */\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tEntityProvider,\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport { ATTACHMENT_POST_TYPE } from '../../store/constants';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lock-unlock';\nimport DisableNonPageContentBlocks from './disable-non-page-content-blocks';\nimport NavigationBlockEditingMode from './navigation-block-editing-mode';\nimport { useHideBlocksFromInserter } from './use-hide-blocks-from-inserter';\nimport { useRevisionBlocks } from './use-revision-blocks';\nimport useCommands from '../commands';\nimport useUploadSaveLock from './use-upload-save-lock';\nimport BlockRemovalWarnings from '../block-removal-warnings';\nimport StartPageOptions from '../start-page-options';\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport StartTemplateOptions from '../start-template-options';\nimport EditorKeyboardShortcuts from '../global-keyboard-shortcuts';\nimport PatternRenameModal from '../pattern-rename-modal';\nimport PatternDuplicateModal from '../pattern-duplicate-modal';\nimport TemplatePartMenuItems from '../template-part-menu-items';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * These are global entities that are only there to split blocks into logical units\n * They don't provide a \"context\" for the current post/page being rendered.\n * So we should not use their ids as post context. This is important to allow post blocks\n * (post content, post title) to be used within them without issues.\n */\nconst NON_CONTEXTUAL_POST_TYPES = [\n\t'wp_block',\n\t'wp_navigation',\n\t'wp_template_part',\n];\n\n/**\n * Depending on the post, template and template mode,\n * returns the appropriate blocks and change handlers for the block editor provider.\n *\n * @param {Array} post Block list.\n * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.\n * @param {string} mode Rendering mode.\n *\n * @example\n * ```jsx\n * const [ blocks, onInput, onChange ] = useBlockEditorProps( post, template, mode );\n * ```\n *\n * @return {Array} Block editor props.\n */\nfunction useBlockEditorProps( post, template, mode ) {\n\tconst revisionBlocks = useRevisionBlocks();\n\tconst rootLevelPost = mode === 'template-locked' ? 'template' : 'post';\n\tconst [ postBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpost.type,\n\t\t{ id: post.id }\n\t);\n\tconst [ templateBlocks, onInputTemplate, onChangeTemplate ] =\n\t\tuseEntityBlockEditor( 'postType', template?.type, {\n\t\t\tid: template?.id,\n\t\t} );\n\tconst maybeNavigationBlocks = useMemo( () => {\n\t\tif ( post.type === 'wp_navigation' ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\t\tref: post.id,\n\t\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t\t// the block's content.\n\t\t\t\t\ttemplateLock: false,\n\t\t\t\t} ),\n\t\t\t];\n\t\t}\n\t}, [ post.type, post.id ] );\n\n\t// It is important that we don't create a new instance of blocks on every change\n\t// We should only create a new instance if the blocks them selves change, not a dependency of them.\n\tconst blocks = useMemo( () => {\n\t\tif ( maybeNavigationBlocks ) {\n\t\t\treturn maybeNavigationBlocks;\n\t\t}\n\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [ maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks ] );\n\n\t// In revisions mode, use the revision blocks and disable editing.\n\tif ( revisionBlocks !== null ) {\n\t\treturn [ revisionBlocks, noop, noop ];\n\t}\n\n\t// Handle fallback to postBlocks outside of the above useMemo, to ensure\n\t// that constructed block templates that call `createBlock` are not generated\n\t// too frequently. This ensures that clientIds are stable.\n\tconst disableRootLevelChanges =\n\t\t( !! template && mode === 'template-locked' ) ||\n\t\tpost.type === 'wp_navigation';\n\tif ( disableRootLevelChanges ) {\n\t\treturn [ blocks, noop, noop ];\n\t}\n\n\treturn [\n\t\tblocks,\n\t\trootLevelPost === 'post' ? onInput : onInputTemplate,\n\t\trootLevelPost === 'post' ? onChange : onChangeTemplate,\n\t];\n}\n\n/**\n * This component provides the editor context and manages the state of the block editor.\n *\n * @param {Object} props The component props.\n * @param {Object} props.post The post object.\n * @param {Object} props.settings The editor settings.\n * @param {boolean} props.recovery Indicates if the editor is in recovery mode.\n * @param {Array} props.initialEdits The initial edits for the editor.\n * @param {Object} props.children The child components.\n * @param {Object} [props.BlockEditorProviderComponent] The block editor provider component to use. Defaults to ExperimentalBlockEditorProvider.\n * @param {Object} [props.__unstableTemplate] The template object.\n *\n * @example\n * ```jsx\n * <ExperimentalEditorProvider\n * post={ post }\n * settings={ settings }\n * recovery={ recovery }\n * initialEdits={ initialEdits }\n * __unstableTemplate={ template }\n * >\n * { children }\n * </ExperimentalEditorProvider>\n *\n * @return {Object} The rendered ExperimentalEditorProvider component.\n */\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t\t__unstableTemplate: template,\n\t} ) => {\n\t\tconst hasTemplate = !! template;\n\t\tconst {\n\t\t\teditorSettings,\n\t\t\tselection,\n\t\t\tisReady,\n\t\t\tmode,\n\t\t\tdefaultMode,\n\t\t\tpostTypeEntities,\n\t\t\tisInRevisionsMode,\n\t\t\tcurrentRevisionId,\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetRenderingMode,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t\tgetDefaultRenderingMode,\n\t\t\t\t\tisRevisionsMode: _isRevisionsMode,\n\t\t\t\t\tgetCurrentRevisionId: _getCurrentRevisionId,\n\t\t\t\t} = unlock( select( editorStore ) );\n\t\t\t\tconst { getEntitiesConfig, getEntityRecordEdits } =\n\t\t\t\t\tselect( coreStore );\n\n\t\t\t\tconst _mode = getRenderingMode();\n\t\t\t\tconst _defaultMode = getDefaultRenderingMode( post.type );\n\t\t\t\t/**\n\t\t\t\t * To avoid content \"flash\", wait until rendering mode has been resolved.\n\t\t\t\t * This is important for the initial render of the editor.\n\t\t\t\t *\n\t\t\t\t * - Wait for template to be resolved if the default mode is 'template-locked'.\n\t\t\t\t * - Wait for default mode to be resolved otherwise.\n\t\t\t\t */\n\t\t\t\tconst hasResolvedDefaultMode =\n\t\t\t\t\t_defaultMode === 'template-locked'\n\t\t\t\t\t\t? hasTemplate\n\t\t\t\t\t\t: _defaultMode !== undefined;\n\t\t\t\t// Wait until the default mode is retrieved and start rendering canvas.\n\t\t\t\tconst isRenderingModeReady = _defaultMode !== undefined;\n\n\t\t\t\t// Read selection directly from entity edits using the post prop,\n\t\t\t\t// bypassing getCurrentPostId() which lags behind in useEffect.\n\t\t\t\tconst entityEdits = getEntityRecordEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpost.type,\n\t\t\t\t\tpost.id\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tmode: isRenderingModeReady ? _mode : undefined,\n\t\t\t\t\tdefaultMode: hasResolvedDefaultMode\n\t\t\t\t\t\t? _defaultMode\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tselection: entityEdits?.selection,\n\t\t\t\t\tpostTypeEntities:\n\t\t\t\t\t\tpost.type === 'wp_template'\n\t\t\t\t\t\t\t? getEntitiesConfig( 'postType' )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\tisInRevisionsMode: _isRevisionsMode(),\n\t\t\t\t\tcurrentRevisionId: _getCurrentRevisionId(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ post.type, post.id, hasTemplate ]\n\t\t);\n\n\t\tconst shouldRenderTemplate = hasTemplate && mode !== 'post-only';\n\t\tconst rootLevelPost = shouldRenderTemplate ? template : post;\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tconst postContext = {};\n\t\t\t// If it is a template, try to inherit the post type from the name.\n\t\t\tif ( post.type === 'wp_template' ) {\n\t\t\t\tif ( post.slug === 'page' ) {\n\t\t\t\t\tpostContext.postType = 'page';\n\t\t\t\t} else if ( post.slug === 'single' ) {\n\t\t\t\t\tpostContext.postType = 'post';\n\t\t\t\t} else if ( post.slug.split( '-' )[ 0 ] === 'single' ) {\n\t\t\t\t\t// If the slug is single-{postType}, infer the post type from the name.\n\t\t\t\t\tconst postTypeNames =\n\t\t\t\t\t\tpostTypeEntities?.map( ( entity ) => entity.name ) ||\n\t\t\t\t\t\t[];\n\t\t\t\t\tconst match = post.slug.match(\n\t\t\t\t\t\t`^single-(${ postTypeNames.join( '|' ) })(?:-.+)?$`\n\t\t\t\t\t);\n\t\t\t\t\tif ( match ) {\n\t\t\t\t\t\tpostContext.postType = match[ 1 ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\t! NON_CONTEXTUAL_POST_TYPES.includes( rootLevelPost.type ) ||\n\t\t\t\tshouldRenderTemplate\n\t\t\t) {\n\t\t\t\tpostContext.postId = post.id;\n\t\t\t\tpostContext.postType = post.type;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...postContext,\n\t\t\t\ttemplateSlug:\n\t\t\t\t\trootLevelPost.type === 'wp_template'\n\t\t\t\t\t\t? rootLevelPost.slug\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t}, [\n\t\t\tshouldRenderTemplate,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\tpost.slug,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost.slug,\n\t\t\tpostTypeEntities,\n\t\t] );\n\t\tconst { id, type } = rootLevelPost;\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\ttype,\n\t\t\tid,\n\t\t\tmode\n\t\t);\n\t\tconst [ blocks, onInput, onChange ] = useBlockEditorProps(\n\t\t\tpost,\n\t\t\ttemplate,\n\t\t\tmode\n\t\t);\n\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\tsetCurrentTemplateId,\n\t\t\tsetEditedPost,\n\t\t\tsetRenderingMode,\n\t\t} = unlock( useDispatch( editorStore ) );\n\t\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\t\tconst onChangeSelection = useCallback(\n\t\t\t( newSelection ) => {\n\t\t\t\teditEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpost.type,\n\t\t\t\t\tpost.id,\n\t\t\t\t\t{ selection: newSelection },\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\t\t\t},\n\t\t\t[ editEntityRecord, post.type, post.id ]\n\t\t);\n\t\tconst { createWarningNotice, removeNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\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\n\t\t\t// The dependencies of the hook are omitted deliberately\n\t\t\t// We only want to run setupEditor (with initialEdits) only once per post.\n\t\t\t// A better solution in the future would be to split this effect into multiple ones.\n\t\t}, [] );\n\n\t\t// Synchronizes the active post with the state\n\t\tuseEffect( () => {\n\t\t\tsetEditedPost( post.type, post.id );\n\t\t\tif (\n\t\t\t\ttypeof window !== 'undefined' &&\n\t\t\t\twindow.__experimentalTemplateActivate\n\t\t\t) {\n\t\t\t\t// Clear any notices dependent on the post context.\n\t\t\t\tremoveNotice( 'template-activate-notice' );\n\t\t\t}\n\n\t\t\treturn () => setEditedPost( null, null );\n\t\t}, [ post.type, post.id, setEditedPost, removeNotice ] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings, updateEditorSettings ] );\n\n\t\t// Synchronizes the active template with the state.\n\t\tuseEffect( () => {\n\t\t\tsetCurrentTemplateId( template?.id );\n\t\t}, [ template?.id, setCurrentTemplateId ] );\n\n\t\t// Sets the right rendering mode when loading the editor.\n\t\tuseEffect( () => {\n\t\t\tif ( defaultMode ) {\n\t\t\t\tsetRenderingMode( defaultMode );\n\t\t\t}\n\t\t}, [ defaultMode, setRenderingMode ] );\n\n\t\tuseHideBlocksFromInserter( post.type, mode );\n\n\t\t// Register the editor commands.\n\t\tuseCommands();\n\n\t\t// Lock post saving when media uploads are in progress (experimental feature).\n\t\tuseUploadSaveLock();\n\n\t\tif ( ! isReady || ! mode ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst isAttachment =\n\t\t\tpost.type === ATTACHMENT_POST_TYPE &&\n\t\t\twindow?.__experimentalMediaEditor;\n\n\t\t// Early return for attachments - no block editor needed\n\t\tif ( isAttachment ) {\n\t\t\treturn (\n\t\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\t\ttype={ post.type }\n\t\t\t\t\t\tid={ post.id }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t{ ! settings.isPreviewMode && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</EntityProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t\trevisionId={ currentRevisionId ?? undefined }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={\n\t\t\t\t\t\t\t\tisInRevisionsMode ? undefined : selection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChangeSelection={\n\t\t\t\t\t\t\t\tisInRevisionsMode ? noop : onChangeSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t{ ! settings.isPreviewMode && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<PatternsMenuItems />\n\t\t\t\t\t\t\t\t\t<TemplatePartMenuItems />\n\t\t\t\t\t\t\t\t\t{ mode === 'template-locked' && (\n\t\t\t\t\t\t\t\t\t\t<DisableNonPageContentBlocks />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ type === 'wp_navigation' && (\n\t\t\t\t\t\t\t\t\t\t<NavigationBlockEditingMode />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t\t\t\t\t\t\t<BlockRemovalWarnings />\n\t\t\t\t\t\t\t\t\t<StartPageOptions />\n\t\t\t\t\t\t\t\t\t<StartTemplateOptions />\n\t\t\t\t\t\t\t\t\t<PatternRenameModal />\n\t\t\t\t\t\t\t\t\t<PatternDuplicateModal />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\n/**\n * This component establishes a new post editing context, and serves as the entry point for a new post editor (or post with template editor).\n *\n * It supports a large number of post types, including post, page, templates,\n * custom post types, patterns, template parts.\n *\n * All modification and changes are performed to the `@wordpress/core-data` store.\n *\n * @param {Object} props The component props.\n * @param {Object} [props.post] The post object to edit. This is required.\n * @param {Object} [props.__unstableTemplate] The template object wrapper the edited post.\n * This is optional and can only be used when the post type supports templates (like posts and pages).\n * @param {Object} [props.settings] The settings object to use for the editor.\n * This is optional and can be used to override the default settings.\n * @param {React.ReactNode} [props.children] Children elements for which the BlockEditorProvider context should apply.\n * This is optional.\n *\n * @example\n * ```jsx\n * <EditorProvider\n * post={ post }\n * settings={ settings }\n * __unstableTemplate={ template }\n * >\n * { children }\n * </EditorProvider>\n * ```\n *\n * @return {React.ReactNode} The rendered EditorProvider component.\n */\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,9 @@ import {
17
17
  } from "@wordpress/block-editor";
18
18
  import inserterMediaCategories from "../media-categories/index.mjs";
19
19
  import { mediaUpload } from "../../utils/index.mjs";
20
+ import mediaUploadOnSuccess from "../../utils/media-upload/on-success.mjs";
20
21
  import { default as mediaSideload } from "../../utils/media-sideload/index.mjs";
22
+ import { default as mediaFinalize } from "../../utils/media-finalize/index.mjs";
21
23
  import { store as editorStore } from "../../store/index.mjs";
22
24
  import { unlock } from "../../lock-unlock.mjs";
23
25
  import { useGlobalStylesContext } from "../global-styles-provider/index.mjs";
@@ -92,7 +94,8 @@ var {
92
94
  getMediaSelectKey,
93
95
  isIsolatedEditorKey,
94
96
  deviceTypeKey,
95
- isNavigationOverlayContextKey
97
+ isNavigationOverlayContextKey,
98
+ mediaUploadOnSuccessKey
96
99
  } = unlock(privateApis);
97
100
  function useBlockEditorSettings(settings, postType, postId, renderingMode) {
98
101
  const isLargeViewport = useViewportMatch("medium");
@@ -115,7 +118,8 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
115
118
  restBlockPatternCategories,
116
119
  sectionRootClientId,
117
120
  deviceType,
118
- isNavigationOverlayContext
121
+ isNavigationOverlayContext,
122
+ isRevisionsMode
119
123
  } = useSelect(
120
124
  (select) => {
121
125
  const {
@@ -127,7 +131,9 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
127
131
  } = select(coreStore);
128
132
  const { get } = select(preferencesStore);
129
133
  const { getBlockTypes } = select(blocksStore);
130
- const { getDeviceType } = unlock(select(editorStore));
134
+ const { getDeviceType, isRevisionsMode: _isRevisionsMode } = unlock(
135
+ select(editorStore)
136
+ );
131
137
  const { getBlocksByName, getBlockAttributes } = select(blockEditorStore);
132
138
  const siteSettings = canUser("read", {
133
139
  kind: "root",
@@ -178,7 +184,8 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
178
184
  "postType",
179
185
  "wp_template_part",
180
186
  postId
181
- )?.area === "navigation-overlay" : false
187
+ )?.area === "navigation-overlay" : false,
188
+ isRevisionsMode: _isRevisionsMode()
182
189
  };
183
190
  },
184
191
  [postType, postId, isLargeViewport, renderingMode]
@@ -260,7 +267,9 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
260
267
  },
261
268
  [mediaEditKey]: hasUploadPermissions ? editMediaEntity : void 0,
262
269
  mediaUpload: hasUploadPermissions ? mediaUpload : void 0,
270
+ [mediaUploadOnSuccessKey]: hasUploadPermissions ? mediaUploadOnSuccess : void 0,
263
271
  mediaSideload: hasUploadPermissions ? mediaSideload : void 0,
272
+ mediaFinalize: hasUploadPermissions ? mediaFinalize : void 0,
264
273
  __experimentalBlockPatterns: blockPatterns,
265
274
  [selectBlockPatternsKey]: (select) => {
266
275
  const { hasFinishedResolution, getBlockPatternsForPostType } = unlock(select(coreStore));
@@ -299,11 +308,18 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
299
308
  "wp_block",
300
309
  "wp_navigation"
301
310
  ].includes(postType),
311
+ // When in template-locked mode (e.g., "Show Template" in the post editor),
312
+ // don't treat template parts as contentOnly sections.
313
+ disableContentOnlyForTemplateParts: renderingMode === "template-locked",
302
314
  ...deviceType ? { [deviceTypeKey]: deviceType } : {},
303
315
  [isNavigationOverlayContextKey]: isNavigationOverlayContext
304
316
  };
317
+ if (isRevisionsMode) {
318
+ blockEditorSettings.isPreviewMode = true;
319
+ }
305
320
  return blockEditorSettings;
306
321
  }, [
322
+ isRevisionsMode,
307
323
  allowedBlockTypes,
308
324
  allowRightClickOverrides,
309
325
  focusMode,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/provider/use-block-editor-settings.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\t__experimentalFetchLinkSuggestions as fetchLinkSuggestions,\n\t__experimentalFetchUrlData as fetchUrlData,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport {\n\tprivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport inserterMediaCategories from '../media-categories';\nimport { mediaUpload } from '../../utils';\nimport { default as mediaSideload } from '../../utils/media-sideload';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useGlobalStylesContext } from '../global-styles-provider';\n\nconst EMPTY_OBJECT = {};\n\nfunction __experimentalReusableBlocksSelect( select ) {\n\tconst { RECEIVE_INTERMEDIATE_RESULTS } = unlock( coreDataPrivateApis );\n\tconst { getEntityRecords } = select( coreStore );\n\treturn getEntityRecords( 'postType', 'wp_block', {\n\t\tper_page: -1,\n\t\t[ RECEIVE_INTERMEDIATE_RESULTS ]: true,\n\t} );\n}\n\nconst BLOCK_EDITOR_SETTINGS = [\n\t'__experimentalBlockBindingsSupportedAttributes',\n\t'__experimentalBlockDirectory',\n\t'__experimentalDiscussionSettings',\n\t'__experimentalFeatures',\n\t'__experimentalGlobalStylesBaseStyles',\n\t'allImageSizes',\n\t'alignWide',\n\t'blockInspectorTabs',\n\t'maxUploadFileSize',\n\t'allowedMimeTypes',\n\t'bodyPlaceholder',\n\t'canEditCSS',\n\t'canLockBlocks',\n\t'canUpdateBlockBindings',\n\t'capabilities',\n\t'clearBlockSelection',\n\t'codeEditingEnabled',\n\t'colors',\n\t'disableContentOnlyForUnsyncedPatterns',\n\t'disableCustomColors',\n\t'disableCustomFontSizes',\n\t'disableCustomSpacingSizes',\n\t'disableCustomGradients',\n\t'disableLayoutStyles',\n\t'enableCustomLineHeight',\n\t'enableCustomSpacing',\n\t'enableCustomUnits',\n\t'enableOpenverseMediaCategory',\n\t'fontSizes',\n\t'gradients',\n\t'generateAnchors',\n\t'onNavigateToEntityRecord',\n\t'imageDefaultSize',\n\t'imageDimensions',\n\t'imageEditing',\n\t'imageSizes',\n\t'isPreviewMode',\n\t'isRTL',\n\t'locale',\n\t'maxWidth',\n\t'postContentAttributes',\n\t'postsPerPage',\n\t'readOnly',\n\t'styles',\n\t'titlePlaceholder',\n\t'supportsLayout',\n\t'widgetTypesToHideFromLegacyWidgetBlock',\n\t'__unstableHasCustomAppender',\n\t'__unstableResolvedAssets',\n\t'__unstableIsBlockBasedTheme',\n];\n\nconst {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tsectionRootClientIdKey,\n\tmediaEditKey,\n\tgetMediaSelectKey,\n\tisIsolatedEditorKey,\n\tdeviceTypeKey,\n\tisNavigationOverlayContextKey,\n} = unlock( privateApis );\n\n/**\n * React hook used to compute the block editor settings to use for the post editor.\n *\n * @param {Object} settings EditorProvider settings prop.\n * @param {string} postType Editor root level post type.\n * @param {string} postId Editor root level post ID.\n * @param {string} renderingMode Editor rendering mode.\n *\n * @return {Object} Block Editor Settings.\n */\nfunction useBlockEditorSettings( settings, postType, postId, renderingMode ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tallImageSizes,\n\t\tbigImageSizeThreshold,\n\t\tallowRightClickOverrides,\n\t\tblockTypes,\n\t\tfocusMode,\n\t\thasFixedToolbar,\n\t\tisDistractionFree,\n\t\tkeepCaretInsideBlock,\n\t\thasUploadPermissions,\n\t\thiddenBlockTypes,\n\t\tcanUseUnfilteredHTML,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t\tuserPatternCategories,\n\t\trestBlockPatternCategories,\n\t\tsectionRootClientId,\n\t\tdeviceType,\n\t\tisNavigationOverlayContext,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanUser,\n\t\t\t\tgetRawEntityRecord,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetUserPatternCategories,\n\t\t\t\tgetBlockPatternCategories,\n\t\t\t} = select( coreStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst { getBlockTypes } = select( blocksStore );\n\t\t\tconst { getDeviceType } = unlock( select( editorStore ) );\n\t\t\tconst { getBlocksByName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst siteSettings = canUser( 'read', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t} )\n\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t: undefined;\n\n\t\t\t// Fetch image sizes from REST API index for client-side media processing.\n\t\t\tconst baseData = getEntityRecord( 'root', '__unstableBase' );\n\n\t\t\tfunction getSectionRootBlock() {\n\t\t\t\tif ( renderingMode === 'template-locked' ) {\n\t\t\t\t\treturn getBlocksByName( 'core/post-content' )?.[ 0 ] ?? '';\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tgetBlocksByName( 'core/group' ).find(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\tgetBlockAttributes( clientId )?.tagName === 'main'\n\t\t\t\t\t) ?? ''\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tallImageSizes: baseData?.image_sizes,\n\t\t\t\tbigImageSizeThreshold: baseData?.image_size_threshold,\n\t\t\t\tallowRightClickOverrides: get(\n\t\t\t\t\t'core',\n\t\t\t\t\t'allowRightClickOverrides'\n\t\t\t\t),\n\t\t\t\tblockTypes: getBlockTypes(),\n\t\t\t\tcanUseUnfilteredHTML: getRawEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId\n\t\t\t\t)?._links?.hasOwnProperty( 'wp:action-unfiltered-html' ),\n\t\t\t\tfocusMode: get( 'core', 'focusMode' ),\n\t\t\t\thasFixedToolbar:\n\t\t\t\t\tget( 'core', 'fixedToolbar' ) || ! isLargeViewport,\n\t\t\t\thiddenBlockTypes: get( 'core', 'hiddenBlockTypes' ),\n\t\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\t\tkeepCaretInsideBlock: get( 'core', 'keepCaretInsideBlock' ),\n\t\t\t\thasUploadPermissions:\n\t\t\t\t\tcanUser( 'create', {\n\t\t\t\t\t\tkind: 'postType',\n\t\t\t\t\t\tname: 'attachment',\n\t\t\t\t\t} ) ?? true,\n\t\t\t\tuserCanCreatePages: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'page',\n\t\t\t\t} ),\n\t\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t\trestBlockPatternCategories: getBlockPatternCategories(),\n\t\t\t\tsectionRootClientId: getSectionRootBlock(),\n\t\t\t\tdeviceType: getDeviceType(),\n\t\t\t\tisNavigationOverlayContext:\n\t\t\t\t\tpostType === 'wp_template_part' && postId\n\t\t\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t'wp_template_part',\n\t\t\t\t\t\t\t\tpostId\n\t\t\t\t\t\t )?.area === 'navigation-overlay'\n\t\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId, isLargeViewport, renderingMode ]\n\t);\n\n\tconst { merged: mergedGlobalStyles } = useGlobalStylesContext();\n\tconst globalStylesData = mergedGlobalStyles.styles ?? EMPTY_OBJECT;\n\tconst globalStylesLinksData = mergedGlobalStyles._links ?? EMPTY_OBJECT;\n\n\tconst settingsBlockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tsettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[ ...( settingsBlockPatterns || [] ) ].filter(\n\t\t\t\t( { postTypes } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! postTypes ||\n\t\t\t\t\t\t( Array.isArray( postTypes ) &&\n\t\t\t\t\t\t\tpostTypes.includes( postType ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t),\n\t\t[ settingsBlockPatterns, postType ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatternCategories || [] ),\n\t\t\t\t...( restBlockPatternCategories || [] ),\n\t\t\t].filter(\n\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\n\tconst { undo, setIsInserterOpened } = useDispatch( editorStore );\n\tconst { editMediaEntity } = unlock( useDispatch( coreStore ) );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t/**\n\t * Creates a Post entity.\n\t * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.\n\t *\n\t * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.\n\t * @return {Object} the post type object that was created.\n\t */\n\tconst createPageEntity = useCallback(\n\t\t( options ) => {\n\t\t\tif ( ! userCanCreatePages ) {\n\t\t\t\treturn Promise.reject( {\n\t\t\t\t\tmessage: __(\n\t\t\t\t\t\t'You do not have permission to create Pages.'\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn saveEntityRecord( 'postType', 'page', options );\n\t\t},\n\t\t[ saveEntityRecord, userCanCreatePages ]\n\t);\n\n\tconst allowedBlockTypes = useMemo( () => {\n\t\t// Omit hidden block types if exists and non-empty.\n\t\tif ( hiddenBlockTypes && hiddenBlockTypes.length > 0 ) {\n\t\t\t// Defer to passed setting for `allowedBlockTypes` if provided as\n\t\t\t// anything other than `true` (where `true` is equivalent to allow\n\t\t\t// all block types).\n\t\t\tconst defaultAllowedBlockTypes =\n\t\t\t\ttrue === settings.allowedBlockTypes\n\t\t\t\t\t? blockTypes.map( ( { name } ) => name )\n\t\t\t\t\t: settings.allowedBlockTypes || [];\n\n\t\t\treturn defaultAllowedBlockTypes.filter(\n\t\t\t\t( type ) => ! hiddenBlockTypes.includes( type )\n\t\t\t);\n\t\t}\n\n\t\treturn settings.allowedBlockTypes;\n\t}, [ settings.allowedBlockTypes, hiddenBlockTypes, blockTypes ] );\n\n\tconst forceDisableFocusMode = settings.focusMode === false;\n\n\treturn useMemo( () => {\n\t\tconst blockEditorSettings = {\n\t\t\t...Object.fromEntries(\n\t\t\t\tObject.entries( settings )\n\t\t\t\t\t.filter( ( [ key ] ) =>\n\t\t\t\t\t\tBLOCK_EDITOR_SETTINGS.includes( key )\n\t\t\t\t\t)\n\t\t\t\t\t// Exclude onNavigateToEntityRecord since we're wrapping it\n\t\t\t\t\t.filter( ( [ key ] ) => key !== 'onNavigateToEntityRecord' )\n\t\t\t),\n\t\t\t[ globalStylesDataKey ]: globalStylesData,\n\t\t\t[ globalStylesLinksDataKey ]: globalStylesLinksData,\n\t\t\tallImageSizes,\n\t\t\tbigImageSizeThreshold,\n\t\t\tallowedBlockTypes,\n\t\t\tallowRightClickOverrides,\n\t\t\tfocusMode: focusMode && ! forceDisableFocusMode,\n\t\t\thasFixedToolbar,\n\t\t\tisDistractionFree,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tonNavigateToEntityRecord: settings.onNavigateToEntityRecord,\n\t\t\t[ getMediaSelectKey ]: ( select, attachmentId ) => {\n\t\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'attachment',\n\t\t\t\t\tattachmentId\n\t\t\t\t);\n\t\t\t},\n\t\t\t[ mediaEditKey ]: hasUploadPermissions\n\t\t\t\t? editMediaEntity\n\t\t\t\t: undefined,\n\t\t\tmediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n\t\t\tmediaSideload: hasUploadPermissions ? mediaSideload : undefined,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t[ selectBlockPatternsKey ]: ( select ) => {\n\t\t\t\tconst { hasFinishedResolution, getBlockPatternsForPostType } =\n\t\t\t\t\tunlock( select( coreStore ) );\n\t\t\t\tconst patterns = getBlockPatternsForPostType( postType );\n\t\t\t\treturn hasFinishedResolution( 'getBlockPatterns' )\n\t\t\t\t\t? patterns\n\t\t\t\t\t: undefined;\n\t\t\t},\n\t\t\t[ reusableBlocksSelectKey ]: __experimentalReusableBlocksSelect,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t\t__experimentalUserPatternCategories: userPatternCategories,\n\t\t\t__experimentalFetchLinkSuggestions: ( search, searchOptions ) =>\n\t\t\t\tfetchLinkSuggestions( search, searchOptions, settings ),\n\t\t\tinserterMediaCategories,\n\t\t\t__experimentalFetchRichUrlData: fetchUrlData,\n\t\t\t// Todo: This only checks the top level post, not the post within a template or any other entity that can be edited.\n\t\t\t// This might be better as a generic \"canUser\" selector.\n\t\t\t__experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,\n\t\t\t//Todo: this is only needed for native and should probably be removed.\n\t\t\t__experimentalUndo: undo,\n\t\t\t// Check whether we want all site editor frames to have outlines\n\t\t\t// including the navigation / pattern / parts editors.\n\t\t\toutlineMode: ! isDistractionFree && postType === 'wp_template',\n\t\t\t// Check these two properties: they were not present in the site editor.\n\t\t\t__experimentalCreatePageEntity: createPageEntity,\n\t\t\t__experimentalUserCanCreatePages: userCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\t__experimentalPreferPatternsOnRoot: postType === 'wp_template',\n\t\t\ttemplateLock:\n\t\t\t\tpostType === 'wp_navigation' ? 'insert' : settings.templateLock,\n\t\t\ttemplate:\n\t\t\t\tpostType === 'wp_navigation'\n\t\t\t\t\t? [ [ 'core/navigation', {}, [] ] ]\n\t\t\t\t\t: settings.template,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\t[ sectionRootClientIdKey ]: sectionRootClientId,\n\t\t\teditorTool:\n\t\t\t\trenderingMode === 'post-only' && postType !== 'wp_template'\n\t\t\t\t\t? 'edit'\n\t\t\t\t\t: undefined,\n\t\t\t// When editing template parts, patterns, or navigation directly,\n\t\t\t// we're in an isolated editing context (focused on that entity alone).\n\t\t\t[ isIsolatedEditorKey ]: [\n\t\t\t\t'wp_template_part',\n\t\t\t\t'wp_block',\n\t\t\t\t'wp_navigation',\n\t\t\t].includes( postType ),\n\t\t\t...( deviceType ? { [ deviceTypeKey ]: deviceType } : {} ),\n\t\t\t[ isNavigationOverlayContextKey ]: isNavigationOverlayContext,\n\t\t};\n\n\t\treturn blockEditorSettings;\n\t}, [\n\t\tallowedBlockTypes,\n\t\tallowRightClickOverrides,\n\t\tfocusMode,\n\t\tforceDisableFocusMode,\n\t\thasFixedToolbar,\n\t\tisDistractionFree,\n\t\tkeepCaretInsideBlock,\n\t\tsettings,\n\t\thasUploadPermissions,\n\t\tuserPatternCategories,\n\t\tblockPatterns,\n\t\tblockPatternCategories,\n\t\tcanUseUnfilteredHTML,\n\t\tundo,\n\t\tcreatePageEntity,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t\tpostType,\n\t\tsetIsInserterOpened,\n\t\tsectionRootClientId,\n\t\tglobalStylesData,\n\t\tglobalStylesLinksData,\n\t\trenderingMode,\n\t\teditMediaEntity,\n\t\tsettings.onNavigateToEntityRecord,\n\t\tdeviceType,\n\t\tallImageSizes,\n\t\tbigImageSizeThreshold,\n\t\tisNavigationOverlayContext,\n\t] );\n}\n\nexport default useBlockEditorSettings;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\t__experimentalFetchLinkSuggestions as fetchLinkSuggestions,\n\t__experimentalFetchUrlData as fetchUrlData,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport {\n\tprivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport inserterMediaCategories from '../media-categories';\nimport { mediaUpload } from '../../utils';\nimport mediaUploadOnSuccess from '../../utils/media-upload/on-success';\nimport { default as mediaSideload } from '../../utils/media-sideload';\nimport { default as mediaFinalize } from '../../utils/media-finalize';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useGlobalStylesContext } from '../global-styles-provider';\n\nconst EMPTY_OBJECT = {};\n\nfunction __experimentalReusableBlocksSelect( select ) {\n\tconst { RECEIVE_INTERMEDIATE_RESULTS } = unlock( coreDataPrivateApis );\n\tconst { getEntityRecords } = select( coreStore );\n\treturn getEntityRecords( 'postType', 'wp_block', {\n\t\tper_page: -1,\n\t\t[ RECEIVE_INTERMEDIATE_RESULTS ]: true,\n\t} );\n}\n\nconst BLOCK_EDITOR_SETTINGS = [\n\t'__experimentalBlockBindingsSupportedAttributes',\n\t'__experimentalBlockDirectory',\n\t'__experimentalDiscussionSettings',\n\t'__experimentalFeatures',\n\t'__experimentalGlobalStylesBaseStyles',\n\t'allImageSizes',\n\t'alignWide',\n\t'blockInspectorTabs',\n\t'maxUploadFileSize',\n\t'allowedMimeTypes',\n\t'bodyPlaceholder',\n\t'canEditCSS',\n\t'canLockBlocks',\n\t'canUpdateBlockBindings',\n\t'capabilities',\n\t'clearBlockSelection',\n\t'codeEditingEnabled',\n\t'colors',\n\t'disableContentOnlyForUnsyncedPatterns',\n\t'disableCustomColors',\n\t'disableCustomFontSizes',\n\t'disableCustomSpacingSizes',\n\t'disableCustomGradients',\n\t'disableLayoutStyles',\n\t'enableCustomLineHeight',\n\t'enableCustomSpacing',\n\t'enableCustomUnits',\n\t'enableOpenverseMediaCategory',\n\t'fontSizes',\n\t'gradients',\n\t'generateAnchors',\n\t'onNavigateToEntityRecord',\n\t'imageDefaultSize',\n\t'imageDimensions',\n\t'imageEditing',\n\t'imageSizes',\n\t'isPreviewMode',\n\t'isRTL',\n\t'locale',\n\t'maxWidth',\n\t'postContentAttributes',\n\t'postsPerPage',\n\t'readOnly',\n\t'styles',\n\t'titlePlaceholder',\n\t'supportsLayout',\n\t'widgetTypesToHideFromLegacyWidgetBlock',\n\t'__unstableHasCustomAppender',\n\t'__unstableResolvedAssets',\n\t'__unstableIsBlockBasedTheme',\n];\n\nconst {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tsectionRootClientIdKey,\n\tmediaEditKey,\n\tgetMediaSelectKey,\n\tisIsolatedEditorKey,\n\tdeviceTypeKey,\n\tisNavigationOverlayContextKey,\n\tmediaUploadOnSuccessKey,\n} = unlock( privateApis );\n\n/**\n * React hook used to compute the block editor settings to use for the post editor.\n *\n * @param {Object} settings EditorProvider settings prop.\n * @param {string} postType Editor root level post type.\n * @param {string} postId Editor root level post ID.\n * @param {string} renderingMode Editor rendering mode.\n *\n * @return {Object} Block Editor Settings.\n */\nfunction useBlockEditorSettings( settings, postType, postId, renderingMode ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tallImageSizes,\n\t\tbigImageSizeThreshold,\n\t\tallowRightClickOverrides,\n\t\tblockTypes,\n\t\tfocusMode,\n\t\thasFixedToolbar,\n\t\tisDistractionFree,\n\t\tkeepCaretInsideBlock,\n\t\thasUploadPermissions,\n\t\thiddenBlockTypes,\n\t\tcanUseUnfilteredHTML,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t\tuserPatternCategories,\n\t\trestBlockPatternCategories,\n\t\tsectionRootClientId,\n\t\tdeviceType,\n\t\tisNavigationOverlayContext,\n\t\tisRevisionsMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanUser,\n\t\t\t\tgetRawEntityRecord,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetUserPatternCategories,\n\t\t\t\tgetBlockPatternCategories,\n\t\t\t} = select( coreStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst { getBlockTypes } = select( blocksStore );\n\t\t\tconst { getDeviceType, isRevisionsMode: _isRevisionsMode } = unlock(\n\t\t\t\tselect( editorStore )\n\t\t\t);\n\t\t\tconst { getBlocksByName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst siteSettings = canUser( 'read', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t} )\n\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t: undefined;\n\n\t\t\t// Fetch image sizes from REST API index for client-side media processing.\n\t\t\tconst baseData = getEntityRecord( 'root', '__unstableBase' );\n\n\t\t\tfunction getSectionRootBlock() {\n\t\t\t\tif ( renderingMode === 'template-locked' ) {\n\t\t\t\t\treturn getBlocksByName( 'core/post-content' )?.[ 0 ] ?? '';\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tgetBlocksByName( 'core/group' ).find(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\tgetBlockAttributes( clientId )?.tagName === 'main'\n\t\t\t\t\t) ?? ''\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tallImageSizes: baseData?.image_sizes,\n\t\t\t\tbigImageSizeThreshold: baseData?.image_size_threshold,\n\t\t\t\tallowRightClickOverrides: get(\n\t\t\t\t\t'core',\n\t\t\t\t\t'allowRightClickOverrides'\n\t\t\t\t),\n\t\t\t\tblockTypes: getBlockTypes(),\n\t\t\t\tcanUseUnfilteredHTML: getRawEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId\n\t\t\t\t)?._links?.hasOwnProperty( 'wp:action-unfiltered-html' ),\n\t\t\t\tfocusMode: get( 'core', 'focusMode' ),\n\t\t\t\thasFixedToolbar:\n\t\t\t\t\tget( 'core', 'fixedToolbar' ) || ! isLargeViewport,\n\t\t\t\thiddenBlockTypes: get( 'core', 'hiddenBlockTypes' ),\n\t\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\t\tkeepCaretInsideBlock: get( 'core', 'keepCaretInsideBlock' ),\n\t\t\t\thasUploadPermissions:\n\t\t\t\t\tcanUser( 'create', {\n\t\t\t\t\t\tkind: 'postType',\n\t\t\t\t\t\tname: 'attachment',\n\t\t\t\t\t} ) ?? true,\n\t\t\t\tuserCanCreatePages: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'page',\n\t\t\t\t} ),\n\t\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t\trestBlockPatternCategories: getBlockPatternCategories(),\n\t\t\t\tsectionRootClientId: getSectionRootBlock(),\n\t\t\t\tdeviceType: getDeviceType(),\n\t\t\t\tisNavigationOverlayContext:\n\t\t\t\t\tpostType === 'wp_template_part' && postId\n\t\t\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t'wp_template_part',\n\t\t\t\t\t\t\t\tpostId\n\t\t\t\t\t\t )?.area === 'navigation-overlay'\n\t\t\t\t\t\t: false,\n\t\t\t\tisRevisionsMode: _isRevisionsMode(),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId, isLargeViewport, renderingMode ]\n\t);\n\n\tconst { merged: mergedGlobalStyles } = useGlobalStylesContext();\n\tconst globalStylesData = mergedGlobalStyles.styles ?? EMPTY_OBJECT;\n\tconst globalStylesLinksData = mergedGlobalStyles._links ?? EMPTY_OBJECT;\n\n\tconst settingsBlockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tsettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[ ...( settingsBlockPatterns || [] ) ].filter(\n\t\t\t\t( { postTypes } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! postTypes ||\n\t\t\t\t\t\t( Array.isArray( postTypes ) &&\n\t\t\t\t\t\t\tpostTypes.includes( postType ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t),\n\t\t[ settingsBlockPatterns, postType ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatternCategories || [] ),\n\t\t\t\t...( restBlockPatternCategories || [] ),\n\t\t\t].filter(\n\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\n\tconst { undo, setIsInserterOpened } = useDispatch( editorStore );\n\tconst { editMediaEntity } = unlock( useDispatch( coreStore ) );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t/**\n\t * Creates a Post entity.\n\t * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.\n\t *\n\t * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.\n\t * @return {Object} the post type object that was created.\n\t */\n\tconst createPageEntity = useCallback(\n\t\t( options ) => {\n\t\t\tif ( ! userCanCreatePages ) {\n\t\t\t\treturn Promise.reject( {\n\t\t\t\t\tmessage: __(\n\t\t\t\t\t\t'You do not have permission to create Pages.'\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn saveEntityRecord( 'postType', 'page', options );\n\t\t},\n\t\t[ saveEntityRecord, userCanCreatePages ]\n\t);\n\n\tconst allowedBlockTypes = useMemo( () => {\n\t\t// Omit hidden block types if exists and non-empty.\n\t\tif ( hiddenBlockTypes && hiddenBlockTypes.length > 0 ) {\n\t\t\t// Defer to passed setting for `allowedBlockTypes` if provided as\n\t\t\t// anything other than `true` (where `true` is equivalent to allow\n\t\t\t// all block types).\n\t\t\tconst defaultAllowedBlockTypes =\n\t\t\t\ttrue === settings.allowedBlockTypes\n\t\t\t\t\t? blockTypes.map( ( { name } ) => name )\n\t\t\t\t\t: settings.allowedBlockTypes || [];\n\n\t\t\treturn defaultAllowedBlockTypes.filter(\n\t\t\t\t( type ) => ! hiddenBlockTypes.includes( type )\n\t\t\t);\n\t\t}\n\n\t\treturn settings.allowedBlockTypes;\n\t}, [ settings.allowedBlockTypes, hiddenBlockTypes, blockTypes ] );\n\n\tconst forceDisableFocusMode = settings.focusMode === false;\n\n\treturn useMemo( () => {\n\t\tconst blockEditorSettings = {\n\t\t\t...Object.fromEntries(\n\t\t\t\tObject.entries( settings )\n\t\t\t\t\t.filter( ( [ key ] ) =>\n\t\t\t\t\t\tBLOCK_EDITOR_SETTINGS.includes( key )\n\t\t\t\t\t)\n\t\t\t\t\t// Exclude onNavigateToEntityRecord since we're wrapping it\n\t\t\t\t\t.filter( ( [ key ] ) => key !== 'onNavigateToEntityRecord' )\n\t\t\t),\n\t\t\t[ globalStylesDataKey ]: globalStylesData,\n\t\t\t[ globalStylesLinksDataKey ]: globalStylesLinksData,\n\t\t\tallImageSizes,\n\t\t\tbigImageSizeThreshold,\n\t\t\tallowedBlockTypes,\n\t\t\tallowRightClickOverrides,\n\t\t\tfocusMode: focusMode && ! forceDisableFocusMode,\n\t\t\thasFixedToolbar,\n\t\t\tisDistractionFree,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tonNavigateToEntityRecord: settings.onNavigateToEntityRecord,\n\t\t\t[ getMediaSelectKey ]: ( select, attachmentId ) => {\n\t\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'attachment',\n\t\t\t\t\tattachmentId\n\t\t\t\t);\n\t\t\t},\n\t\t\t[ mediaEditKey ]: hasUploadPermissions\n\t\t\t\t? editMediaEntity\n\t\t\t\t: undefined,\n\t\t\tmediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n\t\t\t[ mediaUploadOnSuccessKey ]: hasUploadPermissions\n\t\t\t\t? mediaUploadOnSuccess\n\t\t\t\t: undefined,\n\t\t\tmediaSideload: hasUploadPermissions ? mediaSideload : undefined,\n\t\t\tmediaFinalize: hasUploadPermissions ? mediaFinalize : undefined,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t[ selectBlockPatternsKey ]: ( select ) => {\n\t\t\t\tconst { hasFinishedResolution, getBlockPatternsForPostType } =\n\t\t\t\t\tunlock( select( coreStore ) );\n\t\t\t\tconst patterns = getBlockPatternsForPostType( postType );\n\t\t\t\treturn hasFinishedResolution( 'getBlockPatterns' )\n\t\t\t\t\t? patterns\n\t\t\t\t\t: undefined;\n\t\t\t},\n\t\t\t[ reusableBlocksSelectKey ]: __experimentalReusableBlocksSelect,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t\t__experimentalUserPatternCategories: userPatternCategories,\n\t\t\t__experimentalFetchLinkSuggestions: ( search, searchOptions ) =>\n\t\t\t\tfetchLinkSuggestions( search, searchOptions, settings ),\n\t\t\tinserterMediaCategories,\n\t\t\t__experimentalFetchRichUrlData: fetchUrlData,\n\t\t\t// Todo: This only checks the top level post, not the post within a template or any other entity that can be edited.\n\t\t\t// This might be better as a generic \"canUser\" selector.\n\t\t\t__experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,\n\t\t\t//Todo: this is only needed for native and should probably be removed.\n\t\t\t__experimentalUndo: undo,\n\t\t\t// Check whether we want all site editor frames to have outlines\n\t\t\t// including the navigation / pattern / parts editors.\n\t\t\toutlineMode: ! isDistractionFree && postType === 'wp_template',\n\t\t\t// Check these two properties: they were not present in the site editor.\n\t\t\t__experimentalCreatePageEntity: createPageEntity,\n\t\t\t__experimentalUserCanCreatePages: userCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\t__experimentalPreferPatternsOnRoot: postType === 'wp_template',\n\t\t\ttemplateLock:\n\t\t\t\tpostType === 'wp_navigation' ? 'insert' : settings.templateLock,\n\t\t\ttemplate:\n\t\t\t\tpostType === 'wp_navigation'\n\t\t\t\t\t? [ [ 'core/navigation', {}, [] ] ]\n\t\t\t\t\t: settings.template,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\t[ sectionRootClientIdKey ]: sectionRootClientId,\n\t\t\teditorTool:\n\t\t\t\trenderingMode === 'post-only' && postType !== 'wp_template'\n\t\t\t\t\t? 'edit'\n\t\t\t\t\t: undefined,\n\t\t\t// When editing template parts, patterns, or navigation directly,\n\t\t\t// we're in an isolated editing context (focused on that entity alone).\n\t\t\t[ isIsolatedEditorKey ]: [\n\t\t\t\t'wp_template_part',\n\t\t\t\t'wp_block',\n\t\t\t\t'wp_navigation',\n\t\t\t].includes( postType ),\n\t\t\t// When in template-locked mode (e.g., \"Show Template\" in the post editor),\n\t\t\t// don't treat template parts as contentOnly sections.\n\t\t\tdisableContentOnlyForTemplateParts:\n\t\t\t\trenderingMode === 'template-locked',\n\t\t\t...( deviceType ? { [ deviceTypeKey ]: deviceType } : {} ),\n\t\t\t[ isNavigationOverlayContextKey ]: isNavigationOverlayContext,\n\t\t};\n\n\t\tif ( isRevisionsMode ) {\n\t\t\tblockEditorSettings.isPreviewMode = true;\n\t\t}\n\n\t\treturn blockEditorSettings;\n\t}, [\n\t\tisRevisionsMode,\n\t\tallowedBlockTypes,\n\t\tallowRightClickOverrides,\n\t\tfocusMode,\n\t\tforceDisableFocusMode,\n\t\thasFixedToolbar,\n\t\tisDistractionFree,\n\t\tkeepCaretInsideBlock,\n\t\tsettings,\n\t\thasUploadPermissions,\n\t\tuserPatternCategories,\n\t\tblockPatterns,\n\t\tblockPatternCategories,\n\t\tcanUseUnfilteredHTML,\n\t\tundo,\n\t\tcreatePageEntity,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t\tpostType,\n\t\tsetIsInserterOpened,\n\t\tsectionRootClientId,\n\t\tglobalStylesData,\n\t\tglobalStylesLinksData,\n\t\trenderingMode,\n\t\teditMediaEntity,\n\t\tsettings.onNavigateToEntityRecord,\n\t\tdeviceType,\n\t\tallImageSizes,\n\t\tbigImageSizeThreshold,\n\t\tisNavigationOverlayContext,\n\t] );\n}\n\nexport default useBlockEditorSettings;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,23 @@
1
+ // packages/editor/src/components/provider/use-post-content-block-types.js
2
+ import { useMemo } from "@wordpress/element";
3
+ import { applyFilters } from "@wordpress/hooks";
4
+ var POST_CONTENT_BLOCK_TYPES = [
5
+ "core/post-title",
6
+ "core/post-featured-image",
7
+ "core/post-content"
8
+ ];
9
+ function usePostContentBlockTypes() {
10
+ return useMemo(
11
+ () => [
12
+ ...applyFilters(
13
+ "editor.postContentBlockTypes",
14
+ POST_CONTENT_BLOCK_TYPES
15
+ )
16
+ ],
17
+ []
18
+ );
19
+ }
20
+ export {
21
+ usePostContentBlockTypes as default
22
+ };
23
+ //# sourceMappingURL=use-post-content-block-types.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/provider/use-post-content-block-types.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\n\nconst POST_CONTENT_BLOCK_TYPES = [\n\t'core/post-title',\n\t'core/post-featured-image',\n\t'core/post-content',\n];\n\n/**\n * Returns the list of post content block types, including any added via the\n * `editor.postContentBlockTypes` filter. The result is memoized so it can be\n * used as a stable dependency in `useSelect` calls.\n *\n * @return {string[]} Block type names considered post content.\n */\nexport default function usePostContentBlockTypes() {\n\treturn useMemo(\n\t\t() => [\n\t\t\t...applyFilters(\n\t\t\t\t'editor.postContentBlockTypes',\n\t\t\t\tPOST_CONTENT_BLOCK_TYPES\n\t\t\t),\n\t\t],\n\t\t[]\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAE7B,IAAM,2BAA2B;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACD;AASe,SAAR,2BAA4C;AAClD,SAAO;AAAA,IACN,MAAM;AAAA,MACL,GAAG;AAAA,QACF;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AACD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,81 @@
1
+ // packages/editor/src/components/provider/use-revision-blocks.js
2
+ import { useSelect } from "@wordpress/data";
3
+ import { useMemo, useRef } from "@wordpress/element";
4
+ import { createBlock, parse } from "@wordpress/blocks";
5
+ import { store as editorStore } from "../../store/index.mjs";
6
+ import { unlock } from "../../lock-unlock.mjs";
7
+ import { diffRevisionContent } from "../post-revisions-preview/block-diff.mjs";
8
+ import { preserveClientIds } from "../post-revisions-preview/preserve-client-ids.mjs";
9
+ function useRevisionBlocks() {
10
+ const {
11
+ isInRevisionsMode,
12
+ showDiff,
13
+ revision,
14
+ previousRevision,
15
+ postType
16
+ } = useSelect((select) => {
17
+ const {
18
+ isRevisionsMode,
19
+ isShowingRevisionDiff,
20
+ getCurrentRevision,
21
+ getPreviousRevision
22
+ } = unlock(select(editorStore));
23
+ const { getCurrentPostType } = select(editorStore);
24
+ const inRevisions = isRevisionsMode();
25
+ return {
26
+ isInRevisionsMode: inRevisions,
27
+ showDiff: isShowingRevisionDiff(),
28
+ revision: inRevisions ? getCurrentRevision() : void 0,
29
+ previousRevision: inRevisions ? getPreviousRevision() : void 0,
30
+ postType: getCurrentPostType()
31
+ };
32
+ }, []);
33
+ const previousBlocksRef = useRef([]);
34
+ const blocks = useMemo(() => {
35
+ if (!isInRevisionsMode) {
36
+ previousBlocksRef.current = [];
37
+ return null;
38
+ }
39
+ if (!revision) {
40
+ return [];
41
+ }
42
+ const currentContent = revision?.content?.raw ?? "";
43
+ let parsedBlocks;
44
+ if (showDiff) {
45
+ const previousContent = previousRevision?.content?.raw || "";
46
+ parsedBlocks = diffRevisionContent(
47
+ currentContent,
48
+ previousContent
49
+ );
50
+ } else {
51
+ parsedBlocks = parse(currentContent);
52
+ }
53
+ if (postType === "wp_navigation") {
54
+ parsedBlocks = [
55
+ createBlock(
56
+ "core/navigation",
57
+ { templateLock: false },
58
+ parsedBlocks
59
+ )
60
+ ];
61
+ }
62
+ const blocksWithStableIds = preserveClientIds(
63
+ parsedBlocks,
64
+ previousBlocksRef.current
65
+ );
66
+ previousBlocksRef.current = blocksWithStableIds;
67
+ return blocksWithStableIds;
68
+ }, [
69
+ isInRevisionsMode,
70
+ revision,
71
+ revision?.content?.raw,
72
+ previousRevision?.content?.raw,
73
+ postType,
74
+ showDiff
75
+ ]);
76
+ return blocks;
77
+ }
78
+ export {
79
+ useRevisionBlocks
80
+ };
81
+ //# sourceMappingURL=use-revision-blocks.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/provider/use-revision-blocks.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, useRef } from '@wordpress/element';\nimport { createBlock, parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { diffRevisionContent } from '../post-revisions-preview/block-diff';\nimport { preserveClientIds } from '../post-revisions-preview/preserve-client-ids';\n\n/**\n * Hook that computes revision blocks when in revisions mode.\n *\n * Returns `null` when not in revisions mode, `[]` when loading,\n * or the computed blocks array when ready.\n *\n * @return {Array|null} The revision blocks, or null if not in revisions mode.\n */\nexport function useRevisionBlocks() {\n\tconst {\n\t\tisInRevisionsMode,\n\t\tshowDiff,\n\t\trevision,\n\t\tpreviousRevision,\n\t\tpostType,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisRevisionsMode,\n\t\t\tisShowingRevisionDiff,\n\t\t\tgetCurrentRevision,\n\t\t\tgetPreviousRevision,\n\t\t} = unlock( select( editorStore ) );\n\t\tconst { getCurrentPostType } = select( editorStore );\n\n\t\tconst inRevisions = isRevisionsMode();\n\t\treturn {\n\t\t\tisInRevisionsMode: inRevisions,\n\t\t\tshowDiff: isShowingRevisionDiff(),\n\t\t\trevision: inRevisions ? getCurrentRevision() : undefined,\n\t\t\tpreviousRevision: inRevisions ? getPreviousRevision() : undefined,\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t}, [] );\n\n\t// Track previously rendered blocks to preserve clientIds between renders.\n\tconst previousBlocksRef = useRef( [] );\n\n\tconst blocks = useMemo( () => {\n\t\tif ( ! isInRevisionsMode ) {\n\t\t\t// Clear the ref when exiting revisions mode.\n\t\t\tpreviousBlocksRef.current = [];\n\t\t\treturn null;\n\t\t}\n\n\t\t// Revision not loaded yet.\n\t\tif ( ! revision ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst currentContent = revision?.content?.raw ?? '';\n\n\t\tlet parsedBlocks;\n\t\tif ( showDiff ) {\n\t\t\tconst previousContent = previousRevision?.content?.raw || '';\n\t\t\tparsedBlocks = diffRevisionContent(\n\t\t\t\tcurrentContent,\n\t\t\t\tpreviousContent\n\t\t\t);\n\t\t} else {\n\t\t\tparsedBlocks = parse( currentContent );\n\t\t}\n\n\t\tif ( postType === 'wp_navigation' ) {\n\t\t\tparsedBlocks = [\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/navigation',\n\t\t\t\t\t{ templateLock: false },\n\t\t\t\t\tparsedBlocks\n\t\t\t\t),\n\t\t\t];\n\t\t}\n\n\t\tconst blocksWithStableIds = preserveClientIds(\n\t\t\tparsedBlocks,\n\t\t\tpreviousBlocksRef.current\n\t\t);\n\t\tpreviousBlocksRef.current = blocksWithStableIds;\n\n\t\treturn blocksWithStableIds;\n\t}, [\n\t\tisInRevisionsMode,\n\t\trevision,\n\t\trevision?.content?.raw,\n\t\tpreviousRevision?.content?.raw,\n\t\tpostType,\n\t\tshowDiff,\n\t] );\n\n\treturn blocks;\n}\n"],
5
+ "mappings": ";AAGA,SAAS,iBAAiB;AAC1B,SAAS,SAAS,cAAc;AAChC,SAAS,aAAa,aAAa;AAKnC,SAAS,SAAS,mBAAmB;AACrC,SAAS,cAAc;AACvB,SAAS,2BAA2B;AACpC,SAAS,yBAAyB;AAU3B,SAAS,oBAAoB;AACnC,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,UAAW,CAAE,WAAY;AAC5B,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,IAAI,OAAQ,OAAQ,WAAY,CAAE;AAClC,UAAM,EAAE,mBAAmB,IAAI,OAAQ,WAAY;AAEnD,UAAM,cAAc,gBAAgB;AACpC,WAAO;AAAA,MACN,mBAAmB;AAAA,MACnB,UAAU,sBAAsB;AAAA,MAChC,UAAU,cAAc,mBAAmB,IAAI;AAAA,MAC/C,kBAAkB,cAAc,oBAAoB,IAAI;AAAA,MACxD,UAAU,mBAAmB;AAAA,IAC9B;AAAA,EACD,GAAG,CAAC,CAAE;AAGN,QAAM,oBAAoB,OAAQ,CAAC,CAAE;AAErC,QAAM,SAAS,QAAS,MAAM;AAC7B,QAAK,CAAE,mBAAoB;AAE1B,wBAAkB,UAAU,CAAC;AAC7B,aAAO;AAAA,IACR;AAGA,QAAK,CAAE,UAAW;AACjB,aAAO,CAAC;AAAA,IACT;AAEA,UAAM,iBAAiB,UAAU,SAAS,OAAO;AAEjD,QAAI;AACJ,QAAK,UAAW;AACf,YAAM,kBAAkB,kBAAkB,SAAS,OAAO;AAC1D,qBAAe;AAAA,QACd;AAAA,QACA;AAAA,MACD;AAAA,IACD,OAAO;AACN,qBAAe,MAAO,cAAe;AAAA,IACtC;AAEA,QAAK,aAAa,iBAAkB;AACnC,qBAAe;AAAA,QACd;AAAA,UACC;AAAA,UACA,EAAE,cAAc,MAAM;AAAA,UACtB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAEA,UAAM,sBAAsB;AAAA,MAC3B;AAAA,MACA,kBAAkB;AAAA,IACnB;AACA,sBAAkB,UAAU;AAE5B,WAAO;AAAA,EACR,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA,UAAU,SAAS;AAAA,IACnB,kBAAkB,SAAS;AAAA,IAC3B;AAAA,IACA;AAAA,EACD,CAAE;AAEF,SAAO;AACR;",
6
+ "names": []
7
+ }
@@ -0,0 +1,30 @@
1
+ // packages/editor/src/components/revision-block-diff/index.js
2
+ import { store as blockEditorStore } from "@wordpress/block-editor";
3
+ import { useSelect } from "@wordpress/data";
4
+ import { __ } from "@wordpress/i18n";
5
+ import RevisionDiffPanel from "../revision-diff-panel/index.mjs";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function RevisionBlockDiffPanel() {
8
+ const { block } = useSelect((select) => {
9
+ const { getSelectedBlock } = select(blockEditorStore);
10
+ return {
11
+ block: getSelectedBlock()
12
+ };
13
+ }, []);
14
+ if (!block) {
15
+ return null;
16
+ }
17
+ const changedAttributes = block.attributes?.__revisionDiffStatus?.changedAttributes;
18
+ return /* @__PURE__ */ jsx(
19
+ RevisionDiffPanel,
20
+ {
21
+ title: __("Changed attributes"),
22
+ entries: changedAttributes,
23
+ initialOpen: true
24
+ }
25
+ );
26
+ }
27
+ export {
28
+ RevisionBlockDiffPanel as default
29
+ };
30
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/revision-block-diff/index.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport RevisionDiffPanel from '../revision-diff-panel';\n\n/**\n * Panel that shows changed block attributes for the selected block\n * when viewing revisions.\n */\nexport default function RevisionBlockDiffPanel() {\n\tconst { block } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlock } = select( blockEditorStore );\n\t\treturn {\n\t\t\tblock: getSelectedBlock(),\n\t\t};\n\t}, [] );\n\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\tconst changedAttributes =\n\t\tblock.attributes?.__revisionDiffStatus?.changedAttributes;\n\n\treturn (\n\t\t<RevisionDiffPanel\n\t\t\ttitle={ __( 'Changed attributes' ) }\n\t\t\tentries={ changedAttributes }\n\t\t\tinitialOpen\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,SAAS,wBAAwB;AAC1C,SAAS,iBAAiB;AAC1B,SAAS,UAAU;AAKnB,OAAO,uBAAuB;AAsB5B;AAhBa,SAAR,yBAA0C;AAChD,QAAM,EAAE,MAAM,IAAI,UAAW,CAAE,WAAY;AAC1C,UAAM,EAAE,iBAAiB,IAAI,OAAQ,gBAAiB;AACtD,WAAO;AAAA,MACN,OAAO,iBAAiB;AAAA,IACzB;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,MAAK,CAAE,OAAQ;AACd,WAAO;AAAA,EACR;AAEA,QAAM,oBACL,MAAM,YAAY,sBAAsB;AAEzC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAQ,GAAI,oBAAqB;AAAA,MACjC,SAAU;AAAA,MACV,aAAW;AAAA;AAAA,EACZ;AAEF;",
6
+ "names": []
7
+ }