@wordpress/editor 14.9.0 → 14.11.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 (518) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +2 -2
  3. package/build/bindings/api.js +0 -29
  4. package/build/bindings/api.js.map +1 -1
  5. package/build/bindings/post-meta.js +2 -1
  6. package/build/bindings/post-meta.js.map +1 -1
  7. package/build/components/autocompleters/user.js.map +1 -1
  8. package/build/components/block-manager/index.js +2 -2
  9. package/build/components/block-manager/index.js.map +1 -1
  10. package/build/components/collab-sidebar/add-comment.js +120 -0
  11. package/build/components/collab-sidebar/add-comment.js.map +1 -0
  12. package/build/components/collab-sidebar/comment-button-toolbar.js +37 -0
  13. package/build/components/collab-sidebar/comment-button-toolbar.js.map +1 -0
  14. package/build/components/collab-sidebar/comment-button.js +37 -0
  15. package/build/components/collab-sidebar/comment-button.js.map +1 -0
  16. package/build/components/collab-sidebar/comments.js +321 -0
  17. package/build/components/collab-sidebar/comments.js.map +1 -0
  18. package/build/components/collab-sidebar/constants.js +8 -0
  19. package/build/components/collab-sidebar/constants.js.map +1 -0
  20. package/build/components/collab-sidebar/index.js +272 -0
  21. package/build/components/collab-sidebar/index.js.map +1 -0
  22. package/build/components/collab-sidebar/utils.js +16 -0
  23. package/build/components/collab-sidebar/utils.js.map +1 -0
  24. package/build/components/commands/index.js +6 -6
  25. package/build/components/commands/index.js.map +1 -1
  26. package/build/components/create-template-part-modal/index.js.map +1 -1
  27. package/build/components/create-template-part-modal/utils.js.map +1 -1
  28. package/build/components/document-bar/index.js +8 -7
  29. package/build/components/document-bar/index.js.map +1 -1
  30. package/build/components/document-outline/index.js.map +1 -1
  31. package/build/components/document-outline/item.js.map +1 -1
  32. package/build/components/document-tools/index.js +2 -6
  33. package/build/components/document-tools/index.js.map +1 -1
  34. package/build/components/editor-interface/index.js +4 -14
  35. package/build/components/editor-interface/index.js.map +1 -1
  36. package/build/components/entities-saved-states/index.js +2 -2
  37. package/build/components/entities-saved-states/index.js.map +1 -1
  38. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
  39. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  40. package/build/components/global-styles-provider/index.js +13 -3
  41. package/build/components/global-styles-provider/index.js.map +1 -1
  42. package/build/components/header/index.js +5 -2
  43. package/build/components/header/index.js.map +1 -1
  44. package/build/components/inserter-sidebar/index.js +2 -2
  45. package/build/components/inserter-sidebar/index.js.map +1 -1
  46. package/build/components/media-categories/index.js.map +1 -1
  47. package/build/components/page-attributes/parent.js +5 -5
  48. package/build/components/page-attributes/parent.js.map +1 -1
  49. package/build/components/plugin-document-setting-panel/index.js.map +1 -1
  50. package/build/components/plugin-more-menu-item/index.js +13 -11
  51. package/build/components/plugin-more-menu-item/index.js.map +1 -1
  52. package/build/components/plugin-preview-menu-item/index.js +15 -13
  53. package/build/components/plugin-preview-menu-item/index.js.map +1 -1
  54. package/build/components/plugin-sidebar/index.js +0 -15
  55. package/build/components/plugin-sidebar/index.js.map +1 -1
  56. package/build/components/post-actions/index.js +5 -5
  57. package/build/components/post-actions/index.js.map +1 -1
  58. package/build/components/post-author/panel.js +4 -4
  59. package/build/components/post-author/panel.js.map +1 -1
  60. package/build/components/post-card-panel/index.js +7 -36
  61. package/build/components/post-card-panel/index.js.map +1 -1
  62. package/build/components/post-content-information/index.js +2 -3
  63. package/build/components/post-content-information/index.js.map +1 -1
  64. package/build/components/post-featured-image/index.js +26 -7
  65. package/build/components/post-featured-image/index.js.map +1 -1
  66. package/build/components/post-format/index.js +1 -1
  67. package/build/components/post-format/index.js.map +1 -1
  68. package/build/components/post-last-revision/index.js +1 -1
  69. package/build/components/post-last-revision/index.js.map +1 -1
  70. package/build/components/post-locked-modal/index.js +2 -2
  71. package/build/components/post-locked-modal/index.js.map +1 -1
  72. package/build/components/post-preview-button/index.js +1 -1
  73. package/build/components/post-preview-button/index.js.map +1 -1
  74. package/build/components/post-publish-button/index.js.map +1 -1
  75. package/build/components/post-publish-panel/maybe-post-format-panel.js +1 -1
  76. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  77. package/build/components/post-publish-panel/maybe-upload-media.js +1 -0
  78. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  79. package/build/components/post-publish-panel/media-util.js +1 -0
  80. package/build/components/post-publish-panel/media-util.js.map +1 -1
  81. package/build/components/post-publish-panel/postpublish.js +1 -1
  82. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  83. package/build/components/post-schedule/label.js +1 -1
  84. package/build/components/post-schedule/label.js.map +1 -1
  85. package/build/components/post-taxonomies/flat-term-selector.js +13 -5
  86. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  87. package/build/components/post-taxonomies/hierarchical-term-selector.js +3 -2
  88. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  89. package/build/components/post-taxonomies/index.js +1 -1
  90. package/build/components/post-taxonomies/index.js.map +1 -1
  91. package/build/components/post-taxonomies/panel.js.map +1 -1
  92. package/build/components/post-template/classic-theme.js +2 -4
  93. package/build/components/post-template/classic-theme.js.map +1 -1
  94. package/build/components/post-text-editor/index.js.map +1 -1
  95. package/build/components/post-title/index.js +15 -19
  96. package/build/components/post-title/index.js.map +1 -1
  97. package/build/components/post-title/index.native.js +2 -2
  98. package/build/components/post-title/index.native.js.map +1 -1
  99. package/build/components/post-url/index.js +76 -63
  100. package/build/components/post-url/index.js.map +1 -1
  101. package/build/components/post-url/panel.js +49 -29
  102. package/build/components/post-url/panel.js.map +1 -1
  103. package/build/components/post-visibility/index.js.map +1 -1
  104. package/build/components/preferences-modal/index.js.map +1 -1
  105. package/build/components/preview-dropdown/index.js +0 -4
  106. package/build/components/preview-dropdown/index.js.map +1 -1
  107. package/build/components/provider/index.js +10 -12
  108. package/build/components/provider/index.js.map +1 -1
  109. package/build/components/provider/use-block-editor-settings.js +1 -1
  110. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  111. package/build/components/resizable-editor/resize-handle.js.map +1 -1
  112. package/build/components/sidebar/header.js +2 -1
  113. package/build/components/sidebar/header.js.map +1 -1
  114. package/build/components/sidebar/index.js +3 -3
  115. package/build/components/sidebar/index.js.map +1 -1
  116. package/build/components/time-to-read/index.js +2 -2
  117. package/build/components/time-to-read/index.js.map +1 -1
  118. package/build/components/visual-editor/edit-template-blocks-notification.js +4 -1
  119. package/build/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  120. package/build/components/visual-editor/index.js +24 -25
  121. package/build/components/visual-editor/index.js.map +1 -1
  122. package/build/components/visual-editor/use-select-nearest-editable-block.js.map +1 -1
  123. package/build/components/visual-editor/use-zoom-out-mode-exit.js +52 -0
  124. package/build/components/visual-editor/use-zoom-out-mode-exit.js.map +1 -0
  125. package/build/components/zoom-out-toggle/index.js +37 -5
  126. package/build/components/zoom-out-toggle/index.js.map +1 -1
  127. package/build/dataviews/actions/duplicate-template-part.js +3 -3
  128. package/build/dataviews/actions/duplicate-template-part.js.map +1 -1
  129. package/build/private-apis.js +0 -1
  130. package/build/private-apis.js.map +1 -1
  131. package/build/store/actions.js +30 -4
  132. package/build/store/actions.js.map +1 -1
  133. package/build/store/constants.js +1 -0
  134. package/build/store/constants.js.map +1 -1
  135. package/build/store/local-autosave.js.map +1 -1
  136. package/build/store/private-actions.js +8 -7
  137. package/build/store/private-actions.js.map +1 -1
  138. package/build/store/selectors.js +24 -2
  139. package/build/store/selectors.js.map +1 -1
  140. package/build/utils/media-upload/index.js.map +1 -1
  141. package/build/utils/pageTypeBadge.js +51 -0
  142. package/build/utils/pageTypeBadge.js.map +1 -0
  143. package/build/utils/terms.js +2 -2
  144. package/build/utils/terms.js.map +1 -1
  145. package/build-module/bindings/api.js +1 -29
  146. package/build-module/bindings/api.js.map +1 -1
  147. package/build-module/bindings/post-meta.js +2 -1
  148. package/build-module/bindings/post-meta.js.map +1 -1
  149. package/build-module/components/autocompleters/user.js +1 -3
  150. package/build-module/components/autocompleters/user.js.map +1 -1
  151. package/build-module/components/block-manager/category.js +1 -2
  152. package/build-module/components/block-manager/category.js.map +1 -1
  153. package/build-module/components/block-manager/checklist.js +1 -2
  154. package/build-module/components/block-manager/checklist.js.map +1 -1
  155. package/build-module/components/block-manager/index.js +3 -4
  156. package/build-module/components/block-manager/index.js.map +1 -1
  157. package/build-module/components/block-settings-menu/content-only-settings-menu.js +1 -3
  158. package/build-module/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
  159. package/build-module/components/blog-title/index.js +1 -3
  160. package/build-module/components/blog-title/index.js.map +1 -1
  161. package/build-module/components/collab-sidebar/add-comment.js +114 -0
  162. package/build-module/components/collab-sidebar/add-comment.js.map +1 -0
  163. package/build-module/components/collab-sidebar/comment-button-toolbar.js +30 -0
  164. package/build-module/components/collab-sidebar/comment-button-toolbar.js.map +1 -0
  165. package/build-module/components/collab-sidebar/comment-button.js +30 -0
  166. package/build-module/components/collab-sidebar/comment-button.js.map +1 -0
  167. package/build-module/components/collab-sidebar/comments.js +314 -0
  168. package/build-module/components/collab-sidebar/comments.js.map +1 -0
  169. package/build-module/components/collab-sidebar/constants.js +2 -0
  170. package/build-module/components/collab-sidebar/constants.js.map +1 -0
  171. package/build-module/components/collab-sidebar/index.js +264 -0
  172. package/build-module/components/collab-sidebar/index.js.map +1 -0
  173. package/build-module/components/collab-sidebar/utils.js +10 -0
  174. package/build-module/components/collab-sidebar/utils.js.map +1 -0
  175. package/build-module/components/collapsible-block-toolbar/index.js +1 -3
  176. package/build-module/components/collapsible-block-toolbar/index.js.map +1 -1
  177. package/build-module/components/commands/index.js +6 -6
  178. package/build-module/components/commands/index.js.map +1 -1
  179. package/build-module/components/create-template-part-modal/index.js +1 -2
  180. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  181. package/build-module/components/create-template-part-modal/utils.js.map +1 -1
  182. package/build-module/components/document-bar/index.js +10 -10
  183. package/build-module/components/document-bar/index.js.map +1 -1
  184. package/build-module/components/document-outline/index.js +1 -2
  185. package/build-module/components/document-outline/index.js.map +1 -1
  186. package/build-module/components/document-outline/item.js +1 -2
  187. package/build-module/components/document-outline/item.js.map +1 -1
  188. package/build-module/components/document-tools/index.js +4 -10
  189. package/build-module/components/document-tools/index.js.map +1 -1
  190. package/build-module/components/editor/index.js +1 -3
  191. package/build-module/components/editor/index.js.map +1 -1
  192. package/build-module/components/editor-help/add-blocks.native.js +1 -3
  193. package/build-module/components/editor-help/add-blocks.native.js.map +1 -1
  194. package/build-module/components/editor-help/customize-blocks.native.js +1 -3
  195. package/build-module/components/editor-help/customize-blocks.native.js.map +1 -1
  196. package/build-module/components/editor-help/help-detail-navigation-screen.native.js +1 -2
  197. package/build-module/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  198. package/build-module/components/editor-help/index.native.js +1 -3
  199. package/build-module/components/editor-help/index.native.js.map +1 -1
  200. package/build-module/components/editor-help/intro-to-blocks.native.js +1 -3
  201. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  202. package/build-module/components/editor-help/move-blocks.native.js +1 -3
  203. package/build-module/components/editor-help/move-blocks.native.js.map +1 -1
  204. package/build-module/components/editor-help/remove-blocks.native.js +1 -3
  205. package/build-module/components/editor-help/remove-blocks.native.js.map +1 -1
  206. package/build-module/components/editor-help/view-sections.native.js +1 -2
  207. package/build-module/components/editor-help/view-sections.native.js.map +1 -1
  208. package/build-module/components/editor-interface/index.js +5 -17
  209. package/build-module/components/editor-interface/index.js.map +1 -1
  210. package/build-module/components/editor-notices/index.js +1 -3
  211. package/build-module/components/editor-notices/index.js.map +1 -1
  212. package/build-module/components/entities-saved-states/entity-record-item.js +1 -3
  213. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  214. package/build-module/components/entities-saved-states/entity-type-list.js +1 -2
  215. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  216. package/build-module/components/entities-saved-states/index.js +3 -4
  217. package/build-module/components/entities-saved-states/index.js.map +1 -1
  218. package/build-module/components/error-boundary/index.native.js +1 -2
  219. package/build-module/components/error-boundary/index.native.js.map +1 -1
  220. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
  221. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  222. package/build-module/components/global-styles-provider/index.js +13 -3
  223. package/build-module/components/global-styles-provider/index.js.map +1 -1
  224. package/build-module/components/header/index.js +6 -4
  225. package/build-module/components/header/index.js.map +1 -1
  226. package/build-module/components/inserter-sidebar/index.js +2 -2
  227. package/build-module/components/inserter-sidebar/index.js.map +1 -1
  228. package/build-module/components/keyboard-shortcut-help-modal/index.js +1 -2
  229. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  230. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +1 -3
  231. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  232. package/build-module/components/list-view-sidebar/list-view-outline.js +1 -3
  233. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -1
  234. package/build-module/components/media-categories/index.js.map +1 -1
  235. package/build-module/components/more-menu/index.js +1 -3
  236. package/build-module/components/more-menu/index.js.map +1 -1
  237. package/build-module/components/offline-status/index.native.js +1 -2
  238. package/build-module/components/offline-status/index.native.js.map +1 -1
  239. package/build-module/components/page-attributes/parent.js +6 -7
  240. package/build-module/components/page-attributes/parent.js.map +1 -1
  241. package/build-module/components/plugin-document-setting-panel/index.js +1 -3
  242. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -1
  243. package/build-module/components/plugin-more-menu-item/index.js +12 -10
  244. package/build-module/components/plugin-more-menu-item/index.js.map +1 -1
  245. package/build-module/components/plugin-preview-menu-item/index.js +14 -12
  246. package/build-module/components/plugin-preview-menu-item/index.js.map +1 -1
  247. package/build-module/components/plugin-sidebar/index.js +0 -15
  248. package/build-module/components/plugin-sidebar/index.js.map +1 -1
  249. package/build-module/components/post-actions/index.js +6 -8
  250. package/build-module/components/post-actions/index.js.map +1 -1
  251. package/build-module/components/post-author/panel.js +5 -6
  252. package/build-module/components/post-author/panel.js.map +1 -1
  253. package/build-module/components/post-card-panel/index.js +9 -38
  254. package/build-module/components/post-card-panel/index.js.map +1 -1
  255. package/build-module/components/post-content-information/index.js +2 -3
  256. package/build-module/components/post-content-information/index.js.map +1 -1
  257. package/build-module/components/post-discussion/panel.js +1 -2
  258. package/build-module/components/post-discussion/panel.js.map +1 -1
  259. package/build-module/components/post-excerpt/panel.js +1 -3
  260. package/build-module/components/post-excerpt/panel.js.map +1 -1
  261. package/build-module/components/post-featured-image/index.js +27 -9
  262. package/build-module/components/post-featured-image/index.js.map +1 -1
  263. package/build-module/components/post-format/index.js +2 -3
  264. package/build-module/components/post-format/index.js.map +1 -1
  265. package/build-module/components/post-format/panel.js +1 -2
  266. package/build-module/components/post-format/panel.js.map +1 -1
  267. package/build-module/components/post-last-revision/index.js +1 -1
  268. package/build-module/components/post-last-revision/index.js.map +1 -1
  269. package/build-module/components/post-locked-modal/index.js +3 -5
  270. package/build-module/components/post-locked-modal/index.js.map +1 -1
  271. package/build-module/components/post-panel-row/index.js +1 -2
  272. package/build-module/components/post-panel-row/index.js.map +1 -1
  273. package/build-module/components/post-preview-button/index.js +2 -4
  274. package/build-module/components/post-preview-button/index.js.map +1 -1
  275. package/build-module/components/post-publish-button/index.js +1 -2
  276. package/build-module/components/post-publish-button/index.js.map +1 -1
  277. package/build-module/components/post-publish-panel/index.js +1 -3
  278. package/build-module/components/post-publish-panel/index.js.map +1 -1
  279. package/build-module/components/post-publish-panel/maybe-category-panel.js +1 -2
  280. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  281. package/build-module/components/post-publish-panel/maybe-post-format-panel.js +2 -3
  282. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  283. package/build-module/components/post-publish-panel/maybe-tags-panel.js +1 -2
  284. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  285. package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -2
  286. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  287. package/build-module/components/post-publish-panel/media-util.js +1 -0
  288. package/build-module/components/post-publish-panel/media-util.js.map +1 -1
  289. package/build-module/components/post-publish-panel/postpublish.js +2 -4
  290. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  291. package/build-module/components/post-publish-panel/prepublish.js +1 -3
  292. package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
  293. package/build-module/components/post-saved-state/index.js +1 -2
  294. package/build-module/components/post-saved-state/index.js.map +1 -1
  295. package/build-module/components/post-schedule/label.js +1 -1
  296. package/build-module/components/post-schedule/label.js.map +1 -1
  297. package/build-module/components/post-status/index.js +1 -3
  298. package/build-module/components/post-status/index.js.map +1 -1
  299. package/build-module/components/post-switch-to-draft-button/index.js +1 -3
  300. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  301. package/build-module/components/post-taxonomies/flat-term-selector.js +16 -10
  302. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  303. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +4 -4
  304. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  305. package/build-module/components/post-taxonomies/index.js +1 -1
  306. package/build-module/components/post-taxonomies/index.js.map +1 -1
  307. package/build-module/components/post-taxonomies/most-used-terms.js +1 -2
  308. package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
  309. package/build-module/components/post-taxonomies/panel.js.map +1 -1
  310. package/build-module/components/post-template/block-theme.js +1 -3
  311. package/build-module/components/post-template/block-theme.js.map +1 -1
  312. package/build-module/components/post-template/classic-theme.js +3 -6
  313. package/build-module/components/post-template/classic-theme.js.map +1 -1
  314. package/build-module/components/post-template/create-new-template-modal.js +1 -2
  315. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  316. package/build-module/components/post-template/create-new-template.js +1 -3
  317. package/build-module/components/post-template/create-new-template.js.map +1 -1
  318. package/build-module/components/post-template/swap-template-button.js +1 -3
  319. package/build-module/components/post-template/swap-template-button.js.map +1 -1
  320. package/build-module/components/post-text-editor/index.js +1 -3
  321. package/build-module/components/post-text-editor/index.js.map +1 -1
  322. package/build-module/components/post-title/index.js +15 -19
  323. package/build-module/components/post-title/index.js.map +1 -1
  324. package/build-module/components/post-title/index.native.js +2 -2
  325. package/build-module/components/post-title/index.native.js.map +1 -1
  326. package/build-module/components/post-trash/index.js +1 -2
  327. package/build-module/components/post-trash/index.js.map +1 -1
  328. package/build-module/components/post-url/index.js +78 -66
  329. package/build-module/components/post-url/index.js.map +1 -1
  330. package/build-module/components/post-url/panel.js +51 -31
  331. package/build-module/components/post-url/panel.js.map +1 -1
  332. package/build-module/components/post-visibility/index.js +1 -2
  333. package/build-module/components/post-visibility/index.js.map +1 -1
  334. package/build-module/components/posts-per-page/index.js +1 -3
  335. package/build-module/components/posts-per-page/index.js.map +1 -1
  336. package/build-module/components/preferences-modal/index.js +1 -3
  337. package/build-module/components/preferences-modal/index.js.map +1 -1
  338. package/build-module/components/preview-dropdown/index.js +1 -7
  339. package/build-module/components/preview-dropdown/index.js.map +1 -1
  340. package/build-module/components/provider/index.js +11 -15
  341. package/build-module/components/provider/index.js.map +1 -1
  342. package/build-module/components/provider/index.native.js +1 -3
  343. package/build-module/components/provider/index.native.js.map +1 -1
  344. package/build-module/components/provider/use-block-editor-settings.js +1 -1
  345. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  346. package/build-module/components/resizable-editor/resize-handle.js +1 -3
  347. package/build-module/components/resizable-editor/resize-handle.js.map +1 -1
  348. package/build-module/components/save-publish-panels/index.js +1 -3
  349. package/build-module/components/save-publish-panels/index.js.map +1 -1
  350. package/build-module/components/sidebar/header.js +3 -3
  351. package/build-module/components/sidebar/header.js.map +1 -1
  352. package/build-module/components/sidebar/index.js +5 -6
  353. package/build-module/components/sidebar/index.js.map +1 -1
  354. package/build-module/components/sidebar/post-summary.js +1 -3
  355. package/build-module/components/sidebar/post-summary.js.map +1 -1
  356. package/build-module/components/site-discussion/index.js +1 -3
  357. package/build-module/components/site-discussion/index.js.map +1 -1
  358. package/build-module/components/start-template-options/index.js +1 -2
  359. package/build-module/components/start-template-options/index.js.map +1 -1
  360. package/build-module/components/table-of-contents/panel.js +1 -3
  361. package/build-module/components/table-of-contents/panel.js.map +1 -1
  362. package/build-module/components/template-part-menu-items/convert-to-template-part.js +1 -3
  363. package/build-module/components/template-part-menu-items/convert-to-template-part.js.map +1 -1
  364. package/build-module/components/template-validation-notice/index.js +1 -3
  365. package/build-module/components/template-validation-notice/index.js.map +1 -1
  366. package/build-module/components/text-editor/index.js +1 -2
  367. package/build-module/components/text-editor/index.js.map +1 -1
  368. package/build-module/components/time-to-read/index.js +2 -2
  369. package/build-module/components/time-to-read/index.js.map +1 -1
  370. package/build-module/components/visual-editor/edit-template-blocks-notification.js +4 -1
  371. package/build-module/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  372. package/build-module/components/visual-editor/index.js +26 -29
  373. package/build-module/components/visual-editor/index.js.map +1 -1
  374. package/build-module/components/visual-editor/use-select-nearest-editable-block.js.map +1 -1
  375. package/build-module/components/visual-editor/use-zoom-out-mode-exit.js +46 -0
  376. package/build-module/components/visual-editor/use-zoom-out-mode-exit.js.map +1 -0
  377. package/build-module/components/zoom-out-toggle/index.js +37 -5
  378. package/build-module/components/zoom-out-toggle/index.js.map +1 -1
  379. package/build-module/dataviews/actions/duplicate-template-part.js +4 -4
  380. package/build-module/dataviews/actions/duplicate-template-part.js.map +1 -1
  381. package/build-module/hooks/pattern-overrides.js +1 -3
  382. package/build-module/hooks/pattern-overrides.js.map +1 -1
  383. package/build-module/private-apis.js +1 -2
  384. package/build-module/private-apis.js.map +1 -1
  385. package/build-module/store/actions.js +30 -4
  386. package/build-module/store/actions.js.map +1 -1
  387. package/build-module/store/constants.js +1 -0
  388. package/build-module/store/constants.js.map +1 -1
  389. package/build-module/store/local-autosave.js.map +1 -1
  390. package/build-module/store/private-actions.js +9 -8
  391. package/build-module/store/private-actions.js.map +1 -1
  392. package/build-module/store/selectors.js +24 -2
  393. package/build-module/store/selectors.js.map +1 -1
  394. package/build-module/utils/media-upload/index.js.map +1 -1
  395. package/build-module/utils/pageTypeBadge.js +45 -0
  396. package/build-module/utils/pageTypeBadge.js.map +1 -0
  397. package/build-module/utils/terms.js +2 -2
  398. package/build-module/utils/terms.js.map +1 -1
  399. package/build-style/style-rtl.css +116 -59
  400. package/build-style/style.css +116 -59
  401. package/build-types/bindings/api.d.ts +0 -13
  402. package/build-types/bindings/api.d.ts.map +1 -1
  403. package/build-types/bindings/post-meta.d.ts.map +1 -1
  404. package/build-types/components/collab-sidebar/add-comment.d.ts +15 -0
  405. package/build-types/components/collab-sidebar/add-comment.d.ts.map +1 -0
  406. package/build-types/components/collab-sidebar/comment-button-toolbar.d.ts +5 -0
  407. package/build-types/components/collab-sidebar/comment-button-toolbar.d.ts.map +1 -0
  408. package/build-types/components/collab-sidebar/comment-button.d.ts +5 -0
  409. package/build-types/components/collab-sidebar/comment-button.d.ts.map +1 -0
  410. package/build-types/components/collab-sidebar/comments.d.ts +19 -0
  411. package/build-types/components/collab-sidebar/comments.d.ts.map +1 -0
  412. package/build-types/components/collab-sidebar/constants.d.ts +2 -0
  413. package/build-types/components/collab-sidebar/constants.d.ts.map +1 -0
  414. package/build-types/components/collab-sidebar/index.d.ts +5 -0
  415. package/build-types/components/collab-sidebar/index.d.ts.map +1 -0
  416. package/build-types/components/collab-sidebar/utils.d.ts +8 -0
  417. package/build-types/components/collab-sidebar/utils.d.ts.map +1 -0
  418. package/build-types/components/commands/index.d.ts.map +1 -1
  419. package/build-types/components/document-bar/index.d.ts.map +1 -1
  420. package/build-types/components/document-tools/index.d.ts.map +1 -1
  421. package/build-types/components/editor-interface/index.d.ts +1 -2
  422. package/build-types/components/editor-interface/index.d.ts.map +1 -1
  423. package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
  424. package/build-types/components/header/index.d.ts.map +1 -1
  425. package/build-types/components/inserter-sidebar/index.d.ts.map +1 -1
  426. package/build-types/components/page-attributes/parent.d.ts.map +1 -1
  427. package/build-types/components/plugin-more-menu-item/index.d.ts +62 -2
  428. package/build-types/components/plugin-more-menu-item/index.d.ts.map +1 -1
  429. package/build-types/components/plugin-preview-menu-item/index.d.ts +41 -2
  430. package/build-types/components/plugin-preview-menu-item/index.d.ts.map +1 -1
  431. package/build-types/components/plugin-sidebar/index.d.ts.map +1 -1
  432. package/build-types/components/post-author/panel.d.ts.map +1 -1
  433. package/build-types/components/post-card-panel/index.d.ts.map +1 -1
  434. package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
  435. package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
  436. package/build-types/components/post-template/classic-theme.d.ts.map +1 -1
  437. package/build-types/components/post-url/index.d.ts.map +1 -1
  438. package/build-types/components/post-url/panel.d.ts.map +1 -1
  439. package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
  440. package/build-types/components/provider/index.d.ts.map +1 -1
  441. package/build-types/components/sidebar/index.d.ts.map +1 -1
  442. package/build-types/components/visual-editor/edit-template-blocks-notification.d.ts.map +1 -1
  443. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  444. package/build-types/components/visual-editor/use-zoom-out-mode-exit.d.ts +5 -0
  445. package/build-types/components/visual-editor/use-zoom-out-mode-exit.d.ts.map +1 -0
  446. package/build-types/components/zoom-out-toggle/index.d.ts +3 -1
  447. package/build-types/components/zoom-out-toggle/index.d.ts.map +1 -1
  448. package/build-types/private-apis.d.ts.map +1 -1
  449. package/build-types/store/actions.d.ts +1 -4
  450. package/build-types/store/actions.d.ts.map +1 -1
  451. package/build-types/store/selectors.d.ts +21 -0
  452. package/build-types/store/selectors.d.ts.map +1 -1
  453. package/build-types/utils/pageTypeBadge.d.ts +5 -0
  454. package/build-types/utils/pageTypeBadge.d.ts.map +1 -0
  455. package/build-types/utils/terms.d.ts.map +1 -1
  456. package/package.json +39 -38
  457. package/src/bindings/api.js +1 -32
  458. package/src/bindings/post-meta.js +1 -0
  459. package/src/components/collab-sidebar/add-comment.js +124 -0
  460. package/src/components/collab-sidebar/comment-button-toolbar.js +29 -0
  461. package/src/components/collab-sidebar/comment-button.js +31 -0
  462. package/src/components/collab-sidebar/comments.js +404 -0
  463. package/src/components/collab-sidebar/constants.js +1 -0
  464. package/src/components/collab-sidebar/index.js +307 -0
  465. package/src/components/collab-sidebar/style.scss +111 -0
  466. package/src/components/collab-sidebar/utils.js +9 -0
  467. package/src/components/commands/index.js +9 -7
  468. package/src/components/document-bar/index.js +15 -7
  469. package/src/components/document-bar/style.scss +0 -4
  470. package/src/components/document-tools/index.js +2 -8
  471. package/src/components/editor-interface/index.js +4 -18
  472. package/src/components/entities-saved-states/index.js +2 -2
  473. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
  474. package/src/components/global-styles-provider/index.js +20 -6
  475. package/src/components/header/index.js +3 -1
  476. package/src/components/header/style.scss +1 -0
  477. package/src/components/inserter-sidebar/index.js +3 -6
  478. package/src/components/page-attributes/parent.js +6 -4
  479. package/src/components/plugin-more-menu-item/index.js +12 -11
  480. package/src/components/plugin-preview-menu-item/index.js +14 -13
  481. package/src/components/plugin-sidebar/index.js +0 -13
  482. package/src/components/post-actions/index.js +8 -11
  483. package/src/components/post-author/panel.js +4 -2
  484. package/src/components/post-card-panel/index.js +9 -43
  485. package/src/components/post-card-panel/style.scss +1 -9
  486. package/src/components/post-content-information/index.js +1 -1
  487. package/src/components/post-featured-image/index.js +31 -16
  488. package/src/components/post-featured-image/style.scss +5 -2
  489. package/src/components/post-last-revision/index.js +1 -1
  490. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +1 -1
  491. package/src/components/post-schedule/label.js +1 -1
  492. package/src/components/post-sticky/test/index.js +6 -6
  493. package/src/components/post-taxonomies/flat-term-selector.js +15 -4
  494. package/src/components/post-taxonomies/hierarchical-term-selector.js +3 -2
  495. package/src/components/post-template/classic-theme.js +1 -2
  496. package/src/components/post-url/index.js +67 -55
  497. package/src/components/post-url/panel.js +61 -35
  498. package/src/components/post-url/style.scss +21 -3
  499. package/src/components/preview-dropdown/index.js +0 -2
  500. package/src/components/provider/index.js +32 -24
  501. package/src/components/provider/use-block-editor-settings.js +1 -1
  502. package/src/components/sidebar/header.js +3 -2
  503. package/src/components/sidebar/index.js +5 -3
  504. package/src/components/time-to-read/index.js +3 -3
  505. package/src/components/visual-editor/edit-template-blocks-notification.js +5 -1
  506. package/src/components/visual-editor/index.js +32 -39
  507. package/src/components/visual-editor/use-zoom-out-mode-exit.js +49 -0
  508. package/src/components/zoom-out-toggle/index.js +39 -5
  509. package/src/dataviews/actions/duplicate-template-part.tsx +3 -3
  510. package/src/private-apis.js +1 -5
  511. package/src/store/actions.js +33 -4
  512. package/src/store/private-actions.js +3 -3
  513. package/src/store/selectors.js +24 -2
  514. package/src/style.scss +1 -0
  515. package/src/utils/pageTypeBadge.js +41 -0
  516. package/src/utils/terms.js +4 -2
  517. package/src/utils/test/terms.js +3 -3
  518. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Comments = Comments;
