@wordpress/editor 14.44.1-next.v.202604201441.0 → 14.45.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 (322) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/collab-sidebar/{comment-menu-item.cjs → add-note-menu-item.cjs} +17 -14
  3. package/build/components/collab-sidebar/add-note-menu-item.cjs.map +7 -0
  4. package/build/components/collab-sidebar/{add-comment.cjs → add-note.cjs} +28 -41
  5. package/build/components/collab-sidebar/add-note.cjs.map +7 -0
  6. package/build/components/collab-sidebar/board-store.cjs +3 -0
  7. package/build/components/collab-sidebar/board-store.cjs.map +2 -2
  8. package/build/components/collab-sidebar/floating-container.cjs +4 -3
  9. package/build/components/collab-sidebar/floating-container.cjs.map +3 -3
  10. package/build/components/collab-sidebar/hooks.cjs +92 -135
  11. package/build/components/collab-sidebar/hooks.cjs.map +3 -3
  12. package/build/components/collab-sidebar/index.cjs +28 -79
  13. package/build/components/collab-sidebar/index.cjs.map +3 -3
  14. package/build/components/collab-sidebar/{comment-author-info.cjs → note-byline.cjs} +13 -9
  15. package/build/components/collab-sidebar/note-byline.cjs.map +7 -0
  16. package/build/components/collab-sidebar/note-card.cjs +58 -0
  17. package/build/components/collab-sidebar/note-card.cjs.map +7 -0
  18. package/build/components/collab-sidebar/{comment-form.cjs → note-form.cjs} +45 -36
  19. package/build/components/collab-sidebar/note-form.cjs.map +7 -0
  20. package/build/components/collab-sidebar/{comment-indicator-toolbar.cjs → note-indicator-toolbar.cjs} +31 -27
  21. package/build/components/collab-sidebar/note-indicator-toolbar.cjs.map +7 -0
  22. package/build/components/collab-sidebar/note-thread.cjs +321 -0
  23. package/build/components/collab-sidebar/note-thread.cjs.map +7 -0
  24. package/build/components/collab-sidebar/note.cjs +207 -0
  25. package/build/components/collab-sidebar/note.cjs.map +7 -0
  26. package/build/components/collab-sidebar/notes.cjs +237 -0
  27. package/build/components/collab-sidebar/notes.cjs.map +7 -0
  28. package/build/components/collab-sidebar/utils.cjs +23 -25
  29. package/build/components/collab-sidebar/utils.cjs.map +2 -2
  30. package/build/components/document-bar/index.cjs.map +3 -3
  31. package/build/components/error-boundary/index.cjs.map +3 -3
  32. package/build/components/list-view-sidebar/list-view-outline.cjs.map +3 -3
  33. package/build/components/media/media-editor-modal.cjs +93 -0
  34. package/build/components/media/media-editor-modal.cjs.map +7 -0
  35. package/build/components/more-menu/index.cjs +3 -2
  36. package/build/components/more-menu/index.cjs.map +2 -2
  37. package/build/components/post-actions/set-as-homepage.cjs.map +3 -3
  38. package/build/components/post-actions/set-as-posts-page.cjs.map +3 -3
  39. package/build/components/post-card-panel/index.cjs +2 -2
  40. package/build/components/post-card-panel/index.cjs.map +3 -3
  41. package/build/components/post-content-information/index.cjs.map +3 -3
  42. package/build/components/post-excerpt/panel.cjs.map +3 -3
  43. package/build/components/post-last-edited-panel/index.cjs.map +3 -3
  44. package/build/components/post-preview-button/index.cjs +3 -2
  45. package/build/components/post-preview-button/index.cjs.map +2 -2
  46. package/build/components/post-publish-button/index.cjs +2 -2
  47. package/build/components/post-publish-button/index.cjs.map +2 -2
  48. package/build/components/post-publish-button/label.cjs +4 -2
  49. package/build/components/post-publish-button/label.cjs.map +2 -2
  50. package/build/components/post-publish-panel/postpublish.cjs +3 -2
  51. package/build/components/post-publish-panel/postpublish.cjs.map +2 -2
  52. package/build/components/post-revisions-panel/index.cjs +2 -2
  53. package/build/components/post-revisions-panel/index.cjs.map +2 -2
  54. package/build/components/post-revisions-preview/diff-markers.cjs +1 -1
  55. package/build/components/post-revisions-preview/diff-markers.cjs.map +2 -2
  56. package/build/components/post-revisions-preview/revisions-slider.cjs +1 -0
  57. package/build/components/post-revisions-preview/revisions-slider.cjs.map +2 -2
  58. package/build/components/post-saved-state/index.cjs +4 -1
  59. package/build/components/post-saved-state/index.cjs.map +2 -2
  60. package/build/components/post-text-editor/index.cjs +3 -4
  61. package/build/components/post-text-editor/index.cjs.map +2 -2
  62. package/build/components/preview-dropdown/index.cjs +3 -2
  63. package/build/components/preview-dropdown/index.cjs.map +2 -2
  64. package/build/components/provider/index.cjs +3 -1
  65. package/build/components/provider/index.cjs.map +3 -3
  66. package/build/components/provider/use-block-editor-settings.cjs +7 -1
  67. package/build/components/provider/use-block-editor-settings.cjs.map +3 -3
  68. package/build/components/provider/use-upload-save-lock.cjs +2 -12
  69. package/build/components/provider/use-upload-save-lock.cjs.map +2 -2
  70. package/build/components/resizable-editor/resize-handle.cjs +2 -1
  71. package/build/components/resizable-editor/resize-handle.cjs.map +2 -2
  72. package/build/components/revision-created-panel/index.cjs.map +3 -3
  73. package/build/components/site-discussion/index.cjs.map +2 -2
  74. package/build/components/template-actions-panel/classic-theme-content.cjs.map +2 -2
  75. package/build/components/template-part-menu-items/convert-to-regular.cjs +54 -11
  76. package/build/components/template-part-menu-items/convert-to-regular.cjs.map +3 -3
  77. package/build/components/visual-editor/index.cjs +5 -22
  78. package/build/components/visual-editor/index.cjs.map +2 -2
  79. package/build/store/private-actions.cjs +0 -8
  80. package/build/store/private-actions.cjs.map +2 -2
  81. package/build/store/private-selectors.cjs +0 -5
  82. package/build/store/private-selectors.cjs.map +2 -2
  83. package/build/store/reducer.cjs +0 -10
  84. package/build/store/reducer.cjs.map +2 -2
  85. package/build/utils/media-finalize/index.cjs +3 -2
  86. package/build/utils/media-finalize/index.cjs.map +2 -2
  87. package/build/utils/media-upload/index.cjs +14 -25
  88. package/build/utils/media-upload/index.cjs.map +2 -2
  89. package/build-module/components/collab-sidebar/{comment-menu-item.mjs → add-note-menu-item.mjs} +10 -11
  90. package/build-module/components/collab-sidebar/add-note-menu-item.mjs.map +7 -0
  91. package/build-module/components/collab-sidebar/{add-comment.mjs → add-note.mjs} +26 -29
  92. package/build-module/components/collab-sidebar/add-note.mjs.map +7 -0
  93. package/build-module/components/collab-sidebar/board-store.mjs +3 -0
  94. package/build-module/components/collab-sidebar/board-store.mjs.map +2 -2
  95. package/build-module/components/collab-sidebar/floating-container.mjs +4 -3
  96. package/build-module/components/collab-sidebar/floating-container.mjs.map +2 -2
  97. package/build-module/components/collab-sidebar/hooks.mjs +91 -137
  98. package/build-module/components/collab-sidebar/hooks.mjs.map +2 -2
  99. package/build-module/components/collab-sidebar/index.mjs +29 -84
  100. package/build-module/components/collab-sidebar/index.mjs.map +2 -2
  101. package/build-module/components/collab-sidebar/{comment-author-info.mjs → note-byline.mjs} +7 -7
  102. package/build-module/components/collab-sidebar/note-byline.mjs.map +7 -0
  103. package/build-module/components/collab-sidebar/note-card.mjs +33 -0
  104. package/build-module/components/collab-sidebar/note-card.mjs.map +7 -0
  105. package/build-module/components/collab-sidebar/note-form.mjs +84 -0
  106. package/build-module/components/collab-sidebar/note-form.mjs.map +7 -0
  107. package/build-module/components/collab-sidebar/{comment-indicator-toolbar.mjs → note-indicator-toolbar.mjs} +25 -29
  108. package/build-module/components/collab-sidebar/note-indicator-toolbar.mjs.map +7 -0
  109. package/build-module/components/collab-sidebar/note-thread.mjs +289 -0
  110. package/build-module/components/collab-sidebar/note-thread.mjs.map +7 -0
  111. package/build-module/components/collab-sidebar/note.mjs +176 -0
  112. package/build-module/components/collab-sidebar/note.mjs.map +7 -0
  113. package/build-module/components/collab-sidebar/notes.mjs +215 -0
  114. package/build-module/components/collab-sidebar/notes.mjs.map +7 -0
  115. package/build-module/components/collab-sidebar/utils.mjs +19 -21
  116. package/build-module/components/collab-sidebar/utils.mjs.map +2 -2
  117. package/build-module/components/document-bar/index.mjs +3 -3
  118. package/build-module/components/document-bar/index.mjs.map +2 -2
  119. package/build-module/components/error-boundary/index.mjs +2 -2
  120. package/build-module/components/error-boundary/index.mjs.map +2 -2
  121. package/build-module/components/list-view-sidebar/list-view-outline.mjs +5 -5
  122. package/build-module/components/list-view-sidebar/list-view-outline.mjs.map +2 -2
  123. package/build-module/components/media/media-editor-modal.mjs +62 -0
  124. package/build-module/components/media/media-editor-modal.mjs.map +7 -0
  125. package/build-module/components/more-menu/index.mjs +3 -7
  126. package/build-module/components/more-menu/index.mjs.map +2 -2
  127. package/build-module/components/post-actions/set-as-homepage.mjs +2 -2
  128. package/build-module/components/post-actions/set-as-homepage.mjs.map +2 -2
  129. package/build-module/components/post-actions/set-as-posts-page.mjs +2 -2
  130. package/build-module/components/post-actions/set-as-posts-page.mjs.map +2 -2
  131. package/build-module/components/post-card-panel/index.mjs +5 -5
  132. package/build-module/components/post-card-panel/index.mjs.map +2 -2
  133. package/build-module/components/post-content-information/index.mjs +2 -2
  134. package/build-module/components/post-content-information/index.mjs.map +2 -2
  135. package/build-module/components/post-excerpt/panel.mjs +2 -2
  136. package/build-module/components/post-excerpt/panel.mjs.map +2 -2
  137. package/build-module/components/post-last-edited-panel/index.mjs +2 -2
  138. package/build-module/components/post-last-edited-panel/index.mjs.map +2 -2
  139. package/build-module/components/post-preview-button/index.mjs +3 -2
  140. package/build-module/components/post-preview-button/index.mjs.map +2 -2
  141. package/build-module/components/post-publish-button/index.mjs +2 -2
  142. package/build-module/components/post-publish-button/index.mjs.map +2 -2
  143. package/build-module/components/post-publish-button/label.mjs +4 -2
  144. package/build-module/components/post-publish-button/label.mjs.map +2 -2
  145. package/build-module/components/post-publish-panel/postpublish.mjs +3 -3
  146. package/build-module/components/post-publish-panel/postpublish.mjs.map +2 -2
  147. package/build-module/components/post-revisions-panel/index.mjs +2 -2
  148. package/build-module/components/post-revisions-panel/index.mjs.map +2 -2
  149. package/build-module/components/post-revisions-preview/diff-markers.mjs +1 -1
  150. package/build-module/components/post-revisions-preview/diff-markers.mjs.map +2 -2
  151. package/build-module/components/post-revisions-preview/revisions-slider.mjs +1 -0
  152. package/build-module/components/post-revisions-preview/revisions-slider.mjs.map +2 -2
  153. package/build-module/components/post-saved-state/index.mjs +4 -1
  154. package/build-module/components/post-saved-state/index.mjs.map +2 -2
  155. package/build-module/components/post-text-editor/index.mjs +2 -3
  156. package/build-module/components/post-text-editor/index.mjs.map +2 -2
  157. package/build-module/components/preview-dropdown/index.mjs +2 -2
  158. package/build-module/components/preview-dropdown/index.mjs.map +2 -2
  159. package/build-module/components/provider/index.mjs +3 -1
  160. package/build-module/components/provider/index.mjs.map +2 -2
  161. package/build-module/components/provider/use-block-editor-settings.mjs +7 -1
  162. package/build-module/components/provider/use-block-editor-settings.mjs.map +2 -2
  163. package/build-module/components/provider/use-upload-save-lock.mjs +2 -12
  164. package/build-module/components/provider/use-upload-save-lock.mjs.map +2 -2
  165. package/build-module/components/resizable-editor/resize-handle.mjs +2 -5
  166. package/build-module/components/resizable-editor/resize-handle.mjs.map +2 -2
  167. package/build-module/components/revision-created-panel/index.mjs +2 -2
  168. package/build-module/components/revision-created-panel/index.mjs.map +2 -2
  169. package/build-module/components/site-discussion/index.mjs +2 -2
  170. package/build-module/components/site-discussion/index.mjs.map +2 -2
  171. package/build-module/components/template-actions-panel/classic-theme-content.mjs +2 -2
  172. package/build-module/components/template-actions-panel/classic-theme-content.mjs.map +2 -2
  173. package/build-module/components/template-part-menu-items/convert-to-regular.mjs +60 -14
  174. package/build-module/components/template-part-menu-items/convert-to-regular.mjs.map +2 -2
  175. package/build-module/components/visual-editor/index.mjs +5 -22
  176. package/build-module/components/visual-editor/index.mjs.map +2 -2
  177. package/build-module/store/private-actions.mjs +0 -7
  178. package/build-module/store/private-actions.mjs.map +2 -2
  179. package/build-module/store/private-selectors.mjs +0 -4
  180. package/build-module/store/private-selectors.mjs.map +2 -2
  181. package/build-module/store/reducer.mjs +0 -9
  182. package/build-module/store/reducer.mjs.map +2 -2
  183. package/build-module/utils/media-finalize/index.mjs +3 -2
  184. package/build-module/utils/media-finalize/index.mjs.map +2 -2
  185. package/build-module/utils/media-upload/index.mjs +14 -25
  186. package/build-module/utils/media-upload/index.mjs.map +2 -2
  187. package/build-style/style-rtl.css +386 -142
  188. package/build-style/style.css +386 -142
  189. package/build-types/components/collab-sidebar/add-note-menu-item.d.ts +5 -0
  190. package/build-types/components/collab-sidebar/add-note-menu-item.d.ts.map +1 -0
  191. package/build-types/components/collab-sidebar/add-note.d.ts +6 -0
  192. package/build-types/components/collab-sidebar/add-note.d.ts.map +1 -0
  193. package/build-types/components/collab-sidebar/board-store.d.ts +1 -0
  194. package/build-types/components/collab-sidebar/board-store.d.ts.map +1 -1
  195. package/build-types/components/collab-sidebar/floating-container.d.ts.map +1 -1
  196. package/build-types/components/collab-sidebar/hooks.d.ts +8 -21
  197. package/build-types/components/collab-sidebar/hooks.d.ts.map +1 -1
  198. package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
  199. package/build-types/components/collab-sidebar/note-byline.d.ts +7 -0
  200. package/build-types/components/collab-sidebar/note-byline.d.ts.map +1 -0
  201. package/build-types/components/collab-sidebar/note-card.d.ts +8 -0
  202. package/build-types/components/collab-sidebar/note-card.d.ts.map +1 -0
  203. package/build-types/components/collab-sidebar/note-form.d.ts +7 -0
  204. package/build-types/components/collab-sidebar/note-form.d.ts.map +1 -0
  205. package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts +5 -0
  206. package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts.map +1 -0
  207. package/build-types/components/collab-sidebar/note-thread.d.ts +11 -0
  208. package/build-types/components/collab-sidebar/note-thread.d.ts.map +1 -0
  209. package/build-types/components/collab-sidebar/note.d.ts +9 -0
  210. package/build-types/components/collab-sidebar/note.d.ts.map +1 -0
  211. package/build-types/components/collab-sidebar/notes.d.ts +7 -0
  212. package/build-types/components/collab-sidebar/notes.d.ts.map +1 -0
  213. package/build-types/components/collab-sidebar/utils.d.ts +21 -20
  214. package/build-types/components/collab-sidebar/utils.d.ts.map +1 -1
  215. package/build-types/components/media/media-editor-modal.d.ts +11 -0
  216. package/build-types/components/media/media-editor-modal.d.ts.map +1 -0
  217. package/build-types/components/more-menu/index.d.ts.map +1 -1
  218. package/build-types/components/post-preview-button/index.d.ts.map +1 -1
  219. package/build-types/components/post-publish-button/index.d.ts.map +1 -1
  220. package/build-types/components/post-publish-button/label.d.ts.map +1 -1
  221. package/build-types/components/post-revisions-preview/revisions-slider.d.ts.map +1 -1
  222. package/build-types/components/post-saved-state/index.d.ts.map +1 -1
  223. package/build-types/components/provider/index.d.ts.map +1 -1
  224. package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
  225. package/build-types/components/provider/use-upload-save-lock.d.ts +0 -2
  226. package/build-types/components/provider/use-upload-save-lock.d.ts.map +1 -1
  227. package/build-types/components/resizable-editor/resize-handle.d.ts.map +1 -1
  228. package/build-types/components/template-part-menu-items/convert-to-regular.d.ts.map +1 -1
  229. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  230. package/build-types/store/private-actions.d.ts +0 -7
  231. package/build-types/store/private-actions.d.ts.map +1 -1
  232. package/build-types/store/private-selectors.d.ts +0 -7
  233. package/build-types/store/private-selectors.d.ts.map +1 -1
  234. package/build-types/store/reducer.d.ts +0 -10
  235. package/build-types/store/reducer.d.ts.map +1 -1
  236. package/build-types/utils/media-finalize/index.d.ts +1 -1
  237. package/build-types/utils/media-finalize/index.d.ts.map +1 -1
  238. package/build-types/utils/media-upload/index.d.ts.map +1 -1
  239. package/package.json +46 -46
  240. package/src/components/collab-sidebar/README.md +117 -0
  241. package/src/components/collab-sidebar/{comment-menu-item.js → add-note-menu-item.js} +8 -10
  242. package/src/components/collab-sidebar/{add-comment.js → add-note.js} +20 -21
  243. package/src/components/collab-sidebar/board-store.js +4 -2
  244. package/src/components/collab-sidebar/floating-container.js +5 -4
  245. package/src/components/collab-sidebar/hooks.js +115 -175
  246. package/src/components/collab-sidebar/index.js +35 -95
  247. package/src/components/collab-sidebar/{comment-author-info.js → note-byline.js} +5 -6
  248. package/src/components/collab-sidebar/note-card.js +36 -0
  249. package/src/components/collab-sidebar/{comment-form.js → note-form.js} +25 -27
  250. package/src/components/collab-sidebar/{comment-indicator-toolbar.js → note-indicator-toolbar.js} +29 -32
  251. package/src/components/collab-sidebar/note-thread.js +331 -0
  252. package/src/components/collab-sidebar/note.js +209 -0
  253. package/src/components/collab-sidebar/notes.js +276 -0
  254. package/src/components/collab-sidebar/style.scss +21 -11
  255. package/src/components/collab-sidebar/test/utils.js +65 -63
  256. package/src/components/collab-sidebar/utils.js +33 -35
  257. package/src/components/document-bar/index.js +4 -4
  258. package/src/components/error-boundary/index.js +3 -3
  259. package/src/components/list-view-sidebar/list-view-outline.js +6 -6
  260. package/src/components/media/media-editor-modal.js +95 -0
  261. package/src/components/more-menu/index.js +3 -7
  262. package/src/components/post-actions/set-as-homepage.js +2 -2
  263. package/src/components/post-actions/set-as-posts-page.js +2 -2
  264. package/src/components/post-card-panel/index.js +7 -7
  265. package/src/components/post-content-information/index.js +3 -3
  266. package/src/components/post-excerpt/panel.js +3 -3
  267. package/src/components/post-last-edited-panel/index.js +3 -3
  268. package/src/components/post-preview-button/index.js +3 -2
  269. package/src/components/post-publish-button/index.js +6 -5
  270. package/src/components/post-publish-button/label.js +3 -1
  271. package/src/components/post-publish-panel/postpublish.js +2 -2
  272. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +8 -14
  273. package/src/components/post-revisions-panel/index.js +3 -3
  274. package/src/components/post-revisions-preview/diff-markers.js +1 -1
  275. package/src/components/post-revisions-preview/revisions-slider.js +1 -0
  276. package/src/components/post-saved-state/index.js +4 -1
  277. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +0 -1
  278. package/src/components/post-text-editor/index.js +3 -3
  279. package/src/components/preview-dropdown/index.js +2 -2
  280. package/src/components/provider/index.js +4 -0
  281. package/src/components/provider/use-block-editor-settings.js +10 -0
  282. package/src/components/provider/use-upload-save-lock.js +2 -17
  283. package/src/components/resizable-editor/resize-handle.js +2 -5
  284. package/src/components/revision-created-panel/index.js +3 -3
  285. package/src/components/site-discussion/index.js +3 -3
  286. package/src/components/template-actions-panel/classic-theme-content.js +3 -3
  287. package/src/components/template-part-menu-items/convert-to-regular.js +74 -12
  288. package/src/components/visual-editor/index.js +2 -29
  289. package/src/store/private-actions.js +0 -13
  290. package/src/store/private-selectors.js +0 -10
  291. package/src/store/reducer.js +0 -16
  292. package/src/utils/media-finalize/index.js +2 -1
  293. package/src/utils/media-finalize/test/index.js +25 -1
  294. package/src/utils/media-upload/index.js +26 -29
  295. package/build/components/collab-sidebar/add-comment.cjs.map +0 -7
  296. package/build/components/collab-sidebar/comment-author-info.cjs.map +0 -7
  297. package/build/components/collab-sidebar/comment-form.cjs.map +0 -7
  298. package/build/components/collab-sidebar/comment-indicator-toolbar.cjs.map +0 -7
  299. package/build/components/collab-sidebar/comment-menu-item.cjs.map +0 -7
  300. package/build/components/collab-sidebar/comments.cjs +0 -696
  301. package/build/components/collab-sidebar/comments.cjs.map +0 -7
  302. package/build-module/components/collab-sidebar/add-comment.mjs.map +0 -7
  303. package/build-module/components/collab-sidebar/comment-author-info.mjs.map +0 -7
  304. package/build-module/components/collab-sidebar/comment-form.mjs +0 -82
  305. package/build-module/components/collab-sidebar/comment-form.mjs.map +0 -7
  306. package/build-module/components/collab-sidebar/comment-indicator-toolbar.mjs.map +0 -7
  307. package/build-module/components/collab-sidebar/comment-menu-item.mjs.map +0 -7
  308. package/build-module/components/collab-sidebar/comments.mjs +0 -678
  309. package/build-module/components/collab-sidebar/comments.mjs.map +0 -7
  310. package/build-types/components/collab-sidebar/add-comment.d.ts +0 -6
  311. package/build-types/components/collab-sidebar/add-comment.d.ts.map +0 -1
  312. package/build-types/components/collab-sidebar/comment-author-info.d.ts +0 -8
  313. package/build-types/components/collab-sidebar/comment-author-info.d.ts.map +0 -1
  314. package/build-types/components/collab-sidebar/comment-form.d.ts +0 -9
  315. package/build-types/components/collab-sidebar/comment-form.d.ts.map +0 -1
  316. package/build-types/components/collab-sidebar/comment-indicator-toolbar.d.ts +0 -6
  317. package/build-types/components/collab-sidebar/comment-indicator-toolbar.d.ts.map +0 -1
  318. package/build-types/components/collab-sidebar/comment-menu-item.d.ts +0 -6
  319. package/build-types/components/collab-sidebar/comment-menu-item.d.ts.map +0 -1
  320. package/build-types/components/collab-sidebar/comments.d.ts +0 -10
  321. package/build-types/components/collab-sidebar/comments.d.ts.map +0 -1
  322. package/src/components/collab-sidebar/comments.js +0 -812
