@wordpress/editor 14.48.0 → 14.48.2-next.v.202606191442.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/build/bindings/pattern-overrides.cjs +1 -1
  3. package/build/bindings/pattern-overrides.cjs.map +2 -2
  4. package/build/components/block-removal-warnings/index.cjs +0 -3
  5. package/build/components/block-removal-warnings/index.cjs.map +2 -2
  6. package/build/components/collab-sidebar/note-byline.cjs +1 -1
  7. package/build/components/collab-sidebar/note-byline.cjs.map +2 -2
  8. package/build/components/collab-sidebar/note-indicator-toolbar.cjs +49 -43
  9. package/build/components/collab-sidebar/note-indicator-toolbar.cjs.map +3 -3
  10. package/build/components/collab-sidebar/note.cjs +49 -17
  11. package/build/components/collab-sidebar/note.cjs.map +3 -3
  12. package/build/components/collab-sidebar/notes.cjs.map +1 -1
  13. package/build/components/collab-sidebar/utils.cjs +1 -1
  14. package/build/components/collab-sidebar/utils.cjs.map +2 -2
  15. package/build/components/collaborators-overlay/avatar-iframe-styles.cjs.map +1 -1
  16. package/build/components/collaborators-overlay/collaborator-styles.cjs.map +1 -1
  17. package/build/components/collaborators-overlay/compute-selection.cjs.map +1 -1
  18. package/build/components/collaborators-overlay/overlay-iframe-styles.cjs +1 -1
  19. package/build/components/collaborators-overlay/overlay-iframe-styles.cjs.map +1 -1
  20. package/build/components/collaborators-overlay/use-block-highlighting.cjs +1 -8
  21. package/build/components/collaborators-overlay/use-block-highlighting.cjs.map +3 -3
  22. package/build/components/collaborators-overlay/use-render-cursors.cjs +1 -7
  23. package/build/components/collaborators-overlay/use-render-cursors.cjs.map +3 -3
  24. package/build/components/collaborators-presence/avatar/component.cjs.map +2 -2
  25. package/build/components/collaborators-presence/avatar/use-image-loading-status.cjs.map +1 -1
  26. package/build/components/document-bar/index.cjs +7 -5
  27. package/build/components/document-bar/index.cjs.map +2 -2
  28. package/build/components/global-keyboard-shortcuts/index.cjs +3 -2
  29. package/build/components/global-keyboard-shortcuts/index.cjs.map +2 -2
  30. package/build/components/global-styles-sidebar/welcome-guide.cjs +3 -3
  31. package/build/components/global-styles-sidebar/welcome-guide.cjs.map +1 -1
  32. package/build/components/local-autosave-monitor/index.cjs +14 -15
  33. package/build/components/local-autosave-monitor/index.cjs.map +2 -2
  34. package/build/components/more-menu/view-more-menu-group.cjs +1 -2
  35. package/build/components/more-menu/view-more-menu-group.cjs.map +2 -2
  36. package/build/components/page-attributes/parent.cjs +2 -1
  37. package/build/components/page-attributes/parent.cjs.map +2 -2
  38. package/build/components/post-card-panel/index.cjs +1 -1
  39. package/build/components/post-card-panel/index.cjs.map +2 -2
  40. package/build/components/post-excerpt/panel.cjs +1 -1
  41. package/build/components/post-excerpt/panel.cjs.map +2 -2
  42. package/build/components/post-locked-modal/index.cjs +3 -3
  43. package/build/components/post-locked-modal/index.cjs.map +1 -1
  44. package/build/components/post-preview-button/index.cjs +2 -2
  45. package/build/components/post-preview-button/index.cjs.map +2 -2
  46. package/build/components/post-publish-button/index.cjs +115 -157
  47. package/build/components/post-publish-button/index.cjs.map +3 -3
  48. package/build/components/post-publish-button/label.cjs +2 -2
  49. package/build/components/post-publish-button/label.cjs.map +2 -2
  50. package/build/components/post-publish-panel/index.cjs.map +1 -1
  51. package/build/components/post-publish-panel/postpublish.cjs +1 -1
  52. package/build/components/post-publish-panel/postpublish.cjs.map +2 -2
  53. package/build/components/post-revisions-preview/block-diff.cjs +21 -9
  54. package/build/components/post-revisions-preview/block-diff.cjs.map +2 -2
  55. package/build/components/post-revisions-preview/diff-markers.cjs.map +2 -2
  56. package/build/components/post-revisions-preview/preserve-client-ids.cjs +2 -2
  57. package/build/components/post-revisions-preview/preserve-client-ids.cjs.map +2 -2
  58. package/build/components/post-revisions-preview/revisions-slider.cjs +1 -1
  59. package/build/components/post-revisions-preview/revisions-slider.cjs.map +2 -2
  60. package/build/components/post-revisions-timeline/index.cjs +173 -0
  61. package/build/components/post-revisions-timeline/index.cjs.map +7 -0
  62. package/build/components/post-saved-state/index.cjs +17 -26
  63. package/build/components/post-saved-state/index.cjs.map +2 -2
  64. package/build/components/post-schedule/label.cjs +5 -5
  65. package/build/components/post-schedule/label.cjs.map +1 -1
  66. package/build/components/post-taxonomies/flat-term-selector.cjs +2 -1
  67. package/build/components/post-taxonomies/flat-term-selector.cjs.map +3 -3
  68. package/build/components/post-taxonomies/hierarchical-term-selector.cjs +1 -1
  69. package/build/components/post-taxonomies/hierarchical-term-selector.cjs.map +2 -2
  70. package/build/components/post-text-editor/index.cjs +51 -0
  71. package/build/components/post-text-editor/index.cjs.map +2 -2
  72. package/build/components/post-text-editor/utils.cjs +150 -0
  73. package/build/components/post-text-editor/utils.cjs.map +7 -0
  74. package/build/components/post-url/index.cjs +1 -1
  75. package/build/components/post-url/index.cjs.map +2 -2
  76. package/build/components/post-view-link/index.cjs +1 -1
  77. package/build/components/post-view-link/index.cjs.map +2 -2
  78. package/build/components/provider/disable-non-page-content-blocks.cjs.map +1 -1
  79. package/build/components/provider/index.cjs +3 -1
  80. package/build/components/provider/index.cjs.map +3 -3
  81. package/build/components/provider/use-network-reconnect.cjs +51 -0
  82. package/build/components/provider/use-network-reconnect.cjs.map +7 -0
  83. package/build/components/resizable-editor/resize-handle.cjs.map +2 -2
  84. package/build/components/revision-diff-panel/index.cjs +7 -2
  85. package/build/components/revision-diff-panel/index.cjs.map +2 -2
  86. package/build/components/revision-fields-diff/index.cjs +8 -4
  87. package/build/components/revision-fields-diff/index.cjs.map +2 -2
  88. package/build/components/sidebar/dataform-post-summary.cjs +125 -20
  89. package/build/components/sidebar/dataform-post-summary.cjs.map +3 -3
  90. package/build/components/sidebar/index.cjs +2 -15
  91. package/build/components/sidebar/index.cjs.map +3 -3
  92. package/build/components/sidebar/post-revision-summary.cjs +11 -17
  93. package/build/components/sidebar/post-revision-summary.cjs.map +3 -3
  94. package/build/components/sidebar/post-summary.cjs +1 -1
  95. package/build/components/sidebar/post-summary.cjs.map +2 -2
  96. package/build/components/style-book/examples.cjs +1 -1
  97. package/build/components/style-book/examples.cjs.map +1 -1
  98. package/build/components/style-book/index.cjs +1 -1
  99. package/build/components/style-book/index.cjs.map +2 -2
  100. package/build/components/sync-connection-error-modal/index.cjs +3 -3
  101. package/build/components/sync-connection-error-modal/index.cjs.map +1 -1
  102. package/build/components/template-actions-panel/block-theme-content.cjs +7 -1
  103. package/build/components/template-actions-panel/block-theme-content.cjs.map +2 -2
  104. package/build/components/template-actions-panel/index.cjs +0 -9
  105. package/build/components/template-actions-panel/index.cjs.map +3 -3
  106. package/build/components/template-validation-notice/index.cjs +1 -1
  107. package/build/components/template-validation-notice/index.cjs.map +1 -1
  108. package/build/components/upload-progress-snackbar/index.cjs +161 -0
  109. package/build/components/upload-progress-snackbar/index.cjs.map +7 -0
  110. package/build/components/upload-progress-snackbar/tracker.cjs +90 -0
  111. package/build/components/upload-progress-snackbar/tracker.cjs.map +7 -0
  112. package/build/components/visual-editor/edit-template-blocks-notification.cjs +1 -1
  113. package/build/components/visual-editor/edit-template-blocks-notification.cjs.map +1 -1
  114. package/build/{components/revision-author-panel → dataviews/fields/revisions}/index.cjs +18 -26
  115. package/build/dataviews/fields/revisions/index.cjs.map +7 -0
  116. package/build/dataviews/fields/revisions/revisions-view.cjs +74 -0
  117. package/build/dataviews/fields/revisions/revisions-view.cjs.map +7 -0
  118. package/build/dataviews/store/private-actions.cjs +14 -4
  119. package/build/dataviews/store/private-actions.cjs.map +3 -3
  120. package/build/hooks/push-changes-to-global-styles/index.cjs +1 -1
  121. package/build/hooks/push-changes-to-global-styles/index.cjs.map +1 -1
  122. package/build/private-apis.cjs +2 -0
  123. package/build/private-apis.cjs.map +3 -3
  124. package/build/store/actions.cjs +1 -1
  125. package/build/store/actions.cjs.map +2 -2
  126. package/build/store/private-selectors.cjs +6 -1
  127. package/build/store/private-selectors.cjs.map +2 -2
  128. package/build/store/selectors.cjs +1 -2
  129. package/build/store/selectors.cjs.map +2 -2
  130. package/build/utils/media-upload/index.cjs +16 -0
  131. package/build/utils/media-upload/index.cjs.map +3 -3
  132. package/build/utils/set-nested-value.cjs.map +1 -1
  133. package/build-module/bindings/pattern-overrides.mjs +1 -1
  134. package/build-module/bindings/pattern-overrides.mjs.map +2 -2
  135. package/build-module/components/block-removal-warnings/index.mjs +0 -3
  136. package/build-module/components/block-removal-warnings/index.mjs.map +2 -2
  137. package/build-module/components/collab-sidebar/note-byline.mjs +1 -1
  138. package/build-module/components/collab-sidebar/note-byline.mjs.map +2 -2
  139. package/build-module/components/collab-sidebar/note-indicator-toolbar.mjs +53 -44
  140. package/build-module/components/collab-sidebar/note-indicator-toolbar.mjs.map +2 -2
  141. package/build-module/components/collab-sidebar/note.mjs +50 -18
  142. package/build-module/components/collab-sidebar/note.mjs.map +2 -2
  143. package/build-module/components/collab-sidebar/notes.mjs.map +1 -1
  144. package/build-module/components/collab-sidebar/utils.mjs +1 -1
  145. package/build-module/components/collab-sidebar/utils.mjs.map +2 -2
  146. package/build-module/components/collaborators-overlay/avatar-iframe-styles.mjs.map +1 -1
  147. package/build-module/components/collaborators-overlay/collaborator-styles.mjs.map +1 -1
  148. package/build-module/components/collaborators-overlay/compute-selection.mjs.map +1 -1
  149. package/build-module/components/collaborators-overlay/overlay-iframe-styles.mjs +1 -1
  150. package/build-module/components/collaborators-overlay/overlay-iframe-styles.mjs.map +1 -1
  151. package/build-module/components/collaborators-overlay/use-block-highlighting.mjs +1 -8
  152. package/build-module/components/collaborators-overlay/use-block-highlighting.mjs.map +2 -2
  153. package/build-module/components/collaborators-overlay/use-render-cursors.mjs +1 -7
  154. package/build-module/components/collaborators-overlay/use-render-cursors.mjs.map +2 -2
  155. package/build-module/components/collaborators-presence/avatar/component.mjs.map +2 -2
  156. package/build-module/components/collaborators-presence/avatar/use-image-loading-status.mjs.map +1 -1
  157. package/build-module/components/document-bar/index.mjs +7 -5
  158. package/build-module/components/document-bar/index.mjs.map +2 -2
  159. package/build-module/components/global-keyboard-shortcuts/index.mjs +3 -2
  160. package/build-module/components/global-keyboard-shortcuts/index.mjs.map +2 -2
  161. package/build-module/components/global-styles-sidebar/welcome-guide.mjs +3 -3
  162. package/build-module/components/global-styles-sidebar/welcome-guide.mjs.map +1 -1
  163. package/build-module/components/local-autosave-monitor/index.mjs +15 -16
  164. package/build-module/components/local-autosave-monitor/index.mjs.map +2 -2
  165. package/build-module/components/more-menu/view-more-menu-group.mjs +1 -2
  166. package/build-module/components/more-menu/view-more-menu-group.mjs.map +2 -2
  167. package/build-module/components/page-attributes/parent.mjs +2 -1
  168. package/build-module/components/page-attributes/parent.mjs.map +2 -2
  169. package/build-module/components/post-card-panel/index.mjs +1 -1
  170. package/build-module/components/post-card-panel/index.mjs.map +2 -2
  171. package/build-module/components/post-excerpt/panel.mjs +1 -1
  172. package/build-module/components/post-excerpt/panel.mjs.map +2 -2
  173. package/build-module/components/post-locked-modal/index.mjs +3 -3
  174. package/build-module/components/post-locked-modal/index.mjs.map +1 -1
  175. package/build-module/components/post-preview-button/index.mjs +2 -2
  176. package/build-module/components/post-preview-button/index.mjs.map +2 -2
  177. package/build-module/components/post-publish-button/index.mjs +117 -159
  178. package/build-module/components/post-publish-button/index.mjs.map +2 -2
  179. package/build-module/components/post-publish-button/label.mjs +2 -2
  180. package/build-module/components/post-publish-button/label.mjs.map +2 -2
  181. package/build-module/components/post-publish-panel/index.mjs.map +1 -1
  182. package/build-module/components/post-publish-panel/postpublish.mjs +1 -1
  183. package/build-module/components/post-publish-panel/postpublish.mjs.map +2 -2
  184. package/build-module/components/post-revisions-preview/block-diff.mjs +20 -8
  185. package/build-module/components/post-revisions-preview/block-diff.mjs.map +2 -2
  186. package/build-module/components/post-revisions-preview/diff-markers.mjs.map +2 -2
  187. package/build-module/components/post-revisions-preview/preserve-client-ids.mjs +1 -1
  188. package/build-module/components/post-revisions-preview/preserve-client-ids.mjs.map +1 -1
  189. package/build-module/components/post-revisions-preview/revisions-slider.mjs +1 -1
  190. package/build-module/components/post-revisions-preview/revisions-slider.mjs.map +2 -2
  191. package/build-module/components/post-revisions-timeline/index.mjs +152 -0
  192. package/build-module/components/post-revisions-timeline/index.mjs.map +7 -0
  193. package/build-module/components/post-saved-state/index.mjs +17 -26
  194. package/build-module/components/post-saved-state/index.mjs.map +2 -2
  195. package/build-module/components/post-schedule/label.mjs +5 -5
  196. package/build-module/components/post-schedule/label.mjs.map +1 -1
  197. package/build-module/components/post-taxonomies/flat-term-selector.mjs +3 -6
  198. package/build-module/components/post-taxonomies/flat-term-selector.mjs.map +2 -2
  199. package/build-module/components/post-taxonomies/hierarchical-term-selector.mjs +1 -1
  200. package/build-module/components/post-taxonomies/hierarchical-term-selector.mjs.map +2 -2
  201. package/build-module/components/post-text-editor/index.mjs +51 -0
  202. package/build-module/components/post-text-editor/index.mjs.map +2 -2
  203. package/build-module/components/post-text-editor/utils.mjs +123 -0
  204. package/build-module/components/post-text-editor/utils.mjs.map +7 -0
  205. package/build-module/components/post-url/index.mjs +1 -1
  206. package/build-module/components/post-url/index.mjs.map +2 -2
  207. package/build-module/components/post-view-link/index.mjs +1 -1
  208. package/build-module/components/post-view-link/index.mjs.map +2 -2
  209. package/build-module/components/provider/disable-non-page-content-blocks.mjs.map +1 -1
  210. package/build-module/components/provider/index.mjs +3 -1
  211. package/build-module/components/provider/index.mjs.map +2 -2
  212. package/build-module/components/provider/use-network-reconnect.mjs +30 -0
  213. package/build-module/components/provider/use-network-reconnect.mjs.map +7 -0
  214. package/build-module/components/resizable-editor/resize-handle.mjs.map +2 -2
  215. package/build-module/components/revision-diff-panel/index.mjs +7 -2
  216. package/build-module/components/revision-diff-panel/index.mjs.map +2 -2
  217. package/build-module/components/revision-fields-diff/index.mjs +8 -4
  218. package/build-module/components/revision-fields-diff/index.mjs.map +2 -2
  219. package/build-module/components/sidebar/dataform-post-summary.mjs +125 -20
  220. package/build-module/components/sidebar/dataform-post-summary.mjs.map +2 -2
  221. package/build-module/components/sidebar/index.mjs +3 -22
  222. package/build-module/components/sidebar/index.mjs.map +2 -2
  223. package/build-module/components/sidebar/post-revision-summary.mjs +11 -17
  224. package/build-module/components/sidebar/post-revision-summary.mjs.map +2 -2
  225. package/build-module/components/sidebar/post-summary.mjs +1 -1
  226. package/build-module/components/sidebar/post-summary.mjs.map +2 -2
  227. package/build-module/components/style-book/examples.mjs +1 -1
  228. package/build-module/components/style-book/examples.mjs.map +1 -1
  229. package/build-module/components/style-book/index.mjs +1 -1
  230. package/build-module/components/style-book/index.mjs.map +2 -2
  231. package/build-module/components/sync-connection-error-modal/index.mjs +3 -3
  232. package/build-module/components/sync-connection-error-modal/index.mjs.map +1 -1
  233. package/build-module/components/template-actions-panel/block-theme-content.mjs +7 -1
  234. package/build-module/components/template-actions-panel/block-theme-content.mjs.map +2 -2
  235. package/build-module/components/template-actions-panel/index.mjs +0 -9
  236. package/build-module/components/template-actions-panel/index.mjs.map +2 -2
  237. package/build-module/components/template-validation-notice/index.mjs +1 -1
  238. package/build-module/components/template-validation-notice/index.mjs.map +1 -1
  239. package/build-module/components/upload-progress-snackbar/index.mjs +135 -0
  240. package/build-module/components/upload-progress-snackbar/index.mjs.map +7 -0
  241. package/build-module/components/upload-progress-snackbar/tracker.mjs +61 -0
  242. package/build-module/components/upload-progress-snackbar/tracker.mjs.map +7 -0
  243. package/build-module/components/visual-editor/edit-template-blocks-notification.mjs +1 -1
  244. package/build-module/components/visual-editor/edit-template-blocks-notification.mjs.map +1 -1
  245. package/build-module/dataviews/fields/revisions/index.mjs +20 -0
  246. package/build-module/dataviews/fields/revisions/index.mjs.map +7 -0
  247. package/build-module/dataviews/fields/revisions/revisions-view.mjs +53 -0
  248. package/build-module/dataviews/fields/revisions/revisions-view.mjs.map +7 -0
  249. package/build-module/dataviews/store/private-actions.mjs +23 -7
  250. package/build-module/dataviews/store/private-actions.mjs.map +2 -2
  251. package/build-module/hooks/push-changes-to-global-styles/index.mjs +1 -1
  252. package/build-module/hooks/push-changes-to-global-styles/index.mjs.map +1 -1
  253. package/build-module/private-apis.mjs +2 -0
  254. package/build-module/private-apis.mjs.map +2 -2
  255. package/build-module/store/actions.mjs +1 -1
  256. package/build-module/store/actions.mjs.map +2 -2
  257. package/build-module/store/private-selectors.mjs +7 -1
  258. package/build-module/store/private-selectors.mjs.map +2 -2
  259. package/build-module/store/selectors.mjs +1 -2
  260. package/build-module/store/selectors.mjs.map +2 -2
  261. package/build-module/utils/media-upload/index.mjs +19 -0
  262. package/build-module/utils/media-upload/index.mjs.map +2 -2
  263. package/build-module/utils/set-nested-value.mjs.map +1 -1
  264. package/build-style/style-rtl.css +707 -270
  265. package/build-style/style.css +707 -270
  266. package/build-types/components/block-removal-warnings/index.d.ts.map +1 -1
  267. package/build-types/components/collab-sidebar/note-byline.d.ts +0 -3
  268. package/build-types/components/collab-sidebar/note-byline.d.ts.map +1 -1
  269. package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts.map +1 -1
  270. package/build-types/components/collab-sidebar/note.d.ts.map +1 -1
  271. package/build-types/components/collaborators-overlay/use-block-highlighting.d.ts +0 -3
  272. package/build-types/components/collaborators-overlay/use-block-highlighting.d.ts.map +1 -1
  273. package/build-types/components/collaborators-overlay/use-render-cursors.d.ts.map +1 -1
  274. package/build-types/components/collaborators-presence/avatar/component.d.ts.map +1 -1
  275. package/build-types/components/document-bar/index.d.ts.map +1 -1
  276. package/build-types/components/global-keyboard-shortcuts/index.d.ts.map +1 -1
  277. package/build-types/components/local-autosave-monitor/index.d.ts.map +1 -1
  278. package/build-types/components/more-menu/view-more-menu-group.d.ts.map +1 -1
  279. package/build-types/components/page-attributes/parent.d.ts.map +1 -1
  280. package/build-types/components/post-publish-button/index.d.ts +9 -9
  281. package/build-types/components/post-publish-button/index.d.ts.map +1 -1
  282. package/build-types/components/post-revisions-preview/block-diff.d.ts +3 -0
  283. package/build-types/components/post-revisions-preview/block-diff.d.ts.map +1 -1
  284. package/build-types/components/post-revisions-preview/diff-markers.d.ts.map +1 -1
  285. package/build-types/components/post-revisions-timeline/index.d.ts +2 -0
  286. package/build-types/components/post-revisions-timeline/index.d.ts.map +1 -0
  287. package/build-types/components/post-saved-state/index.d.ts.map +1 -1
  288. package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
  289. package/build-types/components/post-text-editor/index.d.ts.map +1 -1
  290. package/build-types/components/post-text-editor/utils.d.ts +29 -0
  291. package/build-types/components/post-text-editor/utils.d.ts.map +1 -0
  292. package/build-types/components/provider/index.d.ts.map +1 -1
  293. package/build-types/components/provider/use-network-reconnect.d.ts +8 -0
  294. package/build-types/components/provider/use-network-reconnect.d.ts.map +1 -0
  295. package/build-types/components/resizable-editor/resize-handle.d.ts.map +1 -1
  296. package/build-types/components/revision-diff-panel/index.d.ts +3 -1
  297. package/build-types/components/revision-diff-panel/index.d.ts.map +1 -1
  298. package/build-types/components/revision-fields-diff/index.d.ts +3 -0
  299. package/build-types/components/revision-fields-diff/index.d.ts.map +1 -1
  300. package/build-types/components/sidebar/dataform-post-summary.d.ts.map +1 -1
  301. package/build-types/components/sidebar/index.d.ts.map +1 -1
  302. package/build-types/components/sidebar/post-revision-summary.d.ts.map +1 -1
  303. package/build-types/components/template-actions-panel/block-theme-content.d.ts.map +1 -1
  304. package/build-types/components/template-actions-panel/index.d.ts.map +1 -1
  305. package/build-types/components/upload-progress-snackbar/index.d.ts +19 -0
  306. package/build-types/components/upload-progress-snackbar/index.d.ts.map +1 -0
  307. package/build-types/components/upload-progress-snackbar/stories/index.story.d.ts +28 -0
  308. package/build-types/components/upload-progress-snackbar/stories/index.story.d.ts.map +1 -0
  309. package/build-types/components/upload-progress-snackbar/tracker.d.ts +41 -0
  310. package/build-types/components/upload-progress-snackbar/tracker.d.ts.map +1 -0
  311. package/build-types/dataviews/fields/revisions/index.d.ts +8 -0
  312. package/build-types/dataviews/fields/revisions/index.d.ts.map +1 -0
  313. package/build-types/dataviews/fields/revisions/revisions-view.d.ts +2 -0
  314. package/build-types/dataviews/fields/revisions/revisions-view.d.ts.map +1 -0
  315. package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
  316. package/build-types/private-apis.d.ts.map +1 -1
  317. package/build-types/store/private-selectors.d.ts +1 -1
  318. package/build-types/store/private-selectors.d.ts.map +1 -1
  319. package/build-types/store/selectors.d.ts +1 -1
  320. package/build-types/store/selectors.d.ts.map +1 -1
  321. package/build-types/utils/get-template-part-icon.d.ts.map +1 -1
  322. package/build-types/utils/media-upload/index.d.ts.map +1 -1
  323. package/package.json +59 -50
  324. package/src/bindings/pattern-overrides.js +1 -1
  325. package/src/bindings/test/pattern-overrides.js +65 -0
  326. package/src/components/README.md +1 -1
  327. package/src/components/block-removal-warnings/index.js +0 -7
  328. package/src/components/collab-sidebar/note-byline.js +0 -1
  329. package/src/components/collab-sidebar/note-indicator-toolbar.js +73 -60
  330. package/src/components/collab-sidebar/note.js +64 -29
  331. package/src/components/collab-sidebar/style.scss +20 -0
  332. package/src/components/collaborators-overlay/use-block-highlighting.ts +0 -9
  333. package/src/components/collaborators-overlay/use-render-cursors.ts +0 -8
  334. package/src/components/collaborators-presence/avatar/component.tsx +0 -1
  335. package/src/components/collaborators-presence/avatar/test/index.tsx +8 -4
  336. package/src/components/document-bar/index.js +8 -3
  337. package/src/components/document-bar/style.scss +4 -2
  338. package/src/components/global-keyboard-shortcuts/index.js +2 -1
  339. package/src/components/local-autosave-monitor/index.js +23 -21
  340. package/src/components/more-menu/view-more-menu-group.js +1 -2
  341. package/src/components/page-attributes/parent.js +1 -0
  342. package/src/components/post-card-panel/index.js +1 -1
  343. package/src/components/post-publish-button/index.js +146 -192
  344. package/src/components/post-publish-button/test/index.js +149 -113
  345. package/src/components/post-revisions-preview/block-diff.js +63 -19
  346. package/src/components/post-revisions-preview/diff-markers.js +0 -1
  347. package/src/components/post-revisions-preview/preserve-client-ids.js +1 -1
  348. package/src/components/post-revisions-preview/test/block-diff.js +109 -6
  349. package/src/components/post-revisions-timeline/index.js +186 -0
  350. package/src/components/post-revisions-timeline/style.scss +43 -0
  351. package/src/components/post-saved-state/index.js +23 -26
  352. package/src/components/post-saved-state/test/index.js +18 -0
  353. package/src/components/post-taxonomies/flat-term-selector.js +4 -7
  354. package/src/components/post-text-editor/index.js +65 -0
  355. package/src/components/post-text-editor/test/utils.js +210 -0
  356. package/src/components/post-text-editor/utils.js +204 -0
  357. package/src/components/post-type-support-check/test/index.js +11 -0
  358. package/src/components/post-url/index.js +1 -1
  359. package/src/components/post-view-link/index.js +1 -1
  360. package/src/components/post-view-link/test/index.js +71 -0
  361. package/src/components/provider/index.js +6 -1
  362. package/src/components/provider/test/use-network-reconnect.js +137 -0
  363. package/src/components/provider/use-network-reconnect.js +44 -0
  364. package/src/components/resizable-editor/resize-handle.js +0 -1
  365. package/src/components/revision-diff-panel/index.js +8 -2
  366. package/src/components/revision-fields-diff/index.js +19 -3
  367. package/src/components/sidebar/dataform-post-summary.js +196 -25
  368. package/src/components/sidebar/index.js +4 -23
  369. package/src/components/sidebar/post-revision-summary.js +8 -15
  370. package/src/components/sidebar/post-summary.js +1 -1
  371. package/src/components/style-book/index.js +1 -1
  372. package/src/components/template-actions-panel/block-theme-content.js +10 -2
  373. package/src/components/template-actions-panel/index.js +0 -15
  374. package/src/components/upload-progress-snackbar/README.md +26 -0
  375. package/src/components/upload-progress-snackbar/index.js +216 -0
  376. package/src/components/upload-progress-snackbar/stories/index.story.tsx +85 -0
  377. package/src/components/upload-progress-snackbar/style.scss +30 -0
  378. package/src/components/upload-progress-snackbar/test/index.js +199 -0
  379. package/src/components/upload-progress-snackbar/tracker.js +105 -0
  380. package/src/dataviews/fields/revisions/index.tsx +28 -0
  381. package/src/dataviews/fields/revisions/revisions-view.tsx +59 -0
  382. package/src/dataviews/store/private-actions.ts +27 -6
  383. package/src/private-apis.js +2 -0
  384. package/src/store/private-selectors.js +11 -1
  385. package/src/store/selectors.js +1 -3
  386. package/src/store/test/private-selectors.js +69 -0
  387. package/src/style.scss +2 -1
  388. package/src/utils/media-upload/index.js +27 -0
  389. package/build/components/post-revisions-panel/index.cjs +0 -173
  390. package/build/components/post-revisions-panel/index.cjs.map +0 -7
  391. package/build/components/revision-author-panel/index.cjs.map +0 -7
  392. package/build/components/revision-created-panel/index.cjs +0 -47
  393. package/build/components/revision-created-panel/index.cjs.map +0 -7
  394. package/build-module/components/post-revisions-panel/index.mjs +0 -148
  395. package/build-module/components/post-revisions-panel/index.mjs.map +0 -7
  396. package/build-module/components/revision-author-panel/index.mjs +0 -28
  397. package/build-module/components/revision-author-panel/index.mjs.map +0 -7
  398. package/build-module/components/revision-created-panel/index.mjs +0 -26
  399. package/build-module/components/revision-created-panel/index.mjs.map +0 -7
  400. package/build-types/components/post-revisions-panel/index.d.ts +0 -2
  401. package/build-types/components/post-revisions-panel/index.d.ts.map +0 -1
  402. package/build-types/components/revision-author-panel/index.d.ts +0 -2
  403. package/build-types/components/revision-author-panel/index.d.ts.map +0 -1
  404. package/build-types/components/revision-created-panel/index.d.ts +0 -2
  405. package/build-types/components/revision-created-panel/index.d.ts.map +0 -1
  406. package/src/components/commands/index.native.js +0 -2
  407. package/src/components/deprecated.native.js +0 -47
  408. package/src/components/editor-help/add-blocks.native.js +0 -40
  409. package/src/components/editor-help/customize-blocks.native.js +0 -40
  410. package/src/components/editor-help/help-detail-navigation-screen.native.js +0 -67
  411. package/src/components/editor-help/help-get-support-button.native.js +0 -38
  412. package/src/components/editor-help/help-section-title.native.js +0 -29
  413. package/src/components/editor-help/help-topic-row.native.js +0 -33
  414. package/src/components/editor-help/icon-move-blocks.native.js +0 -10
  415. package/src/components/editor-help/images/add-dark.png +0 -0
  416. package/src/components/editor-help/images/add-dark@2x.png +0 -0
  417. package/src/components/editor-help/images/add-dark@3x.png +0 -0
  418. package/src/components/editor-help/images/add-light.png +0 -0
  419. package/src/components/editor-help/images/add-light@2x.png +0 -0
  420. package/src/components/editor-help/images/add-light@3x.png +0 -0
  421. package/src/components/editor-help/images/block-layout-collage.png +0 -0
  422. package/src/components/editor-help/images/block-layout-collage@2x.png +0 -0
  423. package/src/components/editor-help/images/block-layout-collage@3x.png +0 -0
  424. package/src/components/editor-help/images/build-layouts-dark.png +0 -0
  425. package/src/components/editor-help/images/build-layouts-dark@2x.png +0 -0
  426. package/src/components/editor-help/images/build-layouts-dark@3x.png +0 -0
  427. package/src/components/editor-help/images/build-layouts-light.png +0 -0
  428. package/src/components/editor-help/images/build-layouts-light@2x.png +0 -0
  429. package/src/components/editor-help/images/build-layouts-light@3x.png +0 -0
  430. package/src/components/editor-help/images/drag-and-drop-dark.png +0 -0
  431. package/src/components/editor-help/images/drag-and-drop-dark@2x.png +0 -0
  432. package/src/components/editor-help/images/drag-and-drop-dark@3x.png +0 -0
  433. package/src/components/editor-help/images/drag-and-drop-light.png +0 -0
  434. package/src/components/editor-help/images/drag-and-drop-light@2x.png +0 -0
  435. package/src/components/editor-help/images/drag-and-drop-light@3x.png +0 -0
  436. package/src/components/editor-help/images/edit-media-dark.png +0 -0
  437. package/src/components/editor-help/images/edit-media-dark@2x.png +0 -0
  438. package/src/components/editor-help/images/edit-media-dark@3x.png +0 -0
  439. package/src/components/editor-help/images/edit-media-light.png +0 -0
  440. package/src/components/editor-help/images/edit-media-light@2x.png +0 -0
  441. package/src/components/editor-help/images/edit-media-light@3x.png +0 -0
  442. package/src/components/editor-help/images/embed-media-dark.png +0 -0
  443. package/src/components/editor-help/images/embed-media-dark@2x.png +0 -0
  444. package/src/components/editor-help/images/embed-media-dark@3x.png +0 -0
  445. package/src/components/editor-help/images/embed-media-light.png +0 -0
  446. package/src/components/editor-help/images/embed-media-light@2x.png +0 -0
  447. package/src/components/editor-help/images/embed-media-light@3x.png +0 -0
  448. package/src/components/editor-help/images/move-dark.png +0 -0
  449. package/src/components/editor-help/images/move-dark@2x.png +0 -0
  450. package/src/components/editor-help/images/move-dark@3x.png +0 -0
  451. package/src/components/editor-help/images/move-light.png +0 -0
  452. package/src/components/editor-help/images/move-light@2x.png +0 -0
  453. package/src/components/editor-help/images/move-light@3x.png +0 -0
  454. package/src/components/editor-help/images/options-dark.png +0 -0
  455. package/src/components/editor-help/images/options-dark@2x.png +0 -0
  456. package/src/components/editor-help/images/options-dark@3x.png +0 -0
  457. package/src/components/editor-help/images/options-light.png +0 -0
  458. package/src/components/editor-help/images/options-light@2x.png +0 -0
  459. package/src/components/editor-help/images/options-light@3x.png +0 -0
  460. package/src/components/editor-help/images/rich-text-dark.png +0 -0
  461. package/src/components/editor-help/images/rich-text-dark@2x.png +0 -0
  462. package/src/components/editor-help/images/rich-text-dark@3x.png +0 -0
  463. package/src/components/editor-help/images/rich-text-light.png +0 -0
  464. package/src/components/editor-help/images/rich-text-light@2x.png +0 -0
  465. package/src/components/editor-help/images/rich-text-light@3x.png +0 -0
  466. package/src/components/editor-help/images/settings-dark.png +0 -0
  467. package/src/components/editor-help/images/settings-dark@2x.png +0 -0
  468. package/src/components/editor-help/images/settings-dark@3x.png +0 -0
  469. package/src/components/editor-help/images/settings-light.png +0 -0
  470. package/src/components/editor-help/images/settings-light@2x.png +0 -0
  471. package/src/components/editor-help/images/settings-light@3x.png +0 -0
  472. package/src/components/editor-help/index.native.js +0 -208
  473. package/src/components/editor-help/intro-to-blocks.native.js +0 -91
  474. package/src/components/editor-help/move-blocks.native.js +0 -55
  475. package/src/components/editor-help/remove-blocks.native.js +0 -35
  476. package/src/components/editor-help/style.android.scss +0 -6
  477. package/src/components/editor-help/style.ios.scss +0 -6
  478. package/src/components/editor-help/style.scss +0 -123
  479. package/src/components/editor-help/test/index.native.js +0 -81
  480. package/src/components/editor-help/view-sections.native.js +0 -79
  481. package/src/components/error-boundary/index.native.js +0 -192
  482. package/src/components/error-boundary/style.native.scss +0 -116
  483. package/src/components/index.native.js +0 -15
  484. package/src/components/offline-status/index.native.js +0 -99
  485. package/src/components/offline-status/style.native.scss +0 -28
  486. package/src/components/offline-status/test/index.native.js +0 -108
  487. package/src/components/post-revisions-panel/index.js +0 -161
  488. package/src/components/post-revisions-panel/style.scss +0 -16
  489. package/src/components/post-title/index.native.js +0 -282
  490. package/src/components/post-title/style.native.scss +0 -13
  491. package/src/components/post-title/test/__snapshots__/index.native.js.snap +0 -25
  492. package/src/components/post-title/test/index.native.js +0 -78
  493. package/src/components/provider/index.native.js +0 -497
  494. package/src/components/provider/use-block-editor-settings.native.js +0 -48
  495. package/src/components/revision-author-panel/index.js +0 -36
  496. package/src/components/revision-created-panel/index.js +0 -36
  497. package/src/components/template-part-menu-items/index.native.js +0 -3
  498. package/src/hooks/index.native.js +0 -0
  499. package/src/index.native.js +0 -16
  500. package/src/private-apis.native.js +0 -33
  501. package/src/store/actions.native.js +0 -27
  502. package/src/store/reducer.native.js +0 -94
  503. package/src/store/selectors.native.js +0 -57
  504. package/src/store/test/actions.native.js +0 -16
  505. package/src/store/test/reducer.native.js +0 -36
  506. package/src/store/test/selectors.native.js +0 -28
  507. package/src/utils/index.native.js +0 -6
  508. package/src/utils/media-sideload/index.native.js +0 -1
  509. package/src/utils/media-upload/index.native.js +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sidebar/dataform-post-summary.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { DataForm } from '@wordpress/dataviews';\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { useViewConfig } from '@wordpress/views';\n\n/**\n * Internal dependencies\n */\nimport PostCardPanel from '../post-card-panel';\nimport PostPanelSection from '../post-panel-section';\nimport { store as editorStore } from '../../store';\nimport PostTrash from '../post-trash';\nimport usePostFields from '../post-fields';\nimport { usePostTemplatePanelMode } from '../post-template/hooks';\n\nconst EMPTY_FORM = { layout: { type: 'panel' }, fields: [] };\n\nexport default function DataFormPostSummary( { onActionPerformed } ) {\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getCurrentPostType, getCurrentPostId } = select( editorStore );\n\t\treturn {\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t};\n\t}, [] );\n\tconst { form: formConfig } = useViewConfig( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t} );\n\tconst form = formConfig ?? EMPTY_FORM;\n\tconst record = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! postType || ! postId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn select( coreDataStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst templatePanelMode = usePostTemplatePanelMode();\n\n\tconst availableTemplates = useSelect( ( select ) => {\n\t\tif ( select( coreDataStore ).getCurrentTheme()?.is_block_theme ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\tselect( editorStore ).getEditorSettings().availableTemplates ?? {}\n\t\t);\n\t}, [] );\n\n\t// Augment record only when needed(not a block theme with available templates).\n\tconst augmentedRecord = useMemo( () => {\n\t\tif ( ! record || ! availableTemplates ) {\n\t\t\treturn record;\n\t\t}\n\t\treturn {\n\t\t\t...record,\n\t\t\tavailable_templates: availableTemplates,\n\t\t};\n\t}, [ record, availableTemplates ] );\n\n\tconst { editEntityRecord } = useDispatch( coreDataStore );\n\n\tconst _fields = usePostFields( { postType } );\n\tconst fields = useMemo(\n\t\t() =>\n\t\t\t_fields\n\t\t\t\t?.map( ( field ) => {\n\t\t\t\t\tif ( field.id === 'status' ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...field,\n\t\t\t\t\t\t\telements: field.elements.filter(\n\t\t\t\t\t\t\t\t( element ) => element.value !== 'trash'\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\tif ( field.id === 'template' ) {\n\t\t\t\t\t\t// `usePostTemplatePanelMode` is reused in the Post Template panel to match\n\t\t\t\t\t\t// the existing behavior. If the panel rendered nothing we should exclude the\n\t\t\t\t\t\t// template field from the form.\n\t\t\t\t\t\tif ( ! templatePanelMode ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// In classic themes without available templates we need to make the field read-only.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttemplatePanelMode === 'classic' &&\n\t\t\t\t\t\t\tObject.keys( availableTemplates ?? {} ).length === 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...field,\n\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\trender: () => __( 'Default template' ),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn field;\n\t\t\t\t\t}\n\t\t\t\t\treturn field;\n\t\t\t\t} )\n\t\t\t\t.filter( Boolean ),\n\t\t[ _fields, templatePanelMode, availableTemplates ]\n\t);\n\n\tconst onChange = ( edits ) => {\n\t\tif (\n\t\t\tedits.status &&\n\t\t\tedits.status !== 'future' &&\n\t\t\trecord?.status === 'future' &&\n\t\t\tnew Date( record.date ) > new Date()\n\t\t) {\n\t\t\tedits.date = null;\n\t\t}\n\t\tif ( edits.status && edits.status === 'private' && record?.password ) {\n\t\t\tedits.password = '';\n\t\t}\n\n\t\teditEntityRecord( 'postType', postType, postId, edits );\n\t};\n\treturn (\n\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<PostCardPanel\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tpostId={ postId }\n\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t/>\n\t\t\t\t<DataForm\n\t\t\t\t\tdata={ augmentedRecord }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tform={ form }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t<PostTrash onActionPerformed={ onActionPerformed } />\n\t\t\t</VStack>\n\t\t</PostPanelSection>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { DataForm } from '@wordpress/dataviews';\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { useViewConfig } from '@wordpress/views';\n\n/**\n * Internal dependencies\n */\nimport PostCardPanel from '../post-card-panel';\nimport PostPanelSection from '../post-panel-section';\nimport { store as editorStore } from '../../store';\nimport PostTrash from '../post-trash';\nimport usePostFields from '../post-fields';\nimport { usePostTemplatePanelMode } from '../post-template/hooks';\nimport revisionsField from '../../dataviews/fields/revisions';\n\nconst EMPTY_FORM = { layout: { type: 'panel' }, fields: [] };\n\n// Some post types expose summary fields that edit entities other than the one\n// being edited. Keyed by the post type that needs them, the related records are\n// merged into the form data under a `${ kind }_${ name }` namespace key so that\n// a single DataForm can read and write all of them, and edits to those keys are\n// routed back to their entity.\n//\n// The fields themselves are namespace-agnostic: they read and write a plain\n// record. The `fields` list ties each one to the entity it edits, and this\n// component overrides their `getValue`/`setValue`/`render` to operate on the\n// namespaced record, plus their `isVisible` to only show where that record is\n// present (e.g. the `home`/`index` template summary).\n//\n// Currently only `wp_template` uses this: `posts_per_page` and\n// `default_comment_status` target `root/site`, and `posts_page_title` targets\n// the posts page (the `page` assigned as `page_for_posts`).\nconst ENTITIES = {\n\twp_template: {\n\t\troot_site: {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t\tfields: [ 'posts_per_page', 'default_comment_status' ],\n\t\t\tisVisible: ( item ) =>\n\t\t\t\t[ 'home', 'index' ].includes( item.slug ?? '' ),\n\t\t},\n\t\tposttype_page: {\n\t\t\tkind: 'postType',\n\t\t\tname: 'page',\n\t\t\tgetId: ( select ) =>\n\t\t\t\tselect( coreDataStore ).getEditedEntityRecord( 'root', 'site' )\n\t\t\t\t\t?.page_for_posts,\n\t\t\tfields: [ 'posts_page_title' ],\n\t\t\tisVisible: ( item ) =>\n\t\t\t\t[ 'home', 'index' ].includes( item.slug ?? '' ),\n\t\t},\n\t},\n};\n\n// Rebinds a namespace-agnostic field to the namespaced record it edits. Every\n// field callback that receives the form `item` is redirected to the\n// `item[ namespace ]` sub-record so the field operates on its own entity:\n// `getValue`/`setValue`/`render` here, and the rest indirectly because they all\n// funnel through the (remapped) `getValue` (default `render`, `getValueFormatted`\n// and `isValid` range/`custom` validation). Edits are wrapped back under the\n// namespace key. The caller-supplied `isVisible` encodes entity-specific\n// conditions (e.g. only for `home`/`index` templates); the generic guard\n// `!! item[ namespace ]` ensures the field is hidden when the sub-record\n// hasn't been fetched.\nfunction bindFieldToNamespace( field, namespace, isVisible = () => true ) {\n\tconst subItem = ( item ) => item?.[ namespace ] ?? {};\n\treturn {\n\t\t...field,\n\t\tgetValue: ( { item } ) =>\n\t\t\tfield.getValue\n\t\t\t\t? field.getValue( { item: subItem( item ) } )\n\t\t\t\t: subItem( item )[ field.id ],\n\t\tsetValue: ( { item, value } ) => ( {\n\t\t\t[ namespace ]: field.setValue( { item: subItem( item ), value } ),\n\t\t} ),\n\t\trender: field.render\n\t\t\t? ( props ) =>\n\t\t\t\t\tfield.render( { ...props, item: subItem( props.item ) } )\n\t\t\t: undefined,\n\t\tisVisible: ( item ) => isVisible( item ) && !! item[ namespace ],\n\t};\n}\n\nexport default function DataFormPostSummary( { onActionPerformed } ) {\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getCurrentPostType, getCurrentPostId } = select( editorStore );\n\t\treturn {\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t};\n\t}, [] );\n\tconst { form: formConfig } = useViewConfig( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t} );\n\tconst form = formConfig ?? EMPTY_FORM;\n\tconst record = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! postType || ! postId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn select( coreDataStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst templatePanelMode = usePostTemplatePanelMode();\n\n\t// Assemble every piece of supplementary data merged into the form `data`\n\t// alongside the post record: read-only editor data that the post's own\n\t// fields consume (e.g. the `template` field's `available_templates` in\n\t// classic themes), and the records of other entities targeted by namespaced\n\t// fields (keyed by `${ kind }_${ name }`) together with the id used to\n\t// persist edits back to each one.\n\tconst { entityData, entityIds, availableTemplates } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, canUser, getCurrentTheme } =\n\t\t\t\tselect( coreDataStore );\n\n\t\t\tconst _availableTemplates = getCurrentTheme()?.is_block_theme\n\t\t\t\t? null\n\t\t\t\t: select( editorStore ).getEditorSettings()\n\t\t\t\t\t\t.availableTemplates ?? {};\n\n\t\t\tconst extra = {};\n\t\t\tconst ids = {};\n\n\t\t\t// Other entities the current post type needs merged into its form.\n\t\t\tfor ( const [ key, entity ] of Object.entries(\n\t\t\t\tENTITIES[ postType ] ?? {}\n\t\t\t) ) {\n\t\t\t\tif (\n\t\t\t\t\t! canUser( 'read', {\n\t\t\t\t\t\tkind: entity.kind,\n\t\t\t\t\t\tname: entity.name,\n\t\t\t\t\t} )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst id = entity.getId ? entity.getId( select ) : undefined;\n\t\t\t\t// Entities resolved through another record need a valid id.\n\t\t\t\tif ( entity.getId && ! id ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\textra[ key ] = getEditedEntityRecord(\n\t\t\t\t\tentity.kind,\n\t\t\t\t\tentity.name,\n\t\t\t\t\tid\n\t\t\t\t);\n\t\t\t\tids[ key ] = id;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tentityData: extra,\n\t\t\t\tentityIds: ids,\n\t\t\t\tavailableTemplates: _availableTemplates,\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t// Merge the supplementary data onto the record only when there is any.\n\tconst data = useMemo( () => {\n\t\tif ( ! record ) {\n\t\t\treturn record;\n\t\t}\n\t\tconst extra = { ...entityData };\n\t\tif ( availableTemplates && Object.keys( availableTemplates ).length ) {\n\t\t\textra.available_templates = availableTemplates;\n\t\t}\n\t\tif ( ! Object.keys( extra ).length ) {\n\t\t\treturn record;\n\t\t}\n\t\treturn { ...record, ...extra };\n\t}, [ record, entityData, availableTemplates ] );\n\n\tconst { editEntityRecord } = useDispatch( coreDataStore );\n\n\t// Map of namespaced field id to the namespace key its entity is merged under.\n\tconst fieldNamespaces = useMemo( () => {\n\t\tconst map = {};\n\t\tfor ( const [ namespace, entity ] of Object.entries(\n\t\t\tENTITIES[ postType ] ?? {}\n\t\t) ) {\n\t\t\tfor ( const id of entity.fields ?? [] ) {\n\t\t\t\tmap[ id ] = namespace;\n\t\t\t}\n\t\t}\n\t\treturn map;\n\t}, [ postType ] );\n\n\tconst _fields = usePostFields( { postType } );\n\tconst fields = useMemo(\n\t\t() =>\n\t\t\t_fields\n\t\t\t\t?.map( ( field ) => {\n\t\t\t\t\tconst namespace = fieldNamespaces[ field.id ];\n\t\t\t\t\tif ( namespace ) {\n\t\t\t\t\t\treturn bindFieldToNamespace(\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tnamespace,\n\t\t\t\t\t\t\tENTITIES[ postType ]?.[ namespace ]?.isVisible\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif ( field.id === 'status' ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...field,\n\t\t\t\t\t\t\telements: field.elements.filter(\n\t\t\t\t\t\t\t\t( element ) => element.value !== 'trash'\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\tif ( field.id === 'template' ) {\n\t\t\t\t\t\t// `usePostTemplatePanelMode` is reused in the Post Template panel to match\n\t\t\t\t\t\t// the existing behavior. If the panel rendered nothing we should exclude the\n\t\t\t\t\t\t// template field from the form.\n\t\t\t\t\t\tif ( ! templatePanelMode ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// In classic themes without available templates we need to make the field read-only.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttemplatePanelMode === 'classic' &&\n\t\t\t\t\t\t\tObject.keys( availableTemplates ?? {} ).length === 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...field,\n\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\trender: () => __( 'Default template' ),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn field;\n\t\t\t\t\t}\n\t\t\t\t\treturn field;\n\t\t\t\t} )\n\t\t\t\t.filter( Boolean )\n\t\t\t\t// Editor-only field, injected here rather than registered\n\t\t\t\t// so it never leaks into the site editor list / quick-edit fields.\n\t\t\t\t.concat( revisionsField ),\n\t\t[\n\t\t\t_fields,\n\t\t\ttemplatePanelMode,\n\t\t\tavailableTemplates,\n\t\t\tfieldNamespaces,\n\t\t\tpostType,\n\t\t]\n\t);\n\n\tconst onChange = ( edits ) => {\n\t\t// Route edits that target another entity (merged in under a namespace)\n\t\t// back to that entity; collect the rest for the post being edited.\n\t\tconst entities = ENTITIES[ postType ] ?? {};\n\t\tconst baseEdits = {};\n\t\tfor ( const [ key, value ] of Object.entries( edits ) ) {\n\t\t\tconst entity = entities[ key ];\n\t\t\tif ( entity ) {\n\t\t\t\teditEntityRecord(\n\t\t\t\t\tentity.kind,\n\t\t\t\t\tentity.name,\n\t\t\t\t\tentityIds[ key ],\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tbaseEdits[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tif ( ! Object.keys( baseEdits ).length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tbaseEdits.status &&\n\t\t\tbaseEdits.status !== 'future' &&\n\t\t\trecord?.status === 'future' &&\n\t\t\tnew Date( record.date ) > new Date()\n\t\t) {\n\t\t\tbaseEdits.date = null;\n\t\t}\n\t\tif (\n\t\t\tbaseEdits.status &&\n\t\t\tbaseEdits.status === 'private' &&\n\t\t\trecord?.password\n\t\t) {\n\t\t\tbaseEdits.password = '';\n\t\t}\n\n\t\teditEntityRecord( 'postType', postType, postId, baseEdits );\n\t};\n\treturn (\n\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<PostCardPanel\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tpostId={ postId }\n\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t/>\n\t\t\t\t<DataForm\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tform={ form }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t<PostTrash onActionPerformed={ onActionPerformed } />\n\t\t\t</VStack>\n\t\t</PostPanelSection>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -4,13 +4,7 @@ import {
4
4
  store as blockEditorStore
5
5
  } from "@wordpress/block-editor";
