@wordpress/block-editor 14.1.0 → 14.2.1-next.5368f64a9.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 (679) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -10
  3. package/build/components/block-alignment-matrix-control/index.js +2 -2
  4. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +2 -2
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-canvas/index.js +8 -1
  8. package/build/components/block-canvas/index.js.map +1 -1
  9. package/build/components/block-compare/block-view.js +1 -0
  10. package/build/components/block-compare/block-view.js.map +1 -1
  11. package/build/components/block-draggable/index.js +4 -4
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-edit/multiple-usage-warning.js +2 -0
  16. package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
  17. package/build/components/block-inspector/index.js +27 -11
  18. package/build/components/block-inspector/index.js.map +1 -1
  19. package/build/components/block-list/block-invalid-warning.js +3 -2
  20. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  21. package/build/components/block-list/block.js +5 -1
  22. package/build/components/block-list/block.js.map +1 -1
  23. package/build/components/block-list/index.js +14 -3
  24. package/build/components/block-list/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/index.js +5 -1
  26. package/build/components/block-list/use-block-props/index.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  28. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +53 -0
  30. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  31. package/build/components/block-list/zoom-out-separator.js +98 -0
  32. package/build/components/block-list/zoom-out-separator.js.map +1 -0
  33. package/build/components/block-lock/toolbar.js +3 -3
  34. package/build/components/block-lock/toolbar.js.map +1 -1
  35. package/build/components/block-mover/button.js +1 -0
  36. package/build/components/block-mover/button.js.map +1 -1
  37. package/build/components/block-mover/index.js +1 -0
  38. package/build/components/block-mover/index.js.map +1 -1
  39. package/build/components/block-navigation/dropdown.js +4 -1
  40. package/build/components/block-navigation/dropdown.js.map +1 -1
  41. package/build/components/block-pattern-setup/index.js +2 -10
  42. package/build/components/block-pattern-setup/index.js.map +1 -1
  43. package/build/components/block-pattern-setup/setup-toolbar.js +22 -7
  44. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  45. package/build/components/block-patterns-list/index.js +12 -20
  46. package/build/components/block-patterns-list/index.js.map +1 -1
  47. package/build/components/block-patterns-paging/index.js +12 -3
  48. package/build/components/block-patterns-paging/index.js.map +1 -1
  49. package/build/components/block-popover/index.js +2 -15
  50. package/build/components/block-popover/index.js.map +1 -1
  51. package/build/components/block-quick-navigation/index.js +4 -1
  52. package/build/components/block-quick-navigation/index.js.map +1 -1
  53. package/build/components/block-settings-menu-controls/index.js +4 -0
  54. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  55. package/build/components/block-switcher/index.js +30 -19
  56. package/build/components/block-switcher/index.js.map +1 -1
  57. package/build/components/block-switcher/pattern-transformations-menu.js +2 -10
  58. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +19 -12
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-toolbar/shuffle.js +6 -2
  62. package/build/components/block-toolbar/shuffle.js.map +1 -1
  63. package/build/components/block-tools/block-selection-button.js +8 -2
  64. package/build/components/block-tools/block-selection-button.js.map +1 -1
  65. package/build/components/block-tools/block-toolbar-popover.js +10 -6
  66. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  67. package/build/components/block-tools/index.js +1 -1
  68. package/build/components/block-tools/index.js.map +1 -1
  69. package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  70. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  71. package/build/components/block-tools/zoom-out-mode-inserters.js +7 -21
  72. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  73. package/build/components/block-tools/zoom-out-popover.js +3 -4
  74. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  75. package/build/components/block-tools/zoom-out-toolbar.js +26 -7
  76. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  77. package/build/components/block-variation-picker/index.js +4 -1
  78. package/build/components/block-variation-picker/index.js.map +1 -1
  79. package/build/components/block-variation-transforms/index.js +4 -1
  80. package/build/components/block-variation-transforms/index.js.map +1 -1
  81. package/build/components/button-block-appender/index.js +20 -23
  82. package/build/components/button-block-appender/index.js.map +1 -1
  83. package/build/components/colors-gradients/dropdown.js +4 -1
  84. package/build/components/colors-gradients/dropdown.js.map +1 -1
  85. package/build/components/content-lock/index.js +13 -0
  86. package/build/components/content-lock/index.js.map +1 -0
  87. package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
  88. package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  89. package/build/components/editor-styles/index.js +4 -3
  90. package/build/components/editor-styles/index.js.map +1 -1
  91. package/build/components/global-styles/background-panel.js +8 -12
  92. package/build/components/global-styles/background-panel.js.map +1 -1
  93. package/build/components/global-styles/color-panel.js +8 -5
  94. package/build/components/global-styles/color-panel.js.map +1 -1
  95. package/build/components/global-styles/color-panel.native.js +1 -1
  96. package/build/components/global-styles/color-panel.native.js.map +1 -1
  97. package/build/components/global-styles/dimensions-panel.js +34 -37
  98. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  99. package/build/components/global-styles/filters-panel.js +4 -1
  100. package/build/components/global-styles/filters-panel.js.map +1 -1
  101. package/build/components/global-styles/shadow-panel-components.js +14 -17
  102. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  103. package/build/components/global-styles/typography-utils.js +17 -6
  104. package/build/components/global-styles/typography-utils.js.map +1 -1
  105. package/build/components/global-styles/utils.js +4 -6
  106. package/build/components/global-styles/utils.js.map +1 -1
  107. package/build/components/grid/grid-item-movers.js +2 -2
  108. package/build/components/grid/grid-item-movers.js.map +1 -1
  109. package/build/components/iframe/get-compatibility-styles.js +1 -1
  110. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  111. package/build/components/iframe/index.js +5 -5
  112. package/build/components/iframe/index.js.map +1 -1
  113. package/build/components/inner-blocks/index.js +2 -4
  114. package/build/components/inner-blocks/index.js.map +1 -1
  115. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  116. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  117. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  118. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  119. package/build/components/inserter/block-patterns-tab/index.js +4 -1
  120. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  121. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  122. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  123. package/build/components/inserter/index.js +4 -11
  124. package/build/components/inserter/index.js.map +1 -1
  125. package/build/components/inserter/library.js +2 -4
  126. package/build/components/inserter/library.js.map +1 -1
  127. package/build/components/inserter/media-tab/hooks.js +3 -3
  128. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  129. package/build/components/inserter/media-tab/media-list.js +1 -8
  130. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  131. package/build/components/inserter/media-tab/media-preview.js +9 -7
  132. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  133. package/build/components/inserter/media-tab/media-tab.js +4 -1
  134. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  135. package/build/components/inserter/menu.js +7 -24
  136. package/build/components/inserter/menu.js.map +1 -1
  137. package/build/components/inserter/quick-inserter.js +4 -5
  138. package/build/components/inserter/quick-inserter.js.map +1 -1
  139. package/build/components/inserter-list-item/index.js +4 -4
  140. package/build/components/inserter-list-item/index.js.map +1 -1
  141. package/build/components/inserter-listbox/index.js +3 -13
  142. package/build/components/inserter-listbox/index.js.map +1 -1
  143. package/build/components/inserter-listbox/item.js +6 -11
  144. package/build/components/inserter-listbox/item.js.map +1 -1
  145. package/build/components/inserter-listbox/row.js +1 -9
  146. package/build/components/inserter-listbox/row.js.map +1 -1
  147. package/build/components/inspector-controls/groups.js +2 -0
  148. package/build/components/inspector-controls/groups.js.map +1 -1
  149. package/build/components/inspector-controls-tabs/index.js +4 -1
  150. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  151. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  152. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  153. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  154. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  155. package/build/components/inspector-popover-header/index.js +8 -2
  156. package/build/components/inspector-popover-header/index.js.map +1 -1
  157. package/build/components/letter-spacing-control/index.js +7 -4
  158. package/build/components/letter-spacing-control/index.js.map +1 -1
  159. package/build/components/link-control/index.js +19 -10
  160. package/build/components/link-control/index.js.map +1 -1
  161. package/build/components/link-control/settings-drawer.js +4 -1
  162. package/build/components/link-control/settings-drawer.js.map +1 -1
  163. package/build/components/list-view/block-select-button.js +4 -1
  164. package/build/components/list-view/block-select-button.js.map +1 -1
  165. package/build/components/list-view/index.js +3 -7
  166. package/build/components/list-view/index.js.map +1 -1
  167. package/build/components/media-placeholder/index.js +32 -11
  168. package/build/components/media-placeholder/index.js.map +1 -1
  169. package/build/components/media-replace-flow/index.js +8 -1
  170. package/build/components/media-replace-flow/index.js.map +1 -1
  171. package/build/components/provider/use-block-sync.js +19 -19
  172. package/build/components/provider/use-block-sync.js.map +1 -1
  173. package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
  174. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  175. package/build/components/rich-text/index.js +38 -30
  176. package/build/components/rich-text/index.js.map +1 -1
  177. package/build/components/rich-text/use-mark-persistent.js +5 -5
  178. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  179. package/build/components/skip-to-selected-block/index.js +4 -1
  180. package/build/components/skip-to-selected-block/index.js.map +1 -1
  181. package/build/components/tool-selector/index.js +4 -1
  182. package/build/components/tool-selector/index.js.map +1 -1
  183. package/build/components/url-input/button.js +12 -3
  184. package/build/components/url-input/button.js.map +1 -1
  185. package/build/components/url-input/index.js +4 -1
  186. package/build/components/url-input/index.js.map +1 -1
  187. package/build/components/use-block-drop-zone/index.js +31 -7
  188. package/build/components/use-block-drop-zone/index.js.map +1 -1
  189. package/build/components/writing-flow/index.js +2 -1
  190. package/build/components/writing-flow/index.js.map +1 -1
  191. package/build/components/writing-flow/use-arrow-nav.js +4 -1
  192. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  193. package/build/components/writing-flow/use-event-redirect.js +66 -0
  194. package/build/components/writing-flow/use-event-redirect.js.map +1 -0
  195. package/build/components/writing-flow/use-input.js +31 -1
  196. package/build/components/writing-flow/use-input.js.map +1 -1
  197. package/build/components/writing-flow/use-select-all.js +14 -1
  198. package/build/components/writing-flow/use-select-all.js.map +1 -1
  199. package/build/components/writing-flow/use-selection-observer.js +20 -6
  200. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  201. package/build/components/writing-flow/use-tab-nav.js +4 -4
  202. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  203. package/build/components/writing-flow/utils.js +27 -0
  204. package/build/components/writing-flow/utils.js.map +1 -1
  205. package/build/hooks/block-bindings.js +32 -29
  206. package/build/hooks/block-bindings.js.map +1 -1
  207. package/build/hooks/content-lock-ui.js +8 -26
  208. package/build/hooks/content-lock-ui.js.map +1 -1
  209. package/build/hooks/duotone.js +0 -4
  210. package/build/hooks/duotone.js.map +1 -1
  211. package/build/hooks/layout.js +4 -2
  212. package/build/hooks/layout.js.map +1 -1
  213. package/build/hooks/spacing-visualizer.js +3 -3
  214. package/build/hooks/spacing-visualizer.js.map +1 -1
  215. package/build/hooks/style.js +1 -5
  216. package/build/hooks/style.js.map +1 -1
  217. package/build/hooks/use-bindings-attributes.js +19 -20
  218. package/build/hooks/use-bindings-attributes.js.map +1 -1
  219. package/build/hooks/use-zoom-out.js +7 -7
  220. package/build/hooks/use-zoom-out.js.map +1 -1
  221. package/build/layouts/constrained.js +41 -42
  222. package/build/layouts/constrained.js.map +1 -1
  223. package/build/layouts/flex.js +4 -1
  224. package/build/layouts/flex.js.map +1 -1
  225. package/build/layouts/grid.js +19 -16
  226. package/build/layouts/grid.js.map +1 -1
  227. package/build/layouts/utils.js +1 -7
  228. package/build/layouts/utils.js.map +1 -1
  229. package/build/private-apis.js +2 -3
  230. package/build/private-apis.js.map +1 -1
  231. package/build/store/actions.js +2 -7
  232. package/build/store/actions.js.map +1 -1
  233. package/build/store/private-actions.js +1 -0
  234. package/build/store/private-actions.js.map +1 -1
  235. package/build/store/private-keys.js +2 -1
  236. package/build/store/private-keys.js.map +1 -1
  237. package/build/store/private-selectors.js +16 -18
  238. package/build/store/private-selectors.js.map +1 -1
  239. package/build/store/reducer.js +1 -10
  240. package/build/store/reducer.js.map +1 -1
  241. package/build/store/selectors.js +19 -43
  242. package/build/store/selectors.js.map +1 -1
  243. package/build/store/utils.js +48 -0
  244. package/build/store/utils.js.map +1 -1
  245. package/build/utils/block-bindings.js +16 -11
  246. package/build/utils/block-bindings.js.map +1 -1
  247. package/build/utils/dom.js +101 -0
  248. package/build/utils/dom.js.map +1 -1
  249. package/build/utils/get-font-styles-and-weights.js +4 -4
  250. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  251. package/build/utils/transform-styles/index.js +120 -16
  252. package/build/utils/transform-styles/index.js.map +1 -1
  253. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  254. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  255. package/build-module/components/block-breadcrumb/index.js +2 -2
  256. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  257. package/build-module/components/block-canvas/index.js +9 -1
  258. package/build-module/components/block-canvas/index.js.map +1 -1
  259. package/build-module/components/block-compare/block-view.js +1 -0
  260. package/build-module/components/block-compare/block-view.js.map +1 -1
  261. package/build-module/components/block-draggable/index.js +4 -4
  262. package/build-module/components/block-draggable/index.js.map +1 -1
  263. package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
  264. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  265. package/build-module/components/block-edit/multiple-usage-warning.js +2 -0
  266. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  267. package/build-module/components/block-inspector/index.js +27 -11
  268. package/build-module/components/block-inspector/index.js.map +1 -1
  269. package/build-module/components/block-list/block-invalid-warning.js +3 -2
  270. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  271. package/build-module/components/block-list/block.js +5 -1
  272. package/build-module/components/block-list/block.js.map +1 -1
  273. package/build-module/components/block-list/index.js +14 -3
  274. package/build-module/components/block-list/index.js.map +1 -1
  275. package/build-module/components/block-list/use-block-props/index.js +5 -1
  276. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  277. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  278. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  279. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +47 -0
  280. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  281. package/build-module/components/block-list/zoom-out-separator.js +90 -0
  282. package/build-module/components/block-list/zoom-out-separator.js.map +1 -0
  283. package/build-module/components/block-lock/toolbar.js +3 -3
  284. package/build-module/components/block-lock/toolbar.js.map +1 -1
  285. package/build-module/components/block-mover/button.js +1 -0
  286. package/build-module/components/block-mover/button.js.map +1 -1
  287. package/build-module/components/block-mover/index.js +1 -0
  288. package/build-module/components/block-mover/index.js.map +1 -1
  289. package/build-module/components/block-navigation/dropdown.js +4 -1
  290. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  291. package/build-module/components/block-pattern-setup/index.js +2 -10
  292. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  293. package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
  294. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  295. package/build-module/components/block-patterns-list/index.js +12 -20
  296. package/build-module/components/block-patterns-list/index.js.map +1 -1
  297. package/build-module/components/block-patterns-paging/index.js +12 -3
  298. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  299. package/build-module/components/block-popover/index.js +2 -15
  300. package/build-module/components/block-popover/index.js.map +1 -1
  301. package/build-module/components/block-quick-navigation/index.js +4 -1
  302. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  303. package/build-module/components/block-settings-menu-controls/index.js +4 -0
  304. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  305. package/build-module/components/block-switcher/index.js +30 -19
  306. package/build-module/components/block-switcher/index.js.map +1 -1
  307. package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -10
  308. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  309. package/build-module/components/block-toolbar/index.js +19 -12
  310. package/build-module/components/block-toolbar/index.js.map +1 -1
  311. package/build-module/components/block-toolbar/shuffle.js +6 -2
  312. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  313. package/build-module/components/block-tools/block-selection-button.js +8 -2
  314. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  315. package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
  316. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  317. package/build-module/components/block-tools/index.js +1 -1
  318. package/build-module/components/block-tools/index.js.map +1 -1
  319. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  320. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  321. package/build-module/components/block-tools/zoom-out-mode-inserters.js +7 -22
  322. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  323. package/build-module/components/block-tools/zoom-out-popover.js +3 -4
  324. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  325. package/build-module/components/block-tools/zoom-out-toolbar.js +27 -8
  326. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  327. package/build-module/components/block-variation-picker/index.js +4 -1
  328. package/build-module/components/block-variation-picker/index.js.map +1 -1
  329. package/build-module/components/block-variation-transforms/index.js +4 -1
  330. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  331. package/build-module/components/button-block-appender/index.js +22 -26
  332. package/build-module/components/button-block-appender/index.js.map +1 -1
  333. package/build-module/components/colors-gradients/dropdown.js +4 -1
  334. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  335. package/build-module/components/content-lock/index.js +2 -0
  336. package/build-module/components/content-lock/index.js.map +1 -0
  337. package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
  338. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  339. package/build-module/components/editor-styles/index.js +4 -3
  340. package/build-module/components/editor-styles/index.js.map +1 -1
  341. package/build-module/components/global-styles/background-panel.js +8 -12
  342. package/build-module/components/global-styles/background-panel.js.map +1 -1
  343. package/build-module/components/global-styles/color-panel.js +7 -4
  344. package/build-module/components/global-styles/color-panel.js.map +1 -1
  345. package/build-module/components/global-styles/color-panel.native.js +2 -2
  346. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  347. package/build-module/components/global-styles/dimensions-panel.js +36 -39
  348. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  349. package/build-module/components/global-styles/filters-panel.js +4 -1
  350. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  351. package/build-module/components/global-styles/shadow-panel-components.js +14 -17
  352. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  353. package/build-module/components/global-styles/typography-utils.js +17 -6
  354. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  355. package/build-module/components/global-styles/utils.js +4 -6
  356. package/build-module/components/global-styles/utils.js.map +1 -1
  357. package/build-module/components/grid/grid-item-movers.js +3 -3
  358. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  359. package/build-module/components/iframe/get-compatibility-styles.js +1 -1
  360. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  361. package/build-module/components/iframe/index.js +5 -5
  362. package/build-module/components/iframe/index.js.map +1 -1
  363. package/build-module/components/inner-blocks/index.js +2 -4
  364. package/build-module/components/inner-blocks/index.js.map +1 -1
  365. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  366. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  367. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  368. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  369. package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
  370. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  371. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  372. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  373. package/build-module/components/inserter/index.js +4 -11
  374. package/build-module/components/inserter/index.js.map +1 -1
  375. package/build-module/components/inserter/library.js +2 -4
  376. package/build-module/components/inserter/library.js.map +1 -1
  377. package/build-module/components/inserter/media-tab/hooks.js +3 -3
  378. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  379. package/build-module/components/inserter/media-tab/media-list.js +1 -8
  380. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  381. package/build-module/components/inserter/media-tab/media-preview.js +10 -8
  382. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  383. package/build-module/components/inserter/media-tab/media-tab.js +4 -1
  384. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  385. package/build-module/components/inserter/menu.js +7 -24
  386. package/build-module/components/inserter/menu.js.map +1 -1
  387. package/build-module/components/inserter/quick-inserter.js +5 -6
  388. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  389. package/build-module/components/inserter-list-item/index.js +4 -4
  390. package/build-module/components/inserter-list-item/index.js.map +1 -1
  391. package/build-module/components/inserter-listbox/index.js +3 -11
  392. package/build-module/components/inserter-listbox/index.js.map +1 -1
  393. package/build-module/components/inserter-listbox/item.js +7 -12
  394. package/build-module/components/inserter-listbox/item.js.map +1 -1
  395. package/build-module/components/inserter-listbox/row.js +2 -10
  396. package/build-module/components/inserter-listbox/row.js.map +1 -1
  397. package/build-module/components/inspector-controls/groups.js +2 -0
  398. package/build-module/components/inspector-controls/groups.js.map +1 -1
  399. package/build-module/components/inspector-controls-tabs/index.js +4 -1
  400. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  401. package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
  402. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  403. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  404. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  405. package/build-module/components/inspector-popover-header/index.js +8 -2
  406. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  407. package/build-module/components/letter-spacing-control/index.js +7 -4
  408. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  409. package/build-module/components/link-control/index.js +19 -10
  410. package/build-module/components/link-control/index.js.map +1 -1
  411. package/build-module/components/link-control/settings-drawer.js +4 -1
  412. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  413. package/build-module/components/list-view/block-select-button.js +4 -1
  414. package/build-module/components/list-view/block-select-button.js.map +1 -1
  415. package/build-module/components/list-view/index.js +3 -7
  416. package/build-module/components/list-view/index.js.map +1 -1
  417. package/build-module/components/media-placeholder/index.js +32 -11
  418. package/build-module/components/media-placeholder/index.js.map +1 -1
  419. package/build-module/components/media-replace-flow/index.js +8 -1
  420. package/build-module/components/media-replace-flow/index.js.map +1 -1
  421. package/build-module/components/provider/use-block-sync.js +19 -19
  422. package/build-module/components/provider/use-block-sync.js.map +1 -1
  423. package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
  424. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  425. package/build-module/components/rich-text/index.js +39 -31
  426. package/build-module/components/rich-text/index.js.map +1 -1
  427. package/build-module/components/rich-text/use-mark-persistent.js +5 -5
  428. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  429. package/build-module/components/skip-to-selected-block/index.js +4 -1
  430. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  431. package/build-module/components/tool-selector/index.js +4 -1
  432. package/build-module/components/tool-selector/index.js.map +1 -1
  433. package/build-module/components/url-input/button.js +12 -3
  434. package/build-module/components/url-input/button.js.map +1 -1
  435. package/build-module/components/url-input/index.js +4 -1
  436. package/build-module/components/url-input/index.js.map +1 -1
  437. package/build-module/components/use-block-drop-zone/index.js +31 -7
  438. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  439. package/build-module/components/writing-flow/index.js +2 -1
  440. package/build-module/components/writing-flow/index.js.map +1 -1
  441. package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
  442. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  443. package/build-module/components/writing-flow/use-event-redirect.js +60 -0
  444. package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
  445. package/build-module/components/writing-flow/use-input.js +31 -1
  446. package/build-module/components/writing-flow/use-input.js.map +1 -1
  447. package/build-module/components/writing-flow/use-select-all.js +14 -1
  448. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  449. package/build-module/components/writing-flow/use-selection-observer.js +16 -2
  450. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  451. package/build-module/components/writing-flow/use-tab-nav.js +4 -4
  452. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  453. package/build-module/components/writing-flow/utils.js +26 -0
  454. package/build-module/components/writing-flow/utils.js.map +1 -1
  455. package/build-module/hooks/block-bindings.js +34 -31
  456. package/build-module/hooks/block-bindings.js.map +1 -1
  457. package/build-module/hooks/content-lock-ui.js +10 -30
  458. package/build-module/hooks/content-lock-ui.js.map +1 -1
  459. package/build-module/hooks/duotone.js +0 -4
  460. package/build-module/hooks/duotone.js.map +1 -1
  461. package/build-module/hooks/layout.js +4 -2
  462. package/build-module/hooks/layout.js.map +1 -1
  463. package/build-module/hooks/spacing-visualizer.js +3 -3
  464. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  465. package/build-module/hooks/style.js +1 -5
  466. package/build-module/hooks/style.js.map +1 -1
  467. package/build-module/hooks/use-bindings-attributes.js +19 -20
  468. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  469. package/build-module/hooks/use-zoom-out.js +7 -7
  470. package/build-module/hooks/use-zoom-out.js.map +1 -1
  471. package/build-module/layouts/constrained.js +44 -45
  472. package/build-module/layouts/constrained.js.map +1 -1
  473. package/build-module/layouts/flex.js +4 -1
  474. package/build-module/layouts/flex.js.map +1 -1
  475. package/build-module/layouts/grid.js +21 -18
  476. package/build-module/layouts/grid.js.map +1 -1
  477. package/build-module/layouts/utils.js +1 -7
  478. package/build-module/layouts/utils.js.map +1 -1
  479. package/build-module/private-apis.js +3 -4
  480. package/build-module/private-apis.js.map +1 -1
  481. package/build-module/store/actions.js +2 -7
  482. package/build-module/store/actions.js.map +1 -1
  483. package/build-module/store/private-actions.js +1 -0
  484. package/build-module/store/private-actions.js.map +1 -1
  485. package/build-module/store/private-keys.js +1 -0
  486. package/build-module/store/private-keys.js.map +1 -1
  487. package/build-module/store/private-selectors.js +15 -18
  488. package/build-module/store/private-selectors.js.map +1 -1
  489. package/build-module/store/reducer.js +1 -9
  490. package/build-module/store/reducer.js.map +1 -1
  491. package/build-module/store/selectors.js +22 -46
  492. package/build-module/store/selectors.js.map +1 -1
  493. package/build-module/store/utils.js +46 -0
  494. package/build-module/store/utils.js.map +1 -1
  495. package/build-module/utils/block-bindings.js +17 -12
  496. package/build-module/utils/block-bindings.js.map +1 -1
  497. package/build-module/utils/dom.js +99 -0
  498. package/build-module/utils/dom.js.map +1 -1
  499. package/build-module/utils/get-font-styles-and-weights.js +4 -4
  500. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  501. package/build-module/utils/transform-styles/index.js +120 -16
  502. package/build-module/utils/transform-styles/index.js.map +1 -1
  503. package/build-style/content-rtl.css +19 -11
  504. package/build-style/content.css +19 -11
  505. package/build-style/style-rtl.css +27 -108
  506. package/build-style/style.css +27 -108
  507. package/build-types/utils/dom.d.ts +25 -0
  508. package/build-types/utils/dom.d.ts.map +1 -1
  509. package/package.json +34 -32
  510. package/src/components/block-alignment-matrix-control/index.js +1 -1
  511. package/src/components/block-breadcrumb/index.js +2 -2
  512. package/src/components/block-breadcrumb/style.scss +1 -30
  513. package/src/components/block-canvas/index.js +9 -1
  514. package/src/components/block-compare/block-view.js +6 -1
  515. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
  516. package/src/components/block-draggable/content.scss +1 -1
  517. package/src/components/block-draggable/index.js +4 -4
  518. package/src/components/block-draggable/style.scss +1 -1
  519. package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
  520. package/src/components/block-edit/multiple-usage-warning.js +2 -0
  521. package/src/components/block-inspector/index.js +22 -7
  522. package/src/components/block-inspector/style.scss +2 -4
  523. package/src/components/block-list/block-invalid-warning.js +3 -2
  524. package/src/components/block-list/block.js +6 -2
  525. package/src/components/block-list/content.scss +23 -3
  526. package/src/components/block-list/index.js +59 -38
  527. package/src/components/block-list/use-block-props/index.js +3 -0
  528. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  529. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +56 -0
  530. package/src/components/block-list/zoom-out-separator.js +110 -0
  531. package/src/components/block-lock/style.scss +1 -1
  532. package/src/components/block-lock/toolbar.js +3 -3
  533. package/src/components/block-mover/button.js +1 -0
  534. package/src/components/block-mover/index.js +1 -0
  535. package/src/components/block-mover/style.scss +1 -1
  536. package/src/components/block-navigation/dropdown.js +2 -0
  537. package/src/components/block-pattern-setup/index.js +3 -15
  538. package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
  539. package/src/components/block-pattern-setup/style.scss +2 -2
  540. package/src/components/block-patterns-list/index.js +15 -18
  541. package/src/components/block-patterns-list/style.scss +2 -2
  542. package/src/components/block-patterns-paging/index.js +6 -0
  543. package/src/components/block-popover/index.js +7 -28
  544. package/src/components/block-popover/style.scss +1 -1
  545. package/src/components/block-quick-navigation/index.js +2 -0
  546. package/src/components/block-settings-menu-controls/index.js +7 -1
  547. package/src/components/block-switcher/index.js +45 -23
  548. package/src/components/block-switcher/pattern-transformations-menu.js +3 -12
  549. package/src/components/block-switcher/style.scss +5 -30
  550. package/src/components/block-toolbar/index.js +27 -11
  551. package/src/components/block-toolbar/shuffle.js +9 -7
  552. package/src/components/block-toolbar/style.scss +4 -1
  553. package/src/components/block-tools/block-selection-button.js +4 -0
  554. package/src/components/block-tools/block-toolbar-popover.js +10 -6
  555. package/src/components/block-tools/index.js +1 -1
  556. package/src/components/block-tools/style.scss +3 -4
  557. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  558. package/src/components/block-tools/zoom-out-mode-inserters.js +2 -17
  559. package/src/components/block-tools/zoom-out-popover.js +3 -7
  560. package/src/components/block-tools/zoom-out-toolbar.js +31 -6
  561. package/src/components/block-variation-picker/README.md +2 -2
  562. package/src/components/block-variation-picker/index.js +6 -1
  563. package/src/components/block-variation-transforms/index.js +2 -0
  564. package/src/components/block-variation-transforms/style.scss +1 -1
  565. package/src/components/button-block-appender/content.scss +0 -1
  566. package/src/components/button-block-appender/index.js +30 -28
  567. package/src/components/color-palette/test/control.js +15 -2
  568. package/src/components/colors-gradients/dropdown.js +5 -1
  569. package/src/components/colors-gradients/style.scss +4 -4
  570. package/src/components/content-lock/index.js +1 -0
  571. package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
  572. package/src/components/default-block-appender/content.scss +0 -1
  573. package/src/components/editor-styles/index.js +4 -3
  574. package/src/components/global-styles/background-panel.js +6 -14
  575. package/src/components/global-styles/color-panel.js +8 -4
  576. package/src/components/global-styles/color-panel.native.js +2 -2
  577. package/src/components/global-styles/dimensions-panel.js +40 -40
  578. package/src/components/global-styles/filters-panel.js +5 -1
  579. package/src/components/global-styles/shadow-panel-components.js +11 -15
  580. package/src/components/global-styles/style.scss +3 -4
  581. package/src/components/global-styles/test/typography-utils.js +96 -5
  582. package/src/components/global-styles/test/utils.js +10 -0
  583. package/src/components/global-styles/typography-utils.js +22 -6
  584. package/src/components/global-styles/utils.js +4 -6
  585. package/src/components/grid/grid-item-movers.js +3 -3
  586. package/src/components/grid/style.scss +1 -1
  587. package/src/components/iframe/get-compatibility-styles.js +6 -1
  588. package/src/components/iframe/index.js +5 -5
  589. package/src/components/inner-blocks/index.js +2 -2
  590. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  591. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
  592. package/src/components/inserter/block-patterns-tab/index.js +2 -0
  593. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +32 -15
  594. package/src/components/inserter/index.js +4 -10
  595. package/src/components/inserter/library.js +0 -2
  596. package/src/components/inserter/media-tab/hooks.js +3 -3
  597. package/src/components/inserter/media-tab/media-list.js +1 -7
  598. package/src/components/inserter/media-tab/media-preview.js +15 -8
  599. package/src/components/inserter/media-tab/media-tab.js +2 -0
  600. package/src/components/inserter/menu.js +15 -29
  601. package/src/components/inserter/quick-inserter.js +3 -4
  602. package/src/components/inserter/style.scss +10 -8
  603. package/src/components/inserter-list-item/index.js +4 -4
  604. package/src/components/inserter-list-item/style.scss +1 -3
  605. package/src/components/inserter-listbox/index.js +2 -11
  606. package/src/components/inserter-listbox/item.js +12 -14
  607. package/src/components/inserter-listbox/row.js +2 -9
  608. package/src/components/inspector-controls/groups.js +2 -0
  609. package/src/components/inspector-controls-tabs/index.js +2 -0
  610. package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
  611. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
  612. package/src/components/inspector-popover-header/index.js +4 -0
  613. package/src/components/letter-spacing-control/README.md +8 -1
  614. package/src/components/letter-spacing-control/index.js +7 -4
  615. package/src/components/link-control/index.js +17 -8
  616. package/src/components/link-control/settings-drawer.js +2 -0
  617. package/src/components/link-control/style.scss +1 -3
  618. package/src/components/list-view/block-select-button.js +2 -0
  619. package/src/components/list-view/index.js +3 -8
  620. package/src/components/list-view/style.scss +14 -16
  621. package/src/components/media-placeholder/README.md +2 -2
  622. package/src/components/media-placeholder/index.js +21 -4
  623. package/src/components/media-replace-flow/index.js +12 -1
  624. package/src/components/provider/use-block-sync.js +20 -20
  625. package/src/components/responsive-block-control/README.md +3 -27
  626. package/src/components/rich-text/content.scss +1 -1
  627. package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
  628. package/src/components/rich-text/index.js +54 -41
  629. package/src/components/rich-text/style.scss +1 -1
  630. package/src/components/rich-text/use-mark-persistent.js +5 -5
  631. package/src/components/skip-to-selected-block/index.js +2 -0
  632. package/src/components/spacing-sizes-control/style.scss +1 -0
  633. package/src/components/tool-selector/index.js +2 -0
  634. package/src/components/url-input/button.js +6 -0
  635. package/src/components/url-input/index.js +2 -0
  636. package/src/components/url-popover/stories/index.story.js +7 -1
  637. package/src/components/use-block-drop-zone/index.js +37 -5
  638. package/src/components/warning/content.scss +3 -10
  639. package/src/components/writing-flow/index.js +2 -0
  640. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  641. package/src/components/writing-flow/use-event-redirect.js +72 -0
  642. package/src/components/writing-flow/use-input.js +36 -1
  643. package/src/components/writing-flow/use-select-all.js +18 -1
  644. package/src/components/writing-flow/use-selection-observer.js +23 -3
  645. package/src/components/writing-flow/use-tab-nav.js +4 -4
  646. package/src/components/writing-flow/utils.js +30 -0
  647. package/src/hooks/block-bindings.js +42 -43
  648. package/src/hooks/block-bindings.scss +1 -9
  649. package/src/hooks/content-lock-ui.js +11 -36
  650. package/src/hooks/duotone.js +0 -4
  651. package/src/hooks/layout.js +2 -1
  652. package/src/hooks/layout.scss +5 -27
  653. package/src/hooks/spacing-visualizer.js +3 -3
  654. package/src/hooks/style.js +1 -4
  655. package/src/hooks/use-bindings-attributes.js +23 -24
  656. package/src/hooks/use-zoom-out.js +7 -7
  657. package/src/layouts/constrained.js +53 -48
  658. package/src/layouts/flex.js +2 -0
  659. package/src/layouts/grid.js +29 -22
  660. package/src/layouts/test/grid.js +2 -2
  661. package/src/layouts/test/utils.js +6 -8
  662. package/src/layouts/utils.js +1 -9
  663. package/src/private-apis.js +2 -2
  664. package/src/store/actions.js +4 -6
  665. package/src/store/private-actions.js +1 -0
  666. package/src/store/private-keys.js +1 -0
  667. package/src/store/private-selectors.js +18 -14
  668. package/src/store/reducer.js +0 -7
  669. package/src/store/selectors.js +32 -51
  670. package/src/store/utils.js +50 -0
  671. package/src/utils/block-bindings.js +15 -16
  672. package/src/utils/dom.js +117 -0
  673. package/src/utils/get-font-styles-and-weights.js +12 -4
  674. package/src/utils/test/get-font-styles-and-weights.js +148 -0
  675. package/src/utils/test/transform-styles.js +259 -50
  676. package/src/utils/transform-styles/index.js +132 -21
  677. package/tsconfig.json +1 -0
  678. package/tsconfig.tsbuildinfo +1 -1
  679. package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_a11y","_i18n","_components","_element","_data","_compose","_blocks","_icons","_menu","_quickInserter","_store","_jsxRuntime","defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","prioritizePatterns","as","Wrapper","Button","label","labelProp","onClick","rest","sprintf","_x","__","handleClick","event","jsx","icon","plus","tooltipPosition","className","PrivateInserter","Component","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","onSelectOrClose","selectBlockOnInsert","default","onSelect","blocks","firstBlock","Array","isArray","length","render","position","insertOnlyAllowedBlock","Dropdown","contentClassName","clsx","popoverProps","shift","expandOnMobile","headerTitle","ComposedPrivateInserter","exports","compose","withSelect","select","shouldDirectInsert","getBlockRootClientId","hasInserterItems","getAllowedBlocks","getDirectInsertBlock","getSettings","blockEditorStore","getBlockVariations","blocksStore","undefined","allowedBlocks","settings","name","allowedBlockType","title","__experimentalPreferPatternsOnRoot","withDispatch","dispatch","ownProps","getAdjacentBlockAttributes","attributesToCopy","getBlock","getPreviousBlockClientId","result","adjacentAttributes","parentBlock","innerBlocks","lastInnerBlock","attributes","currentBlock","previousBlock","forEach","attribute","hasOwnProperty","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","newAttributes","createBlock","message","speak","ifCondition","Inserter","forwardRef","ref","_default"],"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { forwardRef, Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n\tprioritizePatterns,\n} ) => {\n\tconst {\n\t\tas: Wrapper = Button,\n\t\tlabel: labelProp,\n\t\tonClick,\n\t\t...rest\n\t} = toggleProps;\n\n\tlet label = labelProp;\n\tif ( ! label && hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else if ( ! label && prioritizePatterns ) {\n\t\tlabel = __( 'Add pattern' );\n\t} else if ( ! label ) {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\t// Handle both onClick functions from the toggle and the parent component.\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Wrapper\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass PrivateInserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {Element} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\tprioritizePatterns,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {Element} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tprioritizePatterns,\n\t\t\tonSelectOrClose,\n\t\t\tselectBlockOnInsert,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ ( blocks ) => {\n\t\t\t\t\t\tconst firstBlock =\n\t\t\t\t\t\t\tArray.isArray( blocks ) && blocks?.length\n\t\t\t\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t\t\t\t: blocks;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tonSelectOrClose &&\n\t\t\t\t\t\t\ttypeof onSelectOrClose === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tonSelectOrClose( firstBlock );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ clsx( 'block-editor-inserter__popover', {\n\t\t\t\t\t'is-quick': isQuick,\n\t\t\t\t} ) }\n\t\t\t\tpopoverProps={ { position, shift: true } }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport const ComposedPrivateInserter = compose( [\n\twithSelect(\n\t\t( select, { clientId, rootClientId, shouldDirectInsert = true } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasInserterItems,\n\t\t\t\tgetAllowedBlocks,\n\t\t\t\tgetDirectInsertBlock,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\t\trootClientId =\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\t\tconst allowedBlocks = getAllowedBlocks( rootClientId );\n\n\t\t\tconst directInsertBlock =\n\t\t\t\tshouldDirectInsert && getDirectInsertBlock( rootClientId );\n\n\t\t\tconst settings = getSettings();\n\n\t\t\tconst hasSingleBlockType =\n\t\t\t\tallowedBlocks?.length === 1 &&\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t\t\t?.length === 0;\n\n\t\t\tlet allowedBlockType = false;\n\t\t\tif ( hasSingleBlockType ) {\n\t\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\t\thasSingleBlockType,\n\t\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\t\tallowedBlockType,\n\t\t\t\tdirectInsertBlock,\n\t\t\t\trootClientId,\n\t\t\t\tprioritizePatterns:\n\t\t\t\t\tsettings.__experimentalPreferPatternsOnRoot &&\n\t\t\t\t\t! rootClientId,\n\t\t\t};\n\t\t}\n\t),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t\tselectBlockOnInsert,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjacentBlockAttributes( attributesToCopy ) {\n\t\t\t\t\tconst { getBlock, getPreviousBlockClientId } =\n\t\t\t\t\t\tselect( blockEditorStore );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! attributesToCopy ||\n\t\t\t\t\t\t( ! clientId && ! rootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = {};\n\t\t\t\t\tlet adjacentAttributes = {};\n\n\t\t\t\t\t// If there is no clientId, then attempt to get attributes\n\t\t\t\t\t// from the last block within innerBlocks of the root block.\n\t\t\t\t\tif ( ! clientId ) {\n\t\t\t\t\t\tconst parentBlock = getBlock( rootClientId );\n\n\t\t\t\t\t\tif ( parentBlock?.innerBlocks?.length ) {\n\t\t\t\t\t\t\tconst lastInnerBlock =\n\t\t\t\t\t\t\t\tparentBlock.innerBlocks[\n\t\t\t\t\t\t\t\t\tparentBlock.innerBlocks.length - 1\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdirectInsertBlock &&\n\t\t\t\t\t\t\t\tdirectInsertBlock?.name === lastInnerBlock.name\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tadjacentAttributes = lastInnerBlock.attributes;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Otherwise, attempt to get attributes from the\n\t\t\t\t\t\t// previous block relative to the current clientId.\n\t\t\t\t\t\tconst currentBlock = getBlock( clientId );\n\t\t\t\t\t\tconst previousBlock = getBlock(\n\t\t\t\t\t\t\tgetPreviousBlockClientId( clientId )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( currentBlock?.name === previousBlock?.name ) {\n\t\t\t\t\t\t\tadjacentAttributes =\n\t\t\t\t\t\t\t\tpreviousBlock?.attributes || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy over only those attributes flagged to be copied.\n\t\t\t\t\tattributesToCopy.forEach( ( attribute ) => {\n\t\t\t\t\t\tif ( adjacentAttributes.hasOwnProperty( attribute ) ) {\n\t\t\t\t\t\t\tresult[ attribute ] =\n\t\t\t\t\t\t\t\tadjacentAttributes[ attribute ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tlet blockToInsert;\n\n\t\t\t\t// Attempt to augment the directInsertBlock with attributes from an adjacent block.\n\t\t\t\t// This ensures styling from nearby blocks is preserved in the newly inserted block.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/37904\n\t\t\t\tif ( directInsertBlock ) {\n\t\t\t\t\tconst newAttributes = getAdjacentBlockAttributes(\n\t\t\t\t\t\tdirectInsertBlock.attributesToCopy\n\t\t\t\t\t);\n\n\t\t\t\t\tblockToInsert = createBlock( directInsertBlock.name, {\n\t\t\t\t\t\t...( directInsertBlock.attributes || {} ),\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tblockToInsert = createBlock( allowedBlockType.name );\n\t\t\t\t}\n\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblockToInsert,\n\t\t\t\t\tgetInsertionIndex(),\n\t\t\t\t\trootClientId,\n\t\t\t\t\tselectBlockOnInsert\n\t\t\t\t);\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose( {\n\t\t\t\t\t\tclientId: blockToInsert?.clientId,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( PrivateInserter );\n\nconst Inserter = forwardRef( ( props, ref ) => {\n\treturn <ComposedPrivateInserter ref={ ref } { ...props } />;\n} );\n\nexport default Inserter;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_a11y","_i18n","_components","_element","_data","_compose","_blocks","_icons","_menu","_quickInserter","_store","_jsxRuntime","defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","prioritizePatterns","as","Wrapper","Button","label","labelProp","onClick","rest","sprintf","_x","__","handleClick","event","jsx","icon","plus","tooltipPosition","className","Inserter","Component","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","onSelectOrClose","selectBlockOnInsert","default","onSelect","blocks","firstBlock","Array","isArray","length","render","position","insertOnlyAllowedBlock","Dropdown","contentClassName","clsx","popoverProps","shift","expandOnMobile","headerTitle","_default","exports","compose","withSelect","select","shouldDirectInsert","getBlockRootClientId","hasInserterItems","getAllowedBlocks","getDirectInsertBlock","getSettings","blockEditorStore","getBlockVariations","blocksStore","undefined","allowedBlocks","settings","name","allowedBlockType","title","__experimentalPreferPatternsOnRoot","withDispatch","dispatch","ownProps","getAdjacentBlockAttributes","attributesToCopy","getBlock","getPreviousBlockClientId","result","adjacentAttributes","parentBlock","innerBlocks","lastInnerBlock","attributes","currentBlock","previousBlock","forEach","attribute","hasOwnProperty","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","newAttributes","createBlock","message","speak","ifCondition"],"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n\tprioritizePatterns,\n} ) => {\n\tconst {\n\t\tas: Wrapper = Button,\n\t\tlabel: labelProp,\n\t\tonClick,\n\t\t...rest\n\t} = toggleProps;\n\n\tlet label = labelProp;\n\tif ( ! label && hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else if ( ! label && prioritizePatterns ) {\n\t\tlabel = __( 'Add pattern' );\n\t} else if ( ! label ) {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\t// Handle both onClick functions from the toggle and the parent component.\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Wrapper\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {Element} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\tprioritizePatterns,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {Element} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tprioritizePatterns,\n\t\t\tonSelectOrClose,\n\t\t\tselectBlockOnInsert,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ ( blocks ) => {\n\t\t\t\t\t\tconst firstBlock =\n\t\t\t\t\t\t\tArray.isArray( blocks ) && blocks?.length\n\t\t\t\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t\t\t\t: blocks;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tonSelectOrClose &&\n\t\t\t\t\t\t\ttypeof onSelectOrClose === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tonSelectOrClose( firstBlock );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ clsx( 'block-editor-inserter__popover', {\n\t\t\t\t\t'is-quick': isQuick,\n\t\t\t\t} ) }\n\t\t\t\tpopoverProps={ { position, shift: true } }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { clientId, rootClientId, shouldDirectInsert = true } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasInserterItems,\n\t\t\t\tgetAllowedBlocks,\n\t\t\t\tgetDirectInsertBlock,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\t\trootClientId =\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\t\tconst allowedBlocks = getAllowedBlocks( rootClientId );\n\n\t\t\tconst directInsertBlock =\n\t\t\t\tshouldDirectInsert && getDirectInsertBlock( rootClientId );\n\n\t\t\tconst settings = getSettings();\n\n\t\t\tconst hasSingleBlockType =\n\t\t\t\tallowedBlocks?.length === 1 &&\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t\t\t?.length === 0;\n\n\t\t\tlet allowedBlockType = false;\n\t\t\tif ( hasSingleBlockType ) {\n\t\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\t\thasSingleBlockType,\n\t\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\t\tallowedBlockType,\n\t\t\t\tdirectInsertBlock,\n\t\t\t\trootClientId,\n\t\t\t\tprioritizePatterns:\n\t\t\t\t\tsettings.__experimentalPreferPatternsOnRoot &&\n\t\t\t\t\t! rootClientId,\n\t\t\t};\n\t\t}\n\t),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t\tselectBlockOnInsert,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjacentBlockAttributes( attributesToCopy ) {\n\t\t\t\t\tconst { getBlock, getPreviousBlockClientId } =\n\t\t\t\t\t\tselect( blockEditorStore );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! attributesToCopy ||\n\t\t\t\t\t\t( ! clientId && ! rootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = {};\n\t\t\t\t\tlet adjacentAttributes = {};\n\n\t\t\t\t\t// If there is no clientId, then attempt to get attributes\n\t\t\t\t\t// from the last block within innerBlocks of the root block.\n\t\t\t\t\tif ( ! clientId ) {\n\t\t\t\t\t\tconst parentBlock = getBlock( rootClientId );\n\n\t\t\t\t\t\tif ( parentBlock?.innerBlocks?.length ) {\n\t\t\t\t\t\t\tconst lastInnerBlock =\n\t\t\t\t\t\t\t\tparentBlock.innerBlocks[\n\t\t\t\t\t\t\t\t\tparentBlock.innerBlocks.length - 1\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdirectInsertBlock &&\n\t\t\t\t\t\t\t\tdirectInsertBlock?.name === lastInnerBlock.name\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tadjacentAttributes = lastInnerBlock.attributes;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Otherwise, attempt to get attributes from the\n\t\t\t\t\t\t// previous block relative to the current clientId.\n\t\t\t\t\t\tconst currentBlock = getBlock( clientId );\n\t\t\t\t\t\tconst previousBlock = getBlock(\n\t\t\t\t\t\t\tgetPreviousBlockClientId( clientId )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( currentBlock?.name === previousBlock?.name ) {\n\t\t\t\t\t\t\tadjacentAttributes =\n\t\t\t\t\t\t\t\tpreviousBlock?.attributes || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy over only those attributes flagged to be copied.\n\t\t\t\t\tattributesToCopy.forEach( ( attribute ) => {\n\t\t\t\t\t\tif ( adjacentAttributes.hasOwnProperty( attribute ) ) {\n\t\t\t\t\t\t\tresult[ attribute ] =\n\t\t\t\t\t\t\t\tadjacentAttributes[ attribute ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tlet blockToInsert;\n\n\t\t\t\t// Attempt to augment the directInsertBlock with attributes from an adjacent block.\n\t\t\t\t// This ensures styling from nearby blocks is preserved in the newly inserted block.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/37904\n\t\t\t\tif ( directInsertBlock ) {\n\t\t\t\t\tconst newAttributes = getAdjacentBlockAttributes(\n\t\t\t\t\t\tdirectInsertBlock.attributesToCopy\n\t\t\t\t\t);\n\n\t\t\t\t\tblockToInsert = createBlock( directInsertBlock.name, {\n\t\t\t\t\t\t...( directInsertBlock.attributes || {} ),\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tblockToInsert = createBlock( allowedBlockType.name );\n\t\t\t\t}\n\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblockToInsert,\n\t\t\t\t\tgetInsertionIndex(),\n\t\t\t\t\trootClientId,\n\t\t\t\t\tselectBlockOnInsert\n\t\t\t\t);\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose( {\n\t\t\t\t\t\tclientId: blockToInsert?.clientId,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"],"mappings":"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","ignoreList":[]}
@@ -31,8 +31,7 @@ function InserterLibrary({
31
31
  onPatternCategorySelection,
32
32
  onSelect = noop,
33
33
  shouldFocusBlock = false,
34
- onClose,
35
- __experimentalSearchInputRef
34
+ onClose
36
35
  }, ref) {
37
36
  const {
38
37
  destinationRootClientId
@@ -59,8 +58,7 @@ function InserterLibrary({
59
58
  __experimentalInitialCategory: __experimentalInitialCategory,
60
59
  shouldFocusBlock: shouldFocusBlock,
61
60
  ref: ref,
62
- onClose: onClose,
63
- __experimentalSearchInputRef: __experimentalSearchInputRef
61
+ onClose: onClose
64
62
  });
65
63
  }
66
64
  const PrivateInserterLibrary = exports.PrivateInserterLibrary = (0, _element.forwardRef)(InserterLibrary);
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_element","_menu","_store","_jsxRuntime","noop","InserterLibrary","rootClientId","clientId","isAppender","showInserterHelpPanel","showMostUsedBlocks","__experimentalInsertionIndex","__experimentalInitialTab","__experimentalInitialCategory","__experimentalFilterValue","onPatternCategorySelection","onSelect","shouldFocusBlock","onClose","__experimentalSearchInputRef","ref","destinationRootClientId","useSelect","select","getBlockRootClientId","blockEditorStore","_rootClientId","undefined","jsx","PrivateInserterMenu","PrivateInserterLibrary","exports","forwardRef","PublicInserterLibrary","props","_default","default"],"sources":["@wordpress/block-editor/src/components/inserter/library.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { PrivateInserterMenu } from './menu';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nfunction InserterLibrary(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks = false,\n\t\t__experimentalInsertionIndex,\n\t\t__experimentalInitialTab,\n\t\t__experimentalInitialCategory,\n\t\t__experimentalFilterValue,\n\t\tonPatternCategorySelection,\n\t\tonSelect = noop,\n\t\tshouldFocusBlock = false,\n\t\tonClose,\n\t\t__experimentalSearchInputRef,\n\t},\n\tref\n) {\n\tconst { destinationRootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\t\t\tconst _rootClientId =\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\t\t\treturn {\n\t\t\t\tdestinationRootClientId: _rootClientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\treturn (\n\t\t<PrivateInserterMenu\n\t\t\tonSelect={ onSelect }\n\t\t\trootClientId={ destinationRootClientId }\n\t\t\tclientId={ clientId }\n\t\t\tisAppender={ isAppender }\n\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t__experimentalInsertionIndex={ __experimentalInsertionIndex }\n\t\t\t__experimentalFilterValue={ __experimentalFilterValue }\n\t\t\tonPatternCategorySelection={ onPatternCategorySelection }\n\t\t\t__experimentalInitialTab={ __experimentalInitialTab }\n\t\t\t__experimentalInitialCategory={ __experimentalInitialCategory }\n\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\tref={ ref }\n\t\t\tonClose={ onClose }\n\t\t\t__experimentalSearchInputRef={ __experimentalSearchInputRef }\n\t\t/>\n\t);\n}\n\nexport const PrivateInserterLibrary = forwardRef( InserterLibrary );\n\nfunction PublicInserterLibrary( props, ref ) {\n\treturn (\n\t\t<PrivateInserterLibrary\n\t\t\t{ ...props }\n\t\t\tonPatternCategorySelection={ undefined }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PublicInserterLibrary );\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAwD,IAAAI,WAAA,GAAAJ,OAAA;AAVxD;AACA;AACA;;AAIA;AACA;AACA;;AAIA,MAAMK,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,SAASC,eAAeA,CACvB;EACCC,YAAY;EACZC,QAAQ;EACRC,UAAU;EACVC,qBAAqB;EACrBC,kBAAkB,GAAG,KAAK;EAC1BC,4BAA4B;EAC5BC,wBAAwB;EACxBC,6BAA6B;EAC7BC,yBAAyB;EACzBC,0BAA0B;EAC1BC,QAAQ,GAAGZ,IAAI;EACfa,gBAAgB,GAAG,KAAK;EACxBC,OAAO;EACPC;AACD,CAAC,EACDC,GAAG,EACF;EACD,MAAM;IAAEC;EAAwB,CAAC,GAAG,IAAAC,eAAS,EAC1CC,MAAM,IAAM;IACb,MAAM;MAAEC;IAAqB,CAAC,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IAC3D,MAAMC,aAAa,GAClBpB,YAAY,IAAIkB,oBAAoB,CAAEjB,QAAS,CAAC,IAAIoB,SAAS;IAC9D,OAAO;MACNN,uBAAuB,EAAEK;IAC1B,CAAC;EACF,CAAC,EACD,CAAEnB,QAAQ,EAAED,YAAY,CACzB,CAAC;EAED,oBACC,IAAAH,WAAA,CAAAyB,GAAA,EAAC3B,KAAA,CAAA4B,mBAAmB;IACnBb,QAAQ,EAAGA,QAAU;IACrBV,YAAY,EAAGe,uBAAyB;IACxCd,QAAQ,EAAGA,QAAU;IACrBC,UAAU,EAAGA,UAAY;IACzBC,qBAAqB,EAAGA,qBAAuB;IAC/CC,kBAAkB,EAAGA,kBAAoB;IACzCC,4BAA4B,EAAGA,4BAA8B;IAC7DG,yBAAyB,EAAGA,yBAA2B;IACvDC,0BAA0B,EAAGA,0BAA4B;IACzDH,wBAAwB,EAAGA,wBAA0B;IACrDC,6BAA6B,EAAGA,6BAA+B;IAC/DI,gBAAgB,EAAGA,gBAAkB;IACrCG,GAAG,EAAGA,GAAK;IACXF,OAAO,EAAGA,OAAS;IACnBC,4BAA4B,EAAGA;EAA8B,CAC7D,CAAC;AAEJ;AAEO,MAAMW,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,IAAAE,mBAAU,EAAE3B,eAAgB,CAAC;AAEnE,SAAS4B,qBAAqBA,CAAEC,KAAK,EAAEd,GAAG,EAAG;EAC5C,oBACC,IAAAjB,WAAA,CAAAyB,GAAA,EAACE,sBAAsB;IAAA,GACjBI,KAAK;IACVnB,0BAA0B,EAAGY,SAAW;IACxCP,GAAG,EAAGA;EAAK,CACX,CAAC;AAEJ;AAAC,IAAAe,QAAA,GAAAJ,OAAA,CAAAK,OAAA,GAEc,IAAAJ,mBAAU,EAAEC,qBAAsB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_element","_menu","_store","_jsxRuntime","noop","InserterLibrary","rootClientId","clientId","isAppender","showInserterHelpPanel","showMostUsedBlocks","__experimentalInsertionIndex","__experimentalInitialTab","__experimentalInitialCategory","__experimentalFilterValue","onPatternCategorySelection","onSelect","shouldFocusBlock","onClose","ref","destinationRootClientId","useSelect","select","getBlockRootClientId","blockEditorStore","_rootClientId","undefined","jsx","PrivateInserterMenu","PrivateInserterLibrary","exports","forwardRef","PublicInserterLibrary","props","_default","default"],"sources":["@wordpress/block-editor/src/components/inserter/library.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { PrivateInserterMenu } from './menu';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nfunction InserterLibrary(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks = false,\n\t\t__experimentalInsertionIndex,\n\t\t__experimentalInitialTab,\n\t\t__experimentalInitialCategory,\n\t\t__experimentalFilterValue,\n\t\tonPatternCategorySelection,\n\t\tonSelect = noop,\n\t\tshouldFocusBlock = false,\n\t\tonClose,\n\t},\n\tref\n) {\n\tconst { destinationRootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\t\t\tconst _rootClientId =\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\t\t\treturn {\n\t\t\t\tdestinationRootClientId: _rootClientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\treturn (\n\t\t<PrivateInserterMenu\n\t\t\tonSelect={ onSelect }\n\t\t\trootClientId={ destinationRootClientId }\n\t\t\tclientId={ clientId }\n\t\t\tisAppender={ isAppender }\n\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t__experimentalInsertionIndex={ __experimentalInsertionIndex }\n\t\t\t__experimentalFilterValue={ __experimentalFilterValue }\n\t\t\tonPatternCategorySelection={ onPatternCategorySelection }\n\t\t\t__experimentalInitialTab={ __experimentalInitialTab }\n\t\t\t__experimentalInitialCategory={ __experimentalInitialCategory }\n\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\tref={ ref }\n\t\t\tonClose={ onClose }\n\t\t/>\n\t);\n}\n\nexport const PrivateInserterLibrary = forwardRef( InserterLibrary );\n\nfunction PublicInserterLibrary( props, ref ) {\n\treturn (\n\t\t<PrivateInserterLibrary\n\t\t\t{ ...props }\n\t\t\tonPatternCategorySelection={ undefined }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PublicInserterLibrary );\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAwD,IAAAI,WAAA,GAAAJ,OAAA;AAVxD;AACA;AACA;;AAIA;AACA;AACA;;AAIA,MAAMK,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,SAASC,eAAeA,CACvB;EACCC,YAAY;EACZC,QAAQ;EACRC,UAAU;EACVC,qBAAqB;EACrBC,kBAAkB,GAAG,KAAK;EAC1BC,4BAA4B;EAC5BC,wBAAwB;EACxBC,6BAA6B;EAC7BC,yBAAyB;EACzBC,0BAA0B;EAC1BC,QAAQ,GAAGZ,IAAI;EACfa,gBAAgB,GAAG,KAAK;EACxBC;AACD,CAAC,EACDC,GAAG,EACF;EACD,MAAM;IAAEC;EAAwB,CAAC,GAAG,IAAAC,eAAS,EAC1CC,MAAM,IAAM;IACb,MAAM;MAAEC;IAAqB,CAAC,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IAC3D,MAAMC,aAAa,GAClBnB,YAAY,IAAIiB,oBAAoB,CAAEhB,QAAS,CAAC,IAAImB,SAAS;IAC9D,OAAO;MACNN,uBAAuB,EAAEK;IAC1B,CAAC;EACF,CAAC,EACD,CAAElB,QAAQ,EAAED,YAAY,CACzB,CAAC;EAED,oBACC,IAAAH,WAAA,CAAAwB,GAAA,EAAC1B,KAAA,CAAA2B,mBAAmB;IACnBZ,QAAQ,EAAGA,QAAU;IACrBV,YAAY,EAAGc,uBAAyB;IACxCb,QAAQ,EAAGA,QAAU;IACrBC,UAAU,EAAGA,UAAY;IACzBC,qBAAqB,EAAGA,qBAAuB;IAC/CC,kBAAkB,EAAGA,kBAAoB;IACzCC,4BAA4B,EAAGA,4BAA8B;IAC7DG,yBAAyB,EAAGA,yBAA2B;IACvDC,0BAA0B,EAAGA,0BAA4B;IACzDH,wBAAwB,EAAGA,wBAA0B;IACrDC,6BAA6B,EAAGA,6BAA+B;IAC/DI,gBAAgB,EAAGA,gBAAkB;IACrCE,GAAG,EAAGA,GAAK;IACXD,OAAO,EAAGA;EAAS,CACnB,CAAC;AAEJ;AAEO,MAAMW,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,IAAAE,mBAAU,EAAE1B,eAAgB,CAAC;AAEnE,SAAS2B,qBAAqBA,CAAEC,KAAK,EAAEd,GAAG,EAAG;EAC5C,oBACC,IAAAhB,WAAA,CAAAwB,GAAA,EAACE,sBAAsB;IAAA,GACjBI,KAAK;IACVlB,0BAA0B,EAAGW,SAAW;IACxCP,GAAG,EAAGA;EAAK,CACX,CAAC;AAEJ;AAAC,IAAAe,QAAA,GAAAJ,OAAA,CAAAK,OAAA,GAEc,IAAAJ,mBAAU,EAAEC,qBAAsB,CAAC","ignoreList":[]}
@@ -38,18 +38,18 @@ function useMediaResults(category, query = {}) {
38
38
  // In the future we could use AbortController to cancel previous
39
39
  // requests, but we don't for now as it involves adding support
40
40
  // for this to `core-data` package.
41
- const lastRequest = (0, _element.useRef)();
41
+ const lastRequestRef = (0, _element.useRef)();
42
42
  (0, _element.useEffect)(() => {
43
43
  (async () => {
44
44
  const key = JSON.stringify({
45
45
  category: category.name,
46
46
  ...query
47
47
  });
48
- lastRequest.current = key;
48
+ lastRequestRef.current = key;
49
49
  setIsLoading(true);
50
50
  setMediaList([]); // Empty the previous results.
51
51
  const _media = await category.fetch?.(query);
52
- if (key === lastRequest.current) {
52
+ if (key === lastRequestRef.current) {
53
53
  setMediaList(_media);
54
54
  setIsLoading(false);
55
55
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_store","_lockUnlock","useMediaResults","category","query","mediaList","setMediaList","useState","isLoading","setIsLoading","lastRequest","useRef","useEffect","key","JSON","stringify","name","current","_media","fetch","Object","values","useMediaCategories","rootClientId","categories","setCategories","inserterMediaCategories","useSelect","select","unlock","blockEditorStore","getInserterMediaCategories","canInsertImage","canInsertVideo","canInsertAudio","canInsertBlockType","_categories","categoriesHaveMedia","Map","Promise","all","map","isExternalResource","results","per_page","e","length","canInsertMediaType","image","video","audio","forEach","mediaType","get","push"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\n/** @typedef {import('../../../store/actions').InserterMediaRequest} InserterMediaRequest */\n/** @typedef {import('../../../store/actions').InserterMediaItem} InserterMediaItem */\n\n/**\n * Fetches media items based on the provided category.\n * Each media category is responsible for providing a `fetch` function.\n *\n * @param {Object} category The media category to fetch results for.\n * @param {InserterMediaRequest} query The query args to use for the request.\n * @return {InserterMediaItem[]} The media results.\n */\nexport function useMediaResults( category, query = {} ) {\n\tconst [ mediaList, setMediaList ] = useState();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\t// We need to keep track of the last request made because\n\t// multiple request can be fired without knowing the order\n\t// of resolution, and we need to ensure we are showing\n\t// the results of the last request.\n\t// In the future we could use AbortController to cancel previous\n\t// requests, but we don't for now as it involves adding support\n\t// for this to `core-data` package.\n\tconst lastRequest = useRef();\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst key = JSON.stringify( {\n\t\t\t\tcategory: category.name,\n\t\t\t\t...query,\n\t\t\t} );\n\t\t\tlastRequest.current = key;\n\t\t\tsetIsLoading( true );\n\t\t\tsetMediaList( [] ); // Empty the previous results.\n\t\t\tconst _media = await category.fetch?.( query );\n\t\t\tif ( key === lastRequest.current ) {\n\t\t\t\tsetMediaList( _media );\n\t\t\t\tsetIsLoading( false );\n\t\t\t}\n\t\t} )();\n\t}, [ category.name, ...Object.values( query ) ] );\n\treturn { mediaList, isLoading };\n}\n\nexport function useMediaCategories( rootClientId ) {\n\tconst [ categories, setCategories ] = useState( [] );\n\n\tconst inserterMediaCategories = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getInserterMediaCategories(),\n\t\t[]\n\t);\n\tconst { canInsertImage, canInsertVideo, canInsertAudio } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanInsertImage: canInsertBlockType(\n\t\t\t\t\t'core/image',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanInsertVideo: canInsertBlockType(\n\t\t\t\t\t'core/video',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanInsertAudio: canInsertBlockType(\n\t\t\t\t\t'core/audio',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst _categories = [];\n\t\t\t// If `inserterMediaCategories` is not defined in\n\t\t\t// block editor settings, do not show any media categories.\n\t\t\tif ( ! inserterMediaCategories ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Loop through categories to check if they have at least one media item.\n\t\t\tconst categoriesHaveMedia = new Map(\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tinserterMediaCategories.map( async ( category ) => {\n\t\t\t\t\t\t// Some sources are external and we don't need to make a request.\n\t\t\t\t\t\tif ( category.isExternalResource ) {\n\t\t\t\t\t\t\treturn [ category.name, true ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet results = [];\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresults = await category.fetch( {\n\t\t\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t// If the request fails, we shallow the error and just don't show\n\t\t\t\t\t\t\t// the category, in order to not break the media tab.\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [ category.name, !! results.length ];\n\t\t\t\t\t} )\n\t\t\t\t)\n\t\t\t);\n\t\t\t// We need to filter out categories that don't have any media items or\n\t\t\t// whose corresponding block type is not allowed to be inserted, based\n\t\t\t// on the category's `mediaType`.\n\t\t\tconst canInsertMediaType = {\n\t\t\t\timage: canInsertImage,\n\t\t\t\tvideo: canInsertVideo,\n\t\t\t\taudio: canInsertAudio,\n\t\t\t};\n\t\t\tinserterMediaCategories.forEach( ( category ) => {\n\t\t\t\tif (\n\t\t\t\t\tcanInsertMediaType[ category.mediaType ] &&\n\t\t\t\t\tcategoriesHaveMedia.get( category.name )\n\t\t\t\t) {\n\t\t\t\t\t_categories.push( category );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tif ( !! _categories.length ) {\n\t\t\t\tsetCategories( _categories );\n\t\t\t}\n\t\t} )();\n\t}, [\n\t\tcanInsertImage,\n\t\tcanInsertVideo,\n\t\tcanInsertAudio,\n\t\tinserterMediaCategories,\n\t] );\n\treturn categories;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_data","_store","_lockUnlock","useMediaResults","category","query","mediaList","setMediaList","useState","isLoading","setIsLoading","lastRequestRef","useRef","useEffect","key","JSON","stringify","name","current","_media","fetch","Object","values","useMediaCategories","rootClientId","categories","setCategories","inserterMediaCategories","useSelect","select","unlock","blockEditorStore","getInserterMediaCategories","canInsertImage","canInsertVideo","canInsertAudio","canInsertBlockType","_categories","categoriesHaveMedia","Map","Promise","all","map","isExternalResource","results","per_page","e","length","canInsertMediaType","image","video","audio","forEach","mediaType","get","push"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\n/** @typedef {import('../../../store/actions').InserterMediaRequest} InserterMediaRequest */\n/** @typedef {import('../../../store/actions').InserterMediaItem} InserterMediaItem */\n\n/**\n * Fetches media items based on the provided category.\n * Each media category is responsible for providing a `fetch` function.\n *\n * @param {Object} category The media category to fetch results for.\n * @param {InserterMediaRequest} query The query args to use for the request.\n * @return {InserterMediaItem[]} The media results.\n */\nexport function useMediaResults( category, query = {} ) {\n\tconst [ mediaList, setMediaList ] = useState();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\t// We need to keep track of the last request made because\n\t// multiple request can be fired without knowing the order\n\t// of resolution, and we need to ensure we are showing\n\t// the results of the last request.\n\t// In the future we could use AbortController to cancel previous\n\t// requests, but we don't for now as it involves adding support\n\t// for this to `core-data` package.\n\tconst lastRequestRef = useRef();\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst key = JSON.stringify( {\n\t\t\t\tcategory: category.name,\n\t\t\t\t...query,\n\t\t\t} );\n\t\t\tlastRequestRef.current = key;\n\t\t\tsetIsLoading( true );\n\t\t\tsetMediaList( [] ); // Empty the previous results.\n\t\t\tconst _media = await category.fetch?.( query );\n\t\t\tif ( key === lastRequestRef.current ) {\n\t\t\t\tsetMediaList( _media );\n\t\t\t\tsetIsLoading( false );\n\t\t\t}\n\t\t} )();\n\t}, [ category.name, ...Object.values( query ) ] );\n\treturn { mediaList, isLoading };\n}\n\nexport function useMediaCategories( rootClientId ) {\n\tconst [ categories, setCategories ] = useState( [] );\n\n\tconst inserterMediaCategories = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getInserterMediaCategories(),\n\t\t[]\n\t);\n\tconst { canInsertImage, canInsertVideo, canInsertAudio } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanInsertImage: canInsertBlockType(\n\t\t\t\t\t'core/image',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanInsertVideo: canInsertBlockType(\n\t\t\t\t\t'core/video',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanInsertAudio: canInsertBlockType(\n\t\t\t\t\t'core/audio',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst _categories = [];\n\t\t\t// If `inserterMediaCategories` is not defined in\n\t\t\t// block editor settings, do not show any media categories.\n\t\t\tif ( ! inserterMediaCategories ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Loop through categories to check if they have at least one media item.\n\t\t\tconst categoriesHaveMedia = new Map(\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tinserterMediaCategories.map( async ( category ) => {\n\t\t\t\t\t\t// Some sources are external and we don't need to make a request.\n\t\t\t\t\t\tif ( category.isExternalResource ) {\n\t\t\t\t\t\t\treturn [ category.name, true ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet results = [];\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresults = await category.fetch( {\n\t\t\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t// If the request fails, we shallow the error and just don't show\n\t\t\t\t\t\t\t// the category, in order to not break the media tab.\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [ category.name, !! results.length ];\n\t\t\t\t\t} )\n\t\t\t\t)\n\t\t\t);\n\t\t\t// We need to filter out categories that don't have any media items or\n\t\t\t// whose corresponding block type is not allowed to be inserted, based\n\t\t\t// on the category's `mediaType`.\n\t\t\tconst canInsertMediaType = {\n\t\t\t\timage: canInsertImage,\n\t\t\t\tvideo: canInsertVideo,\n\t\t\t\taudio: canInsertAudio,\n\t\t\t};\n\t\t\tinserterMediaCategories.forEach( ( category ) => {\n\t\t\t\tif (\n\t\t\t\t\tcanInsertMediaType[ category.mediaType ] &&\n\t\t\t\t\tcategoriesHaveMedia.get( category.name )\n\t\t\t\t) {\n\t\t\t\t\t_categories.push( category );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tif ( !! _categories.length ) {\n\t\t\t\tsetCategories( _categories );\n\t\t\t}\n\t\t} )();\n\t}, [\n\t\tcanInsertImage,\n\t\tcanInsertVideo,\n\t\tcanInsertAudio,\n\t\tinserterMediaCategories,\n\t] );\n\treturn categories;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,eAAeA,CAAEC,QAAQ,EAAEC,KAAK,GAAG,CAAC,CAAC,EAAG;EACvD,MAAM,CAAEC,SAAS,EAAEC,YAAY,CAAE,GAAG,IAAAC,iBAAQ,EAAC,CAAC;EAC9C,MAAM,CAAEC,SAAS,EAAEC,YAAY,CAAE,GAAG,IAAAF,iBAAQ,EAAE,KAAM,CAAC;EACrD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMG,cAAc,GAAG,IAAAC,eAAM,EAAC,CAAC;EAC/B,IAAAC,kBAAS,EAAE,MAAM;IAChB,CAAE,YAAY;MACb,MAAMC,GAAG,GAAGC,IAAI,CAACC,SAAS,CAAE;QAC3BZ,QAAQ,EAAEA,QAAQ,CAACa,IAAI;QACvB,GAAGZ;MACJ,CAAE,CAAC;MACHM,cAAc,CAACO,OAAO,GAAGJ,GAAG;MAC5BJ,YAAY,CAAE,IAAK,CAAC;MACpBH,YAAY,CAAE,EAAG,CAAC,CAAC,CAAC;MACpB,MAAMY,MAAM,GAAG,MAAMf,QAAQ,CAACgB,KAAK,GAAIf,KAAM,CAAC;MAC9C,IAAKS,GAAG,KAAKH,cAAc,CAACO,OAAO,EAAG;QACrCX,YAAY,CAAEY,MAAO,CAAC;QACtBT,YAAY,CAAE,KAAM,CAAC;MACtB;IACD,CAAC,EAAG,CAAC;EACN,CAAC,EAAE,CAAEN,QAAQ,CAACa,IAAI,EAAE,GAAGI,MAAM,CAACC,MAAM,CAAEjB,KAAM,CAAC,CAAG,CAAC;EACjD,OAAO;IAAEC,SAAS;IAAEG;EAAU,CAAC;AAChC;AAEO,SAASc,kBAAkBA,CAAEC,YAAY,EAAG;EAClD,MAAM,CAAEC,UAAU,EAAEC,aAAa,CAAE,GAAG,IAAAlB,iBAAQ,EAAE,EAAG,CAAC;EAEpD,MAAMmB,uBAAuB,GAAG,IAAAC,eAAS,EACtCC,MAAM,IACP,IAAAC,kBAAM,EAAED,MAAM,CAAEE,YAAiB,CAAE,CAAC,CAACC,0BAA0B,CAAC,CAAC,EAClE,EACD,CAAC;EACD,MAAM;IAAEC,cAAc;IAAEC,cAAc;IAAEC;EAAe,CAAC,GAAG,IAAAP,eAAS,EACjEC,MAAM,IAAM;IACb,MAAM;MAAEO;IAAmB,CAAC,GAAGP,MAAM,CAAEE,YAAiB,CAAC;IACzD,OAAO;MACNE,cAAc,EAAEG,kBAAkB,CACjC,YAAY,EACZZ,YACD,CAAC;MACDU,cAAc,EAAEE,kBAAkB,CACjC,YAAY,EACZZ,YACD,CAAC;MACDW,cAAc,EAAEC,kBAAkB,CACjC,YAAY,EACZZ,YACD;IACD,CAAC;EACF,CAAC,EACD,CAAEA,YAAY,CACf,CAAC;EACD,IAAAX,kBAAS,EAAE,MAAM;IAChB,CAAE,YAAY;MACb,MAAMwB,WAAW,GAAG,EAAE;MACtB;MACA;MACA,IAAK,CAAEV,uBAAuB,EAAG;QAChC;MACD;MACA;MACA,MAAMW,mBAAmB,GAAG,IAAIC,GAAG,CAClC,MAAMC,OAAO,CAACC,GAAG,CAChBd,uBAAuB,CAACe,GAAG,CAAE,MAAQtC,QAAQ,IAAM;QAClD;QACA,IAAKA,QAAQ,CAACuC,kBAAkB,EAAG;UAClC,OAAO,CAAEvC,QAAQ,CAACa,IAAI,EAAE,IAAI,CAAE;QAC/B;QACA,IAAI2B,OAAO,GAAG,EAAE;QAChB,IAAI;UACHA,OAAO,GAAG,MAAMxC,QAAQ,CAACgB,KAAK,CAAE;YAC/ByB,QAAQ,EAAE;UACX,CAAE,CAAC;QACJ,CAAC,CAAC,OAAQC,CAAC,EAAG;UACb;UACA;QAAA;QAED,OAAO,CAAE1C,QAAQ,CAACa,IAAI,EAAE,CAAC,CAAE2B,OAAO,CAACG,MAAM,CAAE;MAC5C,CAAE,CACH,CACD,CAAC;MACD;MACA;MACA;MACA,MAAMC,kBAAkB,GAAG;QAC1BC,KAAK,EAAEhB,cAAc;QACrBiB,KAAK,EAAEhB,cAAc;QACrBiB,KAAK,EAAEhB;MACR,CAAC;MACDR,uBAAuB,CAACyB,OAAO,CAAIhD,QAAQ,IAAM;QAChD,IACC4C,kBAAkB,CAAE5C,QAAQ,CAACiD,SAAS,CAAE,IACxCf,mBAAmB,CAACgB,GAAG,CAAElD,QAAQ,CAACa,IAAK,CAAC,EACvC;UACDoB,WAAW,CAACkB,IAAI,CAAEnD,QAAS,CAAC;QAC7B;MACD,CAAE,CAAC;MACH,IAAK,CAAC,CAAEiC,WAAW,CAACU,MAAM,EAAG;QAC5BrB,aAAa,CAAEW,WAAY,CAAC;MAC7B;IACD,CAAC,EAAG,CAAC;EACN,CAAC,EAAE,CACFJ,cAAc,EACdC,cAAc,EACdC,cAAc,EACdR,uBAAuB,CACtB,CAAC;EACH,OAAOF,UAAU;AAClB","ignoreList":[]}
@@ -7,7 +7,6 @@ exports.default = void 0;
7
7
  var _components = require("@wordpress/components");
8
8
  var _i18n = require("@wordpress/i18n");
9
9
  var _mediaPreview = require("./media-preview");
10
- var _lockUnlock = require("../../../lock-unlock");
11
10
  var _jsxRuntime = require("react/jsx-runtime");
12
11
  /**
13
12
  * WordPress dependencies
@@ -17,19 +16,13 @@ var _jsxRuntime = require("react/jsx-runtime");
17
16
  * Internal dependencies
18
17
  */
19
18
 
20
- const {
21
- CompositeV2: Composite,
22
- useCompositeStoreV2: useCompositeStore
23
- } = (0, _lockUnlock.unlock)(_components.privateApis);
24
19
  function MediaList({
25
20
  mediaList,
26
21
  category,
27
22
  onClick,
28
23
  label = (0, _i18n.__)('Media List')
29
24
  }) {
30
- const compositeStore = useCompositeStore();
31
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Composite, {
32
- store: compositeStore,
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite, {
33
26
  role: "listbox",
34
27
  className: "block-editor-inserter__media-list",
35
28
  "aria-label": label,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_mediaPreview","_lockUnlock","_jsxRuntime","CompositeV2","Composite","useCompositeStoreV2","useCompositeStore","unlock","componentsPrivateApis","MediaList","mediaList","category","onClick","label","__","compositeStore","jsx","store","role","className","children","map","media","index","MediaPreview","id","sourceId","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { MediaPreview } from './media-preview';\nimport { unlock } from '../../../lock-unlock';\n\nconst { CompositeV2: Composite, useCompositeStoreV2: useCompositeStore } =\n\tunlock( componentsPrivateApis );\n\nfunction MediaList( {\n\tmediaList,\n\tcategory,\n\tonClick,\n\tlabel = __( 'Media List' ),\n} ) {\n\tconst compositeStore = useCompositeStore();\n\treturn (\n\t\t<Composite\n\t\t\tstore={ compositeStore }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-inserter__media-list\"\n\t\t\taria-label={ label }\n\t\t>\n\t\t\t{ mediaList.map( ( media, index ) => (\n\t\t\t\t<MediaPreview\n\t\t\t\t\tkey={ media.id || media.sourceId || index }\n\t\t\t\t\tmedia={ media }\n\t\t\t\t\tcategory={ category }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport default MediaList;\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAA8C,IAAAI,WAAA,GAAAJ,OAAA;AAV9C;AACA;AACA;;AAIA;AACA;AACA;;AAIA,MAAM;EAAEK,WAAW,EAAEC,SAAS;EAAEC,mBAAmB,EAAEC;AAAkB,CAAC,GACvE,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEhC,SAASC,SAASA,CAAE;EACnBC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,KAAK,GAAG,IAAAC,QAAE,EAAE,YAAa;AAC1B,CAAC,EAAG;EACH,MAAMC,cAAc,GAAGT,iBAAiB,CAAC,CAAC;EAC1C,oBACC,IAAAJ,WAAA,CAAAc,GAAA,EAACZ,SAAS;IACTa,KAAK,EAAGF,cAAgB;IACxBG,IAAI,EAAC,SAAS;IACdC,SAAS,EAAC,mCAAmC;IAC7C,cAAaN,KAAO;IAAAO,QAAA,EAElBV,SAAS,CAACW,GAAG,CAAE,CAAEC,KAAK,EAAEC,KAAK,kBAC9B,IAAArB,WAAA,CAAAc,GAAA,EAAChB,aAAA,CAAAwB,YAAY;MAEZF,KAAK,EAAGA,KAAO;MACfX,QAAQ,EAAGA,QAAU;MACrBC,OAAO,EAAGA;IAAS,GAHbU,KAAK,CAACG,EAAE,IAAIH,KAAK,CAACI,QAAQ,IAAIH,KAIpC,CACA;EAAC,CACO,CAAC;AAEd;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcpB,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_mediaPreview","_jsxRuntime","MediaList","mediaList","category","onClick","label","__","jsx","Composite","role","className","children","map","media","index","MediaPreview","id","sourceId","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Composite } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { MediaPreview } from './media-preview';\n\nfunction MediaList( {\n\tmediaList,\n\tcategory,\n\tonClick,\n\tlabel = __( 'Media List' ),\n} ) {\n\treturn (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-inserter__media-list\"\n\t\t\taria-label={ label }\n\t\t>\n\t\t\t{ mediaList.map( ( media, index ) => (\n\t\t\t\t<MediaPreview\n\t\t\t\t\tkey={ media.id || media.sourceId || index }\n\t\t\t\t\tmedia={ media }\n\t\t\t\t\tcategory={ category }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport default MediaList;\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,aAAA,GAAAF,OAAA;AAA+C,IAAAG,WAAA,GAAAH,OAAA;AAT/C;AACA;AACA;;AAIA;AACA;AACA;;AAGA,SAASI,SAASA,CAAE;EACnBC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,KAAK,GAAG,IAAAC,QAAE,EAAE,YAAa;AAC1B,CAAC,EAAG;EACH,oBACC,IAAAN,WAAA,CAAAO,GAAA,EAACX,WAAA,CAAAY,SAAS;IACTC,IAAI,EAAC,SAAS;IACdC,SAAS,EAAC,mCAAmC;IAC7C,cAAaL,KAAO;IAAAM,QAAA,EAElBT,SAAS,CAACU,GAAG,CAAE,CAAEC,KAAK,EAAEC,KAAK,kBAC9B,IAAAd,WAAA,CAAAO,GAAA,EAACR,aAAA,CAAAgB,YAAY;MAEZF,KAAK,EAAGA,KAAO;MACfV,QAAQ,EAAGA,QAAU;MACrBC,OAAO,EAAGA;IAAS,GAHbS,KAAK,CAACG,EAAE,IAAIH,KAAK,CAACI,QAAQ,IAAIH,KAIpC,CACA;EAAC,CACO,CAAC;AAEd;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcnB,SAAS","ignoreList":[]}
@@ -17,7 +17,6 @@ var _blob = require("@wordpress/blob");
17
17
  var _inserterDraggableBlocks = _interopRequireDefault(require("../../inserter-draggable-blocks"));
18
18
  var _utils = require("./utils");
19
19
  var _store = require("../../../store");
20
- var _lockUnlock = require("../../../lock-unlock");
21
20
  var _jsxRuntime = require("react/jsx-runtime");
22
21
  /**
23
22
  * External dependencies
@@ -37,9 +36,6 @@ const MEDIA_OPTIONS_POPOVER_PROPS = {
37
36
  position: 'bottom left',
38
37
  className: 'block-editor-inserter__media-list__item-preview-options__popover'
39
38
  };
40
- const {
41
- CompositeItemV2: CompositeItem
42
- } = (0, _lockUnlock.unlock)(_components.privateApis);
43
39
  function MediaPreviewOptions({
44
40
  category,
45
41
  media
@@ -83,13 +79,19 @@ function InsertExternalImageModal({
83
79
  justify: "flex-end",
84
80
  expanded: false,
85
81
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
86
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
82
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button
83
+ // TODO: Switch to `true` (40px size) if possible
84
+ , {
85
+ __next40pxDefaultSize: false,
87
86
  variant: "tertiary",
88
87
  onClick: onClose,
89
88
  children: (0, _i18n.__)('Cancel')
90
89
  })
91
90
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
92
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
91
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button
92
+ // TODO: Switch to `true` (40px size) if possible
93
+ , {
94
+ __next40pxDefaultSize: false,
93
95
  variant: "primary",
94
96
  onClick: onSubmit,
95
97
  children: (0, _i18n.__)('Insert')
@@ -208,7 +210,7 @@ function MediaPreview({
208
210
  onMouseLeave: onMouseLeave,
209
211
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Tooltip, {
210
212
  text: truncatedTitle || title,
211
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CompositeItem, {
213
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.Item, {
212
214
  render: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
213
215
  "aria-label": title,
214
216
  role: "option",
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_blocks","_icons","_data","_notices","_blob","_inserterDraggableBlocks","_utils","_store","_lockUnlock","_jsxRuntime","ALLOWED_MEDIA_TYPES","MAXIMUM_TITLE_LENGTH","MEDIA_OPTIONS_POPOVER_PROPS","position","className","CompositeItemV2","CompositeItem","unlock","componentsPrivateApis","MediaPreviewOptions","category","media","getReportUrl","reportUrl","jsx","DropdownMenu","label","__","popoverProps","icon","moreVertical","children","MenuGroup","MenuItem","onClick","window","open","focus","external","sprintf","mediaType","InsertExternalImageModal","onClose","onSubmit","jsxs","Modal","title","onRequestClose","__experimentalVStack","spacing","Flex","justify","expanded","FlexItem","Button","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","useState","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","useMemo","getBlockAndPreviewFromMedia","createErrorNotice","createSuccessNotice","useDispatch","noticesStore","getSettings","useSelect","blockEditorStore","onMediaInsert","useCallback","previewBlock","settings","clonedBlock","cloneBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","filesList","additionalData","onFileChange","img","isBlobURL","type","allowedTypes","onError","message","catch","rendered","truncatedTitle","length","omission","slice","onMouseEnter","onMouseLeave","Fragment","default","isEnabled","blocks","draggable","onDragStart","onDragEnd","clsx","Tooltip","text","render","role","Spinner"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MAXIMUM_TITLE_LENGTH = 25;\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nconst { CompositeItemV2: CompositeItem } = unlock( componentsPrivateApis );\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button variant=\"primary\" onClick={ onSubmit }>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tlet truncatedTitle;\n\tif ( title.length > MAXIMUM_TITLE_LENGTH ) {\n\t\tconst omission = '...';\n\t\ttruncatedTitle =\n\t\t\ttitle.slice( 0, MAXIMUM_TITLE_LENGTH - omission.length ) + omission;\n\t}\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ truncatedTitle || title }>\n\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_blocks","_icons","_data","_notices","_blob","_inserterDraggableBlocks","_utils","_store","_jsxRuntime","ALLOWED_MEDIA_TYPES","MAXIMUM_TITLE_LENGTH","MEDIA_OPTIONS_POPOVER_PROPS","position","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","jsx","DropdownMenu","label","__","popoverProps","icon","moreVertical","children","MenuGroup","MenuItem","onClick","window","open","focus","external","sprintf","mediaType","InsertExternalImageModal","onClose","onSubmit","jsxs","Modal","title","onRequestClose","__experimentalVStack","spacing","Flex","justify","expanded","FlexItem","Button","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","useState","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","useMemo","getBlockAndPreviewFromMedia","createErrorNotice","createSuccessNotice","useDispatch","noticesStore","getSettings","useSelect","blockEditorStore","onMediaInsert","useCallback","previewBlock","settings","clonedBlock","cloneBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","filesList","additionalData","onFileChange","img","isBlobURL","type","allowedTypes","onError","message","catch","rendered","truncatedTitle","length","omission","slice","onMouseEnter","onMouseLeave","Fragment","default","isEnabled","blocks","draggable","onDragStart","onDragEnd","clsx","Tooltip","text","Composite","Item","render","role","Spinner"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MAXIMUM_TITLE_LENGTH = 25;\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tlet truncatedTitle;\n\tif ( title.length > MAXIMUM_TITLE_LENGTH ) {\n\t\tconst omission = '...';\n\t\ttruncatedTitle =\n\t\t\ttitle.slice( 0, MAXIMUM_TITLE_LENGTH - omission.length ) + omission;\n\t}\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ truncatedTitle || title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -66,7 +66,10 @@ function MediaTab({
66
66
  allowedTypes: ALLOWED_MEDIA_TYPES,
67
67
  render: ({
68
68
  open
69
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
69
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button
70
+ // TODO: Switch to `true` (40px size) if possible
71
+ , {
72
+ __next40pxDefaultSize: false,
70
73
  onClick: event => {
71
74
  // Safari doesn't emit a focus event on button elements when
72
75
  // clicked and we need to manually focus the button here.
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_compose","_components","_element","_mediaPanel","_check","_interopRequireDefault","_mediaUpload","_hooks","_utils","_mobileTabNavigation","_categoryTabs","_noResults","_jsxRuntime","ALLOWED_MEDIA_TYPES","MediaTab","rootClientId","selectedCategory","onSelectCategory","onInsert","children","mediaCategories","useMediaCategories","isMobile","useViewportMatch","baseCssClass","onSelectMedia","useCallback","media","url","block","getBlockAndPreviewFromMedia","type","categories","useMemo","map","mediaCategory","label","labels","name","length","jsx","default","jsxs","Fragment","className","multiple","onSelect","allowedTypes","render","open","Button","onClick","event","target","focus","variant","__","category","MediaCategoryPanel","_default","exports"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { Button } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { MediaCategoryPanel } from './media-panel';\nimport MediaUploadCheck from '../../media-upload/check';\nimport MediaUpload from '../../media-upload';\nimport { useMediaCategories } from './hooks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport MobileTabNavigation from '../mobile-tab-navigation';\nimport CategoryTabs from '../category-tabs';\nimport InserterNoResults from '../no-results';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video', 'audio' ];\n\nfunction MediaTab( {\n\trootClientId,\n\tselectedCategory,\n\tonSelectCategory,\n\tonInsert,\n\tchildren,\n} ) {\n\tconst mediaCategories = useMediaCategories( rootClientId );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tconst baseCssClass = 'block-editor-inserter__media-tabs';\n\tconst onSelectMedia = useCallback(\n\t\t( media ) => {\n\t\t\tif ( ! media?.url ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [ block ] = getBlockAndPreviewFromMedia( media, media.type );\n\t\t\tonInsert( block );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\tconst categories = useMemo(\n\t\t() =>\n\t\t\tmediaCategories.map( ( mediaCategory ) => ( {\n\t\t\t\t...mediaCategory,\n\t\t\t\tlabel: mediaCategory.labels.name,\n\t\t\t} ) ),\n\t\t[ mediaCategories ]\n\t);\n\n\tif ( ! categories.length ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className={ `${ baseCssClass }-container` }>\n\t\t\t\t\t<CategoryTabs\n\t\t\t\t\t\tcategories={ categories }\n\t\t\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\t\t\tonSelectCategory={ onSelectCategory }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</CategoryTabs>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tmultiple={ false }\n\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t// Safari doesn't emit a focus event on button elements when\n\t\t\t\t\t\t\t\t\t\t// clicked and we need to manually focus the button here.\n\t\t\t\t\t\t\t\t\t\t// The reason is that core's Media Library modal explicitly triggers a\n\t\t\t\t\t\t\t\t\t\t// focus event and therefore a `blur` event is triggered on a different\n\t\t\t\t\t\t\t\t\t\t// element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`\n\t\t\t\t\t\t\t\t\t\t// attribute making the Inserter dialog to close.\n\t\t\t\t\t\t\t\t\t\tevent.target.focus();\n\t\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-library-button\"\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tdata-unstable-ignore-focus-outside-for-relatedtarget=\".media-modal\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default MediaTab;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_compose","_components","_element","_mediaPanel","_check","_interopRequireDefault","_mediaUpload","_hooks","_utils","_mobileTabNavigation","_categoryTabs","_noResults","_jsxRuntime","ALLOWED_MEDIA_TYPES","MediaTab","rootClientId","selectedCategory","onSelectCategory","onInsert","children","mediaCategories","useMediaCategories","isMobile","useViewportMatch","baseCssClass","onSelectMedia","useCallback","media","url","block","getBlockAndPreviewFromMedia","type","categories","useMemo","map","mediaCategory","label","labels","name","length","jsx","default","jsxs","Fragment","className","multiple","onSelect","allowedTypes","render","open","Button","__next40pxDefaultSize","onClick","event","target","focus","variant","__","category","MediaCategoryPanel","_default","exports"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { Button } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { MediaCategoryPanel } from './media-panel';\nimport MediaUploadCheck from '../../media-upload/check';\nimport MediaUpload from '../../media-upload';\nimport { useMediaCategories } from './hooks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport MobileTabNavigation from '../mobile-tab-navigation';\nimport CategoryTabs from '../category-tabs';\nimport InserterNoResults from '../no-results';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video', 'audio' ];\n\nfunction MediaTab( {\n\trootClientId,\n\tselectedCategory,\n\tonSelectCategory,\n\tonInsert,\n\tchildren,\n} ) {\n\tconst mediaCategories = useMediaCategories( rootClientId );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tconst baseCssClass = 'block-editor-inserter__media-tabs';\n\tconst onSelectMedia = useCallback(\n\t\t( media ) => {\n\t\t\tif ( ! media?.url ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [ block ] = getBlockAndPreviewFromMedia( media, media.type );\n\t\t\tonInsert( block );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\tconst categories = useMemo(\n\t\t() =>\n\t\t\tmediaCategories.map( ( mediaCategory ) => ( {\n\t\t\t\t...mediaCategory,\n\t\t\t\tlabel: mediaCategory.labels.name,\n\t\t\t} ) ),\n\t\t[ mediaCategories ]\n\t);\n\n\tif ( ! categories.length ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className={ `${ baseCssClass }-container` }>\n\t\t\t\t\t<CategoryTabs\n\t\t\t\t\t\tcategories={ categories }\n\t\t\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\t\t\tonSelectCategory={ onSelectCategory }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</CategoryTabs>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tmultiple={ false }\n\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t// Safari doesn't emit a focus event on button elements when\n\t\t\t\t\t\t\t\t\t\t// clicked and we need to manually focus the button here.\n\t\t\t\t\t\t\t\t\t\t// The reason is that core's Media Library modal explicitly triggers a\n\t\t\t\t\t\t\t\t\t\t// focus event and therefore a `blur` event is triggered on a different\n\t\t\t\t\t\t\t\t\t\t// element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`\n\t\t\t\t\t\t\t\t\t\t// attribute making the Inserter dialog to close.\n\t\t\t\t\t\t\t\t\t\tevent.target.focus();\n\t\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-library-button\"\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tdata-unstable-ignore-focus-outside-for-relatedtarget=\".media-modal\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default MediaTab;\n"],"mappings":"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","ignoreList":[]}
@@ -21,8 +21,6 @@ var _searchResults = _interopRequireDefault(require("./search-results"));
21
21
  var _useInsertionPoint = _interopRequireDefault(require("./hooks/use-insertion-point"));
22
22
  var _store = require("../../store");
23
23
  var _tabbedSidebar = _interopRequireDefault(require("../tabbed-sidebar"));
24
- var _useZoomOut = require("../../hooks/use-zoom-out");
25
- var _lockUnlock = require("../../lock-unlock");
26
24
  var _jsxRuntime = require("react/jsx-runtime");
27
25
  /**
28
26
  * External dependencies
@@ -52,19 +50,7 @@ function InserterMenu({
52
50
  __experimentalInitialTab,
53
51
  __experimentalInitialCategory
54
52
  }, ref) {
55
- const {
56
- isZoomOutMode,
57
- inserterSearchInputRef
58
- } = (0, _data.useSelect)(select => {
59
- const {
60
- __unstableGetEditorMode,
61
- getInserterSearchInputRef
62
- } = (0, _lockUnlock.unlock)(select(_store.store));
63
- return {
64
- isZoomOutMode: __unstableGetEditorMode() === 'zoom-out',
65
- inserterSearchInputRef: getInserterSearchInputRef()
66
- };
67
- }, []);
53
+ const isZoomOutMode = (0, _data.useSelect)(select => select(_store.store).__unstableGetEditorMode() === 'zoom-out', []);
68
54
  const [filterValue, setFilterValue, delayedFilterValue] = (0, _compose.useDebouncedInput)(__experimentalFilterValue);
69
55
  const [hoveredItem, setHoveredItem] = (0, _element.useState)(null);
70
56
  const [selectedPatternCategory, setSelectedPatternCategory] = (0, _element.useState)(__experimentalInitialCategory);
@@ -93,19 +79,19 @@ function InserterMenu({
93
79
 
94
80
  // Check for focus loss due to filtering blocks by selected block type
95
81
  window.requestAnimationFrame(() => {
96
- if (!shouldFocusBlock && !blockTypesTabRef?.current.contains(ref.current.ownerDocument.activeElement)) {
82
+ if (!shouldFocusBlock && !blockTypesTabRef.current?.contains(ref.current.ownerDocument.activeElement)) {
97
83
  // There has been a focus loss, so focus the first button in the block types tab
98
- blockTypesTabRef?.current.querySelector('button').focus();
84
+ blockTypesTabRef.current?.querySelector('button').focus();
99
85
  }
100
86
  });
101
- }, [onInsertBlocks, onSelect, ref, shouldFocusBlock]);
87
+ }, [onInsertBlocks, onSelect, shouldFocusBlock]);
102
88
  const onInsertPattern = (0, _element.useCallback)((blocks, patternName) => {
103
89
  onToggleInsertionPoint(false);
104
90
  onInsertBlocks(blocks, {
105
91
  patternName
106
92
  });
107
93
  onSelect();
108
- }, [onInsertBlocks, onSelect, onToggleInsertionPoint]);
94
+ }, [onInsertBlocks, onSelect]);
109
95
  const onHover = (0, _element.useCallback)(item => {
110
96
  onToggleInsertionPoint(item);
111
97
  setHoveredItem(item);
@@ -117,8 +103,6 @@ function InserterMenu({
117
103
  }, [setSelectedPatternCategory, onPatternCategorySelection]);
118
104
  const showPatternPanel = selectedTab === 'patterns' && !delayedFilterValue && !!selectedPatternCategory;
119
105
  const showMediaPanel = selectedTab === 'media' && !!selectedMediaCategory;
120
- const showZoomOut = showPatternPanel && !!window.__experimentalEnableZoomedOutPatternsTab;
121
- (0, _useZoomOut.useZoomOut)(showZoomOut);
122
106
  const inserterSearch = (0, _element.useMemo)(() => {
123
107
  if (selectedTab === 'media') {
124
108
  return null;
@@ -135,8 +119,7 @@ function InserterMenu({
135
119
  },
136
120
  value: filterValue,
137
121
  label: (0, _i18n.__)('Search for blocks and patterns'),
138
- placeholder: (0, _i18n.__)('Search'),
139
- ref: inserterSearchInputRef
122
+ placeholder: (0, _i18n.__)('Search')
140
123
  }), !!delayedFilterValue && /*#__PURE__*/(0, _jsxRuntime.jsx)(_searchResults.default, {
141
124
  filterValue: delayedFilterValue,
142
125
  onSelect: onSelect,
@@ -150,7 +133,7 @@ function InserterMenu({
150
133
  prioritizePatterns: selectedTab === 'patterns'
151
134
  })]
152
135
  });
153
- }, [selectedTab, filterValue, inserterSearchInputRef, delayedFilterValue, onSelect, onHover, rootClientId, clientId, isAppender, __experimentalInsertionIndex, shouldFocusBlock, hoveredItem, setFilterValue]);
136
+ }, [selectedTab, hoveredItem, setHoveredItem, setFilterValue, filterValue, delayedFilterValue, onSelect, onHover, shouldFocusBlock, clientId, rootClientId, __experimentalInsertionIndex, isAppender]);
154
137
  const blocksTab = (0, _element.useMemo)(() => {
155
138
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
156
139
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {