@wordpress/editor 14.48.0 → 14.48.2-next.v.202606191442.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 (509) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/build/bindings/pattern-overrides.cjs +1 -1
  3. package/build/bindings/pattern-overrides.cjs.map +2 -2
  4. package/build/components/block-removal-warnings/index.cjs +0 -3
  5. package/build/components/block-removal-warnings/index.cjs.map +2 -2
  6. package/build/components/collab-sidebar/note-byline.cjs +1 -1
  7. package/build/components/collab-sidebar/note-byline.cjs.map +2 -2
  8. package/build/components/collab-sidebar/note-indicator-toolbar.cjs +49 -43
  9. package/build/components/collab-sidebar/note-indicator-toolbar.cjs.map +3 -3
  10. package/build/components/collab-sidebar/note.cjs +49 -17
  11. package/build/components/collab-sidebar/note.cjs.map +3 -3
  12. package/build/components/collab-sidebar/notes.cjs.map +1 -1
  13. package/build/components/collab-sidebar/utils.cjs +1 -1
  14. package/build/components/collab-sidebar/utils.cjs.map +2 -2
  15. package/build/components/collaborators-overlay/avatar-iframe-styles.cjs.map +1 -1
  16. package/build/components/collaborators-overlay/collaborator-styles.cjs.map +1 -1
  17. package/build/components/collaborators-overlay/compute-selection.cjs.map +1 -1
  18. package/build/components/collaborators-overlay/overlay-iframe-styles.cjs +1 -1
  19. package/build/components/collaborators-overlay/overlay-iframe-styles.cjs.map +1 -1
  20. package/build/components/collaborators-overlay/use-block-highlighting.cjs +1 -8
  21. package/build/components/collaborators-overlay/use-block-highlighting.cjs.map +3 -3
  22. package/build/components/collaborators-overlay/use-render-cursors.cjs +1 -7
  23. package/build/components/collaborators-overlay/use-render-cursors.cjs.map +3 -3
  24. package/build/components/collaborators-presence/avatar/component.cjs.map +2 -2
  25. package/build/components/collaborators-presence/avatar/use-image-loading-status.cjs.map +1 -1
  26. package/build/components/document-bar/index.cjs +7 -5
  27. package/build/components/document-bar/index.cjs.map +2 -2
  28. package/build/components/global-keyboard-shortcuts/index.cjs +3 -2
  29. package/build/components/global-keyboard-shortcuts/index.cjs.map +2 -2
  30. package/build/components/global-styles-sidebar/welcome-guide.cjs +3 -3
  31. package/build/components/global-styles-sidebar/welcome-guide.cjs.map +1 -1
  32. package/build/components/local-autosave-monitor/index.cjs +14 -15
  33. package/build/components/local-autosave-monitor/index.cjs.map +2 -2
  34. package/build/components/more-menu/view-more-menu-group.cjs +1 -2
  35. package/build/components/more-menu/view-more-menu-group.cjs.map +2 -2
  36. package/build/components/page-attributes/parent.cjs +2 -1
  37. package/build/components/page-attributes/parent.cjs.map +2 -2
  38. package/build/components/post-card-panel/index.cjs +1 -1
  39. package/build/components/post-card-panel/index.cjs.map +2 -2
  40. package/build/components/post-excerpt/panel.cjs +1 -1
  41. package/build/components/post-excerpt/panel.cjs.map +2 -2
  42. package/build/components/post-locked-modal/index.cjs +3 -3
  43. package/build/components/post-locked-modal/index.cjs.map +1 -1
  44. package/build/components/post-preview-button/index.cjs +2 -2
  45. package/build/components/post-preview-button/index.cjs.map +2 -2
  46. package/build/components/post-publish-button/index.cjs +115 -157
  47. package/build/components/post-publish-button/index.cjs.map +3 -3
  48. package/build/components/post-publish-button/label.cjs +2 -2
  49. package/build/components/post-publish-button/label.cjs.map +2 -2
  50. package/build/components/post-publish-panel/index.cjs.map +1 -1
  51. package/build/components/post-publish-panel/postpublish.cjs +1 -1
  52. package/build/components/post-publish-panel/postpublish.cjs.map +2 -2
  53. package/build/components/post-revisions-preview/block-diff.cjs +21 -9
  54. package/build/components/post-revisions-preview/block-diff.cjs.map +2 -2
  55. package/build/components/post-revisions-preview/diff-markers.cjs.map +2 -2
  56. package/build/components/post-revisions-preview/preserve-client-ids.cjs +2 -2
  57. package/build/components/post-revisions-preview/preserve-client-ids.cjs.map +2 -2
  58. package/build/components/post-revisions-preview/revisions-slider.cjs +1 -1
  59. package/build/components/post-revisions-preview/revisions-slider.cjs.map +2 -2
  60. package/build/components/post-revisions-timeline/index.cjs +173 -0
  61. package/build/components/post-revisions-timeline/index.cjs.map +7 -0
  62. package/build/components/post-saved-state/index.cjs +17 -26
  63. package/build/components/post-saved-state/index.cjs.map +2 -2
  64. package/build/components/post-schedule/label.cjs +5 -5
  65. package/build/components/post-schedule/label.cjs.map +1 -1
  66. package/build/components/post-taxonomies/flat-term-selector.cjs +2 -1
  67. package/build/components/post-taxonomies/flat-term-selector.cjs.map +3 -3
  68. package/build/components/post-taxonomies/hierarchical-term-selector.cjs +1 -1
  69. package/build/components/post-taxonomies/hierarchical-term-selector.cjs.map +2 -2
  70. package/build/components/post-text-editor/index.cjs +51 -0
  71. package/build/components/post-text-editor/index.cjs.map +2 -2
  72. package/build/components/post-text-editor/utils.cjs +150 -0
  73. package/build/components/post-text-editor/utils.cjs.map +7 -0
  74. package/build/components/post-url/index.cjs +1 -1
  75. package/build/components/post-url/index.cjs.map +2 -2
  76. package/build/components/post-view-link/index.cjs +1 -1
  77. package/build/components/post-view-link/index.cjs.map +2 -2
  78. package/build/components/provider/disable-non-page-content-blocks.cjs.map +1 -1
  79. package/build/components/provider/index.cjs +3 -1
  80. package/build/components/provider/index.cjs.map +3 -3
  81. package/build/components/provider/use-network-reconnect.cjs +51 -0
  82. package/build/components/provider/use-network-reconnect.cjs.map +7 -0
  83. package/build/components/resizable-editor/resize-handle.cjs.map +2 -2
  84. package/build/components/revision-diff-panel/index.cjs +7 -2
  85. package/build/components/revision-diff-panel/index.cjs.map +2 -2
  86. package/build/components/revision-fields-diff/index.cjs +8 -4
  87. package/build/components/revision-fields-diff/index.cjs.map +2 -2
  88. package/build/components/sidebar/dataform-post-summary.cjs +125 -20
  89. package/build/components/sidebar/dataform-post-summary.cjs.map +3 -3
  90. package/build/components/sidebar/index.cjs +2 -15
  91. package/build/components/sidebar/index.cjs.map +3 -3
  92. package/build/components/sidebar/post-revision-summary.cjs +11 -17
  93. package/build/components/sidebar/post-revision-summary.cjs.map +3 -3
  94. package/build/components/sidebar/post-summary.cjs +1 -1
  95. package/build/components/sidebar/post-summary.cjs.map +2 -2
  96. package/build/components/style-book/examples.cjs +1 -1
  97. package/build/components/style-book/examples.cjs.map +1 -1
  98. package/build/components/style-book/index.cjs +1 -1
  99. package/build/components/style-book/index.cjs.map +2 -2
  100. package/build/components/sync-connection-error-modal/index.cjs +3 -3
  101. package/build/components/sync-connection-error-modal/index.cjs.map +1 -1
  102. package/build/components/template-actions-panel/block-theme-content.cjs +7 -1
  103. package/build/components/template-actions-panel/block-theme-content.cjs.map +2 -2
  104. package/build/components/template-actions-panel/index.cjs +0 -9
  105. package/build/components/template-actions-panel/index.cjs.map +3 -3
  106. package/build/components/template-validation-notice/index.cjs +1 -1
  107. package/build/components/template-validation-notice/index.cjs.map +1 -1
  108. package/build/components/upload-progress-snackbar/index.cjs +161 -0
  109. package/build/components/upload-progress-snackbar/index.cjs.map +7 -0
  110. package/build/components/upload-progress-snackbar/tracker.cjs +90 -0
  111. package/build/components/upload-progress-snackbar/tracker.cjs.map +7 -0
  112. package/build/components/visual-editor/edit-template-blocks-notification.cjs +1 -1
  113. package/build/components/visual-editor/edit-template-blocks-notification.cjs.map +1 -1
  114. package/build/{components/revision-author-panel → dataviews/fields/revisions}/index.cjs +18 -26
  115. package/build/dataviews/fields/revisions/index.cjs.map +7 -0
  116. package/build/dataviews/fields/revisions/revisions-view.cjs +74 -0
  117. package/build/dataviews/fields/revisions/revisions-view.cjs.map +7 -0
  118. package/build/dataviews/store/private-actions.cjs +14 -4
  119. package/build/dataviews/store/private-actions.cjs.map +3 -3
  120. package/build/hooks/push-changes-to-global-styles/index.cjs +1 -1
  121. package/build/hooks/push-changes-to-global-styles/index.cjs.map +1 -1
  122. package/build/private-apis.cjs +2 -0
  123. package/build/private-apis.cjs.map +3 -3
  124. package/build/store/actions.cjs +1 -1
  125. package/build/store/actions.cjs.map +2 -2
  126. package/build/store/private-selectors.cjs +6 -1
  127. package/build/store/private-selectors.cjs.map +2 -2
  128. package/build/store/selectors.cjs +1 -2
  129. package/build/store/selectors.cjs.map +2 -2
  130. package/build/utils/media-upload/index.cjs +16 -0
  131. package/build/utils/media-upload/index.cjs.map +3 -3
  132. package/build/utils/set-nested-value.cjs.map +1 -1
  133. package/build-module/bindings/pattern-overrides.mjs +1 -1
  134. package/build-module/bindings/pattern-overrides.mjs.map +2 -2
  135. package/build-module/components/block-removal-warnings/index.mjs +0 -3
  136. package/build-module/components/block-removal-warnings/index.mjs.map +2 -2
  137. package/build-module/components/collab-sidebar/note-byline.mjs +1 -1
  138. package/build-module/components/collab-sidebar/note-byline.mjs.map +2 -2
  139. package/build-module/components/collab-sidebar/note-indicator-toolbar.mjs +53 -44
  140. package/build-module/components/collab-sidebar/note-indicator-toolbar.mjs.map +2 -2
  141. package/build-module/components/collab-sidebar/note.mjs +50 -18
  142. package/build-module/components/collab-sidebar/note.mjs.map +2 -2
  143. package/build-module/components/collab-sidebar/notes.mjs.map +1 -1
  144. package/build-module/components/collab-sidebar/utils.mjs +1 -1
  145. package/build-module/components/collab-sidebar/utils.mjs.map +2 -2
  146. package/build-module/components/collaborators-overlay/avatar-iframe-styles.mjs.map +1 -1
  147. package/build-module/components/collaborators-overlay/collaborator-styles.mjs.map +1 -1
  148. package/build-module/components/collaborators-overlay/compute-selection.mjs.map +1 -1
  149. package/build-module/components/collaborators-overlay/overlay-iframe-styles.mjs +1 -1
  150. package/build-module/components/collaborators-overlay/overlay-iframe-styles.mjs.map +1 -1
  151. package/build-module/components/collaborators-overlay/use-block-highlighting.mjs +1 -8
  152. package/build-module/components/collaborators-overlay/use-block-highlighting.mjs.map +2 -2
  153. package/build-module/components/collaborators-overlay/use-render-cursors.mjs +1 -7
  154. package/build-module/components/collaborators-overlay/use-render-cursors.mjs.map +2 -2
  155. package/build-module/components/collaborators-presence/avatar/component.mjs.map +2 -2
  156. package/build-module/components/collaborators-presence/avatar/use-image-loading-status.mjs.map +1 -1
  157. package/build-module/components/document-bar/index.mjs +7 -5
  158. package/build-module/components/document-bar/index.mjs.map +2 -2
  159. package/build-module/components/global-keyboard-shortcuts/index.mjs +3 -2
  160. package/build-module/components/global-keyboard-shortcuts/index.mjs.map +2 -2
  161. package/build-module/components/global-styles-sidebar/welcome-guide.mjs +3 -3
  162. package/build-module/components/global-styles-sidebar/welcome-guide.mjs.map +1 -1
  163. package/build-module/components/local-autosave-monitor/index.mjs +15 -16
  164. package/build-module/components/local-autosave-monitor/index.mjs.map +2 -2
  165. package/build-module/components/more-menu/view-more-menu-group.mjs +1 -2
  166. package/build-module/components/more-menu/view-more-menu-group.mjs.map +2 -2
  167. package/build-module/components/page-attributes/parent.mjs +2 -1
  168. package/build-module/components/page-attributes/parent.mjs.map +2 -2
  169. package/build-module/components/post-card-panel/index.mjs +1 -1
  170. package/build-module/components/post-card-panel/index.mjs.map +2 -2
  171. package/build-module/components/post-excerpt/panel.mjs +1 -1
  172. package/build-module/components/post-excerpt/panel.mjs.map +2 -2
  173. package/build-module/components/post-locked-modal/index.mjs +3 -3
  174. package/build-module/components/post-locked-modal/index.mjs.map +1 -1
  175. package/build-module/components/post-preview-button/index.mjs +2 -2
  176. package/build-module/components/post-preview-button/index.mjs.map +2 -2
  177. package/build-module/components/post-publish-button/index.mjs +117 -159
  178. package/build-module/components/post-publish-button/index.mjs.map +2 -2
  179. package/build-module/components/post-publish-button/label.mjs +2 -2
  180. package/build-module/components/post-publish-button/label.mjs.map +2 -2
  181. package/build-module/components/post-publish-panel/index.mjs.map +1 -1
  182. package/build-module/components/post-publish-panel/postpublish.mjs +1 -1
  183. package/build-module/components/post-publish-panel/postpublish.mjs.map +2 -2
  184. package/build-module/components/post-revisions-preview/block-diff.mjs +20 -8
  185. package/build-module/components/post-revisions-preview/block-diff.mjs.map +2 -2
  186. package/build-module/components/post-revisions-preview/diff-markers.mjs.map +2 -2
  187. package/build-module/components/post-revisions-preview/preserve-client-ids.mjs +1 -1
  188. package/build-module/components/post-revisions-preview/preserve-client-ids.mjs.map +1 -1
  189. package/build-module/components/post-revisions-preview/revisions-slider.mjs +1 -1
  190. package/build-module/components/post-revisions-preview/revisions-slider.mjs.map +2 -2
  191. package/build-module/components/post-revisions-timeline/index.mjs +152 -0
  192. package/build-module/components/post-revisions-timeline/index.mjs.map +7 -0
  193. package/build-module/components/post-saved-state/index.mjs +17 -26
  194. package/build-module/components/post-saved-state/index.mjs.map +2 -2
  195. package/build-module/components/post-schedule/label.mjs +5 -5
  196. package/build-module/components/post-schedule/label.mjs.map +1 -1
  197. package/build-module/components/post-taxonomies/flat-term-selector.mjs +3 -6
  198. package/build-module/components/post-taxonomies/flat-term-selector.mjs.map +2 -2
  199. package/build-module/components/post-taxonomies/hierarchical-term-selector.mjs +1 -1
  200. package/build-module/components/post-taxonomies/hierarchical-term-selector.mjs.map +2 -2
  201. package/build-module/components/post-text-editor/index.mjs +51 -0
  202. package/build-module/components/post-text-editor/index.mjs.map +2 -2
  203. package/build-module/components/post-text-editor/utils.mjs +123 -0
  204. package/build-module/components/post-text-editor/utils.mjs.map +7 -0
  205. package/build-module/components/post-url/index.mjs +1 -1
  206. package/build-module/components/post-url/index.mjs.map +2 -2
  207. package/build-module/components/post-view-link/index.mjs +1 -1
  208. package/build-module/components/post-view-link/index.mjs.map +2 -2
  209. package/build-module/components/provider/disable-non-page-content-blocks.mjs.map +1 -1
  210. package/build-module/components/provider/index.mjs +3 -1
  211. package/build-module/components/provider/index.mjs.map +2 -2
  212. package/build-module/components/provider/use-network-reconnect.mjs +30 -0
  213. package/build-module/components/provider/use-network-reconnect.mjs.map +7 -0
  214. package/build-module/components/resizable-editor/resize-handle.mjs.map +2 -2
  215. package/build-module/components/revision-diff-panel/index.mjs +7 -2
  216. package/build-module/components/revision-diff-panel/index.mjs.map +2 -2
  217. package/build-module/components/revision-fields-diff/index.mjs +8 -4
  218. package/build-module/components/revision-fields-diff/index.mjs.map +2 -2
  219. package/build-module/components/sidebar/dataform-post-summary.mjs +125 -20
  220. package/build-module/components/sidebar/dataform-post-summary.mjs.map +2 -2
  221. package/build-module/components/sidebar/index.mjs +3 -22
  222. package/build-module/components/sidebar/index.mjs.map +2 -2
  223. package/build-module/components/sidebar/post-revision-summary.mjs +11 -17
  224. package/build-module/components/sidebar/post-revision-summary.mjs.map +2 -2
  225. package/build-module/components/sidebar/post-summary.mjs +1 -1
  226. package/build-module/components/sidebar/post-summary.mjs.map +2 -2
  227. package/build-module/components/style-book/examples.mjs +1 -1
  228. package/build-module/components/style-book/examples.mjs.map +1 -1
  229. package/build-module/components/style-book/index.mjs +1 -1
  230. package/build-module/components/style-book/index.mjs.map +2 -2
  231. package/build-module/components/sync-connection-error-modal/index.mjs +3 -3
  232. package/build-module/components/sync-connection-error-modal/index.mjs.map +1 -1
  233. package/build-module/components/template-actions-panel/block-theme-content.mjs +7 -1
  234. package/build-module/components/template-actions-panel/block-theme-content.mjs.map +2 -2
  235. package/build-module/components/template-actions-panel/index.mjs +0 -9
  236. package/build-module/components/template-actions-panel/index.mjs.map +2 -2
  237. package/build-module/components/template-validation-notice/index.mjs +1 -1
  238. package/build-module/components/template-validation-notice/index.mjs.map +1 -1
  239. package/build-module/components/upload-progress-snackbar/index.mjs +135 -0
  240. package/build-module/components/upload-progress-snackbar/index.mjs.map +7 -0
  241. package/build-module/components/upload-progress-snackbar/tracker.mjs +61 -0
  242. package/build-module/components/upload-progress-snackbar/tracker.mjs.map +7 -0
  243. package/build-module/components/visual-editor/edit-template-blocks-notification.mjs +1 -1
  244. package/build-module/components/visual-editor/edit-template-blocks-notification.mjs.map +1 -1
  245. package/build-module/dataviews/fields/revisions/index.mjs +20 -0
  246. package/build-module/dataviews/fields/revisions/index.mjs.map +7 -0
  247. package/build-module/dataviews/fields/revisions/revisions-view.mjs +53 -0
  248. package/build-module/dataviews/fields/revisions/revisions-view.mjs.map +7 -0
  249. package/build-module/dataviews/store/private-actions.mjs +23 -7
  250. package/build-module/dataviews/store/private-actions.mjs.map +2 -2
  251. package/build-module/hooks/push-changes-to-global-styles/index.mjs +1 -1
  252. package/build-module/hooks/push-changes-to-global-styles/index.mjs.map +1 -1
  253. package/build-module/private-apis.mjs +2 -0
  254. package/build-module/private-apis.mjs.map +2 -2
  255. package/build-module/store/actions.mjs +1 -1
  256. package/build-module/store/actions.mjs.map +2 -2
  257. package/build-module/store/private-selectors.mjs +7 -1
  258. package/build-module/store/private-selectors.mjs.map +2 -2
  259. package/build-module/store/selectors.mjs +1 -2
  260. package/build-module/store/selectors.mjs.map +2 -2
  261. package/build-module/utils/media-upload/index.mjs +19 -0
  262. package/build-module/utils/media-upload/index.mjs.map +2 -2
  263. package/build-module/utils/set-nested-value.mjs.map +1 -1
  264. package/build-style/style-rtl.css +707 -270
  265. package/build-style/style.css +707 -270
  266. package/build-types/components/block-removal-warnings/index.d.ts.map +1 -1
  267. package/build-types/components/collab-sidebar/note-byline.d.ts +0 -3
  268. package/build-types/components/collab-sidebar/note-byline.d.ts.map +1 -1
  269. package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts.map +1 -1
  270. package/build-types/components/collab-sidebar/note.d.ts.map +1 -1
  271. package/build-types/components/collaborators-overlay/use-block-highlighting.d.ts +0 -3
  272. package/build-types/components/collaborators-overlay/use-block-highlighting.d.ts.map +1 -1
  273. package/build-types/components/collaborators-overlay/use-render-cursors.d.ts.map +1 -1
  274. package/build-types/components/collaborators-presence/avatar/component.d.ts.map +1 -1
  275. package/build-types/components/document-bar/index.d.ts.map +1 -1
  276. package/build-types/components/global-keyboard-shortcuts/index.d.ts.map +1 -1
  277. package/build-types/components/local-autosave-monitor/index.d.ts.map +1 -1
  278. package/build-types/components/more-menu/view-more-menu-group.d.ts.map +1 -1
  279. package/build-types/components/page-attributes/parent.d.ts.map +1 -1
  280. package/build-types/components/post-publish-button/index.d.ts +9 -9
  281. package/build-types/components/post-publish-button/index.d.ts.map +1 -1
  282. package/build-types/components/post-revisions-preview/block-diff.d.ts +3 -0
  283. package/build-types/components/post-revisions-preview/block-diff.d.ts.map +1 -1
  284. package/build-types/components/post-revisions-preview/diff-markers.d.ts.map +1 -1
  285. package/build-types/components/post-revisions-timeline/index.d.ts +2 -0
  286. package/build-types/components/post-revisions-timeline/index.d.ts.map +1 -0
  287. package/build-types/components/post-saved-state/index.d.ts.map +1 -1
  288. package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
  289. package/build-types/components/post-text-editor/index.d.ts.map +1 -1
  290. package/build-types/components/post-text-editor/utils.d.ts +29 -0
  291. package/build-types/components/post-text-editor/utils.d.ts.map +1 -0
  292. package/build-types/components/provider/index.d.ts.map +1 -1
  293. package/build-types/components/provider/use-network-reconnect.d.ts +8 -0
  294. package/build-types/components/provider/use-network-reconnect.d.ts.map +1 -0
  295. package/build-types/components/resizable-editor/resize-handle.d.ts.map +1 -1
  296. package/build-types/components/revision-diff-panel/index.d.ts +3 -1
  297. package/build-types/components/revision-diff-panel/index.d.ts.map +1 -1
  298. package/build-types/components/revision-fields-diff/index.d.ts +3 -0
  299. package/build-types/components/revision-fields-diff/index.d.ts.map +1 -1
  300. package/build-types/components/sidebar/dataform-post-summary.d.ts.map +1 -1
  301. package/build-types/components/sidebar/index.d.ts.map +1 -1
  302. package/build-types/components/sidebar/post-revision-summary.d.ts.map +1 -1
  303. package/build-types/components/template-actions-panel/block-theme-content.d.ts.map +1 -1
  304. package/build-types/components/template-actions-panel/index.d.ts.map +1 -1
  305. package/build-types/components/upload-progress-snackbar/index.d.ts +19 -0
  306. package/build-types/components/upload-progress-snackbar/index.d.ts.map +1 -0
  307. package/build-types/components/upload-progress-snackbar/stories/index.story.d.ts +28 -0
  308. package/build-types/components/upload-progress-snackbar/stories/index.story.d.ts.map +1 -0
  309. package/build-types/components/upload-progress-snackbar/tracker.d.ts +41 -0
  310. package/build-types/components/upload-progress-snackbar/tracker.d.ts.map +1 -0
  311. package/build-types/dataviews/fields/revisions/index.d.ts +8 -0
  312. package/build-types/dataviews/fields/revisions/index.d.ts.map +1 -0
  313. package/build-types/dataviews/fields/revisions/revisions-view.d.ts +2 -0
  314. package/build-types/dataviews/fields/revisions/revisions-view.d.ts.map +1 -0
  315. package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
  316. package/build-types/private-apis.d.ts.map +1 -1
  317. package/build-types/store/private-selectors.d.ts +1 -1
  318. package/build-types/store/private-selectors.d.ts.map +1 -1
  319. package/build-types/store/selectors.d.ts +1 -1
  320. package/build-types/store/selectors.d.ts.map +1 -1
  321. package/build-types/utils/get-template-part-icon.d.ts.map +1 -1
  322. package/build-types/utils/media-upload/index.d.ts.map +1 -1
  323. package/package.json +59 -50
  324. package/src/bindings/pattern-overrides.js +1 -1
  325. package/src/bindings/test/pattern-overrides.js +65 -0
  326. package/src/components/README.md +1 -1
  327. package/src/components/block-removal-warnings/index.js +0 -7
  328. package/src/components/collab-sidebar/note-byline.js +0 -1
  329. package/src/components/collab-sidebar/note-indicator-toolbar.js +73 -60
  330. package/src/components/collab-sidebar/note.js +64 -29
  331. package/src/components/collab-sidebar/style.scss +20 -0
  332. package/src/components/collaborators-overlay/use-block-highlighting.ts +0 -9
  333. package/src/components/collaborators-overlay/use-render-cursors.ts +0 -8
  334. package/src/components/collaborators-presence/avatar/component.tsx +0 -1
  335. package/src/components/collaborators-presence/avatar/test/index.tsx +8 -4
  336. package/src/components/document-bar/index.js +8 -3
  337. package/src/components/document-bar/style.scss +4 -2
  338. package/src/components/global-keyboard-shortcuts/index.js +2 -1
  339. package/src/components/local-autosave-monitor/index.js +23 -21
  340. package/src/components/more-menu/view-more-menu-group.js +1 -2
  341. package/src/components/page-attributes/parent.js +1 -0
  342. package/src/components/post-card-panel/index.js +1 -1
  343. package/src/components/post-publish-button/index.js +146 -192
  344. package/src/components/post-publish-button/test/index.js +149 -113
  345. package/src/components/post-revisions-preview/block-diff.js +63 -19
  346. package/src/components/post-revisions-preview/diff-markers.js +0 -1
  347. package/src/components/post-revisions-preview/preserve-client-ids.js +1 -1
  348. package/src/components/post-revisions-preview/test/block-diff.js +109 -6
  349. package/src/components/post-revisions-timeline/index.js +186 -0
  350. package/src/components/post-revisions-timeline/style.scss +43 -0
  351. package/src/components/post-saved-state/index.js +23 -26
  352. package/src/components/post-saved-state/test/index.js +18 -0
  353. package/src/components/post-taxonomies/flat-term-selector.js +4 -7
  354. package/src/components/post-text-editor/index.js +65 -0
  355. package/src/components/post-text-editor/test/utils.js +210 -0
  356. package/src/components/post-text-editor/utils.js +204 -0
  357. package/src/components/post-type-support-check/test/index.js +11 -0
  358. package/src/components/post-url/index.js +1 -1
  359. package/src/components/post-view-link/index.js +1 -1
  360. package/src/components/post-view-link/test/index.js +71 -0
  361. package/src/components/provider/index.js +6 -1
  362. package/src/components/provider/test/use-network-reconnect.js +137 -0
  363. package/src/components/provider/use-network-reconnect.js +44 -0
  364. package/src/components/resizable-editor/resize-handle.js +0 -1
  365. package/src/components/revision-diff-panel/index.js +8 -2
  366. package/src/components/revision-fields-diff/index.js +19 -3
  367. package/src/components/sidebar/dataform-post-summary.js +196 -25
  368. package/src/components/sidebar/index.js +4 -23
  369. package/src/components/sidebar/post-revision-summary.js +8 -15
  370. package/src/components/sidebar/post-summary.js +1 -1
  371. package/src/components/style-book/index.js +1 -1
  372. package/src/components/template-actions-panel/block-theme-content.js +10 -2
  373. package/src/components/template-actions-panel/index.js +0 -15
  374. package/src/components/upload-progress-snackbar/README.md +26 -0
  375. package/src/components/upload-progress-snackbar/index.js +216 -0
  376. package/src/components/upload-progress-snackbar/stories/index.story.tsx +85 -0
  377. package/src/components/upload-progress-snackbar/style.scss +30 -0
  378. package/src/components/upload-progress-snackbar/test/index.js +199 -0
  379. package/src/components/upload-progress-snackbar/tracker.js +105 -0
  380. package/src/dataviews/fields/revisions/index.tsx +28 -0
  381. package/src/dataviews/fields/revisions/revisions-view.tsx +59 -0
  382. package/src/dataviews/store/private-actions.ts +27 -6
  383. package/src/private-apis.js +2 -0
  384. package/src/store/private-selectors.js +11 -1
  385. package/src/store/selectors.js +1 -3
  386. package/src/store/test/private-selectors.js +69 -0
  387. package/src/style.scss +2 -1
  388. package/src/utils/media-upload/index.js +27 -0
  389. package/build/components/post-revisions-panel/index.cjs +0 -173
  390. package/build/components/post-revisions-panel/index.cjs.map +0 -7
  391. package/build/components/revision-author-panel/index.cjs.map +0 -7
  392. package/build/components/revision-created-panel/index.cjs +0 -47
  393. package/build/components/revision-created-panel/index.cjs.map +0 -7
  394. package/build-module/components/post-revisions-panel/index.mjs +0 -148
  395. package/build-module/components/post-revisions-panel/index.mjs.map +0 -7
  396. package/build-module/components/revision-author-panel/index.mjs +0 -28
  397. package/build-module/components/revision-author-panel/index.mjs.map +0 -7
  398. package/build-module/components/revision-created-panel/index.mjs +0 -26
  399. package/build-module/components/revision-created-panel/index.mjs.map +0 -7
  400. package/build-types/components/post-revisions-panel/index.d.ts +0 -2
  401. package/build-types/components/post-revisions-panel/index.d.ts.map +0 -1
  402. package/build-types/components/revision-author-panel/index.d.ts +0 -2
  403. package/build-types/components/revision-author-panel/index.d.ts.map +0 -1
  404. package/build-types/components/revision-created-panel/index.d.ts +0 -2
  405. package/build-types/components/revision-created-panel/index.d.ts.map +0 -1
  406. package/src/components/commands/index.native.js +0 -2
  407. package/src/components/deprecated.native.js +0 -47
  408. package/src/components/editor-help/add-blocks.native.js +0 -40
  409. package/src/components/editor-help/customize-blocks.native.js +0 -40
  410. package/src/components/editor-help/help-detail-navigation-screen.native.js +0 -67
  411. package/src/components/editor-help/help-get-support-button.native.js +0 -38
  412. package/src/components/editor-help/help-section-title.native.js +0 -29
  413. package/src/components/editor-help/help-topic-row.native.js +0 -33
  414. package/src/components/editor-help/icon-move-blocks.native.js +0 -10
  415. package/src/components/editor-help/images/add-dark.png +0 -0
  416. package/src/components/editor-help/images/add-dark@2x.png +0 -0
  417. package/src/components/editor-help/images/add-dark@3x.png +0 -0
  418. package/src/components/editor-help/images/add-light.png +0 -0
  419. package/src/components/editor-help/images/add-light@2x.png +0 -0
  420. package/src/components/editor-help/images/add-light@3x.png +0 -0
  421. package/src/components/editor-help/images/block-layout-collage.png +0 -0
  422. package/src/components/editor-help/images/block-layout-collage@2x.png +0 -0
  423. package/src/components/editor-help/images/block-layout-collage@3x.png +0 -0
  424. package/src/components/editor-help/images/build-layouts-dark.png +0 -0
  425. package/src/components/editor-help/images/build-layouts-dark@2x.png +0 -0
  426. package/src/components/editor-help/images/build-layouts-dark@3x.png +0 -0
  427. package/src/components/editor-help/images/build-layouts-light.png +0 -0
  428. package/src/components/editor-help/images/build-layouts-light@2x.png +0 -0
  429. package/src/components/editor-help/images/build-layouts-light@3x.png +0 -0
  430. package/src/components/editor-help/images/drag-and-drop-dark.png +0 -0
  431. package/src/components/editor-help/images/drag-and-drop-dark@2x.png +0 -0
  432. package/src/components/editor-help/images/drag-and-drop-dark@3x.png +0 -0
  433. package/src/components/editor-help/images/drag-and-drop-light.png +0 -0
  434. package/src/components/editor-help/images/drag-and-drop-light@2x.png +0 -0
  435. package/src/components/editor-help/images/drag-and-drop-light@3x.png +0 -0
  436. package/src/components/editor-help/images/edit-media-dark.png +0 -0
  437. package/src/components/editor-help/images/edit-media-dark@2x.png +0 -0
  438. package/src/components/editor-help/images/edit-media-dark@3x.png +0 -0
  439. package/src/components/editor-help/images/edit-media-light.png +0 -0
  440. package/src/components/editor-help/images/edit-media-light@2x.png +0 -0
  441. package/src/components/editor-help/images/edit-media-light@3x.png +0 -0
  442. package/src/components/editor-help/images/embed-media-dark.png +0 -0
  443. package/src/components/editor-help/images/embed-media-dark@2x.png +0 -0
  444. package/src/components/editor-help/images/embed-media-dark@3x.png +0 -0
  445. package/src/components/editor-help/images/embed-media-light.png +0 -0
  446. package/src/components/editor-help/images/embed-media-light@2x.png +0 -0
  447. package/src/components/editor-help/images/embed-media-light@3x.png +0 -0
  448. package/src/components/editor-help/images/move-dark.png +0 -0
  449. package/src/components/editor-help/images/move-dark@2x.png +0 -0
  450. package/src/components/editor-help/images/move-dark@3x.png +0 -0
  451. package/src/components/editor-help/images/move-light.png +0 -0
  452. package/src/components/editor-help/images/move-light@2x.png +0 -0
  453. package/src/components/editor-help/images/move-light@3x.png +0 -0
  454. package/src/components/editor-help/images/options-dark.png +0 -0
  455. package/src/components/editor-help/images/options-dark@2x.png +0 -0
  456. package/src/components/editor-help/images/options-dark@3x.png +0 -0
  457. package/src/components/editor-help/images/options-light.png +0 -0
  458. package/src/components/editor-help/images/options-light@2x.png +0 -0
  459. package/src/components/editor-help/images/options-light@3x.png +0 -0
  460. package/src/components/editor-help/images/rich-text-dark.png +0 -0
  461. package/src/components/editor-help/images/rich-text-dark@2x.png +0 -0
  462. package/src/components/editor-help/images/rich-text-dark@3x.png +0 -0
  463. package/src/components/editor-help/images/rich-text-light.png +0 -0
  464. package/src/components/editor-help/images/rich-text-light@2x.png +0 -0
  465. package/src/components/editor-help/images/rich-text-light@3x.png +0 -0
  466. package/src/components/editor-help/images/settings-dark.png +0 -0
  467. package/src/components/editor-help/images/settings-dark@2x.png +0 -0
  468. package/src/components/editor-help/images/settings-dark@3x.png +0 -0
  469. package/src/components/editor-help/images/settings-light.png +0 -0
  470. package/src/components/editor-help/images/settings-light@2x.png +0 -0
  471. package/src/components/editor-help/images/settings-light@3x.png +0 -0
  472. package/src/components/editor-help/index.native.js +0 -208
  473. package/src/components/editor-help/intro-to-blocks.native.js +0 -91
  474. package/src/components/editor-help/move-blocks.native.js +0 -55
  475. package/src/components/editor-help/remove-blocks.native.js +0 -35
  476. package/src/components/editor-help/style.android.scss +0 -6
  477. package/src/components/editor-help/style.ios.scss +0 -6
  478. package/src/components/editor-help/style.scss +0 -123
  479. package/src/components/editor-help/test/index.native.js +0 -81
  480. package/src/components/editor-help/view-sections.native.js +0 -79
  481. package/src/components/error-boundary/index.native.js +0 -192
  482. package/src/components/error-boundary/style.native.scss +0 -116
  483. package/src/components/index.native.js +0 -15
  484. package/src/components/offline-status/index.native.js +0 -99
  485. package/src/components/offline-status/style.native.scss +0 -28
  486. package/src/components/offline-status/test/index.native.js +0 -108
  487. package/src/components/post-revisions-panel/index.js +0 -161
  488. package/src/components/post-revisions-panel/style.scss +0 -16
  489. package/src/components/post-title/index.native.js +0 -282
  490. package/src/components/post-title/style.native.scss +0 -13
  491. package/src/components/post-title/test/__snapshots__/index.native.js.snap +0 -25
  492. package/src/components/post-title/test/index.native.js +0 -78
  493. package/src/components/provider/index.native.js +0 -497
  494. package/src/components/provider/use-block-editor-settings.native.js +0 -48
  495. package/src/components/revision-author-panel/index.js +0 -36
  496. package/src/components/revision-created-panel/index.js +0 -36
  497. package/src/components/template-part-menu-items/index.native.js +0 -3
  498. package/src/hooks/index.native.js +0 -0
  499. package/src/index.native.js +0 -16
  500. package/src/private-apis.native.js +0 -33
  501. package/src/store/actions.native.js +0 -27
  502. package/src/store/reducer.native.js +0 -94
  503. package/src/store/selectors.native.js +0 -57
  504. package/src/store/test/actions.native.js +0 -16
  505. package/src/store/test/reducer.native.js +0 -36
  506. package/src/store/test/selectors.native.js +0 -28
  507. package/src/utils/index.native.js +0 -6
  508. package/src/utils/media-sideload/index.native.js +0 -1
  509. package/src/utils/media-upload/index.native.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/editor",
