@wordpress/editor 14.4.0 → 14.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/bindings/post-meta.js +12 -0
  3. package/build/bindings/post-meta.js.map +1 -1
  4. package/build/components/blog-title/index.js +1 -1
  5. package/build/components/blog-title/index.js.map +1 -1
  6. package/build/components/commands/index.js +8 -2
  7. package/build/components/commands/index.js.map +1 -1
  8. package/build/components/create-template-part-modal/index.js +1 -0
  9. package/build/components/create-template-part-modal/index.js.map +1 -1
  10. package/build/components/document-bar/index.js +1 -1
  11. package/build/components/document-bar/index.js.map +1 -1
  12. package/build/components/global-styles-provider/index.js +17 -4
  13. package/build/components/global-styles-provider/index.js.map +1 -1
  14. package/build/components/header/index.js +2 -3
  15. package/build/components/header/index.js.map +1 -1
  16. package/build/components/inserter-sidebar/index.js +5 -2
  17. package/build/components/inserter-sidebar/index.js.map +1 -1
  18. package/build/components/page-attributes/parent.js +11 -6
  19. package/build/components/page-attributes/parent.js.map +1 -1
  20. package/build/components/post-actions/actions.js +10 -811
  21. package/build/components/post-actions/actions.js.map +1 -1
  22. package/build/components/post-actions/index.js +20 -19
  23. package/build/components/post-actions/index.js.map +1 -1
  24. package/build/components/post-author/hook.js +10 -3
  25. package/build/components/post-author/hook.js.map +1 -1
  26. package/build/components/post-author/panel.js +2 -1
  27. package/build/components/post-author/panel.js.map +1 -1
  28. package/build/components/post-card-panel/index.js +21 -21
  29. package/build/components/post-card-panel/index.js.map +1 -1
  30. package/build/components/post-comments/index.js +6 -20
  31. package/build/components/post-comments/index.js.map +1 -1
  32. package/build/components/post-featured-image/index.js +2 -0
  33. package/build/components/post-featured-image/index.js.map +1 -1
  34. package/build/components/post-publish-panel/postpublish.js +4 -0
  35. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  36. package/build/components/post-slug/index.js +1 -0
  37. package/build/components/post-slug/index.js.map +1 -1
  38. package/build/components/post-status/index.js +17 -41
  39. package/build/components/post-status/index.js.map +1 -1
  40. package/build/components/post-taxonomies/hierarchical-term-selector.js +2 -1
  41. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  42. package/build/components/post-template/create-new-template-modal.js +3 -0
  43. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  44. package/build/components/post-url/index.js +6 -5
  45. package/build/components/post-url/index.js.map +1 -1
  46. package/build/components/post-url/panel.js +3 -2
  47. package/build/components/post-url/panel.js.map +1 -1
  48. package/build/components/preview-dropdown/index.js +82 -17
  49. package/build/components/preview-dropdown/index.js.map +1 -1
  50. package/build/components/provider/disable-non-page-content-blocks.js +14 -18
  51. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  52. package/build/components/sidebar/post-summary.js +10 -7
  53. package/build/components/sidebar/post-summary.js.map +1 -1
  54. package/build/components/site-discussion/index.js +6 -20
  55. package/build/components/site-discussion/index.js.map +1 -1
  56. package/build/components/template-content-panel/index.js +15 -13
  57. package/build/components/template-content-panel/index.js.map +1 -1
  58. package/build/components/visual-editor/index.js +2 -1
  59. package/build/components/visual-editor/index.js.map +1 -1
  60. package/build/dataviews/actions/duplicate-pattern.js +48 -0
  61. package/build/dataviews/actions/duplicate-pattern.js.map +1 -0
  62. package/build/dataviews/actions/duplicate-post.js +146 -0
  63. package/build/dataviews/actions/duplicate-post.js.map +1 -0
  64. package/build/dataviews/actions/duplicate-post.native.js +9 -0
  65. package/build/dataviews/actions/duplicate-post.native.js.map +1 -0
  66. package/build/dataviews/actions/duplicate-template-part.js +67 -0
  67. package/build/dataviews/actions/duplicate-template-part.js.map +1 -0
  68. package/build/dataviews/actions/export-pattern.native.js +9 -0
  69. package/build/dataviews/actions/export-pattern.native.js.map +1 -0
  70. package/build/dataviews/actions/permanently-delete-post.js +107 -0
  71. package/build/dataviews/actions/permanently-delete-post.js.map +1 -0
  72. package/build/dataviews/actions/rename-post.js +125 -0
  73. package/build/dataviews/actions/rename-post.js.map +1 -0
  74. package/build/dataviews/actions/reorder-page.js +116 -0
  75. package/build/dataviews/actions/reorder-page.js.map +1 -0
  76. package/build/dataviews/actions/reorder-page.native.js +9 -0
  77. package/build/dataviews/actions/reorder-page.native.js.map +1 -0
  78. package/build/dataviews/actions/reset-post.js +1 -1
  79. package/build/dataviews/actions/reset-post.js.map +1 -1
  80. package/build/dataviews/actions/restore-post.js +112 -0
  81. package/build/dataviews/actions/restore-post.js.map +1 -0
  82. package/build/dataviews/actions/trash-post.js +142 -0
  83. package/build/dataviews/actions/trash-post.js.map +1 -0
  84. package/build/dataviews/actions/utils.js +9 -1
  85. package/build/dataviews/actions/utils.js.map +1 -1
  86. package/build/dataviews/actions/view-post-revisions.js +49 -0
  87. package/build/dataviews/actions/view-post-revisions.js.map +1 -0
  88. package/build/dataviews/actions/view-post.js +36 -0
  89. package/build/dataviews/actions/view-post.js.map +1 -0
  90. package/build/dataviews/fields/index.js +32 -0
  91. package/build/dataviews/fields/index.js.map +1 -0
  92. package/build/dataviews/store/private-actions.js +59 -0
  93. package/build/dataviews/store/private-actions.js.map +1 -1
  94. package/build/dataviews/store/private-selectors.js +10 -10
  95. package/build/dataviews/store/private-selectors.js.map +1 -1
  96. package/build/dataviews/store/reducer.js +15 -1
  97. package/build/dataviews/store/reducer.js.map +1 -1
  98. package/build/dataviews/types.js.map +1 -1
  99. package/build/private-apis.js +2 -2
  100. package/build/private-apis.js.map +1 -1
  101. package/build/store/actions.js +16 -2
  102. package/build/store/actions.js.map +1 -1
  103. package/build/store/private-actions.js +9 -2
  104. package/build/store/private-actions.js.map +1 -1
  105. package/build/store/private-selectors.js +33 -2
  106. package/build/store/private-selectors.js.map +1 -1
  107. package/build/store/utils/is-template-revertable.js +1 -1
  108. package/build/store/utils/is-template-revertable.js.map +1 -1
  109. package/build-module/bindings/post-meta.js +12 -0
  110. package/build-module/bindings/post-meta.js.map +1 -1
  111. package/build-module/components/blog-title/index.js +1 -1
  112. package/build-module/components/blog-title/index.js.map +1 -1
  113. package/build-module/components/commands/index.js +8 -2
  114. package/build-module/components/commands/index.js.map +1 -1
  115. package/build-module/components/create-template-part-modal/index.js +1 -0
  116. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  117. package/build-module/components/document-bar/index.js +1 -1
  118. package/build-module/components/document-bar/index.js.map +1 -1
  119. package/build-module/components/global-styles-provider/index.js +17 -4
  120. package/build-module/components/global-styles-provider/index.js.map +1 -1
  121. package/build-module/components/header/index.js +2 -3
  122. package/build-module/components/header/index.js.map +1 -1
  123. package/build-module/components/inserter-sidebar/index.js +5 -2
  124. package/build-module/components/inserter-sidebar/index.js.map +1 -1
  125. package/build-module/components/page-attributes/parent.js +12 -7
  126. package/build-module/components/page-attributes/parent.js.map +1 -1
  127. package/build-module/components/post-actions/actions.js +12 -814
  128. package/build-module/components/post-actions/actions.js.map +1 -1
  129. package/build-module/components/post-actions/index.js +20 -19
  130. package/build-module/components/post-actions/index.js.map +1 -1
  131. package/build-module/components/post-author/hook.js +10 -3
  132. package/build-module/components/post-author/hook.js.map +1 -1
  133. package/build-module/components/post-author/panel.js +2 -1
  134. package/build-module/components/post-author/panel.js.map +1 -1
  135. package/build-module/components/post-card-panel/index.js +21 -21
  136. package/build-module/components/post-card-panel/index.js.map +1 -1
  137. package/build-module/components/post-comments/index.js +7 -23
  138. package/build-module/components/post-comments/index.js.map +1 -1
  139. package/build-module/components/post-featured-image/index.js +2 -0
  140. package/build-module/components/post-featured-image/index.js.map +1 -1
  141. package/build-module/components/post-publish-panel/postpublish.js +4 -0
  142. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  143. package/build-module/components/post-slug/index.js +1 -0
  144. package/build-module/components/post-slug/index.js.map +1 -1
  145. package/build-module/components/post-status/index.js +19 -43
  146. package/build-module/components/post-status/index.js.map +1 -1
  147. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +3 -2
  148. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  149. package/build-module/components/post-template/create-new-template-modal.js +3 -0
  150. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  151. package/build-module/components/post-url/index.js +7 -6
  152. package/build-module/components/post-url/index.js.map +1 -1
  153. package/build-module/components/post-url/panel.js +4 -5
  154. package/build-module/components/post-url/panel.js.map +1 -1
  155. package/build-module/components/preview-dropdown/index.js +84 -19
  156. package/build-module/components/preview-dropdown/index.js.map +1 -1
  157. package/build-module/components/provider/disable-non-page-content-blocks.js +15 -19
  158. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  159. package/build-module/components/sidebar/post-summary.js +10 -7
  160. package/build-module/components/sidebar/post-summary.js.map +1 -1
  161. package/build-module/components/site-discussion/index.js +7 -21
  162. package/build-module/components/site-discussion/index.js.map +1 -1
  163. package/build-module/components/template-content-panel/index.js +16 -14
  164. package/build-module/components/template-content-panel/index.js.map +1 -1
  165. package/build-module/components/visual-editor/index.js +2 -1
  166. package/build-module/components/visual-editor/index.js.map +1 -1
  167. package/build-module/dataviews/actions/duplicate-pattern.js +39 -0
  168. package/build-module/dataviews/actions/duplicate-pattern.js.map +1 -0
  169. package/build-module/dataviews/actions/duplicate-post.js +139 -0
  170. package/build-module/dataviews/actions/duplicate-post.js.map +1 -0
  171. package/build-module/dataviews/actions/duplicate-post.native.js +3 -0
  172. package/build-module/dataviews/actions/duplicate-post.native.js.map +1 -0
  173. package/build-module/dataviews/actions/duplicate-template-part.js +58 -0
  174. package/build-module/dataviews/actions/duplicate-template-part.js.map +1 -0
  175. package/build-module/dataviews/actions/export-pattern.native.js +3 -0
  176. package/build-module/dataviews/actions/export-pattern.native.js.map +1 -0
  177. package/build-module/dataviews/actions/permanently-delete-post.js +99 -0
  178. package/build-module/dataviews/actions/permanently-delete-post.js.map +1 -0
  179. package/build-module/dataviews/actions/rename-post.js +118 -0
  180. package/build-module/dataviews/actions/rename-post.js.map +1 -0
  181. package/build-module/dataviews/actions/reorder-page.js +111 -0
  182. package/build-module/dataviews/actions/reorder-page.js.map +1 -0
  183. package/build-module/dataviews/actions/reorder-page.native.js +3 -0
  184. package/build-module/dataviews/actions/reorder-page.native.js.map +1 -0
  185. package/build-module/dataviews/actions/reset-post.js +1 -1
  186. package/build-module/dataviews/actions/reset-post.js.map +1 -1
  187. package/build-module/dataviews/actions/restore-post.js +104 -0
  188. package/build-module/dataviews/actions/restore-post.js.map +1 -0
  189. package/build-module/dataviews/actions/trash-post.js +135 -0
  190. package/build-module/dataviews/actions/trash-post.js.map +1 -0
  191. package/build-module/dataviews/actions/utils.js +7 -1
  192. package/build-module/dataviews/actions/utils.js.map +1 -1
  193. package/build-module/dataviews/actions/view-post-revisions.js +43 -0
  194. package/build-module/dataviews/actions/view-post-revisions.js.map +1 -0
  195. package/build-module/dataviews/actions/view-post.js +30 -0
  196. package/build-module/dataviews/actions/view-post.js.map +1 -0
  197. package/build-module/dataviews/fields/index.js +26 -0
  198. package/build-module/dataviews/fields/index.js.map +1 -0
  199. package/build-module/dataviews/store/private-actions.js +54 -0
  200. package/build-module/dataviews/store/private-actions.js.map +1 -1
  201. package/build-module/dataviews/store/private-selectors.js +8 -9
  202. package/build-module/dataviews/store/private-selectors.js.map +1 -1
  203. package/build-module/dataviews/store/reducer.js +15 -1
  204. package/build-module/dataviews/store/reducer.js.map +1 -1
  205. package/build-module/dataviews/types.js.map +1 -1
  206. package/build-module/private-apis.js +2 -2
  207. package/build-module/private-apis.js.map +1 -1
  208. package/build-module/store/actions.js +16 -2
  209. package/build-module/store/actions.js.map +1 -1
  210. package/build-module/store/private-actions.js +9 -2
  211. package/build-module/store/private-actions.js.map +1 -1
  212. package/build-module/store/private-selectors.js +32 -2
  213. package/build-module/store/private-selectors.js.map +1 -1
  214. package/build-module/store/utils/is-template-revertable.js +1 -1
  215. package/build-module/store/utils/is-template-revertable.js.map +1 -1
  216. package/build-style/style-rtl.css +21 -34
  217. package/build-style/style.css +21 -34
  218. package/build-types/bindings/post-meta.d.ts +6 -0
  219. package/build-types/bindings/post-meta.d.ts.map +1 -1
  220. package/build-types/components/commands/index.d.ts.map +1 -1
  221. package/build-types/components/create-template-part-modal/index.d.ts.map +1 -1
  222. package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
  223. package/build-types/components/header/index.d.ts.map +1 -1
  224. package/build-types/components/inserter-sidebar/index.d.ts.map +1 -1
  225. package/build-types/components/page-attributes/parent.d.ts.map +1 -1
  226. package/build-types/components/post-actions/actions.d.ts +1 -26
  227. package/build-types/components/post-actions/actions.d.ts.map +1 -1
  228. package/build-types/components/post-actions/index.d.ts +3 -2
  229. package/build-types/components/post-actions/index.d.ts.map +1 -1
  230. package/build-types/components/post-author/hook.d.ts +1 -1
  231. package/build-types/components/post-author/hook.d.ts.map +1 -1
  232. package/build-types/components/post-author/panel.d.ts.map +1 -1
  233. package/build-types/components/post-card-panel/index.d.ts +4 -2
  234. package/build-types/components/post-card-panel/index.d.ts.map +1 -1
  235. package/build-types/components/post-comments/index.d.ts.map +1 -1
  236. package/build-types/components/post-slug/index.d.ts.map +1 -1
  237. package/build-types/components/post-status/index.d.ts +2 -1
  238. package/build-types/components/post-status/index.d.ts.map +1 -1
  239. package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts +1 -17
  240. package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
  241. package/build-types/components/post-template/create-new-template-modal.d.ts.map +1 -1
  242. package/build-types/components/post-url/index.d.ts.map +1 -1
  243. package/build-types/components/post-url/panel.d.ts.map +1 -1
  244. package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
  245. package/build-types/components/provider/disable-non-page-content-blocks.d.ts.map +1 -1
  246. package/build-types/components/sidebar/post-summary.d.ts.map +1 -1
  247. package/build-types/components/site-discussion/index.d.ts.map +1 -1
  248. package/build-types/components/template-content-panel/index.d.ts.map +1 -1
  249. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  250. package/build-types/dataviews/actions/duplicate-pattern.d.ts +5 -0
  251. package/build-types/dataviews/actions/duplicate-pattern.d.ts.map +1 -0
  252. package/build-types/dataviews/actions/duplicate-post.d.ts +5 -0
  253. package/build-types/dataviews/actions/duplicate-post.d.ts.map +1 -0
  254. package/build-types/dataviews/actions/duplicate-post.native.d.ts +3 -0
  255. package/build-types/dataviews/actions/duplicate-post.native.d.ts.map +1 -0
  256. package/build-types/dataviews/actions/duplicate-template-part.d.ts +5 -0
  257. package/build-types/dataviews/actions/duplicate-template-part.d.ts.map +1 -0
  258. package/build-types/dataviews/actions/export-pattern.native.d.ts +3 -0
  259. package/build-types/dataviews/actions/export-pattern.native.d.ts.map +1 -0
  260. package/build-types/dataviews/actions/permanently-delete-post.d.ts +5 -0
  261. package/build-types/dataviews/actions/permanently-delete-post.d.ts.map +1 -0
  262. package/build-types/dataviews/actions/rename-post.d.ts +5 -0
  263. package/build-types/dataviews/actions/rename-post.d.ts.map +1 -0
  264. package/build-types/dataviews/actions/reorder-page.d.ts +8 -0
  265. package/build-types/dataviews/actions/reorder-page.d.ts.map +1 -0
  266. package/build-types/dataviews/actions/reorder-page.native.d.ts +3 -0
  267. package/build-types/dataviews/actions/reorder-page.native.d.ts.map +1 -0
  268. package/build-types/dataviews/actions/reset-post.d.ts.map +1 -1
  269. package/build-types/dataviews/actions/restore-post.d.ts +5 -0
  270. package/build-types/dataviews/actions/restore-post.d.ts.map +1 -0
  271. package/build-types/dataviews/actions/trash-post.d.ts +5 -0
  272. package/build-types/dataviews/actions/trash-post.d.ts.map +1 -0
  273. package/build-types/dataviews/actions/utils.d.ts +5 -3
  274. package/build-types/dataviews/actions/utils.d.ts.map +1 -1
  275. package/build-types/dataviews/actions/view-post-revisions.d.ts +8 -0
  276. package/build-types/dataviews/actions/view-post-revisions.d.ts.map +1 -0
  277. package/build-types/dataviews/actions/view-post.d.ts +8 -0
  278. package/build-types/dataviews/actions/view-post.d.ts.map +1 -0
  279. package/build-types/dataviews/fields/index.d.ts +8 -0
  280. package/build-types/dataviews/fields/index.d.ts.map +1 -0
  281. package/build-types/dataviews/store/private-actions.d.ts +8 -3
  282. package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
  283. package/build-types/dataviews/store/private-selectors.d.ts +2 -1
  284. package/build-types/dataviews/store/private-selectors.d.ts.map +1 -1
  285. package/build-types/dataviews/store/reducer.d.ts +4 -1
  286. package/build-types/dataviews/store/reducer.d.ts.map +1 -1
  287. package/build-types/dataviews/types.d.ts +66 -8
  288. package/build-types/dataviews/types.d.ts.map +1 -1
  289. package/build-types/store/actions.d.ts.map +1 -1
  290. package/build-types/store/private-actions.d.ts.map +1 -1
  291. package/build-types/store/private-selectors.d.ts +11 -0
  292. package/build-types/store/private-selectors.d.ts.map +1 -1
  293. package/build-types/store/reducer.d.ts +1 -0
  294. package/build-types/store/reducer.d.ts.map +1 -1
  295. package/build-types/store/utils/is-template-revertable.d.ts.map +1 -1
  296. package/package.json +36 -36
  297. package/src/bindings/post-meta.js +20 -0
  298. package/src/components/block-manager/style.scss +2 -2
  299. package/src/components/blog-title/index.js +1 -1
  300. package/src/components/commands/index.js +4 -2
  301. package/src/components/create-template-part-modal/index.js +1 -0
  302. package/src/components/document-bar/index.js +1 -1
  303. package/src/components/document-bar/style.scss +1 -1
  304. package/src/components/editor-interface/style.scss +5 -0
  305. package/src/components/error-boundary/style.native.scss +1 -1
  306. package/src/components/error-boundary/style.scss +1 -1
  307. package/src/components/global-styles-provider/index.js +16 -3
  308. package/src/components/header/index.js +1 -2
  309. package/src/components/inserter-sidebar/index.js +10 -4
  310. package/src/components/list-view-sidebar/style.scss +4 -0
  311. package/src/components/page-attributes/parent.js +38 -16
  312. package/src/components/post-actions/actions.js +10 -1044
  313. package/src/components/post-actions/index.js +25 -17
  314. package/src/components/post-author/hook.js +11 -3
  315. package/src/components/post-author/panel.js +3 -1
  316. package/src/components/post-card-panel/index.js +29 -28
  317. package/src/components/post-comments/index.js +7 -20
  318. package/src/components/post-discussion/style.scss +0 -9
  319. package/src/components/post-featured-image/index.js +2 -0
  320. package/src/components/post-format/style.scss +0 -6
  321. package/src/components/post-publish-panel/postpublish.js +8 -2
  322. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +10 -10
  323. package/src/components/post-slug/index.js +1 -0
  324. package/src/components/post-status/index.js +11 -41
  325. package/src/components/post-status/style.scss +0 -19
  326. package/src/components/post-taxonomies/hierarchical-term-selector.js +3 -1
  327. package/src/components/post-template/create-new-template-modal.js +7 -1
  328. package/src/components/post-url/index.js +15 -9
  329. package/src/components/post-url/panel.js +8 -2
  330. package/src/components/preview-dropdown/index.js +113 -35
  331. package/src/components/preview-dropdown/style.scss +5 -0
  332. package/src/components/provider/disable-non-page-content-blocks.js +27 -24
  333. package/src/components/save-publish-panels/style.scss +3 -3
  334. package/src/components/sidebar/post-summary.js +20 -16
  335. package/src/components/site-discussion/index.js +7 -19
  336. package/src/components/site-discussion/style.scss +0 -14
  337. package/src/components/template-content-panel/index.js +40 -22
  338. package/src/components/visual-editor/index.js +8 -6
  339. package/src/components/visual-editor/style.scss +1 -3
  340. package/src/dataviews/actions/duplicate-pattern.tsx +40 -0
  341. package/src/dataviews/actions/duplicate-post.native.tsx +3 -0
  342. package/src/dataviews/actions/duplicate-post.tsx +174 -0
  343. package/src/dataviews/actions/duplicate-template-part.tsx +70 -0
  344. package/src/dataviews/actions/export-pattern.native.tsx +3 -0
  345. package/src/dataviews/actions/permanently-delete-post.tsx +116 -0
  346. package/src/dataviews/actions/rename-post.tsx +146 -0
  347. package/src/dataviews/actions/reorder-page.native.tsx +3 -0
  348. package/src/dataviews/actions/reorder-page.tsx +125 -0
  349. package/src/dataviews/actions/reset-post.tsx +2 -1
  350. package/src/dataviews/actions/restore-post.tsx +134 -0
  351. package/src/dataviews/actions/trash-post.tsx +196 -0
  352. package/src/dataviews/actions/utils.ts +14 -4
  353. package/src/dataviews/actions/view-post-revisions.tsx +47 -0
  354. package/src/dataviews/actions/view-post.tsx +30 -0
  355. package/src/dataviews/fields/index.ts +26 -0
  356. package/src/dataviews/store/private-actions.ts +109 -0
  357. package/src/dataviews/store/private-selectors.ts +9 -17
  358. package/src/dataviews/store/reducer.ts +20 -1
  359. package/src/dataviews/types.ts +58 -6
  360. package/src/private-apis.js +2 -2
  361. package/src/store/actions.js +36 -13
  362. package/src/store/private-actions.js +9 -5
  363. package/src/store/private-selectors.js +45 -2
  364. package/src/store/test/private-selectors.js +78 -0
  365. package/src/store/utils/is-template-revertable.js +2 -1
  366. package/tsconfig.tsbuildinfo +1 -1
  367. package/build/dataviews/actions/index.js +0 -32
  368. package/build/dataviews/actions/index.js.map +0 -1
  369. package/build-module/dataviews/actions/index.js +0 -24
  370. package/build-module/dataviews/actions/index.js.map +0 -1
  371. package/build-types/dataviews/actions/index.d.ts +0 -2
  372. package/build-types/dataviews/actions/index.d.ts.map +0 -1
  373. package/src/components/document-outline/test/__snapshots__/index.js.snap +0 -111
  374. package/src/components/document-outline/test/index.js +0 -185
  375. package/src/dataviews/actions/index.ts +0 -25