@@ -1,678 +0,0 @@
1
- // packages/editor/src/components/collab-sidebar/comments.js
2
- import clsx from "clsx";
3
- import {
4
- useState,
5
- RawHTML,
6
- useEffect,
7
- useMemo,
8
- useRef
9
- } from "@wordpress/element";
10
- import {
11
- __experimentalText as Text,
12
- __experimentalHStack as HStack,
13
- __experimentalVStack as VStack,
14
- __experimentalConfirmDialog as ConfirmDialog,
15
- Button,
16
- FlexItem,
17
- privateApis as componentsPrivateApis
18
- } from "@wordpress/components";
19
- import { useDebounce } from "@wordpress/compose";
20
- import { published, moreVertical } from "@wordpress/icons";
21
- import { __, _x, sprintf, _n } from "@wordpress/i18n";
22
- import { useSelect, useDispatch } from "@wordpress/data";
23
- import { __unstableStripHTML as stripHTML } from "@wordpress/dom";
24
- import {
25
- store as blockEditorStore,
26
- privateApis as blockEditorPrivateApis
27
- } from "@wordpress/block-editor";
28
- import { unlock } from "../../lock-unlock.mjs";
29
- import CommentAuthorInfo from "./comment-author-info.mjs";
30
- import CommentForm from "./comment-form.mjs";
31
- import { focusCommentThread, getCommentExcerpt } from "./utils.mjs";
32
- import { useFloatingBoard, useFloatingThread } from "./hooks.mjs";
33
- import { FloatingContainer } from "./floating-container.mjs";
34
- import { AddComment } from "./add-comment.mjs";
35
- import { store as editorStore } from "../../store/index.mjs";
36
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
37
- var { useBlockElement } = unlock(blockEditorPrivateApis);
38
- var { Menu } = unlock(componentsPrivateApis);
39
- function Comments({
40
- threads: noteThreads,
41
- onEditComment,
42
- onAddReply,
43
- onCommentDelete,
44
- commentSidebarRef,
45
- isFloating = false
46
- }) {
47
- const { selectNote } = unlock(useDispatch(editorStore));
48
- const { selectBlock, toggleBlockSpotlight } = unlock(
49
- useDispatch(blockEditorStore)
50
- );
51
- const { blockCommentId, selectedBlockClientId, orderedBlockIds } = useSelect((select) => {
52
- const {
53
- getBlockAttributes,
54
- getSelectedBlockClientId,
55
- getClientIdsWithDescendants
56
- } = select(blockEditorStore);
57
- const clientId = getSelectedBlockClientId();
58
- return {
59
- blockCommentId: clientId ? getBlockAttributes(clientId)?.metadata?.noteId : null,
60
- selectedBlockClientId: clientId,
61
- orderedBlockIds: getClientIdsWithDescendants()
62
- };
63
- }, []);
64
- const { selectedNote, noteFocused } = useSelect((select) => {
65
- const { getSelectedNote, isNoteFocused } = unlock(
66
- select(editorStore)
67
- );
68
- return {
69
- selectedNote: getSelectedNote(),
70
- noteFocused: isNoteFocused()
71
- };
72
- }, []);
73
- const relatedBlockElement = useBlockElement(selectedBlockClientId);
74
- const threads = useMemo(() => {
75
- const t = [...noteThreads];
76
- const orderedThreads = [];
77
- if (isFloating && selectedNote === "new") {
78
- const newNoteThread = {
79
- id: "new",
80
- blockClientId: selectedBlockClientId,
81
- content: { rendered: "" }
82
- };
83
- orderedBlockIds.forEach((blockId) => {
84
- if (blockId === selectedBlockClientId) {
85
- orderedThreads.push(newNoteThread);
86
- } else {
87
- const threadForBlock = t.find(
88
- (thread) => thread.blockClientId === blockId
89
- );
90
- if (threadForBlock) {
91
- orderedThreads.push(threadForBlock);
92
- }
93
- }
94
- });
95
- return orderedThreads;
96
- }
97
- return t;
98
- }, [
99
- noteThreads,
100
- isFloating,
101
- selectedNote,
102
- selectedBlockClientId,
103
- orderedBlockIds
104
- ]);
105
- const handleDelete = async (comment) => {
106
- const currentIndex = threads.findIndex((t) => t.id === comment.id);
107
- const nextThread = threads[currentIndex + 1];
108
- const prevThread = threads[currentIndex - 1];
109
- await onCommentDelete(comment);
110
- if (comment.parent !== 0) {
111
- selectNote(comment.parent);
112
- focusCommentThread(comment.parent, commentSidebarRef.current);
113
- return;
114
- }
115
- if (nextThread) {
116
- selectNote(nextThread.id);
117
- focusCommentThread(nextThread.id, commentSidebarRef.current);
118
- } else if (prevThread) {
119
- selectNote(prevThread.id);
120
- focusCommentThread(prevThread.id, commentSidebarRef.current);
121
- } else {
122
- selectNote(void 0);
123
- toggleBlockSpotlight(comment.blockClientId, false);
124
- relatedBlockElement?.focus();
125
- }
126
- };
127
- useEffect(() => {
128
- selectNote(blockCommentId ?? void 0);
129
- }, [blockCommentId, selectNote]);
130
- useEffect(() => {
131
- if (noteFocused && selectedNote) {
132
- focusCommentThread(
133
- selectedNote,
134
- commentSidebarRef.current,
135
- selectedNote === "new" ? "textarea" : void 0
136
- );
137
- selectNote(selectedNote);
138
- }
139
- }, [noteFocused, selectedNote, selectNote, commentSidebarRef]);
140
- const { boardOffsets, registerThread, unregisterThread } = useFloatingBoard(
141
- {
142
- threads,
143
- selectedNoteId: selectedNote,
144
- isFloating
145
- }
146
- );
147
- const handleThreadNavigation = (event, thread, isSelected) => {
148
- if (event.defaultPrevented) {
149
- return;
150
- }
151
- const currentIndex = threads.findIndex((t) => t.id === thread.id);
152
- if ((event.key === "Enter" || event.key === "ArrowRight") && event.currentTarget === event.target && !isSelected) {
153
- selectNote(thread.id);
154
- if (!!thread.blockClientId) {
155
- selectBlock(thread.blockClientId, null);
156
- toggleBlockSpotlight(thread.blockClientId, true);
157
- }
158
- } else if ((event.key === "Enter" || event.key === "ArrowLeft") && event.currentTarget === event.target && isSelected || event.key === "Escape") {
159
- selectNote(void 0);
160
- if (thread.blockClientId) {
161
- toggleBlockSpotlight(thread.blockClientId, false);
162
- }
163
- focusCommentThread(thread.id, commentSidebarRef.current);
164
- } else if (event.key === "ArrowDown" && currentIndex < threads.length - 1 && event.currentTarget === event.target) {
165
- const nextThread = threads[currentIndex + 1];
166
- focusCommentThread(nextThread.id, commentSidebarRef.current);
167
- } else if (event.key === "ArrowUp" && currentIndex > 0 && event.currentTarget === event.target) {
168
- const prevThread = threads[currentIndex - 1];
169
- focusCommentThread(prevThread.id, commentSidebarRef.current);
170
- } else if (event.key === "Home" && event.currentTarget === event.target) {
171
- focusCommentThread(threads[0].id, commentSidebarRef.current);
172
- } else if (event.key === "End" && event.currentTarget === event.target) {
173
- focusCommentThread(
174
- threads[threads.length - 1].id,
175
- commentSidebarRef.current
176
- );
177
- }
178
- };
179
- const hasThreads = Array.isArray(threads) && threads.length > 0;
180
- if (!hasThreads && !isFloating) {
181
- return /* @__PURE__ */ jsx(
182
- AddComment,
183
- {
184
- onSubmit: onAddReply,
185
- commentSidebarRef
186
- }
187
- );
188
- }
189
- return /* @__PURE__ */ jsxs(Fragment, { children: [
190
- !isFloating && selectedNote === "new" && /* @__PURE__ */ jsx(
191
- AddComment,
192
- {
193
- onSubmit: onAddReply,
194
- commentSidebarRef
195
- }
196
- ),
197
- threads.map((thread) => /* @__PURE__ */ jsx(
198
- Thread,
199
- {
200
- thread,
201
- onAddReply,
202
- onCommentDelete: handleDelete,
203
- onEditComment,
204
- isSelected: selectedNote === thread.id,
205
- commentSidebarRef,
206
- floating: isFloating ? {
207
- calculatedOffset: boardOffsets[thread.id] ?? 0,
208
- registerThread,
209
- unregisterThread
210
- } : void 0,
211
- onKeyDown: (event) => handleThreadNavigation(
212
- event,
213
- thread,
214
- selectedNote === thread.id
215
- )
216
- },
217
- thread.id
218
- ))
219
- ] });
220
- }
221
- function Thread({
222
- thread,
223
- onEditComment,
224
- onAddReply,
225
- onCommentDelete,
226
- isSelected,
227
- commentSidebarRef,
228
- floating,
229
- onKeyDown
230
- }) {
231
- const isFloating = !!floating;
232
- const { toggleBlockHighlight, selectBlock, toggleBlockSpotlight } = unlock(
233
- useDispatch(blockEditorStore)
234
- );
235
- const { selectNote } = unlock(useDispatch(editorStore));
236
- const relatedBlockElement = useBlockElement(thread.blockClientId);
237
- const debouncedToggleBlockHighlight = useDebounce(
238
- toggleBlockHighlight,
239
- 50
240
- );
241
- const { y, refs } = useFloatingThread({
242
- thread,
243
- calculatedOffset: floating?.calculatedOffset ?? 0,
244
- registerThread: floating?.registerThread,
245
- unregisterThread: floating?.unregisterThread
246
- });
247
- const isKeyboardTabbingRef = useRef(false);
248
- const onMouseEnter = () => {
249
- debouncedToggleBlockHighlight(thread.blockClientId, true);
250
- };
251
- const onMouseLeave = () => {
252
- debouncedToggleBlockHighlight(thread.blockClientId, false);
253
- };
254
- const onFocus = () => {
255
- toggleBlockHighlight(thread.blockClientId, true);
256
- };
257
- const onBlur = (event) => {
258
- if (!document.hasFocus()) {
259
- return;
260
- }
261
- const isNoteFocused = event.relatedTarget?.closest(
262
- ".editor-collab-sidebar-panel__thread"
263
- );
264
- const isDialogFocused = event.relatedTarget?.closest('[role="dialog"]');
265
- const isTabbing = isKeyboardTabbingRef.current;
266
- if (isNoteFocused && !isTabbing) {
267
- return;
268
- }
269
- if (isDialogFocused) {
270
- return;
271
- }
272
- if (isTabbing && event.currentTarget.contains(event.relatedTarget)) {
273
- return;
274
- }
275
- toggleBlockHighlight(thread.blockClientId, false);
276
- unselectThread();
277
- };
278
- const handleCommentSelect = () => {
279
- selectNote(thread.id);
280
- toggleBlockSpotlight(thread.blockClientId, true);
281
- if (!!thread.blockClientId) {
282
- selectBlock(thread.blockClientId, null);
283
- }
284
- };
285
- const unselectThread = () => {
286
- selectNote(void 0);
287
- toggleBlockSpotlight(thread.blockClientId, false);
288
- };
289
- const allReplies = thread?.reply || [];
290
- const lastReply = allReplies.length > 0 ? allReplies[allReplies.length - 1] : void 0;
291
- const restReplies = allReplies.length > 0 ? allReplies.slice(0, -1) : [];
292
- const commentExcerpt = getCommentExcerpt(
293
- stripHTML(thread.content?.rendered),
294
- 10
295
- );
296
- const ariaLabel = !!thread.blockClientId ? sprintf(
297
- // translators: %s: note excerpt
298
- __("Note: %s"),
299
- commentExcerpt
300
- ) : sprintf(
301
- // translators: %s: note excerpt
302
- __("Original block deleted. Note: %s"),
303
- commentExcerpt
304
- );
305
- if (isFloating && thread.id === "new") {
306
- return /* @__PURE__ */ jsx(
307
- AddComment,
308
- {
309
- onSubmit: onAddReply,
310
- commentSidebarRef,
311
- floating: { y, refs }
312
- }
313
- );
314
- }
315
- return /* @__PURE__ */ jsxs(
316
- FloatingContainer,
317
- {
318
- floating: isFloating ? { y, refs } : void 0,
319
- className: clsx("editor-collab-sidebar-panel__thread", {
320
- "is-selected": isSelected
321
- }),
322
- id: `comment-thread-${thread.id}`,
323
- spacing: "3",
324
- onClick: handleCommentSelect,
325
- onMouseEnter,
326
- onMouseLeave,
327
- onFocus,
328
- onBlur,
329
- onKeyUp: (event) => {
330
- if (event.key === "Tab") {
331
- isKeyboardTabbingRef.current = false;
332
- }
333
- },
334
- onKeyDown: (event) => {
335
- if (event.key === "Tab") {
336
- isKeyboardTabbingRef.current = true;
337
- } else {
338
- onKeyDown(event);
339
- }
340
- },
341
- tabIndex: 0,
342
- role: "treeitem",
343
- "aria-label": ariaLabel,
344
- "aria-expanded": isSelected,
345
- children: [
346
- /* @__PURE__ */ jsx(
347
- Button,
348
- {
349
- className: "editor-collab-sidebar-panel__skip-to-comment",
350
- variant: "secondary",
351
- size: "compact",
352
- onClick: () => {
353
- focusCommentThread(
354
- thread.id,
355
- commentSidebarRef.current,
356
- "textarea"
357
- );
358
- },
359
- children: __("Add new reply")
360
- }
361
- ),
362
- !thread.blockClientId && /* @__PURE__ */ jsx(Text, { as: "p", weight: 500, variant: "muted", children: __("Original block deleted.") }),
363
- /* @__PURE__ */ jsx(
364
- CommentBoard,
365
- {
366
- thread,
367
- isExpanded: isSelected,
368
- onEdit: (params = {}) => {
369
- onEditComment(params);
370
- if (params.status === "approved") {
371
- unselectThread();
372
- if (isFloating) {
373
- relatedBlockElement?.focus();
374
- } else {
375
- focusCommentThread(
376
- thread.id,
377
- commentSidebarRef.current
378
- );
379
- }
380
- }
381
- },
382
- onDelete: onCommentDelete
383
- }
384
- ),
385
- isSelected && allReplies.map((reply) => /* @__PURE__ */ jsx(
386
- CommentBoard,
387
- {
388
- thread: reply,
389
- parent: thread,
390
- isExpanded: isSelected,
391
- onEdit: onEditComment,
392
- onDelete: onCommentDelete
393
- },
394
- reply.id
395
- )),
396
- !isSelected && restReplies.length > 0 && /* @__PURE__ */ jsx(HStack, { className: "editor-collab-sidebar-panel__more-reply-separator", children: /* @__PURE__ */ jsx(
397
- Button,
398
- {
399
- size: "compact",
400
- variant: "tertiary",
401
- className: "editor-collab-sidebar-panel__more-reply-button",
402
- onClick: () => {
403
- selectNote(thread.id);
404
- focusCommentThread(
405
- thread.id,
406
- commentSidebarRef.current
407
- );
408
- },
409
- children: sprintf(
410
- // translators: %s: number of replies.
411
- _n(
412
- "%s more reply",
413
- "%s more replies",
414
- restReplies.length
415
- ),
416
- restReplies.length
417
- )
418
- }
419
- ) }),
420
- !isSelected && lastReply && /* @__PURE__ */ jsx(
421
- CommentBoard,
422
- {
423
- thread: lastReply,
424
- parent: thread,
425
- isExpanded: isSelected,
426
- onEdit: onEditComment,
427
- onDelete: onCommentDelete
428
- }
429
- ),
430
- isSelected && /* @__PURE__ */ jsxs(VStack, { spacing: "2", role: "treeitem", children: [
431
- /* @__PURE__ */ jsx(HStack, { alignment: "left", spacing: "3", justify: "flex-start", children: /* @__PURE__ */ jsx(CommentAuthorInfo, {}) }),
432
- /* @__PURE__ */ jsx(VStack, { spacing: "2", children: /* @__PURE__ */ jsx(
433
- CommentForm,
434
- {
435
- onSubmit: (inputComment) => {
436
- if ("approved" === thread.status) {
437
- onEditComment({
438
- id: thread.id,
439
- status: "hold",
440
- content: inputComment
441
- });
442
- } else {
443
- onAddReply({
444
- content: inputComment,
445
- parent: thread.id
446
- });
447
- }
448
- },
449
- onCancel: (event) => {
450
- event.stopPropagation();
451
- unselectThread();
452
- focusCommentThread(
453
- thread.id,
454
- commentSidebarRef.current
455
- );
456
- },
457
- submitButtonText: "approved" === thread.status ? __("Reopen & Reply") : __("Reply"),
458
- rows: "approved" === thread.status ? 2 : 4,
459
- labelText: sprintf(
460
- // translators: %1$s: note identifier, %2$s: author name
461
- __("Reply to note %1$s by %2$s"),
462
- thread.id,
463
- thread.author_name
464
- )
465
- }
466
- ) })
467
- ] }),
468
- !!thread.blockClientId && /* @__PURE__ */ jsx(
469
- Button,
470
- {
471
- className: "editor-collab-sidebar-panel__skip-to-block",
472
- variant: "secondary",
473
- size: "compact",
474
- onClick: (event) => {
475
- event.stopPropagation();
476
- relatedBlockElement?.focus();
477
- },
478
- children: __("Back to block")
479
- }
480
- )
481
- ]
482
- }
483
- );
484
- }
485
- var CommentBoard = ({ thread, parent, isExpanded, onEdit, onDelete }) => {
486
- const [actionState, setActionState] = useState(false);
487
- const [showConfirmDialog, setShowConfirmDialog] = useState(false);
488
- const actionButtonRef = useRef(null);
489
- const handleConfirmDelete = () => {
490
- onDelete(thread);
491
- setActionState(false);
492
- setShowConfirmDialog(false);
493
- };
494
- const handleCancel = () => {
495
- setActionState(false);
496
- setShowConfirmDialog(false);
497
- actionButtonRef.current?.focus();
498
- };
499
- const isResolutionComment = thread.type === "note" && thread.meta && (thread.meta._wp_note_status === "resolved" || thread.meta._wp_note_status === "reopen");
500
- const actions = [
501
- {
502
- id: "edit",
503
- title: __("Edit"),
504
- isEligible: ({ status }) => status !== "approved",
505
- onClick: () => {
506
- setActionState("edit");
507
- }
508
- },
509
- {
510
- id: "reopen",
511
- title: _x("Reopen", "Reopen note"),
512
- isEligible: ({ status }) => status === "approved",
513
- onClick: () => {
514
- onEdit({ id: thread.id, status: "hold" });
515
- }
516
- },
517
- {
518
- id: "delete",
519
- title: __("Delete"),
520
- isEligible: () => true,
521
- onClick: () => {
522
- setActionState("delete");
523
- setShowConfirmDialog(true);
524
- }
525
- }
526
- ];
527
- const canResolve = thread.parent === 0;
528
- const moreActions = parent?.status !== "approved" ? actions.filter((item) => item.isEligible(thread)) : [];
529
- const deleteConfirmMessage = (
530
- // When deleting a top level note, descendants will also be deleted.
531
- thread.parent === 0 ? __(
532
- "Are you sure you want to delete this note? This will also delete all of this note's replies."
533
- ) : __("Are you sure you want to delete this reply?")
534
- );
535
- return /* @__PURE__ */ jsxs(
536
- VStack,
537
- {
538
- spacing: "2",
539
- role: thread.parent !== 0 ? "treeitem" : void 0,
540
- children: [
541
- /* @__PURE__ */ jsxs(HStack, { alignment: "left", spacing: "3", justify: "flex-start", children: [
542
- /* @__PURE__ */ jsx(
543
- CommentAuthorInfo,
544
- {
545
- avatar: thread?.author_avatar_urls?.[48],
546
- name: thread?.author_name,
547
- date: thread?.date,
548
- userId: thread?.author
549
- }
550
- ),
551
- isExpanded && /* @__PURE__ */ jsx(
552
- FlexItem,
553
- {
554
- className: "editor-collab-sidebar-panel__comment-status",
555
- onClick: (event) => {
556
- event.stopPropagation();
557
- },
558
- children: /* @__PURE__ */ jsxs(HStack, { spacing: "0", children: [
559
- canResolve && /* @__PURE__ */ jsx(
560
- Button,
561
- {
562
- label: _x(
563
- "Resolve",
564
- "Mark note as resolved"
565
- ),
566
- size: "small",
567
- icon: published,
568
- disabled: thread.status === "approved",
569
- accessibleWhenDisabled: thread.status === "approved",
570
- onClick: () => {
571
- onEdit({
572
- id: thread.id,
573
- status: "approved"
574
- });
575
- }
576
- }
577
- ),
578
- /* @__PURE__ */ jsxs(Menu, { placement: "bottom-end", children: [
579
- /* @__PURE__ */ jsx(
580
- Menu.TriggerButton,
581
- {
582
- render: /* @__PURE__ */ jsx(
583
- Button,
584
- {
585
- ref: actionButtonRef,
586
- size: "small",
587
- icon: moreVertical,
588
- label: __("Actions"),
589
- disabled: !moreActions.length,
590
- accessibleWhenDisabled: true
591
- }
592
- )
593
- }
594
- ),
595
- /* @__PURE__ */ jsx(
596
- Menu.Popover,
597
- {
598
- modal: false,
599
- children: moreActions.map((action) => /* @__PURE__ */ jsx(
600
- Menu.Item,
601
- {
602
- onClick: () => action.onClick(),
603
- children: /* @__PURE__ */ jsx(Menu.ItemLabel, { children: action.title })
604
- },
605
- action.id
606
- ))
607
- }
608
- )
609
- ] })
610
- ] })
611
- }
612
- )
613
- ] }),
614
- "edit" === actionState ? /* @__PURE__ */ jsx(
615
- CommentForm,
616
- {
617
- onSubmit: (value) => {
618
- onEdit({
619
- id: thread.id,
620
- content: value
621
- });
622
- setActionState(false);
623
- actionButtonRef.current?.focus();
624
- },
625
- onCancel: () => handleCancel(),
626
- thread,
627
- submitButtonText: _x("Update", "verb"),
628
- labelText: sprintf(
629
- // translators: %1$s: note identifier, %2$s: author name.
630
- __("Edit note %1$s by %2$s"),
631
- thread.id,
632
- thread.author_name
633
- )
634
- }
635
- ) : /* @__PURE__ */ jsx(
636
- RawHTML,
637
- {
638
- className: clsx(
639
- "editor-collab-sidebar-panel__user-comment",
640
- {
641
- "editor-collab-sidebar-panel__resolution-text": isResolutionComment
642
- }
643
- ),
644
- children: isResolutionComment ? (() => {
645
- const actionText = thread.meta._wp_note_status === "resolved" ? __("Marked as resolved") : __("Reopened");
646
- const content = thread?.content?.raw;
647
- if (content && typeof content === "string" && content.trim() !== "") {
648
- return sprintf(
649
- // translators: %1$s: action label ("Marked as resolved" or "Reopened"); %2$s: note text.
650
- __("%1$s: %2$s"),
651
- actionText,
652
- content
653
- );
654
- }
655
- return actionText;
656
- })() : thread?.content?.rendered
657
- }
658
- ),
659
- "delete" === actionState && /* @__PURE__ */ jsx(
660
- ConfirmDialog,
661
- {
662
- isOpen: showConfirmDialog,
663
- onConfirm: handleConfirmDelete,
664
- onCancel: handleCancel,
665
- confirmButtonText: __("Delete"),
666
- children: deleteConfirmMessage
667
- }
668
- )
669
- ]
670
- }
671
- );
672
- };
673
- var comments_default = Comments;
674
- export {
675
- Comments,
676
- comments_default as default
677
- };
678
- //# sourceMappingURL=comments.mjs.map