@wordpress/edit-site 5.2.0 → 5.3.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 (374) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/add-new-template/add-custom-generic-template-modal.js +8 -10
  3. package/build/components/add-new-template/add-custom-generic-template-modal.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-template-modal.js +0 -1
  5. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  6. package/build/components/add-new-template/new-template-part.js +5 -29
  7. package/build/components/add-new-template/new-template-part.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +1 -9
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/app/index.js +2 -7
  11. package/build/components/app/index.js.map +1 -1
  12. package/build/components/block-editor/index.js +13 -11
  13. package/build/components/block-editor/index.js.map +1 -1
  14. package/build/components/block-editor/inserter-media-categories.js +237 -0
  15. package/build/components/block-editor/inserter-media-categories.js.map +1 -0
  16. package/build/components/canvas-spinner/index.js +20 -0
  17. package/build/components/canvas-spinner/index.js.map +1 -0
  18. package/build/components/create-template-part-modal/index.js +4 -2
  19. package/build/components/create-template-part-modal/index.js.map +1 -1
  20. package/build/components/editor/index.js +4 -2
  21. package/build/components/editor/index.js.map +1 -1
  22. package/build/components/error-boundary/index.js +2 -12
  23. package/build/components/error-boundary/index.js.map +1 -1
  24. package/build/components/error-boundary/warning.js +5 -28
  25. package/build/components/error-boundary/warning.js.map +1 -1
  26. package/build/components/global-styles/block-preview-panel.js +2 -2
  27. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  28. package/build/components/global-styles/border-panel.js +17 -9
  29. package/build/components/global-styles/border-panel.js.map +1 -1
  30. package/build/components/global-styles/color-palette-panel.js +13 -7
  31. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  32. package/build/components/global-styles/context-menu.js +39 -4
  33. package/build/components/global-styles/context-menu.js.map +1 -1
  34. package/build/components/global-styles/custom-css.js +65 -14
  35. package/build/components/global-styles/custom-css.js.map +1 -1
  36. package/build/components/global-styles/dimensions-panel.js +49 -31
  37. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  38. package/build/components/global-styles/global-styles-provider.js +13 -3
  39. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  40. package/build/components/global-styles/gradients-palette-panel.js +17 -11
  41. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  42. package/build/components/global-styles/hooks.js +21 -142
  43. package/build/components/global-styles/hooks.js.map +1 -1
  44. package/build/components/global-styles/index.js +0 -28
  45. package/build/components/global-styles/index.js.map +1 -1
  46. package/build/components/global-styles/palette.js +11 -4
  47. package/build/components/global-styles/palette.js.map +1 -1
  48. package/build/components/global-styles/preview.js +18 -15
  49. package/build/components/global-styles/preview.js.map +1 -1
  50. package/build/components/global-styles/screen-background-color.js +27 -13
  51. package/build/components/global-styles/screen-background-color.js.map +1 -1
  52. package/build/components/global-styles/screen-border.js +10 -4
  53. package/build/components/global-styles/screen-border.js.map +1 -1
  54. package/build/components/global-styles/screen-button-color.js +16 -9
  55. package/build/components/global-styles/screen-button-color.js.map +1 -1
  56. package/build/components/global-styles/screen-colors.js +43 -34
  57. package/build/components/global-styles/screen-colors.js.map +1 -1
  58. package/build/components/global-styles/screen-css.js +20 -8
  59. package/build/components/global-styles/screen-css.js.map +1 -1
  60. package/build/components/global-styles/screen-heading-color.js +23 -16
  61. package/build/components/global-styles/screen-heading-color.js.map +1 -1
  62. package/build/components/global-styles/screen-layout.js +3 -3
  63. package/build/components/global-styles/screen-layout.js.map +1 -1
  64. package/build/components/global-styles/screen-link-color.js +18 -11
  65. package/build/components/global-styles/screen-link-color.js.map +1 -1
  66. package/build/components/global-styles/screen-root.js +25 -9
  67. package/build/components/global-styles/screen-root.js.map +1 -1
  68. package/build/components/global-styles/screen-style-variations.js +8 -4
  69. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  70. package/build/components/global-styles/screen-text-color.js +14 -7
  71. package/build/components/global-styles/screen-text-color.js.map +1 -1
  72. package/build/components/global-styles/screen-typography.js +18 -12
  73. package/build/components/global-styles/screen-typography.js.map +1 -1
  74. package/build/components/global-styles/shadow-panel.js +196 -0
  75. package/build/components/global-styles/shadow-panel.js.map +1 -0
  76. package/build/components/global-styles/typography-panel.js +43 -29
  77. package/build/components/global-styles/typography-panel.js.map +1 -1
  78. package/build/components/global-styles/typography-preview.js +19 -9
  79. package/build/components/global-styles/typography-preview.js.map +1 -1
  80. package/build/components/global-styles/ui.js +85 -34
  81. package/build/components/global-styles/ui.js.map +1 -1
  82. package/build/components/global-styles/utils.js +5 -334
  83. package/build/components/global-styles/utils.js.map +1 -1
  84. package/build/components/global-styles-renderer/index.js +7 -5
  85. package/build/components/global-styles-renderer/index.js.map +1 -1
  86. package/build/components/header-edit-mode/document-actions/index.js +2 -2
  87. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  88. package/build/components/keyboard-shortcut-help-modal/index.js +0 -1
  89. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  90. package/build/components/layout/index.js +6 -8
  91. package/build/components/layout/index.js.map +1 -1
  92. package/build/components/list/actions/rename-menu-item.js +8 -11
  93. package/build/components/list/actions/rename-menu-item.js.map +1 -1
  94. package/build/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +1 -2
  95. package/build/components/navigation-inspector/index.js.map +1 -0
  96. package/build/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +13 -15
  97. package/build/components/navigation-inspector/navigation-menu.js.map +1 -0
  98. package/build/components/sidebar/index.js +3 -1
  99. package/build/components/sidebar/index.js.map +1 -1
  100. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +3 -18
  101. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  102. package/build/components/sidebar-edit-mode/index.js +1 -14
  103. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  104. package/build/components/sidebar-navigation-screen/index.js +3 -2
  105. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  106. package/build/components/sidebar-navigation-screen-main/index.js +23 -1
  107. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +35 -0
  109. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -0
  110. package/build/components/sidebar-navigation-screen-templates/index.js +3 -8
  111. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  112. package/build/components/site-hub/index.js +2 -2
  113. package/build/components/site-hub/index.js.map +1 -1
  114. package/build/components/site-icon/index.js +1 -1
  115. package/build/components/site-icon/index.js.map +1 -1
  116. package/build/components/style-book/index.js +7 -4
  117. package/build/components/style-book/index.js.map +1 -1
  118. package/build/components/template-part-converter/convert-to-template-part.js +5 -9
  119. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  120. package/build/experiments.js +19 -0
  121. package/build/experiments.js.map +1 -0
  122. package/build/hooks/push-changes-to-global-styles/index.js +65 -6
  123. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  124. package/build/index.js +53 -60
  125. package/build/index.js.map +1 -1
  126. package/build/store/selectors.js +7 -27
  127. package/build/store/selectors.js.map +1 -1
  128. package/build/store/utils.js +77 -0
  129. package/build/store/utils.js.map +1 -0
  130. package/build/utils/template-part-create.js +71 -0
  131. package/build/utils/template-part-create.js.map +1 -0
  132. package/build-module/components/add-new-template/add-custom-generic-template-modal.js +9 -11
  133. package/build-module/components/add-new-template/add-custom-generic-template-modal.js.map +1 -1
  134. package/build-module/components/add-new-template/add-custom-template-modal.js +0 -1
  135. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  136. package/build-module/components/add-new-template/new-template-part.js +4 -27
  137. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  138. package/build-module/components/add-new-template/utils.js +0 -5
  139. package/build-module/components/add-new-template/utils.js.map +1 -1
  140. package/build-module/components/app/index.js +2 -7
  141. package/build-module/components/app/index.js.map +1 -1
  142. package/build-module/components/block-editor/index.js +14 -12
  143. package/build-module/components/block-editor/index.js.map +1 -1
  144. package/build-module/components/block-editor/inserter-media-categories.js +225 -0
  145. package/build-module/components/block-editor/inserter-media-categories.js.map +1 -0
  146. package/build-module/components/canvas-spinner/index.js +12 -0
  147. package/build-module/components/canvas-spinner/index.js.map +1 -0
  148. package/build-module/components/create-template-part-modal/index.js +5 -3
  149. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  150. package/build-module/components/editor/index.js +3 -2
  151. package/build-module/components/editor/index.js.map +1 -1
  152. package/build-module/components/error-boundary/index.js +2 -12
  153. package/build-module/components/error-boundary/index.js.map +1 -1
  154. package/build-module/components/error-boundary/warning.js +5 -28
  155. package/build-module/components/error-boundary/warning.js.map +1 -1
  156. package/build-module/components/global-styles/block-preview-panel.js +2 -2
  157. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  158. package/build-module/components/global-styles/border-panel.js +17 -11
  159. package/build-module/components/global-styles/border-panel.js.map +1 -1
  160. package/build-module/components/global-styles/color-palette-panel.js +11 -7
  161. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  162. package/build-module/components/global-styles/context-menu.js +40 -8
  163. package/build-module/components/global-styles/context-menu.js.map +1 -1
  164. package/build-module/components/global-styles/custom-css.js +61 -15
  165. package/build-module/components/global-styles/custom-css.js.map +1 -1
  166. package/build-module/components/global-styles/dimensions-panel.js +49 -32
  167. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  168. package/build-module/components/global-styles/global-styles-provider.js +7 -2
  169. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  170. package/build-module/components/global-styles/gradients-palette-panel.js +15 -11
  171. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  172. package/build-module/components/global-styles/hooks.js +23 -134
  173. package/build-module/components/global-styles/hooks.js.map +1 -1
  174. package/build-module/components/global-styles/index.js +0 -2
  175. package/build-module/components/global-styles/index.js.map +1 -1
  176. package/build-module/components/global-styles/palette.js +10 -5
  177. package/build-module/components/global-styles/palette.js.map +1 -1
  178. package/build-module/components/global-styles/preview.js +18 -14
  179. package/build-module/components/global-styles/preview.js.map +1 -1
  180. package/build-module/components/global-styles/screen-background-color.js +26 -15
  181. package/build-module/components/global-styles/screen-background-color.js.map +1 -1
  182. package/build-module/components/global-styles/screen-border.js +10 -5
  183. package/build-module/components/global-styles/screen-border.js.map +1 -1
  184. package/build-module/components/global-styles/screen-button-color.js +16 -11
  185. package/build-module/components/global-styles/screen-button-color.js.map +1 -1
  186. package/build-module/components/global-styles/screen-colors.js +43 -37
  187. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  188. package/build-module/components/global-styles/screen-css.js +21 -9
  189. package/build-module/components/global-styles/screen-css.js.map +1 -1
  190. package/build-module/components/global-styles/screen-heading-color.js +23 -18
  191. package/build-module/components/global-styles/screen-heading-color.js.map +1 -1
  192. package/build-module/components/global-styles/screen-layout.js +4 -4
  193. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  194. package/build-module/components/global-styles/screen-link-color.js +18 -13
  195. package/build-module/components/global-styles/screen-link-color.js.map +1 -1
  196. package/build-module/components/global-styles/screen-root.js +23 -9
  197. package/build-module/components/global-styles/screen-root.js.map +1 -1
  198. package/build-module/components/global-styles/screen-style-variations.js +5 -2
  199. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  200. package/build-module/components/global-styles/screen-text-color.js +14 -9
  201. package/build-module/components/global-styles/screen-text-color.js.map +1 -1
  202. package/build-module/components/global-styles/screen-typography.js +16 -12
  203. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  204. package/build-module/components/global-styles/shadow-panel.js +177 -0
  205. package/build-module/components/global-styles/shadow-panel.js.map +1 -0
  206. package/build-module/components/global-styles/typography-panel.js +43 -31
  207. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  208. package/build-module/components/global-styles/typography-preview.js +17 -9
  209. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  210. package/build-module/components/global-styles/ui.js +80 -35
  211. package/build-module/components/global-styles/ui.js.map +1 -1
  212. package/build-module/components/global-styles/utils.js +4 -319
  213. package/build-module/components/global-styles/utils.js.map +1 -1
  214. package/build-module/components/global-styles-renderer/index.js +5 -5
  215. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  216. package/build-module/components/header-edit-mode/document-actions/index.js +2 -2
  217. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  218. package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
  219. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  220. package/build-module/components/layout/index.js +6 -8
  221. package/build-module/components/layout/index.js.map +1 -1
  222. package/build-module/components/list/actions/rename-menu-item.js +9 -12
  223. package/build-module/components/list/actions/rename-menu-item.js.map +1 -1
  224. package/build-module/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +1 -2
  225. package/build-module/components/navigation-inspector/index.js.map +1 -0
  226. package/build-module/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +13 -16
  227. package/build-module/components/navigation-inspector/navigation-menu.js.map +1 -0
  228. package/build-module/components/sidebar/index.js +2 -1
  229. package/build-module/components/sidebar/index.js.map +1 -1
  230. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +6 -21
  231. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  232. package/build-module/components/sidebar-edit-mode/index.js +1 -13
  233. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  234. package/build-module/components/sidebar-navigation-screen/index.js +3 -2
  235. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  236. package/build-module/components/sidebar-navigation-screen-main/index.js +22 -2
  237. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  238. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +23 -0
  239. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -0
  240. package/build-module/components/sidebar-navigation-screen-templates/index.js +4 -9
  241. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  242. package/build-module/components/site-hub/index.js +2 -2
  243. package/build-module/components/site-hub/index.js.map +1 -1
  244. package/build-module/components/site-icon/index.js +1 -1
  245. package/build-module/components/site-icon/index.js.map +1 -1
  246. package/build-module/components/style-book/index.js +8 -5
  247. package/build-module/components/style-book/index.js.map +1 -1
  248. package/build-module/components/template-part-converter/convert-to-template-part.js +5 -9
  249. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  250. package/build-module/experiments.js +9 -0
  251. package/build-module/experiments.js.map +1 -0
  252. package/build-module/hooks/push-changes-to-global-styles/index.js +62 -3
  253. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  254. package/build-module/index.js +52 -60
  255. package/build-module/index.js.map +1 -1
  256. package/build-module/store/selectors.js +6 -26
  257. package/build-module/store/selectors.js.map +1 -1
  258. package/build-module/store/utils.js +66 -0
  259. package/build-module/store/utils.js.map +1 -0
  260. package/build-module/utils/template-part-create.js +53 -0
  261. package/build-module/utils/template-part-create.js.map +1 -0
  262. package/build-style/style-rtl.css +314 -216
  263. package/build-style/style.css +314 -216
  264. package/package.json +32 -30
  265. package/src/components/add-new-template/add-custom-generic-template-modal.js +20 -28
  266. package/src/components/add-new-template/add-custom-template-modal.js +0 -1
  267. package/src/components/add-new-template/new-template-part.js +11 -32
  268. package/src/components/add-new-template/style.scss +0 -4
  269. package/src/components/add-new-template/utils.js +0 -14
  270. package/src/components/app/index.js +2 -2
  271. package/src/components/block-editor/index.js +12 -25
  272. package/src/components/block-editor/inserter-media-categories.js +247 -0
  273. package/src/components/block-editor/style.scss +19 -7
  274. package/src/components/canvas-spinner/index.js +12 -0
  275. package/src/components/canvas-spinner/style.scss +7 -0
  276. package/src/components/create-template-part-modal/index.js +75 -67
  277. package/src/components/create-template-part-modal/style.scss +0 -10
  278. package/src/components/editor/index.js +4 -2
  279. package/src/components/error-boundary/index.js +2 -10
  280. package/src/components/error-boundary/warning.js +6 -35
  281. package/src/components/global-styles/README.md +1 -75
  282. package/src/components/global-styles/block-preview-panel.js +2 -2
  283. package/src/components/global-styles/border-panel.js +19 -17
  284. package/src/components/global-styles/color-palette-panel.js +10 -7
  285. package/src/components/global-styles/context-menu.js +114 -44
  286. package/src/components/global-styles/custom-css.js +76 -19
  287. package/src/components/global-styles/dimensions-panel.js +46 -36
  288. package/src/components/global-styles/global-styles-provider.js +6 -2
  289. package/src/components/global-styles/gradients-palette-panel.js +17 -11
  290. package/src/components/global-styles/hooks.js +31 -155
  291. package/src/components/global-styles/index.js +0 -2
  292. package/src/components/global-styles/palette.js +9 -5
  293. package/src/components/global-styles/preview.js +19 -13
  294. package/src/components/global-styles/screen-background-color.js +37 -21
  295. package/src/components/global-styles/screen-border.js +10 -5
  296. package/src/components/global-styles/screen-button-color.js +21 -19
  297. package/src/components/global-styles/screen-colors.js +48 -65
  298. package/src/components/global-styles/screen-css.js +30 -14
  299. package/src/components/global-styles/screen-heading-color.js +32 -27
  300. package/src/components/global-styles/screen-layout.js +4 -7
  301. package/src/components/global-styles/screen-link-color.js +26 -26
  302. package/src/components/global-styles/screen-root.js +24 -9
  303. package/src/components/global-styles/screen-style-variations.js +7 -2
  304. package/src/components/global-styles/screen-text-color.js +15 -19
  305. package/src/components/global-styles/screen-typography.js +27 -12
  306. package/src/components/global-styles/shadow-panel.js +174 -0
  307. package/src/components/global-styles/style.scss +85 -1
  308. package/src/components/global-styles/typography-panel.js +60 -48
  309. package/src/components/global-styles/typography-preview.js +28 -9
  310. package/src/components/global-styles/ui.js +78 -53
  311. package/src/components/global-styles/utils.js +4 -371
  312. package/src/components/global-styles-renderer/index.js +3 -4
  313. package/src/components/header-edit-mode/document-actions/index.js +1 -1
  314. package/src/components/keyboard-shortcut-help-modal/index.js +0 -1
  315. package/src/components/layout/index.js +9 -2
  316. package/src/components/layout/style.scss +4 -5
  317. package/src/components/list/actions/rename-menu-item.js +14 -23
  318. package/src/components/list/style.scss +0 -4
  319. package/src/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +1 -4
  320. package/src/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +10 -12
  321. package/src/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/style.scss +0 -17
  322. package/src/components/sidebar/index.js +2 -0
  323. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +8 -32
  324. package/src/components/sidebar-edit-mode/index.js +0 -11
  325. package/src/components/sidebar-edit-mode/settings-header/style.scss +8 -0
  326. package/src/components/sidebar-navigation-item/style.scss +28 -3
  327. package/src/components/sidebar-navigation-screen/index.js +4 -3
  328. package/src/components/sidebar-navigation-screen/style.scss +2 -0
  329. package/src/components/sidebar-navigation-screen-main/index.js +23 -1
  330. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +25 -0
  331. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +12 -0
  332. package/src/components/sidebar-navigation-screen-templates/index.js +12 -19
  333. package/src/components/site-hub/index.js +1 -1
  334. package/src/components/site-hub/style.scss +7 -1
  335. package/src/components/site-icon/index.js +1 -1
  336. package/src/components/site-icon/style.scss +2 -2
  337. package/src/components/style-book/index.js +10 -5
  338. package/src/components/template-part-converter/convert-to-template-part.js +12 -10
  339. package/src/experiments.js +10 -0
  340. package/src/hooks/push-changes-to-global-styles/index.js +63 -5
  341. package/src/index.js +51 -59
  342. package/src/store/selectors.js +6 -26
  343. package/src/store/test/utils.js +181 -0
  344. package/src/store/utils.js +69 -0
  345. package/src/style.scss +4 -2
  346. package/src/utils/template-part-create.js +62 -0
  347. package/src/utils/test/template-part-create.js +63 -0
  348. package/build/components/global-styles/context.js +0 -22
  349. package/build/components/global-styles/context.js.map +0 -1
  350. package/build/components/global-styles/typography-utils.js +0 -92
  351. package/build/components/global-styles/typography-utils.js.map +0 -1
  352. package/build/components/global-styles/use-global-styles-output.js +0 -943
  353. package/build/components/global-styles/use-global-styles-output.js.map +0 -1
  354. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -42
  355. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +0 -1
  356. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
  357. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +0 -1
  358. package/build-module/components/global-styles/context.js +0 -12
  359. package/build-module/components/global-styles/context.js.map +0 -1
  360. package/build-module/components/global-styles/typography-utils.js +0 -84
  361. package/build-module/components/global-styles/typography-utils.js.map +0 -1
  362. package/build-module/components/global-styles/use-global-styles-output.js +0 -901
  363. package/build-module/components/global-styles/use-global-styles-output.js.map +0 -1
  364. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -28
  365. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +0 -1
  366. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
  367. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +0 -1
  368. package/src/components/global-styles/context.js +0 -15
  369. package/src/components/global-styles/test/typography-utils.js +0 -393
  370. package/src/components/global-styles/test/use-global-styles-output.js +0 -814
  371. package/src/components/global-styles/test/utils.js +0 -206
  372. package/src/components/global-styles/typography-utils.js +0 -87
  373. package/src/components/global-styles/use-global-styles-output.js +0 -1059
  374. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -37
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-site",
3
- "version": "5.2.0",
3
+ "version": "5.3.0",
4
4
  "description": "Edit Site Page module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -27,40 +27,42 @@
