@wordpress/block-editor 12.24.0 → 12.25.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 (510) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/components/alignment-control/ui.js +3 -1
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-inspector/index.js +1 -1
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-list/block.js +0 -9
  8. package/build/components/block-list/block.js.map +1 -1
  9. package/build/components/block-list/index.js +4 -3
  10. package/build/components/block-list/index.js.map +1 -1
  11. package/build/components/block-list/index.native.js +1 -9
  12. package/build/components/block-list/index.native.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +6 -6
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-block-refs.js +17 -46
  16. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-is-hovered.js +10 -14
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-mover/index.native.js +3 -1
  20. package/build/components/block-mover/index.native.js.map +1 -1
  21. package/build/components/block-settings-menu/block-settings-dropdown.js +0 -25
  22. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  23. package/build/components/block-switcher/pattern-transformations-menu.js +3 -1
  24. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  25. package/build/components/block-switcher/use-transformed-patterns.js +6 -2
  26. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  27. package/build/components/block-switcher/utils.js +15 -5
  28. package/build/components/block-switcher/utils.js.map +1 -1
  29. package/build/components/block-toolbar/use-has-block-toolbar.js +14 -9
  30. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  31. package/build/components/block-tools/index.js +3 -1
  32. package/build/components/block-tools/index.js.map +1 -1
  33. package/build/components/block-tools/use-show-block-tools.js +2 -5
  34. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  35. package/build/components/block-tools/zoom-out-mode-inserters.js +5 -1
  36. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  37. package/build/components/block-variation-picker/index.js +3 -2
  38. package/build/components/block-variation-picker/index.js.map +1 -1
  39. package/build/components/block-variation-transforms/index.js +3 -1
  40. package/build/components/block-variation-transforms/index.js.map +1 -1
  41. package/build/components/floating-toolbar/index.native.js +9 -5
  42. package/build/components/floating-toolbar/index.native.js.map +1 -1
  43. package/build/components/global-styles/background-panel.js +1 -1
  44. package/build/components/global-styles/background-panel.js.map +1 -1
  45. package/build/components/global-styles/color-panel.js +3 -1
  46. package/build/components/global-styles/color-panel.js.map +1 -1
  47. package/build/components/global-styles/dimensions-panel.js +16 -0
  48. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  49. package/build/components/global-styles/hooks.js +3 -2
  50. package/build/components/global-styles/hooks.js.map +1 -1
  51. package/build/components/global-styles/typography-panel.js +23 -23
  52. package/build/components/global-styles/typography-panel.js.map +1 -1
  53. package/build/components/global-styles/use-global-styles-output.js +149 -132
  54. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  55. package/build/components/global-styles/utils.js +45 -0
  56. package/build/components/global-styles/utils.js.map +1 -1
  57. package/build/components/inner-blocks/index.js +16 -2
  58. package/build/components/inner-blocks/index.js.map +1 -1
  59. package/build/components/inserter/block-patterns-tab/index.js +12 -31
  60. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  61. package/build/components/inserter/block-types-tab.js +4 -0
  62. package/build/components/inserter/block-types-tab.js.map +1 -1
  63. package/build/components/inserter/category-tabs/index.js +56 -0
  64. package/build/components/inserter/category-tabs/index.js.map +1 -0
  65. package/build/components/inserter/media-tab/index.js +2 -2
  66. package/build/components/inserter/media-tab/index.js.map +1 -1
  67. package/build/components/inserter/media-tab/media-panel.js +0 -25
  68. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  69. package/build/components/inserter/media-tab/media-preview.js +13 -3
  70. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  71. package/build/components/inserter/media-tab/media-tab.js +15 -29
  72. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  73. package/build/components/inserter/menu.js +59 -69
  74. package/build/components/inserter/menu.js.map +1 -1
  75. package/build/components/inserter/tabs.js +6 -6
  76. package/build/components/inserter/tabs.js.map +1 -1
  77. package/build/components/line-height-control/index.js +6 -2
  78. package/build/components/line-height-control/index.js.map +1 -1
  79. package/build/components/link-control/search-item.js +9 -3
  80. package/build/components/link-control/search-item.js.map +1 -1
  81. package/build/components/list-view/block-select-button.js +5 -170
  82. package/build/components/list-view/block-select-button.js.map +1 -1
  83. package/build/components/list-view/block.js +166 -14
  84. package/build/components/list-view/block.js.map +1 -1
  85. package/build/components/list-view/index.js +1 -1
  86. package/build/components/list-view/index.js.map +1 -1
  87. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  88. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  89. package/build/components/list-view/utils.js +3 -1
  90. package/build/components/list-view/utils.js.map +1 -1
  91. package/build/components/media-placeholder/index.js +3 -3
  92. package/build/components/media-placeholder/index.js.map +1 -1
  93. package/build/components/navigable-toolbar/index.js +3 -1
  94. package/build/components/navigable-toolbar/index.js.map +1 -1
  95. package/build/components/provider/block-refs-provider.js +3 -4
  96. package/build/components/provider/block-refs-provider.js.map +1 -1
  97. package/build/components/provider/use-block-sync.js +3 -12
  98. package/build/components/provider/use-block-sync.js.map +1 -1
  99. package/build/components/rich-text/event-listeners/before-input-rules.js +93 -0
  100. package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
  101. package/build/components/rich-text/event-listeners/delete.js +58 -0
  102. package/build/components/rich-text/event-listeners/delete.js.map +1 -0
  103. package/build/components/rich-text/event-listeners/enter.js +98 -0
  104. package/build/components/rich-text/event-listeners/enter.js.map +1 -0
  105. package/build/components/rich-text/event-listeners/firefox-compat.js +36 -0
  106. package/build/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
  107. package/build/components/rich-text/event-listeners/index.js +44 -0
  108. package/build/components/rich-text/event-listeners/index.js.map +1 -0
  109. package/build/components/rich-text/event-listeners/input-events.js +22 -0
  110. package/build/components/rich-text/event-listeners/input-events.js.map +1 -0
  111. package/build/components/rich-text/event-listeners/input-rules.js +135 -0
  112. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -0
  113. package/build/components/rich-text/event-listeners/insert-replacement-text.js +33 -0
  114. package/build/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
  115. package/build/components/rich-text/event-listeners/paste-handler.js +146 -0
  116. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -0
  117. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js +27 -0
  118. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
  119. package/build/components/rich-text/event-listeners/shortcuts.js +22 -0
  120. package/build/components/rich-text/event-listeners/shortcuts.js.map +1 -0
  121. package/build/components/rich-text/event-listeners/undo-automatic-change.js +51 -0
  122. package/build/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
  123. package/build/components/rich-text/index.js +11 -31
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +13 -3
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/rich-text/multiline.js +6 -2
  128. package/build/components/rich-text/multiline.js.map +1 -1
  129. package/build/components/rich-text/native/index.native.js +12 -0
  130. package/build/components/rich-text/native/index.native.js.map +1 -1
  131. package/build/components/rich-text/use-format-types.js +8 -4
  132. package/build/components/rich-text/use-format-types.js.map +1 -1
  133. package/build/components/segmented-text-control/index.js +62 -0
  134. package/build/components/segmented-text-control/index.js.map +1 -0
  135. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
  136. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  137. package/build/components/text-alignment-control/index.js +76 -0
  138. package/build/components/text-alignment-control/index.js.map +1 -0
  139. package/build/components/text-decoration-control/index.js +21 -25
  140. package/build/components/text-decoration-control/index.js.map +1 -1
  141. package/build/components/text-transform-control/index.js +18 -22
  142. package/build/components/text-transform-control/index.js.map +1 -1
  143. package/build/components/use-block-display-information/index.js +9 -3
  144. package/build/components/use-block-display-information/index.js.map +1 -1
  145. package/build/components/use-on-block-drop/index.js +3 -1
  146. package/build/components/use-on-block-drop/index.js.map +1 -1
  147. package/build/components/writing-flow/use-drag-selection.js +3 -1
  148. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  149. package/build/components/writing-flow/use-tab-nav.js +3 -1
  150. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  151. package/build/components/writing-mode-control/index.js +16 -20
  152. package/build/components/writing-mode-control/index.js.map +1 -1
  153. package/build/hooks/duotone.js +3 -1
  154. package/build/hooks/duotone.js.map +1 -1
  155. package/build/hooks/utils.js +11 -6
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/private-apis.js +4 -2
  158. package/build/private-apis.js.map +1 -1
  159. package/build/store/actions.js +32 -8
  160. package/build/store/actions.js.map +1 -1
  161. package/build/store/private-selectors.js +27 -6
  162. package/build/store/private-selectors.js.map +1 -1
  163. package/build/store/reducer.js +11 -8
  164. package/build/store/reducer.js.map +1 -1
  165. package/build/store/selectors.js +21 -7
  166. package/build/store/selectors.js.map +1 -1
  167. package/build/utils/object.js +17 -0
  168. package/build/utils/object.js.map +1 -1
  169. package/build/utils/order-inserter-block-items.js +6 -2
  170. package/build/utils/order-inserter-block-items.js.map +1 -1
  171. package/build/utils/pasting.js +6 -2
  172. package/build/utils/pasting.js.map +1 -1
  173. package/build-module/components/alignment-control/ui.js +3 -1
  174. package/build-module/components/alignment-control/ui.js.map +1 -1
  175. package/build-module/components/block-inspector/index.js +1 -1
  176. package/build-module/components/block-inspector/index.js.map +1 -1
  177. package/build-module/components/block-list/block.js +0 -9
  178. package/build-module/components/block-list/block.js.map +1 -1
  179. package/build-module/components/block-list/index.js +4 -3
  180. package/build-module/components/block-list/index.js.map +1 -1
  181. package/build-module/components/block-list/index.native.js +1 -9
  182. package/build-module/components/block-list/index.native.js.map +1 -1
  183. package/build-module/components/block-list/use-block-props/index.js +6 -6
  184. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  185. package/build-module/components/block-list/use-block-props/use-block-refs.js +19 -48
  186. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  187. package/build-module/components/block-list/use-block-props/use-is-hovered.js +10 -14
  188. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  189. package/build-module/components/block-mover/index.native.js +3 -1
  190. package/build-module/components/block-mover/index.native.js.map +1 -1
  191. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -26
  192. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  193. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -1
  194. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  195. package/build-module/components/block-switcher/use-transformed-patterns.js +6 -2
  196. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  197. package/build-module/components/block-switcher/utils.js +15 -5
  198. package/build-module/components/block-switcher/utils.js.map +1 -1
  199. package/build-module/components/block-toolbar/use-has-block-toolbar.js +14 -9
  200. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  201. package/build-module/components/block-tools/index.js +3 -1
  202. package/build-module/components/block-tools/index.js.map +1 -1
  203. package/build-module/components/block-tools/use-show-block-tools.js +2 -5
  204. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  205. package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -1
  206. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  207. package/build-module/components/block-variation-picker/index.js +3 -2
  208. package/build-module/components/block-variation-picker/index.js.map +1 -1
  209. package/build-module/components/block-variation-transforms/index.js +3 -1
  210. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  211. package/build-module/components/floating-toolbar/index.native.js +9 -5
  212. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  213. package/build-module/components/global-styles/background-panel.js +1 -1
  214. package/build-module/components/global-styles/background-panel.js.map +1 -1
  215. package/build-module/components/global-styles/color-panel.js +3 -1
  216. package/build-module/components/global-styles/color-panel.js.map +1 -1
  217. package/build-module/components/global-styles/dimensions-panel.js +17 -1
  218. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  219. package/build-module/components/global-styles/hooks.js +3 -2
  220. package/build-module/components/global-styles/hooks.js.map +1 -1
  221. package/build-module/components/global-styles/typography-panel.js +24 -24
  222. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  223. package/build-module/components/global-styles/use-global-styles-output.js +149 -132
  224. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  225. package/build-module/components/global-styles/utils.js +44 -0
  226. package/build-module/components/global-styles/utils.js.map +1 -1
  227. package/build-module/components/inner-blocks/index.js +16 -2
  228. package/build-module/components/inner-blocks/index.js.map +1 -1
  229. package/build-module/components/inserter/block-patterns-tab/index.js +13 -32
  230. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  231. package/build-module/components/inserter/block-types-tab.js +4 -0
  232. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  233. package/build-module/components/inserter/category-tabs/index.js +49 -0
  234. package/build-module/components/inserter/category-tabs/index.js.map +1 -0
  235. package/build-module/components/inserter/media-tab/index.js +1 -1
  236. package/build-module/components/inserter/media-tab/index.js.map +1 -1
  237. package/build-module/components/inserter/media-tab/media-panel.js +0 -24
  238. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  239. package/build-module/components/inserter/media-tab/media-preview.js +13 -3
  240. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  241. package/build-module/components/inserter/media-tab/media-tab.js +17 -31
  242. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  243. package/build-module/components/inserter/menu.js +61 -71
  244. package/build-module/components/inserter/menu.js.map +1 -1
  245. package/build-module/components/inserter/tabs.js +6 -6
  246. package/build-module/components/inserter/tabs.js.map +1 -1
  247. package/build-module/components/line-height-control/index.js +6 -2
  248. package/build-module/components/line-height-control/index.js.map +1 -1
  249. package/build-module/components/link-control/search-item.js +9 -3
  250. package/build-module/components/link-control/search-item.js.map +1 -1
  251. package/build-module/components/list-view/block-select-button.js +7 -172
  252. package/build-module/components/list-view/block-select-button.js.map +1 -1
  253. package/build-module/components/list-view/block.js +167 -15
  254. package/build-module/components/list-view/block.js.map +1 -1
  255. package/build-module/components/list-view/index.js +1 -1
  256. package/build-module/components/list-view/index.js.map +1 -1
  257. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  258. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  259. package/build-module/components/list-view/utils.js +3 -1
  260. package/build-module/components/list-view/utils.js.map +1 -1
  261. package/build-module/components/media-placeholder/index.js +3 -3
  262. package/build-module/components/media-placeholder/index.js.map +1 -1
  263. package/build-module/components/navigable-toolbar/index.js +3 -1
  264. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  265. package/build-module/components/provider/block-refs-provider.js +3 -4
  266. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  267. package/build-module/components/provider/use-block-sync.js +4 -13
  268. package/build-module/components/provider/use-block-sync.js.map +1 -1
  269. package/build-module/components/rich-text/event-listeners/before-input-rules.js +86 -0
  270. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
  271. package/build-module/components/rich-text/event-listeners/delete.js +51 -0
  272. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -0
  273. package/build-module/components/rich-text/event-listeners/enter.js +92 -0
  274. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -0
  275. package/build-module/components/rich-text/event-listeners/firefox-compat.js +29 -0
  276. package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
  277. package/build-module/components/rich-text/event-listeners/index.js +36 -0
  278. package/build-module/components/rich-text/event-listeners/index.js.map +1 -0
  279. package/build-module/components/rich-text/event-listeners/input-events.js +15 -0
  280. package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -0
  281. package/build-module/components/rich-text/event-listeners/input-rules.js +127 -0
  282. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -0
  283. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +27 -0
  284. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
  285. package/build-module/components/rich-text/event-listeners/paste-handler.js +142 -0
  286. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -0
  287. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +21 -0
  288. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
  289. package/build-module/components/rich-text/event-listeners/shortcuts.js +15 -0
  290. package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -0
  291. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
  292. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
  293. package/build-module/components/rich-text/index.js +12 -32
  294. package/build-module/components/rich-text/index.js.map +1 -1
  295. package/build-module/components/rich-text/index.native.js +13 -3
  296. package/build-module/components/rich-text/index.native.js.map +1 -1
  297. package/build-module/components/rich-text/multiline.js +6 -2
  298. package/build-module/components/rich-text/multiline.js.map +1 -1
  299. package/build-module/components/rich-text/native/index.native.js +12 -0
  300. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  301. package/build-module/components/rich-text/use-format-types.js +8 -4
  302. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  303. package/build-module/components/segmented-text-control/index.js +55 -0
  304. package/build-module/components/segmented-text-control/index.js.map +1 -0
  305. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
  306. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  307. package/build-module/components/text-alignment-control/index.js +68 -0
  308. package/build-module/components/text-alignment-control/index.js.map +1 -0
  309. package/build-module/components/text-decoration-control/index.js +21 -25
  310. package/build-module/components/text-decoration-control/index.js.map +1 -1
  311. package/build-module/components/text-transform-control/index.js +18 -22
  312. package/build-module/components/text-transform-control/index.js.map +1 -1
  313. package/build-module/components/use-block-display-information/index.js +9 -3
  314. package/build-module/components/use-block-display-information/index.js.map +1 -1
  315. package/build-module/components/use-on-block-drop/index.js +3 -1
  316. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  317. package/build-module/components/writing-flow/use-drag-selection.js +3 -1
  318. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  319. package/build-module/components/writing-flow/use-tab-nav.js +3 -1
  320. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  321. package/build-module/components/writing-mode-control/index.js +16 -20
  322. package/build-module/components/writing-mode-control/index.js.map +1 -1
  323. package/build-module/hooks/duotone.js +3 -1
  324. package/build-module/hooks/duotone.js.map +1 -1
  325. package/build-module/hooks/utils.js +11 -6
  326. package/build-module/hooks/utils.js.map +1 -1
  327. package/build-module/private-apis.js +4 -2
  328. package/build-module/private-apis.js.map +1 -1
  329. package/build-module/store/actions.js +32 -8
  330. package/build-module/store/actions.js.map +1 -1
  331. package/build-module/store/private-selectors.js +27 -5
  332. package/build-module/store/private-selectors.js.map +1 -1
  333. package/build-module/store/reducer.js +11 -8
  334. package/build-module/store/reducer.js.map +1 -1
  335. package/build-module/store/selectors.js +21 -7
  336. package/build-module/store/selectors.js.map +1 -1
  337. package/build-module/utils/object.js +16 -0
  338. package/build-module/utils/object.js.map +1 -1
  339. package/build-module/utils/order-inserter-block-items.js +6 -2
  340. package/build-module/utils/order-inserter-block-items.js.map +1 -1
  341. package/build-module/utils/pasting.js +6 -2
  342. package/build-module/utils/pasting.js.map +1 -1
  343. package/build-style/content-rtl.css +41 -68
  344. package/build-style/content.css +41 -68
  345. package/build-style/style-rtl.css +100 -199
  346. package/build-style/style.css +100 -199
  347. package/package.json +31 -31
  348. package/src/components/alignment-control/ui.js +3 -1
  349. package/src/components/block-bindings-toolbar-indicator/style.scss +1 -4
  350. package/src/components/block-canvas/style.scss +1 -3
  351. package/src/components/block-draggable/test/helpers.native.js +8 -8
  352. package/src/components/block-inspector/index.js +1 -2
  353. package/src/components/block-list/block.js +2 -13
  354. package/src/components/block-list/content.scss +9 -1
  355. package/src/components/block-list/index.js +4 -4
  356. package/src/components/block-list/index.native.js +1 -6
  357. package/src/components/block-list/use-block-props/index.js +12 -4
  358. package/src/components/block-list/use-block-props/use-block-refs.js +17 -57
  359. package/src/components/block-list/use-block-props/use-is-hovered.js +11 -16
  360. package/src/components/block-mover/index.native.js +3 -1
  361. package/src/components/block-patterns-list/style.scss +1 -3
  362. package/src/components/block-preview/style.scss +13 -15
  363. package/src/components/block-settings-menu/block-settings-dropdown.js +1 -51
  364. package/src/components/block-switcher/pattern-transformations-menu.js +3 -1
  365. package/src/components/block-switcher/use-transformed-patterns.js +6 -2
  366. package/src/components/block-switcher/utils.js +14 -5
  367. package/src/components/block-toolbar/style.scss +8 -11
  368. package/src/components/block-toolbar/use-has-block-toolbar.js +21 -16
  369. package/src/components/block-tools/index.js +3 -1
  370. package/src/components/block-tools/use-show-block-tools.js +36 -48
  371. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -1
  372. package/src/components/block-variation-picker/content.scss +22 -72
  373. package/src/components/block-variation-picker/index.js +3 -2
  374. package/src/components/block-variation-transforms/index.js +3 -1
  375. package/src/components/floating-toolbar/index.native.js +5 -2
  376. package/src/components/global-styles/background-panel.js +1 -3
  377. package/src/components/global-styles/color-panel.js +3 -1
  378. package/src/components/global-styles/dimensions-panel.js +18 -1
  379. package/src/components/global-styles/hooks.js +2 -0
  380. package/src/components/global-styles/test/utils.js +21 -0
  381. package/src/components/global-styles/typography-panel.js +27 -23
  382. package/src/components/global-styles/use-global-styles-output.js +211 -187
  383. package/src/components/global-styles/utils.js +55 -0
  384. package/src/components/inner-blocks/index.js +14 -1
  385. package/src/components/inserter/block-patterns-tab/index.js +15 -65
  386. package/src/components/inserter/block-types-tab.js +5 -0
  387. package/src/components/inserter/category-tabs/index.js +74 -0
  388. package/src/components/inserter/media-tab/index.js +1 -1
  389. package/src/components/inserter/media-tab/media-panel.js +0 -22
  390. package/src/components/inserter/media-tab/media-preview.js +15 -7
  391. package/src/components/inserter/media-tab/media-tab.js +44 -83
  392. package/src/components/inserter/menu.js +139 -117
  393. package/src/components/inserter/style.scss +90 -170
  394. package/src/components/inserter/tabs.js +5 -13
  395. package/src/components/line-height-control/index.js +6 -2
  396. package/src/components/link-control/search-item.js +9 -3
  397. package/src/components/list-view/block-select-button.js +73 -266
  398. package/src/components/list-view/block.js +218 -28
  399. package/src/components/list-view/index.js +1 -1
  400. package/src/components/list-view/style.scss +20 -28
  401. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  402. package/src/components/list-view/utils.js +3 -1
  403. package/src/components/media-placeholder/content.scss +0 -11
  404. package/src/components/media-placeholder/index.js +3 -3
  405. package/src/components/navigable-toolbar/index.js +3 -1
  406. package/src/components/provider/block-refs-provider.js +3 -8
  407. package/src/components/provider/test/use-block-sync.js +7 -0
  408. package/src/components/provider/use-block-sync.js +3 -20
  409. package/src/components/rich-text/event-listeners/before-input-rules.js +92 -0
  410. package/src/components/rich-text/event-listeners/delete.js +53 -0
  411. package/src/components/rich-text/event-listeners/enter.js +104 -0
  412. package/src/components/rich-text/event-listeners/firefox-compat.js +31 -0
  413. package/src/components/rich-text/event-listeners/index.js +56 -0
  414. package/src/components/rich-text/event-listeners/input-events.js +13 -0
  415. package/src/components/rich-text/event-listeners/input-rules.js +146 -0
  416. package/src/components/rich-text/event-listeners/insert-replacement-text.js +28 -0
  417. package/src/components/rich-text/event-listeners/paste-handler.js +169 -0
  418. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +24 -0
  419. package/src/components/rich-text/event-listeners/shortcuts.js +13 -0
  420. package/src/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
  421. package/src/components/rich-text/index.js +7 -34
  422. package/src/components/rich-text/index.native.js +11 -0
  423. package/src/components/rich-text/multiline.js +6 -2
  424. package/src/components/rich-text/native/index.native.js +11 -0
  425. package/src/components/rich-text/use-format-types.js +6 -2
  426. package/src/components/segmented-text-control/index.js +63 -0
  427. package/src/components/{writing-mode-control → segmented-text-control}/style.scss +2 -5
  428. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -1
  429. package/src/components/text-alignment-control/index.js +91 -0
  430. package/src/components/text-alignment-control/stories/index.story.js +39 -0
  431. package/src/components/text-decoration-control/index.js +20 -33
  432. package/src/components/text-transform-control/index.js +17 -30
  433. package/src/components/use-block-display-information/index.js +9 -3
  434. package/src/components/use-on-block-drop/index.js +3 -1
  435. package/src/components/writing-flow/use-drag-selection.js +3 -1
  436. package/src/components/writing-flow/use-tab-nav.js +3 -1
  437. package/src/components/writing-mode-control/index.js +15 -28
  438. package/src/hooks/duotone.js +3 -1
  439. package/src/hooks/utils.js +16 -2
  440. package/src/private-apis.js +4 -2
  441. package/src/store/actions.js +36 -12
  442. package/src/store/private-selectors.js +28 -4
  443. package/src/store/reducer.js +13 -23
  444. package/src/store/selectors.js +20 -7
  445. package/src/style.scss +1 -2
  446. package/src/utils/object.js +16 -0
  447. package/src/utils/order-inserter-block-items.js +6 -2
  448. package/src/utils/pasting.js +6 -2
  449. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -54
  450. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
  451. package/build/components/rich-text/use-before-input-rules.js +0 -98
  452. package/build/components/rich-text/use-before-input-rules.js.map +0 -1
  453. package/build/components/rich-text/use-delete.js +0 -64
  454. package/build/components/rich-text/use-delete.js.map +0 -1
  455. package/build/components/rich-text/use-enter.js +0 -109
  456. package/build/components/rich-text/use-enter.js.map +0 -1
  457. package/build/components/rich-text/use-firefox-compat.js +0 -44
  458. package/build/components/rich-text/use-firefox-compat.js.map +0 -1
  459. package/build/components/rich-text/use-input-events.js +0 -25
  460. package/build/components/rich-text/use-input-events.js.map +0 -1
  461. package/build/components/rich-text/use-input-rules.js +0 -139
  462. package/build/components/rich-text/use-input-rules.js.map +0 -1
  463. package/build/components/rich-text/use-insert-replacement-text.js +0 -38
  464. package/build/components/rich-text/use-insert-replacement-text.js.map +0 -1
  465. package/build/components/rich-text/use-paste-handler.js +0 -158
  466. package/build/components/rich-text/use-paste-handler.js.map +0 -1
  467. package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -32
  468. package/build/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
  469. package/build/components/rich-text/use-shortcuts.js +0 -25
  470. package/build/components/rich-text/use-shortcuts.js.map +0 -1
  471. package/build/components/rich-text/use-undo-automatic-change.js +0 -53
  472. package/build/components/rich-text/use-undo-automatic-change.js.map +0 -1
  473. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -47
  474. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
  475. package/build-module/components/rich-text/use-before-input-rules.js +0 -92
  476. package/build-module/components/rich-text/use-before-input-rules.js.map +0 -1
  477. package/build-module/components/rich-text/use-delete.js +0 -57
  478. package/build-module/components/rich-text/use-delete.js.map +0 -1
  479. package/build-module/components/rich-text/use-enter.js +0 -102
  480. package/build-module/components/rich-text/use-enter.js.map +0 -1
  481. package/build-module/components/rich-text/use-firefox-compat.js +0 -37
  482. package/build-module/components/rich-text/use-firefox-compat.js.map +0 -1
  483. package/build-module/components/rich-text/use-input-events.js +0 -18
  484. package/build-module/components/rich-text/use-input-events.js.map +0 -1
  485. package/build-module/components/rich-text/use-input-rules.js +0 -132
  486. package/build-module/components/rich-text/use-input-rules.js.map +0 -1
  487. package/build-module/components/rich-text/use-insert-replacement-text.js +0 -32
  488. package/build-module/components/rich-text/use-insert-replacement-text.js.map +0 -1
  489. package/build-module/components/rich-text/use-paste-handler.js +0 -152
  490. package/build-module/components/rich-text/use-paste-handler.js.map +0 -1
  491. package/build-module/components/rich-text/use-remove-browser-shortcuts.js +0 -26
  492. package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
  493. package/build-module/components/rich-text/use-shortcuts.js +0 -18
  494. package/build-module/components/rich-text/use-shortcuts.js.map +0 -1
  495. package/build-module/components/rich-text/use-undo-automatic-change.js +0 -46
  496. package/build-module/components/rich-text/use-undo-automatic-change.js.map +0 -1
  497. package/src/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -55
  498. package/src/components/rich-text/use-before-input-rules.js +0 -99
  499. package/src/components/rich-text/use-delete.js +0 -59
  500. package/src/components/rich-text/use-enter.js +0 -110
  501. package/src/components/rich-text/use-firefox-compat.js +0 -39
  502. package/src/components/rich-text/use-input-events.js +0 -19
  503. package/src/components/rich-text/use-input-rules.js +0 -150
  504. package/src/components/rich-text/use-insert-replacement-text.js +0 -31
  505. package/src/components/rich-text/use-paste-handler.js +0 -180
  506. package/src/components/rich-text/use-remove-browser-shortcuts.js +0 -29
  507. package/src/components/rich-text/use-shortcuts.js +0 -19
  508. package/src/components/rich-text/use-undo-automatic-change.js +0 -46
  509. package/src/components/text-decoration-control/style.scss +0 -18
  510. package/src/components/text-transform-control/style.scss +0 -18
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_i18n","_element","_blocks","_icons","_data","_notices","_blob","_inserterDraggableBlocks","_utils","_store","_lockUnlock","ALLOWED_MEDIA_TYPES","MAXIMUM_TITLE_LENGTH","MEDIA_OPTIONS_POPOVER_PROPS","position","className","CompositeItemV2","CompositeItem","unlock","componentsPrivateApis","MediaPreviewOptions","category","media","getReportUrl","reportUrl","_react","createElement","DropdownMenu","label","__","popoverProps","icon","moreVertical","MenuGroup","MenuItem","onClick","window","open","focus","external","sprintf","mediaType","InsertExternalImageModal","onClose","onSubmit","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","mediaUpload","useSelect","select","blockEditorStore","getSettings","onMediaInsert","useCallback","previewBlock","clonedBlock","cloneBlock","id","url","caption","attributes","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","classnames","Tooltip","text","render","role","Spinner"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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 mediaUpload = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().mediaUpload,\n\t\t[]\n\t);\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\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\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\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\tmediaUpload( {\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\tonClick,\n\t\t\tmediaUpload,\n\t\t\tcreateErrorNotice,\n\t\t\tcreateSuccessNotice,\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={ classnames(\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":["_classnames","_interopRequireDefault","require","_components","_i18n","_element","_blocks","_icons","_data","_notices","_blob","_inserterDraggableBlocks","_utils","_store","_lockUnlock","ALLOWED_MEDIA_TYPES","MAXIMUM_TITLE_LENGTH","MEDIA_OPTIONS_POPOVER_PROPS","position","className","CompositeItemV2","CompositeItem","unlock","componentsPrivateApis","MediaPreviewOptions","category","media","getReportUrl","reportUrl","_react","createElement","DropdownMenu","label","__","popoverProps","icon","moreVertical","MenuGroup","MenuItem","onClick","window","open","focus","external","sprintf","mediaType","InsertExternalImageModal","onClose","onSubmit","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","classnames","Tooltip","text","render","role","Spinner"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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={ classnames(\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":[]}
@@ -6,22 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _react = require("react");
9
- var _classnames = _interopRequireDefault(require("classnames"));
10
9
  var _i18n = require("@wordpress/i18n");
11
10
  var _compose = require("@wordpress/compose");
12
11
  var _components = require("@wordpress/components");
13
12
  var _element = require("@wordpress/element");
14
- var _icons = require("@wordpress/icons");
15
13
  var _mediaPanel = require("./media-panel");
16
14
  var _check = _interopRequireDefault(require("../../media-upload/check"));
17
15
  var _mediaUpload = _interopRequireDefault(require("../../media-upload"));
18
16
  var _hooks = require("./hooks");
19
17
  var _utils = require("./utils");
20
18
  var _mobileTabNavigation = _interopRequireDefault(require("../mobile-tab-navigation"));
21
- /**
22
- * External dependencies
23
- */
24
-
19
+ var _categoryTabs = _interopRequireDefault(require("../category-tabs"));
20
+ var _noResults = _interopRequireDefault(require("../no-results"));
25
21
  /**
26
22
  * WordPress dependencies
27
23
  */
@@ -35,7 +31,8 @@ function MediaTab({
35
31
  rootClientId,
36
32
  selectedCategory,
37
33
  onSelectCategory,
38
- onInsert
34
+ onInsert,
35
+ children
39
36
  }) {
40
37
  const mediaCategories = (0, _hooks.useMediaCategories)(rootClientId);
41
38
  const isMobile = (0, _compose.useViewportMatch)('medium', '<');
@@ -47,31 +44,20 @@ function MediaTab({
47
44
  const [block] = (0, _utils.getBlockAndPreviewFromMedia)(media, media.type);
48
45
  onInsert(block);
49
46
  }, [onInsert]);
50
- const mobileMediaCategories = (0, _element.useMemo)(() => mediaCategories.map(mediaCategory => ({
47
+ const categories = (0, _element.useMemo)(() => mediaCategories.map(mediaCategory => ({
51
48
  ...mediaCategory,
52
49
  label: mediaCategory.labels.name
53
50
  })), [mediaCategories]);
51
+ if (!categories.length) {
52
+ return (0, _react.createElement)(_noResults.default, null);
53
+ }
54
54
  return (0, _react.createElement)(_react.Fragment, null, !isMobile && (0, _react.createElement)("div", {
55
55
  className: `${baseCssClass}-container`
56
- }, (0, _react.createElement)("nav", {
57
- "aria-label": (0, _i18n.__)('Media categories')
58
- }, (0, _react.createElement)(_components.__experimentalItemGroup, {
59
- role: "list",
60
- className: baseCssClass
61
- }, mediaCategories.map(mediaCategory => (0, _react.createElement)(_components.__experimentalItem, {
62
- role: "listitem",
63
- key: mediaCategory.name,
64
- onClick: () => onSelectCategory(mediaCategory),
65
- className: (0, _classnames.default)(`${baseCssClass}__media-category`, {
66
- 'is-selected': selectedCategory === mediaCategory
67
- }),
68
- "aria-label": mediaCategory.labels.name,
69
- "aria-current": mediaCategory === selectedCategory ? 'true' : undefined
70
- }, (0, _react.createElement)(_components.__experimentalHStack, null, (0, _react.createElement)(_components.FlexBlock, null, mediaCategory.labels.name), (0, _react.createElement)(_icons.Icon, {
71
- icon: (0, _i18n.isRTL)() ? _icons.chevronLeft : _icons.chevronRight
72
- })))), (0, _react.createElement)("div", {
73
- role: "listitem"
74
- }, (0, _react.createElement)(_check.default, null, (0, _react.createElement)(_mediaUpload.default, {
56
+ }, (0, _react.createElement)(_categoryTabs.default, {
57
+ categories: categories,
58
+ selectedCategory: selectedCategory,
59
+ onSelectCategory: onSelectCategory
60
+ }, children), (0, _react.createElement)(_check.default, null, (0, _react.createElement)(_mediaUpload.default, {
75
61
  multiple: false,
76
62
  onSelect: onSelectMedia,
77
63
  allowedTypes: ALLOWED_MEDIA_TYPES,
@@ -92,8 +78,8 @@ function MediaTab({
92
78
  variant: "secondary",
93
79
  "data-unstable-ignore-focus-outside-for-relatedtarget": ".media-modal"
94
80
  }, (0, _i18n.__)('Open Media Library'))
95
- })))))), isMobile && (0, _react.createElement)(_mobileTabNavigation.default, {
96
- categories: mobileMediaCategories
81
+ }))), isMobile && (0, _react.createElement)(_mobileTabNavigation.default, {
82
+ categories: categories
97
83
  }, category => (0, _react.createElement)(_mediaPanel.MediaCategoryPanel, {
98
84
  onInsert: onInsert,
99
85
  rootClientId: rootClientId,
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_compose","_components","_element","_icons","_mediaPanel","_check","_mediaUpload","_hooks","_utils","_mobileTabNavigation","ALLOWED_MEDIA_TYPES","MediaTab","rootClientId","selectedCategory","onSelectCategory","onInsert","mediaCategories","useMediaCategories","isMobile","useViewportMatch","baseCssClass","onSelectMedia","useCallback","media","url","block","getBlockAndPreviewFromMedia","type","mobileMediaCategories","useMemo","map","mediaCategory","label","labels","name","_react","createElement","Fragment","className","__","__experimentalItemGroup","role","__experimentalItem","key","onClick","classNames","undefined","__experimentalHStack","FlexBlock","Icon","icon","isRTL","chevronLeft","chevronRight","default","multiple","onSelect","allowedTypes","render","open","Button","event","target","focus","variant","categories","category","MediaCategoryPanel","_default","exports"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-tab.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { Icon, chevronRight, chevronLeft } from '@wordpress/icons';\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';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video', 'audio' ];\n\nfunction MediaTab( {\n\trootClientId,\n\tselectedCategory,\n\tonSelectCategory,\n\tonInsert,\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 mobileMediaCategories = 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\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className={ `${ baseCssClass }-container` }>\n\t\t\t\t\t<nav aria-label={ __( 'Media categories' ) }>\n\t\t\t\t\t\t<ItemGroup role=\"list\" className={ baseCssClass }>\n\t\t\t\t\t\t\t{ mediaCategories.map( ( mediaCategory ) => (\n\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\tkey={ mediaCategory.name }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonSelectCategory( mediaCategory )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\t\t\t\t\t`${ baseCssClass }__media-category`,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'is-selected':\n\t\t\t\t\t\t\t\t\t\t\t\tselectedCategory ===\n\t\t\t\t\t\t\t\t\t\t\t\tmediaCategory,\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\taria-label={ mediaCategory.labels.name }\n\t\t\t\t\t\t\t\t\taria-current={\n\t\t\t\t\t\t\t\t\t\tmediaCategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t\t\t\t{ mediaCategory.labels.name }\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronRight\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<div role=\"listitem\">\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tmultiple={ false }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\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\t\t\t// clicked and we need to manually focus the button here.\n\t\t\t\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\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\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\t\t\t// attribute making the Inserter dialog to close.\n\t\t\t\t\t\t\t\t\t\t\t\t\tevent.target.focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-library-button\"\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\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\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t\t</Button>\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</MediaUploadCheck>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</nav>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ mobileMediaCategories }>\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","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","_react","createElement","default","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":[]}
@@ -10,9 +10,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _element = require("@wordpress/element");
11
11
  var _components = require("@wordpress/components");
12
12
  var _i18n = require("@wordpress/i18n");
13
- var _data = require("@wordpress/data");
14
13
  var _compose = require("@wordpress/compose");
15
- var _lockUnlock = require("../../lock-unlock");
16
14
  var _tips = _interopRequireDefault(require("./tips"));
17
15
  var _previewPanel = _interopRequireDefault(require("./preview-panel"));
18
16
  var _blockTypesTab = _interopRequireDefault(require("./block-types-tab"));
@@ -22,7 +20,6 @@ var _mediaTab = require("./media-tab");
22
20
  var _searchResults = _interopRequireDefault(require("./search-results"));
23
21
  var _useInsertionPoint = _interopRequireDefault(require("./hooks/use-insertion-point"));
24
22
  var _tabs = _interopRequireDefault(require("./tabs"));
25
- var _store = require("../../store");
26
23
  var _useZoomOut = require("../../hooks/use-zoom-out");
27
24
  /**
28
25
  * External dependencies
@@ -54,7 +51,7 @@ function InserterMenu({
54
51
  const [selectedPatternCategory, setSelectedPatternCategory] = (0, _element.useState)(null);
55
52
  const [patternFilter, setPatternFilter] = (0, _element.useState)('all');
56
53
  const [selectedMediaCategory, setSelectedMediaCategory] = (0, _element.useState)(null);
57
- const [selectedTab, setSelectedTab] = (0, _element.useState)(null);
54
+ const [selectedTab, setSelectedTab] = (0, _element.useState)('blocks');
58
55
  const [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint] = (0, _useInsertionPoint.default)({
59
56
  rootClientId,
60
57
  clientId,
@@ -62,18 +59,6 @@ function InserterMenu({
62
59
  insertionIndex: __experimentalInsertionIndex,
63
60
  shouldFocusBlock
64
61
  });
65
- const {
66
- showPatterns
67
- } = (0, _data.useSelect)(select => {
68
- const {
69
- hasAllowedPatterns
70
- } = (0, _lockUnlock.unlock)(select(_store.store));
71
- return {
72
- showPatterns: hasAllowedPatterns(destinationRootClientId)
73
- };
74
- }, [destinationRootClientId]);
75
- const mediaCategories = (0, _mediaTab.useMediaCategories)(destinationRootClientId);
76
- const showMedia = mediaCategories.length > 0;
77
62
  const onInsert = (0, _element.useCallback)((blocks, meta, shouldForceFocusBlock) => {
78
63
  onInsertBlocks(blocks, meta, shouldForceFocusBlock);
79
64
  onSelect();
@@ -98,9 +83,40 @@ function InserterMenu({
98
83
  if (isZoomedOutViewExperimentEnabled) {
99
84
  __experimentalOnPatternCategorySelection();
100
85
  }
101
- }, [setSelectedPatternCategory, __experimentalOnPatternCategorySelection]);
86
+ }, [setSelectedPatternCategory, __experimentalOnPatternCategorySelection, isZoomedOutViewExperimentEnabled]);
102
87
  const showPatternPanel = selectedTab === 'patterns' && !delayedFilterValue && selectedPatternCategory;
103
- const blocksTab = (0, _element.useMemo)(() => (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)("div", {
88
+ const showMediaPanel = selectedTab === 'media' && selectedMediaCategory;
89
+ const inserterSearch = (0, _element.useMemo)(() => {
90
+ if (selectedTab === 'media') {
91
+ return null;
92
+ }
93
+ return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.SearchControl, {
94
+ __nextHasNoMarginBottom: true,
95
+ className: "block-editor-inserter__search",
96
+ onChange: value => {
97
+ if (hoveredItem) {
98
+ setHoveredItem(null);
99
+ }
100
+ setFilterValue(value);
101
+ },
102
+ value: filterValue,
103
+ label: (0, _i18n.__)('Search for blocks and patterns'),
104
+ placeholder: (0, _i18n.__)('Search')
105
+ }), !!delayedFilterValue && (0, _react.createElement)(_searchResults.default, {
106
+ filterValue: delayedFilterValue,
107
+ onSelect: onSelect,
108
+ onHover: onHover,
109
+ onHoverPattern: onHoverPattern,
110
+ rootClientId: rootClientId,
111
+ clientId: clientId,
112
+ isAppender: isAppender,
113
+ __experimentalInsertionIndex: __experimentalInsertionIndex,
114
+ showBlockDirectory: true,
115
+ shouldFocusBlock: shouldFocusBlock,
116
+ prioritizePatterns: selectedTab === 'patterns'
117
+ }));
118
+ }, [selectedTab, hoveredItem, setHoveredItem, setFilterValue, filterValue, delayedFilterValue, onSelect, onHover, onHoverPattern, shouldFocusBlock, clientId, rootClientId, __experimentalInsertionIndex, isAppender]);
119
+ const blocksTab = (0, _element.useMemo)(() => (0, _react.createElement)(_react.Fragment, null, inserterSearch, !delayedFilterValue && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)("div", {
104
120
  className: "block-editor-inserter__block-list"
105
121
  }, (0, _react.createElement)(_blockTypesTab.default, {
106
122
  rootClientId: destinationRootClientId,
@@ -111,8 +127,8 @@ function InserterMenu({
111
127
  className: "block-editor-inserter__tips"
112
128
  }, (0, _react.createElement)(_components.VisuallyHidden, {
113
129
  as: "h2"
114
- }, (0, _i18n.__)('A tip for using the block editor')), (0, _react.createElement)(_tips.default, null))), [destinationRootClientId, onInsert, onHover, showMostUsedBlocks, showInserterHelpPanel]);
115
- const patternsTab = (0, _element.useMemo)(() => (0, _react.createElement)(_blockPatternsTab.default, {
130
+ }, (0, _i18n.__)('A tip for using the block editor')), (0, _react.createElement)(_tips.default, null)))), [destinationRootClientId, onInsert, onHover, showMostUsedBlocks, showInserterHelpPanel, inserterSearch, delayedFilterValue]);
131
+ const patternsTab = (0, _element.useMemo)(() => (0, _react.createElement)(_react.Fragment, null, inserterSearch, !delayedFilterValue && (0, _react.createElement)(_blockPatternsTab.default, {
116
132
  rootClientId: destinationRootClientId,
117
133
  onInsert: onInsertPattern,
118
134
  onSelectCategory: onClickPatternCategory,
@@ -124,26 +140,22 @@ function InserterMenu({
124
140
  category: selectedPatternCategory,
125
141
  patternFilter: patternFilter,
126
142
  showTitlesAsTooltip: true
127
- })), [destinationRootClientId, onInsertPattern, onClickPatternCategory, selectedPatternCategory, showPatternPanel]);
143
+ }))), [destinationRootClientId, onHoverPattern, onInsertPattern, onClickPatternCategory, patternFilter, selectedPatternCategory, showPatternPanel, inserterSearch, delayedFilterValue]);
128
144
  const mediaTab = (0, _element.useMemo)(() => (0, _react.createElement)(_mediaTab.MediaTab, {
129
145
  rootClientId: destinationRootClientId,
130
146
  selectedCategory: selectedMediaCategory,
131
147
  onSelectCategory: setSelectedMediaCategory,
132
148
  onInsert: onInsert
133
- }), [destinationRootClientId, onInsert, selectedMediaCategory, setSelectedMediaCategory]);
149
+ }, showMediaPanel && (0, _react.createElement)(_mediaTab.MediaCategoryPanel, {
150
+ rootClientId: destinationRootClientId,
151
+ onInsert: onInsert,
152
+ category: selectedMediaCategory
153
+ })), [destinationRootClientId, onInsert, selectedMediaCategory, setSelectedMediaCategory, showMediaPanel]);
134
154
  const inserterTabsContents = (0, _element.useMemo)(() => ({
135
155
  blocks: blocksTab,
136
156
  patterns: patternsTab,
137
157
  media: mediaTab
138
158
  }), [blocksTab, mediaTab, patternsTab]);
139
- const searchRef = (0, _element.useRef)();
140
- (0, _element.useImperativeHandle)(ref, () => ({
141
- focusSearch: () => {
142
- searchRef.current.focus();
143
- }
144
- }));
145
- const showAsTabs = !delayedFilterValue && (showPatterns || showMedia);
146
- const showMediaPanel = selectedTab === 'media' && !delayedFilterValue && selectedMediaCategory;
147
159
 
148
160
  // When the pattern panel is showing, we want to use zoom out mode
149
161
  (0, _useZoomOut.useZoomOut)(showPatternPanel);
@@ -154,50 +166,28 @@ function InserterMenu({
154
166
  }
155
167
  setSelectedTab(value);
156
168
  };
169
+
170
+ // Focus first active tab, if any
171
+ const tabsRef = (0, _element.useRef)();
172
+ (0, _element.useLayoutEffect)(() => {
173
+ if (tabsRef.current) {
174
+ window.requestAnimationFrame(() => {
175
+ tabsRef.current.querySelector('[role="tab"][aria-selected="true"]')?.focus();
176
+ });
177
+ }
178
+ }, []);
157
179
  return (0, _react.createElement)("div", {
158
180
  className: (0, _classnames.default)('block-editor-inserter__menu', {
159
- 'show-panel': showPatternPanel
160
- })
181
+ 'show-panel': showPatternPanel || showMediaPanel
182
+ }),
183
+ ref: ref
161
184
  }, (0, _react.createElement)("div", {
162
- className: (0, _classnames.default)('block-editor-inserter__main-area', {
163
- 'show-as-tabs': showAsTabs
164
- })
165
- }, (0, _react.createElement)(_components.SearchControl, {
166
- __nextHasNoMarginBottom: true,
167
- className: "block-editor-inserter__search",
168
- onChange: value => {
169
- if (hoveredItem) setHoveredItem(null);
170
- setFilterValue(value);
171
- },
172
- value: filterValue,
173
- label: (0, _i18n.__)('Search for blocks and patterns'),
174
- placeholder: (0, _i18n.__)('Search'),
175
- ref: searchRef
176
- }), !!delayedFilterValue && (0, _react.createElement)("div", {
177
- className: "block-editor-inserter__no-tab-container"
178
- }, (0, _react.createElement)(_searchResults.default, {
179
- filterValue: delayedFilterValue,
180
- onSelect: onSelect,
181
- onHover: onHover,
182
- onHoverPattern: onHoverPattern,
183
- rootClientId: rootClientId,
184
- clientId: clientId,
185
- isAppender: isAppender,
186
- __experimentalInsertionIndex: __experimentalInsertionIndex,
187
- showBlockDirectory: true,
188
- shouldFocusBlock: shouldFocusBlock
189
- })), showAsTabs && (0, _react.createElement)(_tabs.default, {
190
- showPatterns: showPatterns,
191
- showMedia: showMedia,
185
+ className: "block-editor-inserter__main-area"
186
+ }, (0, _react.createElement)(_tabs.default, {
187
+ ref: tabsRef,
192
188
  onSelect: handleSetSelectedTab,
193
189
  tabsContents: inserterTabsContents
194
- }), !delayedFilterValue && !showAsTabs && (0, _react.createElement)("div", {
195
- className: "block-editor-inserter__no-tab-container"
196
- }, blocksTab)), showMediaPanel && (0, _react.createElement)(_mediaTab.MediaCategoryDialog, {
197
- rootClientId: destinationRootClientId,
198
- onInsert: onInsert,
199
- category: selectedMediaCategory
200
- }), showInserterHelpPanel && hoveredItem && (0, _react.createElement)(_components.Popover, {
190
+ })), showInserterHelpPanel && hoveredItem && (0, _react.createElement)(_components.Popover, {
201
191
  className: "block-editor-inserter__preview-container__popover",
202
192
  placement: "right-start",
203
193
  offset: 16,
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_components","_i18n","_data","_compose","_lockUnlock","_tips","_previewPanel","_blockTypesTab","_blockPatternsTab","_patternCategoryPreviewPanel","_mediaTab","_searchResults","_useInsertionPoint","_tabs","_store","_useZoomOut","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","__experimentalOnPatternCategorySelection","ref","filterValue","setFilterValue","delayedFilterValue","useDebouncedInput","hoveredItem","setHoveredItem","useState","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","useInsertionPoint","insertionIndex","showPatterns","useSelect","select","hasAllowedPatterns","unlock","blockEditorStore","mediaCategories","useMediaCategories","showMedia","length","onInsert","useCallback","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onHoverPattern","isZoomedOutViewExperimentEnabled","window","__experimentalEnableZoomedOutView","onClickPatternCategory","patternCategory","filter","showPatternPanel","blocksTab","useMemo","_react","createElement","Fragment","className","default","VisuallyHidden","as","__","patternsTab","onSelectCategory","selectedCategory","PatternCategoryPreviewPanel","category","showTitlesAsTooltip","mediaTab","MediaTab","inserterTabsContents","patterns","media","searchRef","useRef","useImperativeHandle","focusSearch","current","focus","showAsTabs","showMediaPanel","useZoomOut","handleSetSelectedTab","value","classnames","SearchControl","__nextHasNoMarginBottom","onChange","label","placeholder","showBlockDirectory","tabsContents","MediaCategoryDialog","Popover","placement","offset","focusOnMount","animate","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseImperativeHandle,\n\tuseRef,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviewPanel } from './block-patterns-tab/pattern-category-preview-panel';\nimport { MediaTab, MediaCategoryDialog, useMediaCategories } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { store as blockEditorStore } from '../../store';\nimport { useZoomOut } from '../../hooks/use-zoom-out';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\t__experimentalOnPatternCategorySelection = NOOP,\n\t},\n\tref\n) {\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] =\n\t\tuseState( null );\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tconst [ selectedTab, setSelectedTab ] = useState( null );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\tconst { showPatterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { hasAllowedPatterns } = unlock( select( blockEditorStore ) );\n\t\t\treturn {\n\t\t\t\tshowPatterns: hasAllowedPatterns( destinationRootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ destinationRootClientId ]\n\t);\n\n\tconst mediaCategories = useMediaCategories( destinationRootClientId );\n\tconst showMedia = mediaCategories.length > 0;\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock ) => {\n\t\t\tonInsertBlocks( blocks, meta, shouldForceFocusBlock );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\n\t\t\tonInsertBlocks( blocks, { patternName } );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onHoverPattern = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t},\n\t\t[ onToggleInsertionPoint ]\n\t);\n\n\tconst isZoomedOutViewExperimentEnabled =\n\t\twindow?.__experimentalEnableZoomedOutView;\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tif ( isZoomedOutViewExperimentEnabled ) {\n\t\t\t\t__experimentalOnPatternCategorySelection();\n\t\t\t}\n\t\t},\n\t\t[ setSelectedPatternCategory, __experimentalOnPatternCategorySelection ]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\tselectedPatternCategory;\n\n\tconst blocksTab = useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<Tips />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tonHover,\n\t\t\tshowMostUsedBlocks,\n\t\t\tshowInserterHelpPanel,\n\t\t]\n\t);\n\n\tconst patternsTab = useMemo(\n\t\t() => (\n\t\t\t<BlockPatternsTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t>\n\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t<PatternCategoryPreviewPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tonHover={ onHoverPattern }\n\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPatternsTab>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsertPattern,\n\t\t\tonClickPatternCategory,\n\t\t\tselectedPatternCategory,\n\t\t\tshowPatternPanel,\n\t\t]\n\t);\n\n\tconst mediaTab = useMemo(\n\t\t() => (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t/>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tselectedMediaCategory,\n\t\t\tsetSelectedMediaCategory,\n\t\t]\n\t);\n\n\tconst inserterTabsContents = useMemo(\n\t\t() => ( {\n\t\t\tblocks: blocksTab,\n\t\t\tpatterns: patternsTab,\n\t\t\tmedia: mediaTab,\n\t\t} ),\n\t\t[ blocksTab, mediaTab, patternsTab ]\n\t);\n\n\tconst searchRef = useRef();\n\tuseImperativeHandle( ref, () => ( {\n\t\tfocusSearch: () => {\n\t\t\tsearchRef.current.focus();\n\t\t},\n\t} ) );\n\n\tconst showAsTabs = ! delayedFilterValue && ( showPatterns || showMedia );\n\tconst showMediaPanel =\n\t\tselectedTab === 'media' &&\n\t\t! delayedFilterValue &&\n\t\tselectedMediaCategory;\n\n\t// When the pattern panel is showing, we want to use zoom out mode\n\tuseZoomOut( showPatternPanel );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'block-editor-inserter__main-area', {\n\t\t\t\t\t'show-as-tabs': showAsTabs,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) setHoveredItem( null );\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\tref={ searchRef }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<div className=\"block-editor-inserter__no-tab-container\">\n\t\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\t\tonHoverPattern={ onHoverPattern }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ showAsTabs && (\n\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\tshowPatterns={ showPatterns }\n\t\t\t\t\t\tshowMedia={ showMedia }\n\t\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\t\ttabsContents={ inserterTabsContents }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! delayedFilterValue && ! showAsTabs && (\n\t\t\t\t\t<div className=\"block-editor-inserter__no-tab-container\">\n\t\t\t\t\t\t{ blocksTab }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ showMediaPanel && (\n\t\t\t\t<MediaCategoryDialog\n\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_components","_i18n","_compose","_tips","_previewPanel","_blockTypesTab","_blockPatternsTab","_patternCategoryPreviewPanel","_mediaTab","_searchResults","_useInsertionPoint","_tabs","_useZoomOut","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","__experimentalOnPatternCategorySelection","ref","filterValue","setFilterValue","delayedFilterValue","useDebouncedInput","hoveredItem","setHoveredItem","useState","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","useInsertionPoint","insertionIndex","onInsert","useCallback","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onHoverPattern","isZoomedOutViewExperimentEnabled","window","__experimentalEnableZoomedOutView","onClickPatternCategory","patternCategory","filter","showPatternPanel","showMediaPanel","inserterSearch","useMemo","_react","createElement","Fragment","SearchControl","__nextHasNoMarginBottom","className","onChange","value","label","__","placeholder","default","showBlockDirectory","prioritizePatterns","blocksTab","VisuallyHidden","as","patternsTab","onSelectCategory","selectedCategory","PatternCategoryPreviewPanel","category","showTitlesAsTooltip","mediaTab","MediaTab","MediaCategoryPanel","inserterTabsContents","patterns","media","useZoomOut","handleSetSelectedTab","tabsRef","useRef","useLayoutEffect","current","requestAnimationFrame","querySelector","focus","classnames","tabsContents","Popover","placement","offset","focusOnMount","animate","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviewPanel } from './block-patterns-tab/pattern-category-preview-panel';\nimport { MediaTab, MediaCategoryPanel } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { useZoomOut } from '../../hooks/use-zoom-out';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\t__experimentalOnPatternCategorySelection = NOOP,\n\t},\n\tref\n) {\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] =\n\t\tuseState( null );\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tconst [ selectedTab, setSelectedTab ] = useState( 'blocks' );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock ) => {\n\t\t\tonInsertBlocks( blocks, meta, shouldForceFocusBlock );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\n\t\t\tonInsertBlocks( blocks, { patternName } );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onHoverPattern = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t},\n\t\t[ onToggleInsertionPoint ]\n\t);\n\n\tconst isZoomedOutViewExperimentEnabled =\n\t\twindow?.__experimentalEnableZoomedOutView;\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tif ( isZoomedOutViewExperimentEnabled ) {\n\t\t\t\t__experimentalOnPatternCategorySelection();\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tsetSelectedPatternCategory,\n\t\t\t__experimentalOnPatternCategorySelection,\n\t\t\tisZoomedOutViewExperimentEnabled,\n\t\t]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\tselectedPatternCategory;\n\n\tconst showMediaPanel = selectedTab === 'media' && selectedMediaCategory;\n\n\tconst inserterSearch = useMemo( () => {\n\t\tif ( selectedTab === 'media' ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) {\n\t\t\t\t\t\t\tsetHoveredItem( null );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tonHoverPattern={ onHoverPattern }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\tprioritizePatterns={ selectedTab === 'patterns' }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tselectedTab,\n\t\thoveredItem,\n\t\tsetHoveredItem,\n\t\tsetFilterValue,\n\t\tfilterValue,\n\t\tdelayedFilterValue,\n\t\tonSelect,\n\t\tonHover,\n\t\tonHoverPattern,\n\t\tshouldFocusBlock,\n\t\tclientId,\n\t\trootClientId,\n\t\t__experimentalInsertionIndex,\n\t\tisAppender,\n\t] );\n\n\tconst blocksTab = useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t{ inserterSearch }\n\t\t\t\t{ ! delayedFilterValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t<Tips />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tonHover,\n\t\t\tshowMostUsedBlocks,\n\t\t\tshowInserterHelpPanel,\n\t\t\tinserterSearch,\n\t\t\tdelayedFilterValue,\n\t\t]\n\t);\n\n\tconst patternsTab = useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t{ inserterSearch }\n\t\t\t\t{ ! delayedFilterValue && (\n\t\t\t\t\t<BlockPatternsTab\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t\t\t<PatternCategoryPreviewPanel\n\t\t\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\t\t\tonHover={ onHoverPattern }\n\t\t\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockPatternsTab>\n\t\t\t\t) }\n\t\t\t</>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonHoverPattern,\n\t\t\tonInsertPattern,\n\t\t\tonClickPatternCategory,\n\t\t\tpatternFilter,\n\t\t\tselectedPatternCategory,\n\t\t\tshowPatternPanel,\n\t\t\tinserterSearch,\n\t\t\tdelayedFilterValue,\n\t\t]\n\t);\n\n\tconst mediaTab = useMemo(\n\t\t() => (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t>\n\t\t\t\t{ showMediaPanel && (\n\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</MediaTab>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tselectedMediaCategory,\n\t\t\tsetSelectedMediaCategory,\n\t\t\tshowMediaPanel,\n\t\t]\n\t);\n\n\tconst inserterTabsContents = useMemo(\n\t\t() => ( {\n\t\t\tblocks: blocksTab,\n\t\t\tpatterns: patternsTab,\n\t\t\tmedia: mediaTab,\n\t\t} ),\n\t\t[ blocksTab, mediaTab, patternsTab ]\n\t);\n\n\t// When the pattern panel is showing, we want to use zoom out mode\n\tuseZoomOut( showPatternPanel );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\t// Focus first active tab, if any\n\tconst tabsRef = useRef();\n\tuseLayoutEffect( () => {\n\t\tif ( tabsRef.current ) {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\ttabsRef.current\n\t\t\t\t\t.querySelector( '[role=\"tab\"][aria-selected=\"true\"]' )\n\t\t\t\t\t?.focus();\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel || showMediaPanel,\n\t\t\t} ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t<InserterTabs\n\t\t\t\t\tref={ tabsRef }\n\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\ttabsContents={ inserterTabsContents }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _components = require("@wordpress/components");
9
9
  var _i18n = require("@wordpress/i18n");
10
+ var _element = require("@wordpress/element");
10
11
  var _lockUnlock = require("../../lock-unlock");
11
12
  /**
12
13
  * WordPress dependencies
@@ -35,14 +36,13 @@ const mediaTab = {
35
36
  title: (0, _i18n.__)('Media')
36
37
  };
37
38
  function InserterTabs({
38
- showPatterns = false,
39
- showMedia = false,
40
39
  onSelect,
41
40
  tabsContents
42
- }) {
43
- const tabs = [blocksTab, showPatterns && patternsTab, showMedia && mediaTab].filter(Boolean);
41
+ }, ref) {
42
+ const tabs = [blocksTab, patternsTab, mediaTab];
44
43
  return (0, _react.createElement)("div", {
45
- className: "block-editor-inserter__tabs"
44
+ className: "block-editor-inserter__tabs",
45
+ ref: ref
46
46
  }, (0, _react.createElement)(Tabs, {
47
47
  onSelect: onSelect
48
48
  }, (0, _react.createElement)(Tabs.TabList, {
@@ -58,5 +58,5 @@ function InserterTabs({
58
58
  className: "block-editor-inserter__tabpanel"
59
59
  }, tabsContents[tab.name]))));
60
60
  }
61
- var _default = exports.default = InserterTabs;
61
+ var _default = exports.default = (0, _element.forwardRef)(InserterTabs);
62
62
  //# sourceMappingURL=tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_lockUnlock","Tabs","unlock","componentsPrivateApis","blocksTab","name","title","__","patternsTab","mediaTab","InserterTabs","showPatterns","showMedia","onSelect","tabsContents","tabs","filter","Boolean","_react","createElement","className","TabList","map","tab","Tab","key","tabId","TabPanel","focusable","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter/tabs.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst blocksTab = {\n\tname: 'blocks',\n\t/* translators: Blocks tab title in the block inserter. */\n\ttitle: __( 'Blocks' ),\n};\nconst patternsTab = {\n\tname: 'patterns',\n\t/* translators: Theme and Directory Patterns tab title in the block inserter. */\n\ttitle: __( 'Patterns' ),\n};\n\nconst mediaTab = {\n\tname: 'media',\n\t/* translators: Media tab title in the block inserter. */\n\ttitle: __( 'Media' ),\n};\n\nfunction InserterTabs( {\n\tshowPatterns = false,\n\tshowMedia = false,\n\tonSelect,\n\ttabsContents,\n} ) {\n\tconst tabs = [\n\t\tblocksTab,\n\t\tshowPatterns && patternsTab,\n\t\tshowMedia && mediaTab,\n\t].filter( Boolean );\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__tabs\">\n\t\t\t<Tabs onSelect={ onSelect }>\n\t\t\t\t<Tabs.TabList className=\"block-editor-inserter__tablist\">\n\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__tab\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\tclassName=\"block-editor-inserter__tabpanel\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ tabsContents[ tab.name ] }\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n\nexport default InserterTabs;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAM;EAAEG;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEhD,MAAMC,SAAS,GAAG;EACjBC,IAAI,EAAE,QAAQ;EACd;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,QAAS;AACrB,CAAC;AACD,MAAMC,WAAW,GAAG;EACnBH,IAAI,EAAE,UAAU;EAChB;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,UAAW;AACvB,CAAC;AAED,MAAME,QAAQ,GAAG;EAChBJ,IAAI,EAAE,OAAO;EACb;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ;AACpB,CAAC;AAED,SAASG,YAAYA,CAAE;EACtBC,YAAY,GAAG,KAAK;EACpBC,SAAS,GAAG,KAAK;EACjBC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAMC,IAAI,GAAG,CACZX,SAAS,EACTO,YAAY,IAAIH,WAAW,EAC3BI,SAAS,IAAIH,QAAQ,CACrB,CAACO,MAAM,CAAEC,OAAQ,CAAC;EAEnB,OACC,IAAAC,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA6B,GAC3C,IAAAF,MAAA,CAAAC,aAAA,EAAClB,IAAI;IAACY,QAAQ,EAAGA;EAAU,GAC1B,IAAAK,MAAA,CAAAC,aAAA,EAAClB,IAAI,CAACoB,OAAO;IAACD,SAAS,EAAC;EAAgC,GACrDL,IAAI,CAACO,GAAG,CAAIC,GAAG,IAChB,IAAAL,MAAA,CAAAC,aAAA,EAAClB,IAAI,CAACuB,GAAG;IACRC,GAAG,EAAGF,GAAG,CAAClB,IAAM;IAChBqB,KAAK,EAAGH,GAAG,CAAClB,IAAM;IAClBe,SAAS,EAAC;EAA4B,GAEpCG,GAAG,CAACjB,KACG,CACT,CACW,CAAC,EACbS,IAAI,CAACO,GAAG,CAAIC,GAAG,IAChB,IAAAL,MAAA,CAAAC,aAAA,EAAClB,IAAI,CAAC0B,QAAQ;IACbF,GAAG,EAAGF,GAAG,CAAClB,IAAM;IAChBqB,KAAK,EAAGH,GAAG,CAAClB,IAAM;IAClBuB,SAAS,EAAG,KAAO;IACnBR,SAAS,EAAC;EAAiC,GAEzCN,YAAY,CAAES,GAAG,CAAClB,IAAI,CACV,CACd,CACG,CACF,CAAC;AAER;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcrB,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_lockUnlock","Tabs","unlock","componentsPrivateApis","blocksTab","name","title","__","patternsTab","mediaTab","InserterTabs","onSelect","tabsContents","ref","tabs","_react","createElement","className","TabList","map","tab","Tab","key","tabId","TabPanel","focusable","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/inserter/tabs.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst blocksTab = {\n\tname: 'blocks',\n\t/* translators: Blocks tab title in the block inserter. */\n\ttitle: __( 'Blocks' ),\n};\nconst patternsTab = {\n\tname: 'patterns',\n\t/* translators: Theme and Directory Patterns tab title in the block inserter. */\n\ttitle: __( 'Patterns' ),\n};\n\nconst mediaTab = {\n\tname: 'media',\n\t/* translators: Media tab title in the block inserter. */\n\ttitle: __( 'Media' ),\n};\n\nfunction InserterTabs( { onSelect, tabsContents }, ref ) {\n\tconst tabs = [ blocksTab, patternsTab, mediaTab ];\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__tabs\" ref={ ref }>\n\t\t\t<Tabs onSelect={ onSelect }>\n\t\t\t\t<Tabs.TabList className=\"block-editor-inserter__tablist\">\n\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__tab\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\tclassName=\"block-editor-inserter__tabpanel\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ tabsContents[ tab.name ] }\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterTabs );\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAKA;AACA;AACA;;AAGA,MAAM;EAAEI;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEhD,MAAMC,SAAS,GAAG;EACjBC,IAAI,EAAE,QAAQ;EACd;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,QAAS;AACrB,CAAC;AACD,MAAMC,WAAW,GAAG;EACnBH,IAAI,EAAE,UAAU;EAChB;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,UAAW;AACvB,CAAC;AAED,MAAME,QAAQ,GAAG;EAChBJ,IAAI,EAAE,OAAO;EACb;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ;AACpB,CAAC;AAED,SAASG,YAAYA,CAAE;EAAEC,QAAQ;EAAEC;AAAa,CAAC,EAAEC,GAAG,EAAG;EACxD,MAAMC,IAAI,GAAG,CAAEV,SAAS,EAAEI,WAAW,EAAEC,QAAQ,CAAE;EAEjD,OACC,IAAAM,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC,6BAA6B;IAACJ,GAAG,EAAGA;EAAK,GACvD,IAAAE,MAAA,CAAAC,aAAA,EAACf,IAAI;IAACU,QAAQ,EAAGA;EAAU,GAC1B,IAAAI,MAAA,CAAAC,aAAA,EAACf,IAAI,CAACiB,OAAO;IAACD,SAAS,EAAC;EAAgC,GACrDH,IAAI,CAACK,GAAG,CAAIC,GAAG,IAChB,IAAAL,MAAA,CAAAC,aAAA,EAACf,IAAI,CAACoB,GAAG;IACRC,GAAG,EAAGF,GAAG,CAACf,IAAM;IAChBkB,KAAK,EAAGH,GAAG,CAACf,IAAM;IAClBY,SAAS,EAAC;EAA4B,GAEpCG,GAAG,CAACd,KACG,CACT,CACW,CAAC,EACbQ,IAAI,CAACK,GAAG,CAAIC,GAAG,IAChB,IAAAL,MAAA,CAAAC,aAAA,EAACf,IAAI,CAACuB,QAAQ;IACbF,GAAG,EAAGF,GAAG,CAACf,IAAM;IAChBkB,KAAK,EAAGH,GAAG,CAACf,IAAM;IAClBoB,SAAS,EAAG,KAAO;IACnBR,SAAS,EAAC;EAAiC,GAEzCL,YAAY,CAAEQ,GAAG,CAACf,IAAI,CACV,CACd,CACG,CACF,CAAC;AAER;AAAC,IAAAqB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,mBAAU,EAAEnB,YAAa,CAAC","ignoreList":[]}
@@ -29,7 +29,9 @@ const LineHeightControl = ({
29
29
  const isDefined = (0, _utils.isLineHeightDefined)(lineHeight);
30
30
  const adjustNextValue = (nextValue, wasTypedOrPasted) => {
31
31
  // Set the next value without modification if lineHeight has been defined.
32
- if (isDefined) return nextValue;
32
+ if (isDefined) {
33
+ return nextValue;
34
+ }
33
35
 
34
36
  /**
35
37
  * The following logic handles the initial spin up/down action
@@ -49,7 +51,9 @@ const LineHeightControl = ({
49
51
  {
50
52
  // This means the user explicitly input '0', rather than using the
51
53
  // spin down action from an undefined value state.
52
- if (wasTypedOrPasted) return nextValue;
54
+ if (wasTypedOrPasted) {
55
+ return nextValue;
56
+ }
53
57
  // Decrement by spin value.
54
58
  return _utils.BASE_DEFAULT_VALUE - spin;
55
59
  }