8
+ var _clsx = _interopRequireDefault(require("clsx"));
9
+ var _element = require("@wordpress/element");
10
+ var _components = require("@wordpress/components");
11
+ var _date = require("@wordpress/date");
12
+ var _icons = require("@wordpress/icons");
13
+ var _i18n = require("@wordpress/i18n");
14
+ var _data = require("@wordpress/data");
15
+ var _coreData = require("@wordpress/core-data");
16
+ var _blockEditor = require("@wordpress/block-editor");
17
+ var _utils = require("./utils");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ /**
20
+ * External dependencies
21
+ */
22
+
23
+ /**
24
+ * WordPress dependencies
25
+ */
26
+
27
+ /**
28
+ * Internal dependencies
29
+ */
30
+
31
+ /**
32
+ * Renders the Comments component.
33
+ *
34
+ * @param {Object} props - The component props.
35
+ * @param {Array} props.threads - The array of comment threads.
36
+ * @param {Function} props.onEditComment - The function to handle comment editing.
37
+ * @param {Function} props.onAddReply - The function to add a reply to a comment.
38
+ * @param {Function} props.onCommentDelete - The function to delete a comment.
39
+ * @param {Function} props.onCommentResolve - The function to mark a comment as resolved.
40
+ * @return {JSX.Element} The rendered Comments component.
41
+ */
42
+ function Comments({
43
+ threads,
44
+ onEditComment,
45
+ onAddReply,
46
+ onCommentDelete,
47
+ onCommentResolve
48
+ }) {
49
+ const [actionState, setActionState] = (0, _element.useState)(false);
50
+ const [isConfirmDialogOpen, setIsConfirmDialogOpen] = (0, _element.useState)(false);
51
+ const handleConfirmDelete = () => {
52
+ onCommentDelete(actionState.id);
53
+ setActionState(false);
54
+ setIsConfirmDialogOpen(false);
55
+ };
56
+ const handleConfirmResolve = () => {
57
+ onCommentResolve(actionState.id);
58
+ setActionState(false);
59
+ setIsConfirmDialogOpen(false);
60
+ };
61
+ const handleCancelDelete = () => {
62
+ setActionState(false);
63
+ setIsConfirmDialogOpen(false);
64
+ };
65
+ const blockCommentId = (0, _data.useSelect)(select => {
66
+ var _select$getBlock$attr;
67
+ const clientID = select(_blockEditor.store).getSelectedBlockClientId();
68
+ return (_select$getBlock$attr = select(_blockEditor.store).getBlock(clientID)?.attributes?.blockCommentId) !== null && _select$getBlock$attr !== void 0 ? _select$getBlock$attr : false;
69
+ }, []);
70
+ const CommentBoard = ({
71
+ thread,
72
+ parentThread
73
+ }) => {
74
+ var _parentThread$status;
75
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
76
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CommentHeader, {
77
+ thread: thread,
78
+ onResolve: () => {
79
+ var _parentThread$id;
80
+ setActionState({
81
+ action: 'resolve',
82
+ id: (_parentThread$id = parentThread?.id) !== null && _parentThread$id !== void 0 ? _parentThread$id : thread.id
83
+ });
84
+ setIsConfirmDialogOpen(true);
85
+ },
86
+ onEdit: () => setActionState({
87
+ action: 'edit',
88
+ id: thread.id
89
+ }),
90
+ onDelete: () => {
91
+ setActionState({
92
+ action: 'delete',
93
+ id: thread.id
94
+ });
95
+ setIsConfirmDialogOpen(true);
96
+ },
97
+ onReply: !parentThread ? () => setActionState({
98
+ action: 'reply',
99
+ id: thread.id
100
+ }) : undefined,
101
+ status: (_parentThread$status = parentThread?.status) !== null && _parentThread$status !== void 0 ? _parentThread$status : thread.status
102
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
103
+ alignment: "left",
104
+ spacing: "3",
105
+ justify: "flex-start",
106
+ className: "editor-collab-sidebar-panel__user-comment",
107
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
108
+ spacing: "3",
109
+ className: "editor-collab-sidebar-panel__comment-field",
110
+ children: ['edit' === actionState?.action && thread.id === actionState?.id && /*#__PURE__*/(0, _jsxRuntime.jsx)(CommentForm, {
111
+ onSubmit: value => {
112
+ onEditComment(thread.id, value);
113
+ setActionState(false);
114
+ },
115
+ onCancel: () => setActionState(false),
116
+ thread: thread
117
+ }), (!actionState || 'edit' !== actionState?.action) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_element.RawHTML, {
118
+ children: thread?.content?.raw
119
+ })]
120
+ })
121
+ }), 'resolve' === actionState?.action && thread.id === actionState?.id && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalConfirmDialog, {
122
+ isOpen: isConfirmDialogOpen,
123
+ onConfirm: handleConfirmResolve,
124
+ onCancel: handleCancelDelete,
125
+ confirmButtonText: "Yes",
126
+ cancelButtonText: "No",
127
+ children:
128
+ // translators: message displayed when confirming an action
129
+ (0, _i18n.__)('Are you sure you want to mark this comment as resolved?')
130
+ }), 'delete' === actionState?.action && thread.id === actionState?.id && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalConfirmDialog, {
131
+ isOpen: isConfirmDialogOpen,
132
+ onConfirm: handleConfirmDelete,
133
+ onCancel: handleCancelDelete,
134
+ confirmButtonText: "Yes",
135
+ cancelButtonText: "No",
136
+ children:
137
+ // translators: message displayed when confirming an action
138
+ (0, _i18n.__)('Are you sure you want to delete this comment?')
139
+ })]
140
+ });
141
+ };
142
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
143
+ children: [
144
+ // If there are no comments, show a message indicating no comments are available.
145
+ (!Array.isArray(threads) || threads.length === 0) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
146
+ alignment: "left",
147
+ className: "editor-collab-sidebar-panel__thread",
148
+ justify: "flex-start",
149
+ spacing: "3",
150
+ children:
151
+ // translators: message displayed when there are no comments available
152
+ (0, _i18n.__)('No comments available')
153
+ }), Array.isArray(threads) && threads.length > 0 && threads.map(thread => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
154
+ className: (0, _clsx.default)('editor-collab-sidebar-panel__thread', {
155
+ 'editor-collab-sidebar-panel__active-thread': blockCommentId && blockCommentId === thread.id
156
+ }),
157
+ id: thread.id,
158
+ spacing: "3",
159
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CommentBoard, {
160
+ thread: thread
161
+ }), 'reply' === actionState?.action && thread.id === actionState?.id && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
162
+ alignment: "left",
163
+ spacing: "3",
164
+ justify: "flex-start",
165
+ className: "editor-collab-sidebar-panel__user-comment",
166
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
167
+ spacing: "3",
168
+ className: "editor-collab-sidebar-panel__comment-field",
169
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CommentForm, {
170
+ onSubmit: inputComment => {
171
+ onAddReply(inputComment, thread.id);
172
+ setActionState(false);
173
+ },
174
+ onCancel: () => setActionState(false)
175
+ })
176
+ })
177
+ }), 0 < thread?.reply?.length && thread.reply.map(reply => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
178
+ className: "editor-collab-sidebar-panel__child-thread",
179
+ id: reply.id,
180
+ spacing: "2",
181
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CommentBoard, {
182
+ thread: reply,
183
+ parentThread: thread
184
+ })
185
+ }, reply.id))]
186
+ }, thread.id))]
187
+ });
188
+ }
189
+
190
+ /**
191
+ * EditComment component.
192
+ *
193
+ * @param {Object} props - The component props.
194
+ * @param {Function} props.onSubmit - The function to call when updating the comment.
195
+ * @param {Function} props.onCancel - The function to call when canceling the comment update.
196
+ * @param {Object} props.thread - The comment thread object.
197
+ * @return {JSX.Element} The CommentForm component.
198
+ */
199
+ function CommentForm({
200
+ onSubmit,
201
+ onCancel,
202
+ thread
203
+ }) {
204
+ var _thread$content$raw;
205
+ const [inputComment, setInputComment] = (0, _element.useState)((_thread$content$raw = thread?.content?.raw) !== null && _thread$content$raw !== void 0 ? _thread$content$raw : '');
206
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
207
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextareaControl, {
208
+ __nextHasNoMarginBottom: true,
209
+ value: inputComment !== null && inputComment !== void 0 ? inputComment : '',
210
+ onChange: setInputComment
211
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
212
+ alignment: "left",
213
+ spacing: "3",
214
+ justify: "flex-start",
215
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
216
+ alignment: "left",
217
+ spacing: "3",
218
+ justify: "flex-start",
219
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
220
+ __next40pxDefaultSize: true,
221
+ accessibleWhenDisabled: true,
222
+ variant: "primary",
223
+ onClick: () => onSubmit(inputComment),
224
+ disabled: 0 === (0, _utils.sanitizeCommentString)(inputComment).length,
225
+ children: thread ? (0, _i18n._x)('Update', 'verb') : (0, _i18n._x)('Reply', 'Add reply comment')
226
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
227
+ __next40pxDefaultSize: true,
228
+ onClick: onCancel,
229
+ children: (0, _i18n._x)('Cancel', 'Cancel comment edit')
230
+ })]
231
+ })
232
+ })]
233
+ });
234
+ }
235
+
236
+ /**
237
+ * Renders the header of a comment in the collaboration sidebar.
238
+ *
239
+ * @param {Object} props - The component props.
240
+ * @param {Object} props.thread - The comment thread object.
241
+ * @param {Function} props.onResolve - The function to resolve the comment.
242
+ * @param {Function} props.onEdit - The function to edit the comment.
243
+ * @param {Function} props.onDelete - The function to delete the comment.
244
+ * @param {Function} props.onReply - The function to reply to the comment.
245
+ * @param {string} props.status - The status of the comment.
246
+ * @return {JSX.Element} The rendered comment header.
247
+ */
248
+ function CommentHeader({
249
+ thread,
250
+ onResolve,
251
+ onEdit,
252
+ onDelete,
253
+ onReply,
254
+ status
255
+ }) {
256
+ const dateSettings = (0, _date.getSettings)();
257
+ const [dateTimeFormat = dateSettings.formats.time] = (0, _coreData.useEntityProp)('root', 'site', 'time_format');
258
+ const actions = [{
259
+ title: (0, _i18n._x)('Edit', 'Edit comment'),
260
+ onClick: onEdit
261
+ }, {
262
+ title: (0, _i18n._x)('Delete', 'Delete comment'),
263
+ onClick: onDelete
264
+ }, {
265
+ title: (0, _i18n._x)('Reply', 'Reply on a comment'),
266
+ onClick: onReply
267
+ }];
268
+ const moreActions = actions.filter(item => item.onClick);
269
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
270
+ alignment: "left",
271
+ spacing: "3",
272
+ justify: "flex-start",
273
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
274
+ src: thread?.author_avatar_urls?.[48],
275
+ className: "editor-collab-sidebar-panel__user-avatar"
276
+ // translators: alt text for user avatar image
277
+ ,
278
+ alt: (0, _i18n.__)('User avatar'),
279
+ width: 32,
280
+ height: 32
281
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
282
+ spacing: "0",
283
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
284
+ className: "editor-collab-sidebar-panel__user-name",
285
+ children: thread.author_name
286
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {
287
+ dateTime: (0, _date.format)('h:i A', thread.date),
288
+ className: "editor-collab-sidebar-panel__user-time",
289
+ children: (0, _date.dateI18n)(dateTimeFormat, thread.date)
290
+ })]
291
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
292
+ className: "editor-collab-sidebar-panel__comment-status",
293
+ children: [status !== 'approved' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
294
+ alignment: "right",
295
+ justify: "flex-end",
296
+ spacing: "0",
297
+ children: [0 === thread.parent && onResolve && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
298
+ label: (0, _i18n._x)('Resolve', 'Mark comment as resolved'),
299
+ __next40pxDefaultSize: true,
300
+ icon: _icons.published,
301
+ onClick: onResolve,
302
+ showTooltip: true
303
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.DropdownMenu, {
304
+ icon: _icons.moreVertical,
305
+ label: (0, _i18n._x)('Select an action', 'Select comment action'),
306
+ className: "editor-collab-sidebar-panel__comment-dropdown-menu",
307
+ controls: moreActions
308
+ })]
309
+ }), status === 'approved' &&
310
+ /*#__PURE__*/
311
+ // translators: tooltip for resolved comment
312
+ (0, _jsxRuntime.jsx)(_components.Tooltip, {
313
+ text: (0, _i18n.__)('Resolved'),
314
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Icon, {
315
+ icon: _icons.check
316
+ })
317
+ })]
318
+ })]
319
+ });
320
+ }
321
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_components","_date","_icons","_i18n","_data","_coreData","_blockEditor","_utils","_jsxRuntime","Comments","threads","onEditComment","onAddReply","onCommentDelete","onCommentResolve","actionState","setActionState","useState","isConfirmDialogOpen","setIsConfirmDialogOpen","handleConfirmDelete","id","handleConfirmResolve","handleCancelDelete","blockCommentId","useSelect","select","_select$getBlock$attr","clientID","blockEditorStore","getSelectedBlockClientId","getBlock","attributes","CommentBoard","thread","parentThread","_parentThread$status","jsxs","Fragment","children","jsx","CommentHeader","onResolve","_parentThread$id","action","onEdit","onDelete","onReply","undefined","status","__experimentalHStack","alignment","spacing","justify","className","__experimentalVStack","CommentForm","onSubmit","value","onCancel","RawHTML","content","raw","__experimentalConfirmDialog","isOpen","onConfirm","confirmButtonText","cancelButtonText","__","Array","isArray","length","map","clsx","inputComment","reply","_thread$content$raw","setInputComment","TextareaControl","__nextHasNoMarginBottom","onChange","Button","__next40pxDefaultSize","accessibleWhenDisabled","variant","onClick","disabled","sanitizeCommentString","_x","dateSettings","getDateSettings","dateTimeFormat","formats","time","useEntityProp","actions","title","moreActions","filter","item","src","author_avatar_urls","alt","width","height","author_name","dateTime","format","date","dateI18n","parent","label","icon","published","showTooltip","DropdownMenu","moreVertical","controls","Tooltip","text","Icon","check"],"sources":["@wordpress/editor/src/components/collab-sidebar/comments.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, RawHTML } from '@wordpress/element';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tButton,\n\tDropdownMenu,\n\tTextareaControl,\n\tTooltip,\n} from '@wordpress/components';\nimport {\n\tdateI18n,\n\tformat,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport { Icon, check, published, moreVertical } from '@wordpress/icons';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { sanitizeCommentString } from './utils';\n\n/**\n * Renders the Comments component.\n *\n * @param {Object} props - The component props.\n * @param {Array} props.threads - The array of comment threads.\n * @param {Function} props.onEditComment - The function to handle comment editing.\n * @param {Function} props.onAddReply - The function to add a reply to a comment.\n * @param {Function} props.onCommentDelete - The function to delete a comment.\n * @param {Function} props.onCommentResolve - The function to mark a comment as resolved.\n * @return {JSX.Element} The rendered Comments component.\n */\nexport function Comments( {\n\tthreads,\n\tonEditComment,\n\tonAddReply,\n\tonCommentDelete,\n\tonCommentResolve,\n} ) {\n\tconst [ actionState, setActionState ] = useState( false );\n\tconst [ isConfirmDialogOpen, setIsConfirmDialogOpen ] = useState( false );\n\n\tconst handleConfirmDelete = () => {\n\t\tonCommentDelete( actionState.id );\n\t\tsetActionState( false );\n\t\tsetIsConfirmDialogOpen( false );\n\t};\n\n\tconst handleConfirmResolve = () => {\n\t\tonCommentResolve( actionState.id );\n\t\tsetActionState( false );\n\t\tsetIsConfirmDialogOpen( false );\n\t};\n\n\tconst handleCancelDelete = () => {\n\t\tsetActionState( false );\n\t\tsetIsConfirmDialogOpen( false );\n\t};\n\n\tconst blockCommentId = useSelect( ( select ) => {\n\t\tconst clientID = select( blockEditorStore ).getSelectedBlockClientId();\n\t\treturn (\n\t\t\tselect( blockEditorStore ).getBlock( clientID )?.attributes\n\t\t\t\t?.blockCommentId ?? false\n\t\t);\n\t}, [] );\n\n\tconst CommentBoard = ( { thread, parentThread } ) => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<CommentHeader\n\t\t\t\t\tthread={ thread }\n\t\t\t\t\tonResolve={ () => {\n\t\t\t\t\t\tsetActionState( {\n\t\t\t\t\t\t\taction: 'resolve',\n\t\t\t\t\t\t\tid: parentThread?.id ?? thread.id,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetIsConfirmDialogOpen( true );\n\t\t\t\t\t} }\n\t\t\t\t\tonEdit={ () =>\n\t\t\t\t\t\tsetActionState( { action: 'edit', id: thread.id } )\n\t\t\t\t\t}\n\t\t\t\t\tonDelete={ () => {\n\t\t\t\t\t\tsetActionState( { action: 'delete', id: thread.id } );\n\t\t\t\t\t\tsetIsConfirmDialogOpen( true );\n\t\t\t\t\t} }\n\t\t\t\t\tonReply={\n\t\t\t\t\t\t! parentThread\n\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\tsetActionState( {\n\t\t\t\t\t\t\t\t\t\taction: 'reply',\n\t\t\t\t\t\t\t\t\t\tid: thread.id,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tstatus={ parentThread?.status ?? thread.status }\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"left\"\n\t\t\t\t\tspacing=\"3\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__user-comment\"\n\t\t\t\t>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tspacing=\"3\"\n\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__comment-field\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ 'edit' === actionState?.action &&\n\t\t\t\t\t\t\tthread.id === actionState?.id && (\n\t\t\t\t\t\t\t\t<CommentForm\n\t\t\t\t\t\t\t\t\tonSubmit={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tonEditComment( thread.id, value );\n\t\t\t\t\t\t\t\t\t\tsetActionState( false );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonCancel={ () => setActionState( false ) }\n\t\t\t\t\t\t\t\t\tthread={ thread }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ( ! actionState ||\n\t\t\t\t\t\t\t'edit' !== actionState?.action ) && (\n\t\t\t\t\t\t\t<RawHTML>{ thread?.content?.raw }</RawHTML>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</HStack>\n\t\t\t\t{ 'resolve' === actionState?.action &&\n\t\t\t\t\tthread.id === actionState?.id && (\n\t\t\t\t\t\t<ConfirmDialog\n\t\t\t\t\t\t\tisOpen={ isConfirmDialogOpen }\n\t\t\t\t\t\t\tonConfirm={ handleConfirmResolve }\n\t\t\t\t\t\t\tonCancel={ handleCancelDelete }\n\t\t\t\t\t\t\tconfirmButtonText=\"Yes\"\n\t\t\t\t\t\t\tcancelButtonText=\"No\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t// translators: message displayed when confirming an action\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to mark this comment as resolved?'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</ConfirmDialog>\n\t\t\t\t\t) }\n\t\t\t\t{ 'delete' === actionState?.action &&\n\t\t\t\t\tthread.id === actionState?.id && (\n\t\t\t\t\t\t<ConfirmDialog\n\t\t\t\t\t\t\tisOpen={ isConfirmDialogOpen }\n\t\t\t\t\t\t\tonConfirm={ handleConfirmDelete }\n\t\t\t\t\t\t\tonCancel={ handleCancelDelete }\n\t\t\t\t\t\t\tconfirmButtonText=\"Yes\"\n\t\t\t\t\t\t\tcancelButtonText=\"No\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t// translators: message displayed when confirming an action\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete this comment?'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</ConfirmDialog>\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\t// If there are no comments, show a message indicating no comments are available.\n\t\t\t\t( ! Array.isArray( threads ) || threads.length === 0 ) && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__thread\"\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\tspacing=\"3\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: message displayed when there are no comments available\n\t\t\t\t\t\t\t__( 'No comments available' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</VStack>\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t{ Array.isArray( threads ) &&\n\t\t\t\tthreads.length > 0 &&\n\t\t\t\tthreads.map( ( thread ) => (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tkey={ thread.id }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'editor-collab-sidebar-panel__thread',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'editor-collab-sidebar-panel__active-thread':\n\t\t\t\t\t\t\t\t\tblockCommentId &&\n\t\t\t\t\t\t\t\t\tblockCommentId === thread.id,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tid={ thread.id }\n\t\t\t\t\t\tspacing=\"3\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<CommentBoard thread={ thread } />\n\t\t\t\t\t\t{ 'reply' === actionState?.action &&\n\t\t\t\t\t\t\tthread.id === actionState?.id && (\n\t\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\t\t\t\tspacing=\"3\"\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__user-comment\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\t\t\tspacing=\"3\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__comment-field\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<CommentForm\n\t\t\t\t\t\t\t\t\t\t\tonSubmit={ ( inputComment ) => {\n\t\t\t\t\t\t\t\t\t\t\t\tonAddReply(\n\t\t\t\t\t\t\t\t\t\t\t\t\tinputComment,\n\t\t\t\t\t\t\t\t\t\t\t\t\tthread.id\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\tsetActionState( false );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tonCancel={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetActionState( false )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ 0 < thread?.reply?.length &&\n\t\t\t\t\t\t\tthread.reply.map( ( reply ) => (\n\t\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\t\tkey={ reply.id }\n\t\t\t\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__child-thread\"\n\t\t\t\t\t\t\t\t\tid={ reply.id }\n\t\t\t\t\t\t\t\t\tspacing=\"2\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CommentBoard\n\t\t\t\t\t\t\t\t\t\tthread={ reply }\n\t\t\t\t\t\t\t\t\t\tparentThread={ thread }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t) ) }\n\t\t</>\n\t);\n}\n\n/**\n * EditComment component.\n *\n * @param {Object} props - The component props.\n * @param {Function} props.onSubmit - The function to call when updating the comment.\n * @param {Function} props.onCancel - The function to call when canceling the comment update.\n * @param {Object} props.thread - The comment thread object.\n * @return {JSX.Element} The CommentForm component.\n */\nfunction CommentForm( { onSubmit, onCancel, thread } ) {\n\tconst [ inputComment, setInputComment ] = useState(\n\t\tthread?.content?.raw ?? ''\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TextareaControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ inputComment ?? '' }\n\t\t\t\tonChange={ setInputComment }\n\t\t\t/>\n\t\t\t<VStack alignment=\"left\" spacing=\"3\" justify=\"flex-start\">\n\t\t\t\t<HStack alignment=\"left\" spacing=\"3\" justify=\"flex-start\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => onSubmit( inputComment ) }\n\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t0 === sanitizeCommentString( inputComment ).length\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ thread\n\t\t\t\t\t\t\t? _x( 'Update', 'verb' )\n\t\t\t\t\t\t\t: _x( 'Reply', 'Add reply comment' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button __next40pxDefaultSize onClick={ onCancel }>\n\t\t\t\t\t\t{ _x( 'Cancel', 'Cancel comment edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\n/**\n * Renders the header of a comment in the collaboration sidebar.\n *\n * @param {Object} props - The component props.\n * @param {Object} props.thread - The comment thread object.\n * @param {Function} props.onResolve - The function to resolve the comment.\n * @param {Function} props.onEdit - The function to edit the comment.\n * @param {Function} props.onDelete - The function to delete the comment.\n * @param {Function} props.onReply - The function to reply to the comment.\n * @param {string} props.status - The status of the comment.\n * @return {JSX.Element} The rendered comment header.\n */\nfunction CommentHeader( {\n\tthread,\n\tonResolve,\n\tonEdit,\n\tonDelete,\n\tonReply,\n\tstatus,\n} ) {\n\tconst dateSettings = getDateSettings();\n\tconst [ dateTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\n\tconst actions = [\n\t\t{\n\t\t\ttitle: _x( 'Edit', 'Edit comment' ),\n\t\t\tonClick: onEdit,\n\t\t},\n\t\t{\n\t\t\ttitle: _x( 'Delete', 'Delete comment' ),\n\t\t\tonClick: onDelete,\n\t\t},\n\t\t{\n\t\t\ttitle: _x( 'Reply', 'Reply on a comment' ),\n\t\t\tonClick: onReply,\n\t\t},\n\t];\n\n\tconst moreActions = actions.filter( ( item ) => item.onClick );\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing=\"3\" justify=\"flex-start\">\n\t\t\t<img\n\t\t\t\tsrc={ thread?.author_avatar_urls?.[ 48 ] }\n\t\t\t\tclassName=\"editor-collab-sidebar-panel__user-avatar\"\n\t\t\t\t// translators: alt text for user avatar image\n\t\t\t\talt={ __( 'User avatar' ) }\n\t\t\t\twidth={ 32 }\n\t\t\t\theight={ 32 }\n\t\t\t/>\n\t\t\t<VStack spacing=\"0\">\n\t\t\t\t<span className=\"editor-collab-sidebar-panel__user-name\">\n\t\t\t\t\t{ thread.author_name }\n\t\t\t\t</span>\n\t\t\t\t<time\n\t\t\t\t\tdateTime={ format( 'h:i A', thread.date ) }\n\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__user-time\"\n\t\t\t\t>\n\t\t\t\t\t{ dateI18n( dateTimeFormat, thread.date ) }\n\t\t\t\t</time>\n\t\t\t</VStack>\n\t\t\t<span className=\"editor-collab-sidebar-panel__comment-status\">\n\t\t\t\t{ status !== 'approved' && (\n\t\t\t\t\t<HStack alignment=\"right\" justify=\"flex-end\" spacing=\"0\">\n\t\t\t\t\t\t{ 0 === thread.parent && onResolve && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t\t'Resolve',\n\t\t\t\t\t\t\t\t\t'Mark comment as resolved'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\ticon={ published }\n\t\t\t\t\t\t\t\tonClick={ onResolve }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Select an action',\n\t\t\t\t\t\t\t\t'Select comment action'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__comment-dropdown-menu\"\n\t\t\t\t\t\t\tcontrols={ moreActions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ status === 'approved' && (\n\t\t\t\t\t// translators: tooltip for resolved comment\n\t\t\t\t\t<Tooltip text={ __( 'Resolved' ) }>\n\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t</Tooltip>\n\t\t\t\t) }\n\t\t\t</span>\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.collabSidebarName = void 0;
7
+ const collabSidebarName = exports.collabSidebarName = 'edit-post/collab-sidebar';
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["collabSidebarName","exports"],"sources":["@wordpress/editor/src/components/collab-sidebar/constants.js"],"sourcesContent":["export const collabSidebarName = 'edit-post/collab-sidebar';\n"],"mappings":";;;;;;AAAO,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,0BAA0B","ignoreList":[]}
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = CollabSidebar;
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _data = require("@wordpress/data");
10
+ var _element = require("@wordpress/element");
11
+ var _icons = require("@wordpress/icons");
12
+ var _hooks = require("@wordpress/hooks");
13
+ var _notices = require("@wordpress/notices");
14
+ var _coreData = require("@wordpress/core-data");
15
+ var _blockEditor = require("@wordpress/block-editor");
16
+ var _interface = require("@wordpress/interface");
17
+ var _pluginSidebar = _interopRequireDefault(require("../plugin-sidebar"));
18
+ var _constants = require("./constants");
19
+ var _comments = require("./comments");
20
+ var _addComment = require("./add-comment");
21
+ var _store = require("../../store");
22
+ var _commentButton = _interopRequireDefault(require("./comment-button"));
23
+ var _commentButtonToolbar = _interopRequireDefault(require("./comment-button-toolbar"));
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+ /**
26
+ * WordPress dependencies
27
+ */
28
+
29
+ /**
30
+ * Internal dependencies
31
+ */
32
+
33
+ const threadsEmptyArray = [];
34
+ const isBlockCommentExperimentEnabled = window?.__experimentalEnableBlockComment;
35
+ const modifyBlockCommentAttributes = settings => {
36
+ if (!settings.attributes.blockCommentId) {
37
+ settings.attributes = {
38
+ ...settings.attributes,
39
+ blockCommentId: {
40
+ type: 'number'
41
+ }
42
+ };
43
+ }
44
+ return settings;
45
+ };
46
+
47
+ // Apply the filter to all core blocks
48
+ (0, _hooks.addFilter)('blocks.registerBlockType', 'block-comment/modify-core-block-attributes', modifyBlockCommentAttributes);
49
+
50
+ /**
51
+ * Renders the Collab sidebar.
52
+ */
53
+ function CollabSidebar() {
54
+ const {
55
+ createNotice
56
+ } = (0, _data.useDispatch)(_notices.store);
57
+ const {
58
+ saveEntityRecord,
59
+ deleteEntityRecord
60
+ } = (0, _data.useDispatch)(_coreData.store);
61
+ const {
62
+ getEntityRecord
63
+ } = (0, _data.resolveSelect)(_coreData.store);
64
+ const {
65
+ enableComplementaryArea
66
+ } = (0, _data.useDispatch)(_interface.store);
67
+ const [blockCommentID, setBlockCommentID] = (0, _element.useState)(null);
68
+ const [showCommentBoard, setShowCommentBoard] = (0, _element.useState)(false);
69
+ const {
70
+ postId
71
+ } = (0, _data.useSelect)(select => {
72
+ return {
73
+ postId: select(_store.store).getCurrentPostId()
74
+ };
75
+ }, []);
76
+ const postStatus = (0, _data.useSelect)(select => {
77
+ const post = select(_store.store).getCurrentPost();
78
+ return {
79
+ postStatus: post?.status
80
+ };
81
+ }, []);
82
+ const threads = (0, _data.useSelect)(select => {
83
+ if (!postId) {
84
+ return threadsEmptyArray;
85
+ }
86
+ const {
87
+ getEntityRecords
88
+ } = select(_coreData.store);
89
+ const data = getEntityRecords('root', 'comment', {
90
+ post: postId,
91
+ type: 'block_comment',
92
+ status: 'any',
93
+ per_page: 100
94
+ });
95
+ return data || threadsEmptyArray;
96
+ }, [postId]);
97
+ const clientId = (0, _data.useSelect)(select => {
98
+ const {
99
+ getSelectedBlockClientId
100
+ } = select(_blockEditor.store);
101
+ return getSelectedBlockClientId();
102
+ }, []);
103
+ const blockDetails = (0, _data.useSelect)(select => {
104
+ return clientId ? select(_blockEditor.store).getBlock(clientId) : null;
105
+ }, [clientId]);
106
+
107
+ // Get the dispatch functions to save the comment and update the block attributes.
108
+ const {
109
+ updateBlockAttributes
110
+ } = (0, _data.useDispatch)(_blockEditor.store);
111
+
112
+ // Process comments to build the tree structure
113
+ const resultComments = (0, _element.useMemo)(() => {
114
+ // Create a compare to store the references to all objects by id
115
+ const compare = {};
116
+ const result = [];
117
+ const filteredComments = threads.filter(comment => comment.status !== 'trash');
118
+
119
+ // Initialize each object with an empty `reply` array
120
+ filteredComments.forEach(item => {
121
+ compare[item.id] = {
122
+ ...item,
123
+ reply: []
124
+ };
125
+ });
126
+
127
+ // Iterate over the data to build the tree structure
128
+ filteredComments.forEach(item => {
129
+ if (item.parent === 0) {
130
+ // If parent is 0, it's a root item, push it to the result array
131
+ result.push(compare[item.id]);
132
+ } else if (compare[item.parent]) {
133
+ // Otherwise, find its parent and push it to the parent's `reply` array
134
+ compare[item.parent].reply.push(compare[item.id]);
135
+ }
136
+ });
137
+ return result;
138
+ }, [threads]);
139
+ const openCollabBoard = () => {
140
+ setShowCommentBoard(true);
141
+ enableComplementaryArea('core', 'edit-post/collab-sidebar');
142
+ };
143
+
144
+ // Function to save the comment.
145
+ const addNewComment = async (comment, parentCommentId) => {
146
+ const args = {
147
+ post: postId,
148
+ content: comment,
149
+ comment_type: 'block_comment',
150
+ comment_approved: 0
151
+ };
152
+
153
+ // Create a new object, conditionally including the parent property
154
+ const updatedArgs = {
155
+ ...args,
156
+ ...(parentCommentId ? {
157
+ parent: parentCommentId
158
+ } : {})
159
+ };
160
+ const savedRecord = await saveEntityRecord('root', 'comment', updatedArgs);
161
+ if (savedRecord) {
162
+ // If it's a main comment, update the block attributes with the comment id.
163
+ if (!parentCommentId) {
164
+ updateBlockAttributes(clientId, {
165
+ blockCommentId: savedRecord?.id
166
+ });
167
+ }
168
+ createNotice('snackbar', parentCommentId ?
169
+ // translators: Reply added successfully
170
+ (0, _i18n.__)('Reply added successfully.') :
171
+ // translators: Comment added successfully
172
+ (0, _i18n.__)('Comment added successfully.'), {
173
+ type: 'snackbar',
174
+ isDismissible: true
175
+ });
176
+ } else {
177
+ onError();
178
+ }
179
+ };
180
+ const onCommentResolve = async commentId => {
181
+ const savedRecord = await saveEntityRecord('root', 'comment', {
182
+ id: commentId,
183
+ status: 'approved'
184
+ });
185
+ if (savedRecord) {
186
+ // translators: Comment resolved successfully
187
+ createNotice('snackbar', (0, _i18n.__)('Comment marked as resolved.'), {
188
+ type: 'snackbar',
189
+ isDismissible: true
190
+ });
191
+ } else {
192
+ onError();
193
+ }
194
+ };
195
+ const onEditComment = async (commentId, comment) => {
196
+ const savedRecord = await saveEntityRecord('root', 'comment', {
197
+ id: commentId,
198
+ content: comment
199
+ });
200
+ if (savedRecord) {
201
+ createNotice('snackbar',
202
+ // translators: Comment edited successfully
203
+ (0, _i18n.__)('Comment edited successfully.'), {
204
+ type: 'snackbar',
205
+ isDismissible: true
206
+ });
207
+ } else {
208
+ onError();
209
+ }
210
+ };
211
+ const onError = () => {
212
+ createNotice('error',
213
+ // translators: Error message when comment submission fails
214
+ (0, _i18n.__)('Something went wrong. Please try publishing the post, or you may have already submitted your comment earlier.'), {
215
+ isDismissible: true
216
+ });
217
+ };
218
+ const onCommentDelete = async commentId => {
219
+ const childComment = await getEntityRecord('root', 'comment', commentId);
220
+ await deleteEntityRecord('root', 'comment', commentId);
221
+ if (childComment && !childComment.parent) {
222
+ updateBlockAttributes(clientId, {
223
+ blockCommentId: undefined
224
+ });
225
+ }
226
+ createNotice('snackbar',
227
+ // translators: Comment deleted successfully
228
+ (0, _i18n.__)('Comment deleted successfully.'), {
229
+ type: 'snackbar',
230
+ isDismissible: true
231
+ });
232
+ };
233
+ (0, _element.useEffect)(() => {
234
+ if (blockDetails) {
235
+ setBlockCommentID(blockDetails?.attributes.blockCommentId);
236
+ }
237
+ }, [postId, clientId]);
238
+
239
+ // Check if the experimental flag is enabled.
240
+ if (!isBlockCommentExperimentEnabled || postStatus.postStatus === 'publish') {
241
+ return null; // or maybe return some message indicating no threads are available.
242
+ }
243
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
244
+ children: [!blockCommentID && /*#__PURE__*/(0, _jsxRuntime.jsx)(_commentButton.default, {
245
+ onClick: openCollabBoard
246
+ }), blockCommentID > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_commentButtonToolbar.default, {
247
+ onClick: openCollabBoard
248
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_pluginSidebar.default, {
249
+ identifier: _constants.collabSidebarName
250
+ // translators: Comments sidebar title
251
+ ,
252
+ title: (0, _i18n.__)('Comments'),
253
+ icon: _icons.comment,
254
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
255
+ className: "editor-collab-sidebar-panel",
256
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_addComment.AddComment, {
257
+ threads: resultComments,
258
+ onSubmit: addNewComment,
259
+ showCommentBoard: showCommentBoard,
260
+ setShowCommentBoard: setShowCommentBoard
261
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_comments.Comments, {
262
+ threads: resultComments,
263
+ onEditComment: onEditComment,
264
+ onAddReply: addNewComment,
265
+ onCommentDelete: onCommentDelete,
266
+ onCommentResolve: onCommentResolve
267
+ })]
268
+ })
269
+ })]
270
+ });
271
+ }
272
+ //# sourceMappingURL=index.js.map