@@ -87,6 +87,7 @@ export default function CreateNewTemplateModal({
87
87
  children: /*#__PURE__*/_jsxs(VStack, {
88
88
  spacing: "3",
89
89
  children: [/*#__PURE__*/_jsx(TextControl, {
90
+ __next40pxDefaultSize: true,
90
91
  __nextHasNoMarginBottom: true,
91
92
  label: __('Name'),
92
93
  value: title,
@@ -97,10 +98,12 @@ export default function CreateNewTemplateModal({
97
98
  }), /*#__PURE__*/_jsxs(HStack, {
98
99
  justify: "right",
99
100
  children: [/*#__PURE__*/_jsx(Button, {
101
+ __next40pxDefaultSize: true,
100
102
  variant: "tertiary",
101
103
  onClick: cancel,
102
104
  children: __('Cancel')
103
105
  }), /*#__PURE__*/_jsx(Button, {
106
+ __next40pxDefaultSize: true,
104
107
  variant: "primary",
105
108
  type: "submit",
106
109
  isBusy: isBusy,
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","useState","serialize","createBlock","Modal","TextControl","Button","__experimentalHStack","HStack","__experimentalVStack","VStack","__","cleanForSlug","unlock","store","editorStore","jsx","_jsx","jsxs","_jsxs","DEFAULT_TITLE","CreateNewTemplateModal","onClose","defaultBlockTemplate","onNavigateToEntityRecord","select","getEditorSettings","getCurrentTemplateId","getTemplateId","createTemplate","title","setTitle","isBusy","setIsBusy","cancel","submit","event","preventDefault","newTemplateContent","tagName","layout","inherit","newTemplate","slug","content","postId","id","postType","onRequestClose","focusOnMount","size","children","className","onSubmit","spacing","__nextHasNoMarginBottom","label","value","onChange","placeholder","disabled","help","justify","variant","onClick","type"],"sources":["@wordpress/editor/src/components/post-template/create-new-template-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { serialize, createBlock } from '@wordpress/blocks';\nimport {\n\tModal,\n\tTextControl,\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { cleanForSlug } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\n\nconst DEFAULT_TITLE = __( 'Custom Template' );\n\nexport default function CreateNewTemplateModal( { onClose } ) {\n\tconst { defaultBlockTemplate, onNavigateToEntityRecord } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditorSettings, getCurrentTemplateId } =\n\t\t\t\tselect( editorStore );\n\t\t\treturn {\n\t\t\t\tdefaultBlockTemplate: getEditorSettings().defaultBlockTemplate,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetEditorSettings().onNavigateToEntityRecord,\n\t\t\t\tgetTemplateId: getCurrentTemplateId,\n\t\t\t};\n\t\t}\n\t);\n\n\tconst { createTemplate } = unlock( useDispatch( editorStore ) );\n\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\n\tconst cancel = () => {\n\t\tsetTitle( '' );\n\t\tonClose();\n\t};\n\n\tconst submit = async ( event ) => {\n\t\tevent.preventDefault();\n\n\t\tif ( isBusy ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsBusy( true );\n\n\t\tconst newTemplateContent =\n\t\t\tdefaultBlockTemplate ??\n\t\t\tserialize( [\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\ttagName: 'header',\n\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/site-title' ),\n\t\t\t\t\t\tcreateBlock( 'core/site-tagline' ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t\t\tcreateBlock( 'core/separator' ),\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\ttagName: 'main',\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[ createBlock( 'core/post-title' ) ]\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcreateBlock( 'core/post-content', {\n\t\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t\t] );\n\n\t\tconst newTemplate = await createTemplate( {\n\t\t\tslug: cleanForSlug( title || DEFAULT_TITLE ),\n\t\t\tcontent: newTemplateContent,\n\t\t\ttitle: title || DEFAULT_TITLE,\n\t\t} );\n\n\t\tsetIsBusy( false );\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: newTemplate.id,\n\t\t\tpostType: 'wp_template',\n\t\t} );\n\t\tcancel();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Create custom template' ) }\n\t\t\tonRequestClose={ cancel }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"editor-post-template__create-form\"\n\t\t\t\tonSubmit={ submit }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ DEFAULT_TITLE }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Describe the template, e.g. \"Post with sidebar\". A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ cancel }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\t\taria-disabled={ isBusy }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","useDispatch","useState","serialize","createBlock","Modal","TextControl","Button","__experimentalHStack","HStack","__experimentalVStack","VStack","__","cleanForSlug","unlock","store","editorStore","jsx","_jsx","jsxs","_jsxs","DEFAULT_TITLE","CreateNewTemplateModal","onClose","defaultBlockTemplate","onNavigateToEntityRecord","select","getEditorSettings","getCurrentTemplateId","getTemplateId","createTemplate","title","setTitle","isBusy","setIsBusy","cancel","submit","event","preventDefault","newTemplateContent","tagName","layout","inherit","newTemplate","slug","content","postId","id","postType","onRequestClose","focusOnMount","size","children","className","onSubmit","spacing","__next40pxDefaultSize","__nextHasNoMarginBottom","label","value","onChange","placeholder","disabled","help","justify","variant","onClick","type"],"sources":["@wordpress/editor/src/components/post-template/create-new-template-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { serialize, createBlock } from '@wordpress/blocks';\nimport {\n\tModal,\n\tTextControl,\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { cleanForSlug } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\n\nconst DEFAULT_TITLE = __( 'Custom Template' );\n\nexport default function CreateNewTemplateModal( { onClose } ) {\n\tconst { defaultBlockTemplate, onNavigateToEntityRecord } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditorSettings, getCurrentTemplateId } =\n\t\t\t\tselect( editorStore );\n\t\t\treturn {\n\t\t\t\tdefaultBlockTemplate: getEditorSettings().defaultBlockTemplate,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetEditorSettings().onNavigateToEntityRecord,\n\t\t\t\tgetTemplateId: getCurrentTemplateId,\n\t\t\t};\n\t\t}\n\t);\n\n\tconst { createTemplate } = unlock( useDispatch( editorStore ) );\n\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\n\tconst cancel = () => {\n\t\tsetTitle( '' );\n\t\tonClose();\n\t};\n\n\tconst submit = async ( event ) => {\n\t\tevent.preventDefault();\n\n\t\tif ( isBusy ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsBusy( true );\n\n\t\tconst newTemplateContent =\n\t\t\tdefaultBlockTemplate ??\n\t\t\tserialize( [\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\ttagName: 'header',\n\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/site-title' ),\n\t\t\t\t\t\tcreateBlock( 'core/site-tagline' ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t\t\tcreateBlock( 'core/separator' ),\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\ttagName: 'main',\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[ createBlock( 'core/post-title' ) ]\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcreateBlock( 'core/post-content', {\n\t\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t\t] );\n\n\t\tconst newTemplate = await createTemplate( {\n\t\t\tslug: cleanForSlug( title || DEFAULT_TITLE ),\n\t\t\tcontent: newTemplateContent,\n\t\t\ttitle: title || DEFAULT_TITLE,\n\t\t} );\n\n\t\tsetIsBusy( false );\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: newTemplate.id,\n\t\t\tpostType: 'wp_template',\n\t\t} );\n\t\tcancel();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Create custom template' ) }\n\t\t\tonRequestClose={ cancel }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"editor-post-template__create-form\"\n\t\t\t\tonSubmit={ submit }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ DEFAULT_TITLE }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Describe the template, e.g. \"Post with sidebar\". A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ cancel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\t\taria-disabled={ isBusy }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { useSelect, useDispatch } from '@wordpress/data';
5
5
  import { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';
6
- import { useState } from '@wordpress/element';
6
+ import { useState, createInterpolateElement } from '@wordpress/element';
7
7
  import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
8
8
  import { __ } from '@wordpress/i18n';
9
9
  import { ExternalLink, Button, __experimentalInputControl as InputControl, __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper, __experimentalVStack as VStack } from '@wordpress/components';
@@ -78,11 +78,12 @@ export default function PostURL({
78
78
  onClose: onClose
79
79
  }), /*#__PURE__*/_jsxs(VStack, {
80
80
  spacing: 3,
81
- children: [isEditable && /*#__PURE__*/_jsxs("div", {
82
- children: [__('Customize the last part of the URL. '), /*#__PURE__*/_jsx(ExternalLink, {
83
- href: __('https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink'),
84
- children: __('Learn more.')
85
- })]
81
+ children: [isEditable && /*#__PURE__*/_jsx("div", {
82
+ children: createInterpolateElement(__('Customize the last part of the URL. <a>Learn more.</a>'), {
83
+ a: /*#__PURE__*/_jsx(ExternalLink, {
84
+ href: __('https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink')
85
+ })
86
+ })
86
87
  }), /*#__PURE__*/_jsxs("div", {
87
88
  children: [isEditable && /*#__PURE__*/_jsx(InputControl, {
88
89
  __next40pxDefaultSize: true,
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","safeDecodeURIComponent","cleanForSlug","useState","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","__","ExternalLink","Button","__experimentalInputControl","InputControl","__experimentalInputControlPrefixWrapper","InputControlPrefixWrapper","__experimentalVStack","VStack","store","noticesStore","copySmall","coreStore","useCopyToClipboard","editorStore","jsx","_jsx","jsxs","_jsxs","PostURL","onClose","isEditable","postSlug","postLink","permalinkPrefix","permalinkSuffix","permalink","select","_post$_links$wpActio","post","getCurrentPost","postTypeSlug","getCurrentPostType","postType","getPostType","permalinkParts","getPermalinkParts","hasPublishAction","_links","isPermalinkEditable","getEditedPostSlug","viewPostLabel","labels","view_item","link","prefix","suffix","getPermalink","editPost","createNotice","forceEmptyField","setForceEmptyField","copyButtonRef","isDismissible","type","className","children","title","spacing","href","__next40pxDefaultSize","icon","ref","label","hideLabelFromVision","value","autoComplete","spellCheck","onChange","newValue","slug","onBlur","event","target","help"],"sources":["@wordpress/editor/src/components/post-url/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';\nimport { useState } from '@wordpress/element';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tExternalLink,\n\tButton,\n\t__experimentalInputControl as InputControl,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { copySmall } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Renders the `PostURL` component.\n *\n * @example\n * ```jsx\n * <PostURL />\n * ```\n *\n * @param {Function} onClose Callback function to be executed when the popover is closed.\n *\n * @return {Component} The rendered PostURL component.\n */\nexport default function PostURL( { onClose } ) {\n\tconst {\n\t\tisEditable,\n\t\tpostSlug,\n\t\tpostLink,\n\t\tpermalinkPrefix,\n\t\tpermalinkSuffix,\n\t\tpermalink,\n\t} = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst postTypeSlug = select( editorStore ).getCurrentPostType();\n\t\tconst postType = select( coreStore ).getPostType( postTypeSlug );\n\t\tconst permalinkParts = select( editorStore ).getPermalinkParts();\n\t\tconst hasPublishAction = post?._links?.[ 'wp:action-publish' ] ?? false;\n\n\t\treturn {\n\t\t\tisEditable:\n\t\t\t\tselect( editorStore ).isPermalinkEditable() && hasPublishAction,\n\t\t\tpostSlug: safeDecodeURIComponent(\n\t\t\t\tselect( editorStore ).getEditedPostSlug()\n\t\t\t),\n\t\t\tviewPostLabel: postType?.labels.view_item,\n\t\t\tpostLink: post.link,\n\t\t\tpermalinkPrefix: permalinkParts?.prefix,\n\t\t\tpermalinkSuffix: permalinkParts?.suffix,\n\t\t\tpermalink: safeDecodeURIComponent(\n\t\t\t\tselect( editorStore ).getPermalink()\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst [ forceEmptyField, setForceEmptyField ] = useState( false );\n\tconst copyButtonRef = useCopyToClipboard( permalink, () => {\n\t\tcreateNotice( 'info', __( 'Copied URL to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\treturn (\n\t\t<div className=\"editor-post-url\">\n\t\t\t<InspectorPopoverHeader\n\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t{ isEditable && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{ __( 'Customize the last part of the URL. ' ) }\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Learn more.' ) }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div>\n\t\t\t\t\t{ isEditable && (\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t<InputControlPrefixWrapper>\n\t\t\t\t\t\t\t\t\t/\n\t\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ copySmall }\n\t\t\t\t\t\t\t\t\tref={ copyButtonRef }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tvalue={ forceEmptyField ? '' : postSlug }\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclassName=\"editor-post-url__input\"\n\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\teditPost( { slug: newValue } );\n\t\t\t\t\t\t\t\t// When we delete the field the permalink gets\n\t\t\t\t\t\t\t\t// reverted to the original value.\n\t\t\t\t\t\t\t\t// The forceEmptyField logic allows the user to have\n\t\t\t\t\t\t\t\t// the field temporarily empty while typing.\n\t\t\t\t\t\t\t\tif ( ! newValue ) {\n\t\t\t\t\t\t\t\t\tif ( ! forceEmptyField ) {\n\t\t\t\t\t\t\t\t\t\tsetForceEmptyField( true );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonBlur={ ( event ) => {\n\t\t\t\t\t\t\t\teditPost( {\n\t\t\t\t\t\t\t\t\tslug: cleanForSlug( event.target.value ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\tclassName=\"editor-post-url__link\"\n\t\t\t\t\t\t\t\t\thref={ postLink }\n\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span className=\"editor-post-url__link-prefix\">\n\t\t\t\t\t\t\t\t\t\t{ permalinkPrefix }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span className=\"editor-post-url__link-slug\">\n\t\t\t\t\t\t\t\t\t\t{ postSlug }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span className=\"editor-post-url__link-suffix\">\n\t\t\t\t\t\t\t\t\t\t{ permalinkSuffix }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</ExternalLink>\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\t{ ! isEditable && (\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\tclassName=\"editor-post-url__link\"\n\t\t\t\t\t\t\thref={ postLink }\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postLink }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","useDispatch","safeDecodeURIComponent","cleanForSlug","useState","createInterpolateElement","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","__","ExternalLink","Button","__experimentalInputControl","InputControl","__experimentalInputControlPrefixWrapper","InputControlPrefixWrapper","__experimentalVStack","VStack","store","noticesStore","copySmall","coreStore","useCopyToClipboard","editorStore","jsx","_jsx","jsxs","_jsxs","PostURL","onClose","isEditable","postSlug","postLink","permalinkPrefix","permalinkSuffix","permalink","select","_post$_links$wpActio","post","getCurrentPost","postTypeSlug","getCurrentPostType","postType","getPostType","permalinkParts","getPermalinkParts","hasPublishAction","_links","isPermalinkEditable","getEditedPostSlug","viewPostLabel","labels","view_item","link","prefix","suffix","getPermalink","editPost","createNotice","forceEmptyField","setForceEmptyField","copyButtonRef","isDismissible","type","className","children","title","spacing","a","href","__next40pxDefaultSize","icon","ref","label","hideLabelFromVision","value","autoComplete","spellCheck","onChange","newValue","slug","onBlur","event","target","help"],"sources":["@wordpress/editor/src/components/post-url/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tExternalLink,\n\tButton,\n\t__experimentalInputControl as InputControl,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { copySmall } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Renders the `PostURL` component.\n *\n * @example\n * ```jsx\n * <PostURL />\n * ```\n *\n * @param {Function} onClose Callback function to be executed when the popover is closed.\n *\n * @return {Component} The rendered PostURL component.\n */\nexport default function PostURL( { onClose } ) {\n\tconst {\n\t\tisEditable,\n\t\tpostSlug,\n\t\tpostLink,\n\t\tpermalinkPrefix,\n\t\tpermalinkSuffix,\n\t\tpermalink,\n\t} = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst postTypeSlug = select( editorStore ).getCurrentPostType();\n\t\tconst postType = select( coreStore ).getPostType( postTypeSlug );\n\t\tconst permalinkParts = select( editorStore ).getPermalinkParts();\n\t\tconst hasPublishAction = post?._links?.[ 'wp:action-publish' ] ?? false;\n\n\t\treturn {\n\t\t\tisEditable:\n\t\t\t\tselect( editorStore ).isPermalinkEditable() && hasPublishAction,\n\t\t\tpostSlug: safeDecodeURIComponent(\n\t\t\t\tselect( editorStore ).getEditedPostSlug()\n\t\t\t),\n\t\t\tviewPostLabel: postType?.labels.view_item,\n\t\t\tpostLink: post.link,\n\t\t\tpermalinkPrefix: permalinkParts?.prefix,\n\t\t\tpermalinkSuffix: permalinkParts?.suffix,\n\t\t\tpermalink: safeDecodeURIComponent(\n\t\t\t\tselect( editorStore ).getPermalink()\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst [ forceEmptyField, setForceEmptyField ] = useState( false );\n\tconst copyButtonRef = useCopyToClipboard( permalink, () => {\n\t\tcreateNotice( 'info', __( 'Copied URL to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\treturn (\n\t\t<div className=\"editor-post-url\">\n\t\t\t<InspectorPopoverHeader\n\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t{ isEditable && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Customize the last part of the URL. <a>Learn more.</a>'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div>\n\t\t\t\t\t{ isEditable && (\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t<InputControlPrefixWrapper>\n\t\t\t\t\t\t\t\t\t/\n\t\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ copySmall }\n\t\t\t\t\t\t\t\t\tref={ copyButtonRef }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tvalue={ forceEmptyField ? '' : postSlug }\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclassName=\"editor-post-url__input\"\n\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\teditPost( { slug: newValue } );\n\t\t\t\t\t\t\t\t// When we delete the field the permalink gets\n\t\t\t\t\t\t\t\t// reverted to the original value.\n\t\t\t\t\t\t\t\t// The forceEmptyField logic allows the user to have\n\t\t\t\t\t\t\t\t// the field temporarily empty while typing.\n\t\t\t\t\t\t\t\tif ( ! newValue ) {\n\t\t\t\t\t\t\t\t\tif ( ! forceEmptyField ) {\n\t\t\t\t\t\t\t\t\t\tsetForceEmptyField( true );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonBlur={ ( event ) => {\n\t\t\t\t\t\t\t\teditPost( {\n\t\t\t\t\t\t\t\t\tslug: cleanForSlug( event.target.value ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\tclassName=\"editor-post-url__link\"\n\t\t\t\t\t\t\t\t\thref={ postLink }\n\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span className=\"editor-post-url__link-prefix\">\n\t\t\t\t\t\t\t\t\t\t{ permalinkPrefix }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span className=\"editor-post-url__link-slug\">\n\t\t\t\t\t\t\t\t\t\t{ postSlug }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span className=\"editor-post-url__link-suffix\">\n\t\t\t\t\t\t\t\t\t\t{ permalinkSuffix }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</ExternalLink>\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\t{ ! isEditable && (\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\tclassName=\"editor-post-url__link\"\n\t\t\t\t\t\t\thref={ postLink }\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postLink }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { useMemo, useState } from '@wordpress/element';
5
5
  import { useSelect } from '@wordpress/data';
6
- import { Dropdown, Button } from '@wordpress/components';
6
+ import { Dropdown, Button, __experimentalTruncate as Truncate } from '@wordpress/components';
7
7
  import { __, sprintf } from '@wordpress/i18n';
8
8
  import { safeDecodeURIComponent } from '@wordpress/url';
9
9
  import { store as coreStore } from '@wordpress/core-data';
@@ -22,8 +22,6 @@ import { store as editorStore } from '../../store';
22
22
  * @return {JSX.Element} The rendered PostURLPanel component.
23
23
  */
24
24
  import { jsx as _jsx } from "react/jsx-runtime";
25
- import { Fragment as _Fragment } from "react/jsx-runtime";
26
- import { jsxs as _jsxs } from "react/jsx-runtime";
27
25
  export default function PostURLPanel() {
28
26
  // Use internal state instead of a ref to make sure that the component
29
27
  // re-renders when the popover's anchor updates.
@@ -100,8 +98,9 @@ function PostURLToggle({
100
98
  ,
101
99
  "aria-label": sprintf(__('Change link: %s'), decodedSlug),
102
100
  onClick: onClick,
103
- children: isFrontPage ? postLink : /*#__PURE__*/_jsxs(_Fragment, {
104
- children: ["/", decodedSlug]
101
+ children: /*#__PURE__*/_jsx(Truncate, {
102
+ numberOfLines: 1,
103
+ children: isFrontPage ? postLink : `/${decodedSlug}`
105
104
  })
106
105
  });
107
106
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useState","useSelect","Dropdown","Button","__","sprintf","safeDecodeURIComponent","store","coreStore","PostURLCheck","PostURL","PostPanelRow","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PostURLPanel","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","children","label","ref","className","contentClassName","focusOnMount","renderToggle","isOpen","onToggle","PostURLToggle","onClick","renderContent","onClose","slug","isFrontPage","postLink","select","getCurrentPostId","getCurrentPost","getEditedEntityRecord","canUser","siteSettings","kind","name","undefined","_id","getEditedPostSlug","page_on_front","link","decodedSlug","size","variant"],"sources":["@wordpress/editor/src/components/post-url/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { safeDecodeURIComponent } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostURLCheck from './check';\nimport PostURL from './index';\nimport PostPanelRow from '../post-panel-row';\nimport { store as editorStore } from '../../store';\n\n/**\n * Renders the `PostURLPanel` component.\n *\n * @return {JSX.Element} The rendered PostURLPanel component.\n */\nexport default function PostURLPanel() {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<PostURLCheck>\n\t\t\t<PostPanelRow label={ __( 'Link' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tclassName=\"editor-post-url__panel-dropdown\"\n\t\t\t\t\tcontentClassName=\"editor-post-url__panel-dialog\"\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<PostURLToggle isOpen={ isOpen } onClick={ onToggle } />\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<PostURL onClose={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostURLCheck>\n\t);\n}\n\nfunction PostURLToggle( { isOpen, onClick } ) {\n\tconst { slug, isFrontPage, postLink } = useSelect( ( select ) => {\n\t\tconst { getCurrentPostId, getCurrentPost } = select( editorStore );\n\t\tconst { getEditedEntityRecord, canUser } = select( coreStore );\n\t\tconst siteSettings = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst _id = getCurrentPostId();\n\t\treturn {\n\t\t\tslug: select( editorStore ).getEditedPostSlug(),\n\t\t\tisFrontPage: siteSettings?.page_on_front === _id,\n\t\t\tpostLink: getCurrentPost()?.link,\n\t\t};\n\t}, [] );\n\tconst decodedSlug = safeDecodeURIComponent( slug );\n\treturn (\n\t\t<Button\n\t\t\tsize=\"compact\"\n\t\t\tclassName=\"editor-post-url__panel-toggle\"\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\t// translators: %s: Current post link.\n\t\t\taria-label={ sprintf( __( 'Change link: %s' ), decodedSlug ) }\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ isFrontPage ? postLink : <>/{ decodedSlug }</> }\n\t\t</Button>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useState","useSelect","Dropdown","Button","__experimentalTruncate","Truncate","__","sprintf","safeDecodeURIComponent","store","coreStore","PostURLCheck","PostURL","PostPanelRow","editorStore","jsx","_jsx","PostURLPanel","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","children","label","ref","className","contentClassName","focusOnMount","renderToggle","isOpen","onToggle","PostURLToggle","onClick","renderContent","onClose","slug","isFrontPage","postLink","select","getCurrentPostId","getCurrentPost","getEditedEntityRecord","canUser","siteSettings","kind","name","undefined","_id","getEditedPostSlug","page_on_front","link","decodedSlug","size","variant","numberOfLines"],"sources":["@wordpress/editor/src/components/post-url/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tDropdown,\n\tButton,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { safeDecodeURIComponent } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostURLCheck from './check';\nimport PostURL from './index';\nimport PostPanelRow from '../post-panel-row';\nimport { store as editorStore } from '../../store';\n\n/**\n * Renders the `PostURLPanel` component.\n *\n * @return {JSX.Element} The rendered PostURLPanel component.\n */\nexport default function PostURLPanel() {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<PostURLCheck>\n\t\t\t<PostPanelRow label={ __( 'Link' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tclassName=\"editor-post-url__panel-dropdown\"\n\t\t\t\t\tcontentClassName=\"editor-post-url__panel-dialog\"\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<PostURLToggle isOpen={ isOpen } onClick={ onToggle } />\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<PostURL onClose={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostURLCheck>\n\t);\n}\n\nfunction PostURLToggle( { isOpen, onClick } ) {\n\tconst { slug, isFrontPage, postLink } = useSelect( ( select ) => {\n\t\tconst { getCurrentPostId, getCurrentPost } = select( editorStore );\n\t\tconst { getEditedEntityRecord, canUser } = select( coreStore );\n\t\tconst siteSettings = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst _id = getCurrentPostId();\n\t\treturn {\n\t\t\tslug: select( editorStore ).getEditedPostSlug(),\n\t\t\tisFrontPage: siteSettings?.page_on_front === _id,\n\t\t\tpostLink: getCurrentPost()?.link,\n\t\t};\n\t}, [] );\n\tconst decodedSlug = safeDecodeURIComponent( slug );\n\treturn (\n\t\t<Button\n\t\t\tsize=\"compact\"\n\t\t\tclassName=\"editor-post-url__panel-toggle\"\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\t// translators: %s: Current post link.\n\t\t\taria-label={ sprintf( __( 'Change link: %s' ), decodedSlug ) }\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t{ isFrontPage ? postLink : `/${ decodedSlug }` }\n\t\t\t</Truncate>\n\t\t</Button>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,20 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
9
  import { useViewportMatch } from '@wordpress/compose';
5
- import { DropdownMenu, MenuGroup, MenuItem, VisuallyHidden, Icon } from '@wordpress/components';
10
+ import { DropdownMenu, MenuGroup, MenuItem, MenuItemsChoice, VisuallyHidden, Icon } from '@wordpress/components';
6
11
  import { __ } from '@wordpress/i18n';
7
- import { check, desktop, mobile, tablet, external } from '@wordpress/icons';
12
+ import { desktop, mobile, tablet, external } from '@wordpress/icons';
8
13
  import { useSelect, useDispatch } from '@wordpress/data';
9
14
  import { store as coreStore } from '@wordpress/core-data';
15
+ import { useEffect, useRef } from '@wordpress/element';
10
16
  import { store as preferencesStore } from '@wordpress/preferences';
17
+ import { store as blockEditorStore } from '@wordpress/block-editor';
11
18
 
12
19
  /**
13
20
  * Internal dependencies
@@ -23,6 +30,7 @@ export default function PreviewDropdown({
23
30
  }) {
24
31
  const {
25
32
  deviceType,
33
+ editorMode,
26
34
  homeUrl,
27
35
  isTemplate,
28
36
  isViewable,
@@ -40,9 +48,13 @@ export default function PreviewDropdown({
40
48
  const {
41
49
  get
42
50
  } = select(preferencesStore);
51
+ const {
52
+ __unstableGetEditorMode
53
+ } = select(blockEditorStore);
43
54
  const _currentPostType = getCurrentPostType();
44
55
  return {
45
56
  deviceType: getDeviceType(),
57
+ editorMode: __unstableGetEditorMode(),
46
58
  homeUrl: getUnstableBase()?.home,
47
59
  isTemplate: _currentPostType === 'wp_template',
48
60
  isViewable: (_getPostType$viewable = getPostType(_currentPostType)?.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false,
@@ -52,6 +64,24 @@ export default function PreviewDropdown({
52
64
  const {
53
65
  setDeviceType
54
66
  } = useDispatch(editorStore);
67
+ const {
68
+ __unstableSetEditorMode
69
+ } = useDispatch(blockEditorStore);
70
+
71
+ /**
72
+ * Save the original editing mode in a ref to restore it when we exit zoom out.
73
+ */
74
+ const originalEditingMode = useRef(editorMode);
75
+ useEffect(() => {
76
+ if (editorMode !== 'zoom-out') {
77
+ originalEditingMode.current = editorMode;
78
+ }
79
+ return () => {
80
+ if (editorMode === 'zoom-out' && editorMode !== originalEditingMode.current) {
81
+ __unstableSetEditorMode(originalEditingMode.current);
82
+ }
83
+ };
84
+ }, [editorMode, __unstableSetEditorMode]);
55
85
  const isMobile = useViewportMatch('medium', '<');
56
86
  if (isMobile) {
57
87
  return null;
@@ -61,6 +91,7 @@ export default function PreviewDropdown({
61
91
  };
62
92
  const toggleProps = {
63
93
  className: 'editor-preview-dropdown__toggle',
94
+ iconPosition: 'right',
64
95
  size: 'compact',
65
96
  showTooltip: !showIconLabels,
66
97
  disabled,
@@ -70,35 +101,68 @@ export default function PreviewDropdown({
70
101
  'aria-label': __('View options')
71
102
  };
72
103
  const deviceIcons = {
104
+ desktop,
73
105
  mobile,
74
- tablet,
75
- desktop
106
+ tablet
107
+ };
108
+
109
+ /**
110
+ * The choices for the device type.
111
+ *
112
+ * @type {Array}
113
+ */
114
+ const choices = [{
115
+ value: 'Desktop',
116
+ label: __('Desktop'),
117
+ icon: desktop
118
+ }, {
119
+ value: 'ZoomOut',
120
+ label: __('Desktop (50%)'),
121
+ icon: desktop
122
+ }, {
123
+ value: 'Tablet',
124
+ label: __('Tablet'),
125
+ icon: tablet
126
+ }, {
127
+ value: 'Mobile',
128
+ label: __('Mobile'),
129
+ icon: mobile
130
+ }];
131
+ const previewValue = editorMode === 'zoom-out' ? 'ZoomOut' : deviceType;
132
+
133
+ /**
134
+ * Handles the selection of a device type.
135
+ *
136
+ * @param {string} value The device type.
137
+ */
138
+ const onSelect = value => {
139
+ let newEditorMode = originalEditingMode.current;
140
+ if (value === 'ZoomOut') {
141
+ newEditorMode = 'zoom-out';
142
+ setDeviceType('Desktop');
143
+ } else {
144
+ setDeviceType(value);
145
+ }
146
+ __unstableSetEditorMode(newEditorMode);
76
147
  };
77
148
  return /*#__PURE__*/_jsx(DropdownMenu, {
78
- className: "editor-preview-dropdown",
149
+ className: clsx('editor-preview-dropdown', `editor-preview-dropdown--${deviceType.toLowerCase()}`),
79
150
  popoverProps: popoverProps,
80
151
  toggleProps: toggleProps,
81
152
  menuProps: menuProps,
82
153
  icon: deviceIcons[deviceType.toLowerCase()],
154
+ text: editorMode === 'zoom-out' ? __('50%') : undefined,
83
155
  label: __('View'),
84
156
  disableOpenOnArrowDown: disabled,
85
157
  children: ({
86
158
  onClose
87
159
  }) => /*#__PURE__*/_jsxs(_Fragment, {
88
- children: [/*#__PURE__*/_jsxs(MenuGroup, {
89
- children: [/*#__PURE__*/_jsx(MenuItem, {
90
- onClick: () => setDeviceType('Desktop'),
91
- icon: deviceType === 'Desktop' && check,
92
- children: __('Desktop')
93
- }), /*#__PURE__*/_jsx(MenuItem, {
94
- onClick: () => setDeviceType('Tablet'),
95
- icon: deviceType === 'Tablet' && check,
96
- children: __('Tablet')
97
- }), /*#__PURE__*/_jsx(MenuItem, {
98
- onClick: () => setDeviceType('Mobile'),
99
- icon: deviceType === 'Mobile' && check,
100
- children: __('Mobile')
101
- })]
160
+ children: [/*#__PURE__*/_jsx(MenuGroup, {
161
+ children: /*#__PURE__*/_jsx(MenuItemsChoice, {
162
+ choices: choices,
163
+ value: previewValue,
164
+ onSelect: onSelect
165
+ })
102
166
  }), isTemplate && /*#__PURE__*/_jsx(MenuGroup, {
103
167
  children: /*#__PURE__*/_jsxs(MenuItem, {
104
168
  href: homeUrl,
@@ -116,6 +180,7 @@ export default function PreviewDropdown({
116
180
  className: "editor-preview-dropdown__button-external",
117
181
  role: "menuitem",
118
182
  forceIsAutosaveable: forceIsAutosaveable,
183
+ "aria-label": __('Preview in new tab'),
119
184
  textContent: /*#__PURE__*/_jsxs(_Fragment, {
120
185
  children: [__('Preview in new tab'), /*#__PURE__*/_jsx(Icon, {
121
186
  icon: external
@@ -1 +1 @@
1
- {"version":3,"names":["useViewportMatch","DropdownMenu","MenuGroup","MenuItem","VisuallyHidden","Icon","__","check","desktop","mobile","tablet","external","useSelect","useDispatch","store","coreStore","preferencesStore","editorStore","PostPreviewButton","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PreviewDropdown","forceIsAutosaveable","disabled","deviceType","homeUrl","isTemplate","isViewable","showIconLabels","select","_getPostType$viewable","getDeviceType","getCurrentPostType","getUnstableBase","getPostType","get","_currentPostType","home","viewable","setDeviceType","isMobile","popoverProps","placement","toggleProps","className","size","showTooltip","accessibleWhenDisabled","menuProps","deviceIcons","icon","toLowerCase","label","disableOpenOnArrowDown","children","onClose","onClick","href","target","as","role","textContent","onPreview"],"sources":["@wordpress/editor/src/components/preview-dropdown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tVisuallyHidden,\n\tIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check, desktop, mobile, tablet, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport PostPreviewButton from '../post-preview-button';\n\nexport default function PreviewDropdown( { forceIsAutosaveable, disabled } ) {\n\tconst { deviceType, homeUrl, isTemplate, isViewable, showIconLabels } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getDeviceType, getCurrentPostType } = select( editorStore );\n\t\t\tconst { getUnstableBase, getPostType } = select( coreStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst _currentPostType = getCurrentPostType();\n\t\t\treturn {\n\t\t\t\tdeviceType: getDeviceType(),\n\t\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\t\tisTemplate: _currentPostType === 'wp_template',\n\t\t\t\tisViewable: getPostType( _currentPostType )?.viewable ?? false,\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t};\n\t\t}, [] );\n\tconst { setDeviceType } = useDispatch( editorStore );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\tconst popoverProps = {\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'editor-preview-dropdown__toggle',\n\t\tsize: 'compact',\n\t\tshowTooltip: ! showIconLabels,\n\t\tdisabled,\n\t\taccessibleWhenDisabled: disabled,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tmobile,\n\t\ttablet,\n\t\tdesktop,\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"editor-preview-dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\tlabel={ __( 'View' ) }\n\t\t\tdisableOpenOnArrowDown={ disabled }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Desktop' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Desktop' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Desktop' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Tablet' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Tablet' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Tablet' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Mobile' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Mobile' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Mobile' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t{ isTemplate && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'View site' ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isViewable && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<PostPreviewButton\n\t\t\t\t\t\t\t\tclassName=\"editor-preview-dropdown__button-external\"\n\t\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\t\tforceIsAutosaveable={ forceIsAutosaveable }\n\t\t\t\t\t\t\t\ttextContent={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Preview in new tab' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ external } />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPreview={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useViewportMatch","DropdownMenu","MenuGroup","MenuItem","MenuItemsChoice","VisuallyHidden","Icon","__","desktop","mobile","tablet","external","useSelect","useDispatch","store","coreStore","useEffect","useRef","preferencesStore","blockEditorStore","editorStore","PostPreviewButton","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PreviewDropdown","forceIsAutosaveable","disabled","deviceType","editorMode","homeUrl","isTemplate","isViewable","showIconLabels","select","_getPostType$viewable","getDeviceType","getCurrentPostType","getUnstableBase","getPostType","get","__unstableGetEditorMode","_currentPostType","home","viewable","setDeviceType","__unstableSetEditorMode","originalEditingMode","current","isMobile","popoverProps","placement","toggleProps","className","iconPosition","size","showTooltip","accessibleWhenDisabled","menuProps","deviceIcons","choices","value","label","icon","previewValue","onSelect","newEditorMode","toLowerCase","text","undefined","disableOpenOnArrowDown","children","onClose","href","target","onClick","as","role","textContent","onPreview"],"sources":["@wordpress/editor/src/components/preview-dropdown/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tVisuallyHidden,\n\tIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { desktop, mobile, tablet, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport PostPreviewButton from '../post-preview-button';\n\nexport default function PreviewDropdown( { forceIsAutosaveable, disabled } ) {\n\tconst {\n\t\tdeviceType,\n\t\teditorMode,\n\t\thomeUrl,\n\t\tisTemplate,\n\t\tisViewable,\n\t\tshowIconLabels,\n\t} = useSelect( ( select ) => {\n\t\tconst { getDeviceType, getCurrentPostType } = select( editorStore );\n\t\tconst { getUnstableBase, getPostType } = select( coreStore );\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\t\tconst _currentPostType = getCurrentPostType();\n\t\treturn {\n\t\t\tdeviceType: getDeviceType(),\n\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\tisTemplate: _currentPostType === 'wp_template',\n\t\t\tisViewable: getPostType( _currentPostType )?.viewable ?? false,\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t};\n\t}, [] );\n\tconst { setDeviceType } = useDispatch( editorStore );\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\n\t/**\n\t * Save the original editing mode in a ref to restore it when we exit zoom out.\n\t */\n\tconst originalEditingMode = useRef( editorMode );\n\tuseEffect( () => {\n\t\tif ( editorMode !== 'zoom-out' ) {\n\t\t\toriginalEditingMode.current = editorMode;\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (\n\t\t\t\teditorMode === 'zoom-out' &&\n\t\t\t\teditorMode !== originalEditingMode.current\n\t\t\t) {\n\t\t\t\t__unstableSetEditorMode( originalEditingMode.current );\n\t\t\t}\n\t\t};\n\t}, [ editorMode, __unstableSetEditorMode ] );\n\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\tconst popoverProps = {\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'editor-preview-dropdown__toggle',\n\t\ticonPosition: 'right',\n\t\tsize: 'compact',\n\t\tshowTooltip: ! showIconLabels,\n\t\tdisabled,\n\t\taccessibleWhenDisabled: disabled,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tdesktop,\n\t\tmobile,\n\t\ttablet,\n\t};\n\n\t/**\n\t * The choices for the device type.\n\t *\n\t * @type {Array}\n\t */\n\tconst choices = [\n\t\t{\n\t\t\tvalue: 'Desktop',\n\t\t\tlabel: __( 'Desktop' ),\n\t\t\ticon: desktop,\n\t\t},\n\t\t{\n\t\t\tvalue: 'ZoomOut',\n\t\t\tlabel: __( 'Desktop (50%)' ),\n\t\t\ticon: desktop,\n\t\t},\n\t\t{\n\t\t\tvalue: 'Tablet',\n\t\t\tlabel: __( 'Tablet' ),\n\t\t\ticon: tablet,\n\t\t},\n\t\t{\n\t\t\tvalue: 'Mobile',\n\t\t\tlabel: __( 'Mobile' ),\n\t\t\ticon: mobile,\n\t\t},\n\t];\n\n\tconst previewValue = editorMode === 'zoom-out' ? 'ZoomOut' : deviceType;\n\n\t/**\n\t * Handles the selection of a device type.\n\t *\n\t * @param {string} value The device type.\n\t */\n\tconst onSelect = ( value ) => {\n\t\tlet newEditorMode = originalEditingMode.current;\n\n\t\tif ( value === 'ZoomOut' ) {\n\t\t\tnewEditorMode = 'zoom-out';\n\t\t\tsetDeviceType( 'Desktop' );\n\t\t} else {\n\t\t\tsetDeviceType( value );\n\t\t}\n\n\t\t__unstableSetEditorMode( newEditorMode );\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ clsx(\n\t\t\t\t'editor-preview-dropdown',\n\t\t\t\t`editor-preview-dropdown--${ deviceType.toLowerCase() }`\n\t\t\t) }\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\ttext={ editorMode === 'zoom-out' ? __( '50%' ) : undefined }\n\t\t\tlabel={ __( 'View' ) }\n\t\t\tdisableOpenOnArrowDown={ disabled }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ choices }\n\t\t\t\t\t\t\tvalue={ previewValue }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t{ isTemplate && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'View site' ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isViewable && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<PostPreviewButton\n\t\t\t\t\t\t\t\tclassName=\"editor-preview-dropdown__button-external\"\n\t\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\t\tforceIsAutosaveable={ forceIsAutosaveable }\n\t\t\t\t\t\t\t\taria-label={ __( 'Preview in new tab' ) }\n\t\t\t\t\t\t\t\ttextContent={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Preview in new tab' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ external } />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPreview={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,41 +3,37 @@
3
3
  */
4
4
  import { useSelect, useRegistry } from '@wordpress/data';
5
5
  import { store as blockEditorStore } from '@wordpress/block-editor';
6
- import { useEffect } from '@wordpress/element';
6
+ import { useEffect, useMemo } from '@wordpress/element';
7
7
  import { applyFilters } from '@wordpress/hooks';
8
- const DEFAULT_CONTENT_ONLY_BLOCKS = ['core/post-title', 'core/post-featured-image', 'core/post-content', 'core/template-part'];
8
+
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import { store as editorStore } from '../../store';
13
+ import { unlock } from '../../lock-unlock';
14
+ const POST_CONTENT_BLOCK_TYPES = ['core/post-title', 'core/post-featured-image', 'core/post-content'];
9
15
 
10
16
  /**
11
17
  * Component that when rendered, makes it so that the site editor allows only
12
18
  * page content to be edited.
13
19
  */
14
20
  export default function DisableNonPageContentBlocks() {
15
- const contentOnlyBlocks = applyFilters('editor.postContentBlockTypes', DEFAULT_CONTENT_ONLY_BLOCKS);
21
+ const contentOnlyBlockTypes = useMemo(() => [...applyFilters('editor.postContentBlockTypes', POST_CONTENT_BLOCK_TYPES), 'core/template-part'], []);
16
22
 
17
- // Note that there are two separate subscription because the result for each
23
+ // Note that there are two separate subscriptions because the result for each
18
24
  // returns a new array.
19
25
  const contentOnlyIds = useSelect(select => {
20
26
  const {
21
- getBlocksByName,
22
- getBlockParents,
23
- getBlockName
24
- } = select(blockEditorStore);
25
- return getBlocksByName(contentOnlyBlocks).filter(clientId => getBlockParents(clientId).every(parentClientId => {
26
- const parentBlockName = getBlockName(parentClientId);
27
- return (
28
- // Ignore descendents of the query block.
29
- parentBlockName !== 'core/query' &&
30
- // Enable only the top-most block.
31
- !contentOnlyBlocks.includes(parentBlockName)
32
- );
33
- }));
34
- }, []);
27
+ getPostBlocksByName
28
+ } = unlock(select(editorStore));
29
+ return getPostBlocksByName(contentOnlyBlockTypes);
30
+ }, [contentOnlyBlockTypes]);
35
31
  const disabledIds = useSelect(select => {
36
32
  const {
37
33
  getBlocksByName,
38
34
  getBlockOrder
39
35
  } = select(blockEditorStore);
40
- return getBlocksByName(['core/template-part']).flatMap(clientId => getBlockOrder(clientId));
36
+ return getBlocksByName('core/template-part').flatMap(clientId => getBlockOrder(clientId));
41
37
  }, []);
42
38
  const registry = useRegistry();
43
39
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useRegistry","store","blockEditorStore","useEffect","applyFilters","DEFAULT_CONTENT_ONLY_BLOCKS","DisableNonPageContentBlocks","contentOnlyBlocks","contentOnlyIds","select","getBlocksByName","getBlockParents","getBlockName","filter","clientId","every","parentClientId","parentBlockName","includes","disabledIds","getBlockOrder","flatMap","registry","setBlockEditingMode","unsetBlockEditingMode","dispatch","batch"],"sources":["@wordpress/editor/src/components/provider/disable-non-page-content-blocks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\n\nconst DEFAULT_CONTENT_ONLY_BLOCKS = [\n\t'core/post-title',\n\t'core/post-featured-image',\n\t'core/post-content',\n\t'core/template-part',\n];\n\n/**\n * Component that when rendered, makes it so that the site editor allows only\n * page content to be edited.\n */\nexport default function DisableNonPageContentBlocks() {\n\tconst contentOnlyBlocks = applyFilters(\n\t\t'editor.postContentBlockTypes',\n\t\tDEFAULT_CONTENT_ONLY_BLOCKS\n\t);\n\n\t// Note that there are two separate subscription because the result for each\n\t// returns a new array.\n\tconst contentOnlyIds = useSelect( ( select ) => {\n\t\tconst { getBlocksByName, getBlockParents, getBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\treturn getBlocksByName( contentOnlyBlocks ).filter( ( clientId ) =>\n\t\t\tgetBlockParents( clientId ).every( ( parentClientId ) => {\n\t\t\t\tconst parentBlockName = getBlockName( parentClientId );\n\t\t\t\treturn (\n\t\t\t\t\t// Ignore descendents of the query block.\n\t\t\t\t\tparentBlockName !== 'core/query' &&\n\t\t\t\t\t// Enable only the top-most block.\n\t\t\t\t\t! contentOnlyBlocks.includes( parentBlockName )\n\t\t\t\t);\n\t\t\t} )\n\t\t);\n\t}, [] );\n\tconst disabledIds = useSelect( ( select ) => {\n\t\tconst { getBlocksByName, getBlockOrder } = select( blockEditorStore );\n\t\treturn getBlocksByName( [ 'core/template-part' ] ).flatMap(\n\t\t\t( clientId ) => getBlockOrder( clientId )\n\t\t);\n\t}, [] );\n\n\tconst registry = useRegistry();\n\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( '', 'disabled' );\n\t\t\tfor ( const clientId of contentOnlyIds ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'contentOnly' );\n\t\t\t}\n\t\t\tfor ( const clientId of disabledIds ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'disabled' );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tregistry.batch( () => {\n\t\t\t\tunsetBlockEditingMode( '' );\n\t\t\t\tfor ( const clientId of contentOnlyIds ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t\tfor ( const clientId of disabledIds ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t}, [ contentOnlyIds, disabledIds, registry ] );\n\n\treturn null;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,YAAY,QAAQ,kBAAkB;AAE/C,MAAMC,2BAA2B,GAAG,CACnC,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,CACpB;;AAED;AACA;AACA;AACA;AACA,eAAe,SAASC,2BAA2BA,CAAA,EAAG;EACrD,MAAMC,iBAAiB,GAAGH,YAAY,CACrC,8BAA8B,EAC9BC,2BACD,CAAC;;EAED;EACA;EACA,MAAMG,cAAc,GAAGT,SAAS,CAAIU,MAAM,IAAM;IAC/C,MAAM;MAAEC,eAAe;MAAEC,eAAe;MAAEC;IAAa,CAAC,GACvDH,MAAM,CAAEP,gBAAiB,CAAC;IAC3B,OAAOQ,eAAe,CAAEH,iBAAkB,CAAC,CAACM,MAAM,CAAIC,QAAQ,IAC7DH,eAAe,CAAEG,QAAS,CAAC,CAACC,KAAK,CAAIC,cAAc,IAAM;MACxD,MAAMC,eAAe,GAAGL,YAAY,CAAEI,cAAe,CAAC;MACtD;QACC;QACAC,eAAe,KAAK,YAAY;QAChC;QACA,CAAEV,iBAAiB,CAACW,QAAQ,CAAED,eAAgB;MAAC;IAEjD,CAAE,CACH,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAME,WAAW,GAAGpB,SAAS,CAAIU,MAAM,IAAM;IAC5C,MAAM;MAAEC,eAAe;MAAEU;IAAc,CAAC,GAAGX,MAAM,CAAEP,gBAAiB,CAAC;IACrE,OAAOQ,eAAe,CAAE,CAAE,oBAAoB,CAAG,CAAC,CAACW,OAAO,CACvDP,QAAQ,IAAMM,aAAa,CAAEN,QAAS,CACzC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMQ,QAAQ,GAAGtB,WAAW,CAAC,CAAC;EAE9BG,SAAS,CAAE,MAAM;IAChB,MAAM;MAAEoB,mBAAmB;MAAEC;IAAsB,CAAC,GACnDF,QAAQ,CAACG,QAAQ,CAAEvB,gBAAiB,CAAC;IAEtCoB,QAAQ,CAACI,KAAK,CAAE,MAAM;MACrBH,mBAAmB,CAAE,EAAE,EAAE,UAAW,CAAC;MACrC,KAAM,MAAMT,QAAQ,IAAIN,cAAc,EAAG;QACxCe,mBAAmB,CAAET,QAAQ,EAAE,aAAc,CAAC;MAC/C;MACA,KAAM,MAAMA,QAAQ,IAAIK,WAAW,EAAG;QACrCI,mBAAmB,CAAET,QAAQ,EAAE,UAAW,CAAC;MAC5C;IACD,CAAE,CAAC;IAEH,OAAO,MAAM;MACZQ,QAAQ,CAACI,KAAK,CAAE,MAAM;QACrBF,qBAAqB,CAAE,EAAG,CAAC;QAC3B,KAAM,MAAMV,QAAQ,IAAIN,cAAc,EAAG;UACxCgB,qBAAqB,CAAEV,QAAS,CAAC;QAClC;QACA,KAAM,MAAMA,QAAQ,IAAIK,WAAW,EAAG;UACrCK,qBAAqB,CAAEV,QAAS,CAAC;QAClC;MACD,CAAE,CAAC;IACJ,CAAC;EACF,CAAC,EAAE,CAAEN,cAAc,EAAEW,WAAW,EAAEG,QAAQ,CAAG,CAAC;EAE9C,OAAO,IAAI;AACZ","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","useRegistry","store","blockEditorStore","useEffect","useMemo","applyFilters","editorStore","unlock","POST_CONTENT_BLOCK_TYPES","DisableNonPageContentBlocks","contentOnlyBlockTypes","contentOnlyIds","select","getPostBlocksByName","disabledIds","getBlocksByName","getBlockOrder","flatMap","clientId","registry","setBlockEditingMode","unsetBlockEditingMode","dispatch","batch"],"sources":["@wordpress/editor/src/components/provider/disable-non-page-content-blocks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POST_CONTENT_BLOCK_TYPES = [\n\t'core/post-title',\n\t'core/post-featured-image',\n\t'core/post-content',\n];\n\n/**\n * Component that when rendered, makes it so that the site editor allows only\n * page content to be edited.\n */\nexport default function DisableNonPageContentBlocks() {\n\tconst contentOnlyBlockTypes = useMemo(\n\t\t() => [\n\t\t\t...applyFilters(\n\t\t\t\t'editor.postContentBlockTypes',\n\t\t\t\tPOST_CONTENT_BLOCK_TYPES\n\t\t\t),\n\t\t\t'core/template-part',\n\t\t],\n\t\t[]\n\t);\n\n\t// Note that there are two separate subscriptions because the result for each\n\t// returns a new array.\n\tconst contentOnlyIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostBlocksByName } = unlock( select( editorStore ) );\n\t\t\treturn getPostBlocksByName( contentOnlyBlockTypes );\n\t\t},\n\t\t[ contentOnlyBlockTypes ]\n\t);\n\tconst disabledIds = useSelect( ( select ) => {\n\t\tconst { getBlocksByName, getBlockOrder } = select( blockEditorStore );\n\t\treturn getBlocksByName( 'core/template-part' ).flatMap( ( clientId ) =>\n\t\t\tgetBlockOrder( clientId )\n\t\t);\n\t}, [] );\n\n\tconst registry = useRegistry();\n\n\tuseEffect( () => {\n\t\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\t\tregistry.dispatch( blockEditorStore );\n\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( '', 'disabled' );\n\t\t\tfor ( const clientId of contentOnlyIds ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'contentOnly' );\n\t\t\t}\n\t\t\tfor ( const clientId of disabledIds ) {\n\t\t\t\tsetBlockEditingMode( clientId, 'disabled' );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tregistry.batch( () => {\n\t\t\t\tunsetBlockEditingMode( '' );\n\t\t\t\tfor ( const clientId of contentOnlyIds ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t\tfor ( const clientId of disabledIds ) {\n\t\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t}, [ contentOnlyIds, disabledIds, registry ] );\n\n\treturn null;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,SAAS,EAAEC,OAAO,QAAQ,oBAAoB;AACvD,SAASC,YAAY,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,SAASJ,KAAK,IAAIK,WAAW,QAAQ,aAAa;AAClD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAMC,wBAAwB,GAAG,CAChC,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,CACnB;;AAED;AACA;AACA;AACA;AACA,eAAe,SAASC,2BAA2BA,CAAA,EAAG;EACrD,MAAMC,qBAAqB,GAAGN,OAAO,CACpC,MAAM,CACL,GAAGC,YAAY,CACd,8BAA8B,EAC9BG,wBACD,CAAC,EACD,oBAAoB,CACpB,EACD,EACD,CAAC;;EAED;EACA;EACA,MAAMG,cAAc,GAAGZ,SAAS,CAC7Ba,MAAM,IAAM;IACb,MAAM;MAAEC;IAAoB,CAAC,GAAGN,MAAM,CAAEK,MAAM,CAAEN,WAAY,CAAE,CAAC;IAC/D,OAAOO,mBAAmB,CAAEH,qBAAsB,CAAC;EACpD,CAAC,EACD,CAAEA,qBAAqB,CACxB,CAAC;EACD,MAAMI,WAAW,GAAGf,SAAS,CAAIa,MAAM,IAAM;IAC5C,MAAM;MAAEG,eAAe;MAAEC;IAAc,CAAC,GAAGJ,MAAM,CAAEV,gBAAiB,CAAC;IACrE,OAAOa,eAAe,CAAE,oBAAqB,CAAC,CAACE,OAAO,CAAIC,QAAQ,IACjEF,aAAa,CAAEE,QAAS,CACzB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,QAAQ,GAAGnB,WAAW,CAAC,CAAC;EAE9BG,SAAS,CAAE,MAAM;IAChB,MAAM;MAAEiB,mBAAmB;MAAEC;IAAsB,CAAC,GACnDF,QAAQ,CAACG,QAAQ,CAAEpB,gBAAiB,CAAC;IAEtCiB,QAAQ,CAACI,KAAK,CAAE,MAAM;MACrBH,mBAAmB,CAAE,EAAE,EAAE,UAAW,CAAC;MACrC,KAAM,MAAMF,QAAQ,IAAIP,cAAc,EAAG;QACxCS,mBAAmB,CAAEF,QAAQ,EAAE,aAAc,CAAC;MAC/C;MACA,KAAM,MAAMA,QAAQ,IAAIJ,WAAW,EAAG;QACrCM,mBAAmB,CAAEF,QAAQ,EAAE,UAAW,CAAC;MAC5C;IACD,CAAE,CAAC;IAEH,OAAO,MAAM;MACZC,QAAQ,CAACI,KAAK,CAAE,MAAM;QACrBF,qBAAqB,CAAE,EAAG,CAAC;QAC3B,KAAM,MAAMH,QAAQ,IAAIP,cAAc,EAAG;UACxCU,qBAAqB,CAAEH,QAAS,CAAC;QAClC;QACA,KAAM,MAAMA,QAAQ,IAAIJ,WAAW,EAAG;UACrCO,qBAAqB,CAAEH,QAAS,CAAC;QAClC;MACD,CAAE,CAAC;IACJ,CAAC;EACF,CAAC,EAAE,CAAEP,cAAc,EAAEG,WAAW,EAAEK,QAAQ,CAAG,CAAC;EAE9C,OAAO,IAAI;AACZ","ignoreList":[]}
@@ -8,7 +8,6 @@ import { useSelect } from '@wordpress/data';
8
8
  * Internal dependencies
9
9
  */
10
10
  import PluginPostStatusInfo from '../plugin-post-status-info';
11
- import PostActions from '../post-actions';
12
11
  import PostAuthorPanel from '../post-author/panel';
13
12
  import PostCardPanel from '../post-card-panel';
14
13
  import PostContentInformation from '../post-content-information';
@@ -41,17 +40,21 @@ export default function PostSummary({
41
40
  onActionPerformed
42
41
  }) {
43
42
  const {
44
- isRemovedPostStatusPanel
43
+ isRemovedPostStatusPanel,
44
+ postType,
45
+ postId
45
46
  } = useSelect(select => {
46
47
  // We use isEditorPanelRemoved to hide the panel if it was programatically removed. We do
47
48
  // not use isEditorPanelEnabled since this panel should not be disabled through the UI.
48
49
  const {
49
50
  isEditorPanelRemoved,
50
- getCurrentPostType
51
+ getCurrentPostType,
52
+ getCurrentPostId
51
53
  } = select(editorStore);
52
54
  return {
53
55
  isRemovedPostStatusPanel: isEditorPanelRemoved(PANEL_NAME),
54
- postType: getCurrentPostType()
56
+ postType: getCurrentPostType(),
57
+ postId: getCurrentPostId()
55
58
  };
56
59
  }, []);
57
60
  return /*#__PURE__*/_jsx(PostPanelSection, {
@@ -61,9 +64,9 @@ export default function PostSummary({
61
64
  children: /*#__PURE__*/_jsxs(VStack, {
62
65
  spacing: 4,
63
66
  children: [/*#__PURE__*/_jsx(PostCardPanel, {
64
- actions: /*#__PURE__*/_jsx(PostActions, {
65
- onActionPerformed: onActionPerformed
66
- })
67
+ postType: postType,
68
+ postId: postId,
69
+ onActionPerformed: onActionPerformed
67
70
  }), /*#__PURE__*/_jsx(PostFeaturedImagePanel, {
68
71
  withPanelBody: false
69
72
  }), /*#__PURE__*/_jsx(PostExcerptPanel, {}), /*#__PURE__*/_jsxs(VStack, {