@wordpress/editor 13.27.2 → 13.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/bindings/index.js +2 -0
  3. package/build/bindings/index.js.map +1 -1
  4. package/build/bindings/pattern-overrides.js +17 -0
  5. package/build/bindings/pattern-overrides.js.map +1 -0
  6. package/build/bindings/post-meta.js +3 -5
  7. package/build/bindings/post-meta.js.map +1 -1
  8. package/build/components/autocompleters/user.js +1 -2
  9. package/build/components/autocompleters/user.js.map +1 -1
  10. package/build/components/autosave-monitor/index.js +1 -2
  11. package/build/components/autosave-monitor/index.js.map +1 -1
  12. package/build/components/block-manager/category.js +1 -2
  13. package/build/components/block-manager/category.js.map +1 -1
  14. package/build/components/block-manager/checklist.js +1 -2
  15. package/build/components/block-manager/checklist.js.map +1 -1
  16. package/build/components/block-manager/index.js +1 -2
  17. package/build/components/block-manager/index.js.map +1 -1
  18. package/build/components/deprecated.js +52 -104
  19. package/build/components/deprecated.js.map +1 -1
  20. package/build/components/document-bar/index.js +5 -6
  21. package/build/components/document-bar/index.js.map +1 -1
  22. package/build/components/document-outline/check.js +1 -2
  23. package/build/components/document-outline/check.js.map +1 -1
  24. package/build/components/document-outline/index.js +1 -2
  25. package/build/components/document-outline/index.js.map +1 -1
  26. package/build/components/document-outline/item.js +1 -2
  27. package/build/components/document-outline/item.js.map +1 -1
  28. package/build/components/document-tools/index.js +1 -2
  29. package/build/components/document-tools/index.js.map +1 -1
  30. package/build/components/editor-canvas/edit-template-blocks-notification.js +11 -18
  31. package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
  32. package/build/components/editor-canvas/index.js +28 -16
  33. package/build/components/editor-canvas/index.js.map +1 -1
  34. package/build/components/editor-help/add-blocks.native.js +1 -2
  35. package/build/components/editor-help/add-blocks.native.js.map +1 -1
  36. package/build/components/editor-help/customize-blocks.native.js +1 -2
  37. package/build/components/editor-help/customize-blocks.native.js.map +1 -1
  38. package/build/components/editor-help/help-detail-navigation-screen.native.js +1 -2
  39. package/build/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  40. package/build/components/editor-help/help-get-support-button.native.js +1 -2
  41. package/build/components/editor-help/help-get-support-button.native.js.map +1 -1
  42. package/build/components/editor-help/help-section-title.native.js +1 -2
  43. package/build/components/editor-help/help-section-title.native.js.map +1 -1
  44. package/build/components/editor-help/help-topic-row.native.js +1 -2
  45. package/build/components/editor-help/help-topic-row.native.js.map +1 -1
  46. package/build/components/editor-help/icon-move-blocks.native.js +1 -2
  47. package/build/components/editor-help/icon-move-blocks.native.js.map +1 -1
  48. package/build/components/editor-help/index.native.js +1 -2
  49. package/build/components/editor-help/index.native.js.map +1 -1
  50. package/build/components/editor-help/intro-to-blocks.native.js +1 -2
  51. package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
  52. package/build/components/editor-help/move-blocks.native.js +1 -2
  53. package/build/components/editor-help/move-blocks.native.js.map +1 -1
  54. package/build/components/editor-help/remove-blocks.native.js +1 -2
  55. package/build/components/editor-help/remove-blocks.native.js.map +1 -1
  56. package/build/components/editor-history/redo.js +1 -2
  57. package/build/components/editor-history/redo.js.map +1 -1
  58. package/build/components/editor-history/undo.js +1 -2
  59. package/build/components/editor-history/undo.js.map +1 -1
  60. package/build/components/editor-notices/index.js +1 -2
  61. package/build/components/editor-notices/index.js.map +1 -1
  62. package/build/components/editor-snackbars/index.js +3 -1
  63. package/build/components/editor-snackbars/index.js.map +1 -1
  64. package/build/components/entities-saved-states/entity-record-item.js +1 -1
  65. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  66. package/build/components/entities-saved-states/entity-type-list.js +7 -7
  67. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  68. package/build/components/entities-saved-states/index.js +4 -1
  69. package/build/components/entities-saved-states/index.js.map +1 -1
  70. package/build/components/error-boundary/index.js +1 -2
  71. package/build/components/error-boundary/index.js.map +1 -1
  72. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +1 -2
  73. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  74. package/build/components/index.js +4 -6
  75. package/build/components/index.js.map +1 -1
  76. package/build/components/list-view-sidebar/index.js +43 -36
  77. package/build/components/list-view-sidebar/index.js.map +1 -1
  78. package/build/components/local-autosave-monitor/index.js +1 -2
  79. package/build/components/local-autosave-monitor/index.js.map +1 -1
  80. package/build/components/media-categories/index.js +1 -2
  81. package/build/components/media-categories/index.js.map +1 -1
  82. package/build/components/offline-status/index.native.js +1 -2
  83. package/build/components/offline-status/index.native.js.map +1 -1
  84. package/build/components/page-attributes/check.js +1 -2
  85. package/build/components/page-attributes/check.js.map +1 -1
  86. package/build/components/page-attributes/panel.js +1 -2
  87. package/build/components/page-attributes/panel.js.map +1 -1
  88. package/build/components/page-attributes/parent.js +1 -2
  89. package/build/components/page-attributes/parent.js.map +1 -1
  90. package/build/components/post-author/combobox.js +6 -60
  91. package/build/components/post-author/combobox.js.map +1 -1
  92. package/build/components/post-author/constants.js +7 -5
  93. package/build/components/post-author/constants.js.map +1 -1
  94. package/build/components/post-author/hook.js +72 -0
  95. package/build/components/post-author/hook.js.map +1 -0
  96. package/build/components/post-author/index.js +1 -2
  97. package/build/components/post-author/index.js.map +1 -1
  98. package/build/components/post-author/panel.js +1 -2
  99. package/build/components/post-author/panel.js.map +1 -1
  100. package/build/components/post-author/select.js +6 -24
  101. package/build/components/post-author/select.js.map +1 -1
  102. package/build/components/post-comments/index.js +1 -2
  103. package/build/components/post-comments/index.js.map +1 -1
  104. package/build/components/post-discussion/panel.js +1 -2
  105. package/build/components/post-discussion/panel.js.map +1 -1
  106. package/build/components/post-excerpt/check.js +1 -2
  107. package/build/components/post-excerpt/check.js.map +1 -1
  108. package/build/components/post-excerpt/index.js +1 -2
  109. package/build/components/post-excerpt/index.js.map +1 -1
  110. package/build/components/post-excerpt/plugin.js +1 -2
  111. package/build/components/post-excerpt/plugin.js.map +1 -1
  112. package/build/components/post-featured-image/check.js +1 -2
  113. package/build/components/post-featured-image/check.js.map +1 -1
  114. package/build/components/post-featured-image/index.js +1 -2
  115. package/build/components/post-featured-image/index.js.map +1 -1
  116. package/build/components/post-featured-image/panel.js +1 -2
  117. package/build/components/post-featured-image/panel.js.map +1 -1
  118. package/build/components/post-format/check.js +1 -2
  119. package/build/components/post-format/check.js.map +1 -1
  120. package/build/components/post-format/index.js +1 -2
  121. package/build/components/post-format/index.js.map +1 -1
  122. package/build/components/post-last-revision/check.js +1 -2
  123. package/build/components/post-last-revision/check.js.map +1 -1
  124. package/build/components/post-last-revision/index.js +6 -5
  125. package/build/components/post-last-revision/index.js.map +1 -1
  126. package/build/components/post-last-revision/panel.js +1 -2
  127. package/build/components/post-last-revision/panel.js.map +1 -1
  128. package/build/components/post-panel-row/index.js +1 -2
  129. package/build/components/post-panel-row/index.js.map +1 -1
  130. package/build/components/post-pending-status/check.js +1 -2
  131. package/build/components/post-pending-status/check.js.map +1 -1
  132. package/build/components/post-pending-status/index.js +1 -2
  133. package/build/components/post-pending-status/index.js.map +1 -1
  134. package/build/components/post-pingbacks/index.js +1 -2
  135. package/build/components/post-pingbacks/index.js.map +1 -1
  136. package/build/components/post-publish-button/index.js +1 -2
  137. package/build/components/post-publish-button/index.js.map +1 -1
  138. package/build/components/post-publish-button/label.js +1 -2
  139. package/build/components/post-publish-button/label.js.map +1 -1
  140. package/build/components/post-publish-panel/index.js +1 -2
  141. package/build/components/post-publish-panel/index.js.map +1 -1
  142. package/build/components/post-publish-panel/maybe-category-panel.js +1 -2
  143. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  144. package/build/components/post-publish-panel/maybe-tags-panel.js +22 -26
  145. package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  146. package/build/components/post-publish-panel/postpublish.js +1 -2
  147. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  148. package/build/components/post-publish-panel/prepublish.js +1 -2
  149. package/build/components/post-publish-panel/prepublish.js.map +1 -1
  150. package/build/components/post-schedule/index.js +0 -1
  151. package/build/components/post-schedule/index.js.map +1 -1
  152. package/build/components/post-schedule/label.js +1 -1
  153. package/build/components/post-schedule/label.js.map +1 -1
  154. package/build/components/post-schedule/panel.js +1 -0
  155. package/build/components/post-schedule/panel.js.map +1 -1
  156. package/build/components/post-slug/index.js +1 -2
  157. package/build/components/post-slug/index.js.map +1 -1
  158. package/build/components/post-switch-to-draft-button/index.js +1 -0
  159. package/build/components/post-switch-to-draft-button/index.js.map +1 -1
  160. package/build/components/post-sync-status/index.js +1 -1
  161. package/build/components/post-sync-status/index.js.map +1 -1
  162. package/build/components/post-taxonomies/check.js +8 -15
  163. package/build/components/post-taxonomies/check.js.map +1 -1
  164. package/build/components/post-taxonomies/flat-term-selector.js +1 -2
  165. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  166. package/build/components/post-taxonomies/hierarchical-term-selector.js +1 -2
  167. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  168. package/build/components/post-taxonomies/index.js +14 -15
  169. package/build/components/post-taxonomies/index.js.map +1 -1
  170. package/build/components/post-taxonomies/panel.js +1 -2
  171. package/build/components/post-taxonomies/panel.js.map +1 -1
  172. package/build/components/post-template/block-theme.js +12 -11
  173. package/build/components/post-template/block-theme.js.map +1 -1
  174. package/build/components/post-template/classic-theme.js +10 -11
  175. package/build/components/post-template/classic-theme.js.map +1 -1
  176. package/build/components/post-template/create-new-template-modal.js +4 -5
  177. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  178. package/build/components/post-template/panel.js +5 -1
  179. package/build/components/post-template/panel.js.map +1 -1
  180. package/build/components/post-title/constants.js +2 -4
  181. package/build/components/post-title/constants.js.map +1 -1
  182. package/build/components/post-title/index.js +2 -3
  183. package/build/components/post-title/index.js.map +1 -1
  184. package/build/components/post-title/index.native.js +1 -2
  185. package/build/components/post-title/index.native.js.map +1 -1
  186. package/build/components/post-title/post-title-raw.js +1 -2
  187. package/build/components/post-title/post-title-raw.js.map +1 -1
  188. package/build/components/post-trash/check.js +1 -2
  189. package/build/components/post-trash/check.js.map +1 -1
  190. package/build/components/post-trash/index.js +1 -0
  191. package/build/components/post-trash/index.js.map +1 -1
  192. package/build/components/post-type-support-check/index.js +1 -2
  193. package/build/components/post-type-support-check/index.js.map +1 -1
  194. package/build/components/post-url/panel.js +1 -0
  195. package/build/components/post-url/panel.js.map +1 -1
  196. package/build/components/post-visibility/utils.js +1 -2
  197. package/build/components/post-visibility/utils.js.map +1 -1
  198. package/build/components/preferences-modal/enable-panel.js +1 -2
  199. package/build/components/preferences-modal/enable-panel.js.map +1 -1
  200. package/build/components/preferences-modal/enable-plugin-document-setting-panel.js +1 -2
  201. package/build/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  202. package/build/components/preferences-modal/index.js +0 -1
  203. package/build/components/preferences-modal/index.js.map +1 -1
  204. package/build/components/provider/constants.js +1 -2
  205. package/build/components/provider/constants.js.map +1 -1
  206. package/build/components/provider/index.js +12 -6
  207. package/build/components/provider/index.js.map +1 -1
  208. package/build/components/provider/index.native.js +4 -6
  209. package/build/components/provider/index.native.js.map +1 -1
  210. package/build/components/provider/use-block-editor-settings.js +2 -3
  211. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  212. package/build/components/provider/use-block-editor-settings.native.js +1 -2
  213. package/build/components/provider/use-block-editor-settings.native.js.map +1 -1
  214. package/build/components/provider/with-registry-provider.js +1 -2
  215. package/build/components/provider/with-registry-provider.js.map +1 -1
  216. package/build/components/table-of-contents/index.js +1 -2
  217. package/build/components/table-of-contents/index.js.map +1 -1
  218. package/build/components/table-of-contents/panel.js +1 -2
  219. package/build/components/table-of-contents/panel.js.map +1 -1
  220. package/build/components/template-validation-notice/index.js +1 -2
  221. package/build/components/template-validation-notice/index.js.map +1 -1
  222. package/build/components/theme-support-check/index.js +1 -2
  223. package/build/components/theme-support-check/index.js.map +1 -1
  224. package/build/hooks/pattern-partial-syncing.js +9 -2
  225. package/build/hooks/pattern-partial-syncing.js.map +1 -1
  226. package/build/private-apis.js +1 -2
  227. package/build/private-apis.js.map +1 -1
  228. package/build/store/actions.js +32 -63
  229. package/build/store/actions.js.map +1 -1
  230. package/build/store/constants.js +7 -14
  231. package/build/store/constants.js.map +1 -1
  232. package/build/store/defaults.js +1 -2
  233. package/build/store/defaults.js.map +1 -1
  234. package/build/store/index.js +4 -6
  235. package/build/store/index.js.map +1 -1
  236. package/build/store/private-selectors.js +1 -2
  237. package/build/store/private-selectors.js.map +1 -1
  238. package/build/store/reducer.js +2 -3
  239. package/build/store/reducer.js.map +1 -1
  240. package/build/store/reducer.native.js +2 -4
  241. package/build/store/reducer.native.js.map +1 -1
  242. package/build/store/selectors.js +72 -144
  243. package/build/store/selectors.js.map +1 -1
  244. package/build/store/selectors.native.js +1 -2
  245. package/build/store/selectors.native.js.map +1 -1
  246. package/build-module/bindings/index.js +2 -0
  247. package/build-module/bindings/index.js.map +1 -1
  248. package/build-module/bindings/pattern-overrides.js +11 -0
  249. package/build-module/bindings/pattern-overrides.js.map +1 -0
  250. package/build-module/bindings/post-meta.js +3 -4
  251. package/build-module/bindings/post-meta.js.map +1 -1
  252. package/build-module/components/document-bar/index.js +5 -6
  253. package/build-module/components/document-bar/index.js.map +1 -1
  254. package/build-module/components/editor-canvas/edit-template-blocks-notification.js +11 -18
  255. package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
  256. package/build-module/components/editor-canvas/index.js +27 -14
  257. package/build-module/components/editor-canvas/index.js.map +1 -1
  258. package/build-module/components/editor-snackbars/index.js +4 -1
  259. package/build-module/components/editor-snackbars/index.js.map +1 -1
  260. package/build-module/components/entities-saved-states/entity-record-item.js +1 -1
  261. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  262. package/build-module/components/entities-saved-states/entity-type-list.js +8 -8
  263. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  264. package/build-module/components/entities-saved-states/index.js +6 -3
  265. package/build-module/components/entities-saved-states/index.js.map +1 -1
  266. package/build-module/components/list-view-sidebar/index.js +44 -37
  267. package/build-module/components/list-view-sidebar/index.js.map +1 -1
  268. package/build-module/components/post-author/combobox.js +8 -61
  269. package/build-module/components/post-author/combobox.js.map +1 -1
  270. package/build-module/components/post-author/constants.js +5 -2
  271. package/build-module/components/post-author/constants.js.map +1 -1
  272. package/build-module/components/post-author/hook.js +65 -0
  273. package/build-module/components/post-author/hook.js.map +1 -0
  274. package/build-module/components/post-author/select.js +7 -24
  275. package/build-module/components/post-author/select.js.map +1 -1
  276. package/build-module/components/post-last-revision/index.js +6 -4
  277. package/build-module/components/post-last-revision/index.js.map +1 -1
  278. package/build-module/components/post-publish-panel/maybe-tags-panel.js +24 -27
  279. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  280. package/build-module/components/post-schedule/index.js +0 -1
  281. package/build-module/components/post-schedule/index.js.map +1 -1
  282. package/build-module/components/post-schedule/label.js +1 -1
  283. package/build-module/components/post-schedule/label.js.map +1 -1
  284. package/build-module/components/post-schedule/panel.js +1 -0
  285. package/build-module/components/post-schedule/panel.js.map +1 -1
  286. package/build-module/components/post-switch-to-draft-button/index.js +1 -0
  287. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  288. package/build-module/components/post-sync-status/index.js +1 -1
  289. package/build-module/components/post-sync-status/index.js.map +1 -1
  290. package/build-module/components/post-taxonomies/check.js +9 -14
  291. package/build-module/components/post-taxonomies/check.js.map +1 -1
  292. package/build-module/components/post-taxonomies/index.js +15 -15
  293. package/build-module/components/post-taxonomies/index.js.map +1 -1
  294. package/build-module/components/post-template/block-theme.js +12 -11
  295. package/build-module/components/post-template/block-theme.js.map +1 -1
  296. package/build-module/components/post-template/classic-theme.js +9 -9
  297. package/build-module/components/post-template/classic-theme.js.map +1 -1
  298. package/build-module/components/post-template/create-new-template-modal.js +4 -5
  299. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  300. package/build-module/components/post-template/panel.js +5 -1
  301. package/build-module/components/post-template/panel.js.map +1 -1
  302. package/build-module/components/post-title/index.js +1 -2
  303. package/build-module/components/post-title/index.js.map +1 -1
  304. package/build-module/components/post-trash/index.js +1 -0
  305. package/build-module/components/post-trash/index.js.map +1 -1
  306. package/build-module/components/post-url/panel.js +1 -0
  307. package/build-module/components/post-url/panel.js.map +1 -1
  308. package/build-module/components/preferences-modal/index.js +0 -1
  309. package/build-module/components/preferences-modal/index.js.map +1 -1
  310. package/build-module/components/provider/index.js +10 -2
  311. package/build-module/components/provider/index.js.map +1 -1
  312. package/build-module/components/provider/use-block-editor-settings.js +1 -1
  313. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  314. package/build-module/components/table-of-contents/panel.js +0 -1
  315. package/build-module/components/table-of-contents/panel.js.map +1 -1
  316. package/build-module/hooks/pattern-partial-syncing.js +9 -2
  317. package/build-module/hooks/pattern-partial-syncing.js.map +1 -1
  318. package/build-module/store/actions.js +1 -1
  319. package/build-module/store/actions.js.map +1 -1
  320. package/build-module/store/reducer.js +1 -1
  321. package/build-module/store/reducer.js.map +1 -1
  322. package/build-style/style-rtl.css +28 -22
  323. package/build-style/style.css +28 -22
  324. package/package.json +32 -32
  325. package/src/bindings/index.js +2 -0
  326. package/src/bindings/pattern-overrides.js +11 -0
  327. package/src/bindings/post-meta.js +2 -3
  328. package/src/components/document-bar/index.js +22 -17
  329. package/src/components/editor-canvas/edit-template-blocks-notification.js +31 -30
  330. package/src/components/editor-canvas/index.js +39 -10
  331. package/src/components/editor-snackbars/index.js +6 -3
  332. package/src/components/entities-saved-states/entity-record-item.js +1 -4
  333. package/src/components/entities-saved-states/entity-type-list.js +8 -8
  334. package/src/components/entities-saved-states/index.js +17 -4
  335. package/src/components/entities-saved-states/style.scss +5 -0
  336. package/src/components/list-view-sidebar/index.js +60 -47
  337. package/src/components/list-view-sidebar/style.scss +20 -20
  338. package/src/components/post-author/combobox.js +5 -61
  339. package/src/components/post-author/constants.js +6 -2
  340. package/src/components/post-author/hook.js +63 -0
  341. package/src/components/post-author/select.js +5 -25
  342. package/src/components/post-last-revision/index.js +6 -6
  343. package/src/components/post-last-revision/style.scss +3 -6
  344. package/src/components/post-panel-row/style.scss +3 -3
  345. package/src/components/post-publish-panel/maybe-tags-panel.js +27 -37
  346. package/src/components/post-publish-panel/style.scss +3 -1
  347. package/src/components/post-schedule/label.js +1 -1
  348. package/src/components/post-schedule/panel.js +1 -0
  349. package/src/components/post-schedule/test/label.js +19 -7
  350. package/src/components/post-switch-to-draft-button/index.js +1 -0
  351. package/src/components/post-sync-status/index.js +8 -2
  352. package/src/components/post-taxonomies/check.js +11 -15
  353. package/src/components/post-taxonomies/index.js +15 -22
  354. package/src/components/post-taxonomies/test/index.js +37 -51
  355. package/src/components/post-template/block-theme.js +29 -22
  356. package/src/components/post-template/classic-theme.js +10 -13
  357. package/src/components/post-template/create-new-template-modal.js +7 -9
  358. package/src/components/post-template/panel.js +5 -1
  359. package/src/components/post-trash/index.js +1 -0
  360. package/src/components/post-url/panel.js +1 -0
  361. package/src/components/provider/index.js +22 -2
  362. package/src/components/provider/use-block-editor-settings.js +1 -1
  363. package/src/hooks/pattern-partial-syncing.js +23 -4
  364. package/src/store/actions.js +1 -1
  365. package/src/store/reducer.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","isRTL","sprintf","useSelect","useDispatch","Button","__experimentalText","Text","__experimentalHStack","HStack","BlockIcon","chevronLeftSmall","chevronRightSmall","page","pageIcon","navigation","navigationIcon","symbol","displayShortcut","useEntityRecord","store","commandsStore","useState","useEffect","useRef","editorStore","typeLabels","wp_pattern","wp_navigation","wp_template","wp_template_part","icons","wp_block","DocumentBar","postType","postId","goBack","select","getCurrentPostId","getCurrentPostType","getEditorSettings","getSettings","back","undefined","handleOnBack","createElement","BaseDocumentActions","onBack","_icons$postType","open","openCommandCenter","editedRecord","doc","isResolving","templateIcon","templateTitle","__experimentalGetTemplateInfo","getTemplateInfo","templateInfo","icon","title","isNotFound","isAnimated","setIsAnimated","isMounting","isTemplate","includes","isGlobalEntity","current","className","onClick","event","stopPropagation","size","spacing","justify","as","primary"],"sources":["@wordpress/editor/src/components/document-bar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport {\n\tchevronLeftSmall,\n\tchevronRightSmall,\n\tpage as pageIcon,\n\tnavigation as navigationIcon,\n\tsymbol,\n} from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useEntityRecord } from '@wordpress/core-data';\nimport { store as commandsStore } from '@wordpress/commands';\nimport { useState, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nconst typeLabels = {\n\t// translators: 1: Pattern title.\n\twp_pattern: __( 'Editing pattern: %s' ),\n\t// translators: 1: Navigation menu title.\n\twp_navigation: __( 'Editing navigation menu: %s' ),\n\t// translators: 1: Template title.\n\twp_template: __( 'Editing template: %s' ),\n\t// translators: 1: Template part title.\n\twp_template_part: __( 'Editing template part: %s' ),\n};\n\nconst icons = {\n\twp_block: symbol,\n\twp_navigation: navigationIcon,\n};\n\nexport default function DocumentBar() {\n\tconst { postType, postId, goBack } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostType,\n\t\t\tgetEditorSettings: getSettings,\n\t\t} = select( editorStore );\n\t\tconst back = getSettings().goBack;\n\t\treturn {\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tgoBack: typeof back === 'function' ? back : undefined,\n\t\t\tgetEditorSettings: getSettings,\n\t\t};\n\t}, [] );\n\n\tconst handleOnBack = () => {\n\t\tif ( goBack ) {\n\t\t\tgoBack();\n\t\t}\n\t};\n\n\treturn (\n\t\t<BaseDocumentActions\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\n\t\t\tonBack={ goBack ? handleOnBack : undefined }\n\t\t/>\n\t);\n}\n\nfunction BaseDocumentActions( { postType, postId, onBack } ) {\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\tconst { editedRecord: doc, isResolving } = useEntityRecord(\n\t\t'postType',\n\t\tpostType,\n\t\tpostId\n\t);\n\tconst { templateIcon, templateTitle } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\tselect( editorStore );\n\t\tconst templateInfo = getTemplateInfo( doc );\n\t\treturn {\n\t\t\ttemplateIcon: templateInfo.icon,\n\t\t\ttemplateTitle: templateInfo.title,\n\t\t};\n\t} );\n\tconst isNotFound = ! doc && ! isResolving;\n\tconst icon = icons[ postType ] ?? pageIcon;\n\tconst [ isAnimated, setIsAnimated ] = useState( false );\n\tconst isMounting = useRef( true );\n\tconst isTemplate = [ 'wp_template', 'wp_template_part' ].includes(\n\t\tpostType\n\t);\n\tconst isGlobalEntity = [\n\t\t'wp_template',\n\t\t'wp_navigation',\n\t\t'wp_template_part',\n\t\t'wp_block',\n\t].includes( postType );\n\n\tuseEffect( () => {\n\t\tif ( ! isMounting.current ) {\n\t\t\tsetIsAnimated( true );\n\t\t}\n\t\tisMounting.current = false;\n\t}, [ postType, postId ] );\n\n\tconst title = isTemplate ? templateTitle : doc.title;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'editor-document-bar', {\n\t\t\t\t'has-back-button': !! onBack,\n\t\t\t\t'is-animated': isAnimated,\n\t\t\t\t'is-global': isGlobalEntity,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ onBack && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"editor-document-bar__back\"\n\t\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tonBack();\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ isNotFound && <Text>{ __( 'Document not found' ) }</Text> }\n\t\t\t{ ! isNotFound && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"editor-document-bar__command\"\n\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"editor-document-bar__title\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockIcon icon={ isTemplate ? templateIcon : icon } />\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tsize=\"body\"\n\t\t\t\t\t\t\tas=\"h1\"\n\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\ttypeLabels[ postType ]\n\t\t\t\t\t\t\t\t\t? // eslint-disable-next-line @wordpress/valid-sprintf\n\t\t\t\t\t\t\t\t\t sprintf( typeLabels[ postType ], title )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<span className=\"editor-document-bar__shortcut\">\n\t\t\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t</span>\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","__","isRTL","sprintf","useSelect","useDispatch","Button","__experimentalText","Text","__experimentalHStack","HStack","BlockIcon","chevronLeftSmall","chevronRightSmall","page","pageIcon","navigation","navigationIcon","symbol","displayShortcut","useEntityRecord","store","commandsStore","useState","useEffect","useRef","editorStore","typeLabels","wp_pattern","wp_navigation","wp_template","wp_template_part","icons","wp_block","DocumentBar","postType","postId","onNavigateToPreviousEntityRecord","select","getCurrentPostId","getCurrentPostType","getEditorSettings","getSettings","handleOnBack","createElement","BaseDocumentActions","onBack","undefined","_icons$postType","open","openCommandCenter","editedRecord","doc","isResolving","templateIcon","templateTitle","__experimentalGetTemplateInfo","getTemplateInfo","templateInfo","icon","title","isNotFound","isAnimated","setIsAnimated","isMounting","isTemplate","includes","isGlobalEntity","current","className","onClick","event","stopPropagation","size","spacing","justify","as","primary"],"sources":["@wordpress/editor/src/components/document-bar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport {\n\tchevronLeftSmall,\n\tchevronRightSmall,\n\tpage as pageIcon,\n\tnavigation as navigationIcon,\n\tsymbol,\n} from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useEntityRecord } from '@wordpress/core-data';\nimport { store as commandsStore } from '@wordpress/commands';\nimport { useState, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nconst typeLabels = {\n\t// translators: 1: Pattern title.\n\twp_pattern: __( 'Editing pattern: %s' ),\n\t// translators: 1: Navigation menu title.\n\twp_navigation: __( 'Editing navigation menu: %s' ),\n\t// translators: 1: Template title.\n\twp_template: __( 'Editing template: %s' ),\n\t// translators: 1: Template part title.\n\twp_template_part: __( 'Editing template part: %s' ),\n};\n\nconst icons = {\n\twp_block: symbol,\n\twp_navigation: navigationIcon,\n};\n\nexport default function DocumentBar() {\n\tconst { postType, postId, onNavigateToPreviousEntityRecord } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetCurrentPostId,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetEditorSettings: getSettings,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t\tonNavigateToPreviousEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToPreviousEntityRecord,\n\t\t\t\tgetEditorSettings: getSettings,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst handleOnBack = () => {\n\t\tif ( onNavigateToPreviousEntityRecord ) {\n\t\t\tonNavigateToPreviousEntityRecord();\n\t\t}\n\t};\n\n\treturn (\n\t\t<BaseDocumentActions\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\n\t\t\tonBack={\n\t\t\t\tonNavigateToPreviousEntityRecord ? handleOnBack : undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction BaseDocumentActions( { postType, postId, onBack } ) {\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\tconst { editedRecord: doc, isResolving } = useEntityRecord(\n\t\t'postType',\n\t\tpostType,\n\t\tpostId\n\t);\n\tconst { templateIcon, templateTitle } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\tselect( editorStore );\n\t\tconst templateInfo = getTemplateInfo( doc );\n\t\treturn {\n\t\t\ttemplateIcon: templateInfo.icon,\n\t\t\ttemplateTitle: templateInfo.title,\n\t\t};\n\t} );\n\tconst isNotFound = ! doc && ! isResolving;\n\tconst icon = icons[ postType ] ?? pageIcon;\n\tconst [ isAnimated, setIsAnimated ] = useState( false );\n\tconst isMounting = useRef( true );\n\tconst isTemplate = [ 'wp_template', 'wp_template_part' ].includes(\n\t\tpostType\n\t);\n\tconst isGlobalEntity = [\n\t\t'wp_template',\n\t\t'wp_navigation',\n\t\t'wp_template_part',\n\t\t'wp_block',\n\t].includes( postType );\n\n\tuseEffect( () => {\n\t\tif ( ! isMounting.current ) {\n\t\t\tsetIsAnimated( true );\n\t\t}\n\t\tisMounting.current = false;\n\t}, [ postType, postId ] );\n\n\tconst title = isTemplate ? templateTitle : doc.title;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'editor-document-bar', {\n\t\t\t\t'has-back-button': !! onBack,\n\t\t\t\t'is-animated': isAnimated,\n\t\t\t\t'is-global': isGlobalEntity,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ onBack && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"editor-document-bar__back\"\n\t\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tonBack();\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ isNotFound && <Text>{ __( 'Document not found' ) }</Text> }\n\t\t\t{ ! isNotFound && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"editor-document-bar__command\"\n\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"editor-document-bar__title\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockIcon icon={ isTemplate ? templateIcon : icon } />\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tsize=\"body\"\n\t\t\t\t\t\t\tas=\"h1\"\n\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\ttypeLabels[ postType ]\n\t\t\t\t\t\t\t\t\t? // eslint-disable-next-line @wordpress/valid-sprintf\n\t\t\t\t\t\t\t\t\t sprintf( typeLabels[ postType ], title )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<span className=\"editor-document-bar__shortcut\">\n\t\t\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t</span>\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -31,25 +31,18 @@ export default function EditTemplateBlocksNotification({
31
31
  contentRef
32
32
  }) {
33
33
  const {
34
- renderingMode,
35
- getPostLinkProps,
34
+ onNavigateToEntityRecord,
36
35
  templateId
37
36
  } = useSelect(select => {
38
37
  const {
39
- getRenderingMode,
40
38
  getEditorSettings,
41
39
  getCurrentTemplateId
42
40
  } = select(editorStore);
43
41
  return {
44
- renderingMode: getRenderingMode(),
45
- getPostLinkProps: getEditorSettings().getPostLinkProps,
42
+ onNavigateToEntityRecord: getEditorSettings().onNavigateToEntityRecord,
46
43
  templateId: getCurrentTemplateId()
47
44
  };
48
45
  }, []);
49
- const editTemplate = getPostLinkProps ? getPostLinkProps({
50
- postId: templateId,
51
- postType: 'wp_template'
52
- }) : {};
53
46
  const {
54
47
  getNotices
55
48
  } = useSelect(noticesStore);
@@ -61,9 +54,6 @@ export default function EditTemplateBlocksNotification({
61
54
  const lastNoticeId = useRef(0);
62
55
  useEffect(() => {
63
56
  const handleClick = async event => {
64
- if (renderingMode !== 'template-locked') {
65
- return;
66
- }
67
57
  if (!event.target.classList.contains('is-root-container')) {
68
58
  return;
69
59
  }
@@ -78,15 +68,15 @@ export default function EditTemplateBlocksNotification({
78
68
  type: 'snackbar',
79
69
  actions: [{
80
70
  label: __('Edit template'),
81
- onClick: () => editTemplate.onClick()
71
+ onClick: () => onNavigateToEntityRecord({
72
+ postId: templateId,
73
+ postType: 'wp_template'
74
+ })
82
75
  }]
83
76
  });
84
77
  lastNoticeId.current = notice.id;
85
78
  };
86
79
  const handleDblClick = event => {
87
- if (renderingMode !== 'template-locked') {
88
- return;
89
- }
90
80
  if (!event.target.classList.contains('is-root-container')) {
91
81
  return;
92
82
  }
@@ -102,13 +92,16 @@ export default function EditTemplateBlocksNotification({
102
92
  canvas?.removeEventListener('click', handleClick);
103
93
  canvas?.removeEventListener('dblclick', handleDblClick);
104
94
  };
105
- }, [lastNoticeId, renderingMode, contentRef.current]);
95
+ }, [lastNoticeId, contentRef, getNotices, createInfoNotice, onNavigateToEntityRecord, templateId, removeNotice]);
106
96
  return createElement(ConfirmDialog, {
107
97
  isOpen: isDialogOpen,
108
98
  confirmButtonText: __('Edit template'),
109
99
  onConfirm: () => {
110
100
  setIsDialogOpen(false);
111
- editTemplate.onClick();
101
+ onNavigateToEntityRecord({
102
+ postId: templateId,
103
+ postType: 'wp_template'
104
+ });
112
105
  },
113
106
  onCancel: () => setIsDialogOpen(false)
114
107
  }, __('Edit your template to edit this block.'));
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","useEffect","useState","useRef","store","noticesStore","__","__experimentalConfirmDialog","ConfirmDialog","editorStore","EditTemplateBlocksNotification","contentRef","renderingMode","getPostLinkProps","templateId","select","getRenderingMode","getEditorSettings","getCurrentTemplateId","editTemplate","postId","postType","getNotices","createInfoNotice","removeNotice","isDialogOpen","setIsDialogOpen","lastNoticeId","handleClick","event","target","classList","contains","isNoticeAlreadyShowing","some","notice","id","current","isDismissible","type","actions","label","onClick","handleDblClick","canvas","addEventListener","removeEventListener","createElement","isOpen","confirmButtonText","onConfirm","onCancel"],"sources":["@wordpress/editor/src/components/editor-canvas/edit-template-blocks-notification.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useState, useRef } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Component that:\n *\n * - Displays a 'Edit your template to edit this block' notification when the\n * user is focusing on editing page content and clicks on a disabled template\n * block.\n * - Displays a 'Edit your template to edit this block' dialog when the user\n * is focusing on editing page conetnt and double clicks on a disabled\n * template block.\n *\n * @param {Object} props\n * @param {import('react').RefObject<HTMLElement>} props.contentRef Ref to the block\n * editor iframe canvas.\n */\nexport default function EditTemplateBlocksNotification( { contentRef } ) {\n\tconst { renderingMode, getPostLinkProps, templateId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetRenderingMode,\n\t\t\t\tgetEditorSettings,\n\t\t\t\tgetCurrentTemplateId,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\trenderingMode: getRenderingMode(),\n\t\t\t\tgetPostLinkProps: getEditorSettings().getPostLinkProps,\n\t\t\t\ttemplateId: getCurrentTemplateId(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst editTemplate = getPostLinkProps\n\t\t? getPostLinkProps( {\n\t\t\t\tpostId: templateId,\n\t\t\t\tpostType: 'wp_template',\n\t\t } )\n\t\t: {};\n\tconst { getNotices } = useSelect( noticesStore );\n\n\tconst { createInfoNotice, removeNotice } = useDispatch( noticesStore );\n\n\tconst [ isDialogOpen, setIsDialogOpen ] = useState( false );\n\n\tconst lastNoticeId = useRef( 0 );\n\n\tuseEffect( () => {\n\t\tconst handleClick = async ( event ) => {\n\t\t\tif ( renderingMode !== 'template-locked' ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( ! event.target.classList.contains( 'is-root-container' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst isNoticeAlreadyShowing = getNotices().some(\n\t\t\t\t( notice ) => notice.id === lastNoticeId.current\n\t\t\t);\n\t\t\tif ( isNoticeAlreadyShowing ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { notice } = await createInfoNotice(\n\t\t\t\t__( 'Edit your template to edit this block.' ),\n\t\t\t\t{\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Edit template' ),\n\t\t\t\t\t\t\tonClick: () => editTemplate.onClick(),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t\tlastNoticeId.current = notice.id;\n\t\t};\n\n\t\tconst handleDblClick = ( event ) => {\n\t\t\tif ( renderingMode !== 'template-locked' ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( ! event.target.classList.contains( 'is-root-container' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( lastNoticeId.current ) {\n\t\t\t\tremoveNotice( lastNoticeId.current );\n\t\t\t}\n\t\t\tsetIsDialogOpen( true );\n\t\t};\n\n\t\tconst canvas = contentRef.current;\n\t\tcanvas?.addEventListener( 'click', handleClick );\n\t\tcanvas?.addEventListener( 'dblclick', handleDblClick );\n\t\treturn () => {\n\t\t\tcanvas?.removeEventListener( 'click', handleClick );\n\t\t\tcanvas?.removeEventListener( 'dblclick', handleDblClick );\n\t\t};\n\t}, [ lastNoticeId, renderingMode, contentRef.current ] );\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isDialogOpen }\n\t\t\tconfirmButtonText={ __( 'Edit template' ) }\n\t\t\tonConfirm={ () => {\n\t\t\t\tsetIsDialogOpen( false );\n\t\t\t\teditTemplate.onClick();\n\t\t\t} }\n\t\t\tonCancel={ () => setIsDialogOpen( false ) }\n\t\t>\n\t\t\t{ __( 'Edit your template to edit this block.' ) }\n\t\t</ConfirmDialog>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useSelect","useDispatch","useEffect","useState","useRef","store","noticesStore","__","__experimentalConfirmDialog","ConfirmDialog","editorStore","EditTemplateBlocksNotification","contentRef","onNavigateToEntityRecord","templateId","select","getEditorSettings","getCurrentTemplateId","getNotices","createInfoNotice","removeNotice","isDialogOpen","setIsDialogOpen","lastNoticeId","handleClick","event","target","classList","contains","isNoticeAlreadyShowing","some","notice","id","current","isDismissible","type","actions","label","onClick","postId","postType","handleDblClick","canvas","addEventListener","removeEventListener","createElement","isOpen","confirmButtonText","onConfirm","onCancel"],"sources":["@wordpress/editor/src/components/editor-canvas/edit-template-blocks-notification.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useState, useRef } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Component that:\n *\n * - Displays a 'Edit your template to edit this block' notification when the\n * user is focusing on editing page content and clicks on a disabled template\n * block.\n * - Displays a 'Edit your template to edit this block' dialog when the user\n * is focusing on editing page conetnt and double clicks on a disabled\n * template block.\n *\n * @param {Object} props\n * @param {import('react').RefObject<HTMLElement>} props.contentRef Ref to the block\n * editor iframe canvas.\n */\nexport default function EditTemplateBlocksNotification( { contentRef } ) {\n\tconst { onNavigateToEntityRecord, templateId } = useSelect( ( select ) => {\n\t\tconst { getEditorSettings, getCurrentTemplateId } =\n\t\t\tselect( editorStore );\n\n\t\treturn {\n\t\t\tonNavigateToEntityRecord:\n\t\t\t\tgetEditorSettings().onNavigateToEntityRecord,\n\t\t\ttemplateId: getCurrentTemplateId(),\n\t\t};\n\t}, [] );\n\n\tconst { getNotices } = useSelect( noticesStore );\n\n\tconst { createInfoNotice, removeNotice } = useDispatch( noticesStore );\n\n\tconst [ isDialogOpen, setIsDialogOpen ] = useState( false );\n\n\tconst lastNoticeId = useRef( 0 );\n\n\tuseEffect( () => {\n\t\tconst handleClick = async ( event ) => {\n\t\t\tif ( ! event.target.classList.contains( 'is-root-container' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isNoticeAlreadyShowing = getNotices().some(\n\t\t\t\t( notice ) => notice.id === lastNoticeId.current\n\t\t\t);\n\t\t\tif ( isNoticeAlreadyShowing ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { notice } = await createInfoNotice(\n\t\t\t\t__( 'Edit your template to edit this block.' ),\n\t\t\t\t{\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Edit template' ),\n\t\t\t\t\t\t\tonClick: () =>\n\t\t\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\t\t\tpostId: templateId,\n\t\t\t\t\t\t\t\t\tpostType: 'wp_template',\n\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t\tlastNoticeId.current = notice.id;\n\t\t};\n\n\t\tconst handleDblClick = ( event ) => {\n\t\t\tif ( ! event.target.classList.contains( 'is-root-container' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( lastNoticeId.current ) {\n\t\t\t\tremoveNotice( lastNoticeId.current );\n\t\t\t}\n\t\t\tsetIsDialogOpen( true );\n\t\t};\n\n\t\tconst canvas = contentRef.current;\n\t\tcanvas?.addEventListener( 'click', handleClick );\n\t\tcanvas?.addEventListener( 'dblclick', handleDblClick );\n\t\treturn () => {\n\t\t\tcanvas?.removeEventListener( 'click', handleClick );\n\t\t\tcanvas?.removeEventListener( 'dblclick', handleDblClick );\n\t\t};\n\t}, [\n\t\tlastNoticeId,\n\t\tcontentRef,\n\t\tgetNotices,\n\t\tcreateInfoNotice,\n\t\tonNavigateToEntityRecord,\n\t\ttemplateId,\n\t\tremoveNotice,\n\t] );\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isDialogOpen }\n\t\t\tconfirmButtonText={ __( 'Edit template' ) }\n\t\t\tonConfirm={ () => {\n\t\t\t\tsetIsDialogOpen( false );\n\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\tpostId: templateId,\n\t\t\t\t\tpostType: 'wp_template',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonCancel={ () => setIsDialogOpen( false ) }\n\t\t>\n\t\t\t{ __( 'Edit your template to edit this block.' ) }\n\t\t</ConfirmDialog>\n\t);\n}\n"],"mappings":"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"}
@@ -25,10 +25,17 @@ const {
25
25
  LayoutStyle,
26
26
  useLayoutClasses,
27
27
  useLayoutStyles,
28
- ExperimentalBlockCanvas: BlockCanvas
28
+ ExperimentalBlockCanvas: BlockCanvas,
29
+ useFlashEditableBlocks
29
30
  } = unlock(blockEditorPrivateApis);
30
31
  const noop = () => {};
31
32
 
33
+ /**
34
+ * These post types have a special editor where they don't allow you to fill the title
35
+ * and they don't apply the layout styles.
36
+ */
37
+ const DESIGN_POST_TYPES = ['wp_block', 'wp_template', 'wp_navigation', 'wp_template_part'];
38
+
32
39
  /**
33
40
  * Given an array of nested blocks, find the first Post Content
34
41
  * block inside it, recursing through any nesting levels,
@@ -76,7 +83,8 @@ function EditorCanvas({
76
83
  wrapperBlockName,
77
84
  wrapperUniqueId,
78
85
  deviceType,
79
- showEditorPadding
86
+ showEditorPadding,
87
+ isDesignPostType
80
88
  } = useSelect(select => {
81
89
  const {
82
90
  getCurrentPostId,
@@ -96,7 +104,7 @@ function EditorCanvas({
96
104
  let _wrapperBlockName;
97
105
  if (postTypeSlug === 'wp_block') {
98
106
  _wrapperBlockName = 'core/block';
99
- } else if (!_renderingMode === 'post-only') {
107
+ } else if (_renderingMode === 'post-only') {
100
108
  _wrapperBlockName = 'core/post-content';
101
109
  }
102
110
  const editorSettings = getEditorSettings();
@@ -108,13 +116,14 @@ function EditorCanvas({
108
116
  return {
109
117
  renderingMode: _renderingMode,
110
118
  postContentAttributes: editorSettings.postContentAttributes,
119
+ isDesignPostType: DESIGN_POST_TYPES.includes(postTypeSlug),
111
120
  // Post template fetch returns a 404 on classic themes, which
112
121
  // messes with e2e tests, so check it's a block theme first.
113
122
  editedPostTemplate: postType?.viewable && supportsTemplateMode && canEditTemplate ? template : undefined,
114
123
  wrapperBlockName: _wrapperBlockName,
115
124
  wrapperUniqueId: getCurrentPostId(),
116
125
  deviceType: getDeviceType(),
117
- showEditorPadding: !!editorSettings.goBack
126
+ showEditorPadding: !!editorSettings.onNavigateToPreviousEntityRecord
118
127
  };
119
128
  }, []);
120
129
  const {
@@ -138,7 +147,7 @@ function EditorCanvas({
138
147
  // fallbackLayout is used if there is no Post Content,
139
148
  // and for Post Title.
140
149
  const fallbackLayout = useMemo(() => {
141
- if (renderingMode !== 'post-only') {
150
+ if (renderingMode !== 'post-only' || isDesignPostType) {
142
151
  return {
143
152
  type: 'default'
144
153
  };
@@ -155,7 +164,7 @@ function EditorCanvas({
155
164
  return {
156
165
  type: 'default'
157
166
  };
158
- }, [renderingMode, themeSupportsLayout, globalLayoutSettings]);
167
+ }, [renderingMode, themeSupportsLayout, globalLayoutSettings, isDesignPostType]);
159
168
  const newestPostContentAttributes = useMemo(() => {
160
169
  if (!editedPostTemplate?.content && !editedPostTemplate?.blocks && postContentAttributes) {
161
170
  return postContentAttributes;
@@ -225,7 +234,9 @@ function EditorCanvas({
225
234
  .is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;
226
235
  const localRef = useRef();
227
236
  const typewriterRef = useTypewriter();
228
- const contentRef = useMergeRefs([localRef, renderingMode === 'post-only' ? typewriterRef : noop]);
237
+ const contentRef = useMergeRefs([localRef, renderingMode === 'post-only' ? typewriterRef : noop, useFlashEditableBlocks({
238
+ isEnabled: renderingMode === 'template-locked'
239
+ })]);
229
240
  return createElement(BlockCanvas, {
230
241
  shouldIframe: !disableIframe || ['Tablet', 'Mobile'].includes(deviceType),
231
242
  contentRef: contentRef,
@@ -241,7 +252,7 @@ function EditorCanvas({
241
252
  ...deviceStyles
242
253
  }
243
254
  }
244
- }, themeSupportsLayout && !themeHasDisabledLayoutStyles && renderingMode === 'post-only' && createElement(Fragment, null, createElement(LayoutStyle, {
255
+ }, themeSupportsLayout && !themeHasDisabledLayoutStyles && renderingMode === 'post-only' && !isDesignPostType && createElement(Fragment, null, createElement(LayoutStyle, {
245
256
  selector: ".editor-editor-canvas__post-title-wrapper",
246
257
  layout: fallbackLayout
247
258
  }), createElement(LayoutStyle, {
@@ -252,7 +263,7 @@ function EditorCanvas({
252
263
  }), postContentLayoutStyles && createElement(LayoutStyle, {
253
264
  layout: postContentLayout,
254
265
  css: postContentLayoutStyles
255
- })), renderingMode === 'post-only' && createElement("div", {
266
+ })), renderingMode === 'post-only' && !isDesignPostType && createElement("div", {
256
267
  className: classnames('editor-editor-canvas__post-title-wrapper',
257
268
  // The following class is only here for backward comapatibility
258
269
  // some themes might be using it to style the post title.
@@ -272,16 +283,18 @@ function EditorCanvas({
272
283
  blockName: wrapperBlockName,
273
284
  uniqueId: wrapperUniqueId
274
285
  }, createElement(BlockList, {
275
- className: classnames(className, 'is-' + deviceType.toLowerCase() + '-preview', renderingMode !== 'post-only' ? 'wp-site-blocks' : `${blockListLayoutClass} wp-block-post-content`,
276
- // Ensure root level blocks receive default/flow blockGap styling rules.
277
- renderingMode !== 'all' && 'is-' + renderingMode),
286
+ className: classnames(className, 'is-' + deviceType.toLowerCase() + '-preview', renderingMode !== 'post-only' || isDesignPostType ? 'wp-site-blocks' : `${blockListLayoutClass} wp-block-post-content` // Ensure root level blocks receive default/flow blockGap styling rules.
287
+ ),
278
288
  layout: blockListLayout,
279
289
  dropZoneElement:
280
290
  // When iframed, pass in the html element of the iframe to
281
291
  // ensure the drop zone extends to the edges of the iframe.
282
292
  disableIframe ? localRef.current : localRef.current?.parentNode,
283
- renderAppender: renderAppender
284
- }), createElement(EditTemplateBlocksNotification, {
293
+ renderAppender: renderAppender,
294
+ __unstableDisableDropZone:
295
+ // In template preview mode, disable drop zones at the root of the template.
296
+ renderingMode === 'template-locked' ? true : false
297
+ }), renderingMode === 'template-locked' && createElement(EditTemplateBlocksNotification, {
285
298
  contentRef: localRef
286
299
  })), children);
287
300
  }
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","BlockList","store","blockEditorStore","__unstableUseTypewriter","useTypewriter","__unstableUseTypingObserver","useTypingObserver","useSettings","RecursionProvider","privateApis","blockEditorPrivateApis","__experimentalUseResizeCanvas","useResizeCanvas","useEffect","useRef","useMemo","useSelect","parse","coreStore","useMergeRefs","PostTitle","editorStore","unlock","EditTemplateBlocksNotification","LayoutStyle","useLayoutClasses","useLayoutStyles","ExperimentalBlockCanvas","BlockCanvas","noop","getPostContentAttributes","blocks","i","length","name","attributes","innerBlocks","nestedPostContent","checkForPostContentAtRootLevel","EditorCanvas","autoFocus","className","renderAppender","styles","disableIframe","iframeProps","children","renderingMode","postContentAttributes","editedPostTemplate","wrapperBlockName","wrapperUniqueId","deviceType","showEditorPadding","select","getCurrentPostId","getCurrentPostType","getCurrentTemplateId","getEditorSettings","getRenderingMode","getDeviceType","getPostType","canUser","getEditedEntityRecord","postTypeSlug","_renderingMode","_wrapperBlockName","editorSettings","supportsTemplateMode","postType","canEditTemplate","currentTemplateId","template","undefined","viewable","goBack","isCleanNewPost","hasRootPaddingAwareAlignments","themeHasDisabledLayoutStyles","themeSupportsLayout","_settings","getSettings","disableLayoutStyles","supportsLayout","__experimentalFeatures","useRootPaddingAwareAlignments","deviceStyles","globalLayoutSettings","fallbackLayout","type","newestPostContentAttributes","content","parseableContent","hasPostContentAtRootLevel","layout","align","postContentLayoutClasses","blockListLayoutClass","postContentLayoutStyles","postContentLayout","inherit","contentSize","wideSize","blockListLayout","postEditorLayout","observeTypingRef","titleRef","current","focus","alignCSS","localRef","typewriterRef","contentRef","createElement","shouldIframe","includes","height","style","Fragment","selector","css","contentEditable","ref","marginTop","blockName","uniqueId","toLowerCase","dropZoneElement","parentNode"],"sources":["@wordpress/editor/src/components/editor-canvas/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockList,\n\tstore as blockEditorStore,\n\t__unstableUseTypewriter as useTypewriter,\n\t__unstableUseTypingObserver as useTypingObserver,\n\tuseSettings,\n\tRecursionProvider,\n\tprivateApis as blockEditorPrivateApis,\n\t__experimentalUseResizeCanvas as useResizeCanvas,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { parse } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostTitle from '../post-title';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport EditTemplateBlocksNotification from './edit-template-blocks-notification';\n\nconst {\n\tLayoutStyle,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tExperimentalBlockCanvas: BlockCanvas,\n} = unlock( blockEditorPrivateApis );\n\nconst noop = () => {};\n\n/**\n * Given an array of nested blocks, find the first Post Content\n * block inside it, recursing through any nesting levels,\n * and return its attributes.\n *\n * @param {Array} blocks A list of blocks.\n *\n * @return {Object | undefined} The Post Content block.\n */\nfunction getPostContentAttributes( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn blocks[ i ].attributes;\n\t\t}\n\t\tif ( blocks[ i ].innerBlocks.length ) {\n\t\t\tconst nestedPostContent = getPostContentAttributes(\n\t\t\t\tblocks[ i ].innerBlocks\n\t\t\t);\n\n\t\t\tif ( nestedPostContent ) {\n\t\t\t\treturn nestedPostContent;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkForPostContentAtRootLevel( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction EditorCanvas( {\n\t// Ideally as we unify post and site editors, we won't need these props.\n\tautoFocus,\n\tclassName,\n\trenderAppender,\n\tstyles,\n\tdisableIframe = false,\n\tiframeProps,\n\tchildren,\n} ) {\n\tconst {\n\t\trenderingMode,\n\t\tpostContentAttributes,\n\t\teditedPostTemplate = {},\n\t\twrapperBlockName,\n\t\twrapperUniqueId,\n\t\tdeviceType,\n\t\tshowEditorPadding,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentTemplateId,\n\t\t\tgetEditorSettings,\n\t\t\tgetRenderingMode,\n\t\t\tgetDeviceType,\n\t\t} = select( editorStore );\n\t\tconst { getPostType, canUser, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst postTypeSlug = getCurrentPostType();\n\t\tconst _renderingMode = getRenderingMode();\n\t\tlet _wrapperBlockName;\n\n\t\tif ( postTypeSlug === 'wp_block' ) {\n\t\t\t_wrapperBlockName = 'core/block';\n\t\t} else if ( ! _renderingMode === 'post-only' ) {\n\t\t\t_wrapperBlockName = 'core/post-content';\n\t\t}\n\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst supportsTemplateMode = editorSettings.supportsTemplateMode;\n\t\tconst postType = getPostType( postTypeSlug );\n\t\tconst canEditTemplate = canUser( 'create', 'templates' );\n\t\tconst currentTemplateId = getCurrentTemplateId();\n\t\tconst template = currentTemplateId\n\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\tcurrentTemplateId\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\trenderingMode: _renderingMode,\n\t\t\tpostContentAttributes: editorSettings.postContentAttributes,\n\t\t\t// Post template fetch returns a 404 on classic themes, which\n\t\t\t// messes with e2e tests, so check it's a block theme first.\n\t\t\teditedPostTemplate:\n\t\t\t\tpostType?.viewable && supportsTemplateMode && canEditTemplate\n\t\t\t\t\t? template\n\t\t\t\t\t: undefined,\n\t\t\twrapperBlockName: _wrapperBlockName,\n\t\t\twrapperUniqueId: getCurrentPostId(),\n\t\t\tdeviceType: getDeviceType(),\n\t\t\tshowEditorPadding: !! editorSettings.goBack,\n\t\t};\n\t}, [] );\n\tconst { isCleanNewPost } = useSelect( editorStore );\n\tconst {\n\t\thasRootPaddingAwareAlignments,\n\t\tthemeHasDisabledLayoutStyles,\n\t\tthemeSupportsLayout,\n\t} = useSelect( ( select ) => {\n\t\tconst _settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tthemeHasDisabledLayoutStyles: _settings.disableLayoutStyles,\n\t\t\tthemeSupportsLayout: _settings.supportsLayout,\n\t\t\thasRootPaddingAwareAlignments:\n\t\t\t\t_settings.__experimentalFeatures?.useRootPaddingAwareAlignments,\n\t\t};\n\t}, [] );\n\n\tconst deviceStyles = useResizeCanvas( deviceType );\n\tconst [ globalLayoutSettings ] = useSettings( 'layout' );\n\n\t// fallbackLayout is used if there is no Post Content,\n\t// and for Post Title.\n\tconst fallbackLayout = useMemo( () => {\n\t\tif ( renderingMode !== 'post-only' ) {\n\t\t\treturn { type: 'default' };\n\t\t}\n\n\t\tif ( themeSupportsLayout ) {\n\t\t\t// We need to ensure support for wide and full alignments,\n\t\t\t// so we add the constrained type.\n\t\t\treturn { ...globalLayoutSettings, type: 'constrained' };\n\t\t}\n\t\t// Set default layout for classic themes so all alignments are supported.\n\t\treturn { type: 'default' };\n\t}, [ renderingMode, themeSupportsLayout, globalLayoutSettings ] );\n\n\tconst newestPostContentAttributes = useMemo( () => {\n\t\tif (\n\t\t\t! editedPostTemplate?.content &&\n\t\t\t! editedPostTemplate?.blocks &&\n\t\t\tpostContentAttributes\n\t\t) {\n\t\t\treturn postContentAttributes;\n\t\t}\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn getPostContentAttributes( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn getPostContentAttributes( parse( parseableContent ) ) || {};\n\t}, [\n\t\teditedPostTemplate?.content,\n\t\teditedPostTemplate?.blocks,\n\t\tpostContentAttributes,\n\t] );\n\n\tconst hasPostContentAtRootLevel = useMemo( () => {\n\t\tif ( ! editedPostTemplate?.content && ! editedPostTemplate?.blocks ) {\n\t\t\treturn false;\n\t\t}\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn checkForPostContentAtRootLevel( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn (\n\t\t\tcheckForPostContentAtRootLevel( parse( parseableContent ) ) || false\n\t\t);\n\t}, [ editedPostTemplate?.content, editedPostTemplate?.blocks ] );\n\n\tconst { layout = {}, align = '' } = newestPostContentAttributes || {};\n\n\tconst postContentLayoutClasses = useLayoutClasses(\n\t\tnewestPostContentAttributes,\n\t\t'core/post-content'\n\t);\n\n\tconst blockListLayoutClass = classnames(\n\t\t{\n\t\t\t'is-layout-flow': ! themeSupportsLayout,\n\t\t},\n\t\tthemeSupportsLayout && postContentLayoutClasses,\n\t\talign && `align${ align }`\n\t);\n\n\tconst postContentLayoutStyles = useLayoutStyles(\n\t\tnewestPostContentAttributes,\n\t\t'core/post-content',\n\t\t'.block-editor-block-list__layout.is-root-container'\n\t);\n\n\t// Update type for blocks using legacy layouts.\n\tconst postContentLayout = useMemo( () => {\n\t\treturn layout &&\n\t\t\t( layout?.type === 'constrained' ||\n\t\t\t\tlayout?.inherit ||\n\t\t\t\tlayout?.contentSize ||\n\t\t\t\tlayout?.wideSize )\n\t\t\t? { ...globalLayoutSettings, ...layout, type: 'constrained' }\n\t\t\t: { ...globalLayoutSettings, ...layout, type: 'default' };\n\t}, [\n\t\tlayout?.type,\n\t\tlayout?.inherit,\n\t\tlayout?.contentSize,\n\t\tlayout?.wideSize,\n\t\tglobalLayoutSettings,\n\t] );\n\n\t// If there is a Post Content block we use its layout for the block list;\n\t// if not, this must be a classic theme, in which case we use the fallback layout.\n\tconst blockListLayout = postContentAttributes\n\t\t? postContentLayout\n\t\t: fallbackLayout;\n\n\tconst postEditorLayout =\n\t\tblockListLayout?.type === 'default' && ! hasPostContentAtRootLevel\n\t\t\t? fallbackLayout\n\t\t\t: blockListLayout;\n\n\tconst observeTypingRef = useTypingObserver();\n\tconst titleRef = useRef();\n\tuseEffect( () => {\n\t\tif ( ! autoFocus || ! isCleanNewPost() ) {\n\t\t\treturn;\n\t\t}\n\t\ttitleRef?.current?.focus();\n\t}, [ autoFocus, isCleanNewPost ] );\n\n\t// Add some styles for alignwide/alignfull Post Content and its children.\n\tconst alignCSS = `.is-root-container.alignwide { max-width: var(--wp--style--global--wide-size); margin-left: auto; margin-right: auto;}\n\t\t.is-root-container.alignwide:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: var(--wp--style--global--wide-size);}\n\t\t.is-root-container.alignfull { max-width: none; margin-left: auto; margin-right: auto;}\n\t\t.is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;\n\n\tconst localRef = useRef();\n\tconst typewriterRef = useTypewriter();\n\tconst contentRef = useMergeRefs( [\n\t\tlocalRef,\n\t\trenderingMode === 'post-only' ? typewriterRef : noop,\n\t] );\n\n\treturn (\n\t\t<BlockCanvas\n\t\t\tshouldIframe={\n\t\t\t\t! disableIframe || [ 'Tablet', 'Mobile' ].includes( deviceType )\n\t\t\t}\n\t\t\tcontentRef={ contentRef }\n\t\t\tstyles={ styles }\n\t\t\theight=\"100%\"\n\t\t\tiframeProps={ {\n\t\t\t\tclassName: classnames( 'editor-canvas__iframe', {\n\t\t\t\t\t'has-editor-padding': showEditorPadding,\n\t\t\t\t} ),\n\t\t\t\t...iframeProps,\n\t\t\t\tstyle: {\n\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t\t...deviceStyles,\n\t\t\t\t},\n\t\t\t} }\n\t\t>\n\t\t\t{ themeSupportsLayout &&\n\t\t\t\t! themeHasDisabledLayoutStyles &&\n\t\t\t\trenderingMode === 'post-only' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tselector=\".editor-editor-canvas__post-title-wrapper\"\n\t\t\t\t\t\t\tlayout={ fallbackLayout }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tselector=\".block-editor-block-list__layout.is-root-container\"\n\t\t\t\t\t\t\tlayout={ postEditorLayout }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ align && <LayoutStyle css={ alignCSS } /> }\n\t\t\t\t\t\t{ postContentLayoutStyles && (\n\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\tlayout={ postContentLayout }\n\t\t\t\t\t\t\t\tcss={ postContentLayoutStyles }\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{ renderingMode === 'post-only' && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'editor-editor-canvas__post-title-wrapper',\n\t\t\t\t\t\t// The following class is only here for backward comapatibility\n\t\t\t\t\t\t// some themes might be using it to style the post title.\n\t\t\t\t\t\t'edit-post-visual-editor__post-title-wrapper',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-global-padding': hasRootPaddingAwareAlignments,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tcontentEditable={ false }\n\t\t\t\t\tref={ observeTypingRef }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t// This is using inline styles\n\t\t\t\t\t\t// so it's applied for both iframed and non iframed editors.\n\t\t\t\t\t\tmarginTop: '4rem',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<PostTitle ref={ titleRef } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<RecursionProvider\n\t\t\t\tblockName={ wrapperBlockName }\n\t\t\t\tuniqueId={ wrapperUniqueId }\n\t\t\t>\n\t\t\t\t<BlockList\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'is-' + deviceType.toLowerCase() + '-preview',\n\t\t\t\t\t\trenderingMode !== 'post-only'\n\t\t\t\t\t\t\t? 'wp-site-blocks'\n\t\t\t\t\t\t\t: `${ blockListLayoutClass } wp-block-post-content`, // Ensure root level blocks receive default/flow blockGap styling rules.\n\t\t\t\t\t\trenderingMode !== 'all' && 'is-' + renderingMode\n\t\t\t\t\t) }\n\t\t\t\t\tlayout={ blockListLayout }\n\t\t\t\t\tdropZoneElement={\n\t\t\t\t\t\t// When iframed, pass in the html element of the iframe to\n\t\t\t\t\t\t// ensure the drop zone extends to the edges of the iframe.\n\t\t\t\t\t\tdisableIframe\n\t\t\t\t\t\t\t? localRef.current\n\t\t\t\t\t\t\t: localRef.current?.parentNode\n\t\t\t\t\t}\n\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t/>\n\t\t\t\t<EditTemplateBlocksNotification contentRef={ localRef } />\n\t\t\t</RecursionProvider>\n\t\t\t{ children }\n\t\t</BlockCanvas>\n\t);\n}\n\nexport default EditorCanvas;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","BlockList","store","blockEditorStore","__unstableUseTypewriter","useTypewriter","__unstableUseTypingObserver","useTypingObserver","useSettings","RecursionProvider","privateApis","blockEditorPrivateApis","__experimentalUseResizeCanvas","useResizeCanvas","useEffect","useRef","useMemo","useSelect","parse","coreStore","useMergeRefs","PostTitle","editorStore","unlock","EditTemplateBlocksNotification","LayoutStyle","useLayoutClasses","useLayoutStyles","ExperimentalBlockCanvas","BlockCanvas","useFlashEditableBlocks","noop","DESIGN_POST_TYPES","getPostContentAttributes","blocks","i","length","name","attributes","innerBlocks","nestedPostContent","checkForPostContentAtRootLevel","EditorCanvas","autoFocus","className","renderAppender","styles","disableIframe","iframeProps","children","renderingMode","postContentAttributes","editedPostTemplate","wrapperBlockName","wrapperUniqueId","deviceType","showEditorPadding","isDesignPostType","select","getCurrentPostId","getCurrentPostType","getCurrentTemplateId","getEditorSettings","getRenderingMode","getDeviceType","getPostType","canUser","getEditedEntityRecord","postTypeSlug","_renderingMode","_wrapperBlockName","editorSettings","supportsTemplateMode","postType","canEditTemplate","currentTemplateId","template","undefined","includes","viewable","onNavigateToPreviousEntityRecord","isCleanNewPost","hasRootPaddingAwareAlignments","themeHasDisabledLayoutStyles","themeSupportsLayout","_settings","getSettings","disableLayoutStyles","supportsLayout","__experimentalFeatures","useRootPaddingAwareAlignments","deviceStyles","globalLayoutSettings","fallbackLayout","type","newestPostContentAttributes","content","parseableContent","hasPostContentAtRootLevel","layout","align","postContentLayoutClasses","blockListLayoutClass","postContentLayoutStyles","postContentLayout","inherit","contentSize","wideSize","blockListLayout","postEditorLayout","observeTypingRef","titleRef","current","focus","alignCSS","localRef","typewriterRef","contentRef","isEnabled","createElement","shouldIframe","height","style","Fragment","selector","css","contentEditable","ref","marginTop","blockName","uniqueId","toLowerCase","dropZoneElement","parentNode","__unstableDisableDropZone"],"sources":["@wordpress/editor/src/components/editor-canvas/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockList,\n\tstore as blockEditorStore,\n\t__unstableUseTypewriter as useTypewriter,\n\t__unstableUseTypingObserver as useTypingObserver,\n\tuseSettings,\n\tRecursionProvider,\n\tprivateApis as blockEditorPrivateApis,\n\t__experimentalUseResizeCanvas as useResizeCanvas,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { parse } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostTitle from '../post-title';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport EditTemplateBlocksNotification from './edit-template-blocks-notification';\n\nconst {\n\tLayoutStyle,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tExperimentalBlockCanvas: BlockCanvas,\n\tuseFlashEditableBlocks,\n} = unlock( blockEditorPrivateApis );\n\nconst noop = () => {};\n\n/**\n * These post types have a special editor where they don't allow you to fill the title\n * and they don't apply the layout styles.\n */\nconst DESIGN_POST_TYPES = [\n\t'wp_block',\n\t'wp_template',\n\t'wp_navigation',\n\t'wp_template_part',\n];\n\n/**\n * Given an array of nested blocks, find the first Post Content\n * block inside it, recursing through any nesting levels,\n * and return its attributes.\n *\n * @param {Array} blocks A list of blocks.\n *\n * @return {Object | undefined} The Post Content block.\n */\nfunction getPostContentAttributes( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn blocks[ i ].attributes;\n\t\t}\n\t\tif ( blocks[ i ].innerBlocks.length ) {\n\t\t\tconst nestedPostContent = getPostContentAttributes(\n\t\t\t\tblocks[ i ].innerBlocks\n\t\t\t);\n\n\t\t\tif ( nestedPostContent ) {\n\t\t\t\treturn nestedPostContent;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkForPostContentAtRootLevel( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction EditorCanvas( {\n\t// Ideally as we unify post and site editors, we won't need these props.\n\tautoFocus,\n\tclassName,\n\trenderAppender,\n\tstyles,\n\tdisableIframe = false,\n\tiframeProps,\n\tchildren,\n} ) {\n\tconst {\n\t\trenderingMode,\n\t\tpostContentAttributes,\n\t\teditedPostTemplate = {},\n\t\twrapperBlockName,\n\t\twrapperUniqueId,\n\t\tdeviceType,\n\t\tshowEditorPadding,\n\t\tisDesignPostType,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentTemplateId,\n\t\t\tgetEditorSettings,\n\t\t\tgetRenderingMode,\n\t\t\tgetDeviceType,\n\t\t} = select( editorStore );\n\t\tconst { getPostType, canUser, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst postTypeSlug = getCurrentPostType();\n\t\tconst _renderingMode = getRenderingMode();\n\t\tlet _wrapperBlockName;\n\n\t\tif ( postTypeSlug === 'wp_block' ) {\n\t\t\t_wrapperBlockName = 'core/block';\n\t\t} else if ( _renderingMode === 'post-only' ) {\n\t\t\t_wrapperBlockName = 'core/post-content';\n\t\t}\n\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst supportsTemplateMode = editorSettings.supportsTemplateMode;\n\t\tconst postType = getPostType( postTypeSlug );\n\t\tconst canEditTemplate = canUser( 'create', 'templates' );\n\t\tconst currentTemplateId = getCurrentTemplateId();\n\t\tconst template = currentTemplateId\n\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\tcurrentTemplateId\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\trenderingMode: _renderingMode,\n\t\t\tpostContentAttributes: editorSettings.postContentAttributes,\n\t\t\tisDesignPostType: DESIGN_POST_TYPES.includes( postTypeSlug ),\n\t\t\t// Post template fetch returns a 404 on classic themes, which\n\t\t\t// messes with e2e tests, so check it's a block theme first.\n\t\t\teditedPostTemplate:\n\t\t\t\tpostType?.viewable && supportsTemplateMode && canEditTemplate\n\t\t\t\t\t? template\n\t\t\t\t\t: undefined,\n\t\t\twrapperBlockName: _wrapperBlockName,\n\t\t\twrapperUniqueId: getCurrentPostId(),\n\t\t\tdeviceType: getDeviceType(),\n\t\t\tshowEditorPadding:\n\t\t\t\t!! editorSettings.onNavigateToPreviousEntityRecord,\n\t\t};\n\t}, [] );\n\tconst { isCleanNewPost } = useSelect( editorStore );\n\tconst {\n\t\thasRootPaddingAwareAlignments,\n\t\tthemeHasDisabledLayoutStyles,\n\t\tthemeSupportsLayout,\n\t} = useSelect( ( select ) => {\n\t\tconst _settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tthemeHasDisabledLayoutStyles: _settings.disableLayoutStyles,\n\t\t\tthemeSupportsLayout: _settings.supportsLayout,\n\t\t\thasRootPaddingAwareAlignments:\n\t\t\t\t_settings.__experimentalFeatures?.useRootPaddingAwareAlignments,\n\t\t};\n\t}, [] );\n\n\tconst deviceStyles = useResizeCanvas( deviceType );\n\tconst [ globalLayoutSettings ] = useSettings( 'layout' );\n\n\t// fallbackLayout is used if there is no Post Content,\n\t// and for Post Title.\n\tconst fallbackLayout = useMemo( () => {\n\t\tif ( renderingMode !== 'post-only' || isDesignPostType ) {\n\t\t\treturn { type: 'default' };\n\t\t}\n\n\t\tif ( themeSupportsLayout ) {\n\t\t\t// We need to ensure support for wide and full alignments,\n\t\t\t// so we add the constrained type.\n\t\t\treturn { ...globalLayoutSettings, type: 'constrained' };\n\t\t}\n\t\t// Set default layout for classic themes so all alignments are supported.\n\t\treturn { type: 'default' };\n\t}, [\n\t\trenderingMode,\n\t\tthemeSupportsLayout,\n\t\tglobalLayoutSettings,\n\t\tisDesignPostType,\n\t] );\n\n\tconst newestPostContentAttributes = useMemo( () => {\n\t\tif (\n\t\t\t! editedPostTemplate?.content &&\n\t\t\t! editedPostTemplate?.blocks &&\n\t\t\tpostContentAttributes\n\t\t) {\n\t\t\treturn postContentAttributes;\n\t\t}\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn getPostContentAttributes( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn getPostContentAttributes( parse( parseableContent ) ) || {};\n\t}, [\n\t\teditedPostTemplate?.content,\n\t\teditedPostTemplate?.blocks,\n\t\tpostContentAttributes,\n\t] );\n\n\tconst hasPostContentAtRootLevel = useMemo( () => {\n\t\tif ( ! editedPostTemplate?.content && ! editedPostTemplate?.blocks ) {\n\t\t\treturn false;\n\t\t}\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn checkForPostContentAtRootLevel( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn (\n\t\t\tcheckForPostContentAtRootLevel( parse( parseableContent ) ) || false\n\t\t);\n\t}, [ editedPostTemplate?.content, editedPostTemplate?.blocks ] );\n\n\tconst { layout = {}, align = '' } = newestPostContentAttributes || {};\n\n\tconst postContentLayoutClasses = useLayoutClasses(\n\t\tnewestPostContentAttributes,\n\t\t'core/post-content'\n\t);\n\n\tconst blockListLayoutClass = classnames(\n\t\t{\n\t\t\t'is-layout-flow': ! themeSupportsLayout,\n\t\t},\n\t\tthemeSupportsLayout && postContentLayoutClasses,\n\t\talign && `align${ align }`\n\t);\n\n\tconst postContentLayoutStyles = useLayoutStyles(\n\t\tnewestPostContentAttributes,\n\t\t'core/post-content',\n\t\t'.block-editor-block-list__layout.is-root-container'\n\t);\n\n\t// Update type for blocks using legacy layouts.\n\tconst postContentLayout = useMemo( () => {\n\t\treturn layout &&\n\t\t\t( layout?.type === 'constrained' ||\n\t\t\t\tlayout?.inherit ||\n\t\t\t\tlayout?.contentSize ||\n\t\t\t\tlayout?.wideSize )\n\t\t\t? { ...globalLayoutSettings, ...layout, type: 'constrained' }\n\t\t\t: { ...globalLayoutSettings, ...layout, type: 'default' };\n\t}, [\n\t\tlayout?.type,\n\t\tlayout?.inherit,\n\t\tlayout?.contentSize,\n\t\tlayout?.wideSize,\n\t\tglobalLayoutSettings,\n\t] );\n\n\t// If there is a Post Content block we use its layout for the block list;\n\t// if not, this must be a classic theme, in which case we use the fallback layout.\n\tconst blockListLayout = postContentAttributes\n\t\t? postContentLayout\n\t\t: fallbackLayout;\n\n\tconst postEditorLayout =\n\t\tblockListLayout?.type === 'default' && ! hasPostContentAtRootLevel\n\t\t\t? fallbackLayout\n\t\t\t: blockListLayout;\n\n\tconst observeTypingRef = useTypingObserver();\n\tconst titleRef = useRef();\n\tuseEffect( () => {\n\t\tif ( ! autoFocus || ! isCleanNewPost() ) {\n\t\t\treturn;\n\t\t}\n\t\ttitleRef?.current?.focus();\n\t}, [ autoFocus, isCleanNewPost ] );\n\n\t// Add some styles for alignwide/alignfull Post Content and its children.\n\tconst alignCSS = `.is-root-container.alignwide { max-width: var(--wp--style--global--wide-size); margin-left: auto; margin-right: auto;}\n\t\t.is-root-container.alignwide:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: var(--wp--style--global--wide-size);}\n\t\t.is-root-container.alignfull { max-width: none; margin-left: auto; margin-right: auto;}\n\t\t.is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;\n\n\tconst localRef = useRef();\n\tconst typewriterRef = useTypewriter();\n\tconst contentRef = useMergeRefs( [\n\t\tlocalRef,\n\t\trenderingMode === 'post-only' ? typewriterRef : noop,\n\t\tuseFlashEditableBlocks( {\n\t\t\tisEnabled: renderingMode === 'template-locked',\n\t\t} ),\n\t] );\n\n\treturn (\n\t\t<BlockCanvas\n\t\t\tshouldIframe={\n\t\t\t\t! disableIframe || [ 'Tablet', 'Mobile' ].includes( deviceType )\n\t\t\t}\n\t\t\tcontentRef={ contentRef }\n\t\t\tstyles={ styles }\n\t\t\theight=\"100%\"\n\t\t\tiframeProps={ {\n\t\t\t\tclassName: classnames( 'editor-canvas__iframe', {\n\t\t\t\t\t'has-editor-padding': showEditorPadding,\n\t\t\t\t} ),\n\t\t\t\t...iframeProps,\n\t\t\t\tstyle: {\n\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t\t...deviceStyles,\n\t\t\t\t},\n\t\t\t} }\n\t\t>\n\t\t\t{ themeSupportsLayout &&\n\t\t\t\t! themeHasDisabledLayoutStyles &&\n\t\t\t\trenderingMode === 'post-only' &&\n\t\t\t\t! isDesignPostType && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tselector=\".editor-editor-canvas__post-title-wrapper\"\n\t\t\t\t\t\t\tlayout={ fallbackLayout }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tselector=\".block-editor-block-list__layout.is-root-container\"\n\t\t\t\t\t\t\tlayout={ postEditorLayout }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ align && <LayoutStyle css={ alignCSS } /> }\n\t\t\t\t\t\t{ postContentLayoutStyles && (\n\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\tlayout={ postContentLayout }\n\t\t\t\t\t\t\t\tcss={ postContentLayoutStyles }\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{ renderingMode === 'post-only' && ! isDesignPostType && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'editor-editor-canvas__post-title-wrapper',\n\t\t\t\t\t\t// The following class is only here for backward comapatibility\n\t\t\t\t\t\t// some themes might be using it to style the post title.\n\t\t\t\t\t\t'edit-post-visual-editor__post-title-wrapper',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-global-padding': hasRootPaddingAwareAlignments,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tcontentEditable={ false }\n\t\t\t\t\tref={ observeTypingRef }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t// This is using inline styles\n\t\t\t\t\t\t// so it's applied for both iframed and non iframed editors.\n\t\t\t\t\t\tmarginTop: '4rem',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<PostTitle ref={ titleRef } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<RecursionProvider\n\t\t\t\tblockName={ wrapperBlockName }\n\t\t\t\tuniqueId={ wrapperUniqueId }\n\t\t\t>\n\t\t\t\t<BlockList\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'is-' + deviceType.toLowerCase() + '-preview',\n\t\t\t\t\t\trenderingMode !== 'post-only' || isDesignPostType\n\t\t\t\t\t\t\t? 'wp-site-blocks'\n\t\t\t\t\t\t\t: `${ blockListLayoutClass } wp-block-post-content` // Ensure root level blocks receive default/flow blockGap styling rules.\n\t\t\t\t\t) }\n\t\t\t\t\tlayout={ blockListLayout }\n\t\t\t\t\tdropZoneElement={\n\t\t\t\t\t\t// When iframed, pass in the html element of the iframe to\n\t\t\t\t\t\t// ensure the drop zone extends to the edges of the iframe.\n\t\t\t\t\t\tdisableIframe\n\t\t\t\t\t\t\t? localRef.current\n\t\t\t\t\t\t\t: localRef.current?.parentNode\n\t\t\t\t\t}\n\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t__unstableDisableDropZone={\n\t\t\t\t\t\t// In template preview mode, disable drop zones at the root of the template.\n\t\t\t\t\t\trenderingMode === 'template-locked' ? true : false\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ renderingMode === 'template-locked' && (\n\t\t\t\t\t<EditTemplateBlocksNotification contentRef={ localRef } />\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ children }\n\t\t</BlockCanvas>\n\t);\n}\n\nexport default EditorCanvas;\n"],"mappings":"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"}
@@ -5,6 +5,9 @@ import { createElement } from "react";
5
5
  import { SnackbarList } from '@wordpress/components';
6
6
  import { useSelect, useDispatch } from '@wordpress/data';
7
7
  import { store as noticesStore } from '@wordpress/notices';
8
+
9
+ // Last three notices. Slices from the tail end of the list.
10
+ const MAX_VISIBLE_NOTICES = -3;
8
11
  export default function EditorSnackbars() {
9
12
  const notices = useSelect(select => select(noticesStore).getNotices(), []);
10
13
  const {
@@ -12,7 +15,7 @@ export default function EditorSnackbars() {
12
15
  } = useDispatch(noticesStore);
13
16
  const snackbarNotices = notices.filter(({
14
17
  type
15
- }) => type === 'snackbar');
18
+ }) => type === 'snackbar').slice(MAX_VISIBLE_NOTICES);
16
19
  return createElement(SnackbarList, {
17
20
  notices: snackbarNotices,
18
21
  className: "components-editor-notices__snackbar",
@@ -1 +1 @@
1
- {"version":3,"names":["SnackbarList","useSelect","useDispatch","store","noticesStore","EditorSnackbars","notices","select","getNotices","removeNotice","snackbarNotices","filter","type","createElement","className","onRemove"],"sources":["@wordpress/editor/src/components/editor-snackbars/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SnackbarList } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function EditorSnackbars() {\n\tconst notices = useSelect(\n\t\t( select ) => select( noticesStore ).getNotices(),\n\t\t[]\n\t);\n\tconst { removeNotice } = useDispatch( noticesStore );\n\tconst snackbarNotices = notices.filter(\n\t\t( { type } ) => type === 'snackbar'\n\t);\n\n\treturn (\n\t\t<SnackbarList\n\t\t\tnotices={ snackbarNotices }\n\t\t\tclassName=\"components-editor-notices__snackbar\"\n\t\t\tonRemove={ removeNotice }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,uBAAuB;AACpD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;AAE1D,eAAe,SAASC,eAAeA,CAAA,EAAG;EACzC,MAAMC,OAAO,GAAGL,SAAS,CACtBM,MAAM,IAAMA,MAAM,CAAEH,YAAa,CAAC,CAACI,UAAU,CAAC,CAAC,EACjD,EACD,CAAC;EACD,MAAM;IAAEC;EAAa,CAAC,GAAGP,WAAW,CAAEE,YAAa,CAAC;EACpD,MAAMM,eAAe,GAAGJ,OAAO,CAACK,MAAM,CACrC,CAAE;IAAEC;EAAK,CAAC,KAAMA,IAAI,KAAK,UAC1B,CAAC;EAED,OACCC,aAAA,CAACb,YAAY;IACZM,OAAO,EAAGI,eAAiB;IAC3BI,SAAS,EAAC,qCAAqC;IAC/CC,QAAQ,EAAGN;EAAc,CACzB,CAAC;AAEJ"}
1
+ {"version":3,"names":["SnackbarList","useSelect","useDispatch","store","noticesStore","MAX_VISIBLE_NOTICES","EditorSnackbars","notices","select","getNotices","removeNotice","snackbarNotices","filter","type","slice","createElement","className","onRemove"],"sources":["@wordpress/editor/src/components/editor-snackbars/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SnackbarList } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n// Last three notices. Slices from the tail end of the list.\nconst MAX_VISIBLE_NOTICES = -3;\n\nexport default function EditorSnackbars() {\n\tconst notices = useSelect(\n\t\t( select ) => select( noticesStore ).getNotices(),\n\t\t[]\n\t);\n\tconst { removeNotice } = useDispatch( noticesStore );\n\tconst snackbarNotices = notices\n\t\t.filter( ( { type } ) => type === 'snackbar' )\n\t\t.slice( MAX_VISIBLE_NOTICES );\n\n\treturn (\n\t\t<SnackbarList\n\t\t\tnotices={ snackbarNotices }\n\t\t\tclassName=\"components-editor-notices__snackbar\"\n\t\t\tonRemove={ removeNotice }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,uBAAuB;AACpD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;;AAE1D;AACA,MAAMC,mBAAmB,GAAG,CAAC,CAAC;AAE9B,eAAe,SAASC,eAAeA,CAAA,EAAG;EACzC,MAAMC,OAAO,GAAGN,SAAS,CACtBO,MAAM,IAAMA,MAAM,CAAEJ,YAAa,CAAC,CAACK,UAAU,CAAC,CAAC,EACjD,EACD,CAAC;EACD,MAAM;IAAEC;EAAa,CAAC,GAAGR,WAAW,CAAEE,YAAa,CAAC;EACpD,MAAMO,eAAe,GAAGJ,OAAO,CAC7BK,MAAM,CAAE,CAAE;IAAEC;EAAK,CAAC,KAAMA,IAAI,KAAK,UAAW,CAAC,CAC7CC,KAAK,CAAET,mBAAoB,CAAC;EAE9B,OACCU,aAAA,CAACf,YAAY;IACZO,OAAO,EAAGI,eAAiB;IAC3BK,SAAS,EAAC,qCAAqC;IAC/CC,QAAQ,EAAGP;EAAc,CACzB,CAAC;AAEJ"}
@@ -34,7 +34,7 @@ export default function EntityRecordItem({
34
34
  }, [name, kind, title, key]);
35
35
  return createElement(PanelRow, null, createElement(CheckboxControl, {
36
36
  __nextHasNoMarginBottom: true,
37
- label: createElement("strong", null, decodeEntities(entityRecordTitle) || __('Untitled')),
37
+ label: decodeEntities(entityRecordTitle) || __('Untitled'),
38
38
  checked: checked,
39
39
  onChange: onChange
40
40
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["CheckboxControl","PanelRow","__","useSelect","store","coreStore","decodeEntities","editorStore","EntityRecordItem","record","checked","onChange","name","kind","title","key","entityRecordTitle","select","template","getEditedEntityRecord","__experimentalGetTemplateInfo","createElement","__nextHasNoMarginBottom","label"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-record-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CheckboxControl, PanelRow } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function EntityRecordItem( { record, checked, onChange } ) {\n\tconst { name, kind, title, key } = record;\n\n\t// Handle templates that might use default descriptive titles.\n\tconst entityRecordTitle = useSelect(\n\t\t( select ) => {\n\t\t\tif ( 'postType' !== kind || 'wp_template' !== name ) {\n\t\t\t\treturn title;\n\t\t\t}\n\n\t\t\tconst template = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tkey\n\t\t\t);\n\t\t\treturn select( editorStore ).__experimentalGetTemplateInfo(\n\t\t\t\ttemplate\n\t\t\t).title;\n\t\t},\n\t\t[ name, kind, title, key ]\n\t);\n\n\treturn (\n\t\t<PanelRow>\n\t\t\t<CheckboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={\n\t\t\t\t\t<strong>\n\t\t\t\t\t\t{ decodeEntities( entityRecordTitle ) ||\n\t\t\t\t\t\t\t__( 'Untitled' ) }\n\t\t\t\t\t</strong>\n\t\t\t\t}\n\t\t\t\tchecked={ checked }\n\t\t\t\tonChange={ onChange }\n\t\t\t/>\n\t\t</PanelRow>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,eAAe,EAAEC,QAAQ,QAAQ,uBAAuB;AACjE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,cAAc,QAAQ,0BAA0B;;AAEzD;AACA;AACA;AACA,SAASF,KAAK,IAAIG,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,gBAAgBA,CAAE;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAAS,CAAC,EAAG;EACzE,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAGN,MAAM;;EAEzC;EACA,MAAMO,iBAAiB,GAAGb,SAAS,CAChCc,MAAM,IAAM;IACb,IAAK,UAAU,KAAKJ,IAAI,IAAI,aAAa,KAAKD,IAAI,EAAG;MACpD,OAAOE,KAAK;IACb;IAEA,MAAMI,QAAQ,GAAGD,MAAM,CAAEZ,SAAU,CAAC,CAACc,qBAAqB,CACzDN,IAAI,EACJD,IAAI,EACJG,GACD,CAAC;IACD,OAAOE,MAAM,CAAEV,WAAY,CAAC,CAACa,6BAA6B,CACzDF,QACD,CAAC,CAACJ,KAAK;EACR,CAAC,EACD,CAAEF,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAEC,GAAG,CACzB,CAAC;EAED,OACCM,aAAA,CAACpB,QAAQ,QACRoB,aAAA,CAACrB,eAAe;IACfsB,uBAAuB;IACvBC,KAAK,EACJF,aAAA,iBACGf,cAAc,CAAEU,iBAAkB,CAAC,IACpCd,EAAE,CAAE,UAAW,CACT,CACR;IACDQ,OAAO,EAAGA,OAAS;IACnBC,QAAQ,EAAGA;EAAU,CACrB,CACQ,CAAC;AAEb"}
1
+ {"version":3,"names":["CheckboxControl","PanelRow","__","useSelect","store","coreStore","decodeEntities","editorStore","EntityRecordItem","record","checked","onChange","name","kind","title","key","entityRecordTitle","select","template","getEditedEntityRecord","__experimentalGetTemplateInfo","createElement","__nextHasNoMarginBottom","label"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-record-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CheckboxControl, PanelRow } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function EntityRecordItem( { record, checked, onChange } ) {\n\tconst { name, kind, title, key } = record;\n\n\t// Handle templates that might use default descriptive titles.\n\tconst entityRecordTitle = useSelect(\n\t\t( select ) => {\n\t\t\tif ( 'postType' !== kind || 'wp_template' !== name ) {\n\t\t\t\treturn title;\n\t\t\t}\n\n\t\t\tconst template = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tkey\n\t\t\t);\n\t\t\treturn select( editorStore ).__experimentalGetTemplateInfo(\n\t\t\t\ttemplate\n\t\t\t).title;\n\t\t},\n\t\t[ name, kind, title, key ]\n\t);\n\n\treturn (\n\t\t<PanelRow>\n\t\t\t<CheckboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={\n\t\t\t\t\tdecodeEntities( entityRecordTitle ) || __( 'Untitled' )\n\t\t\t\t}\n\t\t\t\tchecked={ checked }\n\t\t\t\tonChange={ onChange }\n\t\t\t/>\n\t\t</PanelRow>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,eAAe,EAAEC,QAAQ,QAAQ,uBAAuB;AACjE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,cAAc,QAAQ,0BAA0B;;AAEzD;AACA;AACA;AACA,SAASF,KAAK,IAAIG,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,gBAAgBA,CAAE;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAAS,CAAC,EAAG;EACzE,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAGN,MAAM;;EAEzC;EACA,MAAMO,iBAAiB,GAAGb,SAAS,CAChCc,MAAM,IAAM;IACb,IAAK,UAAU,KAAKJ,IAAI,IAAI,aAAa,KAAKD,IAAI,EAAG;MACpD,OAAOE,KAAK;IACb;IAEA,MAAMI,QAAQ,GAAGD,MAAM,CAAEZ,SAAU,CAAC,CAACc,qBAAqB,CACzDN,IAAI,EACJD,IAAI,EACJG,GACD,CAAC;IACD,OAAOE,MAAM,CAAEV,WAAY,CAAC,CAACa,6BAA6B,CACzDF,QACD,CAAC,CAACJ,KAAK;EACR,CAAC,EACD,CAAEF,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAEC,GAAG,CACzB,CAAC;EAED,OACCM,aAAA,CAACpB,QAAQ,QACRoB,aAAA,CAACrB,eAAe;IACfsB,uBAAuB;IACvBC,KAAK,EACJjB,cAAc,CAAEU,iBAAkB,CAAC,IAAId,EAAE,CAAE,UAAW,CACtD;IACDQ,OAAO,EAAGA,OAAS;IACnBC,QAAQ,EAAGA;EAAU,CACrB,CACQ,CAAC;AAEb"}
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "react";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -26,7 +26,7 @@ function getEntityDescription(entity, count) {
26
26
  return __('This change will affect pages and posts that use this template.');
27
27
  case 'page':
28
28
  case 'post':
29
- return __('The following content has been modified.');
29
+ return __('The following has been modified.');
30
30
  }
31
31
  }
32
32
  function GlobalStylesDescription({
@@ -39,18 +39,16 @@ function GlobalStylesDescription({
39
39
  const globalStylesChanges = getGlobalStylesChanges(currentEditorGlobalStyles, savedRecord, {
40
40
  maxResults: 10
41
41
  });
42
- return globalStylesChanges.length ? createElement(Fragment, null, createElement("h3", {
43
- className: "entities-saved-states__description-heading"
44
- }, __('Changes made to:')), createElement(PanelRow, null, globalStylesChanges.join(', '))) : null;
42
+ return globalStylesChanges.length ? createElement(PanelRow, {
43
+ className: "entities-saved-states__change-summary"
44
+ }, globalStylesChanges.join(', '), ".") : null;
45
45
  }
46
46
  function EntityDescription({
47
47
  record,
48
48
  count
49
49
  }) {
50
50
  if ('globalStyles' === record?.name) {
51
- return createElement(GlobalStylesDescription, {
52
- record: record
53
- });
51
+ return null;
54
52
  }
55
53
  const description = getEntityDescription(record?.name, count);
56
54
  return description ? createElement(PanelRow, null, description) : null;
@@ -80,6 +78,8 @@ export default function EntityTypeList({
80
78
  checked: !unselectedEntities.some(elt => elt.kind === record.kind && elt.name === record.name && elt.key === record.key && elt.property === record.property),
81
79
  onChange: value => setUnselectedEntities(record, value)
82
80
  });
81
+ }), 'globalStyles' === firstRecord?.name && createElement(GlobalStylesDescription, {
82
+ record: firstRecord
83
83
  }));
84
84
  }
85
85
  //# sourceMappingURL=entity-type-list.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","useSelect","PanelBody","PanelRow","store","coreStore","privateApis","blockEditorPrivateApis","useContext","EntityRecordItem","unlock","getGlobalStylesChanges","GlobalStylesContext","getEntityDescription","entity","count","GlobalStylesDescription","record","user","currentEditorGlobalStyles","savedRecord","select","getEntityRecord","kind","name","key","globalStylesChanges","maxResults","length","createElement","Fragment","className","join","EntityDescription","description","EntityTypeList","list","unselectedEntities","setUnselectedEntities","firstRecord","entityConfig","getEntityConfig","entityLabel","label","title","initialOpen","map","property","checked","some","elt","onChange","value"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-type-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, PanelRow } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntityRecordItem from './entity-record-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { getGlobalStylesChanges, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction getEntityDescription( entity, count ) {\n\tswitch ( entity ) {\n\t\tcase 'site':\n\t\t\treturn 1 === count\n\t\t\t\t? __( 'This change will affect your whole site.' )\n\t\t\t\t: __( 'These changes will affect your whole site.' );\n\t\tcase 'wp_template':\n\t\t\treturn __(\n\t\t\t\t'This change will affect pages and posts that use this template.'\n\t\t\t);\n\t\tcase 'page':\n\t\tcase 'post':\n\t\t\treturn __( 'The following content has been modified.' );\n\t}\n}\n\nfunction GlobalStylesDescription( { record } ) {\n\tconst { user: currentEditorGlobalStyles } =\n\t\tuseContext( GlobalStylesContext );\n\tconst savedRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord(\n\t\t\t\trecord.kind,\n\t\t\t\trecord.name,\n\t\t\t\trecord.key\n\t\t\t),\n\t\t[ record.kind, record.name, record.key ]\n\t);\n\n\tconst globalStylesChanges = getGlobalStylesChanges(\n\t\tcurrentEditorGlobalStyles,\n\t\tsavedRecord,\n\t\t{\n\t\t\tmaxResults: 10,\n\t\t}\n\t);\n\treturn globalStylesChanges.length ? (\n\t\t<>\n\t\t\t<h3 className=\"entities-saved-states__description-heading\">\n\t\t\t\t{ __( 'Changes made to:' ) }\n\t\t\t</h3>\n\t\t\t<PanelRow>{ globalStylesChanges.join( ', ' ) }</PanelRow>\n\t\t</>\n\t) : null;\n}\n\nfunction EntityDescription( { record, count } ) {\n\tif ( 'globalStyles' === record?.name ) {\n\t\treturn <GlobalStylesDescription record={ record } />;\n\t}\n\tconst description = getEntityDescription( record?.name, count );\n\treturn description ? <PanelRow>{ description }</PanelRow> : null;\n}\n\nexport default function EntityTypeList( {\n\tlist,\n\tunselectedEntities,\n\tsetUnselectedEntities,\n} ) {\n\tconst count = list.length;\n\tconst firstRecord = list[ 0 ];\n\tconst entityConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityConfig(\n\t\t\t\tfirstRecord.kind,\n\t\t\t\tfirstRecord.name\n\t\t\t),\n\t\t[ firstRecord.kind, firstRecord.name ]\n\t);\n\n\tlet entityLabel = entityConfig.label;\n\tif ( firstRecord?.name === 'wp_template_part' ) {\n\t\tentityLabel =\n\t\t\t1 === count ? __( 'Template Part' ) : __( 'Template Parts' );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ entityLabel } initialOpen={ true }>\n\t\t\t<EntityDescription record={ firstRecord } count={ count } />\n\t\t\t{ list.map( ( record ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityRecordItem\n\t\t\t\t\t\tkey={ record.key || record.property }\n\t\t\t\t\t\trecord={ record }\n\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t! unselectedEntities.some(\n\t\t\t\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\t\t\t\telt.kind === record.kind &&\n\t\t\t\t\t\t\t\t\telt.name === record.name &&\n\t\t\t\t\t\t\t\t\telt.key === record.key &&\n\t\t\t\t\t\t\t\t\telt.property === record.property\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetUnselectedEntities( record, value )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","useSelect","PanelBody","PanelRow","store","coreStore","privateApis","blockEditorPrivateApis","useContext","EntityRecordItem","unlock","getGlobalStylesChanges","GlobalStylesContext","getEntityDescription","entity","count","GlobalStylesDescription","record","user","currentEditorGlobalStyles","savedRecord","select","getEntityRecord","kind","name","key","globalStylesChanges","maxResults","length","createElement","className","join","EntityDescription","description","EntityTypeList","list","unselectedEntities","setUnselectedEntities","firstRecord","entityConfig","getEntityConfig","entityLabel","label","title","initialOpen","map","property","checked","some","elt","onChange","value"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-type-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, PanelRow } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntityRecordItem from './entity-record-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { getGlobalStylesChanges, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction getEntityDescription( entity, count ) {\n\tswitch ( entity ) {\n\t\tcase 'site':\n\t\t\treturn 1 === count\n\t\t\t\t? __( 'This change will affect your whole site.' )\n\t\t\t\t: __( 'These changes will affect your whole site.' );\n\t\tcase 'wp_template':\n\t\t\treturn __(\n\t\t\t\t'This change will affect pages and posts that use this template.'\n\t\t\t);\n\t\tcase 'page':\n\t\tcase 'post':\n\t\t\treturn __( 'The following has been modified.' );\n\t}\n}\n\nfunction GlobalStylesDescription( { record } ) {\n\tconst { user: currentEditorGlobalStyles } =\n\t\tuseContext( GlobalStylesContext );\n\tconst savedRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord(\n\t\t\t\trecord.kind,\n\t\t\t\trecord.name,\n\t\t\t\trecord.key\n\t\t\t),\n\t\t[ record.kind, record.name, record.key ]\n\t);\n\n\tconst globalStylesChanges = getGlobalStylesChanges(\n\t\tcurrentEditorGlobalStyles,\n\t\tsavedRecord,\n\t\t{\n\t\t\tmaxResults: 10,\n\t\t}\n\t);\n\treturn globalStylesChanges.length ? (\n\t\t<PanelRow className=\"entities-saved-states__change-summary\">\n\t\t\t{ globalStylesChanges.join( ', ' ) }.\n\t\t</PanelRow>\n\t) : null;\n}\n\nfunction EntityDescription( { record, count } ) {\n\tif ( 'globalStyles' === record?.name ) {\n\t\treturn null;\n\t}\n\tconst description = getEntityDescription( record?.name, count );\n\treturn description ? <PanelRow>{ description }</PanelRow> : null;\n}\n\nexport default function EntityTypeList( {\n\tlist,\n\tunselectedEntities,\n\tsetUnselectedEntities,\n} ) {\n\tconst count = list.length;\n\tconst firstRecord = list[ 0 ];\n\tconst entityConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityConfig(\n\t\t\t\tfirstRecord.kind,\n\t\t\t\tfirstRecord.name\n\t\t\t),\n\t\t[ firstRecord.kind, firstRecord.name ]\n\t);\n\n\tlet entityLabel = entityConfig.label;\n\tif ( firstRecord?.name === 'wp_template_part' ) {\n\t\tentityLabel =\n\t\t\t1 === count ? __( 'Template Part' ) : __( 'Template Parts' );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ entityLabel } initialOpen={ true }>\n\t\t\t<EntityDescription record={ firstRecord } count={ count } />\n\t\t\t{ list.map( ( record ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityRecordItem\n\t\t\t\t\t\tkey={ record.key || record.property }\n\t\t\t\t\t\trecord={ record }\n\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t! unselectedEntities.some(\n\t\t\t\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\t\t\t\telt.kind === record.kind &&\n\t\t\t\t\t\t\t\t\telt.name === record.name &&\n\t\t\t\t\t\t\t\t\telt.key === record.key &&\n\t\t\t\t\t\t\t\t\telt.property === record.property\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetUnselectedEntities( record, value )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ 'globalStyles' === firstRecord?.name && (\n\t\t\t\t<GlobalStylesDescription record={ firstRecord } />\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AAC3D,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,WAAW,IAAIC,sBAAsB,QAAQ,yBAAyB;AAC/E,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC,sBAAsB;EAAEC;AAAoB,CAAC,GAAGF,MAAM,CAC7DH,sBACD,CAAC;AAED,SAASM,oBAAoBA,CAAEC,MAAM,EAAEC,KAAK,EAAG;EAC9C,QAASD,MAAM;IACd,KAAK,MAAM;MACV,OAAO,CAAC,KAAKC,KAAK,GACff,EAAE,CAAE,0CAA2C,CAAC,GAChDA,EAAE,CAAE,4CAA6C,CAAC;IACtD,KAAK,aAAa;MACjB,OAAOA,EAAE,CACR,iEACD,CAAC;IACF,KAAK,MAAM;IACX,KAAK,MAAM;MACV,OAAOA,EAAE,CAAE,kCAAmC,CAAC;EACjD;AACD;AAEA,SAASgB,uBAAuBA,CAAE;EAAEC;AAAO,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI,EAAEC;EAA0B,CAAC,GACxCX,UAAU,CAAEI,mBAAoB,CAAC;EAClC,MAAMQ,WAAW,GAAGnB,SAAS,CAC1BoB,MAAM,IACPA,MAAM,CAAEhB,SAAU,CAAC,CAACiB,eAAe,CAClCL,MAAM,CAACM,IAAI,EACXN,MAAM,CAACO,IAAI,EACXP,MAAM,CAACQ,GACR,CAAC,EACF,CAAER,MAAM,CAACM,IAAI,EAAEN,MAAM,CAACO,IAAI,EAAEP,MAAM,CAACQ,GAAG,CACvC,CAAC;EAED,MAAMC,mBAAmB,GAAGf,sBAAsB,CACjDQ,yBAAyB,EACzBC,WAAW,EACX;IACCO,UAAU,EAAE;EACb,CACD,CAAC;EACD,OAAOD,mBAAmB,CAACE,MAAM,GAChCC,aAAA,CAAC1B,QAAQ;IAAC2B,SAAS,EAAC;EAAuC,GACxDJ,mBAAmB,CAACK,IAAI,CAAE,IAAK,CAAC,EAAE,GAC3B,CAAC,GACR,IAAI;AACT;AAEA,SAASC,iBAAiBA,CAAE;EAAEf,MAAM;EAAEF;AAAM,CAAC,EAAG;EAC/C,IAAK,cAAc,KAAKE,MAAM,EAAEO,IAAI,EAAG;IACtC,OAAO,IAAI;EACZ;EACA,MAAMS,WAAW,GAAGpB,oBAAoB,CAAEI,MAAM,EAAEO,IAAI,EAAET,KAAM,CAAC;EAC/D,OAAOkB,WAAW,GAAGJ,aAAA,CAAC1B,QAAQ,QAAG8B,WAAuB,CAAC,GAAG,IAAI;AACjE;AAEA,eAAe,SAASC,cAAcA,CAAE;EACvCC,IAAI;EACJC,kBAAkB;EAClBC;AACD,CAAC,EAAG;EACH,MAAMtB,KAAK,GAAGoB,IAAI,CAACP,MAAM;EACzB,MAAMU,WAAW,GAAGH,IAAI,CAAE,CAAC,CAAE;EAC7B,MAAMI,YAAY,GAAGtC,SAAS,CAC3BoB,MAAM,IACPA,MAAM,CAAEhB,SAAU,CAAC,CAACmC,eAAe,CAClCF,WAAW,CAACf,IAAI,EAChBe,WAAW,CAACd,IACb,CAAC,EACF,CAAEc,WAAW,CAACf,IAAI,EAAEe,WAAW,CAACd,IAAI,CACrC,CAAC;EAED,IAAIiB,WAAW,GAAGF,YAAY,CAACG,KAAK;EACpC,IAAKJ,WAAW,EAAEd,IAAI,KAAK,kBAAkB,EAAG;IAC/CiB,WAAW,GACV,CAAC,KAAK1B,KAAK,GAAGf,EAAE,CAAE,eAAgB,CAAC,GAAGA,EAAE,CAAE,gBAAiB,CAAC;EAC9D;EAEA,OACC6B,aAAA,CAAC3B,SAAS;IAACyC,KAAK,EAAGF,WAAa;IAACG,WAAW,EAAG;EAAM,GACpDf,aAAA,CAACG,iBAAiB;IAACf,MAAM,EAAGqB,WAAa;IAACvB,KAAK,EAAGA;EAAO,CAAE,CAAC,EAC1DoB,IAAI,CAACU,GAAG,CAAI5B,MAAM,IAAM;IACzB,OACCY,aAAA,CAACpB,gBAAgB;MAChBgB,GAAG,EAAGR,MAAM,CAACQ,GAAG,IAAIR,MAAM,CAAC6B,QAAU;MACrC7B,MAAM,EAAGA,MAAQ;MACjB8B,OAAO,EACN,CAAEX,kBAAkB,CAACY,IAAI,CACtBC,GAAG,IACJA,GAAG,CAAC1B,IAAI,KAAKN,MAAM,CAACM,IAAI,IACxB0B,GAAG,CAACzB,IAAI,KAAKP,MAAM,CAACO,IAAI,IACxByB,GAAG,CAACxB,GAAG,KAAKR,MAAM,CAACQ,GAAG,IACtBwB,GAAG,CAACH,QAAQ,KAAK7B,MAAM,CAAC6B,QAC1B,CACA;MACDI,QAAQ,EAAKC,KAAK,IACjBd,qBAAqB,CAAEpB,MAAM,EAAEkC,KAAM;IACrC,CACD,CAAC;EAEJ,CAAE,CAAC,EACD,cAAc,KAAKb,WAAW,EAAEd,IAAI,IACrCK,aAAA,CAACb,uBAAuB;IAACC,MAAM,EAAGqB;EAAa,CAAE,CAExC,CAAC;AAEd"}
@@ -3,9 +3,9 @@ import { createElement } from "react";
3
3
  * WordPress dependencies
4
4
  */
5
5
  import { Button, Flex, FlexItem } from '@wordpress/components';
6
- import { __ } from '@wordpress/i18n';
6
+ import { __, _n, sprintf } from '@wordpress/i18n';
7
7
  import { useSelect, useDispatch } from '@wordpress/data';
8
- import { useCallback, useRef } from '@wordpress/element';
8
+ import { useCallback, useRef, createInterpolateElement } from '@wordpress/element';
9
9
  import { store as coreStore } from '@wordpress/core-data';
10
10
  import { store as blockEditorStore } from '@wordpress/block-editor';
11
11
  import { __experimentalUseDialog as useDialog } from '@wordpress/compose';
@@ -172,7 +172,10 @@ export function EntitiesSavedStatesExtensible({
172
172
  className: "entities-saved-states__text-prompt"
173
173
  }, createElement("strong", {
174
174
  className: "entities-saved-states__text-prompt--header"
175
- }, __('Are you ready to save?')), additionalPrompt, createElement("p", null, isDirty ? __('The following changes have been made to your site, templates, and content.') : __('Select the items you want to save.'))), sortedPartitionedSavables.map(list => {
175
+ }, __('Are you ready to save?')), additionalPrompt, createElement("p", null, isDirty ? createInterpolateElement(sprintf( /* translators: %d: number of site changes waiting to be saved. */
176
+ _n('There is <strong>%d site change</strong> waiting to be saved.', 'There are <strong>%d site changes</strong> waiting to be saved.', sortedPartitionedSavables.length), sortedPartitionedSavables.length), {
177
+ strong: createElement("strong", null)
178
+ }) : __('Select the items you want to save.'))), sortedPartitionedSavables.map(list => {
176
179
  return createElement(EntityTypeList, {
177
180
  key: list[0].name,
178
181
  list: list,