27
27
  "react-native": "src/index",
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
- "@wordpress/a11y": "^3.25.0",
31
- "@wordpress/api-fetch": "^6.22.0",
32
- "@wordpress/block-editor": "^11.2.0",
33
- "@wordpress/block-library": "^8.2.0",
34
- "@wordpress/blocks": "^12.2.0",
35
- "@wordpress/components": "^23.2.0",
36
- "@wordpress/compose": "^6.2.0",
37
- "@wordpress/core-data": "^6.2.0",
38
- "@wordpress/data": "^8.2.0",
39
- "@wordpress/deprecated": "^3.25.0",
40
- "@wordpress/editor": "^13.2.0",
41
- "@wordpress/element": "^5.2.0",
42
- "@wordpress/hooks": "^3.25.0",
43
- "@wordpress/html-entities": "^3.25.0",
44
- "@wordpress/i18n": "^4.25.0",
45
- "@wordpress/icons": "^9.16.0",
46
- "@wordpress/interface": "^5.2.0",
47
- "@wordpress/keyboard-shortcuts": "^4.2.0",
48
- "@wordpress/keycodes": "^3.25.0",
49
- "@wordpress/media-utils": "^4.16.0",
50
- "@wordpress/notices": "^3.25.0",
51
- "@wordpress/plugins": "^5.2.0",
52
- "@wordpress/preferences": "^3.2.0",
53
- "@wordpress/reusable-blocks": "^4.2.0",
54
- "@wordpress/style-engine": "^1.8.0",
55
- "@wordpress/url": "^3.26.0",
56
- "@wordpress/viewport": "^5.2.0",
57
- "@wordpress/widgets": "^3.2.0",
30
+ "@wordpress/a11y": "^3.26.0",
31
+ "@wordpress/api-fetch": "^6.23.0",
32
+ "@wordpress/block-editor": "^11.3.0",
33
+ "@wordpress/block-library": "^8.3.0",
34
+ "@wordpress/blocks": "^12.3.0",
35
+ "@wordpress/components": "^23.3.0",
36
+ "@wordpress/compose": "^6.3.0",
37
+ "@wordpress/core-data": "^6.3.0",
38
+ "@wordpress/data": "^8.3.0",
39
+ "@wordpress/deprecated": "^3.26.0",
40
+ "@wordpress/editor": "^13.3.0",
41
+ "@wordpress/element": "^5.3.0",
42
+ "@wordpress/experiments": "^0.8.0",
43
+ "@wordpress/hooks": "^3.26.0",
44
+ "@wordpress/html-entities": "^3.26.0",
45
+ "@wordpress/i18n": "^4.26.0",
46
+ "@wordpress/icons": "^9.17.0",
47
+ "@wordpress/interface": "^5.3.0",
48
+ "@wordpress/keyboard-shortcuts": "^4.3.0",
49
+ "@wordpress/keycodes": "^3.26.0",
50
+ "@wordpress/media-utils": "^4.17.0",
51
+ "@wordpress/notices": "^3.26.0",
52
+ "@wordpress/plugins": "^5.3.0",
53
+ "@wordpress/preferences": "^3.3.0",
54
+ "@wordpress/reusable-blocks": "^4.3.0",
55
+ "@wordpress/style-engine": "^1.9.0",
56
+ "@wordpress/url": "^3.27.0",
57
+ "@wordpress/viewport": "^5.3.0",
58
+ "@wordpress/widgets": "^3.3.0",
58
59
  "classnames": "^2.3.1",
