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