@wordpress/editor 14.34.0 → 14.35.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 (1189) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/bindings/api.js +2 -0
  4. package/build/bindings/api.js.map +1 -1
  5. package/build/bindings/pattern-overrides.js +3 -1
  6. package/build/bindings/pattern-overrides.js.map +1 -1
  7. package/build/bindings/post-data.js +50 -64
  8. package/build/bindings/post-data.js.map +3 -3
  9. package/build/bindings/post-meta.js +47 -39
  10. package/build/bindings/post-meta.js.map +2 -2
  11. package/build/bindings/term-data.js +3 -1
  12. package/build/bindings/term-data.js.map +1 -1
  13. package/build/components/autocompleters/index.js +2 -0
  14. package/build/components/autocompleters/index.js.map +1 -1
  15. package/build/components/autocompleters/user.js +3 -1
  16. package/build/components/autocompleters/user.js.map +1 -1
  17. package/build/components/autosave-monitor/index.js +4 -2
  18. package/build/components/autosave-monitor/index.js.map +1 -1
  19. package/build/components/block-removal-warnings/index.js +6 -4
  20. package/build/components/block-removal-warnings/index.js.map +1 -1
  21. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js +6 -4
  22. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
  23. package/build/components/block-visibility/index.js +5 -3
  24. package/build/components/block-visibility/index.js.map +1 -1
  25. package/build/components/blog-title/index.js +4 -2
  26. package/build/components/blog-title/index.js.map +1 -1
  27. package/build/components/character-count/index.js +2 -0
  28. package/build/components/character-count/index.js.map +1 -1
  29. package/build/components/collab-sidebar/add-comment.js +21 -17
  30. package/build/components/collab-sidebar/add-comment.js.map +2 -2
  31. package/build/components/collab-sidebar/comment-author-info.js +4 -2
  32. package/build/components/collab-sidebar/comment-author-info.js.map +2 -2
  33. package/build/components/collab-sidebar/comment-form.js +17 -6
  34. package/build/components/collab-sidebar/comment-form.js.map +2 -2
  35. package/build/components/collab-sidebar/comment-indicator-toolbar.js +14 -26
  36. package/build/components/collab-sidebar/comment-indicator-toolbar.js.map +3 -3
  37. package/build/components/collab-sidebar/comment-menu-item.js +40 -8
  38. package/build/components/collab-sidebar/comment-menu-item.js.map +3 -3
  39. package/build/components/collab-sidebar/comments.js +386 -325
  40. package/build/components/collab-sidebar/comments.js.map +3 -3
  41. package/build/components/collab-sidebar/constants.js +5 -3
  42. package/build/components/collab-sidebar/constants.js.map +1 -1
  43. package/build/components/collab-sidebar/hooks.js +8 -4
  44. package/build/components/collab-sidebar/hooks.js.map +2 -2
  45. package/build/components/collab-sidebar/index.js +53 -27
  46. package/build/components/collab-sidebar/index.js.map +3 -3
  47. package/build/components/collab-sidebar/utils.js +4 -2
  48. package/build/components/collab-sidebar/utils.js.map +2 -2
  49. package/build/components/collapsible-block-toolbar/index.js +4 -2
  50. package/build/components/collapsible-block-toolbar/index.js.map +1 -1
  51. package/build/components/commands/index.js +22 -8
  52. package/build/components/commands/index.js.map +2 -2
  53. package/build/components/deprecated.js +55 -53
  54. package/build/components/deprecated.js.map +1 -1
  55. package/build/components/document-bar/index.js +4 -2
  56. package/build/components/document-bar/index.js.map +1 -1
  57. package/build/components/document-outline/check.js +2 -0
  58. package/build/components/document-outline/check.js.map +1 -1
  59. package/build/components/document-outline/index.js +9 -7
  60. package/build/components/document-outline/index.js.map +1 -1
  61. package/build/components/document-outline/item.js +4 -2
  62. package/build/components/document-outline/item.js.map +1 -1
  63. package/build/components/document-tools/index.js +3 -1
  64. package/build/components/document-tools/index.js.map +1 -1
  65. package/build/components/editor/index.js +14 -4
  66. package/build/components/editor/index.js.map +3 -3
  67. package/build/components/editor-history/redo.js +3 -1
  68. package/build/components/editor-history/redo.js.map +1 -1
  69. package/build/components/editor-history/undo.js +3 -1
  70. package/build/components/editor-history/undo.js.map +1 -1
  71. package/build/components/editor-interface/index.js +4 -2
  72. package/build/components/editor-interface/index.js.map +1 -1
  73. package/build/components/editor-notices/index.js +3 -1
  74. package/build/components/editor-notices/index.js.map +1 -1
  75. package/build/components/editor-snackbars/index.js +4 -2
  76. package/build/components/editor-snackbars/index.js.map +1 -1
  77. package/build/components/entities-saved-states/entity-record-item.js +3 -1
  78. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  79. package/build/components/entities-saved-states/entity-type-list.js +3 -1
  80. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  81. package/build/components/entities-saved-states/hooks/use-is-dirty.js +3 -1
  82. package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  83. package/build/components/entities-saved-states/index.js +3 -1
  84. package/build/components/entities-saved-states/index.js.map +2 -2
  85. package/build/components/error-boundary/index.js +5 -3
  86. package/build/components/error-boundary/index.js.map +1 -1
  87. package/build/components/global-keyboard-shortcuts/index.js +2 -0
  88. package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
  89. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +3 -1
  90. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  91. package/build/components/global-styles/block-link.js +2 -0
  92. package/build/components/global-styles/block-link.js.map +1 -1
  93. package/build/components/global-styles/header.js +3 -1
  94. package/build/components/global-styles/header.js.map +1 -1
  95. package/build/components/global-styles/hooks.js +3 -1
  96. package/build/components/global-styles/hooks.js.map +2 -2
  97. package/build/components/global-styles/index.js +3 -1
  98. package/build/components/global-styles/index.js.map +1 -1
  99. package/build/components/global-styles/menu.js +3 -1
  100. package/build/components/global-styles/menu.js.map +1 -1
  101. package/build/components/global-styles-provider/index.js +3 -1
  102. package/build/components/global-styles-provider/index.js.map +1 -1
  103. package/build/components/global-styles-renderer/index.js +2 -0
  104. package/build/components/global-styles-renderer/index.js.map +1 -1
  105. package/build/components/global-styles-sidebar/default-sidebar.js +3 -1
  106. package/build/components/global-styles-sidebar/default-sidebar.js.map +1 -1
  107. package/build/components/global-styles-sidebar/index.js +3 -1
  108. package/build/components/global-styles-sidebar/index.js.map +1 -1
  109. package/build/components/global-styles-sidebar/welcome-guide-image.js +2 -0
  110. package/build/components/global-styles-sidebar/welcome-guide-image.js.map +1 -1
  111. package/build/components/global-styles-sidebar/welcome-guide.js +3 -1
  112. package/build/components/global-styles-sidebar/welcome-guide.js.map +1 -1
  113. package/build/components/header/back-button.js +8 -6
  114. package/build/components/header/back-button.js.map +1 -1
  115. package/build/components/header/index.js +5 -3
  116. package/build/components/header/index.js.map +1 -1
  117. package/build/components/index.js +4 -2
  118. package/build/components/index.js.map +2 -2
  119. package/build/components/inserter-sidebar/index.js +4 -2
  120. package/build/components/inserter-sidebar/index.js.map +1 -1
  121. package/build/components/keyboard-shortcut-help-modal/config.js +3 -1
  122. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  123. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +3 -1
  124. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  125. package/build/components/keyboard-shortcut-help-modal/index.js +7 -5
  126. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  127. package/build/components/keyboard-shortcut-help-modal/shortcut.js +3 -1
  128. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  129. package/build/components/list-view-sidebar/index.js +4 -2
  130. package/build/components/list-view-sidebar/index.js.map +1 -1
  131. package/build/components/list-view-sidebar/list-view-outline.js +3 -1
  132. package/build/components/list-view-sidebar/list-view-outline.js.map +1 -1
  133. package/build/components/local-autosave-monitor/index.js +6 -4
  134. package/build/components/local-autosave-monitor/index.js.map +1 -1
  135. package/build/components/media-categories/index.js +8 -6
  136. package/build/components/media-categories/index.js.map +1 -1
  137. package/build/components/mode-switcher/index.js +4 -2
  138. package/build/components/mode-switcher/index.js.map +1 -1
  139. package/build/components/more-menu/copy-content-menu-item.js +3 -1
  140. package/build/components/more-menu/copy-content-menu-item.js.map +1 -1
  141. package/build/components/more-menu/index.js +4 -2
  142. package/build/components/more-menu/index.js.map +2 -2
  143. package/build/components/more-menu/tools-more-menu-group.js +4 -2
  144. package/build/components/more-menu/tools-more-menu-group.js.map +1 -1
  145. package/build/components/more-menu/view-more-menu-group.js +4 -2
  146. package/build/components/more-menu/view-more-menu-group.js.map +1 -1
  147. package/build/components/page-attributes/check.js +2 -0
  148. package/build/components/page-attributes/check.js.map +1 -1
  149. package/build/components/page-attributes/order.js +3 -1
  150. package/build/components/page-attributes/order.js.map +1 -1
  151. package/build/components/page-attributes/panel.js +4 -2
  152. package/build/components/page-attributes/panel.js.map +1 -1
  153. package/build/components/page-attributes/parent.js +4 -2
  154. package/build/components/page-attributes/parent.js.map +1 -1
  155. package/build/components/pattern-duplicate-modal/index.js +5 -3
  156. package/build/components/pattern-duplicate-modal/index.js.map +1 -1
  157. package/build/components/pattern-overrides-panel/index.js +4 -2
  158. package/build/components/pattern-overrides-panel/index.js.map +1 -1
  159. package/build/components/pattern-rename-modal/index.js +5 -3
  160. package/build/components/pattern-rename-modal/index.js.map +1 -1
  161. package/build/components/plugin-document-setting-panel/index.js +5 -3
  162. package/build/components/plugin-document-setting-panel/index.js.map +1 -1
  163. package/build/components/plugin-more-menu-item/index.js +3 -1
  164. package/build/components/plugin-more-menu-item/index.js.map +1 -1
  165. package/build/components/plugin-post-publish-panel/index.js +5 -3
  166. package/build/components/plugin-post-publish-panel/index.js.map +1 -1
  167. package/build/components/plugin-post-status-info/index.js +5 -3
  168. package/build/components/plugin-post-status-info/index.js.map +1 -1
  169. package/build/components/plugin-pre-publish-panel/index.js +5 -3
  170. package/build/components/plugin-pre-publish-panel/index.js.map +1 -1
  171. package/build/components/plugin-preview-menu-item/index.js +3 -1
  172. package/build/components/plugin-preview-menu-item/index.js.map +1 -1
  173. package/build/components/plugin-sidebar/index.js +3 -1
  174. package/build/components/plugin-sidebar/index.js.map +1 -1
  175. package/build/components/plugin-sidebar-more-menu-item/index.js +3 -1
  176. package/build/components/plugin-sidebar-more-menu-item/index.js.map +1 -1
  177. package/build/components/post-actions/actions.js +3 -1
  178. package/build/components/post-actions/actions.js.map +1 -1
  179. package/build/components/post-actions/index.js +4 -2
  180. package/build/components/post-actions/index.js.map +1 -1
  181. package/build/components/post-actions/set-as-homepage.js +5 -3
  182. package/build/components/post-actions/set-as-homepage.js.map +1 -1
  183. package/build/components/post-actions/set-as-posts-page.js +5 -3
  184. package/build/components/post-actions/set-as-posts-page.js.map +1 -1
  185. package/build/components/post-author/check.js +3 -1
  186. package/build/components/post-author/check.js.map +1 -1
  187. package/build/components/post-author/combobox.js +3 -1
  188. package/build/components/post-author/combobox.js.map +1 -1
  189. package/build/components/post-author/constants.js +4 -2
  190. package/build/components/post-author/constants.js.map +1 -1
  191. package/build/components/post-author/hook.js +2 -0
  192. package/build/components/post-author/hook.js.map +1 -1
  193. package/build/components/post-author/index.js +4 -2
  194. package/build/components/post-author/index.js.map +1 -1
  195. package/build/components/post-author/panel.js +3 -1
  196. package/build/components/post-author/panel.js.map +1 -1
  197. package/build/components/post-author/select.js +3 -1
  198. package/build/components/post-author/select.js.map +1 -1
  199. package/build/components/post-card-panel/index.js +4 -2
  200. package/build/components/post-card-panel/index.js.map +1 -1
  201. package/build/components/post-comments/index.js +4 -2
  202. package/build/components/post-comments/index.js.map +1 -1
  203. package/build/components/post-content-information/index.js +4 -2
  204. package/build/components/post-content-information/index.js.map +1 -1
  205. package/build/components/post-discussion/panel.js +4 -2
  206. package/build/components/post-discussion/panel.js.map +1 -1
  207. package/build/components/post-excerpt/check.js +3 -1
  208. package/build/components/post-excerpt/check.js.map +1 -1
  209. package/build/components/post-excerpt/index.js +3 -1
  210. package/build/components/post-excerpt/index.js.map +1 -1
  211. package/build/components/post-excerpt/panel.js +4 -2
  212. package/build/components/post-excerpt/panel.js.map +1 -1
  213. package/build/components/post-excerpt/plugin.js +5 -3
  214. package/build/components/post-excerpt/plugin.js.map +1 -1
  215. package/build/components/post-featured-image/check.js +3 -1
  216. package/build/components/post-featured-image/check.js.map +1 -1
  217. package/build/components/post-featured-image/index.js +10 -8
  218. package/build/components/post-featured-image/index.js.map +1 -1
  219. package/build/components/post-featured-image/panel.js +4 -2
  220. package/build/components/post-featured-image/panel.js.map +1 -1
  221. package/build/components/post-fields/index.js +2 -0
  222. package/build/components/post-fields/index.js.map +1 -1
  223. package/build/components/post-format/check.js +3 -1
  224. package/build/components/post-format/check.js.map +1 -1
  225. package/build/components/post-format/index.js +4 -2
  226. package/build/components/post-format/index.js.map +1 -1
  227. package/build/components/post-format/panel.js +3 -1
  228. package/build/components/post-format/panel.js.map +1 -1
  229. package/build/components/post-last-edited-panel/index.js +3 -1
  230. package/build/components/post-last-edited-panel/index.js.map +1 -1
  231. package/build/components/post-last-revision/check.js +3 -1
  232. package/build/components/post-last-revision/check.js.map +1 -1
  233. package/build/components/post-last-revision/index.js +3 -1
  234. package/build/components/post-last-revision/index.js.map +1 -1
  235. package/build/components/post-last-revision/panel.js +3 -1
  236. package/build/components/post-last-revision/panel.js.map +1 -1
  237. package/build/components/post-locked-modal/index.js +3 -1
  238. package/build/components/post-locked-modal/index.js.map +1 -1
  239. package/build/components/post-panel-row/index.js +4 -2
  240. package/build/components/post-panel-row/index.js.map +1 -1
  241. package/build/components/post-panel-section/index.js +3 -1
  242. package/build/components/post-panel-section/index.js.map +1 -1
  243. package/build/components/post-pending-status/check.js +2 -0
  244. package/build/components/post-pending-status/check.js.map +1 -1
  245. package/build/components/post-pending-status/index.js +3 -1
  246. package/build/components/post-pending-status/index.js.map +1 -1
  247. package/build/components/post-pingbacks/index.js +3 -1
  248. package/build/components/post-pingbacks/index.js.map +1 -1
  249. package/build/components/post-preview-button/index.js +3 -1
  250. package/build/components/post-preview-button/index.js.map +1 -1
  251. package/build/components/post-publish-button/index.js +6 -4
  252. package/build/components/post-publish-button/index.js.map +1 -1
  253. package/build/components/post-publish-button/label.js +2 -0
  254. package/build/components/post-publish-button/label.js.map +1 -1
  255. package/build/components/post-publish-button/post-publish-button-or-toggle.js +5 -3
  256. package/build/components/post-publish-button/post-publish-button-or-toggle.js.map +1 -1
  257. package/build/components/post-publish-panel/index.js +5 -3
  258. package/build/components/post-publish-panel/index.js.map +1 -1
  259. package/build/components/post-publish-panel/maybe-category-panel.js +3 -1
  260. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  261. package/build/components/post-publish-panel/maybe-post-format-panel.js +5 -3
  262. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  263. package/build/components/post-publish-panel/maybe-tags-panel.js +5 -3
  264. package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  265. package/build/components/post-publish-panel/maybe-upload-media.js +3 -1
  266. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  267. package/build/components/post-publish-panel/media-util.js +2 -0
  268. package/build/components/post-publish-panel/media-util.js.map +1 -1
  269. package/build/components/post-publish-panel/postpublish.js +6 -4
  270. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  271. package/build/components/post-publish-panel/prepublish.js +3 -1
  272. package/build/components/post-publish-panel/prepublish.js.map +1 -1
  273. package/build/components/post-saved-state/index.js +3 -1
  274. package/build/components/post-saved-state/index.js.map +1 -1
  275. package/build/components/post-schedule/check.js +2 -0
  276. package/build/components/post-schedule/check.js.map +1 -1
  277. package/build/components/post-schedule/index.js +4 -2
  278. package/build/components/post-schedule/index.js.map +1 -1
  279. package/build/components/post-schedule/label.js +2 -0
  280. package/build/components/post-schedule/label.js.map +1 -1
  281. package/build/components/post-schedule/panel.js +4 -2
  282. package/build/components/post-schedule/panel.js.map +1 -1
  283. package/build/components/post-status/index.js +6 -4
  284. package/build/components/post-status/index.js.map +1 -1
  285. package/build/components/post-sticky/check.js +2 -0
  286. package/build/components/post-sticky/check.js.map +1 -1
  287. package/build/components/post-sticky/index.js +3 -1
  288. package/build/components/post-sticky/index.js.map +1 -1
  289. package/build/components/post-sticky/panel.js +3 -1
  290. package/build/components/post-sticky/panel.js.map +1 -1
  291. package/build/components/post-switch-to-draft-button/index.js +3 -1
  292. package/build/components/post-switch-to-draft-button/index.js.map +1 -1
  293. package/build/components/post-sync-status/index.js +3 -1
  294. package/build/components/post-sync-status/index.js.map +1 -1
  295. package/build/components/post-taxonomies/check.js +2 -0
  296. package/build/components/post-taxonomies/check.js.map +1 -1
  297. package/build/components/post-taxonomies/flat-term-selector.js +9 -7
  298. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  299. package/build/components/post-taxonomies/hierarchical-term-selector.js +8 -6
  300. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  301. package/build/components/post-taxonomies/index.js +4 -2
  302. package/build/components/post-taxonomies/index.js.map +1 -1
  303. package/build/components/post-taxonomies/most-used-terms.js +5 -3
  304. package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
  305. package/build/components/post-taxonomies/panel.js +3 -1
  306. package/build/components/post-taxonomies/panel.js.map +1 -1
  307. package/build/components/post-template/block-theme.js +3 -1
  308. package/build/components/post-template/block-theme.js.map +1 -1
  309. package/build/components/post-template/classic-theme.js +3 -1
  310. package/build/components/post-template/classic-theme.js.map +1 -1
  311. package/build/components/post-template/create-new-template-modal.js +4 -2
  312. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  313. package/build/components/post-template/create-new-template.js +3 -1
  314. package/build/components/post-template/create-new-template.js.map +1 -1
  315. package/build/components/post-template/hooks.js +2 -0
  316. package/build/components/post-template/hooks.js.map +1 -1
  317. package/build/components/post-template/panel.js +12 -7
  318. package/build/components/post-template/panel.js.map +2 -2
  319. package/build/components/post-template/reset-default-template.js +3 -1
  320. package/build/components/post-template/reset-default-template.js.map +1 -1
  321. package/build/components/post-template/swap-template-button.js +3 -1
  322. package/build/components/post-template/swap-template-button.js.map +1 -1
  323. package/build/components/post-text-editor/index.js +3 -1
  324. package/build/components/post-text-editor/index.js.map +1 -1
  325. package/build/components/post-title/constants.js +4 -2
  326. package/build/components/post-title/constants.js.map +1 -1
  327. package/build/components/post-title/index.js +25 -14
  328. package/build/components/post-title/index.js.map +2 -2
  329. package/build/components/post-title/post-title-raw.js +3 -1
  330. package/build/components/post-title/post-title-raw.js.map +1 -1
  331. package/build/components/post-title/use-post-title-focus.js +2 -0
  332. package/build/components/post-title/use-post-title-focus.js.map +1 -1
  333. package/build/components/post-title/use-post-title.js +2 -0
  334. package/build/components/post-title/use-post-title.js.map +1 -1
  335. package/build/components/post-transform-panel/hooks.js +3 -1
  336. package/build/components/post-transform-panel/hooks.js.map +1 -1
  337. package/build/components/post-transform-panel/index.js +3 -1
  338. package/build/components/post-transform-panel/index.js.map +1 -1
  339. package/build/components/post-trash/check.js +2 -0
  340. package/build/components/post-trash/check.js.map +1 -1
  341. package/build/components/post-trash/index.js +3 -1
  342. package/build/components/post-trash/index.js.map +1 -1
  343. package/build/components/post-type-support-check/index.js +2 -0
  344. package/build/components/post-type-support-check/index.js.map +1 -1
  345. package/build/components/post-url/check.js +2 -0
  346. package/build/components/post-url/check.js.map +1 -1
  347. package/build/components/post-url/index.js +3 -1
  348. package/build/components/post-url/index.js.map +1 -1
  349. package/build/components/post-url/label.js +2 -0
  350. package/build/components/post-url/label.js.map +1 -1
  351. package/build/components/post-url/panel.js +3 -1
  352. package/build/components/post-url/panel.js.map +1 -1
  353. package/build/components/post-view-link/index.js +3 -1
  354. package/build/components/post-view-link/index.js.map +1 -1
  355. package/build/components/post-visibility/check.js +2 -0
  356. package/build/components/post-visibility/check.js.map +1 -1
  357. package/build/components/post-visibility/index.js +3 -1
  358. package/build/components/post-visibility/index.js.map +1 -1
  359. package/build/components/post-visibility/label.js +2 -0
  360. package/build/components/post-visibility/label.js.map +1 -1
  361. package/build/components/post-visibility/utils.js +3 -1
  362. package/build/components/post-visibility/utils.js.map +1 -1
  363. package/build/components/posts-per-page/index.js +3 -1
  364. package/build/components/posts-per-page/index.js.map +1 -1
  365. package/build/components/preferences-modal/enable-panel.js +4 -2
  366. package/build/components/preferences-modal/enable-panel.js.map +1 -1
  367. package/build/components/preferences-modal/enable-plugin-document-setting-panel.js +5 -3
  368. package/build/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  369. package/build/components/preferences-modal/enable-publish-sidebar.js +4 -2
  370. package/build/components/preferences-modal/enable-publish-sidebar.js.map +1 -1
  371. package/build/components/preferences-modal/index.js +5 -3
  372. package/build/components/preferences-modal/index.js.map +2 -2
  373. package/build/components/preview-dropdown/index.js +3 -1
  374. package/build/components/preview-dropdown/index.js.map +1 -1
  375. package/build/components/provider/disable-non-page-content-blocks.js +2 -0
  376. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  377. package/build/components/provider/index.js +8 -6
  378. package/build/components/provider/index.js.map +1 -1
  379. package/build/components/provider/navigation-block-editing-mode.js +2 -0
  380. package/build/components/provider/navigation-block-editing-mode.js.map +1 -1
  381. package/build/components/provider/use-auto-switch-editor-sidebars.js +2 -0
  382. package/build/components/provider/use-auto-switch-editor-sidebars.js.map +1 -1
  383. package/build/components/provider/use-block-editor-settings.js +5 -3
  384. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  385. package/build/components/provider/use-hide-blocks-from-inserter.js +3 -1
  386. package/build/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  387. package/build/components/provider/use-post-content-blocks.js +3 -1
  388. package/build/components/provider/use-post-content-blocks.js.map +1 -1
  389. package/build/components/provider/with-registry-provider.js +4 -2
  390. package/build/components/provider/with-registry-provider.js.map +1 -1
  391. package/build/components/resizable-editor/index.js +4 -2
  392. package/build/components/resizable-editor/index.js.map +1 -1
  393. package/build/components/resizable-editor/resize-handle.js +4 -2
  394. package/build/components/resizable-editor/resize-handle.js.map +1 -1
  395. package/build/components/save-publish-panels/index.js +5 -3
  396. package/build/components/save-publish-panels/index.js.map +1 -1
  397. package/build/components/sidebar/constants.js +3 -1
  398. package/build/components/sidebar/constants.js.map +1 -1
  399. package/build/components/sidebar/header.js +5 -3
  400. package/build/components/sidebar/header.js.map +1 -1
  401. package/build/components/sidebar/index.js +7 -5
  402. package/build/components/sidebar/index.js.map +1 -1
  403. package/build/components/sidebar/post-summary.js +4 -2
  404. package/build/components/sidebar/post-summary.js.map +1 -1
  405. package/build/components/site-discussion/index.js +4 -2
  406. package/build/components/site-discussion/index.js.map +1 -1
  407. package/build/components/start-page-options/index.js +7 -6
  408. package/build/components/start-page-options/index.js.map +2 -2
  409. package/build/components/start-template-options/index.js +3 -1
  410. package/build/components/start-template-options/index.js.map +1 -1
  411. package/build/components/style-book/categories.js +2 -0
  412. package/build/components/style-book/categories.js.map +1 -1
  413. package/build/components/style-book/color-examples.js +4 -2
  414. package/build/components/style-book/color-examples.js.map +1 -1
  415. package/build/components/style-book/constants.js +9 -7
  416. package/build/components/style-book/constants.js.map +1 -1
  417. package/build/components/style-book/duotone-examples.js +4 -2
  418. package/build/components/style-book/duotone-examples.js.map +1 -1
  419. package/build/components/style-book/examples.js +3 -1
  420. package/build/components/style-book/examples.js.map +1 -1
  421. package/build/components/style-book/index.js +13 -11
  422. package/build/components/style-book/index.js.map +1 -1
  423. package/build/components/style-book/types.js +2 -0
  424. package/build/components/style-book/types.js.map +1 -1
  425. package/build/components/styles-canvas/index.js +3 -1
  426. package/build/components/styles-canvas/index.js.map +1 -1
  427. package/build/components/styles-canvas/revisions.js +4 -2
  428. package/build/components/styles-canvas/revisions.js.map +1 -1
  429. package/build/components/styles-canvas/style-book.js +3 -1
  430. package/build/components/styles-canvas/style-book.js.map +1 -1
  431. package/build/components/table-of-contents/index.js +3 -1
  432. package/build/components/table-of-contents/index.js.map +1 -1
  433. package/build/components/table-of-contents/panel.js +3 -1
  434. package/build/components/table-of-contents/panel.js.map +1 -1
  435. package/build/components/template-content-panel/index.js +6 -4
  436. package/build/components/template-content-panel/index.js.map +1 -1
  437. package/build/components/template-part-content-panel/index.js +4 -2
  438. package/build/components/template-part-content-panel/index.js.map +1 -1
  439. package/build/components/template-part-menu-items/convert-to-regular.js +3 -1
  440. package/build/components/template-part-menu-items/convert-to-regular.js.map +1 -1
  441. package/build/components/template-part-menu-items/convert-to-template-part.js +3 -1
  442. package/build/components/template-part-menu-items/convert-to-template-part.js.map +1 -1
  443. package/build/components/template-part-menu-items/index.js +3 -1
  444. package/build/components/template-part-menu-items/index.js.map +1 -1
  445. package/build/components/template-validation-notice/index.js +3 -1
  446. package/build/components/template-validation-notice/index.js.map +1 -1
  447. package/build/components/text-editor/index.js +3 -1
  448. package/build/components/text-editor/index.js.map +1 -1
  449. package/build/components/theme-support-check/index.js +2 -0
  450. package/build/components/theme-support-check/index.js.map +1 -1
  451. package/build/components/time-to-read/index.js +4 -2
  452. package/build/components/time-to-read/index.js.map +1 -1
  453. package/build/components/unsaved-changes-warning/index.js +2 -0
  454. package/build/components/unsaved-changes-warning/index.js.map +1 -1
  455. package/build/components/visual-editor/edit-template-blocks-notification.js +3 -1
  456. package/build/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  457. package/build/components/visual-editor/index.js +34 -13
  458. package/build/components/visual-editor/index.js.map +2 -2
  459. package/build/components/visual-editor/use-edit-content-only-section-exit.js +65 -0
  460. package/build/components/visual-editor/use-edit-content-only-section-exit.js.map +7 -0
  461. package/build/components/visual-editor/use-padding-appender.js +75 -0
  462. package/build/components/visual-editor/use-padding-appender.js.map +7 -0
  463. package/build/components/visual-editor/use-select-nearest-editable-block.js +3 -1
  464. package/build/components/visual-editor/use-select-nearest-editable-block.js.map +1 -1
  465. package/build/components/visual-editor/use-zoom-out-mode-exit.js +2 -0
  466. package/build/components/visual-editor/use-zoom-out-mode-exit.js.map +1 -1
  467. package/build/components/word-count/index.js +3 -1
  468. package/build/components/word-count/index.js.map +1 -1
  469. package/build/components/zoom-out-toggle/index.js +4 -2
  470. package/build/components/zoom-out-toggle/index.js.map +1 -1
  471. package/build/dataviews/api.js +2 -0
  472. package/build/dataviews/api.js.map +1 -1
  473. package/build/dataviews/fields/content-preview/content-preview-view.js +5 -3
  474. package/build/dataviews/fields/content-preview/content-preview-view.js.map +3 -3
  475. package/build/dataviews/fields/content-preview/index.js +3 -1
  476. package/build/dataviews/fields/content-preview/index.js.map +1 -1
  477. package/build/dataviews/store/private-actions.js +3 -1
  478. package/build/dataviews/store/private-actions.js.map +1 -1
  479. package/build/dataviews/store/private-selectors.js +3 -1
  480. package/build/dataviews/store/private-selectors.js.map +1 -1
  481. package/build/dataviews/store/reducer.js +2 -0
  482. package/build/dataviews/store/reducer.js.map +1 -1
  483. package/build/hooks/custom-sources-backwards-compatibility.js +4 -2
  484. package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  485. package/build/hooks/default-autocompleters.js +2 -0
  486. package/build/hooks/default-autocompleters.js.map +1 -1
  487. package/build/hooks/index.js +2 -0
  488. package/build/hooks/index.js.map +1 -1
  489. package/build/hooks/media-upload.js +3 -1
  490. package/build/hooks/media-upload.js.map +1 -1
  491. package/build/hooks/navigation-link-view-button.js +5 -3
  492. package/build/hooks/navigation-link-view-button.js.map +1 -1
  493. package/build/hooks/pattern-overrides.js +6 -6
  494. package/build/hooks/pattern-overrides.js.map +2 -2
  495. package/build/hooks/push-changes-to-global-styles/index.js +12 -10
  496. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  497. package/build/hooks/template-part-navigation-edit-button.js +7 -5
  498. package/build/hooks/template-part-navigation-edit-button.js.map +1 -1
  499. package/build/hooks/use-global-styles-output.js +2 -0
  500. package/build/hooks/use-global-styles-output.js.map +1 -1
  501. package/build/index.js +2 -0
  502. package/build/index.js.map +1 -1
  503. package/build/lock-unlock.js +3 -1
  504. package/build/lock-unlock.js.map +1 -1
  505. package/build/private-apis.js +4 -2
  506. package/build/private-apis.js.map +1 -1
  507. package/build/store/actions.js +54 -52
  508. package/build/store/actions.js.map +2 -2
  509. package/build/store/constants.js +15 -13
  510. package/build/store/constants.js.map +1 -1
  511. package/build/store/defaults.js +3 -1
  512. package/build/store/defaults.js.map +1 -1
  513. package/build/store/index.js +4 -2
  514. package/build/store/index.js.map +1 -1
  515. package/build/store/local-autosave.js +2 -0
  516. package/build/store/local-autosave.js.map +1 -1
  517. package/build/store/private-actions.js +17 -7
  518. package/build/store/private-actions.js.map +2 -2
  519. package/build/store/private-selectors.js +15 -8
  520. package/build/store/private-selectors.js.map +2 -2
  521. package/build/store/reducer.js +12 -0
  522. package/build/store/reducer.js.map +2 -2
  523. package/build/store/selectors.js +80 -78
  524. package/build/store/selectors.js.map +2 -2
  525. package/build/store/utils/is-template-revertable.js +2 -0
  526. package/build/store/utils/is-template-revertable.js.map +1 -1
  527. package/build/store/utils/notice-builder.js +2 -0
  528. package/build/store/utils/notice-builder.js.map +1 -1
  529. package/build/utils/get-item-title.js +2 -0
  530. package/build/utils/get-item-title.js.map +1 -1
  531. package/build/utils/get-template-info.js +4 -2
  532. package/build/utils/get-template-info.js.map +1 -1
  533. package/build/utils/get-template-part-icon.js +2 -0
  534. package/build/utils/get-template-part-icon.js.map +1 -1
  535. package/build/utils/index.js +2 -0
  536. package/build/utils/index.js.map +1 -1
  537. package/build/utils/media-sideload/index.js +3 -1
  538. package/build/utils/media-sideload/index.js.map +1 -1
  539. package/build/utils/media-upload/index.js +3 -1
  540. package/build/utils/media-upload/index.js.map +1 -1
  541. package/build/utils/pageTypeBadge.js +2 -0
  542. package/build/utils/pageTypeBadge.js.map +1 -1
  543. package/build/utils/search-templates.js +2 -0
  544. package/build/utils/search-templates.js.map +1 -1
  545. package/build/utils/set-nested-value.js +2 -0
  546. package/build/utils/set-nested-value.js.map +1 -1
  547. package/build/utils/terms.js +5 -3
  548. package/build/utils/terms.js.map +1 -1
  549. package/build/utils/url.js +2 -0
  550. package/build/utils/url.js.map +1 -1
  551. package/build-module/bindings/api.js +1 -0
  552. package/build-module/bindings/api.js.map +1 -1
  553. package/build-module/bindings/pattern-overrides.js +2 -1
  554. package/build-module/bindings/pattern-overrides.js.map +1 -1
  555. package/build-module/bindings/post-data.js +49 -64
  556. package/build-module/bindings/post-data.js.map +2 -2
  557. package/build-module/bindings/post-meta.js +46 -39
  558. package/build-module/bindings/post-meta.js.map +2 -2
  559. package/build-module/bindings/term-data.js +2 -1
  560. package/build-module/bindings/term-data.js.map +1 -1
  561. package/build-module/components/autocompleters/index.js +1 -0
  562. package/build-module/components/autocompleters/index.js.map +1 -1
  563. package/build-module/components/autocompleters/user.js +2 -1
  564. package/build-module/components/autocompleters/user.js.map +1 -1
  565. package/build-module/components/autosave-monitor/index.js +3 -2
  566. package/build-module/components/autosave-monitor/index.js.map +1 -1
  567. package/build-module/components/block-removal-warnings/index.js +5 -4
  568. package/build-module/components/block-removal-warnings/index.js.map +1 -1
  569. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js +5 -4
  570. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
  571. package/build-module/components/block-visibility/index.js +4 -3
  572. package/build-module/components/block-visibility/index.js.map +1 -1
  573. package/build-module/components/blog-title/index.js +3 -2
  574. package/build-module/components/blog-title/index.js.map +1 -1
  575. package/build-module/components/character-count/index.js +1 -0
  576. package/build-module/components/character-count/index.js.map +1 -1
  577. package/build-module/components/collab-sidebar/add-comment.js +21 -18
  578. package/build-module/components/collab-sidebar/add-comment.js.map +2 -2
  579. package/build-module/components/collab-sidebar/comment-author-info.js +3 -2
  580. package/build-module/components/collab-sidebar/comment-author-info.js.map +2 -2
  581. package/build-module/components/collab-sidebar/comment-form.js +16 -6
  582. package/build-module/components/collab-sidebar/comment-form.js.map +2 -2
  583. package/build-module/components/collab-sidebar/comment-indicator-toolbar.js +19 -28
  584. package/build-module/components/collab-sidebar/comment-indicator-toolbar.js.map +2 -2
  585. package/build-module/components/collab-sidebar/comment-menu-item.js +43 -9
  586. package/build-module/components/collab-sidebar/comment-menu-item.js.map +2 -2
  587. package/build-module/components/collab-sidebar/comments.js +387 -326
  588. package/build-module/components/collab-sidebar/comments.js.map +2 -2
  589. package/build-module/components/collab-sidebar/constants.js +4 -3
  590. package/build-module/components/collab-sidebar/constants.js.map +1 -1
  591. package/build-module/components/collab-sidebar/hooks.js +7 -4
  592. package/build-module/components/collab-sidebar/hooks.js.map +2 -2
  593. package/build-module/components/collab-sidebar/index.js +52 -27
  594. package/build-module/components/collab-sidebar/index.js.map +2 -2
  595. package/build-module/components/collab-sidebar/utils.js +3 -2
  596. package/build-module/components/collab-sidebar/utils.js.map +2 -2
  597. package/build-module/components/collapsible-block-toolbar/index.js +3 -2
  598. package/build-module/components/collapsible-block-toolbar/index.js.map +1 -1
  599. package/build-module/components/commands/index.js +21 -8
  600. package/build-module/components/commands/index.js.map +2 -2
  601. package/build-module/components/deprecated.js +54 -53
  602. package/build-module/components/deprecated.js.map +1 -1
  603. package/build-module/components/document-bar/index.js +3 -2
  604. package/build-module/components/document-bar/index.js.map +1 -1
  605. package/build-module/components/document-outline/check.js +1 -0
  606. package/build-module/components/document-outline/check.js.map +1 -1
  607. package/build-module/components/document-outline/index.js +8 -7
  608. package/build-module/components/document-outline/index.js.map +1 -1
  609. package/build-module/components/document-outline/item.js +3 -2
  610. package/build-module/components/document-outline/item.js.map +1 -1
  611. package/build-module/components/document-tools/index.js +2 -1
  612. package/build-module/components/document-tools/index.js.map +1 -1
  613. package/build-module/components/editor/index.js +13 -4
  614. package/build-module/components/editor/index.js.map +2 -2
  615. package/build-module/components/editor-history/redo.js +2 -1
  616. package/build-module/components/editor-history/redo.js.map +1 -1
  617. package/build-module/components/editor-history/undo.js +2 -1
  618. package/build-module/components/editor-history/undo.js.map +1 -1
  619. package/build-module/components/editor-interface/index.js +3 -2
  620. package/build-module/components/editor-interface/index.js.map +1 -1
  621. package/build-module/components/editor-notices/index.js +2 -1
  622. package/build-module/components/editor-notices/index.js.map +1 -1
  623. package/build-module/components/editor-snackbars/index.js +3 -2
  624. package/build-module/components/editor-snackbars/index.js.map +1 -1
  625. package/build-module/components/entities-saved-states/entity-record-item.js +2 -1
  626. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  627. package/build-module/components/entities-saved-states/entity-type-list.js +2 -1
  628. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  629. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +2 -1
  630. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  631. package/build-module/components/entities-saved-states/index.js +2 -1
  632. package/build-module/components/entities-saved-states/index.js.map +2 -2
  633. package/build-module/components/error-boundary/index.js +4 -3
  634. package/build-module/components/error-boundary/index.js.map +1 -1
  635. package/build-module/components/global-keyboard-shortcuts/index.js +1 -0
  636. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
  637. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +2 -1
  638. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  639. package/build-module/components/global-styles/block-link.js +1 -0
  640. package/build-module/components/global-styles/block-link.js.map +1 -1
  641. package/build-module/components/global-styles/header.js +2 -1
  642. package/build-module/components/global-styles/header.js.map +1 -1
  643. package/build-module/components/global-styles/hooks.js +2 -1
  644. package/build-module/components/global-styles/hooks.js.map +2 -2
  645. package/build-module/components/global-styles/index.js +3 -2
  646. package/build-module/components/global-styles/index.js.map +1 -1
  647. package/build-module/components/global-styles/menu.js +2 -1
  648. package/build-module/components/global-styles/menu.js.map +1 -1
  649. package/build-module/components/global-styles-provider/index.js +2 -1
  650. package/build-module/components/global-styles-provider/index.js.map +1 -1
  651. package/build-module/components/global-styles-renderer/index.js +1 -0
  652. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  653. package/build-module/components/global-styles-sidebar/default-sidebar.js +2 -1
  654. package/build-module/components/global-styles-sidebar/default-sidebar.js.map +1 -1
  655. package/build-module/components/global-styles-sidebar/index.js +2 -1
  656. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  657. package/build-module/components/global-styles-sidebar/welcome-guide-image.js +1 -0
  658. package/build-module/components/global-styles-sidebar/welcome-guide-image.js.map +1 -1
  659. package/build-module/components/global-styles-sidebar/welcome-guide.js +2 -1
  660. package/build-module/components/global-styles-sidebar/welcome-guide.js.map +1 -1
  661. package/build-module/components/header/back-button.js +7 -6
  662. package/build-module/components/header/back-button.js.map +1 -1
  663. package/build-module/components/header/index.js +4 -3
  664. package/build-module/components/header/index.js.map +1 -1
  665. package/build-module/components/index.js +3 -2
  666. package/build-module/components/index.js.map +1 -1
  667. package/build-module/components/inserter-sidebar/index.js +3 -2
  668. package/build-module/components/inserter-sidebar/index.js.map +1 -1
  669. package/build-module/components/keyboard-shortcut-help-modal/config.js +2 -1
  670. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  671. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +2 -1
  672. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  673. package/build-module/components/keyboard-shortcut-help-modal/index.js +6 -5
  674. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  675. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +5 -4
  676. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  677. package/build-module/components/list-view-sidebar/index.js +3 -2
  678. package/build-module/components/list-view-sidebar/index.js.map +1 -1
  679. package/build-module/components/list-view-sidebar/list-view-outline.js +2 -1
  680. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -1
  681. package/build-module/components/local-autosave-monitor/index.js +5 -4
  682. package/build-module/components/local-autosave-monitor/index.js.map +1 -1
  683. package/build-module/components/media-categories/index.js +7 -6
  684. package/build-module/components/media-categories/index.js.map +1 -1
  685. package/build-module/components/mode-switcher/index.js +3 -2
  686. package/build-module/components/mode-switcher/index.js.map +1 -1
  687. package/build-module/components/more-menu/copy-content-menu-item.js +2 -1
  688. package/build-module/components/more-menu/copy-content-menu-item.js.map +1 -1
  689. package/build-module/components/more-menu/index.js +3 -2
  690. package/build-module/components/more-menu/index.js.map +2 -2
  691. package/build-module/components/more-menu/tools-more-menu-group.js +3 -2
  692. package/build-module/components/more-menu/tools-more-menu-group.js.map +1 -1
  693. package/build-module/components/more-menu/view-more-menu-group.js +3 -2
  694. package/build-module/components/more-menu/view-more-menu-group.js.map +1 -1
  695. package/build-module/components/page-attributes/check.js +1 -0
  696. package/build-module/components/page-attributes/check.js.map +1 -1
  697. package/build-module/components/page-attributes/order.js +2 -1
  698. package/build-module/components/page-attributes/order.js.map +1 -1
  699. package/build-module/components/page-attributes/panel.js +3 -2
  700. package/build-module/components/page-attributes/panel.js.map +1 -1
  701. package/build-module/components/page-attributes/parent.js +3 -2
  702. package/build-module/components/page-attributes/parent.js.map +1 -1
  703. package/build-module/components/pattern-duplicate-modal/index.js +4 -3
  704. package/build-module/components/pattern-duplicate-modal/index.js.map +1 -1
  705. package/build-module/components/pattern-overrides-panel/index.js +3 -2
  706. package/build-module/components/pattern-overrides-panel/index.js.map +1 -1
  707. package/build-module/components/pattern-rename-modal/index.js +4 -3
  708. package/build-module/components/pattern-rename-modal/index.js.map +1 -1
  709. package/build-module/components/plugin-document-setting-panel/index.js +4 -3
  710. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -1
  711. package/build-module/components/plugin-more-menu-item/index.js +2 -1
  712. package/build-module/components/plugin-more-menu-item/index.js.map +1 -1
  713. package/build-module/components/plugin-post-publish-panel/index.js +4 -3
  714. package/build-module/components/plugin-post-publish-panel/index.js.map +1 -1
  715. package/build-module/components/plugin-post-status-info/index.js +4 -3
  716. package/build-module/components/plugin-post-status-info/index.js.map +1 -1
  717. package/build-module/components/plugin-pre-publish-panel/index.js +4 -3
  718. package/build-module/components/plugin-pre-publish-panel/index.js.map +1 -1
  719. package/build-module/components/plugin-preview-menu-item/index.js +2 -1
  720. package/build-module/components/plugin-preview-menu-item/index.js.map +1 -1
  721. package/build-module/components/plugin-sidebar/index.js +2 -1
  722. package/build-module/components/plugin-sidebar/index.js.map +1 -1
  723. package/build-module/components/plugin-sidebar-more-menu-item/index.js +2 -1
  724. package/build-module/components/plugin-sidebar-more-menu-item/index.js.map +1 -1
  725. package/build-module/components/post-actions/actions.js +2 -1
  726. package/build-module/components/post-actions/actions.js.map +1 -1
  727. package/build-module/components/post-actions/index.js +3 -2
  728. package/build-module/components/post-actions/index.js.map +1 -1
  729. package/build-module/components/post-actions/set-as-homepage.js +4 -3
  730. package/build-module/components/post-actions/set-as-homepage.js.map +1 -1
  731. package/build-module/components/post-actions/set-as-posts-page.js +4 -3
  732. package/build-module/components/post-actions/set-as-posts-page.js.map +1 -1
  733. package/build-module/components/post-author/check.js +2 -1
  734. package/build-module/components/post-author/check.js.map +1 -1
  735. package/build-module/components/post-author/combobox.js +2 -1
  736. package/build-module/components/post-author/combobox.js.map +1 -1
  737. package/build-module/components/post-author/constants.js +3 -2
  738. package/build-module/components/post-author/constants.js.map +1 -1
  739. package/build-module/components/post-author/hook.js +1 -0
  740. package/build-module/components/post-author/hook.js.map +1 -1
  741. package/build-module/components/post-author/index.js +3 -2
  742. package/build-module/components/post-author/index.js.map +1 -1
  743. package/build-module/components/post-author/panel.js +2 -1
  744. package/build-module/components/post-author/panel.js.map +1 -1
  745. package/build-module/components/post-author/select.js +2 -1
  746. package/build-module/components/post-author/select.js.map +1 -1
  747. package/build-module/components/post-card-panel/index.js +3 -2
  748. package/build-module/components/post-card-panel/index.js.map +1 -1
  749. package/build-module/components/post-comments/index.js +3 -2
  750. package/build-module/components/post-comments/index.js.map +1 -1
  751. package/build-module/components/post-content-information/index.js +3 -2
  752. package/build-module/components/post-content-information/index.js.map +1 -1
  753. package/build-module/components/post-discussion/panel.js +3 -2
  754. package/build-module/components/post-discussion/panel.js.map +1 -1
  755. package/build-module/components/post-excerpt/check.js +2 -1
  756. package/build-module/components/post-excerpt/check.js.map +1 -1
  757. package/build-module/components/post-excerpt/index.js +2 -1
  758. package/build-module/components/post-excerpt/index.js.map +1 -1
  759. package/build-module/components/post-excerpt/panel.js +3 -2
  760. package/build-module/components/post-excerpt/panel.js.map +1 -1
  761. package/build-module/components/post-excerpt/plugin.js +4 -3
  762. package/build-module/components/post-excerpt/plugin.js.map +1 -1
  763. package/build-module/components/post-featured-image/check.js +2 -1
  764. package/build-module/components/post-featured-image/check.js.map +1 -1
  765. package/build-module/components/post-featured-image/index.js +9 -8
  766. package/build-module/components/post-featured-image/index.js.map +1 -1
  767. package/build-module/components/post-featured-image/panel.js +3 -2
  768. package/build-module/components/post-featured-image/panel.js.map +1 -1
  769. package/build-module/components/post-fields/index.js +1 -0
  770. package/build-module/components/post-fields/index.js.map +1 -1
  771. package/build-module/components/post-format/check.js +2 -1
  772. package/build-module/components/post-format/check.js.map +1 -1
  773. package/build-module/components/post-format/index.js +3 -2
  774. package/build-module/components/post-format/index.js.map +1 -1
  775. package/build-module/components/post-format/panel.js +2 -1
  776. package/build-module/components/post-format/panel.js.map +1 -1
  777. package/build-module/components/post-last-edited-panel/index.js +2 -1
  778. package/build-module/components/post-last-edited-panel/index.js.map +1 -1
  779. package/build-module/components/post-last-revision/check.js +2 -1
  780. package/build-module/components/post-last-revision/check.js.map +1 -1
  781. package/build-module/components/post-last-revision/index.js +2 -1
  782. package/build-module/components/post-last-revision/index.js.map +1 -1
  783. package/build-module/components/post-last-revision/panel.js +2 -1
  784. package/build-module/components/post-last-revision/panel.js.map +1 -1
  785. package/build-module/components/post-locked-modal/index.js +2 -1
  786. package/build-module/components/post-locked-modal/index.js.map +1 -1
  787. package/build-module/components/post-panel-row/index.js +3 -2
  788. package/build-module/components/post-panel-row/index.js.map +1 -1
  789. package/build-module/components/post-panel-section/index.js +2 -1
  790. package/build-module/components/post-panel-section/index.js.map +1 -1
  791. package/build-module/components/post-pending-status/check.js +1 -0
  792. package/build-module/components/post-pending-status/check.js.map +1 -1
  793. package/build-module/components/post-pending-status/index.js +2 -1
  794. package/build-module/components/post-pending-status/index.js.map +1 -1
  795. package/build-module/components/post-pingbacks/index.js +2 -1
  796. package/build-module/components/post-pingbacks/index.js.map +1 -1
  797. package/build-module/components/post-preview-button/index.js +2 -1
  798. package/build-module/components/post-preview-button/index.js.map +1 -1
  799. package/build-module/components/post-publish-button/index.js +5 -4
  800. package/build-module/components/post-publish-button/index.js.map +1 -1
  801. package/build-module/components/post-publish-button/label.js +1 -0
  802. package/build-module/components/post-publish-button/label.js.map +1 -1
  803. package/build-module/components/post-publish-button/post-publish-button-or-toggle.js +4 -3
  804. package/build-module/components/post-publish-button/post-publish-button-or-toggle.js.map +1 -1
  805. package/build-module/components/post-publish-panel/index.js +4 -3
  806. package/build-module/components/post-publish-panel/index.js.map +1 -1
  807. package/build-module/components/post-publish-panel/maybe-category-panel.js +2 -1
  808. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  809. package/build-module/components/post-publish-panel/maybe-post-format-panel.js +4 -3
  810. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  811. package/build-module/components/post-publish-panel/maybe-tags-panel.js +4 -3
  812. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  813. package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -1
  814. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  815. package/build-module/components/post-publish-panel/media-util.js +1 -0
  816. package/build-module/components/post-publish-panel/media-util.js.map +1 -1
  817. package/build-module/components/post-publish-panel/postpublish.js +5 -4
  818. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  819. package/build-module/components/post-publish-panel/prepublish.js +2 -1
  820. package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
  821. package/build-module/components/post-saved-state/index.js +2 -1
  822. package/build-module/components/post-saved-state/index.js.map +1 -1
  823. package/build-module/components/post-schedule/check.js +1 -0
  824. package/build-module/components/post-schedule/check.js.map +1 -1
  825. package/build-module/components/post-schedule/index.js +3 -2
  826. package/build-module/components/post-schedule/index.js.map +1 -1
  827. package/build-module/components/post-schedule/label.js +1 -0
  828. package/build-module/components/post-schedule/label.js.map +1 -1
  829. package/build-module/components/post-schedule/panel.js +3 -2
  830. package/build-module/components/post-schedule/panel.js.map +1 -1
  831. package/build-module/components/post-status/index.js +5 -4
  832. package/build-module/components/post-status/index.js.map +1 -1
  833. package/build-module/components/post-sticky/check.js +1 -0
  834. package/build-module/components/post-sticky/check.js.map +1 -1
  835. package/build-module/components/post-sticky/index.js +2 -1
  836. package/build-module/components/post-sticky/index.js.map +1 -1
  837. package/build-module/components/post-sticky/panel.js +2 -1
  838. package/build-module/components/post-sticky/panel.js.map +1 -1
  839. package/build-module/components/post-switch-to-draft-button/index.js +2 -1
  840. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  841. package/build-module/components/post-sync-status/index.js +2 -1
  842. package/build-module/components/post-sync-status/index.js.map +1 -1
  843. package/build-module/components/post-taxonomies/check.js +1 -0
  844. package/build-module/components/post-taxonomies/check.js.map +1 -1
  845. package/build-module/components/post-taxonomies/flat-term-selector.js +8 -7
  846. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  847. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +7 -6
  848. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  849. package/build-module/components/post-taxonomies/index.js +3 -2
  850. package/build-module/components/post-taxonomies/index.js.map +1 -1
  851. package/build-module/components/post-taxonomies/most-used-terms.js +4 -3
  852. package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
  853. package/build-module/components/post-taxonomies/panel.js +2 -1
  854. package/build-module/components/post-taxonomies/panel.js.map +1 -1
  855. package/build-module/components/post-template/block-theme.js +2 -1
  856. package/build-module/components/post-template/block-theme.js.map +1 -1
  857. package/build-module/components/post-template/classic-theme.js +2 -1
  858. package/build-module/components/post-template/classic-theme.js.map +1 -1
  859. package/build-module/components/post-template/create-new-template-modal.js +3 -2
  860. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  861. package/build-module/components/post-template/create-new-template.js +2 -1
  862. package/build-module/components/post-template/create-new-template.js.map +1 -1
  863. package/build-module/components/post-template/hooks.js +1 -0
  864. package/build-module/components/post-template/hooks.js.map +1 -1
  865. package/build-module/components/post-template/panel.js +11 -7
  866. package/build-module/components/post-template/panel.js.map +2 -2
  867. package/build-module/components/post-template/reset-default-template.js +2 -1
  868. package/build-module/components/post-template/reset-default-template.js.map +1 -1
  869. package/build-module/components/post-template/swap-template-button.js +2 -1
  870. package/build-module/components/post-template/swap-template-button.js.map +1 -1
  871. package/build-module/components/post-text-editor/index.js +2 -1
  872. package/build-module/components/post-text-editor/index.js.map +1 -1
  873. package/build-module/components/post-title/constants.js +3 -2
  874. package/build-module/components/post-title/constants.js.map +1 -1
  875. package/build-module/components/post-title/index.js +21 -11
  876. package/build-module/components/post-title/index.js.map +2 -2
  877. package/build-module/components/post-title/post-title-raw.js +2 -1
  878. package/build-module/components/post-title/post-title-raw.js.map +1 -1
  879. package/build-module/components/post-title/use-post-title-focus.js +1 -0
  880. package/build-module/components/post-title/use-post-title-focus.js.map +1 -1
  881. package/build-module/components/post-title/use-post-title.js +1 -0
  882. package/build-module/components/post-title/use-post-title.js.map +1 -1
  883. package/build-module/components/post-transform-panel/hooks.js +2 -1
  884. package/build-module/components/post-transform-panel/hooks.js.map +1 -1
  885. package/build-module/components/post-transform-panel/index.js +2 -1
  886. package/build-module/components/post-transform-panel/index.js.map +1 -1
  887. package/build-module/components/post-trash/check.js +1 -0
  888. package/build-module/components/post-trash/check.js.map +1 -1
  889. package/build-module/components/post-trash/index.js +2 -1
  890. package/build-module/components/post-trash/index.js.map +1 -1
  891. package/build-module/components/post-type-support-check/index.js +1 -0
  892. package/build-module/components/post-type-support-check/index.js.map +1 -1
  893. package/build-module/components/post-url/check.js +1 -0
  894. package/build-module/components/post-url/check.js.map +1 -1
  895. package/build-module/components/post-url/index.js +2 -1
  896. package/build-module/components/post-url/index.js.map +1 -1
  897. package/build-module/components/post-url/label.js +1 -0
  898. package/build-module/components/post-url/label.js.map +1 -1
  899. package/build-module/components/post-url/panel.js +2 -1
  900. package/build-module/components/post-url/panel.js.map +1 -1
  901. package/build-module/components/post-view-link/index.js +2 -1
  902. package/build-module/components/post-view-link/index.js.map +1 -1
  903. package/build-module/components/post-visibility/check.js +1 -0
  904. package/build-module/components/post-visibility/check.js.map +1 -1
  905. package/build-module/components/post-visibility/index.js +2 -1
  906. package/build-module/components/post-visibility/index.js.map +1 -1
  907. package/build-module/components/post-visibility/label.js +1 -0
  908. package/build-module/components/post-visibility/label.js.map +1 -1
  909. package/build-module/components/post-visibility/utils.js +2 -1
  910. package/build-module/components/post-visibility/utils.js.map +1 -1
  911. package/build-module/components/posts-per-page/index.js +2 -1
  912. package/build-module/components/posts-per-page/index.js.map +1 -1
  913. package/build-module/components/preferences-modal/enable-panel.js +3 -2
  914. package/build-module/components/preferences-modal/enable-panel.js.map +1 -1
  915. package/build-module/components/preferences-modal/enable-plugin-document-setting-panel.js +4 -3
  916. package/build-module/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  917. package/build-module/components/preferences-modal/enable-publish-sidebar.js +3 -2
  918. package/build-module/components/preferences-modal/enable-publish-sidebar.js.map +1 -1
  919. package/build-module/components/preferences-modal/index.js +4 -3
  920. package/build-module/components/preferences-modal/index.js.map +2 -2
  921. package/build-module/components/preview-dropdown/index.js +2 -1
  922. package/build-module/components/preview-dropdown/index.js.map +1 -1
  923. package/build-module/components/provider/disable-non-page-content-blocks.js +1 -0
  924. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  925. package/build-module/components/provider/index.js +7 -6
  926. package/build-module/components/provider/index.js.map +1 -1
  927. package/build-module/components/provider/navigation-block-editing-mode.js +1 -0
  928. package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -1
  929. package/build-module/components/provider/use-auto-switch-editor-sidebars.js +1 -0
  930. package/build-module/components/provider/use-auto-switch-editor-sidebars.js.map +1 -1
  931. package/build-module/components/provider/use-block-editor-settings.js +4 -3
  932. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  933. package/build-module/components/provider/use-hide-blocks-from-inserter.js +2 -1
  934. package/build-module/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  935. package/build-module/components/provider/use-post-content-blocks.js +2 -1
  936. package/build-module/components/provider/use-post-content-blocks.js.map +1 -1
  937. package/build-module/components/provider/with-registry-provider.js +3 -2
  938. package/build-module/components/provider/with-registry-provider.js.map +1 -1
  939. package/build-module/components/resizable-editor/index.js +3 -2
  940. package/build-module/components/resizable-editor/index.js.map +1 -1
  941. package/build-module/components/resizable-editor/resize-handle.js +3 -2
  942. package/build-module/components/resizable-editor/resize-handle.js.map +1 -1
  943. package/build-module/components/save-publish-panels/index.js +4 -3
  944. package/build-module/components/save-publish-panels/index.js.map +1 -1
  945. package/build-module/components/sidebar/constants.js +2 -1
  946. package/build-module/components/sidebar/constants.js.map +1 -1
  947. package/build-module/components/sidebar/header.js +4 -3
  948. package/build-module/components/sidebar/header.js.map +1 -1
  949. package/build-module/components/sidebar/index.js +6 -5
  950. package/build-module/components/sidebar/index.js.map +1 -1
  951. package/build-module/components/sidebar/post-summary.js +3 -2
  952. package/build-module/components/sidebar/post-summary.js.map +1 -1
  953. package/build-module/components/site-discussion/index.js +3 -2
  954. package/build-module/components/site-discussion/index.js.map +1 -1
  955. package/build-module/components/start-page-options/index.js +7 -7
  956. package/build-module/components/start-page-options/index.js.map +2 -2
  957. package/build-module/components/start-template-options/index.js +2 -1
  958. package/build-module/components/start-template-options/index.js.map +1 -1
  959. package/build-module/components/style-book/categories.js +1 -0
  960. package/build-module/components/style-book/categories.js.map +1 -1
  961. package/build-module/components/style-book/color-examples.js +3 -2
  962. package/build-module/components/style-book/color-examples.js.map +1 -1
  963. package/build-module/components/style-book/constants.js +8 -7
  964. package/build-module/components/style-book/constants.js.map +1 -1
  965. package/build-module/components/style-book/duotone-examples.js +3 -2
  966. package/build-module/components/style-book/duotone-examples.js.map +1 -1
  967. package/build-module/components/style-book/examples.js +2 -1
  968. package/build-module/components/style-book/examples.js.map +1 -1
  969. package/build-module/components/style-book/index.js +12 -11
  970. package/build-module/components/style-book/index.js.map +1 -1
  971. package/build-module/components/styles-canvas/index.js +2 -1
  972. package/build-module/components/styles-canvas/index.js.map +1 -1
  973. package/build-module/components/styles-canvas/revisions.js +3 -2
  974. package/build-module/components/styles-canvas/revisions.js.map +1 -1
  975. package/build-module/components/styles-canvas/style-book.js +2 -1
  976. package/build-module/components/styles-canvas/style-book.js.map +1 -1
  977. package/build-module/components/table-of-contents/index.js +2 -1
  978. package/build-module/components/table-of-contents/index.js.map +1 -1
  979. package/build-module/components/table-of-contents/panel.js +2 -1
  980. package/build-module/components/table-of-contents/panel.js.map +1 -1
  981. package/build-module/components/template-content-panel/index.js +5 -4
  982. package/build-module/components/template-content-panel/index.js.map +1 -1
  983. package/build-module/components/template-part-content-panel/index.js +3 -2
  984. package/build-module/components/template-part-content-panel/index.js.map +1 -1
  985. package/build-module/components/template-part-menu-items/convert-to-regular.js +2 -1
  986. package/build-module/components/template-part-menu-items/convert-to-regular.js.map +1 -1
  987. package/build-module/components/template-part-menu-items/convert-to-template-part.js +2 -1
  988. package/build-module/components/template-part-menu-items/convert-to-template-part.js.map +1 -1
  989. package/build-module/components/template-part-menu-items/index.js +2 -1
  990. package/build-module/components/template-part-menu-items/index.js.map +1 -1
  991. package/build-module/components/template-validation-notice/index.js +2 -1
  992. package/build-module/components/template-validation-notice/index.js.map +1 -1
  993. package/build-module/components/text-editor/index.js +2 -1
  994. package/build-module/components/text-editor/index.js.map +1 -1
  995. package/build-module/components/theme-support-check/index.js +1 -0
  996. package/build-module/components/theme-support-check/index.js.map +1 -1
  997. package/build-module/components/time-to-read/index.js +3 -2
  998. package/build-module/components/time-to-read/index.js.map +1 -1
  999. package/build-module/components/unsaved-changes-warning/index.js +1 -0
  1000. package/build-module/components/unsaved-changes-warning/index.js.map +1 -1
  1001. package/build-module/components/visual-editor/edit-template-blocks-notification.js +2 -1
  1002. package/build-module/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  1003. package/build-module/components/visual-editor/index.js +33 -13
  1004. package/build-module/components/visual-editor/index.js.map +2 -2
  1005. package/build-module/components/visual-editor/use-edit-content-only-section-exit.js +40 -0
  1006. package/build-module/components/visual-editor/use-edit-content-only-section-exit.js.map +7 -0
  1007. package/build-module/components/visual-editor/use-padding-appender.js +50 -0
  1008. package/build-module/components/visual-editor/use-padding-appender.js.map +7 -0
  1009. package/build-module/components/visual-editor/use-select-nearest-editable-block.js +2 -1
  1010. package/build-module/components/visual-editor/use-select-nearest-editable-block.js.map +1 -1
  1011. package/build-module/components/visual-editor/use-zoom-out-mode-exit.js +1 -0
  1012. package/build-module/components/visual-editor/use-zoom-out-mode-exit.js.map +1 -1
  1013. package/build-module/components/word-count/index.js +2 -1
  1014. package/build-module/components/word-count/index.js.map +1 -1
  1015. package/build-module/components/zoom-out-toggle/index.js +3 -2
  1016. package/build-module/components/zoom-out-toggle/index.js.map +1 -1
  1017. package/build-module/dataviews/api.js +1 -0
  1018. package/build-module/dataviews/api.js.map +1 -1
  1019. package/build-module/dataviews/fields/content-preview/content-preview-view.js +5 -5
  1020. package/build-module/dataviews/fields/content-preview/content-preview-view.js.map +2 -2
  1021. package/build-module/dataviews/fields/content-preview/index.js +2 -1
  1022. package/build-module/dataviews/fields/content-preview/index.js.map +1 -1
  1023. package/build-module/dataviews/store/private-actions.js +2 -1
  1024. package/build-module/dataviews/store/private-actions.js.map +1 -1
  1025. package/build-module/dataviews/store/private-selectors.js +2 -1
  1026. package/build-module/dataviews/store/private-selectors.js.map +1 -1
  1027. package/build-module/dataviews/store/reducer.js +1 -0
  1028. package/build-module/dataviews/store/reducer.js.map +1 -1
  1029. package/build-module/hooks/custom-sources-backwards-compatibility.js +3 -2
  1030. package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  1031. package/build-module/hooks/default-autocompleters.js +1 -0
  1032. package/build-module/hooks/default-autocompleters.js.map +1 -1
  1033. package/build-module/hooks/index.js +1 -0
  1034. package/build-module/hooks/index.js.map +1 -1
  1035. package/build-module/hooks/media-upload.js +2 -1
  1036. package/build-module/hooks/media-upload.js.map +1 -1
  1037. package/build-module/hooks/navigation-link-view-button.js +4 -3
  1038. package/build-module/hooks/navigation-link-view-button.js.map +1 -1
  1039. package/build-module/hooks/pattern-overrides.js +5 -6
  1040. package/build-module/hooks/pattern-overrides.js.map +2 -2
  1041. package/build-module/hooks/push-changes-to-global-styles/index.js +11 -10
  1042. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  1043. package/build-module/hooks/template-part-navigation-edit-button.js +6 -5
  1044. package/build-module/hooks/template-part-navigation-edit-button.js.map +1 -1
  1045. package/build-module/hooks/use-global-styles-output.js +1 -0
  1046. package/build-module/hooks/use-global-styles-output.js.map +1 -1
  1047. package/build-module/index.js +1 -0
  1048. package/build-module/index.js.map +1 -1
  1049. package/build-module/lock-unlock.js +2 -1
  1050. package/build-module/lock-unlock.js.map +1 -1
  1051. package/build-module/private-apis.js +3 -2
  1052. package/build-module/private-apis.js.map +1 -1
  1053. package/build-module/store/actions.js +53 -52
  1054. package/build-module/store/actions.js.map +2 -2
  1055. package/build-module/store/constants.js +14 -13
  1056. package/build-module/store/constants.js.map +1 -1
  1057. package/build-module/store/defaults.js +2 -1
  1058. package/build-module/store/defaults.js.map +1 -1
  1059. package/build-module/store/index.js +3 -2
  1060. package/build-module/store/index.js.map +1 -1
  1061. package/build-module/store/local-autosave.js +1 -0
  1062. package/build-module/store/local-autosave.js.map +1 -1
  1063. package/build-module/store/private-actions.js +15 -7
  1064. package/build-module/store/private-actions.js.map +2 -2
  1065. package/build-module/store/private-selectors.js +13 -8
  1066. package/build-module/store/private-selectors.js.map +2 -2
  1067. package/build-module/store/reducer.js +10 -0
  1068. package/build-module/store/reducer.js.map +2 -2
  1069. package/build-module/store/selectors.js +79 -78
  1070. package/build-module/store/selectors.js.map +2 -2
  1071. package/build-module/store/utils/is-template-revertable.js +1 -0
  1072. package/build-module/store/utils/is-template-revertable.js.map +1 -1
  1073. package/build-module/store/utils/notice-builder.js +1 -0
  1074. package/build-module/store/utils/notice-builder.js.map +1 -1
  1075. package/build-module/utils/get-item-title.js +1 -0
  1076. package/build-module/utils/get-item-title.js.map +1 -1
  1077. package/build-module/utils/get-template-info.js +3 -2
  1078. package/build-module/utils/get-template-info.js.map +1 -1
  1079. package/build-module/utils/get-template-part-icon.js +1 -0
  1080. package/build-module/utils/get-template-part-icon.js.map +1 -1
  1081. package/build-module/utils/index.js +1 -0
  1082. package/build-module/utils/index.js.map +1 -1
  1083. package/build-module/utils/media-sideload/index.js +2 -1
  1084. package/build-module/utils/media-sideload/index.js.map +1 -1
  1085. package/build-module/utils/media-upload/index.js +2 -1
  1086. package/build-module/utils/media-upload/index.js.map +1 -1
  1087. package/build-module/utils/pageTypeBadge.js +1 -0
  1088. package/build-module/utils/pageTypeBadge.js.map +1 -1
  1089. package/build-module/utils/search-templates.js +1 -0
  1090. package/build-module/utils/search-templates.js.map +1 -1
  1091. package/build-module/utils/set-nested-value.js +1 -0
  1092. package/build-module/utils/set-nested-value.js.map +1 -1
  1093. package/build-module/utils/terms.js +4 -3
  1094. package/build-module/utils/terms.js.map +1 -1
  1095. package/build-module/utils/url.js +1 -0
  1096. package/build-module/utils/url.js.map +1 -1
  1097. package/build-style/style-rtl.css +58 -82
  1098. package/build-style/style.css +58 -82
  1099. package/build-types/bindings/post-data.d.ts +18 -8
  1100. package/build-types/bindings/post-meta.d.ts +1 -7
  1101. package/build-types/components/collab-sidebar/add-comment.d.ts +3 -3
  1102. package/build-types/components/collab-sidebar/add-comment.d.ts.map +1 -1
  1103. package/build-types/components/collab-sidebar/comment-form.d.ts.map +1 -1
  1104. package/build-types/components/collab-sidebar/comment-indicator-toolbar.d.ts.map +1 -1
  1105. package/build-types/components/collab-sidebar/comment-menu-item.d.ts +3 -2
  1106. package/build-types/components/collab-sidebar/comment-menu-item.d.ts.map +1 -1
  1107. package/build-types/components/collab-sidebar/comments.d.ts +3 -3
  1108. package/build-types/components/collab-sidebar/comments.d.ts.map +1 -1
  1109. package/build-types/components/collab-sidebar/hooks.d.ts.map +1 -1
  1110. package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
  1111. package/build-types/components/collab-sidebar/utils.d.ts.map +1 -1
  1112. package/build-types/components/commands/index.d.ts.map +1 -1
  1113. package/build-types/components/editor/index.d.ts.map +1 -1
  1114. package/build-types/components/entities-saved-states/index.d.ts +2 -2
  1115. package/build-types/components/entities-saved-states/index.d.ts.map +1 -1
  1116. package/build-types/components/global-styles/hooks.d.ts +6 -6
  1117. package/build-types/components/global-styles/hooks.d.ts.map +1 -1
  1118. package/build-types/components/header/back-button.d.ts.map +1 -1
  1119. package/build-types/components/local-autosave-monitor/index.d.ts.map +1 -1
  1120. package/build-types/components/more-menu/tools-more-menu-group.d.ts.map +1 -1
  1121. package/build-types/components/more-menu/view-more-menu-group.d.ts.map +1 -1
  1122. package/build-types/components/plugin-document-setting-panel/index.d.ts.map +1 -1
  1123. package/build-types/components/plugin-post-publish-panel/index.d.ts.map +1 -1
  1124. package/build-types/components/plugin-post-status-info/index.d.ts.map +1 -1
  1125. package/build-types/components/plugin-pre-publish-panel/index.d.ts.map +1 -1
  1126. package/build-types/components/post-excerpt/plugin.d.ts.map +1 -1
  1127. package/build-types/components/post-locked-modal/index.d.ts.map +1 -1
  1128. package/build-types/components/post-publish-button/index.d.ts.map +1 -1
  1129. package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
  1130. package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts +1 -10
  1131. package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
  1132. package/build-types/components/post-template/panel.d.ts.map +1 -1
  1133. package/build-types/components/preferences-modal/enable-plugin-document-setting-panel.d.ts.map +1 -1
  1134. package/build-types/components/save-publish-panels/index.d.ts.map +1 -1
  1135. package/build-types/components/start-page-options/index.d.ts.map +1 -1
  1136. package/build-types/components/style-book/color-examples.d.ts.map +1 -1
  1137. package/build-types/components/style-book/duotone-examples.d.ts.map +1 -1
  1138. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  1139. package/build-types/components/visual-editor/use-edit-content-only-section-exit.d.ts +6 -0
  1140. package/build-types/components/visual-editor/use-edit-content-only-section-exit.d.ts.map +1 -0
  1141. package/build-types/components/visual-editor/use-padding-appender.d.ts +2 -0
  1142. package/build-types/components/visual-editor/use-padding-appender.d.ts.map +1 -0
  1143. package/build-types/dataviews/fields/content-preview/content-preview-view.d.ts.map +1 -1
  1144. package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
  1145. package/build-types/store/actions.d.ts +3 -4
  1146. package/build-types/store/actions.d.ts.map +1 -1
  1147. package/build-types/store/private-actions.d.ts +7 -0
  1148. package/build-types/store/private-actions.d.ts.map +1 -1
  1149. package/build-types/store/private-selectors.d.ts +12 -5
  1150. package/build-types/store/private-selectors.d.ts.map +1 -1
  1151. package/build-types/store/reducer.d.ts +10 -0
  1152. package/build-types/store/reducer.d.ts.map +1 -1
  1153. package/build-types/store/selectors.d.ts +68 -68
  1154. package/build-types/store/selectors.d.ts.map +1 -1
  1155. package/package.json +40 -40
  1156. package/src/bindings/post-data.js +63 -111
  1157. package/src/bindings/post-meta.js +55 -46
  1158. package/src/bindings/test/post-meta.js +211 -0
  1159. package/src/components/collab-sidebar/add-comment.js +19 -16
  1160. package/src/components/collab-sidebar/comment-author-info.js +1 -1
  1161. package/src/components/collab-sidebar/comment-form.js +16 -4
  1162. package/src/components/collab-sidebar/comment-indicator-toolbar.js +19 -29
  1163. package/src/components/collab-sidebar/comment-menu-item.js +51 -11
  1164. package/src/components/collab-sidebar/comments.js +173 -80
  1165. package/src/components/collab-sidebar/hooks.js +6 -4
  1166. package/src/components/collab-sidebar/index.js +78 -40
  1167. package/src/components/collab-sidebar/style.scss +20 -44
  1168. package/src/components/collab-sidebar/utils.js +3 -2
  1169. package/src/components/commands/index.js +32 -19
  1170. package/src/components/editor/index.js +12 -1
  1171. package/src/components/entities-saved-states/index.js +1 -1
  1172. package/src/components/global-styles/hooks.js +4 -4
  1173. package/src/components/more-menu/index.js +1 -1
  1174. package/src/components/post-template/panel.js +11 -8
  1175. package/src/components/post-title/index.js +22 -9
  1176. package/src/components/preferences-modal/index.js +1 -1
  1177. package/src/components/start-page-options/index.js +5 -6
  1178. package/src/components/start-page-options/style.scss +1 -1
  1179. package/src/components/visual-editor/index.js +36 -6
  1180. package/src/components/visual-editor/use-edit-content-only-section-exit.js +55 -0
  1181. package/src/components/visual-editor/use-padding-appender.js +70 -0
  1182. package/src/dataviews/fields/content-preview/content-preview-view.tsx +2 -5
  1183. package/src/hooks/pattern-overrides.js +0 -2
  1184. package/src/store/actions.js +9 -1
  1185. package/src/store/private-actions.js +13 -0
  1186. package/src/store/private-selectors.js +10 -0
  1187. package/src/store/reducer.js +16 -0
  1188. package/src/store/selectors.js +0 -2
  1189. package/tsconfig.tsbuildinfo +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/collab-sidebar/comments.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tRawHTML,\n\tuseEffect,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tButton,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useDebounce } from '@wordpress/compose';\n\nimport { published, moreVertical } from '@wordpress/icons';\nimport { __, _x, sprintf, _n } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport CommentAuthorInfo from './comment-author-info';\nimport CommentForm from './comment-form';\nimport { focusCommentThread, getCommentExcerpt } from './utils';\nimport { useFloatingThread } from './hooks';\nimport { AddComment } from './add-comment';\n\nconst { useBlockElement } = unlock( blockEditorPrivateApis );\nconst { Menu } = unlock( componentsPrivateApis );\n\nexport function Comments( {\n\tthreads: noteThreads,\n\tonEditComment,\n\tonAddReply,\n\tonCommentDelete,\n\tshowCommentBoard,\n\tsetShowCommentBoard,\n\tcommentSidebarRef,\n\treflowComments,\n\tisFloating = false,\n\tcommentLastUpdated,\n} ) {\n\tconst [ heights, setHeights ] = useState( {} );\n\tconst [ selectedThread, setSelectedThread ] = useState( null );\n\tconst [ boardOffsets, setBoardOffsets ] = useState( {} );\n\tconst [ blockRefs, setBlockRefs ] = useState( {} );\n\n\tconst { blockCommentId, selectedBlockClientId, orderedBlockIds } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getBlockAttributes, getSelectedBlockClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\tblockCommentId: clientId\n\t\t\t\t\t? getBlockAttributes( clientId )?.metadata?.noteId\n\t\t\t\t\t: null,\n\t\t\t\tselectedBlockClientId: clientId,\n\t\t\t\torderedBlockIds: select( blockEditorStore ).getBlockOrder(),\n\t\t\t};\n\t\t}, [] );\n\n\tconst relatedBlockElement = useBlockElement( selectedBlockClientId );\n\n\tconst threads = useMemo( () => {\n\t\tconst t = [ ...noteThreads ];\n\t\tconst orderedThreads = [];\n\t\t// In floating mode, when the note board is shown, and as long\n\t\t// as the selected block doesn't have an existing note attached -\n\t\t// add a \"new note\" entry to the threads. This special thread type\n\t\t// gets sorted and floated like regular threads, but shows an AddComment\n\t\t// component instead of a regular comment thread.\n\t\tif ( isFloating && showCommentBoard && undefined === blockCommentId ) {\n\t\t\t// Insert the new note entry at the correct location for its blockId.\n\t\t\tconst newNoteThread = {\n\t\t\t\tid: 'new-note-thread',\n\t\t\t\tblockClientId: selectedBlockClientId,\n\t\t\t\tcontent: { rendered: '' },\n\t\t\t};\n\t\t\t// Insert the new comment block at the right order within the threads.\n\t\t\torderedBlockIds.forEach( ( blockId ) => {\n\t\t\t\tif ( blockId === selectedBlockClientId ) {\n\t\t\t\t\torderedThreads.push( newNoteThread );\n\t\t\t\t} else {\n\t\t\t\t\tconst threadForBlock = t.find(\n\t\t\t\t\t\t( thread ) => thread.blockClientId === blockId\n\t\t\t\t\t);\n\t\t\t\t\tif ( threadForBlock ) {\n\t\t\t\t\t\torderedThreads.push( threadForBlock );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn orderedThreads;\n\t\t}\n\t\treturn t;\n\t}, [\n\t\tnoteThreads,\n\t\tisFloating,\n\t\tshowCommentBoard,\n\t\tblockCommentId,\n\t\tselectedBlockClientId,\n\t\torderedBlockIds,\n\t] );\n\n\tconst handleDelete = async ( comment ) => {\n\t\tconst currentIndex = threads.findIndex( ( t ) => t.id === comment.id );\n\t\tconst nextThread = threads[ currentIndex + 1 ];\n\t\tconst prevThread = threads[ currentIndex - 1 ];\n\n\t\tawait onCommentDelete( comment );\n\n\t\tif ( comment.parent !== 0 ) {\n\t\t\t// Move focus to the parent thread when a reply was deleted.\n\t\t\tsetSelectedThread( comment.parent );\n\t\t\tfocusCommentThread( comment.parent, commentSidebarRef.current );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nextThread ) {\n\t\t\tsetSelectedThread( nextThread.id );\n\t\t\tfocusCommentThread( nextThread.id, commentSidebarRef.current );\n\t\t} else if ( prevThread ) {\n\t\t\tsetSelectedThread( prevThread.id );\n\t\t\tfocusCommentThread( prevThread.id, commentSidebarRef.current );\n\t\t} else {\n\t\t\tsetSelectedThread( null );\n\t\t\tsetShowCommentBoard( false );\n\t\t\t// Move focus to the related block.\n\t\t\trelatedBlockElement?.focus();\n\t\t}\n\t};\n\n\t// Auto-select the related comment thread when a block is selected.\n\tuseEffect( () => {\n\t\tsetSelectedThread( blockCommentId ?? undefined );\n\t}, [ blockCommentId ] );\n\n\tconst setBlockRef = useCallback( ( id, blockRef ) => {\n\t\tsetBlockRefs( ( prev ) => ( { ...prev, [ id ]: blockRef } ) );\n\t}, [] );\n\n\t// Recalculate floating comment thread offsets whenever the heights change.\n\tuseEffect( () => {\n\t\t/**\n\t\t * Calculate the y offsets for all comment threads. Account for potentially\n\t\t * overlapping threads and adjust their positions accordingly.\n\t\t */\n\t\tconst calculateAllOffsets = () => {\n\t\t\tconst offsets = {};\n\n\t\t\tif ( ! isFloating ) {\n\t\t\t\treturn offsets;\n\t\t\t}\n\n\t\t\t// Find the index of the selected thread.\n\t\t\tconst selectedThreadIndex = threads.findIndex(\n\t\t\t\t( t ) => t.id === selectedThread\n\t\t\t);\n\n\t\t\tconst breakIndex =\n\t\t\t\tselectedThreadIndex === -1 ? 0 : selectedThreadIndex;\n\n\t\t\t// If there is a selected thread, push threads above up and threads below down.\n\t\t\tconst selectedThreadData = threads[ breakIndex ];\n\n\t\t\tif (\n\t\t\t\t! selectedThreadData ||\n\t\t\t\t! blockRefs[ selectedThreadData.id ]\n\t\t\t) {\n\t\t\t\treturn offsets;\n\t\t\t}\n\n\t\t\tlet blockElement = blockRefs[ selectedThreadData.id ];\n\t\t\tlet blockRect = blockElement?.getBoundingClientRect();\n\t\t\tconst selectedThreadTop = blockRect?.top || 0;\n\t\t\tconst selectedThreadHeight = heights[ selectedThreadData.id ] || 0;\n\n\t\t\toffsets[ selectedThreadData.id ] = -16;\n\n\t\t\tlet previousThreadData = {\n\t\t\t\tthreadTop: selectedThreadTop - 16,\n\t\t\t\tthreadHeight: selectedThreadHeight,\n\t\t\t};\n\n\t\t\t// Process threads after the selected thread, offsetting any overlapping\n\t\t\t// threads downward.\n\t\t\tfor ( let i = breakIndex + 1; i < threads.length; i++ ) {\n\t\t\t\tconst thread = threads[ i ];\n\t\t\t\tif ( ! blockRefs[ thread.id ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tblockElement = blockRefs[ thread.id ];\n\t\t\t\tblockRect = blockElement?.getBoundingClientRect();\n\t\t\t\tconst threadTop = blockRect?.top || 0;\n\t\t\t\tconst threadHeight = heights[ thread.id ] || 0;\n\n\t\t\t\tlet additionalOffset = -16;\n\n\t\t\t\t// Check if the thread overlaps with the previous one.\n\t\t\t\tconst previousBottom =\n\t\t\t\t\tpreviousThreadData.threadTop +\n\t\t\t\t\tpreviousThreadData.threadHeight;\n\t\t\t\tif ( threadTop < previousBottom + 16 ) {\n\t\t\t\t\t// Shift down by the difference plus a margin to avoid overlap.\n\t\t\t\t\tadditionalOffset = previousBottom - threadTop + 20;\n\t\t\t\t}\n\n\t\t\t\toffsets[ thread.id ] = additionalOffset;\n\n\t\t\t\t// Update for next iteration.\n\t\t\t\tpreviousThreadData = {\n\t\t\t\t\tthreadTop: threadTop + additionalOffset,\n\t\t\t\t\tthreadHeight,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Process threads before the selected thread, offsetting any overlapping\n\t\t\t// threads upward.\n\t\t\tlet nextThreadData = {\n\t\t\t\tthreadTop: selectedThreadTop - 16,\n\t\t\t};\n\n\t\t\tfor ( let i = selectedThreadIndex - 1; i >= 0; i-- ) {\n\t\t\t\tconst thread = threads[ i ];\n\t\t\t\tif ( ! blockRefs[ thread.id ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tblockElement = blockRefs[ thread.id ];\n\t\t\t\tblockRect = blockElement?.getBoundingClientRect();\n\t\t\t\tconst threadTop = blockRect?.top || 0;\n\t\t\t\tconst threadHeight = heights[ thread.id ] || 0;\n\n\t\t\t\tlet additionalOffset = -16;\n\n\t\t\t\t// Calculate the bottom position of this thread with default offset.\n\t\t\t\tconst threadBottom = threadTop + threadHeight;\n\n\t\t\t\t// Check if this thread's bottom would overlap with the next thread's top.\n\t\t\t\tif ( threadBottom > nextThreadData.threadTop ) {\n\t\t\t\t\t// Shift up by the difference plus a margin to avoid overlap.\n\t\t\t\t\tadditionalOffset =\n\t\t\t\t\t\tnextThreadData.threadTop -\n\t\t\t\t\t\tthreadTop -\n\t\t\t\t\t\tthreadHeight -\n\t\t\t\t\t\t20;\n\t\t\t\t}\n\n\t\t\t\toffsets[ thread.id ] = additionalOffset;\n\n\t\t\t\t// Update for next iteration (going upward).\n\t\t\t\tnextThreadData = {\n\t\t\t\t\tthreadTop: threadTop + additionalOffset,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn offsets;\n\t\t};\n\t\tconst newOffsets = calculateAllOffsets();\n\t\tif ( Object.keys( newOffsets ).length > 0 ) {\n\t\t\tsetBoardOffsets( newOffsets );\n\t\t}\n\t}, [ heights, blockRefs, isFloating, threads, selectedThread ] );\n\n\tconst hasThreads = Array.isArray( threads ) && threads.length > 0;\n\tif ( ! hasThreads && ! isFloating ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<AddComment\n\t\t\t\t\tonSubmit={ onAddReply }\n\t\t\t\t\tshowCommentBoard={ showCommentBoard }\n\t\t\t\t\tsetShowCommentBoard={ setShowCommentBoard }\n\t\t\t\t\tcommentSidebarRef={ commentSidebarRef }\n\t\t\t\t/>\n\t\t\t\t<Text as=\"p\">{ __( 'No notes available.' ) }</Text>\n\t\t\t\t<Text as=\"p\" variant=\"muted\">\n\t\t\t\t\t{ __( 'Only logged in users can see Notes.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isFloating &&\n\t\t\t\tshowCommentBoard &&\n\t\t\t\tundefined === blockCommentId && (\n\t\t\t\t\t<AddComment\n\t\t\t\t\t\tonSubmit={ onAddReply }\n\t\t\t\t\t\tshowCommentBoard={ showCommentBoard }\n\t\t\t\t\t\tsetShowCommentBoard={ setShowCommentBoard }\n\t\t\t\t\t\tcommentSidebarRef={ commentSidebarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t{ threads.map( ( thread ) => (\n\t\t\t\t<Thread\n\t\t\t\t\tkey={ thread.id }\n\t\t\t\t\tthread={ thread }\n\t\t\t\t\tonAddReply={ onAddReply }\n\t\t\t\t\tonCommentDelete={ handleDelete }\n\t\t\t\t\tonEditComment={ onEditComment }\n\t\t\t\t\tisSelected={ selectedThread === thread.id }\n\t\t\t\t\tsetSelectedThread={ setSelectedThread }\n\t\t\t\t\tsetShowCommentBoard={ setShowCommentBoard }\n\t\t\t\t\tcommentSidebarRef={ commentSidebarRef }\n\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t\tisFloating={ isFloating }\n\t\t\t\t\tcalculatedOffset={ boardOffsets[ thread.id ] ?? 0 }\n\t\t\t\t\tsetHeights={ setHeights }\n\t\t\t\t\tsetBlockRef={ setBlockRef }\n\t\t\t\t\tselectedThread={ selectedThread }\n\t\t\t\t\tcommentLastUpdated={ commentLastUpdated }\n\t\t\t\t\tshowCommentBoard={ showCommentBoard }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Thread( {\n\tthread,\n\tonEditComment,\n\tonAddReply,\n\tonCommentDelete,\n\tisSelected,\n\tsetShowCommentBoard,\n\tcommentSidebarRef,\n\treflowComments,\n\tisFloating,\n\tcalculatedOffset,\n\tsetHeights,\n\tsetBlockRef,\n\tsetSelectedThread,\n\tselectedThread,\n\tcommentLastUpdated,\n\tshowCommentBoard,\n} ) {\n\tconst { toggleBlockHighlight, selectBlock, toggleBlockSpotlight } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst relatedBlockElement = useBlockElement( thread.blockClientId );\n\tconst debouncedToggleBlockHighlight = useDebounce(\n\t\ttoggleBlockHighlight,\n\t\t50\n\t);\n\tconst { y, refs } = useFloatingThread( {\n\t\tthread,\n\t\tcalculatedOffset,\n\t\tsetHeights,\n\t\tsetBlockRef,\n\t\tselectedThread,\n\t\tcommentLastUpdated,\n\t} );\n\n\tconst onMouseEnter = () => {\n\t\tdebouncedToggleBlockHighlight( thread.blockClientId, true );\n\t};\n\n\tconst onMouseLeave = () => {\n\t\tdebouncedToggleBlockHighlight( thread.blockClientId, false );\n\t};\n\n\tconst handleCommentSelect = () => {\n\t\tsetShowCommentBoard( false );\n\t\tsetSelectedThread( thread.id );\n\t\tif ( !! thread.blockClientId ) {\n\t\t\t// Pass `null` as the second parameter to prevent focusing the block.\n\t\t\tselectBlock( thread.blockClientId, null );\n\t\t\ttoggleBlockSpotlight( thread.blockClientId, true );\n\t\t}\n\t};\n\n\tconst unselectThread = () => {\n\t\tsetSelectedThread( null );\n\t\tsetShowCommentBoard( false );\n\t\ttoggleBlockSpotlight( thread.blockClientId, false );\n\t};\n\n\tconst allReplies = thread?.reply || [];\n\n\tconst lastReply =\n\t\tallReplies.length > 0 ? allReplies[ allReplies.length - 1 ] : undefined;\n\tconst restReplies = allReplies.length > 0 ? allReplies.slice( 0, -1 ) : [];\n\n\tconst commentExcerpt = getCommentExcerpt(\n\t\tstripHTML( thread.content?.rendered ),\n\t\t10\n\t);\n\tconst ariaLabel = !! thread.blockClientId\n\t\t? sprintf(\n\t\t\t\t// translators: %s: note excerpt\n\t\t\t\t__( 'Note: %s' ),\n\t\t\t\tcommentExcerpt\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: note excerpt\n\t\t\t\t__( 'Original block deleted. Note: %s' ),\n\t\t\t\tcommentExcerpt\n\t\t );\n\n\tif ( 'new-note-thread' === thread.id && showCommentBoard && isFloating ) {\n\t\treturn (\n\t\t\t<AddComment\n\t\t\t\tonSubmit={ onAddReply }\n\t\t\t\tshowCommentBoard={ showCommentBoard }\n\t\t\t\tsetShowCommentBoard={ setShowCommentBoard }\n\t\t\t\tcommentSidebarRef={ commentSidebarRef }\n\t\t\t\treflowComments={ reflowComments }\n\t\t\t\tisFloating={ isFloating }\n\t\t\t\ty={ y }\n\t\t\t\trefs={ refs }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t// Disable reason: role=\"listitem\" does in fact support aria-expanded.\n\t\t// eslint-disable-next-line jsx-a11y/role-supports-aria-props\n\t\t<VStack\n\t\t\tclassName={ clsx( 'editor-collab-sidebar-panel__thread', {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-floating': isFloating,\n\t\t\t} ) }\n\t\t\tid={ `comment-thread-${ thread.id }` }\n\t\t\tspacing=\"3\"\n\t\t\tonClick={ handleCommentSelect }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Expand or Collapse thread.\n\t\t\t\tif (\n\t\t\t\t\tevent.key === 'Enter' &&\n\t\t\t\t\tevent.currentTarget === event.target\n\t\t\t\t) {\n\t\t\t\t\tif ( isSelected ) {\n\t\t\t\t\t\tunselectThread();\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandleCommentSelect();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Collapse thread and focus the thread.\n\t\t\t\tif ( event.key === 'Escape' ) {\n\t\t\t\t\tunselectThread();\n\t\t\t\t\tfocusCommentThread( thread.id, commentSidebarRef.current );\n\t\t\t\t}\n\t\t\t} }\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"listitem\"\n\t\t\taria-label={ ariaLabel }\n\t\t\taria-expanded={ isSelected }\n\t\t\tref={ isFloating ? refs.setFloating : undefined }\n\t\t\tstyle={ isFloating ? { top: y } : undefined }\n\t\t>\n\t\t\t<Button\n\t\t\t\tclassName=\"editor-collab-sidebar-panel__skip-to-comment\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tsize=\"compact\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tfocusCommentThread(\n\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\tcommentSidebarRef.current,\n\t\t\t\t\t\t'textarea'\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Add new note' ) }\n\t\t\t</Button>\n\t\t\t{ ! thread.blockClientId && (\n\t\t\t\t<Text as=\"p\" weight={ 500 } variant=\"muted\">\n\t\t\t\t\t{ __( 'Original block deleted.' ) }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t\t<CommentBoard\n\t\t\t\tthread={ thread }\n\t\t\t\tisExpanded={ isSelected }\n\t\t\t\tonEdit={ ( params = {} ) => {\n\t\t\t\t\tconst { status } = params;\n\t\t\t\t\tonEditComment( params );\n\t\t\t\t\tif ( status === 'approved' ) {\n\t\t\t\t\t\tunselectThread();\n\t\t\t\t\t\tfocusCommentThread(\n\t\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\t\tcommentSidebarRef.current\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tonDelete={ onCommentDelete }\n\t\t\t\treflowComments={ reflowComments }\n\t\t\t/>\n\t\t\t{ isSelected &&\n\t\t\t\tallReplies.map( ( reply ) => (\n\t\t\t\t\t<CommentBoard\n\t\t\t\t\t\tkey={ reply.id }\n\t\t\t\t\t\tthread={ reply }\n\t\t\t\t\t\tparent={ thread }\n\t\t\t\t\t\tisExpanded={ isSelected }\n\t\t\t\t\t\tonEdit={ onEditComment }\n\t\t\t\t\t\tonDelete={ onCommentDelete }\n\t\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t{ ! isSelected && restReplies.length > 0 && (\n\t\t\t\t<HStack className=\"editor-collab-sidebar-panel__more-reply-separator\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__more-reply-button\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetSelectedThread( thread.id );\n\t\t\t\t\t\t\tfocusCommentThread(\n\t\t\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\t\t\tcommentSidebarRef.current\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: number of replies.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'%s more reply',\n\t\t\t\t\t\t\t\t'%s more replies',\n\t\t\t\t\t\t\t\trestReplies.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\trestReplies.length\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ ! isSelected && lastReply && (\n\t\t\t\t<CommentBoard\n\t\t\t\t\tthread={ lastReply }\n\t\t\t\t\tparent={ thread }\n\t\t\t\t\tisExpanded={ isSelected }\n\t\t\t\t\tonEdit={ onEditComment }\n\t\t\t\t\tonDelete={ onCommentDelete }\n\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isSelected && (\n\t\t\t\t<VStack spacing=\"2\">\n\t\t\t\t\t<HStack alignment=\"left\" spacing=\"3\" justify=\"flex-start\">\n\t\t\t\t\t\t<CommentAuthorInfo />\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<VStack spacing=\"2\">\n\t\t\t\t\t\t<CommentForm\n\t\t\t\t\t\t\tonSubmit={ ( inputComment ) => {\n\t\t\t\t\t\t\t\tif ( 'approved' === thread.status ) {\n\t\t\t\t\t\t\t\t\t// For reopening, include the content in the reopen action.\n\t\t\t\t\t\t\t\t\tonEditComment( {\n\t\t\t\t\t\t\t\t\t\tid: thread.id,\n\t\t\t\t\t\t\t\t\t\tstatus: 'hold',\n\t\t\t\t\t\t\t\t\t\tcontent: inputComment,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// For regular replies, add as separate comment.\n\t\t\t\t\t\t\t\t\tonAddReply( {\n\t\t\t\t\t\t\t\t\t\tcontent: inputComment,\n\t\t\t\t\t\t\t\t\t\tparent: thread.id,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCancel={ ( event ) => {\n\t\t\t\t\t\t\t\t// Prevent the parent onClick from being triggered.\n\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\tunselectThread();\n\t\t\t\t\t\t\t\tfocusCommentThread(\n\t\t\t\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\t\t\t\tcommentSidebarRef.current\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsubmitButtonText={\n\t\t\t\t\t\t\t\t'approved' === thread.status\n\t\t\t\t\t\t\t\t\t? __( 'Reopen & Reply' )\n\t\t\t\t\t\t\t\t\t: __( 'Reply' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trows={ 'approved' === thread.status ? 2 : 4 }\n\t\t\t\t\t\t\tlabelText={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %1$s: note identifier, %2$s: author name\n\t\t\t\t\t\t\t\t__( 'Reply to note %1$s by %2$s' ),\n\t\t\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\t\t\tthread.author_name\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t\t{ !! thread.blockClientId && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__skip-to-block\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\trelatedBlockElement?.focus();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Back to block' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nconst CommentBoard = ( {\n\tthread,\n\tparent,\n\tisExpanded,\n\tonEdit,\n\tonDelete,\n\treflowComments,\n} ) => {\n\tconst [ actionState, setActionState ] = useState( false );\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tconst handleConfirmDelete = () => {\n\t\tonDelete( thread );\n\t\tsetActionState( false );\n\t\tsetShowConfirmDialog( false );\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetActionState( false );\n\t\tsetShowConfirmDialog( false );\n\t};\n\n\t// Check if this is a resolution comment by checking metadata.\n\tconst isResolutionComment =\n\t\tthread.type === 'note' &&\n\t\tthread.meta &&\n\t\t( thread.meta._wp_note_status === 'resolved' ||\n\t\t\tthread.meta._wp_note_status === 'reopen' );\n\n\tconst actions = [\n\t\t{\n\t\t\tid: 'edit',\n\t\t\ttitle: __( 'Edit' ),\n\t\t\tisEligible: ( { status } ) => status !== 'approved',\n\t\t\tonClick: () => {\n\t\t\t\tsetActionState( 'edit' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tid: 'reopen',\n\t\t\ttitle: _x( 'Reopen', 'Reopen note' ),\n\t\t\tisEligible: ( { status } ) => status === 'approved',\n\t\t\tonClick: () => {\n\t\t\t\tonEdit( { id: thread.id, status: 'hold' } );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tid: 'delete',\n\t\t\ttitle: __( 'Delete' ),\n\t\t\tisEligible: () => true,\n\t\t\tonClick: () => {\n\t\t\t\tsetActionState( 'delete' );\n\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst canResolve = thread.parent === 0;\n\tconst moreActions =\n\t\tparent?.status !== 'approved'\n\t\t\t? actions.filter( ( item ) => item.isEligible( thread ) )\n\t\t\t: [];\n\n\treturn (\n\t\t<VStack spacing=\"2\">\n\t\t\t<HStack alignment=\"left\" spacing=\"3\" justify=\"flex-start\">\n\t\t\t\t<CommentAuthorInfo\n\t\t\t\t\tavatar={ thread?.author_avatar_urls?.[ 48 ] }\n\t\t\t\t\tname={ thread?.author_name }\n\t\t\t\t\tdate={ thread?.date }\n\t\t\t\t\tuserId={ thread?.author }\n\t\t\t\t/>\n\t\t\t\t{ isExpanded && (\n\t\t\t\t\t<FlexItem\n\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__comment-status\"\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t// Prevent the thread from being selected.\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack spacing=\"0\">\n\t\t\t\t\t\t\t{ canResolve && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t\t\t'Resolve',\n\t\t\t\t\t\t\t\t\t\t'Mark note as resolved'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\ticon={ published }\n\t\t\t\t\t\t\t\t\tdisabled={ thread.status === 'approved' }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled={\n\t\t\t\t\t\t\t\t\t\tthread.status === 'approved'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonEdit( {\n\t\t\t\t\t\t\t\t\t\t\tid: thread.id,\n\t\t\t\t\t\t\t\t\t\t\tstatus: 'approved',\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Menu placement=\"bottom-end\">\n\t\t\t\t\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! moreActions.length }\n\t\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Menu.Popover>\n\t\t\t\t\t\t\t\t\t{ moreActions.map( ( action ) => (\n\t\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => action.onClick() }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{ action.title }\n\t\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t\t\t</Menu>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ 'edit' === actionState ? (\n\t\t\t\t<CommentForm\n\t\t\t\t\tonSubmit={ ( value ) => {\n\t\t\t\t\t\tonEdit( {\n\t\t\t\t\t\t\tid: thread.id,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetActionState( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => handleCancel() }\n\t\t\t\t\tthread={ thread }\n\t\t\t\t\tsubmitButtonText={ _x( 'Update', 'verb' ) }\n\t\t\t\t\tlabelText={ sprintf(\n\t\t\t\t\t\t// translators: %1$s: note identifier, %2$s: author name.\n\t\t\t\t\t\t__( 'Edit note %1$s by %2$s' ),\n\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\tthread.author_name\n\t\t\t\t\t) }\n\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<RawHTML\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'editor-collab-sidebar-panel__user-comment',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'editor-collab-sidebar-panel__resolution-text':\n\t\t\t\t\t\t\t\tisResolutionComment,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ isResolutionComment\n\t\t\t\t\t\t? ( () => {\n\t\t\t\t\t\t\t\tconst actionText =\n\t\t\t\t\t\t\t\t\tthread.meta._wp_note_status === 'resolved'\n\t\t\t\t\t\t\t\t\t\t? __( 'Marked as resolved' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Reopened' );\n\t\t\t\t\t\t\t\tconst content = thread?.content?.raw;\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tcontent &&\n\t\t\t\t\t\t\t\t\ttypeof content === 'string' &&\n\t\t\t\t\t\t\t\t\tcontent.trim() !== ''\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\treturn sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %1$s: action label (\"Marked as resolved\" or \"Reopened\"); %2$s: note text.\n\t\t\t\t\t\t\t\t\t\t__( '%1$s: %2$s' ),\n\t\t\t\t\t\t\t\t\t\tactionText,\n\t\t\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// If no content, just show the action.\n\t\t\t\t\t\t\t\treturn actionText;\n\t\t\t\t\t\t } )()\n\t\t\t\t\t\t: thread?.content?.rendered }\n\t\t\t\t</RawHTML>\n\t\t\t) }\n\t\t\t{ 'delete' === actionState && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\t\tonConfirm={ handleConfirmDelete }\n\t\t\t\t\tonCancel={ handleCancel }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"Are you sure you want to delete this note? This will also delete all of this note's replies.\"\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</VStack>\n\t);\n};\n\nexport default Comments;\n"],
5
- "mappings": "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",
6
- "names": ["blockEditorPrivateApis", "componentsPrivateApis", "blockEditorStore", "Text", "stripHTML", "VStack", "clsx", "HStack", "CommentAuthorInfo", "CommentForm", "ConfirmDialog"]
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tRawHTML,\n\tuseEffect,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n} from '@wordpress/element';\nimport {\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tButton,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useDebounce } from '@wordpress/compose';\n\nimport { published, moreVertical } from '@wordpress/icons';\nimport { __, _x, sprintf, _n } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport CommentAuthorInfo from './comment-author-info';\nimport CommentForm from './comment-form';\nimport { focusCommentThread, getCommentExcerpt } from './utils';\nimport { useFloatingThread } from './hooks';\nimport { AddComment } from './add-comment';\nimport { store as editorStore } from '../../store';\n\nconst { useBlockElement } = unlock( blockEditorPrivateApis );\nconst { Menu } = unlock( componentsPrivateApis );\n\nexport function Comments( {\n\tthreads: noteThreads,\n\tonEditComment,\n\tonAddReply,\n\tonCommentDelete,\n\tnewNoteFormState,\n\tsetNewNoteFormState,\n\tcommentSidebarRef,\n\treflowComments,\n\tisFloating = false,\n\tcommentLastUpdated,\n} ) {\n\tconst [ heights, setHeights ] = useState( {} );\n\tconst [ selectedThread, setSelectedThread ] = useState( null );\n\tconst [ boardOffsets, setBoardOffsets ] = useState( {} );\n\tconst [ blockRefs, setBlockRefs ] = useState( {} );\n\n\tconst { setCanvasMinHeight } = unlock( useDispatch( editorStore ) );\n\tconst { selectBlock, toggleBlockSpotlight } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst { blockCommentId, selectedBlockClientId, orderedBlockIds } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetClientIdsWithDescendants,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\tblockCommentId: clientId\n\t\t\t\t\t? getBlockAttributes( clientId )?.metadata?.noteId\n\t\t\t\t\t: null,\n\t\t\t\tselectedBlockClientId: clientId,\n\t\t\t\torderedBlockIds: getClientIdsWithDescendants(),\n\t\t\t};\n\t\t}, [] );\n\n\tconst relatedBlockElement = useBlockElement( selectedBlockClientId );\n\n\tconst threads = useMemo( () => {\n\t\tconst t = [ ...noteThreads ];\n\t\tconst orderedThreads = [];\n\t\t// In floating mode, when the note board is shown, and as long\n\t\t// as the selected block doesn't have an existing note attached -\n\t\t// add a \"new note\" entry to the threads. This special thread type\n\t\t// gets sorted and floated like regular threads, but shows an AddComment\n\t\t// component instead of a regular comment thread.\n\t\tif ( isFloating && newNoteFormState === 'open' ) {\n\t\t\t// Insert the new note entry at the correct location for its blockId.\n\t\t\tconst newNoteThread = {\n\t\t\t\tid: 'new-note-thread',\n\t\t\t\tblockClientId: selectedBlockClientId,\n\t\t\t\tcontent: { rendered: '' },\n\t\t\t};\n\t\t\t// Insert the new comment block at the right order within the threads.\n\t\t\torderedBlockIds.forEach( ( blockId ) => {\n\t\t\t\tif ( blockId === selectedBlockClientId ) {\n\t\t\t\t\torderedThreads.push( newNoteThread );\n\t\t\t\t} else {\n\t\t\t\t\tconst threadForBlock = t.find(\n\t\t\t\t\t\t( thread ) => thread.blockClientId === blockId\n\t\t\t\t\t);\n\t\t\t\t\tif ( threadForBlock ) {\n\t\t\t\t\t\torderedThreads.push( threadForBlock );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn orderedThreads;\n\t\t}\n\t\treturn t;\n\t}, [\n\t\tnoteThreads,\n\t\tisFloating,\n\t\tnewNoteFormState,\n\t\tselectedBlockClientId,\n\t\torderedBlockIds,\n\t] );\n\n\tconst handleDelete = async ( comment ) => {\n\t\tconst currentIndex = threads.findIndex( ( t ) => t.id === comment.id );\n\t\tconst nextThread = threads[ currentIndex + 1 ];\n\t\tconst prevThread = threads[ currentIndex - 1 ];\n\n\t\tawait onCommentDelete( comment );\n\n\t\tif ( comment.parent !== 0 ) {\n\t\t\t// Move focus to the parent thread when a reply was deleted.\n\t\t\tsetSelectedThread( comment.parent );\n\t\t\tfocusCommentThread( comment.parent, commentSidebarRef.current );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nextThread ) {\n\t\t\tsetSelectedThread( nextThread.id );\n\t\t\tfocusCommentThread( nextThread.id, commentSidebarRef.current );\n\t\t} else if ( prevThread ) {\n\t\t\tsetSelectedThread( prevThread.id );\n\t\t\tfocusCommentThread( prevThread.id, commentSidebarRef.current );\n\t\t} else {\n\t\t\tsetSelectedThread( null );\n\t\t\tsetNewNoteFormState( 'closed' );\n\t\t\t// Move focus to the related block.\n\t\t\trelatedBlockElement?.focus();\n\t\t}\n\t};\n\n\t// Auto-select the related comment thread when a block is selected.\n\tuseEffect( () => {\n\t\t// Fallback to 'new-note-thread' when showing the comment board for a new note.\n\t\tsetSelectedThread(\n\t\t\tnewNoteFormState === 'open' ? 'new-note-thread' : blockCommentId\n\t\t);\n\t}, [ blockCommentId, newNoteFormState ] );\n\n\tconst setBlockRef = useCallback( ( id, blockRef ) => {\n\t\tsetBlockRefs( ( prev ) => ( { ...prev, [ id ]: blockRef } ) );\n\t}, [] );\n\n\t// Recalculate floating comment thread offsets whenever the heights change.\n\tuseEffect( () => {\n\t\t/**\n\t\t * Calculate the y offsets for all comment threads. Account for potentially\n\t\t * overlapping threads and adjust their positions accordingly.\n\t\t */\n\t\tconst calculateAllOffsets = () => {\n\t\t\tconst offsets = {};\n\n\t\t\tif ( ! isFloating ) {\n\t\t\t\treturn { offsets, minHeight: 0 };\n\t\t\t}\n\n\t\t\t// Find the index of the selected thread.\n\t\t\tconst selectedThreadIndex = threads.findIndex(\n\t\t\t\t( t ) => t.id === selectedThread\n\t\t\t);\n\n\t\t\tconst breakIndex =\n\t\t\t\tselectedThreadIndex === -1 ? 0 : selectedThreadIndex;\n\n\t\t\t// If there is a selected thread, push threads above up and threads below down.\n\t\t\tconst selectedThreadData = threads[ breakIndex ];\n\n\t\t\tif (\n\t\t\t\t! selectedThreadData ||\n\t\t\t\t! blockRefs[ selectedThreadData.id ]\n\t\t\t) {\n\t\t\t\treturn { offsets, minHeight: 0 };\n\t\t\t}\n\n\t\t\tlet blockElement = blockRefs[ selectedThreadData.id ];\n\t\t\tlet blockRect = blockElement?.getBoundingClientRect();\n\t\t\tconst selectedThreadTop = blockRect?.top || 0;\n\t\t\tconst selectedThreadHeight = heights[ selectedThreadData.id ] || 0;\n\n\t\t\toffsets[ selectedThreadData.id ] = -16;\n\n\t\t\tlet previousThreadData = {\n\t\t\t\tthreadTop: selectedThreadTop - 16,\n\t\t\t\tthreadHeight: selectedThreadHeight,\n\t\t\t};\n\n\t\t\t// Process threads after the selected thread, offsetting any overlapping\n\t\t\t// threads downward.\n\t\t\tfor ( let i = breakIndex + 1; i < threads.length; i++ ) {\n\t\t\t\tconst thread = threads[ i ];\n\t\t\t\tif ( ! blockRefs[ thread.id ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tblockElement = blockRefs[ thread.id ];\n\t\t\t\tblockRect = blockElement?.getBoundingClientRect();\n\t\t\t\tconst threadTop = blockRect?.top || 0;\n\t\t\t\tconst threadHeight = heights[ thread.id ] || 0;\n\n\t\t\t\tlet additionalOffset = -16;\n\n\t\t\t\t// Check if the thread overlaps with the previous one.\n\t\t\t\tconst previousBottom =\n\t\t\t\t\tpreviousThreadData.threadTop +\n\t\t\t\t\tpreviousThreadData.threadHeight;\n\t\t\t\tif ( threadTop < previousBottom + 16 ) {\n\t\t\t\t\t// Shift down by the difference plus a margin to avoid overlap.\n\t\t\t\t\tadditionalOffset = previousBottom - threadTop + 20;\n\t\t\t\t}\n\n\t\t\t\toffsets[ thread.id ] = additionalOffset;\n\n\t\t\t\t// Update for next iteration.\n\t\t\t\tpreviousThreadData = {\n\t\t\t\t\tthreadTop: threadTop + additionalOffset,\n\t\t\t\t\tthreadHeight,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Process threads before the selected thread, offsetting any overlapping\n\t\t\t// threads upward.\n\t\t\tlet nextThreadData = {\n\t\t\t\tthreadTop: selectedThreadTop - 16,\n\t\t\t};\n\n\t\t\tfor ( let i = selectedThreadIndex - 1; i >= 0; i-- ) {\n\t\t\t\tconst thread = threads[ i ];\n\t\t\t\tif ( ! blockRefs[ thread.id ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tblockElement = blockRefs[ thread.id ];\n\t\t\t\tblockRect = blockElement?.getBoundingClientRect();\n\t\t\t\tconst threadTop = blockRect?.top || 0;\n\t\t\t\tconst threadHeight = heights[ thread.id ] || 0;\n\n\t\t\t\tlet additionalOffset = -16;\n\n\t\t\t\t// Calculate the bottom position of this thread with default offset.\n\t\t\t\tconst threadBottom = threadTop + threadHeight;\n\n\t\t\t\t// Check if this thread's bottom would overlap with the next thread's top.\n\t\t\t\tif ( threadBottom > nextThreadData.threadTop ) {\n\t\t\t\t\t// Shift up by the difference plus a margin to avoid overlap.\n\t\t\t\t\tadditionalOffset =\n\t\t\t\t\t\tnextThreadData.threadTop -\n\t\t\t\t\t\tthreadTop -\n\t\t\t\t\t\tthreadHeight -\n\t\t\t\t\t\t20;\n\t\t\t\t}\n\n\t\t\t\toffsets[ thread.id ] = additionalOffset;\n\n\t\t\t\t// Update for next iteration (going upward).\n\t\t\t\tnextThreadData = {\n\t\t\t\t\tthreadTop: threadTop + additionalOffset,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet editorMinHeight = 0;\n\t\t\t// Take the calculated top of the final note plus its height as the editor min height.\n\t\t\tconst lastThread = threads[ threads.length - 1 ];\n\t\t\tif ( blockRefs[ lastThread.id ] ) {\n\t\t\t\tconst lastBlockElement = blockRefs[ lastThread.id ];\n\t\t\t\tconst lastBlockRect = lastBlockElement?.getBoundingClientRect();\n\t\t\t\tconst lastThreadTop = lastBlockRect?.top || 0;\n\t\t\t\tconst lastThreadHeight = heights[ lastThread.id ] || 0;\n\t\t\t\tconst lastThreadOffset = offsets[ lastThread.id ] || 0;\n\t\t\t\teditorMinHeight =\n\t\t\t\t\tlastThreadTop + lastThreadHeight + lastThreadOffset + 32;\n\t\t\t}\n\n\t\t\treturn { offsets, minHeight: editorMinHeight };\n\t\t};\n\t\tconst { offsets: newOffsets, minHeight } = calculateAllOffsets();\n\t\tif ( Object.keys( newOffsets ).length > 0 ) {\n\t\t\tsetBoardOffsets( newOffsets );\n\t\t}\n\t\t// Ensure the editor has enough height to scroll to all notes.\n\t\tsetCanvasMinHeight( minHeight );\n\t}, [\n\t\theights,\n\t\tblockRefs,\n\t\tisFloating,\n\t\tthreads,\n\t\tselectedThread,\n\t\tsetCanvasMinHeight,\n\t] );\n\n\tconst handleThreadNavigation = ( event, thread, isSelected ) => {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentIndex = threads.findIndex( ( t ) => t.id === thread.id );\n\n\t\tif (\n\t\t\t( event.key === 'Enter' || event.key === 'ArrowRight' ) &&\n\t\t\tevent.currentTarget === event.target &&\n\t\t\t! isSelected\n\t\t) {\n\t\t\t// Expand thread.\n\t\t\tsetNewNoteFormState( 'closed' );\n\t\t\tsetSelectedThread( thread.id );\n\t\t\tif ( !! thread.blockClientId ) {\n\t\t\t\t// Pass `null` as the second parameter to prevent focusing the block.\n\t\t\t\tselectBlock( thread.blockClientId, null );\n\t\t\t\ttoggleBlockSpotlight( thread.blockClientId, true );\n\t\t\t}\n\t\t} else if (\n\t\t\t( ( event.key === 'Enter' || event.key === 'ArrowLeft' ) &&\n\t\t\t\tevent.currentTarget === event.target &&\n\t\t\t\tisSelected ) ||\n\t\t\tevent.key === 'Escape'\n\t\t) {\n\t\t\t// Collapse thread.\n\t\t\tsetSelectedThread( null );\n\t\t\tsetNewNoteFormState( 'closed' );\n\t\t\tif ( thread.blockClientId ) {\n\t\t\t\ttoggleBlockSpotlight( thread.blockClientId, false );\n\t\t\t}\n\t\t\tfocusCommentThread( thread.id, commentSidebarRef.current );\n\t\t} else if (\n\t\t\tevent.key === 'ArrowDown' &&\n\t\t\tcurrentIndex < threads.length - 1 &&\n\t\t\tevent.currentTarget === event.target\n\t\t) {\n\t\t\t// Move to the next thread.\n\t\t\tconst nextThread = threads[ currentIndex + 1 ];\n\t\t\tfocusCommentThread( nextThread.id, commentSidebarRef.current );\n\t\t} else if (\n\t\t\tevent.key === 'ArrowUp' &&\n\t\t\tcurrentIndex > 0 &&\n\t\t\tevent.currentTarget === event.target\n\t\t) {\n\t\t\t// Move to the previous thread.\n\t\t\tconst prevThread = threads[ currentIndex - 1 ];\n\t\t\tfocusCommentThread( prevThread.id, commentSidebarRef.current );\n\t\t} else if (\n\t\t\tevent.key === 'Home' &&\n\t\t\tevent.currentTarget === event.target\n\t\t) {\n\t\t\t// Move to the first thread.\n\t\t\tfocusCommentThread( threads[ 0 ].id, commentSidebarRef.current );\n\t\t} else if (\n\t\t\tevent.key === 'End' &&\n\t\t\tevent.currentTarget === event.target\n\t\t) {\n\t\t\t// Move to the last thread.\n\t\t\tfocusCommentThread(\n\t\t\t\tthreads[ threads.length - 1 ].id,\n\t\t\t\tcommentSidebarRef.current\n\t\t\t);\n\t\t}\n\t};\n\n\tconst hasThreads = Array.isArray( threads ) && threads.length > 0;\n\t// A special case for `template-locked` mode - https://github.com/WordPress/gutenberg/pull/72646.\n\tif ( ! hasThreads && ! isFloating ) {\n\t\treturn (\n\t\t\t<AddComment\n\t\t\t\tonSubmit={ onAddReply }\n\t\t\t\tnewNoteFormState={ newNoteFormState }\n\t\t\t\tsetNewNoteFormState={ setNewNoteFormState }\n\t\t\t\tcommentSidebarRef={ commentSidebarRef }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isFloating && newNoteFormState === 'open' && (\n\t\t\t\t<AddComment\n\t\t\t\t\tonSubmit={ onAddReply }\n\t\t\t\t\tnewNoteFormState={ newNoteFormState }\n\t\t\t\t\tsetNewNoteFormState={ setNewNoteFormState }\n\t\t\t\t\tcommentSidebarRef={ commentSidebarRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ threads.map( ( thread ) => (\n\t\t\t\t<Thread\n\t\t\t\t\tkey={ thread.id }\n\t\t\t\t\tthread={ thread }\n\t\t\t\t\tonAddReply={ onAddReply }\n\t\t\t\t\tonCommentDelete={ handleDelete }\n\t\t\t\t\tonEditComment={ onEditComment }\n\t\t\t\t\tisSelected={ selectedThread === thread.id }\n\t\t\t\t\tsetSelectedThread={ setSelectedThread }\n\t\t\t\t\tsetNewNoteFormState={ setNewNoteFormState }\n\t\t\t\t\tcommentSidebarRef={ commentSidebarRef }\n\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t\tisFloating={ isFloating }\n\t\t\t\t\tcalculatedOffset={ boardOffsets[ thread.id ] ?? 0 }\n\t\t\t\t\tsetHeights={ setHeights }\n\t\t\t\t\tsetBlockRef={ setBlockRef }\n\t\t\t\t\tselectedThread={ selectedThread }\n\t\t\t\t\tcommentLastUpdated={ commentLastUpdated }\n\t\t\t\t\tnewNoteFormState={ newNoteFormState }\n\t\t\t\t\tonKeyDown={ ( event ) =>\n\t\t\t\t\t\thandleThreadNavigation(\n\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\tthread,\n\t\t\t\t\t\t\tselectedThread === thread.id\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Thread( {\n\tthread,\n\tonEditComment,\n\tonAddReply,\n\tonCommentDelete,\n\tisSelected,\n\tsetNewNoteFormState,\n\tcommentSidebarRef,\n\treflowComments,\n\tisFloating,\n\tcalculatedOffset,\n\tsetHeights,\n\tsetBlockRef,\n\tsetSelectedThread,\n\tselectedThread,\n\tcommentLastUpdated,\n\tnewNoteFormState,\n\tonKeyDown,\n} ) {\n\tconst { toggleBlockHighlight, selectBlock, toggleBlockSpotlight } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst relatedBlockElement = useBlockElement( thread.blockClientId );\n\tconst debouncedToggleBlockHighlight = useDebounce(\n\t\ttoggleBlockHighlight,\n\t\t50\n\t);\n\tconst { y, refs } = useFloatingThread( {\n\t\tthread,\n\t\tcalculatedOffset,\n\t\tsetHeights,\n\t\tsetBlockRef,\n\t\tselectedThread,\n\t\tcommentLastUpdated,\n\t} );\n\n\tconst onMouseEnter = () => {\n\t\tdebouncedToggleBlockHighlight( thread.blockClientId, true );\n\t};\n\n\tconst onMouseLeave = () => {\n\t\tdebouncedToggleBlockHighlight( thread.blockClientId, false );\n\t};\n\n\tconst handleCommentSelect = () => {\n\t\tsetNewNoteFormState( 'closed' );\n\t\tsetSelectedThread( thread.id );\n\t\tif ( !! thread.blockClientId ) {\n\t\t\t// Pass `null` as the second parameter to prevent focusing the block.\n\t\t\tselectBlock( thread.blockClientId, null );\n\t\t\ttoggleBlockSpotlight( thread.blockClientId, true );\n\t\t}\n\t};\n\n\tconst unselectThread = () => {\n\t\tsetSelectedThread( null );\n\t\tsetNewNoteFormState( 'closed' );\n\t\ttoggleBlockSpotlight( thread.blockClientId, false );\n\t};\n\n\tconst allReplies = thread?.reply || [];\n\n\tconst lastReply =\n\t\tallReplies.length > 0 ? allReplies[ allReplies.length - 1 ] : undefined;\n\tconst restReplies = allReplies.length > 0 ? allReplies.slice( 0, -1 ) : [];\n\n\tconst commentExcerpt = getCommentExcerpt(\n\t\tstripHTML( thread.content?.rendered ),\n\t\t10\n\t);\n\tconst ariaLabel = !! thread.blockClientId\n\t\t? sprintf(\n\t\t\t\t// translators: %s: note excerpt\n\t\t\t\t__( 'Note: %s' ),\n\t\t\t\tcommentExcerpt\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: note excerpt\n\t\t\t\t__( 'Original block deleted. Note: %s' ),\n\t\t\t\tcommentExcerpt\n\t\t );\n\n\tif (\n\t\tthread.id === 'new-note-thread' &&\n\t\tnewNoteFormState === 'open' &&\n\t\tisFloating\n\t) {\n\t\treturn (\n\t\t\t<AddComment\n\t\t\t\tonSubmit={ onAddReply }\n\t\t\t\tnewNoteFormState={ newNoteFormState }\n\t\t\t\tsetNewNoteFormState={ setNewNoteFormState }\n\t\t\t\tcommentSidebarRef={ commentSidebarRef }\n\t\t\t\treflowComments={ reflowComments }\n\t\t\t\tisFloating={ isFloating }\n\t\t\t\ty={ y }\n\t\t\t\trefs={ refs }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tclassName={ clsx( 'editor-collab-sidebar-panel__thread', {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-floating': isFloating,\n\t\t\t} ) }\n\t\t\tid={ `comment-thread-${ thread.id }` }\n\t\t\tspacing=\"3\"\n\t\t\tonClick={ handleCommentSelect }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"treeitem\"\n\t\t\taria-label={ ariaLabel }\n\t\t\taria-expanded={ isSelected }\n\t\t\tref={ isFloating ? refs.setFloating : undefined }\n\t\t\tstyle={ isFloating ? { top: y } : undefined }\n\t\t>\n\t\t\t<Button\n\t\t\t\tclassName=\"editor-collab-sidebar-panel__skip-to-comment\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tsize=\"compact\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tfocusCommentThread(\n\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\tcommentSidebarRef.current,\n\t\t\t\t\t\t'textarea'\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Add new note' ) }\n\t\t\t</Button>\n\t\t\t{ ! thread.blockClientId && (\n\t\t\t\t<Text as=\"p\" weight={ 500 } variant=\"muted\">\n\t\t\t\t\t{ __( 'Original block deleted.' ) }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t\t<CommentBoard\n\t\t\t\tthread={ thread }\n\t\t\t\tisExpanded={ isSelected }\n\t\t\t\tonEdit={ ( params = {} ) => {\n\t\t\t\t\tonEditComment( params );\n\t\t\t\t\tif ( params.status === 'approved' ) {\n\t\t\t\t\t\tunselectThread();\n\t\t\t\t\t\tif ( isFloating ) {\n\t\t\t\t\t\t\trelatedBlockElement?.focus();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfocusCommentThread(\n\t\t\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\t\t\tcommentSidebarRef.current\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tonDelete={ onCommentDelete }\n\t\t\t\treflowComments={ reflowComments }\n\t\t\t/>\n\t\t\t{ isSelected &&\n\t\t\t\tallReplies.map( ( reply ) => (\n\t\t\t\t\t<CommentBoard\n\t\t\t\t\t\tkey={ reply.id }\n\t\t\t\t\t\tthread={ reply }\n\t\t\t\t\t\tparent={ thread }\n\t\t\t\t\t\tisExpanded={ isSelected }\n\t\t\t\t\t\tonEdit={ onEditComment }\n\t\t\t\t\t\tonDelete={ onCommentDelete }\n\t\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t{ ! isSelected && restReplies.length > 0 && (\n\t\t\t\t<HStack className=\"editor-collab-sidebar-panel__more-reply-separator\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__more-reply-button\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetSelectedThread( thread.id );\n\t\t\t\t\t\t\tfocusCommentThread(\n\t\t\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\t\t\tcommentSidebarRef.current\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: number of replies.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'%s more reply',\n\t\t\t\t\t\t\t\t'%s more replies',\n\t\t\t\t\t\t\t\trestReplies.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\trestReplies.length\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ ! isSelected && lastReply && (\n\t\t\t\t<CommentBoard\n\t\t\t\t\tthread={ lastReply }\n\t\t\t\t\tparent={ thread }\n\t\t\t\t\tisExpanded={ isSelected }\n\t\t\t\t\tonEdit={ onEditComment }\n\t\t\t\t\tonDelete={ onCommentDelete }\n\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isSelected && (\n\t\t\t\t<VStack spacing=\"2\" role=\"treeitem\">\n\t\t\t\t\t<HStack alignment=\"left\" spacing=\"3\" justify=\"flex-start\">\n\t\t\t\t\t\t<CommentAuthorInfo />\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<VStack spacing=\"2\">\n\t\t\t\t\t\t<CommentForm\n\t\t\t\t\t\t\tonSubmit={ ( inputComment ) => {\n\t\t\t\t\t\t\t\tif ( 'approved' === thread.status ) {\n\t\t\t\t\t\t\t\t\t// For reopening, include the content in the reopen action.\n\t\t\t\t\t\t\t\t\tonEditComment( {\n\t\t\t\t\t\t\t\t\t\tid: thread.id,\n\t\t\t\t\t\t\t\t\t\tstatus: 'hold',\n\t\t\t\t\t\t\t\t\t\tcontent: inputComment,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// For regular replies, add as separate comment.\n\t\t\t\t\t\t\t\t\tonAddReply( {\n\t\t\t\t\t\t\t\t\t\tcontent: inputComment,\n\t\t\t\t\t\t\t\t\t\tparent: thread.id,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCancel={ ( event ) => {\n\t\t\t\t\t\t\t\t// Prevent the parent onClick from being triggered.\n\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\tunselectThread();\n\t\t\t\t\t\t\t\tfocusCommentThread(\n\t\t\t\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\t\t\t\tcommentSidebarRef.current\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsubmitButtonText={\n\t\t\t\t\t\t\t\t'approved' === thread.status\n\t\t\t\t\t\t\t\t\t? __( 'Reopen & Reply' )\n\t\t\t\t\t\t\t\t\t: __( 'Reply' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trows={ 'approved' === thread.status ? 2 : 4 }\n\t\t\t\t\t\t\tlabelText={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %1$s: note identifier, %2$s: author name\n\t\t\t\t\t\t\t\t__( 'Reply to note %1$s by %2$s' ),\n\t\t\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\t\t\tthread.author_name\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t\t{ !! thread.blockClientId && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__skip-to-block\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\trelatedBlockElement?.focus();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Back to block' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nconst CommentBoard = ( {\n\tthread,\n\tparent,\n\tisExpanded,\n\tonEdit,\n\tonDelete,\n\treflowComments,\n} ) => {\n\tconst [ actionState, setActionState ] = useState( false );\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\tconst actionButtonRef = useRef( null );\n\tconst handleConfirmDelete = () => {\n\t\tonDelete( thread );\n\t\tsetActionState( false );\n\t\tsetShowConfirmDialog( false );\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetActionState( false );\n\t\tsetShowConfirmDialog( false );\n\t\tactionButtonRef.current?.focus();\n\t};\n\n\t// Check if this is a resolution comment by checking metadata.\n\tconst isResolutionComment =\n\t\tthread.type === 'note' &&\n\t\tthread.meta &&\n\t\t( thread.meta._wp_note_status === 'resolved' ||\n\t\t\tthread.meta._wp_note_status === 'reopen' );\n\n\tconst actions = [\n\t\t{\n\t\t\tid: 'edit',\n\t\t\ttitle: __( 'Edit' ),\n\t\t\tisEligible: ( { status } ) => status !== 'approved',\n\t\t\tonClick: () => {\n\t\t\t\tsetActionState( 'edit' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tid: 'reopen',\n\t\t\ttitle: _x( 'Reopen', 'Reopen note' ),\n\t\t\tisEligible: ( { status } ) => status === 'approved',\n\t\t\tonClick: () => {\n\t\t\t\tonEdit( { id: thread.id, status: 'hold' } );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tid: 'delete',\n\t\t\ttitle: __( 'Delete' ),\n\t\t\tisEligible: () => true,\n\t\t\tonClick: () => {\n\t\t\t\tsetActionState( 'delete' );\n\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst canResolve = thread.parent === 0;\n\tconst moreActions =\n\t\tparent?.status !== 'approved'\n\t\t\t? actions.filter( ( item ) => item.isEligible( thread ) )\n\t\t\t: [];\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing=\"2\"\n\t\t\trole={ thread.parent !== 0 ? 'treeitem' : undefined }\n\t\t>\n\t\t\t<HStack alignment=\"left\" spacing=\"3\" justify=\"flex-start\">\n\t\t\t\t<CommentAuthorInfo\n\t\t\t\t\tavatar={ thread?.author_avatar_urls?.[ 48 ] }\n\t\t\t\t\tname={ thread?.author_name }\n\t\t\t\t\tdate={ thread?.date }\n\t\t\t\t\tuserId={ thread?.author }\n\t\t\t\t/>\n\t\t\t\t{ isExpanded && (\n\t\t\t\t\t<FlexItem\n\t\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__comment-status\"\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t// Prevent the thread from being selected.\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack spacing=\"0\">\n\t\t\t\t\t\t\t{ canResolve && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t\t\t'Resolve',\n\t\t\t\t\t\t\t\t\t\t'Mark note as resolved'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\ticon={ published }\n\t\t\t\t\t\t\t\t\tdisabled={ thread.status === 'approved' }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled={\n\t\t\t\t\t\t\t\t\t\tthread.status === 'approved'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonEdit( {\n\t\t\t\t\t\t\t\t\t\t\tid: thread.id,\n\t\t\t\t\t\t\t\t\t\t\tstatus: 'approved',\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Menu placement=\"bottom-end\">\n\t\t\t\t\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tref={ actionButtonRef }\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! moreActions.length }\n\t\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Menu.Popover>\n\t\t\t\t\t\t\t\t\t{ moreActions.map( ( action ) => (\n\t\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => action.onClick() }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{ action.title }\n\t\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t\t\t</Menu>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ 'edit' === actionState ? (\n\t\t\t\t<CommentForm\n\t\t\t\t\tonSubmit={ ( value ) => {\n\t\t\t\t\t\tonEdit( {\n\t\t\t\t\t\t\tid: thread.id,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetActionState( false );\n\t\t\t\t\t\tactionButtonRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => handleCancel() }\n\t\t\t\t\tthread={ thread }\n\t\t\t\t\tsubmitButtonText={ _x( 'Update', 'verb' ) }\n\t\t\t\t\tlabelText={ sprintf(\n\t\t\t\t\t\t// translators: %1$s: note identifier, %2$s: author name.\n\t\t\t\t\t\t__( 'Edit note %1$s by %2$s' ),\n\t\t\t\t\t\tthread.id,\n\t\t\t\t\t\tthread.author_name\n\t\t\t\t\t) }\n\t\t\t\t\treflowComments={ reflowComments }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<RawHTML\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'editor-collab-sidebar-panel__user-comment',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'editor-collab-sidebar-panel__resolution-text':\n\t\t\t\t\t\t\t\tisResolutionComment,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ isResolutionComment\n\t\t\t\t\t\t? ( () => {\n\t\t\t\t\t\t\t\tconst actionText =\n\t\t\t\t\t\t\t\t\tthread.meta._wp_note_status === 'resolved'\n\t\t\t\t\t\t\t\t\t\t? __( 'Marked as resolved' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Reopened' );\n\t\t\t\t\t\t\t\tconst content = thread?.content?.raw;\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tcontent &&\n\t\t\t\t\t\t\t\t\ttypeof content === 'string' &&\n\t\t\t\t\t\t\t\t\tcontent.trim() !== ''\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\treturn sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %1$s: action label (\"Marked as resolved\" or \"Reopened\"); %2$s: note text.\n\t\t\t\t\t\t\t\t\t\t__( '%1$s: %2$s' ),\n\t\t\t\t\t\t\t\t\t\tactionText,\n\t\t\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// If no content, just show the action.\n\t\t\t\t\t\t\t\treturn actionText;\n\t\t\t\t\t\t } )()\n\t\t\t\t\t\t: thread?.content?.rendered }\n\t\t\t\t</RawHTML>\n\t\t\t) }\n\t\t\t{ 'delete' === actionState && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\t\tonConfirm={ handleConfirmDelete }\n\t\t\t\t\tonCancel={ handleCancel }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"Are you sure you want to delete this note? This will also delete all of this note's replies.\"\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</VStack>\n\t);\n};\n\nexport default Comments;\n"],
5
+ "mappings": "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",
6
+ "names": ["blockEditorPrivateApis", "componentsPrivateApis", "editorStore", "blockEditorStore", "stripHTML", "VStack", "clsx", "Text", "HStack", "CommentAuthorInfo", "CommentForm", "ConfirmDialog"]
7
7
  }
@@ -16,6 +16,8 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/editor/src/components/collab-sidebar/constants.js
19
21
  var constants_exports = {};
20
22
  __export(constants_exports, {
21
23
  SIDEBARS: () => SIDEBARS,
@@ -23,9 +25,9 @@ __export(constants_exports, {
23
25
  collabSidebarName: () => collabSidebarName
24
26
  });
25
27
  module.exports = __toCommonJS(constants_exports);
26
- const collabHistorySidebarName = "edit-post/collab-history-sidebar";
27
- const collabSidebarName = "edit-post/collab-sidebar";
28
- const SIDEBARS = [collabHistorySidebarName, collabSidebarName];
28
+ var collabHistorySidebarName = "edit-post/collab-history-sidebar";
29
+ var collabSidebarName = "edit-post/collab-sidebar";
30
+ var SIDEBARS = [collabHistorySidebarName, collabSidebarName];
29
31
  // Annotate the CommonJS export names for ESM import in node:
30
32
  0 && (module.exports = {
31
33
  SIDEBARS,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/collab-sidebar/constants.js"],
4
4
  "sourcesContent": ["export const collabHistorySidebarName = 'edit-post/collab-history-sidebar';\nexport const collabSidebarName = 'edit-post/collab-sidebar';\nexport const SIDEBARS = [ collabHistorySidebarName, collabSidebarName ];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,2BAA2B;AACjC,MAAM,oBAAoB;AAC1B,MAAM,WAAW,CAAE,0BAA0B,iBAAkB;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,2BAA2B;AACjC,IAAM,oBAAoB;AAC1B,IAAM,WAAW,CAAE,0BAA0B,iBAAkB;",
6
6
  "names": []
7
7
  }
@@ -16,6 +16,8 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/editor/src/components/collab-sidebar/hooks.js
19
21
  var hooks_exports = {};
20
22
  __export(hooks_exports, {
21
23
  useBlockComments: () => useBlockComments,
@@ -37,7 +39,7 @@ var import_store = require("../../store");
37
39
  var import_constants = require("./constants");
38
40
  var import_lock_unlock = require("../../lock-unlock");
39
41
  var import_utils = require("./utils");
40
- const { useBlockElementRef, cleanEmptyObject } = (0, import_lock_unlock.unlock)(
42
+ var { useBlockElementRef, cleanEmptyObject } = (0, import_lock_unlock.unlock)(
41
43
  import_block_editor.privateApis
42
44
  );
43
45
  function useBlockComments(postId) {
@@ -65,6 +67,9 @@ function useBlockComments(postId) {
65
67
  };
66
68
  }, []);
67
69
  const { resultComments, unresolvedSortedThreads } = (0, import_element.useMemo)(() => {
70
+ if (!threads || threads.length === 0) {
71
+ return { resultComments: [], unresolvedSortedThreads: [] };
72
+ }
68
73
  const blocksWithComments = clientIds.reduce((results, clientId) => {
69
74
  const commentId = getBlockAttributes(clientId)?.metadata?.noteId;
70
75
  if (commentId) {
@@ -74,8 +79,7 @@ function useBlockComments(postId) {
74
79
  }, {});
75
80
  const compare = {};
76
81
  const result = [];
77
- const allComments = threads ?? [];
78
- allComments.forEach((item) => {
82
+ threads.forEach((item) => {
79
83
  const itemBlock = Object.keys(blocksWithComments).find(
80
84
  (key) => blocksWithComments[key] === item.id
81
85
  );
@@ -85,7 +89,7 @@ function useBlockComments(postId) {
85
89
  blockClientId: item.parent === 0 ? itemBlock : null
86
90
  };
87
91
  });
88
- allComments.forEach((item) => {
92
+ threads.forEach((item) => {
89
93
  if (item.parent === 0) {
90
94
  result.push(compare[item.id]);
91
95
  } else if (compare[item.parent]) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/collab-sidebar/hooks.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport {\n\tuseFloating,\n\toffset as offsetMiddleware,\n\tautoUpdate,\n} from '@floating-ui/react-dom';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseCallback,\n\tuseReducer,\n} from '@wordpress/element';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { collabSidebarName } from './constants';\nimport { unlock } from '../../lock-unlock';\nimport { noop } from './utils';\n\nconst { useBlockElementRef, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function useBlockComments( postId ) {\n\tconst [ commentLastUpdated, reflowComments ] = useReducer(\n\t\t() => Date.now(),\n\t\t0\n\t);\n\n\tconst queryArgs = {\n\t\tpost: postId,\n\t\ttype: 'note',\n\t\tstatus: 'all',\n\t\tper_page: -1,\n\t};\n\n\tconst { records: threads } = useEntityRecords(\n\t\t'root',\n\t\t'comment',\n\t\tqueryArgs,\n\t\t{ enabled: !! postId && typeof postId === 'number' }\n\t);\n\n\tconst { getBlockAttributes } = useSelect( blockEditorStore );\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getClientIdsWithDescendants } = select( blockEditorStore );\n\t\treturn {\n\t\t\tclientIds: getClientIdsWithDescendants(),\n\t\t};\n\t}, [] );\n\n\t// Process comments to build the tree structure.\n\tconst { resultComments, unresolvedSortedThreads } = useMemo( () => {\n\t\tconst blocksWithComments = clientIds.reduce( ( results, clientId ) => {\n\t\t\tconst commentId = getBlockAttributes( clientId )?.metadata?.noteId;\n\t\t\tif ( commentId ) {\n\t\t\t\tresults[ clientId ] = commentId;\n\t\t\t}\n\t\t\treturn results;\n\t\t}, {} );\n\n\t\t// Create a compare to store the references to all objects by id.\n\t\tconst compare = {};\n\t\tconst result = [];\n\n\t\tconst allComments = threads ?? [];\n\n\t\t// Initialize each object with an empty `reply` array and map blockClientId.\n\t\tallComments.forEach( ( item ) => {\n\t\t\tconst itemBlock = Object.keys( blocksWithComments ).find(\n\t\t\t\t( key ) => blocksWithComments[ key ] === item.id\n\t\t\t);\n\n\t\t\tcompare[ item.id ] = {\n\t\t\t\t...item,\n\t\t\t\treply: [],\n\t\t\t\tblockClientId: item.parent === 0 ? itemBlock : null,\n\t\t\t};\n\t\t} );\n\n\t\t// Iterate over the data to build the tree structure.\n\t\tallComments.forEach( ( item ) => {\n\t\t\tif ( item.parent === 0 ) {\n\t\t\t\t// If parent is 0, it's a root item, push it to the result array.\n\t\t\t\tresult.push( compare[ item.id ] );\n\t\t\t} else if ( compare[ item.parent ] ) {\n\t\t\t\t// Otherwise, find its parent and push it to the parent's `reply` array.\n\t\t\t\tcompare[ item.parent ].reply.push( compare[ item.id ] );\n\t\t\t}\n\t\t} );\n\n\t\tif ( 0 === result?.length ) {\n\t\t\treturn { resultComments: [], unresolvedSortedThreads: [] };\n\t\t}\n\n\t\tconst updatedResult = result.map( ( item ) => ( {\n\t\t\t...item,\n\t\t\treply: [ ...item.reply ].reverse(),\n\t\t} ) );\n\n\t\tconst threadIdMap = new Map(\n\t\t\tupdatedResult.map( ( thread ) => [ String( thread.id ), thread ] )\n\t\t);\n\n\t\t// Prepare sets to determine which threads are linked to existing blocks.\n\t\tconst mappedIds = new Set(\n\t\t\tObject.values( blocksWithComments ).map( ( id ) => String( id ) )\n\t\t);\n\n\t\t// Get comments by block order, first unresolved, then resolved.\n\t\tconst unresolvedSortedComments = Object.values( blocksWithComments )\n\t\t\t.map( ( commentId ) => threadIdMap.get( String( commentId ) ) )\n\t\t\t.filter(\n\t\t\t\t( thread ) => thread !== undefined && thread.status === 'hold'\n\t\t\t);\n\n\t\tconst resolvedSortedComments = Object.values( blocksWithComments )\n\t\t\t.map( ( commentId ) => threadIdMap.get( String( commentId ) ) )\n\t\t\t.filter(\n\t\t\t\t( thread ) =>\n\t\t\t\t\tthread !== undefined && thread.status === 'approved'\n\t\t\t);\n\n\t\t// Append orphaned notes (whose related block was deleted or missing).\n\t\tconst orphanedComments = updatedResult.filter(\n\t\t\t( thread ) => ! mappedIds.has( String( thread.id ) )\n\t\t);\n\n\t\tconst allSortedComments = [\n\t\t\t...unresolvedSortedComments,\n\t\t\t...resolvedSortedComments,\n\t\t\t...orphanedComments,\n\t\t];\n\n\t\treturn {\n\t\t\tresultComments: allSortedComments,\n\t\t\tunresolvedSortedThreads: unresolvedSortedComments,\n\t\t};\n\t}, [ clientIds, threads, getBlockAttributes ] );\n\n\treturn {\n\t\tresultComments,\n\t\tunresolvedSortedThreads,\n\t\treflowComments,\n\t\tcommentLastUpdated,\n\t};\n}\n\nexport function useBlockCommentsActions( reflowComments = noop ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord, deleteEntityRecord } = useDispatch( coreStore );\n\tconst { getCurrentPostId } = useSelect( editorStore );\n\tconst { getBlockAttributes, getSelectedBlockClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onError = ( error ) => {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? decodeEntities( error.message )\n\t\t\t\t: __( 'An error occurred while performing an update.' );\n\t\tcreateNotice( 'error', errorMessage, {\n\t\t\ttype: 'snackbar',\n\t\t\tisDismissible: true,\n\t\t} );\n\t};\n\n\tconst onCreate = async ( { content, parent } ) => {\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'comment',\n\t\t\t\t{\n\t\t\t\t\tpost: getCurrentPostId(),\n\t\t\t\t\tcontent,\n\t\t\t\t\tstatus: 'hold',\n\t\t\t\t\ttype: 'note',\n\t\t\t\t\tparent: parent || 0,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// If it's a main comment, update the block attributes with the comment id.\n\t\t\tif ( ! parent && savedRecord?.id ) {\n\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\tconst metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...metadata,\n\t\t\t\t\t\tnoteId: savedRecord.id,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice(\n\t\t\t\t'snackbar',\n\t\t\t\tparent ? __( 'Reply added.' ) : __( 'Note added.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tsetTimeout( reflowComments, 300 );\n\t\t\treturn savedRecord;\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\tconst onEdit = async ( { id, content, status } ) => {\n\t\tconst messageType = status ? status : 'updated';\n\t\tconst messages = {\n\t\t\tapproved: __( 'Note marked as resolved.' ),\n\t\t\thold: __( 'Note reopened.' ),\n\t\t\tupdated: __( 'Note updated.' ),\n\t\t};\n\n\t\ttry {\n\t\t\t// For resolution or reopen actions, create a new note with metadata.\n\t\t\tif ( status === 'approved' || status === 'hold' ) {\n\t\t\t\t// First, update the thread status.\n\t\t\t\tawait saveEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'comment',\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Then create a new comment with the metadata.\n\t\t\t\tconst newCommentData = {\n\t\t\t\t\tpost: getCurrentPostId(),\n\t\t\t\t\tcontent: content || '', // Empty content for resolve, content for reopen.\n\t\t\t\t\ttype: 'note',\n\t\t\t\t\tstatus,\n\t\t\t\t\tparent: id,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\t_wp_note_status:\n\t\t\t\t\t\t\tstatus === 'approved' ? 'resolved' : 'reopen',\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tawait saveEntityRecord( 'root', 'comment', newCommentData, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst updateData = {\n\t\t\t\t\tid,\n\t\t\t\t\tcontent,\n\t\t\t\t\tstatus,\n\t\t\t\t};\n\n\t\t\t\tawait saveEntityRecord( 'root', 'comment', updateData, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice(\n\t\t\t\t'snackbar',\n\t\t\t\tmessages[ messageType ] ?? __( 'Note updated.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\treflowComments();\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\tconst onDelete = async ( comment ) => {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'comment',\n\t\t\t\tcomment.id,\n\t\t\t\tundefined,\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! comment.parent ) {\n\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\tconst metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...metadata,\n\t\t\t\t\t\tnoteId: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice( 'snackbar', __( 'Note deleted.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t\treflowComments();\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\treturn { onCreate, onEdit, onDelete };\n}\n\nexport function useEnableFloatingSidebar( enabled = false ) {\n\tconst registry = useRegistry();\n\tuseEffect( () => {\n\t\tif ( ! enabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { getActiveComplementaryArea } =\n\t\t\tregistry.select( interfaceStore );\n\t\tconst { disableComplementaryArea, enableComplementaryArea } =\n\t\t\tregistry.dispatch( interfaceStore );\n\n\t\tconst unsubscribe = registry.subscribe( () => {\n\t\t\t// Return `null` to indicate the user hid the complementary area.\n\t\t\tif ( getActiveComplementaryArea( 'core' ) === null ) {\n\t\t\t\tenableComplementaryArea( 'core', collabSidebarName );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t\tif ( getActiveComplementaryArea( 'core' ) === collabSidebarName ) {\n\t\t\t\tdisableComplementaryArea( 'core', collabSidebarName );\n\t\t\t}\n\t\t};\n\t}, [ enabled, registry ] );\n}\n\nexport function useFloatingThread( {\n\tthread,\n\tcalculatedOffset,\n\tsetHeights,\n\tselectedThread,\n\tsetBlockRef,\n\tcommentLastUpdated,\n} ) {\n\tconst blockRef = useRef();\n\tuseBlockElementRef( thread.blockClientId, blockRef );\n\n\tconst updateHeight = useCallback(\n\t\t( id, newHeight ) => {\n\t\t\tsetHeights( ( prev ) => {\n\t\t\t\tif ( prev[ id ] !== newHeight ) {\n\t\t\t\t\treturn { ...prev, [ id ]: newHeight };\n\t\t\t\t}\n\t\t\t\treturn prev;\n\t\t\t} );\n\t\t},\n\t\t[ setHeights ]\n\t);\n\n\t// Use floating-ui to track the block element's position with the calculated offset.\n\tconst { y, refs } = useFloating( {\n\t\tplacement: 'right-start',\n\t\tmiddleware: [\n\t\t\toffsetMiddleware( {\n\t\t\t\tcrossAxis: calculatedOffset || -16,\n\t\t\t} ),\n\t\t],\n\t\twhileElementsMounted: autoUpdate,\n\t} );\n\n\t// Store the block reference for each thread.\n\tuseEffect( () => {\n\t\tif ( blockRef.current ) {\n\t\t\trefs.setReference( blockRef.current );\n\t\t}\n\t}, [ blockRef, refs, commentLastUpdated ] );\n\n\t// Track thread heights.\n\tuseEffect( () => {\n\t\tif ( refs.floating?.current ) {\n\t\t\tsetBlockRef( thread.id, blockRef.current );\n\t\t}\n\t}, [ thread.id, refs.floating, setBlockRef ] );\n\n\t// When the selected thread changes, update heights, triggering offset recalculation.\n\tuseEffect( () => {\n\t\tif ( refs.floating?.current ) {\n\t\t\tconst newHeight = refs.floating.current.scrollHeight;\n\t\t\tupdateHeight( thread.id, newHeight );\n\t\t}\n\t}, [\n\t\tthread.id,\n\t\tupdateHeight,\n\t\trefs.floating,\n\t\tselectedThread,\n\t\tcommentLastUpdated,\n\t] );\n\n\treturn {\n\t\tblockRef,\n\t\ty,\n\t\trefs,\n\t};\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport {\n\tuseFloating,\n\toffset as offsetMiddleware,\n\tautoUpdate,\n} from '@floating-ui/react-dom';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseCallback,\n\tuseReducer,\n} from '@wordpress/element';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { collabSidebarName } from './constants';\nimport { unlock } from '../../lock-unlock';\nimport { noop } from './utils';\n\nconst { useBlockElementRef, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function useBlockComments( postId ) {\n\tconst [ commentLastUpdated, reflowComments ] = useReducer(\n\t\t() => Date.now(),\n\t\t0\n\t);\n\n\tconst queryArgs = {\n\t\tpost: postId,\n\t\ttype: 'note',\n\t\tstatus: 'all',\n\t\tper_page: -1,\n\t};\n\n\tconst { records: threads } = useEntityRecords(\n\t\t'root',\n\t\t'comment',\n\t\tqueryArgs,\n\t\t{ enabled: !! postId && typeof postId === 'number' }\n\t);\n\n\tconst { getBlockAttributes } = useSelect( blockEditorStore );\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getClientIdsWithDescendants } = select( blockEditorStore );\n\t\treturn {\n\t\t\tclientIds: getClientIdsWithDescendants(),\n\t\t};\n\t}, [] );\n\n\t// Process comments to build the tree structure.\n\tconst { resultComments, unresolvedSortedThreads } = useMemo( () => {\n\t\tif ( ! threads || threads.length === 0 ) {\n\t\t\treturn { resultComments: [], unresolvedSortedThreads: [] };\n\t\t}\n\n\t\tconst blocksWithComments = clientIds.reduce( ( results, clientId ) => {\n\t\t\tconst commentId = getBlockAttributes( clientId )?.metadata?.noteId;\n\t\t\tif ( commentId ) {\n\t\t\t\tresults[ clientId ] = commentId;\n\t\t\t}\n\t\t\treturn results;\n\t\t}, {} );\n\n\t\t// Create a compare to store the references to all objects by id.\n\t\tconst compare = {};\n\t\tconst result = [];\n\n\t\t// Initialize each object with an empty `reply` array and map blockClientId.\n\t\tthreads.forEach( ( item ) => {\n\t\t\tconst itemBlock = Object.keys( blocksWithComments ).find(\n\t\t\t\t( key ) => blocksWithComments[ key ] === item.id\n\t\t\t);\n\n\t\t\tcompare[ item.id ] = {\n\t\t\t\t...item,\n\t\t\t\treply: [],\n\t\t\t\tblockClientId: item.parent === 0 ? itemBlock : null,\n\t\t\t};\n\t\t} );\n\n\t\t// Iterate over the data to build the tree structure.\n\t\tthreads.forEach( ( item ) => {\n\t\t\tif ( item.parent === 0 ) {\n\t\t\t\t// If parent is 0, it's a root item, push it to the result array.\n\t\t\t\tresult.push( compare[ item.id ] );\n\t\t\t} else if ( compare[ item.parent ] ) {\n\t\t\t\t// Otherwise, find its parent and push it to the parent's `reply` array.\n\t\t\t\tcompare[ item.parent ].reply.push( compare[ item.id ] );\n\t\t\t}\n\t\t} );\n\n\t\tif ( 0 === result?.length ) {\n\t\t\treturn { resultComments: [], unresolvedSortedThreads: [] };\n\t\t}\n\n\t\tconst updatedResult = result.map( ( item ) => ( {\n\t\t\t...item,\n\t\t\treply: [ ...item.reply ].reverse(),\n\t\t} ) );\n\n\t\tconst threadIdMap = new Map(\n\t\t\tupdatedResult.map( ( thread ) => [ String( thread.id ), thread ] )\n\t\t);\n\n\t\t// Prepare sets to determine which threads are linked to existing blocks.\n\t\tconst mappedIds = new Set(\n\t\t\tObject.values( blocksWithComments ).map( ( id ) => String( id ) )\n\t\t);\n\n\t\t// Get comments by block order, first unresolved, then resolved.\n\t\tconst unresolvedSortedComments = Object.values( blocksWithComments )\n\t\t\t.map( ( commentId ) => threadIdMap.get( String( commentId ) ) )\n\t\t\t.filter(\n\t\t\t\t( thread ) => thread !== undefined && thread.status === 'hold'\n\t\t\t);\n\n\t\tconst resolvedSortedComments = Object.values( blocksWithComments )\n\t\t\t.map( ( commentId ) => threadIdMap.get( String( commentId ) ) )\n\t\t\t.filter(\n\t\t\t\t( thread ) =>\n\t\t\t\t\tthread !== undefined && thread.status === 'approved'\n\t\t\t);\n\n\t\t// Append orphaned notes (whose related block was deleted or missing).\n\t\tconst orphanedComments = updatedResult.filter(\n\t\t\t( thread ) => ! mappedIds.has( String( thread.id ) )\n\t\t);\n\n\t\tconst allSortedComments = [\n\t\t\t...unresolvedSortedComments,\n\t\t\t...resolvedSortedComments,\n\t\t\t...orphanedComments,\n\t\t];\n\n\t\treturn {\n\t\t\tresultComments: allSortedComments,\n\t\t\tunresolvedSortedThreads: unresolvedSortedComments,\n\t\t};\n\t}, [ clientIds, threads, getBlockAttributes ] );\n\n\treturn {\n\t\tresultComments,\n\t\tunresolvedSortedThreads,\n\t\treflowComments,\n\t\tcommentLastUpdated,\n\t};\n}\n\nexport function useBlockCommentsActions( reflowComments = noop ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord, deleteEntityRecord } = useDispatch( coreStore );\n\tconst { getCurrentPostId } = useSelect( editorStore );\n\tconst { getBlockAttributes, getSelectedBlockClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onError = ( error ) => {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? decodeEntities( error.message )\n\t\t\t\t: __( 'An error occurred while performing an update.' );\n\t\tcreateNotice( 'error', errorMessage, {\n\t\t\ttype: 'snackbar',\n\t\t\tisDismissible: true,\n\t\t} );\n\t};\n\n\tconst onCreate = async ( { content, parent } ) => {\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'comment',\n\t\t\t\t{\n\t\t\t\t\tpost: getCurrentPostId(),\n\t\t\t\t\tcontent,\n\t\t\t\t\tstatus: 'hold',\n\t\t\t\t\ttype: 'note',\n\t\t\t\t\tparent: parent || 0,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// If it's a main comment, update the block attributes with the comment id.\n\t\t\tif ( ! parent && savedRecord?.id ) {\n\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\tconst metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...metadata,\n\t\t\t\t\t\tnoteId: savedRecord.id,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice(\n\t\t\t\t'snackbar',\n\t\t\t\tparent ? __( 'Reply added.' ) : __( 'Note added.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tsetTimeout( reflowComments, 300 );\n\t\t\treturn savedRecord;\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\tconst onEdit = async ( { id, content, status } ) => {\n\t\tconst messageType = status ? status : 'updated';\n\t\tconst messages = {\n\t\t\tapproved: __( 'Note marked as resolved.' ),\n\t\t\thold: __( 'Note reopened.' ),\n\t\t\tupdated: __( 'Note updated.' ),\n\t\t};\n\n\t\ttry {\n\t\t\t// For resolution or reopen actions, create a new note with metadata.\n\t\t\tif ( status === 'approved' || status === 'hold' ) {\n\t\t\t\t// First, update the thread status.\n\t\t\t\tawait saveEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'comment',\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Then create a new comment with the metadata.\n\t\t\t\tconst newCommentData = {\n\t\t\t\t\tpost: getCurrentPostId(),\n\t\t\t\t\tcontent: content || '', // Empty content for resolve, content for reopen.\n\t\t\t\t\ttype: 'note',\n\t\t\t\t\tstatus,\n\t\t\t\t\tparent: id,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\t_wp_note_status:\n\t\t\t\t\t\t\tstatus === 'approved' ? 'resolved' : 'reopen',\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tawait saveEntityRecord( 'root', 'comment', newCommentData, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst updateData = {\n\t\t\t\t\tid,\n\t\t\t\t\tcontent,\n\t\t\t\t\tstatus,\n\t\t\t\t};\n\n\t\t\t\tawait saveEntityRecord( 'root', 'comment', updateData, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice(\n\t\t\t\t'snackbar',\n\t\t\t\tmessages[ messageType ] ?? __( 'Note updated.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\treflowComments();\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\tconst onDelete = async ( comment ) => {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'comment',\n\t\t\t\tcomment.id,\n\t\t\t\tundefined,\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! comment.parent ) {\n\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\tconst metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...metadata,\n\t\t\t\t\t\tnoteId: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice( 'snackbar', __( 'Note deleted.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t\treflowComments();\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\treturn { onCreate, onEdit, onDelete };\n}\n\nexport function useEnableFloatingSidebar( enabled = false ) {\n\tconst registry = useRegistry();\n\tuseEffect( () => {\n\t\tif ( ! enabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { getActiveComplementaryArea } =\n\t\t\tregistry.select( interfaceStore );\n\t\tconst { disableComplementaryArea, enableComplementaryArea } =\n\t\t\tregistry.dispatch( interfaceStore );\n\n\t\tconst unsubscribe = registry.subscribe( () => {\n\t\t\t// Return `null` to indicate the user hid the complementary area.\n\t\t\tif ( getActiveComplementaryArea( 'core' ) === null ) {\n\t\t\t\tenableComplementaryArea( 'core', collabSidebarName );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t\tif ( getActiveComplementaryArea( 'core' ) === collabSidebarName ) {\n\t\t\t\tdisableComplementaryArea( 'core', collabSidebarName );\n\t\t\t}\n\t\t};\n\t}, [ enabled, registry ] );\n}\n\nexport function useFloatingThread( {\n\tthread,\n\tcalculatedOffset,\n\tsetHeights,\n\tselectedThread,\n\tsetBlockRef,\n\tcommentLastUpdated,\n} ) {\n\tconst blockRef = useRef();\n\tuseBlockElementRef( thread.blockClientId, blockRef );\n\n\tconst updateHeight = useCallback(\n\t\t( id, newHeight ) => {\n\t\t\tsetHeights( ( prev ) => {\n\t\t\t\tif ( prev[ id ] !== newHeight ) {\n\t\t\t\t\treturn { ...prev, [ id ]: newHeight };\n\t\t\t\t}\n\t\t\t\treturn prev;\n\t\t\t} );\n\t\t},\n\t\t[ setHeights ]\n\t);\n\n\t// Use floating-ui to track the block element's position with the calculated offset.\n\tconst { y, refs } = useFloating( {\n\t\tplacement: 'right-start',\n\t\tmiddleware: [\n\t\t\toffsetMiddleware( {\n\t\t\t\tcrossAxis: calculatedOffset || -16,\n\t\t\t} ),\n\t\t],\n\t\twhileElementsMounted: autoUpdate,\n\t} );\n\n\t// Store the block reference for each thread.\n\tuseEffect( () => {\n\t\tif ( blockRef.current ) {\n\t\t\trefs.setReference( blockRef.current );\n\t\t}\n\t}, [ blockRef, refs, commentLastUpdated ] );\n\n\t// Track thread heights.\n\tuseEffect( () => {\n\t\tif ( refs.floating?.current ) {\n\t\t\tsetBlockRef( thread.id, blockRef.current );\n\t\t}\n\t}, [ thread.id, refs.floating, setBlockRef ] );\n\n\t// When the selected thread changes, update heights, triggering offset recalculation.\n\tuseEffect( () => {\n\t\tif ( refs.floating?.current ) {\n\t\t\tconst newHeight = refs.floating.current.scrollHeight;\n\t\t\tupdateHeight( thread.id, newHeight );\n\t\t}\n\t}, [\n\t\tthread.id,\n\t\tupdateHeight,\n\t\trefs.floating,\n\t\tselectedThread,\n\t\tcommentLastUpdated,\n\t] );\n\n\treturn {\n\t\tblockRef,\n\t\ty,\n\t\trefs,\n\t};\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["blockEditorPrivateApis", "blockEditorStore", "noticesStore", "coreStore", "editorStore", "interfaceStore", "offsetMiddleware"]
7
7
  }
@@ -26,12 +26,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/editor/src/components/collab-sidebar/index.js
29
31
  var collab_sidebar_exports = {};
30
32
  __export(collab_sidebar_exports, {
31
33
  default: () => NotesSidebarContainer
32
34
  });
33
35
  module.exports = __toCommonJS(collab_sidebar_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
36
  var import_i18n = require("@wordpress/i18n");
36
37
  var import_data = require("@wordpress/data");
37
38
  var import_components = require("@wordpress/components");
@@ -50,9 +51,11 @@ var import_global_styles_provider = require("../global-styles-provider");
50
51
  var import_hooks = require("./hooks");
51
52
  var import_utils = require("./utils");
52
53
  var import_post_type_support_check = __toESM(require("../post-type-support-check"));
54
+ var import_lock_unlock = require("../../lock-unlock");
55
+ var import_jsx_runtime = require("react/jsx-runtime");
53
56
  function NotesSidebarContent({
54
- showCommentBoard,
55
- setShowCommentBoard,
57
+ newNoteFormState,
58
+ setNewNoteFormState,
56
59
  styles,
57
60
  comments,
58
61
  commentSidebarRef,
@@ -66,7 +69,7 @@ function NotesSidebarContent({
66
69
  {
67
70
  className: "editor-collab-sidebar-panel",
68
71
  style: styles,
69
- role: "list",
72
+ role: "tree",
70
73
  spacing: "3",
71
74
  justify: "flex-start",
72
75
  ref: (node) => {
@@ -74,6 +77,7 @@ function NotesSidebarContent({
74
77
  commentSidebarRef.current = node;
75
78
  }
76
79
  },
80
+ "aria-label": isFloating ? (0, import_i18n.__)("Unresolved notes") : (0, import_i18n.__)("All notes"),
77
81
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
82
  import_comments.Comments,
79
83
  {
@@ -81,8 +85,8 @@ function NotesSidebarContent({
81
85
  onEditComment: onEdit,
82
86
  onAddReply: onCreate,
83
87
  onCommentDelete: onDelete,
84
- showCommentBoard,
85
- setShowCommentBoard,
88
+ newNoteFormState,
89
+ setNewNoteFormState,
86
90
  commentSidebarRef,
87
91
  reflowComments,
88
92
  commentLastUpdated,
@@ -93,17 +97,29 @@ function NotesSidebarContent({
93
97
  );
94
98
  }
95
99
  function NotesSidebar({ postId, mode }) {
96
- const [showCommentBoard, setShowCommentBoard] = (0, import_element.useState)(false);
100
+ const [newNoteFormState, setNewNoteFormState] = (0, import_element.useState)("closed");
97
101
  const { getActiveComplementaryArea } = (0, import_data.useSelect)(import_interface.store);
98
102
  const { enableComplementaryArea } = (0, import_data.useDispatch)(import_interface.store);
103
+ const { toggleBlockSpotlight } = (0, import_lock_unlock.unlock)((0, import_data.useDispatch)(import_block_editor.store));
99
104
  const isLargeViewport = (0, import_compose.useViewportMatch)("medium");
100
105
  const commentSidebarRef = (0, import_element.useRef)(null);
101
106
  const showFloatingSidebar = isLargeViewport && mode === "post-only";
102
- const blockCommentId = (0, import_data.useSelect)((select) => {
103
- const { getBlockAttributes, getSelectedBlockClientId } = select(import_block_editor.store);
104
- const clientId = getSelectedBlockClientId();
105
- return clientId ? getBlockAttributes(clientId)?.metadata?.noteId : null;
106
- }, []);
107
+ const { clientId, blockCommentId, isDistractionFree } = (0, import_data.useSelect)(
108
+ (select) => {
109
+ const {
110
+ getBlockAttributes,
111
+ getSelectedBlockClientId,
112
+ getSettings
113
+ } = select(import_block_editor.store);
114
+ const _clientId = getSelectedBlockClientId();
115
+ return {
116
+ clientId: _clientId,
117
+ blockCommentId: _clientId ? getBlockAttributes(_clientId)?.metadata?.noteId : null,
118
+ isDistractionFree: getSettings().isDistractionFree
119
+ };
120
+ },
121
+ []
122
+ );
107
123
  const {
108
124
  resultComments,
109
125
  unresolvedSortedThreads,
@@ -111,17 +127,18 @@ function NotesSidebar({ postId, mode }) {
111
127
  commentLastUpdated
112
128
  } = (0, import_hooks.useBlockComments)(postId);
113
129
  (0, import_hooks.useEnableFloatingSidebar)(
114
- showFloatingSidebar && (unresolvedSortedThreads.length > 0 || showCommentBoard)
130
+ showFloatingSidebar && (unresolvedSortedThreads.length > 0 || newNoteFormState !== "closed")
115
131
  );
116
132
  const { merged: GlobalStyles } = (0, import_global_styles_provider.useGlobalStylesContext)();
117
133
  const backgroundColor = GlobalStyles?.styles?.color?.background;
118
134
  const currentThread = blockCommentId ? resultComments.find((thread) => thread.id === blockCommentId) : null;
135
+ const showAllNotesSidebar = resultComments.length > 0 || !showFloatingSidebar;
119
136
  async function openTheSidebar() {
120
137
  const prevArea = await getActiveComplementaryArea("core");
121
138
  const activeNotesArea = import_constants.SIDEBARS.find((name) => name === prevArea);
122
139
  if (currentThread?.status === "approved") {
123
140
  enableComplementaryArea("core", import_constants.collabHistorySidebarName);
124
- } else if (!activeNotesArea) {
141
+ } else if (!activeNotesArea || !showAllNotesSidebar) {
125
142
  enableComplementaryArea(
126
143
  "core",
127
144
  showFloatingSidebar ? import_constants.collabSidebarName : import_constants.collabHistorySidebarName
@@ -131,16 +148,20 @@ function NotesSidebar({ postId, mode }) {
131
148
  if (!import_constants.SIDEBARS.includes(currentArea)) {
132
149
  return;
133
150
  }
134
- setShowCommentBoard(!blockCommentId);
151
+ setNewNoteFormState(!currentThread ? "open" : "closed");
135
152
  (0, import_utils.focusCommentThread)(
136
- blockCommentId,
153
+ currentThread?.id,
137
154
  commentSidebarRef.current,
138
155
  // Focus a comment thread when there's a selected block with a comment.
139
- !blockCommentId ? "textarea" : void 0
156
+ !currentThread ? "textarea" : void 0
140
157
  );
158
+ toggleBlockSpotlight(clientId, true);
159
+ }
160
+ if (isDistractionFree) {
161
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_comment_menu_item.default, { isDistractionFree: true });
141
162
  }
142
163
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
143
- blockCommentId && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
164
+ !!currentThread && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
144
165
  import_comment_indicator_toolbar.default,
145
166
  {
146
167
  thread: currentThread,
@@ -148,20 +169,21 @@ function NotesSidebar({ postId, mode }) {
148
169
  }
149
170
  ),
150
171
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_comment_menu_item.default, { onClick: openTheSidebar }),
151
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
172
+ showAllNotesSidebar && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
152
173
  import_plugin_sidebar.default,
153
174
  {
154
175
  identifier: import_constants.collabHistorySidebarName,
155
176
  name: import_constants.collabHistorySidebarName,
156
- title: (0, import_i18n.__)("Notes"),
177
+ title: (0, import_i18n.__)("All notes"),
178
+ header: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "interface-complementary-area-header__title", children: (0, import_i18n.__)("All notes") }),
157
179
  icon: import_icons.comment,
158
180
  closeLabel: (0, import_i18n.__)("Close Notes"),
159
181
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
160
182
  NotesSidebarContent,
161
183
  {
162
184
  comments: resultComments,
163
- showCommentBoard,
164
- setShowCommentBoard,
185
+ newNoteFormState,
186
+ setNewNoteFormState,
165
187
  commentSidebarRef,
166
188
  reflowComments,
167
189
  commentLastUpdated
@@ -182,8 +204,8 @@ function NotesSidebar({ postId, mode }) {
182
204
  NotesSidebarContent,
183
205
  {
184
206
  comments: unresolvedSortedThreads,
185
- showCommentBoard,
186
- setShowCommentBoard,
207
+ newNoteFormState,
208
+ setNewNoteFormState,
187
209
  commentSidebarRef,
188
210
  reflowComments,
189
211
  commentLastUpdated,
@@ -198,16 +220,20 @@ function NotesSidebar({ postId, mode }) {
198
220
  ] });
199
221
  }
200
222
  function NotesSidebarContainer() {
201
- const { postId, mode } = (0, import_data.useSelect)((select) => {
202
- const { getCurrentPostId, getRenderingMode } = select(import_store.store);
223
+ const { postId, mode, editorMode } = (0, import_data.useSelect)((select) => {
224
+ const { getCurrentPostId, getRenderingMode, getEditorMode } = select(import_store.store);
203
225
  return {
204
226
  postId: getCurrentPostId(),
205
- mode: getRenderingMode()
227
+ mode: getRenderingMode(),
228
+ editorMode: getEditorMode()
206
229
  };
207
230
  }, []);
208
231
  if (!postId || typeof postId !== "number") {
209
232
  return null;
210
233
  }
234
+ if (editorMode === "text") {
235
+ return null;
236
+ }
211
237
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_type_support_check.default, { supportKeys: "editor.notes", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NotesSidebar, { postId, mode }) });
212
238
  }
213
239
  //# sourceMappingURL=index.js.map