59
60
  "colord": "^2.9.2",
60
61
  "downloadjs": "^1.4.7",
61
62
  "fast-deep-equal": "^3.1.3",
62
63
  "history": "^5.1.0",
63
64
  "lodash": "^4.17.21",
65
+ "memize": "^1.1.0",
64
66
  "react-autosize-textarea": "^7.1.0",
65
67
  "rememo": "^4.0.0"
66
68
  },
@@ -71,5 +73,5 @@
71
73
  "publishConfig": {
72
74
  "access": "public"
73
75
  },
74
- "gitHead": "204c880ff65295768e9695dfee6c7a9fee1fdd05"
76
+ "gitHead": "cab6ebe2b4c5dbacfd753dcae4a2406559c4813c"
75
77
  }
@@ -10,10 +10,10 @@ import { useState } from '@wordpress/element';
10
10
  import { __ } from '@wordpress/i18n';
11
11
  import {
12
12
  Button,
13
- Flex,
14
- FlexItem,
15
13
  Modal,
16
14
  TextControl,
15
+ __experimentalHStack as HStack,
16
+ __experimentalVStack as VStack,
17
17
  } from '@wordpress/components';
18
18
 
19
19
  /**
@@ -52,7 +52,6 @@ function AddCustomGenericTemplateModal( {
52
52
  return (
53
53
  <Modal
54
54
  title={ __( 'Create custom template' ) }
55
- closeLabel={ __( 'Close' ) }
56
55
  onRequestClose={ () => {
57
56
  onClose();
58
57
  } }
@@ -60,27 +59,22 @@ function AddCustomGenericTemplateModal( {
60
59
  >
61
60
  { isCreatingTemplate && <TemplateActionsLoadingScreen /> }
62
61
  <form onSubmit={ onCreateTemplate }>
63
- <Flex align="flex-start" gap={ 8 }>
64
- <FlexItem>
65
- <TextControl
66
- label={ __( 'Name' ) }
67
- value={ title }
68
- onChange={ setTitle }
69
- placeholder={ defaultTitle }
70
- disabled={ isBusy }
71
- help={ __(
72
- 'Describe the template, e.g. "Post with sidebar".'
73
- ) }
74
- />
75
- </FlexItem>
76
- </Flex>
77
-
78
- <Flex
79
- className="edit-site-custom-generic-template__modal-actions"
80
- justify="flex-end"
81
- expanded={ false }
82
- >
83
- <FlexItem>
62
+ <VStack spacing={ 6 }>
63
+ <TextControl
64
+ __nextHasNoMarginBottom
65
+ label={ __( 'Name' ) }
66
+ value={ title }
67
+ onChange={ setTitle }
68
+ placeholder={ defaultTitle }
69
+ disabled={ isBusy }
70
+ help={ __(
71
+ 'Describe the template, e.g. "Post with sidebar".'
72
+ ) }
73
+ />
74
+ <HStack
75
+ className="edit-site-custom-generic-template__modal-actions"
76
+ justify="right"
77
+ >
84
78
  <Button
85
79
  variant="tertiary"
86
80
  onClick={ () => {
@@ -89,8 +83,6 @@ function AddCustomGenericTemplateModal( {
89
83
  >
90
84
  { __( 'Cancel' ) }
91
85
  </Button>
92
- </FlexItem>
93
- <FlexItem>
94
86
  <Button
95
87
  variant="primary"
96
88
  type="submit"
@@ -99,8 +91,8 @@ function AddCustomGenericTemplateModal( {
99
91
  >
100
92
  { __( 'Create' ) }
101
93
  </Button>
102
- </FlexItem>
103
- </Flex>
94
+ </HStack>
95
+ </VStack>
104
96
  </form>
105
97
  </Modal>
106
98
  );
@@ -184,7 +184,6 @@ function AddCustomTemplateModal( {
184
184
  entityForSuggestions.labels.singular_name
185
185
  ) }
186
186
  className={ baseCssClass }
187
- closeLabel={ __( 'Close' ) }
188
187
  onRequestClose={ onClose }
189
188
  >
190
189
  { isCreatingTemplate && <TemplateActionsLoadingScreen /> }
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { kebabCase } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -20,7 +15,11 @@ import { plus } from '@wordpress/icons';
20
15
  import { useHistory } from '../routes';
21
16
  import { store as editSiteStore } from '../../store';
22
17
  import CreateTemplatePartModal from '../create-template-part-modal';
23
- import { useExistingTemplateParts } from './utils';
18
+ import {
19
+ useExistingTemplateParts,
20
+ getUniqueTemplatePartTitle,
21
+ getCleanTemplatePartSlug,
22
+ } from '../../utils/template-part-create';
24
23
 
25
24
  export default function NewTemplatePart( {
26
25
  postType,
@@ -42,39 +41,19 @@ export default function NewTemplatePart( {
42
41
  return;
43
42
  }
44
43
 
45
- const uniqueTitle = () => {
46
- const lowercaseTitle = title.toLowerCase();
47
- const existingTitles = existingTemplateParts.map(
48
- ( templatePart ) => templatePart.title.rendered.toLowerCase()
49
- );
50
-
51
- if ( ! existingTitles.includes( lowercaseTitle ) ) {
52
- return title;
53
- }
54
-
55
- let suffix = 2;
56
- while (
57
- existingTitles.includes( `${ lowercaseTitle } ${ suffix }` )
58
- ) {
59
- suffix++;
60
- }
61
-
62
- return `${ title } ${ suffix }`;
63
- };
64
-
65
44
  try {
66
- // Currently template parts only allow latin chars.
67
- // Fallback slug will receive suffix by default.
68
- const cleanSlug =
69
- kebabCase( title ).replace( /[^\w-]+/g, '' ) ||
70
- 'wp-custom-part';
45
+ const uniqueTitle = getUniqueTemplatePartTitle(
46
+ title,
47
+ existingTemplateParts
48
+ );
49
+ const cleanSlug = getCleanTemplatePartSlug( uniqueTitle );
71
50
 
72
51
  const templatePart = await saveEntityRecord(
73
52
  'postType',
74
53
  'wp_template_part',
75
54
  {
76
55
  slug: cleanSlug,
77
- title: uniqueTitle(),
56
+ title: uniqueTitle,
78
57
  content: '',
79
58
  area,
80
59
  },
@@ -151,10 +151,6 @@
151
151
  }
152
152
  }
153
153
 
154
- .edit-site-custom-generic-template__modal-actions {
155
- margin-top: $grid-unit-15;
156
- }
157
-
158
154
  .edit-site-template-actions-loading-screen-modal {
159
155
  backdrop-filter: none;
160
156
  background-color: transparent;
@@ -52,20 +52,6 @@ export const useExistingTemplates = () => {
52
52
  );
53
53
  };
54
54
 
55
- export const useExistingTemplateParts = () => {
56
- return useSelect(
57
- ( select ) =>
58
- select( coreStore ).getEntityRecords(
59
- 'postType',
60
- 'wp_template_part',
61
- {
62
- per_page: -1,
63
- }
64
- ),
65
- []
66
- );
67
- };
68
-
69
55
  export const useDefaultTemplateTypes = () => {
70
56
  return useSelect(
71
57
  ( select ) =>
@@ -15,7 +15,7 @@ import { PluginArea } from '@wordpress/plugins';
15
15
  import { Routes } from '../routes';
16
16
  import Layout from '../layout';
17
17
 
18
- export default function App( { reboot } ) {
18
+ export default function App() {
19
19
  const { createErrorNotice } = useDispatch( noticesStore );
20
20
 
21
21
  function onPluginAreaError( name ) {
@@ -37,7 +37,7 @@ export default function App( { reboot } ) {
37
37
  <UnsavedChangesWarning />
38
38
 
39
39
  <Routes>
40
- <Layout onError={ reboot } />
40
+ <Layout />
41
41
  <PluginArea onError={ onPluginAreaError } />
42
42
  </Routes>
43
43
  </SlotFillProvider>
@@ -7,22 +7,17 @@ import classnames from 'classnames';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { useSelect, useDispatch } from '@wordpress/data';
10
- import { useCallback, useMemo, useRef } from '@wordpress/element';
11
- import {
12
- useEntityBlockEditor,
13
- __experimentalFetchMedia as fetchMedia,
14
- store as coreStore,
15
- } from '@wordpress/core-data';
10
+ import { useMemo, useRef } from '@wordpress/element';
11
+ import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
16
12
  import {
17
13
  BlockList,
18
- BlockEditorProvider,
19
- __experimentalLinkControl,
20
14
  BlockInspector,
21
15
  BlockTools,
22
16
  __unstableUseClipboardHandler as useClipboardHandler,
23
17
  __unstableUseTypingObserver as useTypingObserver,
24
18
  BlockEditorKeyboardShortcuts,
25
19
  store as blockEditorStore,
20
+ experiments as blockEditorExperiments,
26
21
  } from '@wordpress/block-editor';
27
22
  import {
28
23
  useMergeRefs,
@@ -34,14 +29,17 @@ import { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';
34
29
  /**
35
30
  * Internal dependencies
36
31
  */