6
6
  import { useSelect, useDispatch } from "@wordpress/data";
7
- import {
8
- Platform,
9
- useCallback,
10
- useContext,
11
- useEffect,
12
- useRef
13
- } from "@wordpress/element";
7
+ import { useCallback, useContext, useEffect, useRef } from "@wordpress/element";
14
8
  import { isRTL, __, _x } from "@wordpress/i18n";
15
9
  import { drawerLeft, drawerRight } from "@wordpress/icons";
16
10
  import { store as keyboardShortcutsStore } from "@wordpress/keyboard-shortcuts";
@@ -27,7 +21,6 @@ import SidebarHeader from "./header.mjs";
27
21
  import TemplateActionsPanel from "../template-actions-panel/index.mjs";
28
22
  import TemplateContentPanel from "../template-content-panel/index.mjs";
29
23
  import TemplatePartContentPanel from "../template-part-content-panel/index.mjs";
30
- import PostRevisionsPanel from "../post-revisions-panel/index.mjs";
31
24
  import RevisionBlockDiffPanel from "../revision-block-diff/index.mjs";
32
25
  import useAutoSwitchEditorSidebars from "../provider/use-auto-switch-editor-sidebars.mjs";
33
26
  import { sidebars } from "./constants.mjs";
@@ -40,10 +33,7 @@ import {
40
33
  } from "../../store/constants.mjs";