3
- "version": "14.48.0",
3
+ "version": "14.48.2-next.v.202606191442.0+17fe7db8a",
4
4
  "description": "Enhanced block editor for WordPress posts.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -40,7 +40,6 @@
40
40
  },
41
41
  "./package.json": "./package.json"
42
42
  },
43
- "react-native": "src/index",
44
43
  "wpScript": true,
45
44
  "types": "build-types",
46
45
  "sideEffects": [
@@ -60,71 +59,81 @@
60
59
  "build-module/bindings/**"
61
60
  ],
62
61
  "dependencies": {
63
- "@wordpress/a11y": "^4.48.0",
64
- "@wordpress/api-fetch": "^7.48.0",
65
- "@wordpress/base-styles": "^9.1.0",
66
- "@wordpress/blob": "^4.48.0",
67
- "@wordpress/block-editor": "^15.21.0",
68
- "@wordpress/block-serialization-default-parser": "^5.48.0",
69
- "@wordpress/blocks": "^15.21.0",
70
- "@wordpress/commands": "^1.48.0",
71
- "@wordpress/components": "^35.0.0",
72
- "@wordpress/compose": "^8.1.0",
73
- "@wordpress/core-data": "^7.48.0",
74
- "@wordpress/data": "^10.48.0",
75
- "@wordpress/dataviews": "^16.0.0",
76
- "@wordpress/date": "^5.48.0",
77
- "@wordpress/deprecated": "^4.48.0",
78
- "@wordpress/dom": "^4.48.0",
79
- "@wordpress/element": "^8.0.0",
80
- "@wordpress/fields": "^0.40.0",
81
- "@wordpress/global-styles-engine": "^1.15.0",
82
- "@wordpress/global-styles-ui": "^1.15.0",
83
- "@wordpress/hooks": "^4.48.0",
84
- "@wordpress/html-entities": "^4.48.0",
85
- "@wordpress/i18n": "^6.21.0",
86
- "@wordpress/icons": "^13.3.0",
87
- "@wordpress/interface": "^9.33.0",
88
- "@wordpress/keyboard-shortcuts": "^5.48.0",
89
- "@wordpress/keycodes": "^4.48.0",
90
- "@wordpress/media-editor": "^0.11.0",
91
- "@wordpress/media-fields": "^0.13.0",
92
- "@wordpress/media-utils": "^5.48.0",
93
- "@wordpress/notices": "^5.48.0",
94
- "@wordpress/patterns": "^2.48.0",
95
- "@wordpress/plugins": "^7.48.0",
96
- "@wordpress/preferences": "^4.48.0",
97
- "@wordpress/private-apis": "^1.48.0",
98
- "@wordpress/reusable-blocks": "^5.48.0",
99
- "@wordpress/rich-text": "^7.48.0",
100
- "@wordpress/server-side-render": "^6.24.0",
101
- "@wordpress/ui": "^0.15.0",
102
- "@wordpress/upload-media": "^0.33.0",
103
- "@wordpress/url": "^4.48.0",
104
- "@wordpress/views": "^1.15.0",
105
- "@wordpress/warning": "^3.48.0",
106
- "@wordpress/wordcount": "^4.48.0",
62
+ "@wordpress/a11y": "^4.48.2-next.v.202606191442.0+17fe7db8a",
63
+ "@wordpress/api-fetch": "^7.48.2-next.v.202606191442.0+17fe7db8a",
64
+ "@wordpress/base-styles": "^10.0.2-next.v.202606191442.0+17fe7db8a",
65
+ "@wordpress/blob": "^4.48.2-next.v.202606191442.0+17fe7db8a",
66
+ "@wordpress/block-editor": "^15.22.1-next.v.202606191442.0+17fe7db8a",
67
+ "@wordpress/block-serialization-default-parser": "^5.48.2-next.v.202606191442.0+17fe7db8a",
68
+ "@wordpress/blocks": "^15.21.3-next.v.202606191442.0+17fe7db8a",
69
+ "@wordpress/commands": "^1.48.2-next.v.202606191442.0+17fe7db8a",
70
+ "@wordpress/components": "^35.1.1-next.v.202606191442.0+17fe7db8a",
71
+ "@wordpress/compose": "^8.1.2-next.v.202606191442.0+17fe7db8a",
72
+ "@wordpress/core-data": "^7.48.2-next.v.202606191442.0+17fe7db8a",
73
+ "@wordpress/data": "^10.48.2-next.v.202606191442.0+17fe7db8a",
74
+ "@wordpress/dataviews": "^17.0.1-next.v.202606191442.0+17fe7db8a",
75
+ "@wordpress/date": "^5.48.2-next.v.202606191442.0+17fe7db8a",
76
+ "@wordpress/deprecated": "^4.48.2-next.v.202606191442.0+17fe7db8a",
77
+ "@wordpress/dom": "^4.48.2-next.v.202606191442.0+17fe7db8a",
78
+ "@wordpress/element": "^8.0.2-next.v.202606191442.0+17fe7db8a",
79
+ "@wordpress/fields": "^0.40.2-next.v.202606191442.0+17fe7db8a",
80
+ "@wordpress/global-styles-engine": "^1.15.2-next.v.202606191442.0+17fe7db8a",
81
+ "@wordpress/global-styles-ui": "^1.15.2-next.v.202606191442.0+17fe7db8a",
82
+ "@wordpress/hooks": "^4.48.2-next.v.202606191442.0+17fe7db8a",
83
+ "@wordpress/html-entities": "^4.48.2-next.v.202606191442.0+17fe7db8a",
84
+ "@wordpress/i18n": "^6.21.2-next.v.202606191442.0+17fe7db8a",
85
+ "@wordpress/icons": "^14.0.2-next.v.202606191442.0+17fe7db8a",
86
+ "@wordpress/interface": "^9.33.2-next.v.202606191442.0+17fe7db8a",
87
+ "@wordpress/keyboard-shortcuts": "^5.48.2-next.v.202606191442.0+17fe7db8a",
88
+ "@wordpress/keycodes": "^4.48.2-next.v.202606191442.0+17fe7db8a",
89
+ "@wordpress/media-editor": "^0.11.2-next.v.202606191442.0+17fe7db8a",
90
+ "@wordpress/media-fields": "^0.13.2-next.v.202606191442.0+17fe7db8a",
91
+ "@wordpress/media-utils": "^5.48.2-next.v.202606191442.0+17fe7db8a",
92
+ "@wordpress/notices": "^5.48.2-next.v.202606191442.0+17fe7db8a",
93
+ "@wordpress/patterns": "^2.48.2-next.v.202606191442.0+17fe7db8a",
94
+ "@wordpress/plugins": "^7.48.2-next.v.202606191442.0+17fe7db8a",
95
+ "@wordpress/preferences": "^4.48.2-next.v.202606191442.0+17fe7db8a",
96
+ "@wordpress/private-apis": "^1.48.2-next.v.202606191442.0+17fe7db8a",
97
+ "@wordpress/reusable-blocks": "^5.48.2-next.v.202606191442.0+17fe7db8a",
98
+ "@wordpress/rich-text": "^7.48.2-next.v.202606191442.0+17fe7db8a",
99
+ "@wordpress/server-side-render": "^6.24.2-next.v.202606191442.0+17fe7db8a",
100
+ "@wordpress/ui": "^0.16.1-next.v.202606191442.0+17fe7db8a",
101
+ "@wordpress/upload-media": "^0.34.1-next.v.202606191442.0+17fe7db8a",
102
+ "@wordpress/url": "^4.48.2-next.v.202606191442.0+17fe7db8a",
103
+ "@wordpress/views": "^1.15.2-next.v.202606191442.0+17fe7db8a",
104
+ "@wordpress/warning": "^3.48.2-next.v.202606191442.0+17fe7db8a",
105
+ "@wordpress/wordcount": "^4.48.2-next.v.202606191442.0+17fe7db8a",
107
106
  "change-case": "^4.1.2",
108
107
  "client-zip": "^2.4.5",
109
108
  "clsx": "^2.1.1",
110
- "colord": "^2.7.0",
109
+ "colord": "^2.9.3",
111
110
  "date-fns": "^4.1.0",
112
- "diff": "^4.0.2",
111
+ "diff": "^8.0.3",
113
112
  "fast-deep-equal": "^3.1.3",
114
113
  "memize": "^2.1.0",
115
114
  "react-autosize-textarea": "^7.1.0",
115
+ "redux": "^5.0.1",
116
116
  "remove-accents": "^0.5.0",
117
117
  "uuid": "^14.0.0"
118
118
  },