32
+ import inserterMediaCategories from './inserter-media-categories';
37
33
  import TemplatePartConverter from '../template-part-converter';
38
- import NavigateToLink from '../navigate-to-link';
39
34
  import { SidebarInspectorFill } from '../sidebar-edit-mode';
40
35
  import { store as editSiteStore } from '../../store';
41
36
  import BackButton from './back-button';
42
37
  import ResizableEditor from './resizable-editor';
43
38
  import EditorCanvas from './editor-canvas';
44
39
  import StyleBook from '../style-book';
40
+ import { unlock } from '../../experiments';
41
+
42
+ const { ExperimentalBlockEditorProvider } = unlock( blockEditorExperiments );
45
43
 
46
44
  const LAYOUT = {
47
45
  type: 'default',
@@ -50,7 +48,7 @@ const LAYOUT = {
50
48
  };
51
49
 
52
50
  export default function BlockEditor() {
53
- const { setPage, setIsInserterOpened } = useDispatch( editSiteStore );
51
+ const { setIsInserterOpened } = useDispatch( editSiteStore );
54
52
  const { storedSettings, templateType, canvasMode } = useSelect(
55
53
  ( select ) => {
56
54
  const { getSettings, getEditedPostType, __unstableGetCanvasMode } =
@@ -122,7 +120,7 @@ export default function BlockEditor() {
122
120
 
123
121
  return {
124
122
  ...restStoredSettings,
125
- __unstableFetchMedia: fetchMedia,
123
+ inserterMediaCategories,
126
124
  __experimentalBlockPatterns: blockPatterns,
127
125
  __experimentalBlockPatternCategories: blockPatternCategories,
128
126
  };
@@ -155,7 +153,7 @@ export default function BlockEditor() {
155
153
  ( isTemplatePart && hasBlocks ) || isViewMode ? false : undefined;
156
154
 
157
155
  return (
158
- <BlockEditorProvider
156
+ <ExperimentalBlockEditorProvider
159
157
  settings={ settings }
160
158
  value={ blocks }
161
159
  onInput={ onInput }
@@ -163,17 +161,6 @@ export default function BlockEditor() {
163
161
  useSubRegistry={ false }
164
162
  >
165
163
  <TemplatePartConverter />
166
- <__experimentalLinkControl.ViewerFill>
167
- { useCallback(
168
- ( fillProps ) => (
169
- <NavigateToLink
170
- { ...fillProps }
171
- onActivePageChange={ setPage }
172
- />
173
- ),
174
- []
175
- ) }
176
- </__experimentalLinkControl.ViewerFill>
177
164
  <SidebarInspectorFill>
178
165
  <BlockInspector />
179
166
  </SidebarInspectorFill>
@@ -204,7 +191,7 @@ export default function BlockEditor() {
204
191
  <BackButton />
205
192
  <ResizableEditor
206
193
  enableResizing={ enableResizing }
207
- height={ sizes.height }
194
+ height={ sizes.height ?? '100%' }
208
195
  >
209
196
  <EditorCanvas
210
197
  enableResizing={ enableResizing }
@@ -225,6 +212,6 @@ export default function BlockEditor() {
225
212
  }
226
213
  </StyleBook.Slot>
227
214
  <ReusableBlocksMenuItems />
228
- </BlockEditorProvider>
215
+ </ExperimentalBlockEditorProvider>
229
216
  );
230
217
  }
@@ -0,0 +1,247 @@
1
+ /**
2
+ * The `edit-site` settings here need to be in sync with the corresponding ones in `site-editor` package.
3
+ * See `packages/edit-site/src/components/block-editor/inserter-media-categories.js`.
4
+ *
5
+ * In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.
6
+ * The rest of the settings would still need to be in sync though.
7
+ */
8
+
9
+ /**
10
+ * WordPress dependencies
11
+ */
12
+ import { __, sprintf, _x } from '@wordpress/i18n';
13
+ import { resolveSelect } from '@wordpress/data';
14
+ import { decodeEntities } from '@wordpress/html-entities';
15
+
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+ import { store as coreStore } from '@wordpress/core-data';
20
+
21
+ /** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */
22
+ /** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */
23
+ /**
24
+ * Interface for inserter media category labels.
25
+ *
26
+ * @typedef {Object} InserterMediaCategoryLabels
27
+ * @property {string} name General name of the media category. It's used in the inserter media items list.
28
+ * @property {string} [search_items='Search'] Label for searching items. Default is ‘Search Posts’ / ‘Search Pages’.
29
+ */
30
+ /**
31
+ * Interface for inserter media category.
32
+ *
33
+ * @typedef {Object} InserterMediaCategory
34
+ * @property {string} name The name of the media category, that should be unique among all media categories.
35
+ * @property {InserterMediaCategoryLabels} labels Labels for the media category.
36
+ * @property {('image'|'audio'|'video')} mediaType The media type of the media category.
37
+ * @property {(InserterMediaRequest) => Promise<InserterMediaItem[]>} fetch The function to fetch media items for the category.
38
+ * @property {(InserterMediaItem) => string} [getReportUrl] If the media category supports reporting media items, this function should return
39
+ * the report url for the media item. It accepts the `InserterMediaItem` as an argument.
40
+ * @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true.
41
+ * This is used to avoid making a request to the external resource when the user
42
+ * opens the inserter for the first time.
43
+ */
44
+
45
+ const getExternalLink = ( url, text ) =>
46
+ `<a ${ getExternalLinkAttributes( url ) }>${ text }</a>`;
47
+
48
+ const getExternalLinkAttributes = ( url ) =>
49
+ `href="${ url }" target="_blank" rel="noreferrer noopener"`;
50
+
51
+ const getOpenverseLicense = ( license, licenseVersion ) => {
52
+ let licenseName = license.trim();
53
+ // PDM has no abbreviation
54
+ if ( license !== 'pdm' ) {
55
+ licenseName = license.toUpperCase().replace( 'SAMPLING', 'Sampling' );
56
+ }
57
+ // If version is known, append version to the name.
58
+ // The license has to have a version to be valid. Only
59
+ // PDM (public domain mark) doesn't have a version.
60
+ if ( licenseVersion ) {
61
+ licenseName += ` ${ licenseVersion }`;
62
+ }
63
+ // For licenses other than public-domain marks, prepend 'CC' to the name.
64
+ if ( ! [ 'pdm', 'cc0' ].includes( license ) ) {
65
+ licenseName = `CC ${ licenseName }`;
66
+ }
67
+ return licenseName;
68
+ };
69
+
70
+ const getOpenverseCaption = ( item ) => {
71
+ const {
72
+ title,
73
+ foreign_landing_url: foreignLandingUrl,
74
+ creator,
75
+ creator_url: creatorUrl,
76
+ license,
77
+ license_version: licenseVersion,
78
+ license_url: licenseUrl,
79
+ } = item;
80
+ const fullLicense = getOpenverseLicense( license, licenseVersion );
81
+ const _creator = decodeEntities( creator );
82
+ let _caption;
83
+ if ( _creator ) {
84
+ _caption = title
85
+ ? sprintf(
86
+ // translators: %1s: Title of a media work from Openverse; %2s: Name of the work's creator; %3s: Work's licence e.g: "CC0 1.0".
87
+ _x( '"%1$s" by %2$s/ %3$s', 'caption' ),
88
+ getExternalLink(
89
+ foreignLandingUrl,
90
+ decodeEntities( title )
91
+ ),
92
+ creatorUrl
93
+ ? getExternalLink( creatorUrl, _creator )
94
+ : _creator,
95
+ licenseUrl
96
+ ? getExternalLink(
97
+ `${ licenseUrl }?ref=openverse`,
98
+ fullLicense
99
+ )
100
+ : fullLicense
101
+ )
102
+ : sprintf(
103
+ // translators: %1s: Link attributes for a given Openverse media work; %2s: Name of the work's creator; %3s: Works's licence e.g: "CC0 1.0".
104
+ _x( '<a %1$s>Work</a> by %2$s/ %3$s', 'caption' ),
105
+ getExternalLinkAttributes( foreignLandingUrl ),
106
+ creatorUrl
107
+ ? getExternalLink( creatorUrl, _creator )
108
+ : _creator,
109
+ licenseUrl
110
+ ? getExternalLink(
111
+ `${ licenseUrl }?ref=openverse`,
112
+ fullLicense
113
+ )
114
+ : fullLicense
115
+ );
116
+ } else {
117
+ _caption = title
118
+ ? sprintf(
119
+ // translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: "CC0 1.0".
120
+ _x( '"%1$s"/ %2$s', 'caption' ),
121
+ getExternalLink(
122
+ foreignLandingUrl,
123
+ decodeEntities( title )
124
+ ),
125
+ licenseUrl
126
+ ? getExternalLink(
127
+ `${ licenseUrl }?ref=openverse`,
128
+ fullLicense
129
+ )
130
+ : fullLicense
131
+ )
132
+ : sprintf(
133
+ // translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: "CC0 1.0".
134
+ _x( '<a %1$s>Work</a>/ %3$s', 'caption' ),
135
+ getExternalLinkAttributes( foreignLandingUrl ),
136
+ licenseUrl
137
+ ? getExternalLink(
138
+ `${ licenseUrl }?ref=openverse`,
139
+ fullLicense
140
+ )
141
+ : fullLicense
142
+ );
143
+ }
144
+ return _caption.replace( /\s{2}/g, ' ' );
145
+ };
146
+
147
+ const coreMediaFetch = async ( query = {} ) => {
148
+ const mediaItems = await resolveSelect( coreStore ).getMediaItems( {
149
+ ...query,
150
+ orderBy: !! query?.search ? 'relevance' : 'date',
151
+ } );
152
+ return mediaItems.map( ( mediaItem ) => ( {
153
+ ...mediaItem,
154
+ alt: mediaItem.alt_text,
155
+ url: mediaItem.source_url,
156
+ previewUrl: mediaItem.media_details?.sizes?.medium?.source_url,
157
+ caption: mediaItem.caption?.raw,
158
+ } ) );
159
+ };
160
+
161
+ /** @type {InserterMediaCategory[]} */
162
+ const inserterMediaCategories = [
163
+ {
164
+ name: 'images',
165
+ labels: {
166
+ name: __( 'Images' ),
167
+ search_items: __( 'Search images' ),
168
+ },
169
+ mediaType: 'image',
170
+ async fetch( query = {} ) {
171
+ return coreMediaFetch( { ...query, media_type: 'image' } );
172
+ },
173
+ },
174
+ {
175
+ name: 'videos',
176
+ labels: {
177
+ name: __( 'Videos' ),
178
+ search_items: __( 'Search videos' ),
179
+ },
180
+ mediaType: 'video',
181
+ async fetch( query = {} ) {
182
+ return coreMediaFetch( { ...query, media_type: 'video' } );
183
+ },
184
+ },
185
+ {
186
+ name: 'audio',
187
+ labels: {
188
+ name: __( 'Audio' ),
189
+ search_items: __( 'Search audio' ),
190
+ },
191
+ mediaType: 'audio',
192
+ async fetch( query = {} ) {
193
+ return coreMediaFetch( { ...query, media_type: 'audio' } );
194
+ },
195
+ },
196
+ {
197
+ name: 'openverse',
198
+ labels: {
199
+ name: __( 'Openverse' ),
200
+ search_items: __( 'Search Openverse' ),
201
+ },
202
+ mediaType: 'image',
203
+ async fetch( query = {} ) {
204
+ const defaultArgs = {
205
+ mature: false,
206
+ excluded_source: 'flickr,inaturalist,wikimedia',
207
+ license: 'pdm,cc0',
208
+ };
209
+ const finalQuery = { ...query, ...defaultArgs };
210
+ const mapFromInserterMediaRequest = {
211
+ per_page: 'page_size',
212
+ search: 'q',
213
+ };
214
+ const url = new URL(
215
+ 'https://api.openverse.engineering/v1/images/'
216
+ );
217
+ Object.entries( finalQuery ).forEach( ( [ key, value ] ) => {
218
+ const queryKey = mapFromInserterMediaRequest[ key ] || key;
219
+ url.searchParams.set( queryKey, value );
220
+ } );
221
+ const response = await window.fetch( url, {
222
+ headers: {
223
+ 'User-Agent': 'WordPress/inserter-media-fetch',
224
+ },
225
+ } );
226
+ const jsonResponse = await response.json();
227
+ const results = jsonResponse.results;
228
+ return results.map( ( result ) => ( {
229
+ ...result,
230
+ // This is a temp solution for better titles, until Openverse API
231
+ // completes the cleaning up of some titles of their upstream data.
232
+ title: result.title?.toLowerCase().startsWith( 'file:' )
233
+ ? result.title.slice( 5 )
234
+ : result.title,
235
+ sourceId: result.id,
236
+ id: undefined,
237
+ caption: getOpenverseCaption( result ),
238
+ previewUrl: result.thumbnail,
239
+ } ) );
240
+ },
241
+ getReportUrl: ( { sourceId } ) =>
242
+ `https://wordpress.org/openverse/image/${ sourceId }/report/`,
243
+ isExternalResource: true,
244
+ },
245
+ ];
246
+
247
+ export default inserterMediaCategories;