41
34
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
42
35
  var { Tabs } = unlock(componentsPrivateApis);
43
- var SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select({
44
- web: true,
45
- native: false
46
- });
36
+ var SIDEBAR_ACTIVE_BY_DEFAULT = true;
47
37
  var SidebarContent = ({
48
38
  tabName,
49
39
  keyboardShortcut,
@@ -82,16 +72,7 @@ var SidebarContent = ({
82
72
  /* @__PURE__ */ jsx(PostSummary, { onActionPerformed }),
83
73
  /* @__PURE__ */ jsx(PluginDocumentSettingPanel.Slot, {}),
84
74
  /* @__PURE__ */ jsx(TemplateContentPanel, {}),
85
- window?.__experimentalDataFormInspector && [
86
- "post",
87
- "page",
88
- "wp_template",
89
- "wp_template_part",
90
- "wp_block"
91
- ].includes(postType) && /* @__PURE__ */ jsxs(Fragment, { children: [
92
- /* @__PURE__ */ jsx(TemplateActionsPanel, {}),
93
- /* @__PURE__ */ jsx(PostRevisionsPanel, {})
94
- ] }),
75
+ window?.__experimentalDataFormInspector && ["page", "post"].includes(postType) && /* @__PURE__ */ jsx(TemplateActionsPanel, {}),
95
76
  /* @__PURE__ */ jsx(TemplatePartContentPanel, {}),
96
77
  /* @__PURE__ */ jsx(PostTransformPanel, {}),
97
78
  /* @__PURE__ */ jsx(PostTaxonomiesPanel, {}),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sidebar/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n} from '@wordpress/element';\nimport { isRTL, __, _x } from '@wordpress/i18n';\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport PatternOverridesPanel from '../pattern-overrides-panel';\nimport PluginDocumentSettingPanel from '../plugin-document-setting-panel';\nimport PluginSidebar from '../plugin-sidebar';\nimport PostSummary from './post-summary';\nimport PostRevisionSummary from './post-revision-summary';\nimport PostTaxonomiesPanel from '../post-taxonomies/panel';\nimport PostTransformPanel from '../post-transform-panel';\nimport SidebarHeader from './header';\nimport TemplateActionsPanel from '../template-actions-panel';\nimport TemplateContentPanel from '../template-content-panel';\nimport TemplatePartContentPanel from '../template-part-content-panel';\nimport PostRevisionsPanel from '../post-revisions-panel';\nimport RevisionBlockDiffPanel from '../revision-block-diff';\nimport useAutoSwitchEditorSidebars from '../provider/use-auto-switch-editor-sidebars';\nimport { sidebars } from './constants';\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport {\n\tNAVIGATION_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../store/constants';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst SidebarContent = ( {\n\ttabName,\n\tkeyboardShortcut,\n\tonActionPerformed,\n\textraPanels,\n\tpostType,\n} ) => {\n\tconst tabListRef = useRef( null );\n\t// Because `PluginSidebar` renders a `ComplementaryArea`, we\n\t// need to forward the `Tabs` context so it can be passed through the\n\t// underlying slot/fill.\n\tconst tabsContextValue = useContext( Tabs.Context );\n\tconst isRevisionsMode = useSelect( ( select ) => {\n\t\treturn unlock( select( editorStore ) ).isRevisionsMode();\n\t} );\n\n\t// This effect addresses a race condition caused by tabbing from the last\n\t// block in the editor into the settings sidebar. Without this effect, the\n\t// selected tab and browser focus can become separated in an unexpected way\n\t// (e.g the \"block\" tab is focused, but the \"post\" tab is selected).\n\tuseEffect( () => {\n\t\tconst tabsElements = Array.from(\n\t\t\ttabListRef.current?.querySelectorAll( '[role=\"tab\"]' ) || []\n\t\t);\n\t\tconst selectedTabElement = tabsElements.find(\n\t\t\t// We are purposefully using a custom `data-tab-id` attribute here\n\t\t\t// because we don't want rely on any assumptions about `Tabs`\n\t\t\t// component internals.\n\t\t\t( element ) => element.getAttribute( 'data-tab-id' ) === tabName\n\t\t);\n\t\tconst activeElement = selectedTabElement?.ownerDocument.activeElement;\n\t\tconst tabsHasFocus = tabsElements.some( ( element ) => {\n\t\t\treturn activeElement && activeElement.id === element.id;\n\t\t} );\n\t\tif (\n\t\t\ttabsHasFocus &&\n\t\t\tselectedTabElement &&\n\t\t\tselectedTabElement.id !== activeElement?.id\n\t\t) {\n\t\t\tselectedTabElement?.focus();\n\t\t}\n\t}, [ tabName ] );\n\n\tlet tabContent;\n\tif ( isRevisionsMode ) {\n\t\ttabContent = <PostRevisionSummary />;\n\t} else {\n\t\ttabContent = (\n\t\t\t<>\n\t\t\t\t<PostSummary onActionPerformed={ onActionPerformed } />\n\t\t\t\t<PluginDocumentSettingPanel.Slot />\n\t\t\t\t<TemplateContentPanel />\n\t\t\t\t{ window?.__experimentalDataFormInspector &&\n\t\t\t\t\t[\n\t\t\t\t\t\t'post',\n\t\t\t\t\t\t'page',\n\t\t\t\t\t\t'wp_template',\n\t\t\t\t\t\t'wp_template_part',\n\t\t\t\t\t\t'wp_block',\n\t\t\t\t\t].includes( postType ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<TemplateActionsPanel />\n\t\t\t\t\t\t\t<PostRevisionsPanel />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t<TemplatePartContentPanel />\n\t\t\t\t<PostTransformPanel />\n\t\t\t\t<PostTaxonomiesPanel />\n\t\t\t\t<PatternOverridesPanel />\n\t\t\t\t{ extraPanels }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<PluginSidebar\n\t\t\tidentifier={ tabName }\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader ref={ tabListRef } />\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\t// This classname is added so we can apply a corrective negative\n\t\t\t// margin to the panel.\n\t\t\t// see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049\n\t\t\tclassName=\"editor-sidebar__panel\"\n\t\t\theaderClassName=\"editor-sidebar__panel-tabs\"\n\t\t\ttitle={\n\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t_x( 'Settings', 'panel button label' )\n\t\t\t}\n\t\t\ttoggleShortcut={ keyboardShortcut }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel tabId={ sidebars.document } focusable={ false }>\n\t\t\t\t\t{ tabContent }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId={ sidebars.block } focusable={ false }>\n\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t{ isRevisionsMode && <RevisionBlockDiffPanel /> }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs.Context.Provider>\n\t\t</PluginSidebar>\n\t);\n};\n\nconst Sidebar = ( { extraPanels, onActionPerformed } ) => {\n\tuseAutoSwitchEditorSidebars();\n\tconst { tabName, keyboardShortcut, showSummary, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst shortcut = select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/editor/toggle-sidebar' );\n\n\t\t\tconst sidebar =\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea( 'core' );\n\t\t\tconst _isEditorSidebarOpened = [\n\t\t\t\tsidebars.block,\n\t\t\t\tsidebars.document,\n\t\t\t].includes( sidebar );\n\t\t\tlet _tabName = sidebar;\n\t\t\tif ( ! _isEditorSidebarOpened ) {\n\t\t\t\t_tabName = !! select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).getBlockSelectionStart()\n\t\t\t\t\t? sidebars.block\n\t\t\t\t\t: sidebars.document;\n\t\t\t}\n\n\t\t\tconst _postType = select( editorStore ).getCurrentPostType();\n\n\t\t\treturn {\n\t\t\t\ttabName: _tabName,\n\t\t\t\tkeyboardShortcut: shortcut,\n\t\t\t\tshowSummary: ! [\n\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t\tNAVIGATION_POST_TYPE,\n\t\t\t\t].includes( _postType ),\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea( 'core', newSelectedTabId );\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\tselectedTabId={ tabName }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\ttabName={ tabName }\n\t\t\t\tkeyboardShortcut={ keyboardShortcut }\n\t\t\t\tshowSummary={ showSummary }\n\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\textraPanels={ extraPanels }\n\t\t\t\tpostType={ postType }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n};\n\nexport default Sidebar;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useContext, useEffect, useRef } from '@wordpress/element';\nimport { isRTL, __, _x } from '@wordpress/i18n';\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport PatternOverridesPanel from '../pattern-overrides-panel';\nimport PluginDocumentSettingPanel from '../plugin-document-setting-panel';\nimport PluginSidebar from '../plugin-sidebar';\nimport PostSummary from './post-summary';\nimport PostRevisionSummary from './post-revision-summary';\nimport PostTaxonomiesPanel from '../post-taxonomies/panel';\nimport PostTransformPanel from '../post-transform-panel';\nimport SidebarHeader from './header';\nimport TemplateActionsPanel from '../template-actions-panel';\nimport TemplateContentPanel from '../template-content-panel';\nimport TemplatePartContentPanel from '../template-part-content-panel';\nimport RevisionBlockDiffPanel from '../revision-block-diff';\nimport useAutoSwitchEditorSidebars from '../provider/use-auto-switch-editor-sidebars';\nimport { sidebars } from './constants';\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport {\n\tNAVIGATION_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../store/constants';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = true;\n\nconst SidebarContent = ( {\n\ttabName,\n\tkeyboardShortcut,\n\tonActionPerformed,\n\textraPanels,\n\tpostType,\n} ) => {\n\tconst tabListRef = useRef( null );\n\t// Because `PluginSidebar` renders a `ComplementaryArea`, we\n\t// need to forward the `Tabs` context so it can be passed through the\n\t// underlying slot/fill.\n\tconst tabsContextValue = useContext( Tabs.Context );\n\tconst isRevisionsMode = useSelect( ( select ) => {\n\t\treturn unlock( select( editorStore ) ).isRevisionsMode();\n\t} );\n\n\t// This effect addresses a race condition caused by tabbing from the last\n\t// block in the editor into the settings sidebar. Without this effect, the\n\t// selected tab and browser focus can become separated in an unexpected way\n\t// (e.g the \"block\" tab is focused, but the \"post\" tab is selected).\n\tuseEffect( () => {\n\t\tconst tabsElements = Array.from(\n\t\t\ttabListRef.current?.querySelectorAll( '[role=\"tab\"]' ) || []\n\t\t);\n\t\tconst selectedTabElement = tabsElements.find(\n\t\t\t// We are purposefully using a custom `data-tab-id` attribute here\n\t\t\t// because we don't want rely on any assumptions about `Tabs`\n\t\t\t// component internals.\n\t\t\t( element ) => element.getAttribute( 'data-tab-id' ) === tabName\n\t\t);\n\t\tconst activeElement = selectedTabElement?.ownerDocument.activeElement;\n\t\tconst tabsHasFocus = tabsElements.some( ( element ) => {\n\t\t\treturn activeElement && activeElement.id === element.id;\n\t\t} );\n\t\tif (\n\t\t\ttabsHasFocus &&\n\t\t\tselectedTabElement &&\n\t\t\tselectedTabElement.id !== activeElement?.id\n\t\t) {\n\t\t\tselectedTabElement?.focus();\n\t\t}\n\t}, [ tabName ] );\n\n\tlet tabContent;\n\tif ( isRevisionsMode ) {\n\t\ttabContent = <PostRevisionSummary />;\n\t} else {\n\t\ttabContent = (\n\t\t\t<>\n\t\t\t\t<PostSummary onActionPerformed={ onActionPerformed } />\n\t\t\t\t<PluginDocumentSettingPanel.Slot />\n\t\t\t\t<TemplateContentPanel />\n\t\t\t\t{ window?.__experimentalDataFormInspector &&\n\t\t\t\t\t[ 'page', 'post' ].includes( postType ) && (\n\t\t\t\t\t\t<TemplateActionsPanel />\n\t\t\t\t\t) }\n\t\t\t\t<TemplatePartContentPanel />\n\t\t\t\t<PostTransformPanel />\n\t\t\t\t<PostTaxonomiesPanel />\n\t\t\t\t<PatternOverridesPanel />\n\t\t\t\t{ extraPanels }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<PluginSidebar\n\t\t\tidentifier={ tabName }\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader ref={ tabListRef } />\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\t// This classname is added so we can apply a corrective negative\n\t\t\t// margin to the panel.\n\t\t\t// see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049\n\t\t\tclassName=\"editor-sidebar__panel\"\n\t\t\theaderClassName=\"editor-sidebar__panel-tabs\"\n\t\t\ttitle={\n\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t_x( 'Settings', 'panel button label' )\n\t\t\t}\n\t\t\ttoggleShortcut={ keyboardShortcut }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel tabId={ sidebars.document } focusable={ false }>\n\t\t\t\t\t{ tabContent }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId={ sidebars.block } focusable={ false }>\n\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t{ isRevisionsMode && <RevisionBlockDiffPanel /> }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs.Context.Provider>\n\t\t</PluginSidebar>\n\t);\n};\n\nconst Sidebar = ( { extraPanels, onActionPerformed } ) => {\n\tuseAutoSwitchEditorSidebars();\n\tconst { tabName, keyboardShortcut, showSummary, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst shortcut = select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/editor/toggle-sidebar' );\n\n\t\t\tconst sidebar =\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea( 'core' );\n\t\t\tconst _isEditorSidebarOpened = [\n\t\t\t\tsidebars.block,\n\t\t\t\tsidebars.document,\n\t\t\t].includes( sidebar );\n\t\t\tlet _tabName = sidebar;\n\t\t\tif ( ! _isEditorSidebarOpened ) {\n\t\t\t\t_tabName = !! select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).getBlockSelectionStart()\n\t\t\t\t\t? sidebars.block\n\t\t\t\t\t: sidebars.document;\n\t\t\t}\n\n\t\t\tconst _postType = select( editorStore ).getCurrentPostType();\n\n\t\t\treturn {\n\t\t\t\ttabName: _tabName,\n\t\t\t\tkeyboardShortcut: shortcut,\n\t\t\t\tshowSummary: ! [\n\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t\tNAVIGATION_POST_TYPE,\n\t\t\t\t].includes( _postType ),\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea( 'core', newSelectedTabId );\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\tselectedTabId={ tabName }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\ttabName={ tabName }\n\t\t\t\tkeyboardShortcut={ keyboardShortcut }\n\t\t\t\tshowSummary={ showSummary }\n\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\textraPanels={ extraPanels }\n\t\t\t\tpostType={ postType }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n};\n\nexport default Sidebar;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -8,21 +8,19 @@ import { __ } from "@wordpress/i18n";
8
8
  import { addQueryArgs } from "@wordpress/url";
9
9
  import { store as editorStore } from "../../store/index.mjs";
10
10
  import { unlock } from "../../lock-unlock.mjs";
11
- import RevisionAuthorPanel from "../revision-author-panel/index.mjs";
12
- import RevisionCreatedPanel from "../revision-created-panel/index.mjs";
13
- import { PostContentInformationUI } from "../post-content-information/index.mjs";
14
- import RevisionFieldsDiffPanel from "../revision-fields-diff/index.mjs";
11
+ import PostRevisionsTimeline from "../post-revisions-timeline/index.mjs";
15
12
  import PostPanelSection from "../post-panel-section/index.mjs";
16
13
  import PostCardPanel from "../post-card-panel/index.mjs";
14
+ import RevisionFieldsDiffPanel from "../revision-fields-diff/index.mjs";
17
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
18
16
  function PostRevisionSummary() {
19
- const { revisionId, postId, postContent } = useSelect((select) => {
20
- const { getCurrentRevisionId, getCurrentRevision, getCurrentPostId } = unlock(select(editorStore));
21
- const _revisionId = getCurrentRevisionId();
17
+ const { revisionId, postId } = useSelect((select) => {
18
+ const { getCurrentRevisionId, getCurrentPostId } = unlock(
19
+ select(editorStore)
20
+ );
22
21
  return {
23
- revisionId: _revisionId,
24
- postId: getCurrentPostId(),
25
- postContent: _revisionId && getCurrentRevision()?.content?.raw
22
+ revisionId: getCurrentRevisionId(),
23
+ postId: getCurrentPostId()
26
24
  };
27
25
  }, []);
28
26
  if (!revisionId) {
@@ -31,10 +29,6 @@ function PostRevisionSummary() {
31
29
  return /* @__PURE__ */ jsxs(Fragment, { children: [
32
30
  /* @__PURE__ */ jsx(PostPanelSection, { className: "editor-post-summary", children: /* @__PURE__ */ jsxs(VStack, { spacing: 4, children: [
33
31
  /* @__PURE__ */ jsx(PostCardPanel, { postId, hideActions: true }),
34
- /* @__PURE__ */ jsxs(VStack, { spacing: 1, children: [
35
- /* @__PURE__ */ jsx(PostContentInformationUI, { postContent }),
36
- /* @__PURE__ */ jsx(RevisionCreatedPanel, {})
37
- ] }),
38
32
  /* @__PURE__ */ jsx(
39
33
  ExternalLink,
40
34
  {
@@ -43,10 +37,10 @@ function PostRevisionSummary() {
43
37
  }),
44
38
  children: __("Open classic revisions screen")
45
39
  }
46
- ),
47
- /* @__PURE__ */ jsx(RevisionAuthorPanel, {})
40
+ )
48
41
  ] }) }),
49
- /* @__PURE__ */ jsx(RevisionFieldsDiffPanel, {})
42
+ /* @__PURE__ */ jsx(RevisionFieldsDiffPanel, {}),
43
+ /* @__PURE__ */ jsx(PostRevisionsTimeline, {})
50
44
  ] });
51
45
  }
52
46
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sidebar/post-revision-summary.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tExternalLink,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport RevisionAuthorPanel from '../revision-author-panel';\nimport RevisionCreatedPanel from '../revision-created-panel';\nimport { PostContentInformationUI } from '../post-content-information';\nimport RevisionFieldsDiffPanel from '../revision-fields-diff';\nimport PostPanelSection from '../post-panel-section';\nimport PostCardPanel from '../post-card-panel';\n\nexport default function PostRevisionSummary() {\n\tconst { revisionId, postId, postContent } = useSelect( ( select ) => {\n\t\tconst { getCurrentRevisionId, getCurrentRevision, getCurrentPostId } =\n\t\t\tunlock( select( editorStore ) );\n\t\tconst _revisionId = getCurrentRevisionId();\n\t\treturn {\n\t\t\trevisionId: _revisionId,\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostContent: _revisionId && getCurrentRevision()?.content?.raw,\n\t\t};\n\t}, [] );\n\tif ( ! revisionId ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<PostCardPanel postId={ postId } hideActions />\n\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t<PostContentInformationUI postContent={ postContent } />\n\t\t\t\t\t\t<RevisionCreatedPanel />\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\thref={ addQueryArgs( 'revision.php', {\n\t\t\t\t\t\t\trevision: revisionId,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Open classic revisions screen' ) }\n\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t<RevisionAuthorPanel />\n\t\t\t\t</VStack>\n\t\t\t</PostPanelSection>\n\t\t\t<RevisionFieldsDiffPanel />\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";AAGA,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA,wBAAwB;AAAA,OAClB;AACP,SAAS,UAAU;AACnB,SAAS,oBAAoB;AAK7B,SAAS,SAAS,mBAAmB;AACrC,SAAS,cAAc;AACvB,OAAO,yBAAyB;AAChC,OAAO,0BAA0B;AACjC,SAAS,gCAAgC;AACzC,OAAO,6BAA6B;AACpC,OAAO,sBAAsB;AAC7B,OAAO,mBAAmB;AAiBxB,mBAGG,KACA,YAJH;AAfa,SAAR,sBAAuC;AAC7C,QAAM,EAAE,YAAY,QAAQ,YAAY,IAAI,UAAW,CAAE,WAAY;AACpE,UAAM,EAAE,sBAAsB,oBAAoB,iBAAiB,IAClE,OAAQ,OAAQ,WAAY,CAAE;AAC/B,UAAM,cAAc,qBAAqB;AACzC,WAAO;AAAA,MACN,YAAY;AAAA,MACZ,QAAQ,iBAAiB;AAAA,MACzB,aAAa,eAAe,mBAAmB,GAAG,SAAS;AAAA,IAC5D;AAAA,EACD,GAAG,CAAC,CAAE;AACN,MAAK,CAAE,YAAa;AACnB,WAAO;AAAA,EACR;AACA,SACC,iCACC;AAAA,wBAAC,oBAAiB,WAAU,uBAC3B,+BAAC,UAAO,SAAU,GACjB;AAAA,0BAAC,iBAAc,QAAkB,aAAW,MAAC;AAAA,MAC7C,qBAAC,UAAO,SAAU,GACjB;AAAA,4BAAC,4BAAyB,aAA4B;AAAA,QACtD,oBAAC,wBAAqB;AAAA,SACvB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA,MAAO,aAAc,gBAAgB;AAAA,YACpC,UAAU;AAAA,UACX,CAAE;AAAA,UAEA,aAAI,+BAAgC;AAAA;AAAA,MACvC;AAAA,MACA,oBAAC,uBAAoB;AAAA,OACtB,GACD;AAAA,IACA,oBAAC,2BAAwB;AAAA,KAC1B;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tExternalLink,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport PostRevisionsTimeline from '../post-revisions-timeline';\nimport PostPanelSection from '../post-panel-section';\nimport PostCardPanel from '../post-card-panel';\nimport RevisionFieldsDiffPanel from '../revision-fields-diff';\n\nexport default function PostRevisionSummary() {\n\tconst { revisionId, postId } = useSelect( ( select ) => {\n\t\tconst { getCurrentRevisionId, getCurrentPostId } = unlock(\n\t\t\tselect( editorStore )\n\t\t);\n\t\treturn {\n\t\t\trevisionId: getCurrentRevisionId(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t};\n\t}, [] );\n\tif ( ! revisionId ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<PostCardPanel postId={ postId } hideActions />\n\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\thref={ addQueryArgs( 'revision.php', {\n\t\t\t\t\t\t\trevision: revisionId,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Open classic revisions screen' ) }\n\t\t\t\t\t</ExternalLink>\n\t\t\t\t</VStack>\n\t\t\t</PostPanelSection>\n\t\t\t<RevisionFieldsDiffPanel />\n\t\t\t<PostRevisionsTimeline />\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA,wBAAwB;AAAA,OAClB;AACP,SAAS,UAAU;AACnB,SAAS,oBAAoB;AAK7B,SAAS,SAAS,mBAAmB;AACrC,SAAS,cAAc;AACvB,OAAO,2BAA2B;AAClC,OAAO,sBAAsB;AAC7B,OAAO,mBAAmB;AAC1B,OAAO,6BAA6B;AAgBlC,mBAGG,KADD,YAFF;AAda,SAAR,sBAAuC;AAC7C,QAAM,EAAE,YAAY,OAAO,IAAI,UAAW,CAAE,WAAY;AACvD,UAAM,EAAE,sBAAsB,iBAAiB,IAAI;AAAA,MAClD,OAAQ,WAAY;AAAA,IACrB;AACA,WAAO;AAAA,MACN,YAAY,qBAAqB;AAAA,MACjC,QAAQ,iBAAiB;AAAA,IAC1B;AAAA,EACD,GAAG,CAAC,CAAE;AACN,MAAK,CAAE,YAAa;AACnB,WAAO;AAAA,EACR;AACA,SACC,iCACC;AAAA,wBAAC,oBAAiB,WAAU,uBAC3B,+BAAC,UAAO,SAAU,GACjB;AAAA,0BAAC,iBAAc,QAAkB,aAAW,MAAC;AAAA,MAC7C;AAAA,QAAC;AAAA;AAAA,UACA,MAAO,aAAc,gBAAgB;AAAA,YACpC,UAAU;AAAA,UACX,CAAE;AAAA,UAEA,aAAI,+BAAgC;AAAA;AAAA,MACvC;AAAA,OACD,GACD;AAAA,IACA,oBAAC,2BAAwB;AAAA,IACzB,oBAAC,yBAAsB;AAAA,KACxB;AAEF;",
6
6
  "names": []
7
7
  }
@@ -31,7 +31,7 @@ function PostSummary({ onActionPerformed }) {
31
31
  (select) => select(editorStore).getCurrentPostType(),
32
32
  []
33
33
  );
34
- if (window?.__experimentalDataFormInspector && ["page", "post"].includes(postType)) {
34
+ if (window?.__experimentalDataFormInspector && ["page", "post", "wp_template"].includes(postType)) {
35
35
  return /* @__PURE__ */ jsx(DataFormPostSummary, { onActionPerformed });
36
36
  }
37
37
  return /* @__PURE__ */ jsx(ClassicPostSummary, { onActionPerformed });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sidebar/post-summary.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DataFormPostSummary from './dataform-post-summary';\nimport PluginPostStatusInfo from '../plugin-post-status-info';\nimport PostAuthorPanel from '../post-author/panel';\nimport PostCardPanel from '../post-card-panel';\nimport PostContentInformation from '../post-content-information';\nimport PageAttributesPanel from '../page-attributes/panel';\nimport PostDiscussionPanel from '../post-discussion/panel';\nimport { PrivatePostExcerptPanel as PostExcerptPanel } from '../post-excerpt/panel';\nimport PostFeaturedImagePanel from '../post-featured-image/panel';\nimport PostFormatPanel from '../post-format/panel';\nimport PostLastEditedPanel from '../post-last-edited-panel';\nimport PostPanelSection from '../post-panel-section';\nimport PostSchedulePanel from '../post-schedule/panel';\nimport PostStatusPanel from '../post-status';\nimport PostSyncStatus from '../post-sync-status';\nimport PostTemplatePanel from '../post-template/panel';\nimport PostURLPanel from '../post-url/panel';\nimport BlogTitle from '../blog-title';\nimport PostsPerPage from '../posts-per-page';\nimport SiteDiscussion from '../site-discussion';\nimport { store as editorStore } from '../../store';\nimport { PrivatePostLastRevision } from '../post-last-revision';\nimport PostTrash from '../post-trash';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-status';\n\nexport default function PostSummary( { onActionPerformed } ) {\n\tconst postType = useSelect(\n\t\t( select ) => select( editorStore ).getCurrentPostType(),\n\t\t[]\n\t);\n\tif (\n\t\twindow?.__experimentalDataFormInspector &&\n\t\t[ 'page', 'post' ].includes( postType )\n\t) {\n\t\treturn <DataFormPostSummary onActionPerformed={ onActionPerformed } />;\n\t}\n\treturn <ClassicPostSummary onActionPerformed={ onActionPerformed } />;\n}\n\nfunction ClassicPostSummary( { onActionPerformed } ) {\n\tconst { isRemovedPostStatusPanel, postType, postId } = useSelect(\n\t\t( select ) => {\n\t\t\t// We use isEditorPanelRemoved to hide the panel if it was programmatically removed. We do\n\t\t\t// not use isEditorPanelEnabled since this panel should not be disabled through the UI.\n\t\t\tconst {\n\t\t\t\tisEditorPanelRemoved,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPostId,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tisRemovedPostStatusPanel: isEditorPanelRemoved( PANEL_NAME ),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\treturn (\n\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t<PluginPostStatusInfo.Slot>\n\t\t\t\t{ ( fills ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t<PostCardPanel\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PostFeaturedImagePanel withPanelBody={ false } />\n\t\t\t\t\t\t\t<PostExcerptPanel />\n\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<PostContentInformation />\n\t\t\t\t\t\t\t\t<PostLastEditedPanel />\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t{ ! isRemovedPostStatusPanel && (\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t\t\t<PostStatusPanel />\n\t\t\t\t\t\t\t\t\t\t<PostSchedulePanel />\n\t\t\t\t\t\t\t\t\t\t<PostURLPanel />\n\t\t\t\t\t\t\t\t\t\t<PostAuthorPanel />\n\t\t\t\t\t\t\t\t\t\t<PostTemplatePanel />\n\t\t\t\t\t\t\t\t\t\t<PostDiscussionPanel />\n\t\t\t\t\t\t\t\t\t\t<PrivatePostLastRevision />\n\t\t\t\t\t\t\t\t\t\t<PageAttributesPanel />\n\t\t\t\t\t\t\t\t\t\t<PostSyncStatus />\n\t\t\t\t\t\t\t\t\t\t<BlogTitle />\n\t\t\t\t\t\t\t\t\t\t<PostsPerPage />\n\t\t\t\t\t\t\t\t\t\t<SiteDiscussion />\n\t\t\t\t\t\t\t\t\t\t<PostFormatPanel />\n\t\t\t\t\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t<PostTrash\n\t\t\t\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PluginPostStatusInfo.Slot>\n\t\t</PostPanelSection>\n\t);\n}\n"],
5
- "mappings": ";AAGA,SAAS,wBAAwB,cAAc;AAC/C,SAAS,iBAAiB;AAK1B,OAAO,yBAAyB;AAChC,OAAO,0BAA0B;AACjC,OAAO,qBAAqB;AAC5B,OAAO,mBAAmB;AAC1B,OAAO,4BAA4B;AACnC,OAAO,yBAAyB;AAChC,OAAO,yBAAyB;AAChC,SAAS,2BAA2B,wBAAwB;AAC5D,OAAO,4BAA4B;AACnC,OAAO,qBAAqB;AAC5B,OAAO,yBAAyB;AAChC,OAAO,sBAAsB;AAC7B,OAAO,uBAAuB;AAC9B,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAC9B,OAAO,kBAAkB;AACzB,OAAO,eAAe;AACtB,OAAO,kBAAkB;AACzB,OAAO,oBAAoB;AAC3B,SAAS,SAAS,mBAAmB;AACrC,SAAS,+BAA+B;AACxC,OAAO,eAAe;AAgBb,SA2BJ,UA3BI,KAoCF,YApCE;AAXT,IAAM,aAAa;AAEJ,SAAR,YAA8B,EAAE,kBAAkB,GAAI;AAC5D,QAAM,WAAW;AAAA,IAChB,CAAE,WAAY,OAAQ,WAAY,EAAE,mBAAmB;AAAA,IACvD,CAAC;AAAA,EACF;AACA,MACC,QAAQ,mCACR,CAAE,QAAQ,MAAO,EAAE,SAAU,QAAS,GACrC;AACD,WAAO,oBAAC,uBAAoB,mBAAwC;AAAA,EACrE;AACA,SAAO,oBAAC,sBAAmB,mBAAwC;AACpE;AAEA,SAAS,mBAAoB,EAAE,kBAAkB,GAAI;AACpD,QAAM,EAAE,0BAA0B,UAAU,OAAO,IAAI;AAAA,IACtD,CAAE,WAAY;AAGb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,WAAY;AACxB,aAAO;AAAA,QACN,0BAA0B,qBAAsB,UAAW;AAAA,QAC3D,UAAU,mBAAmB;AAAA,QAC7B,QAAQ,iBAAiB;AAAA,MAC1B;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AACA,SACC,oBAAC,oBAAiB,WAAU,uBAC3B,8BAAC,qBAAqB,MAArB,EACE,WAAE,UACH,gCACC,+BAAC,UAAO,SAAU,GACjB;AAAA;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IACA,oBAAC,0BAAuB,eAAgB,OAAQ;AAAA,IAChD,oBAAC,oBAAiB;AAAA,IAClB,qBAAC,UAAO,SAAU,GACjB;AAAA,0BAAC,0BAAuB;AAAA,MACxB,oBAAC,uBAAoB;AAAA,OACtB;AAAA,IACE,CAAE,4BACH,qBAAC,UAAO,SAAU,GACjB;AAAA,2BAAC,UAAO,SAAU,GACjB;AAAA,4BAAC,mBAAgB;AAAA,QACjB,oBAAC,qBAAkB;AAAA,QACnB,oBAAC,gBAAa;AAAA,QACd,oBAAC,mBAAgB;AAAA,QACjB,oBAAC,qBAAkB;AAAA,QACnB,oBAAC,uBAAoB;AAAA,QACrB,oBAAC,2BAAwB;AAAA,QACzB,oBAAC,uBAAoB;AAAA,QACrB,oBAAC,kBAAe;AAAA,QAChB,oBAAC,aAAU;AAAA,QACX,oBAAC,gBAAa;AAAA,QACd,oBAAC,kBAAe;AAAA,QAChB,oBAAC,mBAAgB;AAAA,QACf;AAAA,SACH;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA;AAAA;AAAA,MACD;AAAA,OACD;AAAA,KAEF,GACD,GAEF,GACD;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DataFormPostSummary from './dataform-post-summary';\nimport PluginPostStatusInfo from '../plugin-post-status-info';\nimport PostAuthorPanel from '../post-author/panel';\nimport PostCardPanel from '../post-card-panel';\nimport PostContentInformation from '../post-content-information';\nimport PageAttributesPanel from '../page-attributes/panel';\nimport PostDiscussionPanel from '../post-discussion/panel';\nimport { PrivatePostExcerptPanel as PostExcerptPanel } from '../post-excerpt/panel';\nimport PostFeaturedImagePanel from '../post-featured-image/panel';\nimport PostFormatPanel from '../post-format/panel';\nimport PostLastEditedPanel from '../post-last-edited-panel';\nimport PostPanelSection from '../post-panel-section';\nimport PostSchedulePanel from '../post-schedule/panel';\nimport PostStatusPanel from '../post-status';\nimport PostSyncStatus from '../post-sync-status';\nimport PostTemplatePanel from '../post-template/panel';\nimport PostURLPanel from '../post-url/panel';\nimport BlogTitle from '../blog-title';\nimport PostsPerPage from '../posts-per-page';\nimport SiteDiscussion from '../site-discussion';\nimport { store as editorStore } from '../../store';\nimport { PrivatePostLastRevision } from '../post-last-revision';\nimport PostTrash from '../post-trash';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-status';\n\nexport default function PostSummary( { onActionPerformed } ) {\n\tconst postType = useSelect(\n\t\t( select ) => select( editorStore ).getCurrentPostType(),\n\t\t[]\n\t);\n\tif (\n\t\twindow?.__experimentalDataFormInspector &&\n\t\t[ 'page', 'post', 'wp_template' ].includes( postType )\n\t) {\n\t\treturn <DataFormPostSummary onActionPerformed={ onActionPerformed } />;\n\t}\n\treturn <ClassicPostSummary onActionPerformed={ onActionPerformed } />;\n}\n\nfunction ClassicPostSummary( { onActionPerformed } ) {\n\tconst { isRemovedPostStatusPanel, postType, postId } = useSelect(\n\t\t( select ) => {\n\t\t\t// We use isEditorPanelRemoved to hide the panel if it was programmatically removed. We do\n\t\t\t// not use isEditorPanelEnabled since this panel should not be disabled through the UI.\n\t\t\tconst {\n\t\t\t\tisEditorPanelRemoved,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPostId,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tisRemovedPostStatusPanel: isEditorPanelRemoved( PANEL_NAME ),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\treturn (\n\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t<PluginPostStatusInfo.Slot>\n\t\t\t\t{ ( fills ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t<PostCardPanel\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PostFeaturedImagePanel withPanelBody={ false } />\n\t\t\t\t\t\t\t<PostExcerptPanel />\n\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<PostContentInformation />\n\t\t\t\t\t\t\t\t<PostLastEditedPanel />\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t{ ! isRemovedPostStatusPanel && (\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t\t\t<PostStatusPanel />\n\t\t\t\t\t\t\t\t\t\t<PostSchedulePanel />\n\t\t\t\t\t\t\t\t\t\t<PostURLPanel />\n\t\t\t\t\t\t\t\t\t\t<PostAuthorPanel />\n\t\t\t\t\t\t\t\t\t\t<PostTemplatePanel />\n\t\t\t\t\t\t\t\t\t\t<PostDiscussionPanel />\n\t\t\t\t\t\t\t\t\t\t<PrivatePostLastRevision />\n\t\t\t\t\t\t\t\t\t\t<PageAttributesPanel />\n\t\t\t\t\t\t\t\t\t\t<PostSyncStatus />\n\t\t\t\t\t\t\t\t\t\t<BlogTitle />\n\t\t\t\t\t\t\t\t\t\t<PostsPerPage />\n\t\t\t\t\t\t\t\t\t\t<SiteDiscussion />\n\t\t\t\t\t\t\t\t\t\t<PostFormatPanel />\n\t\t\t\t\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t<PostTrash\n\t\t\t\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PluginPostStatusInfo.Slot>\n\t\t</PostPanelSection>\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,wBAAwB,cAAc;AAC/C,SAAS,iBAAiB;AAK1B,OAAO,yBAAyB;AAChC,OAAO,0BAA0B;AACjC,OAAO,qBAAqB;AAC5B,OAAO,mBAAmB;AAC1B,OAAO,4BAA4B;AACnC,OAAO,yBAAyB;AAChC,OAAO,yBAAyB;AAChC,SAAS,2BAA2B,wBAAwB;AAC5D,OAAO,4BAA4B;AACnC,OAAO,qBAAqB;AAC5B,OAAO,yBAAyB;AAChC,OAAO,sBAAsB;AAC7B,OAAO,uBAAuB;AAC9B,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAC9B,OAAO,kBAAkB;AACzB,OAAO,eAAe;AACtB,OAAO,kBAAkB;AACzB,OAAO,oBAAoB;AAC3B,SAAS,SAAS,mBAAmB;AACrC,SAAS,+BAA+B;AACxC,OAAO,eAAe;AAgBb,SA2BJ,UA3BI,KAoCF,YApCE;AAXT,IAAM,aAAa;AAEJ,SAAR,YAA8B,EAAE,kBAAkB,GAAI;AAC5D,QAAM,WAAW;AAAA,IAChB,CAAE,WAAY,OAAQ,WAAY,EAAE,mBAAmB;AAAA,IACvD,CAAC;AAAA,EACF;AACA,MACC,QAAQ,mCACR,CAAE,QAAQ,QAAQ,aAAc,EAAE,SAAU,QAAS,GACpD;AACD,WAAO,oBAAC,uBAAoB,mBAAwC;AAAA,EACrE;AACA,SAAO,oBAAC,sBAAmB,mBAAwC;AACpE;AAEA,SAAS,mBAAoB,EAAE,kBAAkB,GAAI;AACpD,QAAM,EAAE,0BAA0B,UAAU,OAAO,IAAI;AAAA,IACtD,CAAE,WAAY;AAGb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,WAAY;AACxB,aAAO;AAAA,QACN,0BAA0B,qBAAsB,UAAW;AAAA,QAC3D,UAAU,mBAAmB;AAAA,QAC7B,QAAQ,iBAAiB;AAAA,MAC1B;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AACA,SACC,oBAAC,oBAAiB,WAAU,uBAC3B,8BAAC,qBAAqB,MAArB,EACE,WAAE,UACH,gCACC,+BAAC,UAAO,SAAU,GACjB;AAAA;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IACA,oBAAC,0BAAuB,eAAgB,OAAQ;AAAA,IAChD,oBAAC,oBAAiB;AAAA,IAClB,qBAAC,UAAO,SAAU,GACjB;AAAA,0BAAC,0BAAuB;AAAA,MACxB,oBAAC,uBAAoB;AAAA,OACtB;AAAA,IACE,CAAE,4BACH,qBAAC,UAAO,SAAU,GACjB;AAAA,2BAAC,UAAO,SAAU,GACjB;AAAA,4BAAC,mBAAgB;AAAA,QACjB,oBAAC,qBAAkB;AAAA,QACnB,oBAAC,gBAAa;AAAA,QACd,oBAAC,mBAAgB;AAAA,QACjB,oBAAC,qBAAkB;AAAA,QACnB,oBAAC,uBAAoB;AAAA,QACrB,oBAAC,2BAAwB;AAAA,QACzB,oBAAC,uBAAoB;AAAA,QACrB,oBAAC,kBAAe;AAAA,QAChB,oBAAC,aAAU;AAAA,QACX,oBAAC,gBAAa;AAAA,QACd,oBAAC,kBAAe;AAAA,QAChB,oBAAC,mBAAgB;AAAA,QACf;AAAA,SACH;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA;AAAA;AAAA,MACD;AAAA,OACD;AAAA,KAEF,GACD,GAEF,GACD;AAEF;",
6
6
  "names": []
7
7
  }
@@ -75,7 +75,7 @@ function getOverviewBlockExamples(colors) {
75
75
  const headingBlock = createBlock("core/heading", {
76
76
  // translators: Typography example. Your local alphabet, numbers and some common special characters.
77
77
  content: __(
78
- `AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789X{(\u2026)},.-<>?!*&:/A@HELFO\u2122\xA9`
78
+ `AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789X{()},.-<>?!*&:/A@HELFO™©`
79
79
  ),
80
80
  level: 1
81
81
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/style-book/examples.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport type { Block } from '@wordpress/blocks';\nimport {\n\tgetBlockType,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type { BlockExample, ColorOrigin, MultiOriginPalettes } from './types';\nimport ColorExamples from './color-examples';\nimport DuotoneExamples from './duotone-examples';\nimport { STYLE_BOOK_COLOR_GROUPS } from './constants';\n\n/**\n * Returns examples color examples for each origin\n * e.g. Core (Default), Theme, and User.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of color block examples.\n */\nfunction getColorExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tif ( ! colors ) {\n\t\treturn [];\n\t}\n\n\tconst examples: BlockExample[] = [];\n\n\tSTYLE_BOOK_COLOR_GROUPS.forEach( ( group ) => {\n\t\tconst palette = colors[ group.type as keyof MultiOriginPalettes ];\n\t\tconst paletteFiltered = Array.isArray( palette )\n\t\t\t? palette.find(\n\t\t\t\t\t( origin: ColorOrigin ) => origin.slug === group.origin\n\t\t\t )\n\t\t\t: undefined;\n\n\t\tif ( paletteFiltered?.[ group.type ] ) {\n\t\t\tconst example: BlockExample = {\n\t\t\t\tname: group.slug,\n\t\t\t\ttitle: group.title,\n\t\t\t\tcategory: 'colors',\n\t\t\t};\n\t\t\tif ( group.type === 'duotones' ) {\n\t\t\t\texample.content = (\n\t\t\t\t\t<DuotoneExamples\n\t\t\t\t\t\tduotones={ paletteFiltered[ group.type ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t} else {\n\t\t\t\texample.content = (\n\t\t\t\t\t<ColorExamples\n\t\t\t\t\t\tcolors={ paletteFiltered[ group.type ] }\n\t\t\t\t\t\ttype={ group.type }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns examples for the overview page.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of block examples.\n */\nfunction getOverviewBlockExamples(\n\tcolors: MultiOriginPalettes\n): BlockExample[] {\n\tconst examples: BlockExample[] = [];\n\n\t// Get theme palette from colors if they exist.\n\tconst themePalette = Array.isArray( colors?.colors )\n\t\t? colors.colors.find(\n\t\t\t\t( origin: ColorOrigin ) => origin.slug === 'theme'\n\t\t )\n\t\t: undefined;\n\n\tif ( themePalette ) {\n\t\tconst themeColorexample: BlockExample = {\n\t\t\tname: 'theme-colors',\n\t\t\ttitle: __( 'Colors' ),\n\t\t\tcategory: 'overview',\n\t\t\tcontent: (\n\t\t\t\t<ColorExamples\n\t\t\t\t\tcolors={ themePalette.colors }\n\t\t\t\t\ttype=\"colors\"\n\t\t\t\t\ttemplateColumns=\"repeat(auto-fill, minmax( 200px, 1fr ))\"\n\t\t\t\t\titemHeight=\"32px\"\n\t\t\t\t/>\n\t\t\t),\n\t\t};\n\n\t\texamples.push( themeColorexample );\n\t}\n\n\t// Get examples for typography blocks.\n\tconst typographyBlockExamples: Block[] = [];\n\n\tif ( getBlockType( 'core/heading' ) ) {\n\t\tconst headingBlock = createBlock( 'core/heading', {\n\t\t\t// translators: Typography example. Your local alphabet, numbers and some common special characters.\n\t\t\tcontent: __(\n\t\t\t\t`AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789X{(\u2026)},.-<>?!*&:/A@HELFO\u2122\u00A9`\n\t\t\t),\n\t\t\tlevel: 1,\n\t\t} );\n\t\ttypographyBlockExamples.push( headingBlock );\n\t}\n\n\tif ( getBlockType( 'core/paragraph' ) ) {\n\t\tconst firstParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`A paragraph in a website refers to a distinct block of text that is used to present and organize information. It is a fundamental unit of content in web design and is typically composed of a group of related sentences or thoughts focused on a particular topic or idea. Paragraphs play a crucial role in improving the readability and user experience of a website. They break down the text into smaller, manageable chunks, allowing readers to scan the content more easily.`\n\t\t\t),\n\t\t} );\n\t\tconst secondParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`Additionally, paragraphs help structure the flow of information and provide logical breaks between different concepts or pieces of information. In terms of formatting, paragraphs in websites are commonly denoted by a vertical gap or indentation between each block of text. This visual separation helps visually distinguish one paragraph from another, creating a clear and organized layout that guides the reader through the content smoothly.`\n\t\t\t),\n\t\t} );\n\n\t\tif ( getBlockType( 'core/group' ) ) {\n\t\t\tconst groupBlock = createBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\tcolumnCount: 2,\n\t\t\t\t\t\tminimumColumnWidth: '12rem',\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tblockGap: '1.5rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[ firstParagraphBlock, secondParagraphBlock ]\n\t\t\t);\n\t\t\ttypographyBlockExamples.push( groupBlock );\n\t\t} else {\n\t\t\ttypographyBlockExamples.push( firstParagraphBlock );\n\t\t}\n\t}\n\n\tif ( !! typographyBlockExamples.length ) {\n\t\texamples.push( {\n\t\t\tname: 'typography',\n\t\t\ttitle: __( 'Typography' ),\n\t\t\tcategory: 'overview',\n\t\t\tblocks: typographyBlockExamples,\n\t\t} );\n\t}\n\n\tconst otherBlockExamples = [\n\t\t'core/image',\n\t\t'core/separator',\n\t\t'core/buttons',\n\t\t'core/pullquote',\n\t\t'core/search',\n\t];\n\n\t// Get examples for other blocks and put them in order of above array.\n\totherBlockExamples.forEach( ( blockName ) => {\n\t\tconst blockType = getBlockType( blockName );\n\t\tif ( blockType && blockType.example ) {\n\t\t\tconst blockExample: BlockExample = {\n\t\t\t\tname: blockName,\n\t\t\t\ttitle: blockType.title,\n\t\t\t\tcategory: 'overview',\n\t\t\t\t/*\n\t\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t\t * demonstrates changes to global styles.\n\t\t\t\t */\n\t\t\t\tblocks: getBlockFromExample( blockName, {\n\t\t\t\t\t...blockType.example,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...blockType.example.attributes,\n\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t\t};\n\t\t\texamples.push( blockExample );\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns a list of examples for registered block types.\n *\n * @param {MultiOriginPalettes} colors Global styles colors grouped by origin e.g. Core, Theme, and User.\n * @return {BlockExample[]} An array of block examples.\n */\nexport function getExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tconst nonHeadingBlockExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports?.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\t/*\n\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t * demonstrates changes to global styles.\n\t\t\t */\n\t\t\tblocks: getBlockFromExample( blockType.name, {\n\t\t\t\t...blockType.example,\n\t\t\t\tattributes: {\n\t\t\t\t\t...blockType.example?.attributes,\n\t\t\t\t\tstyle: undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} ) );\n\tconst isHeadingBlockRegistered = !! getBlockType( 'core/heading' );\n\n\tif ( ! isHeadingBlockRegistered ) {\n\t\treturn nonHeadingBlockExamples;\n\t}\n\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [ 1, 2, 3, 4, 5, 6 ].map( ( level ) => {\n\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\tcontent: sprintf(\n\t\t\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\tlevel\n\t\t\t\t),\n\t\t\t\tlevel,\n\t\t\t} );\n\t\t} ),\n\t};\n\tconst colorExamples = getColorExamples( colors );\n\n\tconst overviewBlockExamples = getOverviewBlockExamples( colors );\n\n\treturn [\n\t\theadingsExample,\n\t\t...colorExamples,\n\t\t...nonHeadingBlockExamples,\n\t\t...overviewBlockExamples,\n\t];\n}\n"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport type { Block } from '@wordpress/blocks';\nimport {\n\tgetBlockType,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type { BlockExample, ColorOrigin, MultiOriginPalettes } from './types';\nimport ColorExamples from './color-examples';\nimport DuotoneExamples from './duotone-examples';\nimport { STYLE_BOOK_COLOR_GROUPS } from './constants';\n\n/**\n * Returns examples color examples for each origin\n * e.g. Core (Default), Theme, and User.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of color block examples.\n */\nfunction getColorExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tif ( ! colors ) {\n\t\treturn [];\n\t}\n\n\tconst examples: BlockExample[] = [];\n\n\tSTYLE_BOOK_COLOR_GROUPS.forEach( ( group ) => {\n\t\tconst palette = colors[ group.type as keyof MultiOriginPalettes ];\n\t\tconst paletteFiltered = Array.isArray( palette )\n\t\t\t? palette.find(\n\t\t\t\t\t( origin: ColorOrigin ) => origin.slug === group.origin\n\t\t\t )\n\t\t\t: undefined;\n\n\t\tif ( paletteFiltered?.[ group.type ] ) {\n\t\t\tconst example: BlockExample = {\n\t\t\t\tname: group.slug,\n\t\t\t\ttitle: group.title,\n\t\t\t\tcategory: 'colors',\n\t\t\t};\n\t\t\tif ( group.type === 'duotones' ) {\n\t\t\t\texample.content = (\n\t\t\t\t\t<DuotoneExamples\n\t\t\t\t\t\tduotones={ paletteFiltered[ group.type ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t} else {\n\t\t\t\texample.content = (\n\t\t\t\t\t<ColorExamples\n\t\t\t\t\t\tcolors={ paletteFiltered[ group.type ] }\n\t\t\t\t\t\ttype={ group.type }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns examples for the overview page.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of block examples.\n */\nfunction getOverviewBlockExamples(\n\tcolors: MultiOriginPalettes\n): BlockExample[] {\n\tconst examples: BlockExample[] = [];\n\n\t// Get theme palette from colors if they exist.\n\tconst themePalette = Array.isArray( colors?.colors )\n\t\t? colors.colors.find(\n\t\t\t\t( origin: ColorOrigin ) => origin.slug === 'theme'\n\t\t )\n\t\t: undefined;\n\n\tif ( themePalette ) {\n\t\tconst themeColorexample: BlockExample = {\n\t\t\tname: 'theme-colors',\n\t\t\ttitle: __( 'Colors' ),\n\t\t\tcategory: 'overview',\n\t\t\tcontent: (\n\t\t\t\t<ColorExamples\n\t\t\t\t\tcolors={ themePalette.colors }\n\t\t\t\t\ttype=\"colors\"\n\t\t\t\t\ttemplateColumns=\"repeat(auto-fill, minmax( 200px, 1fr ))\"\n\t\t\t\t\titemHeight=\"32px\"\n\t\t\t\t/>\n\t\t\t),\n\t\t};\n\n\t\texamples.push( themeColorexample );\n\t}\n\n\t// Get examples for typography blocks.\n\tconst typographyBlockExamples: Block[] = [];\n\n\tif ( getBlockType( 'core/heading' ) ) {\n\t\tconst headingBlock = createBlock( 'core/heading', {\n\t\t\t// translators: Typography example. Your local alphabet, numbers and some common special characters.\n\t\t\tcontent: __(\n\t\t\t\t`AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789X{()},.-<>?!*&:/A@HELFO™©`\n\t\t\t),\n\t\t\tlevel: 1,\n\t\t} );\n\t\ttypographyBlockExamples.push( headingBlock );\n\t}\n\n\tif ( getBlockType( 'core/paragraph' ) ) {\n\t\tconst firstParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`A paragraph in a website refers to a distinct block of text that is used to present and organize information. It is a fundamental unit of content in web design and is typically composed of a group of related sentences or thoughts focused on a particular topic or idea. Paragraphs play a crucial role in improving the readability and user experience of a website. They break down the text into smaller, manageable chunks, allowing readers to scan the content more easily.`\n\t\t\t),\n\t\t} );\n\t\tconst secondParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`Additionally, paragraphs help structure the flow of information and provide logical breaks between different concepts or pieces of information. In terms of formatting, paragraphs in websites are commonly denoted by a vertical gap or indentation between each block of text. This visual separation helps visually distinguish one paragraph from another, creating a clear and organized layout that guides the reader through the content smoothly.`\n\t\t\t),\n\t\t} );\n\n\t\tif ( getBlockType( 'core/group' ) ) {\n\t\t\tconst groupBlock = createBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\tcolumnCount: 2,\n\t\t\t\t\t\tminimumColumnWidth: '12rem',\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tblockGap: '1.5rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[ firstParagraphBlock, secondParagraphBlock ]\n\t\t\t);\n\t\t\ttypographyBlockExamples.push( groupBlock );\n\t\t} else {\n\t\t\ttypographyBlockExamples.push( firstParagraphBlock );\n\t\t}\n\t}\n\n\tif ( !! typographyBlockExamples.length ) {\n\t\texamples.push( {\n\t\t\tname: 'typography',\n\t\t\ttitle: __( 'Typography' ),\n\t\t\tcategory: 'overview',\n\t\t\tblocks: typographyBlockExamples,\n\t\t} );\n\t}\n\n\tconst otherBlockExamples = [\n\t\t'core/image',\n\t\t'core/separator',\n\t\t'core/buttons',\n\t\t'core/pullquote',\n\t\t'core/search',\n\t];\n\n\t// Get examples for other blocks and put them in order of above array.\n\totherBlockExamples.forEach( ( blockName ) => {\n\t\tconst blockType = getBlockType( blockName );\n\t\tif ( blockType && blockType.example ) {\n\t\t\tconst blockExample: BlockExample = {\n\t\t\t\tname: blockName,\n\t\t\t\ttitle: blockType.title,\n\t\t\t\tcategory: 'overview',\n\t\t\t\t/*\n\t\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t\t * demonstrates changes to global styles.\n\t\t\t\t */\n\t\t\t\tblocks: getBlockFromExample( blockName, {\n\t\t\t\t\t...blockType.example,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...blockType.example.attributes,\n\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t\t};\n\t\t\texamples.push( blockExample );\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns a list of examples for registered block types.\n *\n * @param {MultiOriginPalettes} colors Global styles colors grouped by origin e.g. Core, Theme, and User.\n * @return {BlockExample[]} An array of block examples.\n */\nexport function getExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tconst nonHeadingBlockExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports?.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\t/*\n\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t * demonstrates changes to global styles.\n\t\t\t */\n\t\t\tblocks: getBlockFromExample( blockType.name, {\n\t\t\t\t...blockType.example,\n\t\t\t\tattributes: {\n\t\t\t\t\t...blockType.example?.attributes,\n\t\t\t\t\tstyle: undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} ) );\n\tconst isHeadingBlockRegistered = !! getBlockType( 'core/heading' );\n\n\tif ( ! isHeadingBlockRegistered ) {\n\t\treturn nonHeadingBlockExamples;\n\t}\n\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [ 1, 2, 3, 4, 5, 6 ].map( ( level ) => {\n\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\tcontent: sprintf(\n\t\t\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\tlevel\n\t\t\t\t),\n\t\t\t\tlevel,\n\t\t\t} );\n\t\t} ),\n\t};\n\tconst colorExamples = getColorExamples( colors );\n\n\tconst overviewBlockExamples = getOverviewBlockExamples( colors );\n\n\treturn [\n\t\theadingsExample,\n\t\t...colorExamples,\n\t\t...nonHeadingBlockExamples,\n\t\t...overviewBlockExamples,\n\t];\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -356,7 +356,7 @@ var StyleBookPreview = ({
356
356
  if (!previewCategory) {
357
357
  return { examples: examplesForSinglePageUse };
358
358
  }
359
- if (blockVariation) {
359
+ if (blockVariation && filteredExamples?.examples?.length) {
360
360
  return {
361
361
  examples: applyBlockVariationsToExamples(
362
362
  filteredExamples.examples,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/style-book/index.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tComposite,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseSettings,\n\tBlockEditorProvider,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { useSelect, dispatch } from '@wordpress/data';\nimport { mergeGlobalStyles } from '@wordpress/global-styles-engine';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tforwardRef,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { STYLE_BOOK_IFRAME_STYLES } from './constants';\nimport {\n\tgetExamplesByCategory,\n\tgetTopLevelStyleBookCategories,\n} from './categories';\nimport { getExamples } from './examples';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport {\n\tSTYLE_BOOK_COLOR_GROUPS,\n\tSTYLE_BOOK_PREVIEW_CATEGORIES,\n} from '../style-book/constants';\nimport { useGlobalStylesOutputWithConfig } from '../../hooks/use-global-styles-output';\nimport { useStyle, useGlobalStyles } from '../global-styles';\nimport { store as editorStore } from '../../store';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Scrolls to a section within an iframe.\n *\n * @param {string} anchorId The id of the element to scroll to.\n * @param {HTMLIFrameElement} iframe The target iframe.\n */\nconst scrollToSection = ( anchorId, iframe ) => {\n\tif ( ! anchorId || ! iframe || ! iframe?.contentDocument ) {\n\t\treturn;\n\t}\n\n\tconst element =\n\t\tanchorId === 'top'\n\t\t\t? iframe.contentDocument.body\n\t\t\t: iframe.contentDocument.getElementById( anchorId );\n\tif ( element ) {\n\t\telement.scrollIntoView( {\n\t\t\tbehavior: 'smooth',\n\t\t} );\n\t}\n};\n\n/**\n * Parses a Block Editor navigation path to build a style book navigation path.\n * The object can be extended to include a category, representing a style book tab/section.\n *\n * @param {string} path An internal Block Editor navigation path.\n * @return {null|{block: string}} An object containing the example to navigate to.\n */\nconst getStyleBookNavigationFromPath = ( path ) => {\n\tif ( path && typeof path === 'string' ) {\n\t\tif (\n\t\t\tpath === '/' ||\n\t\t\tpath.startsWith( '/typography' ) ||\n\t\t\tpath.startsWith( '/colors' ) ||\n\t\t\tpath.startsWith( '/blocks' )\n\t\t) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Retrieves colors, gradients, and duotone filters from Global Styles.\n * The inclusion of default (Core) palettes is controlled by the relevant\n * theme.json property e.g. defaultPalette, defaultGradients, defaultDuotone.\n *\n * @return {Object} Object containing properties for each type of palette.\n */\nfunction useMultiOriginPalettes() {\n\tconst { colors, gradients } = useMultipleOriginColorsAndGradients();\n\n\t// Add duotone filters to the palettes data.\n\tconst [\n\t\tshouldDisplayDefaultDuotones,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t] = useSettings(\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default'\n\t);\n\n\tconst palettes = useMemo( () => {\n\t\tconst result = { colors, gradients, duotones: [] };\n\n\t\tif ( themeDuotones && themeDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates these duotone filters come from the theme.'\n\t\t\t\t),\n\t\t\t\tslug: 'theme',\n\t\t\t\tduotones: themeDuotones,\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tshouldDisplayDefaultDuotones &&\n\t\t\tdefaultDuotones &&\n\t\t\tdefaultDuotones.length\n\t\t) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates these duotone filters come from WordPress.'\n\t\t\t\t),\n\t\t\t\tslug: 'default',\n\t\t\t\tduotones: defaultDuotones,\n\t\t\t} );\n\t\t}\n\t\tif ( customDuotones && customDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates these doutone filters are created by the user.'\n\t\t\t\t),\n\t\t\t\tslug: 'custom',\n\t\t\t\tduotones: customDuotones,\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}, [\n\t\tcolors,\n\t\tgradients,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t\tshouldDisplayDefaultDuotones,\n\t] );\n\n\treturn palettes;\n}\n\n/**\n * Get deduped examples for single page stylebook.\n * @param {Array} examples Array of examples.\n * @return {Array} Deduped examples.\n */\nexport function getExamplesForSinglePageUse( examples ) {\n\tconst examplesForSinglePageUse = [];\n\tconst overviewCategoryExamples = getExamplesByCategory(\n\t\t{ slug: 'overview' },\n\t\texamples\n\t);\n\texamplesForSinglePageUse.push( ...overviewCategoryExamples.examples );\n\tconst otherExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\texample.category !== 'overview' &&\n\t\t\t! overviewCategoryExamples.examples.find(\n\t\t\t\t( overviewExample ) => overviewExample.name === example.name\n\t\t\t)\n\t\t);\n\t} );\n\texamplesForSinglePageUse.push( ...otherExamples );\n\n\treturn examplesForSinglePageUse;\n}\n\n/**\n * Applies a block variation to each example by updating its attributes.\n *\n * @param {Array} examples Array of examples\n * @param {string} variation Block variation name.\n * @return {Array} Updated examples with variation applied.\n */\nfunction applyBlockVariationsToExamples( examples, variation ) {\n\tif ( ! variation ) {\n\t\treturn examples;\n\t}\n\treturn examples.map( ( example ) => {\n\t\treturn {\n\t\t\t...example,\n\t\t\tvariation,\n\t\t\tblocks: Array.isArray( example.blocks )\n\t\t\t\t? example.blocks.map( ( block ) => ( {\n\t\t\t\t\t\t...block,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...block.attributes,\n\t\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t\t\tclassName: `is-style-${ variation }`,\n\t\t\t\t\t\t},\n\t\t\t\t } ) )\n\t\t\t\t: {\n\t\t\t\t\t\t...example.blocks,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...example.blocks.attributes,\n\t\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t\t\tclassName: `is-style-${ variation }`,\n\t\t\t\t\t\t},\n\t\t\t\t },\n\t\t};\n\t} );\n}\n\nfunction StyleBook(\n\t{\n\t\tisSelected,\n\t\tonClick,\n\t\tonSelect,\n\t\tshowTabs = true,\n\t\tuserConfig = {},\n\t\tpath = '',\n\t},\n\tref\n) {\n\tconst textColor = useStyle( 'color.text' );\n\tconst backgroundColor = useStyle( 'color.background' );\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = useMemo( () => getExamples( colors ), [ colors ] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetTopLevelStyleBookCategories().filter( ( category ) =>\n\t\t\t\texamples.some(\n\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t)\n\t\t\t),\n\t\t[ examples ]\n\t);\n\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useGlobalStyles();\n\tconst goTo = getStyleBookNavigationFromPath( path );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeGlobalStyles( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: originalSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, originalSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ clsx( 'editor-style-book', {\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tstyle={ {\n\t\t\t\tcolor: textColor,\n\t\t\t\tbackground: backgroundColor,\n\t\t\t} }\n\t\t>\n\t\t\t{ showTabs ? (\n\t\t\t\t<Tabs>\n\t\t\t\t\t<div className=\"editor-style-book__tablist-container\">\n\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t<Tabs.Tab tabId={ tab.slug } key={ tab.slug }>\n\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t</div>\n\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\tconst categoryDefinition = tab.slug\n\t\t\t\t\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t\t\t\t\t( _category ) => _category.slug === tab.slug\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\tconst filteredExamples = categoryDefinition\n\t\t\t\t\t\t\t? getExamplesByCategory(\n\t\t\t\t\t\t\t\t\tcategoryDefinition,\n\t\t\t\t\t\t\t\t\texamples\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: { examples };\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\tclassName=\"editor-style-book__tabpanel\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\texamples={ filteredExamples }\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t) : (\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ { examples: examplesForSinglePageUse } }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\n/**\n * Style Book Preview component renders the stylebook without the Editor dependency.\n *\n * @param {Object} props Component props.\n * @param {string} props.path Current path in global styles.\n * @param {Function} props.onPathChange Callback when the path changes.\n * @param {Object} props.userConfig User configuration.\n * @param {boolean} props.isStatic Whether the stylebook is static or clickable.\n * @param {Object} props.settings Optional editor settings to use instead of the editor store settings.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( {\n\tuserConfig = {},\n\tisStatic = false,\n\tpath,\n\tonPathChange,\n\tsettings: settingsProp,\n} ) => {\n\tconst editorSettings = useSelect(\n\t\t( select ) => settingsProp ?? select( editorStore ).getEditorSettings(),\n\t\t[ settingsProp ]\n\t);\n\n\tconst canUserUploadMedia = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'attachment',\n\t\t\t} ),\n\t\t[]\n\t);\n\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tuseEffect( () => {\n\t\tdispatch( blockEditorStore ).updateSettings( {\n\t\t\t...editorSettings,\n\t\t\tmediaUpload: canUserUploadMedia ? uploadMedia : undefined,\n\t\t} );\n\t}, [ editorSettings, canUserUploadMedia ] );\n\n\tconst [ internalPath, setInternalPath ] = useState( '/' );\n\tconst section = path ?? internalPath;\n\tconst onChangeSection = onPathChange ?? setInternalPath;\n\n\tconst isSelected = ( blockName ) => {\n\t\t// Match '/blocks/core%2Fbutton' and\n\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t// '/blocks/core%2Fbuttons'.\n\t\treturn (\n\t\t\tsection === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\tsection.startsWith(\n\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t)\n\t\t);\n\t};\n\n\tconst onSelect = ( blockName, isBlockVariation = false ) => {\n\t\tif (\n\t\t\tSTYLE_BOOK_COLOR_GROUPS.find(\n\t\t\t\t( group ) => group.slug === blockName\n\t\t\t)\n\t\t) {\n\t\t\t// Go to color palettes Global Styles.\n\t\t\tonChangeSection( '/colors/palette' );\n\t\t\treturn;\n\t\t}\n\t\tif ( blockName === 'typography' ) {\n\t\t\t// Go to typography Global Styles.\n\t\t\tonChangeSection( '/typography' );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlockVariation ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Now go to the selected block.\n\t\tonChangeSection( `/blocks/${ encodeURIComponent( blockName ) }` );\n\t};\n\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tlet previewCategory = null;\n\tlet blockVariation = null;\n\tif ( section.includes( '/colors' ) ) {\n\t\tpreviewCategory = 'colors';\n\t} else if ( section.includes( '/typography' ) ) {\n\t\tpreviewCategory = 'text';\n\t} else if ( section.includes( '/blocks' ) ) {\n\t\tpreviewCategory = 'blocks';\n\t\tlet blockName = decodeURIComponent( section ).split( '/blocks/' )[ 1 ];\n\n\t\t// The blockName can contain variations, if so, extract the variation.\n\t\tif ( blockName?.includes( '/variations' ) ) {\n\t\t\t[ blockName, blockVariation ] = blockName.split( '/variations/' );\n\t\t}\n\n\t\tif (\n\t\t\tblockName &&\n\t\t\texamples.find( ( example ) => example.name === blockName )\n\t\t) {\n\t\t\tpreviewCategory = blockName;\n\t\t}\n\t} else if ( ! isStatic ) {\n\t\tpreviewCategory = 'overview';\n\t}\n\tconst categoryDefinition = STYLE_BOOK_PREVIEW_CATEGORIES.find(\n\t\t( category ) => category.slug === previewCategory\n\t);\n\n\tconst filteredExamples = useMemo( () => {\n\t\t// If there's no category definition there may be a single block.\n\t\tif ( ! categoryDefinition ) {\n\t\t\treturn {\n\t\t\t\texamples: [\n\t\t\t\t\texamples.find(\n\t\t\t\t\t\t( example ) => example.name === previewCategory\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t};\n\t\t}\n\n\t\treturn getExamplesByCategory( categoryDefinition, examples );\n\t}, [ categoryDefinition, examples, previewCategory ] );\n\n\tconst displayedExamples = useMemo( () => {\n\t\t// If there's no preview category, show all examples.\n\t\tif ( ! previewCategory ) {\n\t\t\treturn { examples: examplesForSinglePageUse };\n\t\t}\n\n\t\tif ( blockVariation ) {\n\t\t\treturn {\n\t\t\t\texamples: applyBlockVariationsToExamples(\n\t\t\t\t\tfilteredExamples.examples,\n\t\t\t\t\tblockVariation\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn filteredExamples;\n\t}, [\n\t\tpreviewCategory,\n\t\texamplesForSinglePageUse,\n\t\tblockVariation,\n\t\tfilteredExamples,\n\t] );\n\n\tconst { base: baseConfig } = useGlobalStyles();\n\tconst goTo = getStyleBookNavigationFromPath( section );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeGlobalStyles( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...editorSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: editorSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, editorSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div className=\"editor-style-book\">\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<GlobalStylesRenderer disableRootPadding />\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ displayedExamples }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tisSelected={ ! isStatic ? isSelected : null }\n\t\t\t\t\tonSelect={ ! isStatic ? onSelect : null }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\ttitle,\n\tgoTo,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst [ hasIframeLoaded, setHasIframeLoaded ] = useState( false );\n\tconst iframeRef = useRef( null );\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst handleLoad = () => setHasIframeLoaded( true );\n\tuseLayoutEffect( () => {\n\t\tif ( hasIframeLoaded && iframeRef.current && goTo?.top ) {\n\t\t\tscrollToSection( 'top', iframeRef.current );\n\t\t}\n\t}, [ goTo?.top, hasIframeLoaded ] );\n\n\treturn (\n\t\t<Iframe\n\t\t\tonLoad={ handleLoad }\n\t\t\tref={ iframeRef }\n\t\t\tclassName={ clsx( 'editor-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{ STYLE_BOOK_IFRAME_STYLES }\n\t\t\t\t{ !! onClick &&\n\t\t\t\t\t'body { cursor: var(--wpds-cursor-control, pointer); } body * { pointer-events: none; }' }\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName=\"editor-style-book__examples\"\n\t\t\t\tfilteredExamples={ examples }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ title }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, filteredExamples, label, isSelected, onSelect } ) => {\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ !! filteredExamples?.examples?.length &&\n\t\t\t\t\tfilteredExamples.examples.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tcontent={ example.content }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t!! onSelect\n\t\t\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\t\t\t\texample.name,\n\t\t\t\t\t\t\t\t\t\t\t\t!! example.variation\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: null\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{ !! filteredExamples?.subcategories?.length &&\n\t\t\t\t\tfilteredExamples.subcategories.map( ( subcategory ) => (\n\t\t\t\t\t\t<Composite.Group\n\t\t\t\t\t\t\tclassName=\"editor-style-book__subcategory\"\n\t\t\t\t\t\t\tkey={ `subcategory-${ subcategory.slug }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Composite.GroupLabel>\n\t\t\t\t\t\t\t\t<h2 className=\"editor-style-book__subcategory-title\">\n\t\t\t\t\t\t\t\t\t{ subcategory.title }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</Composite.GroupLabel>\n\t\t\t\t\t\t\t<Subcategory\n\t\t\t\t\t\t\t\texamples={ subcategory.examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Composite.Group>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Subcategory = ( { examples, isSelected, onSelect } ) => {\n\treturn (\n\t\t!! examples?.length &&\n\t\texamples.map( ( example ) => (\n\t\t\t<Example\n\t\t\t\tkey={ example.name }\n\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\ttitle={ example.title }\n\t\t\t\tcontent={ example.content }\n\t\t\t\tblocks={ example.blocks }\n\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\tonClick={ !! onSelect ? () => onSelect( example.name ) : null }\n\t\t\t/>\n\t\t) )\n\t);\n};\n\nconst disabledExamples = [ 'example-duotones' ];\n\nconst Example = ( { id, title, blocks, isSelected, onClick, content } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst disabledProps =\n\t\tdisabledExamples.includes( id ) || ! onClick\n\t\t\t? {\n\t\t\t\t\tdisabled: true,\n\t\t\t\t\taccessibleWhenDisabled: !! onClick,\n\t\t\t }\n\t\t\t: {};\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Composite.Item\n\t\t\t\t\tclassName={ clsx( 'editor-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t'is-disabled-example': !! disabledProps?.disabled,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\t!! onClick\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole={ !! onClick ? 'button' : null }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t{ ...disabledProps }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"editor-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"editor-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"editor-style-book__example-preview__content\">\n\t\t\t\t\t\t\t{ content ? (\n\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EditorStyles />\n\t\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</Composite.Item>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef( StyleBook );\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tComposite,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseSettings,\n\tBlockEditorProvider,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { useSelect, dispatch } from '@wordpress/data';\nimport { mergeGlobalStyles } from '@wordpress/global-styles-engine';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tforwardRef,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { STYLE_BOOK_IFRAME_STYLES } from './constants';\nimport {\n\tgetExamplesByCategory,\n\tgetTopLevelStyleBookCategories,\n} from './categories';\nimport { getExamples } from './examples';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport {\n\tSTYLE_BOOK_COLOR_GROUPS,\n\tSTYLE_BOOK_PREVIEW_CATEGORIES,\n} from '../style-book/constants';\nimport { useGlobalStylesOutputWithConfig } from '../../hooks/use-global-styles-output';\nimport { useStyle, useGlobalStyles } from '../global-styles';\nimport { store as editorStore } from '../../store';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Scrolls to a section within an iframe.\n *\n * @param {string} anchorId The id of the element to scroll to.\n * @param {HTMLIFrameElement} iframe The target iframe.\n */\nconst scrollToSection = ( anchorId, iframe ) => {\n\tif ( ! anchorId || ! iframe || ! iframe?.contentDocument ) {\n\t\treturn;\n\t}\n\n\tconst element =\n\t\tanchorId === 'top'\n\t\t\t? iframe.contentDocument.body\n\t\t\t: iframe.contentDocument.getElementById( anchorId );\n\tif ( element ) {\n\t\telement.scrollIntoView( {\n\t\t\tbehavior: 'smooth',\n\t\t} );\n\t}\n};\n\n/**\n * Parses a Block Editor navigation path to build a style book navigation path.\n * The object can be extended to include a category, representing a style book tab/section.\n *\n * @param {string} path An internal Block Editor navigation path.\n * @return {null|{block: string}} An object containing the example to navigate to.\n */\nconst getStyleBookNavigationFromPath = ( path ) => {\n\tif ( path && typeof path === 'string' ) {\n\t\tif (\n\t\t\tpath === '/' ||\n\t\t\tpath.startsWith( '/typography' ) ||\n\t\t\tpath.startsWith( '/colors' ) ||\n\t\t\tpath.startsWith( '/blocks' )\n\t\t) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Retrieves colors, gradients, and duotone filters from Global Styles.\n * The inclusion of default (Core) palettes is controlled by the relevant\n * theme.json property e.g. defaultPalette, defaultGradients, defaultDuotone.\n *\n * @return {Object} Object containing properties for each type of palette.\n */\nfunction useMultiOriginPalettes() {\n\tconst { colors, gradients } = useMultipleOriginColorsAndGradients();\n\n\t// Add duotone filters to the palettes data.\n\tconst [\n\t\tshouldDisplayDefaultDuotones,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t] = useSettings(\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default'\n\t);\n\n\tconst palettes = useMemo( () => {\n\t\tconst result = { colors, gradients, duotones: [] };\n\n\t\tif ( themeDuotones && themeDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates these duotone filters come from the theme.'\n\t\t\t\t),\n\t\t\t\tslug: 'theme',\n\t\t\t\tduotones: themeDuotones,\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tshouldDisplayDefaultDuotones &&\n\t\t\tdefaultDuotones &&\n\t\t\tdefaultDuotones.length\n\t\t) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates these duotone filters come from WordPress.'\n\t\t\t\t),\n\t\t\t\tslug: 'default',\n\t\t\t\tduotones: defaultDuotones,\n\t\t\t} );\n\t\t}\n\t\tif ( customDuotones && customDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates these doutone filters are created by the user.'\n\t\t\t\t),\n\t\t\t\tslug: 'custom',\n\t\t\t\tduotones: customDuotones,\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}, [\n\t\tcolors,\n\t\tgradients,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t\tshouldDisplayDefaultDuotones,\n\t] );\n\n\treturn palettes;\n}\n\n/**\n * Get deduped examples for single page stylebook.\n * @param {Array} examples Array of examples.\n * @return {Array} Deduped examples.\n */\nexport function getExamplesForSinglePageUse( examples ) {\n\tconst examplesForSinglePageUse = [];\n\tconst overviewCategoryExamples = getExamplesByCategory(\n\t\t{ slug: 'overview' },\n\t\texamples\n\t);\n\texamplesForSinglePageUse.push( ...overviewCategoryExamples.examples );\n\tconst otherExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\texample.category !== 'overview' &&\n\t\t\t! overviewCategoryExamples.examples.find(\n\t\t\t\t( overviewExample ) => overviewExample.name === example.name\n\t\t\t)\n\t\t);\n\t} );\n\texamplesForSinglePageUse.push( ...otherExamples );\n\n\treturn examplesForSinglePageUse;\n}\n\n/**\n * Applies a block variation to each example by updating its attributes.\n *\n * @param {Array} examples Array of examples\n * @param {string} variation Block variation name.\n * @return {Array} Updated examples with variation applied.\n */\nfunction applyBlockVariationsToExamples( examples, variation ) {\n\tif ( ! variation ) {\n\t\treturn examples;\n\t}\n\treturn examples.map( ( example ) => {\n\t\treturn {\n\t\t\t...example,\n\t\t\tvariation,\n\t\t\tblocks: Array.isArray( example.blocks )\n\t\t\t\t? example.blocks.map( ( block ) => ( {\n\t\t\t\t\t\t...block,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...block.attributes,\n\t\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t\t\tclassName: `is-style-${ variation }`,\n\t\t\t\t\t\t},\n\t\t\t\t } ) )\n\t\t\t\t: {\n\t\t\t\t\t\t...example.blocks,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...example.blocks.attributes,\n\t\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t\t\tclassName: `is-style-${ variation }`,\n\t\t\t\t\t\t},\n\t\t\t\t },\n\t\t};\n\t} );\n}\n\nfunction StyleBook(\n\t{\n\t\tisSelected,\n\t\tonClick,\n\t\tonSelect,\n\t\tshowTabs = true,\n\t\tuserConfig = {},\n\t\tpath = '',\n\t},\n\tref\n) {\n\tconst textColor = useStyle( 'color.text' );\n\tconst backgroundColor = useStyle( 'color.background' );\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = useMemo( () => getExamples( colors ), [ colors ] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetTopLevelStyleBookCategories().filter( ( category ) =>\n\t\t\t\texamples.some(\n\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t)\n\t\t\t),\n\t\t[ examples ]\n\t);\n\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useGlobalStyles();\n\tconst goTo = getStyleBookNavigationFromPath( path );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeGlobalStyles( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: originalSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, originalSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ clsx( 'editor-style-book', {\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tstyle={ {\n\t\t\t\tcolor: textColor,\n\t\t\t\tbackground: backgroundColor,\n\t\t\t} }\n\t\t>\n\t\t\t{ showTabs ? (\n\t\t\t\t<Tabs>\n\t\t\t\t\t<div className=\"editor-style-book__tablist-container\">\n\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t<Tabs.Tab tabId={ tab.slug } key={ tab.slug }>\n\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t</div>\n\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\tconst categoryDefinition = tab.slug\n\t\t\t\t\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t\t\t\t\t( _category ) => _category.slug === tab.slug\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\tconst filteredExamples = categoryDefinition\n\t\t\t\t\t\t\t? getExamplesByCategory(\n\t\t\t\t\t\t\t\t\tcategoryDefinition,\n\t\t\t\t\t\t\t\t\texamples\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: { examples };\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\tclassName=\"editor-style-book__tabpanel\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\texamples={ filteredExamples }\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t) : (\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ { examples: examplesForSinglePageUse } }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\n/**\n * Style Book Preview component renders the stylebook without the Editor dependency.\n *\n * @param {Object} props Component props.\n * @param {string} props.path Current path in global styles.\n * @param {Function} props.onPathChange Callback when the path changes.\n * @param {Object} props.userConfig User configuration.\n * @param {boolean} props.isStatic Whether the stylebook is static or clickable.\n * @param {Object} props.settings Optional editor settings to use instead of the editor store settings.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( {\n\tuserConfig = {},\n\tisStatic = false,\n\tpath,\n\tonPathChange,\n\tsettings: settingsProp,\n} ) => {\n\tconst editorSettings = useSelect(\n\t\t( select ) => settingsProp ?? select( editorStore ).getEditorSettings(),\n\t\t[ settingsProp ]\n\t);\n\n\tconst canUserUploadMedia = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'attachment',\n\t\t\t} ),\n\t\t[]\n\t);\n\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tuseEffect( () => {\n\t\tdispatch( blockEditorStore ).updateSettings( {\n\t\t\t...editorSettings,\n\t\t\tmediaUpload: canUserUploadMedia ? uploadMedia : undefined,\n\t\t} );\n\t}, [ editorSettings, canUserUploadMedia ] );\n\n\tconst [ internalPath, setInternalPath ] = useState( '/' );\n\tconst section = path ?? internalPath;\n\tconst onChangeSection = onPathChange ?? setInternalPath;\n\n\tconst isSelected = ( blockName ) => {\n\t\t// Match '/blocks/core%2Fbutton' and\n\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t// '/blocks/core%2Fbuttons'.\n\t\treturn (\n\t\t\tsection === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\tsection.startsWith(\n\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t)\n\t\t);\n\t};\n\n\tconst onSelect = ( blockName, isBlockVariation = false ) => {\n\t\tif (\n\t\t\tSTYLE_BOOK_COLOR_GROUPS.find(\n\t\t\t\t( group ) => group.slug === blockName\n\t\t\t)\n\t\t) {\n\t\t\t// Go to color palettes Global Styles.\n\t\t\tonChangeSection( '/colors/palette' );\n\t\t\treturn;\n\t\t}\n\t\tif ( blockName === 'typography' ) {\n\t\t\t// Go to typography Global Styles.\n\t\t\tonChangeSection( '/typography' );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlockVariation ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Now go to the selected block.\n\t\tonChangeSection( `/blocks/${ encodeURIComponent( blockName ) }` );\n\t};\n\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tlet previewCategory = null;\n\tlet blockVariation = null;\n\tif ( section.includes( '/colors' ) ) {\n\t\tpreviewCategory = 'colors';\n\t} else if ( section.includes( '/typography' ) ) {\n\t\tpreviewCategory = 'text';\n\t} else if ( section.includes( '/blocks' ) ) {\n\t\tpreviewCategory = 'blocks';\n\t\tlet blockName = decodeURIComponent( section ).split( '/blocks/' )[ 1 ];\n\n\t\t// The blockName can contain variations, if so, extract the variation.\n\t\tif ( blockName?.includes( '/variations' ) ) {\n\t\t\t[ blockName, blockVariation ] = blockName.split( '/variations/' );\n\t\t}\n\n\t\tif (\n\t\t\tblockName &&\n\t\t\texamples.find( ( example ) => example.name === blockName )\n\t\t) {\n\t\t\tpreviewCategory = blockName;\n\t\t}\n\t} else if ( ! isStatic ) {\n\t\tpreviewCategory = 'overview';\n\t}\n\tconst categoryDefinition = STYLE_BOOK_PREVIEW_CATEGORIES.find(\n\t\t( category ) => category.slug === previewCategory\n\t);\n\n\tconst filteredExamples = useMemo( () => {\n\t\t// If there's no category definition there may be a single block.\n\t\tif ( ! categoryDefinition ) {\n\t\t\treturn {\n\t\t\t\texamples: [\n\t\t\t\t\texamples.find(\n\t\t\t\t\t\t( example ) => example.name === previewCategory\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t};\n\t\t}\n\n\t\treturn getExamplesByCategory( categoryDefinition, examples );\n\t}, [ categoryDefinition, examples, previewCategory ] );\n\n\tconst displayedExamples = useMemo( () => {\n\t\t// If there's no preview category, show all examples.\n\t\tif ( ! previewCategory ) {\n\t\t\treturn { examples: examplesForSinglePageUse };\n\t\t}\n\n\t\tif ( blockVariation && filteredExamples?.examples?.length ) {\n\t\t\treturn {\n\t\t\t\texamples: applyBlockVariationsToExamples(\n\t\t\t\t\tfilteredExamples.examples,\n\t\t\t\t\tblockVariation\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn filteredExamples;\n\t}, [\n\t\tpreviewCategory,\n\t\texamplesForSinglePageUse,\n\t\tblockVariation,\n\t\tfilteredExamples,\n\t] );\n\n\tconst { base: baseConfig } = useGlobalStyles();\n\tconst goTo = getStyleBookNavigationFromPath( section );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeGlobalStyles( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...editorSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: editorSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, editorSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div className=\"editor-style-book\">\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<GlobalStylesRenderer disableRootPadding />\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ displayedExamples }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tisSelected={ ! isStatic ? isSelected : null }\n\t\t\t\t\tonSelect={ ! isStatic ? onSelect : null }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\ttitle,\n\tgoTo,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst [ hasIframeLoaded, setHasIframeLoaded ] = useState( false );\n\tconst iframeRef = useRef( null );\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst handleLoad = () => setHasIframeLoaded( true );\n\tuseLayoutEffect( () => {\n\t\tif ( hasIframeLoaded && iframeRef.current && goTo?.top ) {\n\t\t\tscrollToSection( 'top', iframeRef.current );\n\t\t}\n\t}, [ goTo?.top, hasIframeLoaded ] );\n\n\treturn (\n\t\t<Iframe\n\t\t\tonLoad={ handleLoad }\n\t\t\tref={ iframeRef }\n\t\t\tclassName={ clsx( 'editor-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{ STYLE_BOOK_IFRAME_STYLES }\n\t\t\t\t{ !! onClick &&\n\t\t\t\t\t'body { cursor: var(--wpds-cursor-control, pointer); } body * { pointer-events: none; }' }\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName=\"editor-style-book__examples\"\n\t\t\t\tfilteredExamples={ examples }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ title }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, filteredExamples, label, isSelected, onSelect } ) => {\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ !! filteredExamples?.examples?.length &&\n\t\t\t\t\tfilteredExamples.examples.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tcontent={ example.content }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t!! onSelect\n\t\t\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\t\t\t\texample.name,\n\t\t\t\t\t\t\t\t\t\t\t\t!! example.variation\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: null\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{ !! filteredExamples?.subcategories?.length &&\n\t\t\t\t\tfilteredExamples.subcategories.map( ( subcategory ) => (\n\t\t\t\t\t\t<Composite.Group\n\t\t\t\t\t\t\tclassName=\"editor-style-book__subcategory\"\n\t\t\t\t\t\t\tkey={ `subcategory-${ subcategory.slug }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Composite.GroupLabel>\n\t\t\t\t\t\t\t\t<h2 className=\"editor-style-book__subcategory-title\">\n\t\t\t\t\t\t\t\t\t{ subcategory.title }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</Composite.GroupLabel>\n\t\t\t\t\t\t\t<Subcategory\n\t\t\t\t\t\t\t\texamples={ subcategory.examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Composite.Group>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Subcategory = ( { examples, isSelected, onSelect } ) => {\n\treturn (\n\t\t!! examples?.length &&\n\t\texamples.map( ( example ) => (\n\t\t\t<Example\n\t\t\t\tkey={ example.name }\n\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\ttitle={ example.title }\n\t\t\t\tcontent={ example.content }\n\t\t\t\tblocks={ example.blocks }\n\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\tonClick={ !! onSelect ? () => onSelect( example.name ) : null }\n\t\t\t/>\n\t\t) )\n\t);\n};\n\nconst disabledExamples = [ 'example-duotones' ];\n\nconst Example = ( { id, title, blocks, isSelected, onClick, content } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst disabledProps =\n\t\tdisabledExamples.includes( id ) || ! onClick\n\t\t\t? {\n\t\t\t\t\tdisabled: true,\n\t\t\t\t\taccessibleWhenDisabled: !! onClick,\n\t\t\t }\n\t\t\t: {};\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Composite.Item\n\t\t\t\t\tclassName={ clsx( 'editor-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t'is-disabled-example': !! disabledProps?.disabled,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\t!! onClick\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole={ !! onClick ? 'button' : null }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t{ ...disabledProps }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"editor-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"editor-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"editor-style-book__example-preview__content\">\n\t\t\t\t\t\t\t{ content ? (\n\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EditorStyles />\n\t\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</Composite.Item>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef( StyleBook );\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -98,15 +98,15 @@ function SyncConnectionErrorModal() {
98
98
  retryCountdownText = sprintf(
99
99
  /* translators: %d: number of seconds until retry */
100
100
  _n(
101
- "Retrying connection in %d second\u2026",
102
- "Retrying connection in %d seconds\u2026",
101
+ "Retrying connection in %d second",
102
+ "Retrying connection in %d seconds",
103
103
  secondsRemaining
104
104
  ),
105
105
  secondsRemaining
106
106
  );
107
107
  } else if (0 === secondsRemaining) {
108
108
  isRetrying = true;
109
- retryCountdownText = __("Retrying\u2026");
109
+ retryCountdownText = __("Retrying");
110
110
  }
111
111
  let editPostHref = "edit.php";
112
112
  if (postType?.slug) {