119
119
  "devDependencies": {
120
- "deep-freeze": "0.0.1"
120
+ "@testing-library/dom": "^10.4.1",
121
+ "@testing-library/react": "^16.3.2",
122
+ "@testing-library/user-event": "^14.6.1",
123
+ "deep-freeze": "^0.0.1"
121
124
  },
122
125
  "peerDependencies": {
126
+ "@types/react": "^18.3.27",
123
127
  "react": "^18.0.0",
124
128
  "react-dom": "^18.0.0"
125
129
  },
130
+ "peerDependenciesMeta": {
131
+ "@types/react": {
132
+ "optional": true
133
+ }
134
+ },
126
135
  "publishConfig": {
127
136
  "access": "public"
128
137
  },
129
- "gitHead": "e7856693aeb4e2522d13608cd32c994e4a97cb9c"
138
+ "gitHead": "1b6a19222df5a88f161880b5789efb3171d8f425"
130
139
  }
@@ -26,7 +26,7 @@ export default {
26
26
  // Check undefined because empty string is a valid value.
27
27
  if ( overridableValue === undefined ) {
28
28
  overridesValues[ attributeName ] =
29
- currentBlockAttributes[ attributeName ];
29
+ currentBlockAttributes?.[ attributeName ];
30
30
  continue;
31
31
  } else {
32
32
  overridesValues[ attributeName ] =
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import patternOverridesBindings from '../pattern-overrides';
5
+
6
+ describe( 'pattern-overrides bindings', () => {
7
+ const blockAttributes = {
8
+ content: 'original content',
9
+ metadata: {
10
+ name: 'Editable Paragraph',
11
+ bindings: {
12
+ content: { source: 'core/pattern-overrides' },
13
+ },
14
+ },
15
+ };
16
+
17
+ const makeSelect = ( attributes ) => () => ( {
18
+ getBlockAttributes: () => attributes,
19
+ } );
20
+
21
+ describe( 'getValues', () => {
22
+ it( 'returns the current attribute value when there is no override', () => {
23
+ const values = patternOverridesBindings.getValues( {
24
+ select: makeSelect( blockAttributes ),
25
+ clientId: 'block-1',
26
+ context: {},
27
+ bindings: {
28
+ content: { source: 'core/pattern-overrides' },
29
+ },
30
+ } );
31
+
32
+ expect( values ).toEqual( { content: 'original content' } );
33
+ } );
34
+
35
+ it( 'returns the override value when the context provides one', () => {
36
+ const values = patternOverridesBindings.getValues( {
37
+ select: makeSelect( blockAttributes ),
38
+ clientId: 'block-1',
39
+ context: {
40
+ 'pattern/overrides': {
41
+ 'Editable Paragraph': { content: 'overridden' },
42
+ },
43
+ },
44
+ bindings: {
45
+ content: { source: 'core/pattern-overrides' },
46
+ },
47
+ } );
48
+
49
+ expect( values ).toEqual( { content: 'overridden' } );
50
+ } );
51
+
52
+ it( 'does not throw when block attributes are unavailable', () => {
53
+ expect( () =>
54
+ patternOverridesBindings.getValues( {
55
+ select: makeSelect( null ),
56
+ clientId: 'missing-client-id',
57
+ context: {},
58
+ bindings: {
59
+ __default: { source: 'core/pattern-overrides' },
60
+ },
61
+ } )
62
+ ).not.toThrow();
63
+ } );
64
+ } );
65
+ } );
@@ -1,7 +1,7 @@
1
1
  # Editor Components
2
2
 
3
3
  This folder holds reusable editor components exported by the `editor` module.
4
- These components combined as children of the `EditorProvider` component can be use to build alternative Editor Layouts.
4
+ These components, combined as children of the `EditorProvider` component, can be used to build alternative Editor Layouts.
5
5
 
6
6
  ## Which components should live in this folder?
7
7
 
@@ -95,13 +95,6 @@ export default function BlockRemovalWarnings() {
95
95
  [ currentPostType ]
96
96
  );
97
97
 
98
- // `BlockRemovalWarnings` is rendered in the editor provider, a shared component
99
- // across react native and web. However, `BlockRemovalWarningModal` is web only.
100
- // Check it exists before trying to render it.
101
- if ( ! BlockRemovalWarningModal ) {
102
- return null;
103
- }
104
-
105
98
  if ( ! removalRulesForPostType ) {
106
99
  return null;
107
100
  }
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- // eslint-disable-next-line @wordpress/use-recommended-components -- `Tooltip` is not yet on the recommended `@wordpress/ui` allow-list; landing as a migration step ahead of the wider rollout.
5
4
  import { Stack, Tooltip } from '@wordpress/ui';
6
5
  import { __, _x } from '@wordpress/i18n';
7
6
  import {
@@ -5,7 +5,11 @@ import { ToolbarButton } from '@wordpress/components';
5
5
  import { Stack } from '@wordpress/ui';
6
6
  import { __, sprintf } from '@wordpress/i18n';
7
7
  import { useMemo } from '@wordpress/element';
8
- import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
8
+ import {
9
+ privateApis as blockEditorPrivateApis,
10
+ store as blockEditorStore,
11
+ } from '@wordpress/block-editor';
12
+ import { useSelect } from '@wordpress/data';
9
13
 
10
14
  /**
11
15
  * Internal dependencies
@@ -15,52 +19,24 @@ import { getAvatarBorderColor } from './utils';
15
19
 
16
20
  const { NoteIconToolbarSlotFill } = unlock( blockEditorPrivateApis );
17
21
 
18
- export function NoteAvatarIndicator( { onClick, note } ) {
19
- const threadParticipants = useMemo( () => {
20
- if ( ! note ) {
21
- return [];
22
- }
23
-
24
- const participantsMap = new Map();
25
- const allNotes = [ note, ...note.reply ];
26
-
27
- // Sort by date to show participants in chronological order.
28
- allNotes.sort( ( a, b ) => new Date( a.date ) - new Date( b.date ) );
29
-
30
- allNotes.forEach( ( entry ) => {
31
- // Track thread participants (original author + repliers).
32
- if ( entry.author_name && entry.author_avatar_urls ) {
33
- if ( ! participantsMap.has( entry.author ) ) {
34
- participantsMap.set( entry.author, {
35
- name: entry.author_name,
36
- avatar:
37
- entry.author_avatar_urls?.[ '48' ] ||
38
- entry.author_avatar_urls?.[ '96' ],
39
- id: entry.author,
40
- date: entry.date,
41
- } );
42
- }
43
- }
44
- } );
45
-
46
- return Array.from( participantsMap.values() );
47
- }, [ note ] );
48
-
49
- if ( ! threadParticipants.length ) {
50
- return null;
51
- }
22
+ function ThreadParticipants( { participants } ) {
23
+ const defaultAvatar = useSelect( ( select ) => {
24
+ const { getSettings } = select( blockEditorStore );
25
+ const { __experimentalDiscussionSettings } = getSettings();
26
+ return __experimentalDiscussionSettings?.avatarURL;
27
+ }, [] );
52
28
 
53
29
  // If there are more than 3 participants, show 2 avatars and a "+n" number.
54
30
  const maxAvatars = 3;
55
- const isOverflow = threadParticipants.length > maxAvatars;
31
+ const isOverflow = participants.length > maxAvatars;
56
32
  const visibleParticipants = isOverflow
57
- ? threadParticipants.slice( 0, maxAvatars - 1 )
58
- : threadParticipants;
33
+ ? participants.slice( 0, maxAvatars - 1 )
34
+ : participants;
59
35
  const overflowCount = Math.max(
60
36
  0,
61
- threadParticipants.length - visibleParticipants.length
37
+ participants.length - visibleParticipants.length
62
38
  );
63
- const threadHasMoreParticipants = threadParticipants.length > 100;
39
+ const threadHasMoreParticipants = participants.length > 100;
64
40
 
65
41
  // If we hit the note limit, show "100+" instead of exact overflow count.
66
42
  const overflowText =
@@ -72,6 +48,62 @@ export function NoteAvatarIndicator( { onClick, note } ) {
72
48
  overflowCount
73
49
  );
74
50
 
51
+ return (
52
+ <Stack direction="row" align="center" gap="xs">
53
+ { visibleParticipants.map( ( participant ) => (
54
+ <img
55
+ key={ participant.id }
56
+ src={ participant.avatar || defaultAvatar }
57
+ alt={ participant.name }
58
+ className="editor-note-indicator__avatar"
59
+ style={ {
60
+ borderColor: getAvatarBorderColor( participant.id ),
61
+ } }
62
+ />
63
+ ) ) }
64
+ { overflowCount > 0 && (
65
+ <span className="editor-note-indicator__overflow">
66
+ { overflowText }
67
+ </span>
68
+ ) }
69
+ </Stack>
70
+ );
71
+ }
72
+
73
+ export function NoteAvatarIndicator( { onClick, note } ) {
74
+ const threadParticipants = useMemo( () => {
75
+ if ( ! note ) {
76
+ return [];
77
+ }
78
+
79
+ // Track thread participants (original author + repliers), sorted by
80
+ // date so they appear in chronological order.
81
+ const participantsMap = new Map();
82
+ const allNotes = [ note, ...note.reply ].sort(
83
+ ( a, b ) => new Date( a.date ) - new Date( b.date )
84
+ );
85
+
86
+ for ( const entry of allNotes ) {
87
+ if ( ! entry.author_name || participantsMap.has( entry.author ) ) {
88
+ continue;
89
+ }
90
+
91
+ participantsMap.set( entry.author, {
92
+ id: entry.author,
93
+ name: entry.author_name,
94
+ avatar:
95
+ entry.author_avatar_urls?.[ '48' ] ||
96
+ entry.author_avatar_urls?.[ '96' ],
97
+ } );
98
+ }
99
+
100
+ return Array.from( participantsMap.values() );
101
+ }, [ note ] );
102
+
103
+ if ( ! threadParticipants.length ) {
104
+ return null;
105
+ }
106
+
75
107
  return (
76
108
  <NoteIconToolbarSlotFill.Fill>
77
109
  <ToolbarButton
@@ -80,26 +112,7 @@ export function NoteAvatarIndicator( { onClick, note } ) {
80
112
  onClick={ () => onClick() }
81
113
  showTooltip
82
114
  >
83
- <Stack direction="row" align="center" gap="xs">
84
- { visibleParticipants.map( ( participant ) => (
85
- <img
86
- key={ participant.id }
87
- src={ participant.avatar }
88
- alt={ participant.name }
89
- className="editor-note-indicator__avatar"
90
- style={ {
91
- borderColor: getAvatarBorderColor(
92
- participant.id
93
- ),
94
- } }
95
- />
96
- ) ) }
97
- { overflowCount > 0 && (
98
- <span className="editor-note-indicator__overflow">
99
- { overflowText }
100
- </span>
101
- ) }
102
- </Stack>
115
+ <ThreadParticipants participants={ threadParticipants } />
103
116
  </ToolbarButton>
104
117
  </NoteIconToolbarSlotFill.Fill>
105
118
  );
@@ -6,12 +6,14 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { RawHTML, useRef, useState } from '@wordpress/element';
9
+ import { useRef, useState, useLayoutEffect } from '@wordpress/element';
10
10
  import {
11
11
  __experimentalConfirmDialog as ConfirmDialog,
12
12
  Button,
13
13
  privateApis as componentsPrivateApis,
14
14
  } from '@wordpress/components';
15
+ // eslint-disable-next-line @wordpress/use-recommended-components
16
+ import { Button as UIButton } from '@wordpress/ui';
15
17
  import { __, _x, sprintf } from '@wordpress/i18n';
16
18
  import { moreVertical, published } from '@wordpress/icons';
17
19
 
@@ -66,6 +68,28 @@ export function Note( {
66
68
  const [ actionState, setActionState ] = useState( null );
67
69
  const actionButtonRef = useRef( null );
68
70
 
71
+ const commentRef = useRef( null );
72
+ const rawContent = note?.content?.raw;
73
+ const [ prevContent, setPrevContent ] = useState( rawContent );
74
+ const [ isExpanded, setIsExpanded ] = useState( false );
75
+ const [ isOverflowing, setIsOverflowing ] = useState( false );
76
+
77
+ // Collapse whenever the content changes so it can be re-measured.
78
+ if ( prevContent !== rawContent ) {
79
+ setPrevContent( rawContent );
80
+ setIsExpanded( false );
81
+ }
82
+
83
+ // Measure the (clamped) content to decide whether the toggle is needed.
84
+ useLayoutEffect( () => {
85
+ const commentElement = commentRef.current;
86
+ if ( commentElement ) {
87
+ setIsOverflowing(
88
+ commentElement.scrollHeight > commentElement.clientHeight
89
+ );
90
+ }
91
+ }, [ rawContent ] );
92
+
69
93
  const canResolve = note.parent === 0;
70
94
  const isResolutionNote =
71
95
  note.type === 'note' &&
@@ -132,36 +156,37 @@ export function Note( {
132
156
  } }
133
157
  />
134
158
  );
135
- } else if ( isResolutionNote ) {
136
- const actionText =
137
- note.meta._wp_note_status === 'resolved'
138
- ? __( 'Marked as resolved' )
139
- : __( 'Reopened' );
140
- const raw = note?.content?.raw;
141
- const text =
142
- raw && typeof raw === 'string' && raw.trim() !== ''
143
- ? sprintf(
144
- // translators: %1$s: action label ("Marked as resolved" or "Reopened"); %2$s: note text.
145
- __( '%1$s: %2$s' ),
146
- actionText,
147
- raw
148
- )
149
- : actionText;
150
- body = (
151
- <RawHTML
152
- className={ clsx(
153
- 'editor-collab-sidebar-panel__note-content',
154
- 'editor-collab-sidebar-panel__resolution-text'
155
- ) }
156
- >
157
- { text }
158
- </RawHTML>
159
- );
160
159
  } else {
160
+ let content;
161
+ if ( isResolutionNote ) {
162
+ const actionText =
163
+ note.meta._wp_note_status === 'resolved'
164
+ ? __( 'Marked as resolved' )
165
+ : __( 'Reopened' );
166
+ const raw = note?.content?.raw;
167
+ content =
168
+ raw && typeof raw === 'string' && raw.trim() !== ''
169
+ ? sprintf(
170
+ // translators: %1$s: action label ("Marked as resolved" or "Reopened"); %2$s: note text.
171
+ __( '%1$s: %2$s' ),
172
+ actionText,
173
+ raw
174
+ )
175
+ : actionText;
176
+ } else {
177
+ content = note?.content?.rendered;
178
+ }
179
+
161
180
  body = (
162
- <RawHTML className="editor-collab-sidebar-panel__note-content">
163
- { note?.content?.rendered }
164
- </RawHTML>
181
+ <div
182
+ ref={ commentRef }
183
+ className={ clsx( 'editor-collab-sidebar-panel__note-content', {
184
+ 'editor-collab-sidebar-panel__resolution-text':
185
+ isResolutionNote,
186
+ 'is-collapsed': ! isExpanded,
187
+ } ) }
188
+ dangerouslySetInnerHTML={ { __html: content ?? '' } }
189
+ />
165
190
  );
166
191
  }
167
192
 
@@ -204,6 +229,16 @@ export function Note( {
204
229
  { deleteConfirmMessage }
205
230
  </ConfirmDialog>
206
231
  ) }
232
+ { isOverflowing && 'edit' !== actionState && (
233
+ <UIButton
234
+ className="editor-collab-sidebar-panel__show-more-button"
235
+ variant="unstyled"
236
+ size="small"
237
+ onClick={ () => setIsExpanded( ! isExpanded ) }
238
+ >
239
+ { ! isExpanded ? __( 'Show more' ) : __( 'Show less' ) }
240
+ </UIButton>
241
+ ) }
207
242
  </NoteCard>
208
243
  );
209
244
  }
@@ -75,10 +75,30 @@
75
75
  color: $gray-700;
76
76
  }
77
77
 
78
+ .editor-collab-sidebar-panel__show-more-button {
79
+ width: fit-content;
80
+ color: var(--wpds-color-foreground-interactive-brand);
81
+ cursor: var(--wpds-cursor-control);
82
+
83
+ &:hover,
84
+ &:focus,
85
+ &:active {
86
+ color: var(--wpds-color-foreground-interactive-brand-active);
87
+ }
88
+ }
89
+
78
90
  .editor-collab-sidebar-panel__note-content {
79
91
  p:last-child {
80
92
  margin-bottom: 0;
81
93
  }
94
+
95
+ &.is-collapsed {
96
+ -webkit-line-clamp: 3;
97
+ line-clamp: 3;
98
+ display: -webkit-box;
99
+ -webkit-box-orient: vertical;
100
+ overflow: hidden;
101
+ }
82
102
  }
83
103
 
84
104
  .editor-collab-sidebar-panel__user-avatar {
@@ -1,14 +1,11 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- // @ts-expect-error No exported types
5
- import { store as blockEditorStore } from '@wordpress/block-editor';
6
4
  import {
7
5
  privateApis as coreDataPrivateApis,
8
6
  type CoreDataPrivateApis,
9
7
  type PostEditorAwarenessState as ActiveCollaborator,
10
8
  } from '@wordpress/core-data';
11
- import { useSelect } from '@wordpress/data';
12
9
  import { useEffect, useRef, useState } from '@wordpress/element';
13
10
 
14
11
  /**
@@ -74,11 +71,6 @@ export function useBlockHighlighting(
74
71
  const [ recomputeToken, rerenderHighlightsAfterDelay ] =
75
72
  useDebouncedRecompute( delayMs );
76
73
 
77
- const blockClientIds = useSelect(
78
- ( select ) => select( blockEditorStore ).getClientIdsWithDescendants(),
79
- []
80
- );
81
-
82
74
  // All DOM mutations and position computations live inside useEffect.
83
75
  useEffect( () => {
84
76
  if ( ! blockEditorDocument ) {
@@ -215,7 +207,6 @@ export function useBlockHighlighting(
215
207
  overlayElement,
216
208
  recomputeToken,
217
209
  resolveSelection,
218
- blockClientIds,
219
210
  ] );
220
211
 
221
212
  return { highlights, rerenderHighlightsAfterDelay };
@@ -1,5 +1,3 @@
1
- // @ts-expect-error No exported types
2
- import { store as blockEditorStore } from '@wordpress/block-editor';
3
1
  import { privateApis as coreDataPrivateApis } from '@wordpress/core-data';
4
2
  import type {
5
3
  CoreDataPrivateApis,
@@ -70,11 +68,6 @@ export function useRenderCursors(
70
68
  []
71
69
  );
72
70
 
73
- const blockClientIds = useSelect(
74
- ( select ) => select( blockEditorStore ).getClientIdsWithDescendants(),
75
- []
76
- );
77
-
78
71
  const [ cursorPositions, setCursorPositions ] = useState< CursorData[] >(
79
72
  []
80
73
  );
@@ -186,7 +179,6 @@ export function useRenderCursors(
186
179
  sortedUsers,
187
180
  showOwnCursor,
188
181
  recomputeToken,
189
- blockClientIds,
190
182
  ] );
191
183
 
192
184
  return { cursors: cursorPositions, rerenderCursorsAfterDelay };
@@ -12,7 +12,6 @@ extend( [ a11yPlugin ] );
12
12
  */
13
13
  import { Icon as WCIcon } from '@wordpress/components';
14
14
  import { useMemo } from '@wordpress/element';
15
- // eslint-disable-next-line @wordpress/use-recommended-components -- `Tooltip` is not yet on the recommended `@wordpress/ui` allow-list; landing as a migration step ahead of the wider rollout.
16
15
  import { Tooltip } from '@wordpress/ui';
17
16
 
18
17
  /**