@wordpress/block-editor 10.4.0 → 11.0.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 (638) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +0 -1
  3. package/build/autocompleters/block.js +2 -6
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/autocompleters/link.js +2 -0
  6. package/build/autocompleters/link.js.map +1 -1
  7. package/build/components/block-card/index.js +51 -3
  8. package/build/components/block-card/index.js.map +1 -1
  9. package/build/components/block-draggable/index.native.js +46 -39
  10. package/build/components/block-draggable/index.native.js.map +1 -1
  11. package/build/components/block-edit/edit.js +4 -3
  12. package/build/components/block-edit/edit.js.map +1 -1
  13. package/build/components/block-edit/edit.native.js +4 -7
  14. package/build/components/block-edit/edit.native.js.map +1 -1
  15. package/build/components/block-inspector/index.js +35 -33
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/block-list-context.native.js +5 -8
  18. package/build/components/block-list/block-list-context.native.js.map +1 -1
  19. package/build/components/block-list/block.js +55 -24
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/block.native.js +61 -28
  22. package/build/components/block-list/block.native.js.map +1 -1
  23. package/build/components/block-lock/menu-item.js +1 -1
  24. package/build/components/block-lock/menu-item.js.map +1 -1
  25. package/build/components/block-lock/modal.js +16 -9
  26. package/build/components/block-lock/modal.js.map +1 -1
  27. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +12 -4
  28. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  29. package/build/components/block-pattern-setup/index.js +3 -2
  30. package/build/components/block-pattern-setup/index.js.map +1 -1
  31. package/build/components/block-patterns-list/index.js +33 -11
  32. package/build/components/block-patterns-list/index.js.map +1 -1
  33. package/build/components/block-preview/auto.js +9 -3
  34. package/build/components/block-preview/auto.js.map +1 -1
  35. package/build/components/block-preview/index.js +5 -9
  36. package/build/components/block-preview/index.js.map +1 -1
  37. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -2
  38. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  39. package/build/components/block-styles/utils.js +3 -3
  40. package/build/components/block-styles/utils.js.map +1 -1
  41. package/build/components/block-switcher/index.js +19 -4
  42. package/build/components/block-switcher/index.js.map +1 -1
  43. package/build/components/block-toolbar/index.js +5 -1
  44. package/build/components/block-toolbar/index.js.map +1 -1
  45. package/build/components/block-tools/insertion-point.js +8 -49
  46. package/build/components/block-tools/insertion-point.js.map +1 -1
  47. package/build/components/block-tools/selected-block-popover.js +27 -4
  48. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  49. package/build/components/block-variation-picker/index.js +1 -2
  50. package/build/components/block-variation-picker/index.js.map +1 -1
  51. package/build/components/colors/with-colors.js +4 -3
  52. package/build/components/colors/with-colors.js.map +1 -1
  53. package/build/components/font-sizes/fluid-utils.js +24 -40
  54. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  55. package/build/components/font-sizes/with-font-sizes.js +7 -5
  56. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  57. package/build/components/height-control/index.js +115 -0
  58. package/build/components/height-control/index.js.map +1 -0
  59. package/build/components/iframe/index.js +11 -8
  60. package/build/components/iframe/index.js.map +1 -1
  61. package/build/components/image-editor/use-save-image.js +2 -0
  62. package/build/components/image-editor/use-save-image.js.map +1 -1
  63. package/build/components/image-editor/zoom-dropdown.js +1 -0
  64. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  65. package/build/components/index.js +18 -0
  66. package/build/components/index.js.map +1 -1
  67. package/build/components/inner-blocks/index.js +25 -9
  68. package/build/components/inner-blocks/index.js.map +1 -1
  69. package/build/components/inner-blocks/use-inner-block-template-sync.js +25 -10
  70. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  71. package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  72. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  73. package/build/components/inserter/block-patterns-tab.js +25 -46
  74. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  75. package/build/components/inserter/block-types-tab.js +3 -1
  76. package/build/components/inserter/block-types-tab.js.map +1 -1
  77. package/build/components/inserter/hooks/use-debounced-input.js +27 -0
  78. package/build/components/inserter/hooks/use-debounced-input.js.map +1 -0
  79. package/build/components/inserter/index.js +8 -3
  80. package/build/components/inserter/index.js.map +1 -1
  81. package/build/components/inserter/index.native.js +3 -4
  82. package/build/components/inserter/index.native.js.map +1 -1
  83. package/build/components/inserter/media-tab/hooks.js +103 -0
  84. package/build/components/inserter/media-tab/hooks.js.map +1 -0
  85. package/build/components/inserter/media-tab/index.js +32 -0
  86. package/build/components/inserter/media-tab/index.js.map +1 -0
  87. package/build/components/inserter/media-tab/media-list.js +100 -0
  88. package/build/components/inserter/media-tab/media-list.js.map +1 -0
  89. package/build/components/inserter/media-tab/media-panel.js +96 -0
  90. package/build/components/inserter/media-tab/media-panel.js.map +1 -0
  91. package/build/components/inserter/media-tab/media-tab.js +120 -0
  92. package/build/components/inserter/media-tab/media-tab.js.map +1 -0
  93. package/build/components/inserter/media-tab/utils.js +54 -0
  94. package/build/components/inserter/media-tab/utils.js.map +1 -0
  95. package/build/components/inserter/menu.js +35 -12
  96. package/build/components/inserter/menu.js.map +1 -1
  97. package/build/components/inserter/mobile-tab-navigation.js +70 -0
  98. package/build/components/inserter/mobile-tab-navigation.js.map +1 -0
  99. package/build/components/inserter/quick-inserter.js +1 -0
  100. package/build/components/inserter/quick-inserter.js.map +1 -1
  101. package/build/components/inserter/reusable-blocks-tab.js +4 -1
  102. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  103. package/build/components/inserter/search-results.js +3 -1
  104. package/build/components/inserter/search-results.js.map +1 -1
  105. package/build/components/inserter/tabs.js +16 -2
  106. package/build/components/inserter/tabs.js.map +1 -1
  107. package/build/components/inserter-list-item/index.js +4 -1
  108. package/build/components/inserter-list-item/index.js.map +1 -1
  109. package/build/components/inspector-controls/groups.js +2 -0
  110. package/build/components/inspector-controls/groups.js.map +1 -1
  111. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +46 -0
  112. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  113. package/build/components/inspector-controls-tabs/index.js +71 -0
  114. package/build/components/inspector-controls-tabs/index.js.map +1 -0
  115. package/build/components/inspector-controls-tabs/settings-tab.js +28 -0
  116. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  117. package/build/components/inspector-controls-tabs/styles-tab.js +61 -0
  118. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  119. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +97 -0
  120. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  121. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +18 -0
  122. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  123. package/build/components/inspector-controls-tabs/utils.js +37 -0
  124. package/build/components/inspector-controls-tabs/utils.js.map +1 -0
  125. package/build/components/link-control/index.js +19 -34
  126. package/build/components/link-control/index.js.map +1 -1
  127. package/build/components/link-control/search-input.js +1 -2
  128. package/build/components/link-control/search-input.js.map +1 -1
  129. package/build/components/link-control/use-internal-input-value.js +26 -0
  130. package/build/components/link-control/use-internal-input-value.js.map +1 -0
  131. package/build/components/list-view/block.js +10 -5
  132. package/build/components/list-view/block.js.map +1 -1
  133. package/build/components/list-view/branch.js +22 -15
  134. package/build/components/list-view/branch.js.map +1 -1
  135. package/build/components/media-upload/index.native.js +2 -3
  136. package/build/components/media-upload/index.native.js.map +1 -1
  137. package/build/components/off-canvas-editor/appender.js +104 -0
  138. package/build/components/off-canvas-editor/appender.js.map +1 -0
  139. package/build/components/off-canvas-editor/block-contents.js +100 -0
  140. package/build/components/off-canvas-editor/block-contents.js.map +1 -0
  141. package/build/components/off-canvas-editor/block-edit-button.js +50 -0
  142. package/build/components/off-canvas-editor/block-edit-button.js.map +1 -0
  143. package/build/components/off-canvas-editor/block-select-button.js +119 -0
  144. package/build/components/off-canvas-editor/block-select-button.js.map +1 -0
  145. package/build/components/off-canvas-editor/block.js +324 -0
  146. package/build/components/off-canvas-editor/block.js.map +1 -0
  147. package/build/components/off-canvas-editor/branch.js +179 -0
  148. package/build/components/off-canvas-editor/branch.js.map +1 -0
  149. package/build/components/off-canvas-editor/context.js +19 -0
  150. package/build/components/off-canvas-editor/context.js.map +1 -0
  151. package/build/components/off-canvas-editor/drop-indicator.js +118 -0
  152. package/build/components/off-canvas-editor/drop-indicator.js.map +1 -0
  153. package/build/components/off-canvas-editor/expander.js +41 -0
  154. package/build/components/off-canvas-editor/expander.js.map +1 -0
  155. package/build/components/off-canvas-editor/index.js +213 -0
  156. package/build/components/off-canvas-editor/index.js.map +1 -0
  157. package/build/components/off-canvas-editor/leaf.js +60 -0
  158. package/build/components/off-canvas-editor/leaf.js.map +1 -0
  159. package/build/components/off-canvas-editor/link-ui.js +185 -0
  160. package/build/components/off-canvas-editor/link-ui.js.map +1 -0
  161. package/build/components/off-canvas-editor/update-attributes.js +108 -0
  162. package/build/components/off-canvas-editor/update-attributes.js.map +1 -0
  163. package/build/components/off-canvas-editor/use-block-selection.js +139 -0
  164. package/build/components/off-canvas-editor/use-block-selection.js.map +1 -0
  165. package/build/components/off-canvas-editor/use-list-view-client-ids.js +33 -0
  166. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +1 -0
  167. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +235 -0
  168. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -0
  169. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +60 -0
  170. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +1 -0
  171. package/build/components/off-canvas-editor/utils.js +60 -0
  172. package/build/components/off-canvas-editor/utils.js.map +1 -0
  173. package/build/components/rich-text/format-toolbar/index.js +8 -4
  174. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  175. package/build/components/rich-text/index.js +3 -3
  176. package/build/components/rich-text/index.js.map +1 -1
  177. package/build/components/rich-text/index.native.js +0 -2
  178. package/build/components/rich-text/index.native.js.map +1 -1
  179. package/build/components/rich-text/use-insert-replacement-text.js +43 -0
  180. package/build/components/rich-text/use-insert-replacement-text.js.map +1 -0
  181. package/build/components/rich-text/use-undo-automatic-change.js +9 -1
  182. package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
  183. package/build/components/rich-text/utils.js +1 -19
  184. package/build/components/rich-text/utils.js.map +1 -1
  185. package/build/components/spacing-sizes-control/spacing-input-control.js +12 -3
  186. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  187. package/build/components/ungroup-button/index.native.js +4 -2
  188. package/build/components/ungroup-button/index.native.js.map +1 -1
  189. package/build/components/url-input/index.js +46 -43
  190. package/build/components/url-input/index.js.map +1 -1
  191. package/build/components/url-popover/index.js +31 -2
  192. package/build/components/url-popover/index.js.map +1 -1
  193. package/build/components/use-block-display-information/index.js +8 -4
  194. package/build/components/use-block-display-information/index.js.map +1 -1
  195. package/build/components/use-setting/index.js +10 -2
  196. package/build/components/use-setting/index.js.map +1 -1
  197. package/build/hooks/child-layout.js +209 -0
  198. package/build/hooks/child-layout.js.map +1 -0
  199. package/build/hooks/color-panel.js +17 -1
  200. package/build/hooks/color-panel.js.map +1 -1
  201. package/build/hooks/color.js +1 -1
  202. package/build/hooks/color.js.map +1 -1
  203. package/build/hooks/content-lock-ui.js +14 -7
  204. package/build/hooks/content-lock-ui.js.map +1 -1
  205. package/build/hooks/dimensions.js +65 -16
  206. package/build/hooks/dimensions.js.map +1 -1
  207. package/build/hooks/layout.js +59 -3
  208. package/build/hooks/layout.js.map +1 -1
  209. package/build/hooks/margin.js +4 -2
  210. package/build/hooks/margin.js.map +1 -1
  211. package/build/hooks/min-height.js +139 -0
  212. package/build/hooks/min-height.js.map +1 -0
  213. package/build/hooks/padding.js +4 -2
  214. package/build/hooks/padding.js.map +1 -1
  215. package/build/hooks/style.js +3 -2
  216. package/build/hooks/style.js.map +1 -1
  217. package/build/layouts/flex.js +22 -21
  218. package/build/layouts/flex.js.map +1 -1
  219. package/build/store/actions.js +26 -0
  220. package/build/store/actions.js.map +1 -1
  221. package/build/store/reducer.js +420 -265
  222. package/build/store/reducer.js.map +1 -1
  223. package/build/store/selectors.js +73 -49
  224. package/build/store/selectors.js.map +1 -1
  225. package/build/utils/sorting.js +63 -0
  226. package/build/utils/sorting.js.map +1 -0
  227. package/build-module/autocompleters/block.js +2 -6
  228. package/build-module/autocompleters/block.js.map +1 -1
  229. package/build-module/autocompleters/link.js +2 -0
  230. package/build-module/autocompleters/link.js.map +1 -1
  231. package/build-module/components/block-card/index.js +45 -3
  232. package/build-module/components/block-card/index.js.map +1 -1
  233. package/build-module/components/block-draggable/index.native.js +40 -31
  234. package/build-module/components/block-draggable/index.native.js.map +1 -1
  235. package/build-module/components/block-edit/edit.js +4 -2
  236. package/build-module/components/block-edit/edit.js.map +1 -1
  237. package/build-module/components/block-edit/edit.native.js +4 -6
  238. package/build-module/components/block-edit/edit.native.js.map +1 -1
  239. package/build-module/components/block-inspector/index.js +32 -30
  240. package/build-module/components/block-inspector/index.js.map +1 -1
  241. package/build-module/components/block-list/block-list-context.native.js +5 -8
  242. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  243. package/build-module/components/block-list/block.js +55 -25
  244. package/build-module/components/block-list/block.js.map +1 -1
  245. package/build-module/components/block-list/block.native.js +61 -28
  246. package/build-module/components/block-list/block.native.js.map +1 -1
  247. package/build-module/components/block-lock/menu-item.js +2 -2
  248. package/build-module/components/block-lock/menu-item.js.map +1 -1
  249. package/build-module/components/block-lock/modal.js +17 -10
  250. package/build-module/components/block-lock/modal.js.map +1 -1
  251. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +13 -6
  252. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  253. package/build-module/components/block-pattern-setup/index.js +3 -2
  254. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  255. package/build-module/components/block-patterns-list/index.js +35 -13
  256. package/build-module/components/block-patterns-list/index.js.map +1 -1
  257. package/build-module/components/block-preview/auto.js +9 -3
  258. package/build-module/components/block-preview/auto.js.map +1 -1
  259. package/build-module/components/block-preview/index.js +5 -8
  260. package/build-module/components/block-preview/index.js.map +1 -1
  261. package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -2
  262. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  263. package/build-module/components/block-styles/utils.js +3 -3
  264. package/build-module/components/block-styles/utils.js.map +1 -1
  265. package/build-module/components/block-switcher/index.js +19 -4
  266. package/build-module/components/block-switcher/index.js.map +1 -1
  267. package/build-module/components/block-toolbar/index.js +6 -2
  268. package/build-module/components/block-toolbar/index.js.map +1 -1
  269. package/build-module/components/block-tools/insertion-point.js +8 -49
  270. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  271. package/build-module/components/block-tools/selected-block-popover.js +27 -5
  272. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  273. package/build-module/components/block-variation-picker/index.js +1 -2
  274. package/build-module/components/block-variation-picker/index.js.map +1 -1
  275. package/build-module/components/colors/with-colors.js +5 -4
  276. package/build-module/components/colors/with-colors.js.map +1 -1
  277. package/build-module/components/font-sizes/fluid-utils.js +24 -40
  278. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  279. package/build-module/components/font-sizes/with-font-sizes.js +8 -6
  280. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  281. package/build-module/components/height-control/index.js +103 -0
  282. package/build-module/components/height-control/index.js.map +1 -0
  283. package/build-module/components/iframe/index.js +11 -8
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/image-editor/use-save-image.js +2 -0
  286. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  287. package/build-module/components/image-editor/zoom-dropdown.js +1 -0
  288. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  289. package/build-module/components/index.js +2 -0
  290. package/build-module/components/index.js.map +1 -1
  291. package/build-module/components/inner-blocks/index.js +27 -11
  292. package/build-module/components/inner-blocks/index.js.map +1 -1
  293. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +23 -10
  294. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  295. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  296. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  297. package/build-module/components/inserter/block-patterns-tab.js +27 -49
  298. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  299. package/build-module/components/inserter/block-types-tab.js +3 -2
  300. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  301. package/build-module/components/inserter/hooks/use-debounced-input.js +18 -0
  302. package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -0
  303. package/build-module/components/inserter/index.js +8 -3
  304. package/build-module/components/inserter/index.js.map +1 -1
  305. package/build-module/components/inserter/index.native.js +3 -5
  306. package/build-module/components/inserter/index.native.js.map +1 -1
  307. package/build-module/components/inserter/media-tab/hooks.js +89 -0
  308. package/build-module/components/inserter/media-tab/hooks.js.map +1 -0
  309. package/build-module/components/inserter/media-tab/index.js +4 -0
  310. package/build-module/components/inserter/media-tab/index.js.map +1 -0
  311. package/build-module/components/inserter/media-tab/media-list.js +86 -0
  312. package/build-module/components/inserter/media-tab/media-list.js.map +1 -0
  313. package/build-module/components/inserter/media-tab/media-panel.js +77 -0
  314. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -0
  315. package/build-module/components/inserter/media-tab/media-tab.js +100 -0
  316. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -0
  317. package/build-module/components/inserter/media-tab/utils.js +45 -0
  318. package/build-module/components/inserter/media-tab/utils.js.map +1 -0
  319. package/build-module/components/inserter/menu.js +33 -12
  320. package/build-module/components/inserter/menu.js.map +1 -1
  321. package/build-module/components/inserter/mobile-tab-navigation.js +61 -0
  322. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -0
  323. package/build-module/components/inserter/quick-inserter.js +1 -0
  324. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  325. package/build-module/components/inserter/reusable-blocks-tab.js +3 -1
  326. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  327. package/build-module/components/inserter/search-results.js +3 -2
  328. package/build-module/components/inserter/search-results.js.map +1 -1
  329. package/build-module/components/inserter/tabs.js +15 -2
  330. package/build-module/components/inserter/tabs.js.map +1 -1
  331. package/build-module/components/inserter-list-item/index.js +5 -2
  332. package/build-module/components/inserter-list-item/index.js.map +1 -1
  333. package/build-module/components/inspector-controls/groups.js +2 -0
  334. package/build-module/components/inspector-controls/groups.js.map +1 -1
  335. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +32 -0
  336. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  337. package/build-module/components/inspector-controls-tabs/index.js +56 -0
  338. package/build-module/components/inspector-controls-tabs/index.js.map +1 -0
  339. package/build-module/components/inspector-controls-tabs/settings-tab.js +17 -0
  340. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  341. package/build-module/components/inspector-controls-tabs/styles-tab.js +46 -0
  342. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  343. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +81 -0
  344. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  345. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +8 -0
  346. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  347. package/build-module/components/inspector-controls-tabs/utils.js +26 -0
  348. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -0
  349. package/build-module/components/link-control/index.js +18 -34
  350. package/build-module/components/link-control/index.js.map +1 -1
  351. package/build-module/components/link-control/search-input.js +1 -2
  352. package/build-module/components/link-control/search-input.js.map +1 -1
  353. package/build-module/components/link-control/use-internal-input-value.js +18 -0
  354. package/build-module/components/link-control/use-internal-input-value.js.map +1 -0
  355. package/build-module/components/list-view/block.js +10 -5
  356. package/build-module/components/list-view/block.js.map +1 -1
  357. package/build-module/components/list-view/branch.js +21 -14
  358. package/build-module/components/list-view/branch.js.map +1 -1
  359. package/build-module/components/media-upload/index.native.js +2 -4
  360. package/build-module/components/media-upload/index.native.js.map +1 -1
  361. package/build-module/components/off-canvas-editor/appender.js +89 -0
  362. package/build-module/components/off-canvas-editor/appender.js.map +1 -0
  363. package/build-module/components/off-canvas-editor/block-contents.js +85 -0
  364. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -0
  365. package/build-module/components/off-canvas-editor/block-edit-button.js +35 -0
  366. package/build-module/components/off-canvas-editor/block-edit-button.js.map +1 -0
  367. package/build-module/components/off-canvas-editor/block-select-button.js +101 -0
  368. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -0
  369. package/build-module/components/off-canvas-editor/block.js +298 -0
  370. package/build-module/components/off-canvas-editor/block.js.map +1 -0
  371. package/build-module/components/off-canvas-editor/branch.js +164 -0
  372. package/build-module/components/off-canvas-editor/branch.js.map +1 -0
  373. package/build-module/components/off-canvas-editor/context.js +7 -0
  374. package/build-module/components/off-canvas-editor/context.js.map +1 -0
  375. package/build-module/components/off-canvas-editor/drop-indicator.js +111 -0
  376. package/build-module/components/off-canvas-editor/drop-indicator.js.map +1 -0
  377. package/build-module/components/off-canvas-editor/expander.js +32 -0
  378. package/build-module/components/off-canvas-editor/expander.js.map +1 -0
  379. package/build-module/components/off-canvas-editor/index.js +189 -0
  380. package/build-module/components/off-canvas-editor/index.js.map +1 -0
  381. package/build-module/components/off-canvas-editor/leaf.js +45 -0
  382. package/build-module/components/off-canvas-editor/leaf.js.map +1 -0
  383. package/build-module/components/off-canvas-editor/link-ui.js +165 -0
  384. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -0
  385. package/build-module/components/off-canvas-editor/update-attributes.js +97 -0
  386. package/build-module/components/off-canvas-editor/update-attributes.js.map +1 -0
  387. package/build-module/components/off-canvas-editor/use-block-selection.js +124 -0
  388. package/build-module/components/off-canvas-editor/use-block-selection.js.map +1 -0
  389. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +24 -0
  390. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +1 -0
  391. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +220 -0
  392. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -0
  393. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +50 -0
  394. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +1 -0
  395. package/build-module/components/off-canvas-editor/utils.js +44 -0
  396. package/build-module/components/off-canvas-editor/utils.js.map +1 -0
  397. package/build-module/components/rich-text/format-toolbar/index.js +6 -2
  398. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  399. package/build-module/components/rich-text/index.js +2 -3
  400. package/build-module/components/rich-text/index.js.map +1 -1
  401. package/build-module/components/rich-text/index.native.js +0 -2
  402. package/build-module/components/rich-text/index.native.js.map +1 -1
  403. package/build-module/components/rich-text/use-insert-replacement-text.js +33 -0
  404. package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -0
  405. package/build-module/components/rich-text/use-undo-automatic-change.js +9 -1
  406. package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
  407. package/build-module/components/rich-text/utils.js +1 -16
  408. package/build-module/components/rich-text/utils.js.map +1 -1
  409. package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -3
  410. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  411. package/build-module/components/ungroup-button/index.native.js +3 -2
  412. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  413. package/build-module/components/url-input/index.js +46 -43
  414. package/build-module/components/url-input/index.js.map +1 -1
  415. package/build-module/components/url-popover/index.js +30 -3
  416. package/build-module/components/url-popover/index.js.map +1 -1
  417. package/build-module/components/use-block-display-information/index.js +9 -5
  418. package/build-module/components/use-block-display-information/index.js.map +1 -1
  419. package/build-module/components/use-setting/index.js +9 -2
  420. package/build-module/components/use-setting/index.js.map +1 -1
  421. package/build-module/hooks/child-layout.js +189 -0
  422. package/build-module/hooks/child-layout.js.map +1 -0
  423. package/build-module/hooks/color-panel.js +17 -1
  424. package/build-module/hooks/color-panel.js.map +1 -1
  425. package/build-module/hooks/color.js +1 -1
  426. package/build-module/hooks/color.js.map +1 -1
  427. package/build-module/hooks/content-lock-ui.js +16 -9
  428. package/build-module/hooks/content-lock-ui.js.map +1 -1
  429. package/build-module/hooks/dimensions.js +60 -16
  430. package/build-module/hooks/dimensions.js.map +1 -1
  431. package/build-module/hooks/layout.js +57 -2
  432. package/build-module/hooks/layout.js.map +1 -1
  433. package/build-module/hooks/margin.js +4 -2
  434. package/build-module/hooks/margin.js.map +1 -1
  435. package/build-module/hooks/min-height.js +116 -0
  436. package/build-module/hooks/min-height.js.map +1 -0
  437. package/build-module/hooks/padding.js +4 -2
  438. package/build-module/hooks/padding.js.map +1 -1
  439. package/build-module/hooks/style.js +4 -3
  440. package/build-module/hooks/style.js.map +1 -1
  441. package/build-module/layouts/flex.js +23 -22
  442. package/build-module/layouts/flex.js.map +1 -1
  443. package/build-module/store/actions.js +22 -0
  444. package/build-module/store/actions.js.map +1 -1
  445. package/build-module/store/reducer.js +415 -265
  446. package/build-module/store/reducer.js.map +1 -1
  447. package/build-module/store/selectors.js +66 -48
  448. package/build-module/store/selectors.js.map +1 -1
  449. package/build-module/utils/sorting.js +56 -0
  450. package/build-module/utils/sorting.js.map +1 -0
  451. package/build-style/content-rtl.css +701 -0
  452. package/build-style/content.css +701 -0
  453. package/build-style/default-editor-styles-rtl.css +14 -0
  454. package/build-style/default-editor-styles.css +14 -0
  455. package/build-style/style-rtl.css +305 -668
  456. package/build-style/style.css +305 -668
  457. package/package.json +32 -30
  458. package/src/autocompleters/block.js +2 -6
  459. package/src/autocompleters/link.js +2 -0
  460. package/src/components/alignment-control/README.md +1 -1
  461. package/src/components/alignment-control/test/index.js +4 -1
  462. package/src/components/block-alignment-control/test/index.js +4 -1
  463. package/src/components/block-alignment-control/test/index.native.js +4 -4
  464. package/src/components/block-card/index.js +46 -2
  465. package/src/components/block-card/style.scss +4 -0
  466. package/src/components/block-content-overlay/{style.scss → content.scss} +7 -1
  467. package/src/components/block-draggable/content.scss +20 -0
  468. package/src/components/block-draggable/index.native.js +54 -40
  469. package/src/components/block-draggable/style.scss +0 -21
  470. package/src/components/block-draggable/test/helpers.native.js +7 -9
  471. package/src/components/block-draggable/test/index.native.js +35 -45
  472. package/src/components/block-edit/edit.js +5 -2
  473. package/src/components/block-edit/edit.native.js +5 -6
  474. package/src/components/block-inspector/index.js +96 -81
  475. package/src/components/block-inspector/style.scss +9 -1
  476. package/src/components/block-list/block-list-context.native.js +5 -8
  477. package/src/components/block-list/block.js +74 -23
  478. package/src/components/block-list/block.native.js +78 -23
  479. package/src/components/block-list/{style.scss → content.scss} +11 -20
  480. package/src/components/block-list-appender/{style.scss → content.scss} +0 -0
  481. package/src/components/block-lock/menu-item.js +5 -2
  482. package/src/components/block-lock/modal.js +19 -36
  483. package/src/components/block-lock/style.scss +8 -17
  484. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +24 -6
  485. package/src/components/block-mover/style.scss +0 -1
  486. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -2
  487. package/src/components/block-pattern-setup/index.js +2 -1
  488. package/src/components/block-patterns-list/index.js +47 -24
  489. package/src/components/block-popover/style.scss +1 -1
  490. package/src/components/block-preview/README.md +15 -10
  491. package/src/components/block-preview/auto.js +7 -1
  492. package/src/components/block-preview/content.scss +4 -0
  493. package/src/components/block-preview/index.js +7 -12
  494. package/src/components/block-preview/style.scss +0 -7
  495. package/src/components/block-preview/test/index.js +18 -35
  496. package/src/components/block-selection-clearer/test/index.js +12 -12
  497. package/src/components/block-settings-menu/block-settings-dropdown.js +32 -20
  498. package/src/components/block-styles/utils.js +3 -3
  499. package/src/components/block-switcher/index.js +19 -4
  500. package/src/components/block-switcher/test/index.js +4 -0
  501. package/src/components/block-toolbar/index.js +12 -5
  502. package/src/components/block-toolbar/style.scss +10 -0
  503. package/src/components/block-tools/insertion-point.js +3 -47
  504. package/src/components/block-tools/selected-block-popover.js +80 -34
  505. package/src/components/block-tools/style.scss +27 -5
  506. package/src/components/block-variation-picker/index.js +1 -4
  507. package/src/components/block-vertical-alignment-control/test/index.js +4 -1
  508. package/src/components/colors/with-colors.js +13 -23
  509. package/src/components/default-block-appender/{style.scss → content.scss} +1 -0
  510. package/src/components/font-sizes/fluid-utils.js +37 -64
  511. package/src/components/font-sizes/test/fluid-utils.js +5 -5
  512. package/src/components/font-sizes/with-font-sizes.js +14 -11
  513. package/src/components/height-control/index.js +123 -0
  514. package/src/components/height-control/stories/index.js +21 -0
  515. package/src/components/height-control/style.scss +5 -0
  516. package/src/components/iframe/index.js +25 -18
  517. package/src/components/image-editor/use-save-image.js +2 -0
  518. package/src/components/image-editor/zoom-dropdown.js +1 -0
  519. package/src/components/index.js +2 -0
  520. package/src/components/inner-blocks/{style.scss → content.scss} +0 -0
  521. package/src/components/inner-blocks/index.js +30 -10
  522. package/src/components/inner-blocks/use-inner-block-template-sync.js +28 -10
  523. package/src/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  524. package/src/components/inserter/block-patterns-tab.js +28 -71
  525. package/src/components/inserter/block-types-tab.js +3 -2
  526. package/src/components/inserter/hooks/use-debounced-input.js +17 -0
  527. package/src/components/inserter/index.js +10 -2
  528. package/src/components/inserter/index.native.js +1 -1
  529. package/src/components/inserter/media-tab/hooks.js +88 -0
  530. package/src/components/inserter/media-tab/index.js +3 -0
  531. package/src/components/inserter/media-tab/media-list.js +93 -0
  532. package/src/components/inserter/media-tab/media-panel.js +83 -0
  533. package/src/components/inserter/media-tab/media-tab.js +135 -0
  534. package/src/components/inserter/media-tab/utils.js +37 -0
  535. package/src/components/inserter/menu.js +55 -13
  536. package/src/components/inserter/mobile-tab-navigation.js +85 -0
  537. package/src/components/inserter/quick-inserter.js +1 -0
  538. package/src/components/inserter/reusable-blocks-tab.js +4 -2
  539. package/src/components/inserter/search-results.js +3 -2
  540. package/src/components/inserter/stories/index.js +1 -1
  541. package/src/components/inserter/stories/{fixtures.js → utils/fixtures.js} +0 -0
  542. package/src/components/inserter/style.scss +184 -18
  543. package/src/components/inserter/tabs.js +12 -1
  544. package/src/components/inserter/test/reusable-blocks-tab.js +14 -57
  545. package/src/components/inserter-list-item/index.js +11 -1
  546. package/src/components/inserter-list-item/style.scss +26 -0
  547. package/src/components/inspector-controls/groups.js +2 -0
  548. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +37 -0
  549. package/src/components/inspector-controls-tabs/index.js +62 -0
  550. package/src/components/inspector-controls-tabs/settings-tab.js +18 -0
  551. package/src/components/inspector-controls-tabs/styles-tab.js +51 -0
  552. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +89 -0
  553. package/src/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +9 -0
  554. package/src/components/inspector-controls-tabs/utils.js +28 -0
  555. package/src/components/line-height-control/test/index.js +5 -5
  556. package/src/components/link-control/README.md +1 -1
  557. package/src/components/link-control/index.js +24 -39
  558. package/src/components/link-control/search-input.js +1 -2
  559. package/src/components/link-control/test/index.js +400 -582
  560. package/src/components/link-control/use-internal-input-value.js +22 -0
  561. package/src/components/list-view/block.js +7 -3
  562. package/src/components/list-view/branch.js +21 -14
  563. package/src/components/list-view/style.scss +20 -9
  564. package/src/components/media-placeholder/{style.scss → content.scss} +0 -0
  565. package/src/components/media-replace-flow/test/index.js +37 -9
  566. package/src/components/media-upload/test/index.native.js +2 -0
  567. package/src/components/off-canvas-editor/README.md +5 -0
  568. package/src/components/off-canvas-editor/appender.js +93 -0
  569. package/src/components/off-canvas-editor/block-contents.js +89 -0
  570. package/src/components/off-canvas-editor/block-edit-button.js +27 -0
  571. package/src/components/off-canvas-editor/block-select-button.js +113 -0
  572. package/src/components/off-canvas-editor/block.js +401 -0
  573. package/src/components/off-canvas-editor/branch.js +208 -0
  574. package/src/components/off-canvas-editor/context.js +8 -0
  575. package/src/components/off-canvas-editor/drop-indicator.js +126 -0
  576. package/src/components/off-canvas-editor/expander.js +26 -0
  577. package/src/components/off-canvas-editor/index.js +242 -0
  578. package/src/components/off-canvas-editor/leaf.js +52 -0
  579. package/src/components/off-canvas-editor/link-ui.js +166 -0
  580. package/src/components/off-canvas-editor/style.scss +26 -0
  581. package/src/components/off-canvas-editor/test/utils.js +50 -0
  582. package/src/components/off-canvas-editor/update-attributes.js +99 -0
  583. package/src/components/off-canvas-editor/use-block-selection.js +169 -0
  584. package/src/components/off-canvas-editor/use-list-view-client-ids.js +29 -0
  585. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +260 -0
  586. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +58 -0
  587. package/src/components/off-canvas-editor/utils.js +58 -0
  588. package/src/components/plain-text/{style.scss → content.scss} +0 -0
  589. package/src/components/recursion-provider/test/index.js +27 -29
  590. package/src/components/responsive-block-control/test/index.js +69 -92
  591. package/src/components/rich-text/content.scss +42 -0
  592. package/src/components/rich-text/format-toolbar/index.js +6 -4
  593. package/src/components/rich-text/index.js +2 -2
  594. package/src/components/rich-text/index.native.js +0 -2
  595. package/src/components/rich-text/style.scss +0 -43
  596. package/src/components/rich-text/use-insert-replacement-text.js +31 -0
  597. package/src/components/rich-text/use-undo-automatic-change.js +7 -1
  598. package/src/components/rich-text/utils.js +2 -21
  599. package/src/components/spacing-sizes-control/spacing-input-control.js +9 -0
  600. package/src/components/ungroup-button/index.native.js +6 -2
  601. package/src/components/url-input/index.js +57 -73
  602. package/src/components/url-popover/README.md +12 -3
  603. package/src/components/url-popover/index.js +33 -3
  604. package/src/components/url-popover/test/__snapshots__/index.js.snap +8 -6
  605. package/src/components/url-popover/test/index.js +21 -9
  606. package/src/components/use-block-display-information/index.js +14 -5
  607. package/src/components/use-setting/index.js +20 -2
  608. package/src/components/use-setting/test/index.js +99 -0
  609. package/src/content.scss +10 -0
  610. package/src/hooks/child-layout.js +190 -0
  611. package/src/hooks/color-panel.js +13 -1
  612. package/src/hooks/color.js +2 -0
  613. package/src/hooks/content-lock-ui.js +47 -35
  614. package/src/hooks/dimensions.js +119 -21
  615. package/src/hooks/layout.js +62 -3
  616. package/src/hooks/margin.js +4 -3
  617. package/src/hooks/min-height.js +104 -0
  618. package/src/hooks/padding.js +4 -3
  619. package/src/hooks/style.js +10 -2
  620. package/src/hooks/test/style.js +4 -0
  621. package/src/hooks/test/use-typography-props.js +1 -1
  622. package/src/layouts/flex.js +43 -38
  623. package/src/store/actions.js +22 -0
  624. package/src/store/reducer.js +480 -434
  625. package/src/store/selectors.js +70 -64
  626. package/src/store/test/actions.js +18 -0
  627. package/src/store/test/performance.js +71 -0
  628. package/src/store/test/reducer.js +662 -490
  629. package/src/store/test/selectors.js +1839 -1306
  630. package/src/style.scss +4 -7
  631. package/src/utils/sorting.js +54 -0
  632. package/src/utils/test/sorting.js +49 -0
  633. package/tsconfig.tsbuildinfo +1 -1
  634. package/build/components/block-preview/live.js +0 -30
  635. package/build/components/block-preview/live.js.map +0 -1
  636. package/build-module/components/block-preview/live.js +0 -20
  637. package/build-module/components/block-preview/live.js.map +0 -1
  638. package/src/components/block-preview/live.js +0 -19
@@ -0,0 +1,100 @@
1
+ import { createElement, Fragment } from "@wordpress/element";
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import classNames from 'classnames';
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+
11
+ import { __ } from '@wordpress/i18n';
12
+ import { useViewportMatch } from '@wordpress/compose';
13
+ import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalHStack as HStack, FlexBlock, Button } from '@wordpress/components';
14
+ import { useCallback } from '@wordpress/element';
15
+ import { Icon, chevronRight } from '@wordpress/icons';
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+
20
+ import { MediaCategoryPanel } from './media-panel';
21
+ import MediaUploadCheck from '../../media-upload/check';
22
+ import MediaUpload from '../../media-upload';
23
+ import { useMediaCategories } from './hooks';
24
+ import { getBlockAndPreviewFromMedia } from './utils';
25
+ import MobileTabNavigation from '../mobile-tab-navigation';
26
+ const ALLOWED_MEDIA_TYPES = ['image', 'video', 'audio'];
27
+
28
+ function MediaTab(_ref) {
29
+ let {
30
+ rootClientId,
31
+ selectedCategory,
32
+ onSelectCategory,
33
+ onInsert
34
+ } = _ref;
35
+ const mediaCategories = useMediaCategories(rootClientId);
36
+ const isMobile = useViewportMatch('medium', '<');
37
+ const baseCssClass = 'block-editor-inserter__media-tabs';
38
+ const onSelectMedia = useCallback(media => {
39
+ if (!(media !== null && media !== void 0 && media.url)) {
40
+ return;
41
+ }
42
+
43
+ const [block] = getBlockAndPreviewFromMedia(media, media.type);
44
+ onInsert(block);
45
+ }, [onInsert]);
46
+ return createElement(Fragment, null, !isMobile && createElement("div", {
47
+ className: `${baseCssClass}-container`
48
+ }, createElement("nav", {
49
+ "aria-label": __('Media categories')
50
+ }, createElement(ItemGroup, {
51
+ role: "list",
52
+ className: baseCssClass
53
+ }, mediaCategories.map(mediaCategory => createElement(Item, {
54
+ role: "listitem",
55
+ key: mediaCategory.name,
56
+ onClick: () => onSelectCategory(mediaCategory),
57
+ className: classNames(`${baseCssClass}__media-category`, {
58
+ 'is-selected': selectedCategory === mediaCategory
59
+ }),
60
+ "aria-label": mediaCategory.label,
61
+ "aria-current": mediaCategory === selectedCategory ? 'true' : undefined
62
+ }, createElement(HStack, null, createElement(FlexBlock, null, mediaCategory.label), createElement(Icon, {
63
+ icon: chevronRight
64
+ })))), createElement("div", {
65
+ role: "listitem"
66
+ }, createElement(MediaUploadCheck, null, createElement(MediaUpload, {
67
+ multiple: false,
68
+ onSelect: onSelectMedia,
69
+ allowedTypes: ALLOWED_MEDIA_TYPES,
70
+ render: _ref2 => {
71
+ let {
72
+ open
73
+ } = _ref2;
74
+ return createElement(Button, {
75
+ onClick: event => {
76
+ // Safari doesn't emit a focus event on button elements when
77
+ // clicked and we need to manually focus the button here.
78
+ // The reason is that core's Media Library modal explicitly triggers a
79
+ // focus event and therefore a `blur` event is triggered on a different
80
+ // element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`
81
+ // attribute making the Inserter dialog to close.
82
+ event.target.focus();
83
+ open();
84
+ },
85
+ className: "block-editor-inserter__media-library-button",
86
+ variant: "secondary",
87
+ "data-unstable-ignore-focus-outside-for-relatedtarget": ".media-modal"
88
+ }, __('Open Media Library'));
89
+ }
90
+ })))))), isMobile && createElement(MobileTabNavigation, {
91
+ categories: mediaCategories
92
+ }, category => createElement(MediaCategoryPanel, {
93
+ onInsert: onInsert,
94
+ rootClientId: rootClientId,
95
+ category: category
96
+ })));
97
+ }
98
+
99
+ export default MediaTab;
100
+ //# sourceMappingURL=media-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-tab.js"],"names":["classNames","__","useViewportMatch","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","FlexBlock","Button","useCallback","Icon","chevronRight","MediaCategoryPanel","MediaUploadCheck","MediaUpload","useMediaCategories","getBlockAndPreviewFromMedia","MobileTabNavigation","ALLOWED_MEDIA_TYPES","MediaTab","rootClientId","selectedCategory","onSelectCategory","onInsert","mediaCategories","isMobile","baseCssClass","onSelectMedia","media","url","block","type","map","mediaCategory","name","label","undefined","open","event","target","focus","category"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } 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 } from '@wordpress/element';\nimport { Icon, chevronRight } 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\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.label }\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.label }\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ chevronRight } />\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={ mediaCategories }>\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"]}
@@ -0,0 +1,45 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { createBlock } from '@wordpress/blocks';
7
+ const mediaTypeTag = {
8
+ image: 'img',
9
+ video: 'video',
10
+ audio: 'audio'
11
+ };
12
+ export function getBlockAndPreviewFromMedia(media, mediaType) {
13
+ var _media$caption;
14
+
15
+ // Add the common attributes between the different media types.
16
+ const attributes = {
17
+ id: media.id
18
+ }; // Some props are named differently between the Media REST API and Media Library API.
19
+ // For example `source_url` is used in the former and `url` is used in the latter.
20
+
21
+ const mediaSrc = media.source_url || media.url;
22
+ const alt = media.alt_text || media.alt || undefined;
23
+ const caption = ((_media$caption = media.caption) === null || _media$caption === void 0 ? void 0 : _media$caption.raw) || media.caption;
24
+
25
+ if (caption && typeof caption === 'string') {
26
+ attributes.caption = caption;
27
+ }
28
+
29
+ if (mediaType === 'image') {
30
+ attributes.url = mediaSrc;
31
+ attributes.alt = alt;
32
+ } else if (['video', 'audio'].includes(mediaType)) {
33
+ attributes.src = mediaSrc;
34
+ }
35
+
36
+ const PreviewTag = mediaTypeTag[mediaType];
37
+ const preview = createElement(PreviewTag, {
38
+ src: mediaSrc,
39
+ alt: alt,
40
+ controls: mediaType === 'audio' ? true : undefined,
41
+ inert: "true"
42
+ });
43
+ return [createBlock(`core/${mediaType}`, attributes), preview];
44
+ }
45
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/media-tab/utils.js"],"names":["createBlock","mediaTypeTag","image","video","audio","getBlockAndPreviewFromMedia","media","mediaType","attributes","id","mediaSrc","source_url","url","alt","alt_text","undefined","caption","raw","includes","src","PreviewTag","preview"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,mBAA5B;AAEA,MAAMC,YAAY,GAAG;AAAEC,EAAAA,KAAK,EAAE,KAAT;AAAgBC,EAAAA,KAAK,EAAE,OAAvB;AAAgCC,EAAAA,KAAK,EAAE;AAAvC,CAArB;AAEA,OAAO,SAASC,2BAAT,CAAsCC,KAAtC,EAA6CC,SAA7C,EAAyD;AAAA;;AAC/D;AACA,QAAMC,UAAU,GAAG;AAClBC,IAAAA,EAAE,EAAEH,KAAK,CAACG;AADQ,GAAnB,CAF+D,CAK/D;AACA;;AACA,QAAMC,QAAQ,GAAGJ,KAAK,CAACK,UAAN,IAAoBL,KAAK,CAACM,GAA3C;AACA,QAAMC,GAAG,GAAGP,KAAK,CAACQ,QAAN,IAAkBR,KAAK,CAACO,GAAxB,IAA+BE,SAA3C;AACA,QAAMC,OAAO,GAAG,mBAAAV,KAAK,CAACU,OAAN,kEAAeC,GAAf,KAAsBX,KAAK,CAACU,OAA5C;;AACA,MAAKA,OAAO,IAAI,OAAOA,OAAP,KAAmB,QAAnC,EAA8C;AAC7CR,IAAAA,UAAU,CAACQ,OAAX,GAAqBA,OAArB;AACA;;AACD,MAAKT,SAAS,KAAK,OAAnB,EAA6B;AAC5BC,IAAAA,UAAU,CAACI,GAAX,GAAiBF,QAAjB;AACAF,IAAAA,UAAU,CAACK,GAAX,GAAiBA,GAAjB;AACA,GAHD,MAGO,IAAK,CAAE,OAAF,EAAW,OAAX,EAAqBK,QAArB,CAA+BX,SAA/B,CAAL,EAAkD;AACxDC,IAAAA,UAAU,CAACW,GAAX,GAAiBT,QAAjB;AACA;;AACD,QAAMU,UAAU,GAAGnB,YAAY,CAAEM,SAAF,CAA/B;AACA,QAAMc,OAAO,GACZ,cAAC,UAAD;AACC,IAAA,GAAG,EAAGX,QADP;AAEC,IAAA,GAAG,EAAGG,GAFP;AAGC,IAAA,QAAQ,EAAGN,SAAS,KAAK,OAAd,GAAwB,IAAxB,GAA+BQ,SAH3C;AAIC,IAAA,KAAK,EAAC;AAJP,IADD;AAQA,SAAO,CAAEf,WAAW,CAAG,QAAQO,SAAW,EAAtB,EAAyBC,UAAzB,CAAb,EAAoDa,OAApD,CAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst mediaTypeTag = { image: 'img', video: 'video', audio: 'audio' };\n\nexport function getBlockAndPreviewFromMedia( media, mediaType ) {\n\t// Add the common attributes between the different media types.\n\tconst attributes = {\n\t\tid: media.id,\n\t};\n\t// Some props are named differently between the Media REST API and Media Library API.\n\t// For example `source_url` is used in the former and `url` is used in the latter.\n\tconst mediaSrc = media.source_url || media.url;\n\tconst alt = media.alt_text || media.alt || undefined;\n\tconst caption = media.caption?.raw || media.caption;\n\tif ( caption && typeof caption === 'string' ) {\n\t\tattributes.caption = caption;\n\t}\n\tif ( mediaType === 'image' ) {\n\t\tattributes.url = mediaSrc;\n\t\tattributes.alt = alt;\n\t} else if ( [ 'video', 'audio' ].includes( mediaType ) ) {\n\t\tattributes.src = mediaSrc;\n\t}\n\tconst PreviewTag = mediaTypeTag[ mediaType ];\n\tconst preview = (\n\t\t<PreviewTag\n\t\t\tsrc={ mediaSrc }\n\t\t\talt={ alt }\n\t\t\tcontrols={ mediaType === 'audio' ? true : undefined }\n\t\t\tinert=\"true\"\n\t\t/>\n\t);\n\treturn [ createBlock( `core/${ mediaType }`, attributes ), preview ];\n}\n"]}
@@ -21,7 +21,9 @@ import InserterPreviewPanel from './preview-panel';
21
21
  import BlockTypesTab from './block-types-tab';
22
22
  import BlockPatternsTabs, { BlockPatternsCategoryDialog } from './block-patterns-tab';
23
23
  import ReusableBlocksTab from './reusable-blocks-tab';
24
+ import { MediaTab, MediaCategoryDialog, useMediaCategories } from './media-tab';
24
25
  import InserterSearchResults from './search-results';
26
+ import useDebouncedInput from './hooks/use-debounced-input';
25
27
  import useInsertionPoint from './hooks/use-insertion-point';
26
28
  import InserterTabs from './tabs';
27
29
  import { store as blockEditorStore } from '../../store';
@@ -39,9 +41,10 @@ function InserterMenu(_ref, ref) {
39
41
  shouldFocusBlock = true,
40
42
  prioritizePatterns
41
43
  } = _ref;
42
- const [filterValue, setFilterValue] = useState(__experimentalFilterValue);
44
+ const [filterValue, setFilterValue, delayedFilterValue] = useDebouncedInput(__experimentalFilterValue);
43
45
  const [hoveredItem, setHoveredItem] = useState(null);
44
46
  const [selectedPatternCategory, setSelectedPatternCategory] = useState(null);
47
+ const [selectedMediaCategory, setSelectedMediaCategory] = useState(null);
45
48
  const [selectedTab, setSelectedTab] = useState(null);
46
49
  const [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint] = useInsertionPoint({
47
50
  rootClientId,
@@ -65,6 +68,8 @@ function InserterMenu(_ref, ref) {
65
68
  hasReusableBlocks: !!((_getSettings$__experi = getSettings().__experimentalReusableBlocks) !== null && _getSettings$__experi !== void 0 && _getSettings$__experi.length)
66
69
  };
67
70
  }, [destinationRootClientId]);
71
+ const mediaCategories = useMediaCategories(destinationRootClientId);
72
+ const showMedia = !!mediaCategories.length;
68
73
  const onInsert = useCallback((blocks, meta, shouldForceFocusBlock) => {
69
74
  onInsertBlocks(blocks, meta, shouldForceFocusBlock);
70
75
  onSelect();
@@ -93,7 +98,7 @@ function InserterMenu(_ref, ref) {
93
98
  className: "block-editor-inserter__tips"
94
99
  }, createElement(VisuallyHidden, {
95
100
  as: "h2"
96
- }, __('A tip for using the block editor')), createElement(Tips, null))), [destinationRootClientId, onInsert, onHover, filterValue, showMostUsedBlocks, showInserterHelpPanel]);
101
+ }, __('A tip for using the block editor')), createElement(Tips, null))), [destinationRootClientId, onInsert, onHover, delayedFilterValue, showMostUsedBlocks, showInserterHelpPanel]);
97
102
  const patternsTab = useMemo(() => createElement(BlockPatternsTabs, {
98
103
  rootClientId: destinationRootClientId,
99
104
  onInsert: onInsertPattern,
@@ -105,23 +110,32 @@ function InserterMenu(_ref, ref) {
105
110
  onInsert: onInsert,
106
111
  onHover: onHover
107
112
  }), [destinationRootClientId, onInsert, onHover]);
113
+ const mediaTab = useMemo(() => createElement(MediaTab, {
114
+ rootClientId: destinationRootClientId,
115
+ selectedCategory: selectedMediaCategory,
116
+ onSelectCategory: setSelectedMediaCategory,
117
+ onInsert: onInsert
118
+ }), [destinationRootClientId, onInsert, selectedMediaCategory, setSelectedMediaCategory]);
108
119
  const getCurrentTab = useCallback(tab => {
109
120
  if (tab.name === 'blocks') {
110
121
  return blocksTab;
111
122
  } else if (tab.name === 'patterns') {
112
123
  return patternsTab;
124
+ } else if (tab.name === 'reusable') {
125
+ return reusableBlocksTab;
126
+ } else if (tab.name === 'media') {
127
+ return mediaTab;
113
128
  }
114
-
115
- return reusableBlocksTab;
116
- }, [blocksTab, patternsTab, reusableBlocksTab]);
129
+ }, [blocksTab, patternsTab, reusableBlocksTab, mediaTab]);
117
130
  const searchRef = useRef();
118
131
  useImperativeHandle(ref, () => ({
119
132
  focusSearch: () => {
120
133
  searchRef.current.focus();
121
134
  }
122
135
  }));
123
- const showPatternPanel = selectedTab === 'patterns' && !filterValue && selectedPatternCategory;
124
- const showAsTabs = !filterValue && (showPatterns || hasReusableBlocks);
136
+ const showPatternPanel = selectedTab === 'patterns' && !delayedFilterValue && selectedPatternCategory;
137
+ const showAsTabs = !delayedFilterValue && (showPatterns || hasReusableBlocks || showMedia);
138
+ const showMediaPanel = selectedTab === 'media' && !delayedFilterValue && selectedMediaCategory;
125
139
  return createElement("div", {
126
140
  className: "block-editor-inserter__menu"
127
141
  }, createElement("div", {
@@ -129,6 +143,7 @@ function InserterMenu(_ref, ref) {
129
143
  'show-as-tabs': showAsTabs
130
144
  })
131
145
  }, createElement(SearchControl, {
146
+ __nextHasNoMarginBottom: true,
132
147
  className: "block-editor-inserter__search",
133
148
  onChange: value => {
134
149
  if (hoveredItem) setHoveredItem(null);
@@ -138,10 +153,10 @@ function InserterMenu(_ref, ref) {
138
153
  label: __('Search for blocks and patterns'),
139
154
  placeholder: __('Search'),
140
155
  ref: searchRef
141
- }), !!filterValue && createElement("div", {
156
+ }), !!delayedFilterValue && createElement("div", {
142
157
  className: "block-editor-inserter__no-tab-container"
143
158
  }, createElement(InserterSearchResults, {
144
- filterValue: filterValue,
159
+ filterValue: delayedFilterValue,
145
160
  onSelect: onSelect,
146
161
  onHover: onHover,
147
162
  rootClientId: rootClientId,
@@ -153,16 +168,22 @@ function InserterMenu(_ref, ref) {
153
168
  })), showAsTabs && createElement(InserterTabs, {
154
169
  showPatterns: showPatterns,
155
170
  showReusableBlocks: hasReusableBlocks,
171
+ showMedia: showMedia,
156
172
  prioritizePatterns: prioritizePatterns,
157
173
  onSelect: setSelectedTab
158
- }, getCurrentTab), !filterValue && !showAsTabs && createElement("div", {
174
+ }, getCurrentTab), !delayedFilterValue && !showAsTabs && createElement("div", {
159
175
  className: "block-editor-inserter__no-tab-container"
160
- }, blocksTab)), showInserterHelpPanel && hoveredItem && createElement(InserterPreviewPanel, {
176
+ }, blocksTab)), showMediaPanel && createElement(MediaCategoryDialog, {
177
+ rootClientId: destinationRootClientId,
178
+ onInsert: onInsert,
179
+ category: selectedMediaCategory
180
+ }), showInserterHelpPanel && hoveredItem && createElement(InserterPreviewPanel, {
161
181
  item: hoveredItem
162
182
  }), showPatternPanel && createElement(BlockPatternsCategoryDialog, {
163
183
  rootClientId: destinationRootClientId,
164
184
  onInsert: onInsertPattern,
165
- category: selectedPatternCategory
185
+ category: selectedPatternCategory,
186
+ showTitlesAsTooltip: true
166
187
  }));
167
188
  }
168
189
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"names":["classnames","forwardRef","useState","useCallback","useMemo","useImperativeHandle","useRef","VisuallyHidden","SearchControl","__","useSelect","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTabs","BlockPatternsCategoryDialog","ReusableBlocksTab","InserterSearchResults","useInsertionPoint","InserterTabs","store","blockEditorStore","InserterMenu","ref","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","prioritizePatterns","filterValue","setFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","hasReusableBlocks","select","__experimentalGetAllowedPatterns","getSettings","length","__experimentalReusableBlocks","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","blocksTab","patternsTab","reusableBlocksTab","getCurrentTab","tab","name","searchRef","focusSearch","current","focus","showPatternPanel","showAsTabs","value"],"mappings":"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","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 } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTabs, {\n\tBlockPatternsCategoryDialog,\n} from './block-patterns-tab';\nimport ReusableBlocksTab from './reusable-blocks-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { store as blockEditorStore } from '../../store';\n\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\tprioritizePatterns,\n\t},\n\tref\n) {\n\tconst [ filterValue, setFilterValue ] = useState(\n\t\t__experimentalFilterValue\n\t);\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] =\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, hasReusableBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tshowPatterns: !! __experimentalGetAllowedPatterns(\n\t\t\t\t\tdestinationRootClientId\n\t\t\t\t).length,\n\t\t\t\thasReusableBlocks:\n\t\t\t\t\t!! getSettings().__experimentalReusableBlocks?.length,\n\t\t\t};\n\t\t},\n\t\t[ destinationRootClientId ]\n\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 onClickPatternCategory = useCallback(\n\t\t( patternCategory ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t},\n\t\t[ setSelectedPatternCategory ]\n\t);\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\tfilterValue,\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<BlockPatternsTabs\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),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsertPattern,\n\t\t\tonClickPatternCategory,\n\t\t\tselectedPatternCategory,\n\t\t]\n\t);\n\n\tconst reusableBlocksTab = useMemo(\n\t\t() => (\n\t\t\t<ReusableBlocksTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t),\n\t\t[ destinationRootClientId, onInsert, onHover ]\n\t);\n\n\tconst getCurrentTab = useCallback(\n\t\t( tab ) => {\n\t\t\tif ( tab.name === 'blocks' ) {\n\t\t\t\treturn blocksTab;\n\t\t\t} else if ( tab.name === 'patterns' ) {\n\t\t\t\treturn patternsTab;\n\t\t\t}\n\t\t\treturn reusableBlocksTab;\n\t\t},\n\t\t[ blocksTab, patternsTab, reusableBlocksTab ]\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 showPatternPanel =\n\t\tselectedTab === 'patterns' && ! filterValue && selectedPatternCategory;\n\tconst showAsTabs = ! filterValue && ( showPatterns || hasReusableBlocks );\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__menu\">\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\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{ !! filterValue && (\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={ filterValue }\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\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\tshowReusableBlocks={ hasReusableBlocks }\n\t\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\t\tonSelect={ setSelectedTab }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ getCurrentTab }\n\t\t\t\t\t</InserterTabs>\n\t\t\t\t) }\n\t\t\t\t{ ! filterValue && ! 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{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t) }\n\t\t\t{ showPatternPanel && (\n\t\t\t\t<BlockPatternsCategoryDialog\n\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"names":["classnames","forwardRef","useState","useCallback","useMemo","useImperativeHandle","useRef","VisuallyHidden","SearchControl","__","useSelect","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTabs","BlockPatternsCategoryDialog","ReusableBlocksTab","MediaTab","MediaCategoryDialog","useMediaCategories","InserterSearchResults","useDebouncedInput","useInsertionPoint","InserterTabs","store","blockEditorStore","InserterMenu","ref","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","prioritizePatterns","filterValue","setFilterValue","delayedFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","selectedMediaCategory","setSelectedMediaCategory","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","hasReusableBlocks","select","__experimentalGetAllowedPatterns","getSettings","length","__experimentalReusableBlocks","mediaCategories","showMedia","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","blocksTab","patternsTab","reusableBlocksTab","mediaTab","getCurrentTab","tab","name","searchRef","focusSearch","current","focus","showPatternPanel","showAsTabs","showMediaPanel","value"],"mappings":"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","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 } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTabs, {\n\tBlockPatternsCategoryDialog,\n} from './block-patterns-tab';\nimport ReusableBlocksTab from './reusable-blocks-tab';\nimport { MediaTab, MediaCategoryDialog, useMediaCategories } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useDebouncedInput from './hooks/use-debounced-input';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { store as blockEditorStore } from '../../store';\n\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\tprioritizePatterns,\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 [ 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, hasReusableBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tshowPatterns: !! __experimentalGetAllowedPatterns(\n\t\t\t\t\tdestinationRootClientId\n\t\t\t\t).length,\n\t\t\t\thasReusableBlocks:\n\t\t\t\t\t!! getSettings().__experimentalReusableBlocks?.length,\n\t\t\t};\n\t\t},\n\t\t[ destinationRootClientId ]\n\t);\n\n\tconst mediaCategories = useMediaCategories( destinationRootClientId );\n\tconst showMedia = !! mediaCategories.length;\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 onClickPatternCategory = useCallback(\n\t\t( patternCategory ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t},\n\t\t[ setSelectedPatternCategory ]\n\t);\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\tdelayedFilterValue,\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<BlockPatternsTabs\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),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsertPattern,\n\t\t\tonClickPatternCategory,\n\t\t\tselectedPatternCategory,\n\t\t]\n\t);\n\n\tconst reusableBlocksTab = useMemo(\n\t\t() => (\n\t\t\t<ReusableBlocksTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t),\n\t\t[ destinationRootClientId, onInsert, onHover ]\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 getCurrentTab = useCallback(\n\t\t( tab ) => {\n\t\t\tif ( tab.name === 'blocks' ) {\n\t\t\t\treturn blocksTab;\n\t\t\t} else if ( tab.name === 'patterns' ) {\n\t\t\t\treturn patternsTab;\n\t\t\t} else if ( tab.name === 'reusable' ) {\n\t\t\t\treturn reusableBlocksTab;\n\t\t\t} else if ( tab.name === 'media' ) {\n\t\t\t\treturn mediaTab;\n\t\t\t}\n\t\t},\n\t\t[ blocksTab, patternsTab, reusableBlocksTab, mediaTab ]\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 showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\tselectedPatternCategory;\n\tconst showAsTabs =\n\t\t! delayedFilterValue &&\n\t\t( showPatterns || hasReusableBlocks || showMedia );\n\tconst showMediaPanel =\n\t\tselectedTab === 'media' &&\n\t\t! delayedFilterValue &&\n\t\tselectedMediaCategory;\n\treturn (\n\t\t<div className=\"block-editor-inserter__menu\">\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\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\tshowReusableBlocks={ hasReusableBlocks }\n\t\t\t\t\t\tshowMedia={ showMedia }\n\t\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\t\tonSelect={ setSelectedTab }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ getCurrentTab }\n\t\t\t\t\t</InserterTabs>\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<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t) }\n\t\t\t{ showPatternPanel && (\n\t\t\t\t<BlockPatternsCategoryDialog\n\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"]}
@@ -0,0 +1,61 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { __, isRTL } from '@wordpress/i18n';
7
+ import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalSpacer as Spacer, __experimentalHeading as Heading, __experimentalView as View, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorButton as NavigatorButton, __experimentalNavigatorBackButton as NavigatorBackButton, FlexBlock } from '@wordpress/components';
8
+ import { Icon, chevronRight, chevronLeft } from '@wordpress/icons';
9
+
10
+ function ScreenHeader(_ref) {
11
+ let {
12
+ title
13
+ } = _ref;
14
+ return createElement(VStack, {
15
+ spacing: 0
16
+ }, createElement(View, null, createElement(Spacer, {
17
+ marginBottom: 0,
18
+ paddingX: 4,
19
+ paddingY: 3
20
+ }, createElement(HStack, {
21
+ spacing: 2
22
+ }, createElement(NavigatorBackButton, {
23
+ style: // TODO: This style override is also used in ToolsPanelHeader.
24
+ // It should be supported out-of-the-box by Button.
25
+ {
26
+ minWidth: 24,
27
+ padding: 0
28
+ },
29
+ icon: isRTL() ? chevronRight : chevronLeft,
30
+ isSmall: true,
31
+ "aria-label": __('Navigate to the previous view')
32
+ }), createElement(Spacer, null, createElement(Heading, {
33
+ level: 5
34
+ }, title))))));
35
+ }
36
+
37
+ export default function MobileTabNavigation(_ref2) {
38
+ let {
39
+ categories,
40
+ children
41
+ } = _ref2;
42
+ return createElement(NavigatorProvider, {
43
+ initialPath: "/",
44
+ className: "block-editor-inserter__mobile-tab-navigation"
45
+ }, createElement(NavigatorScreen, {
46
+ path: "/"
47
+ }, createElement(ItemGroup, null, categories.map(category => createElement(NavigatorButton, {
48
+ key: category.name,
49
+ path: `/category/${category.name}`,
50
+ as: Item,
51
+ isAction: true
52
+ }, createElement(HStack, null, createElement(FlexBlock, null, category.label), createElement(Icon, {
53
+ icon: isRTL() ? chevronLeft : chevronRight
54
+ })))))), categories.map(category => createElement(NavigatorScreen, {
55
+ key: category.name,
56
+ path: `/category/${category.name}`
57
+ }, createElement(ScreenHeader, {
58
+ title: __('Back')
59
+ }), children(category))));
60
+ }
61
+ //# sourceMappingURL=mobile-tab-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/mobile-tab-navigation.js"],"names":["__","isRTL","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalSpacer","Spacer","__experimentalHeading","Heading","__experimentalView","View","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorButton","NavigatorButton","__experimentalNavigatorBackButton","NavigatorBackButton","FlexBlock","Icon","chevronRight","chevronLeft","ScreenHeader","title","minWidth","padding","MobileTabNavigation","categories","children","map","category","name","label"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,KAAb,QAA0B,iBAA1B;AACA,SACCC,uBAAuB,IAAIC,SAD5B,EAECC,kBAAkB,IAAIC,IAFvB,EAGCC,oBAAoB,IAAIC,MAHzB,EAICC,oBAAoB,IAAIC,MAJzB,EAKCC,oBAAoB,IAAIC,MALzB,EAMCC,qBAAqB,IAAIC,OAN1B,EAOCC,kBAAkB,IAAIC,IAPvB,EAQCC,+BAA+B,IAAIC,iBARpC,EASCC,6BAA6B,IAAIC,eATlC,EAUCC,6BAA6B,IAAIC,eAVlC,EAWCC,iCAAiC,IAAIC,mBAXtC,EAYCC,SAZD,QAaO,uBAbP;AAcA,SAASC,IAAT,EAAeC,YAAf,EAA6BC,WAA7B,QAAgD,kBAAhD;;AAEA,SAASC,YAAT,OAAmC;AAAA,MAAZ;AAAEC,IAAAA;AAAF,GAAY;AAClC,SACC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAG;AAAlB,KACC,cAAC,IAAD,QACC,cAAC,MAAD;AAAQ,IAAA,YAAY,EAAG,CAAvB;AAA2B,IAAA,QAAQ,EAAG,CAAtC;AAA0C,IAAA,QAAQ,EAAG;AAArD,KACC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAG;AAAlB,KACC,cAAC,mBAAD;AACC,IAAA,KAAK,EACJ;AACA;AACA;AAAEC,MAAAA,QAAQ,EAAE,EAAZ;AAAgBC,MAAAA,OAAO,EAAE;AAAzB,KAJF;AAMC,IAAA,IAAI,EAAG9B,KAAK,KAAKyB,YAAL,GAAoBC,WANjC;AAOC,IAAA,OAAO,MAPR;AAQC,kBAAa3B,EAAE,CAAE,+BAAF;AARhB,IADD,EAWC,cAAC,MAAD,QACC,cAAC,OAAD;AAAS,IAAA,KAAK,EAAG;AAAjB,KAAuB6B,KAAvB,CADD,CAXD,CADD,CADD,CADD,CADD;AAuBA;;AAED,eAAe,SAASG,mBAAT,QAAyD;AAAA,MAA3B;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAA2B;AACvE,SACC,cAAC,iBAAD;AACC,IAAA,WAAW,EAAC,GADb;AAEC,IAAA,SAAS,EAAC;AAFX,KAIC,cAAC,eAAD;AAAiB,IAAA,IAAI,EAAC;AAAtB,KACC,cAAC,SAAD,QACGD,UAAU,CAACE,GAAX,CAAkBC,QAAF,IACjB,cAAC,eAAD;AACC,IAAA,GAAG,EAAGA,QAAQ,CAACC,IADhB;AAEC,IAAA,IAAI,EAAI,aAAaD,QAAQ,CAACC,IAAM,EAFrC;AAGC,IAAA,EAAE,EAAGhC,IAHN;AAIC,IAAA,QAAQ;AAJT,KAMC,cAAC,MAAD,QACC,cAAC,SAAD,QAAa+B,QAAQ,CAACE,KAAtB,CADD,EAEC,cAAC,IAAD;AACC,IAAA,IAAI,EACHrC,KAAK,KAAK0B,WAAL,GAAmBD;AAF1B,IAFD,CAND,CADC,CADH,CADD,CAJD,EAyBGO,UAAU,CAACE,GAAX,CAAkBC,QAAF,IACjB,cAAC,eAAD;AACC,IAAA,GAAG,EAAGA,QAAQ,CAACC,IADhB;AAEC,IAAA,IAAI,EAAI,aAAaD,QAAQ,CAACC,IAAM;AAFrC,KAIC,cAAC,YAAD;AAAc,IAAA,KAAK,EAAGrC,EAAE,CAAE,MAAF;AAAxB,IAJD,EAKGkC,QAAQ,CAAEE,QAAF,CALX,CADC,CAzBH,CADD;AAqCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHeading as Heading,\n\t__experimentalView as View,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorButton as NavigatorButton,\n\t__experimentalNavigatorBackButton as NavigatorBackButton,\n\tFlexBlock,\n} from '@wordpress/components';\nimport { Icon, chevronRight, chevronLeft } from '@wordpress/icons';\n\nfunction ScreenHeader( { title } ) {\n\treturn (\n\t\t<VStack spacing={ 0 }>\n\t\t\t<View>\n\t\t\t\t<Spacer marginBottom={ 0 } paddingX={ 4 } paddingY={ 3 }>\n\t\t\t\t\t<HStack spacing={ 2 }>\n\t\t\t\t\t\t<NavigatorBackButton\n\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer>\n\t\t\t\t\t\t\t<Heading level={ 5 }>{ title }</Heading>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Spacer>\n\t\t\t</View>\n\t\t</VStack>\n\t);\n}\n\nexport default function MobileTabNavigation( { categories, children } ) {\n\treturn (\n\t\t<NavigatorProvider\n\t\t\tinitialPath=\"/\"\n\t\t\tclassName=\"block-editor-inserter__mobile-tab-navigation\"\n\t\t>\n\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t\t<NavigatorButton\n\t\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\t\tpath={ `/category/${ category.name }` }\n\t\t\t\t\t\t\tas={ Item }\n\t\t\t\t\t\t\tisAction\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t<FlexBlock>{ category.label }</FlexBlock>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronLeft : chevronRight\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</HStack>\n\t\t\t\t\t\t</NavigatorButton>\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t</NavigatorScreen>\n\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t<NavigatorScreen\n\t\t\t\t\tkey={ category.name }\n\t\t\t\t\tpath={ `/category/${ category.name }` }\n\t\t\t\t>\n\t\t\t\t\t<ScreenHeader title={ __( 'Back' ) } />\n\t\t\t\t\t{ children( category ) }\n\t\t\t\t</NavigatorScreen>\n\t\t\t) ) }\n\t\t</NavigatorProvider>\n\t);\n}\n"]}
@@ -88,6 +88,7 @@ export default function QuickInserter(_ref) {
88
88
  'has-expand': setInserterIsOpened
89
89
  })
90
90
  }, showSearch && createElement(SearchControl, {
91
+ __nextHasNoMarginBottom: true,
91
92
  className: "block-editor-inserter__search",
92
93
  value: filterValue,
93
94
  onChange: value => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"names":["classnames","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","onBrowseAll","maxBlockPatterns","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\nconst SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tprioritizePatterns,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst blockCount = getBlockCount();\n\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: settings.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? blockCount : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showPatterns =\n\t\tpatterns.length && ( !! filterValue || prioritizePatterns );\n\tconst showSearch =\n\t\t( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\tblockTypes.length > SEARCH_THRESHOLD;\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected.\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( { rootClientId, insertionIndex, filterValue } );\n\t};\n\n\tlet maxBlockPatterns = 0;\n\tif ( showPatterns ) {\n\t\tmaxBlockPatterns = prioritizePatterns\n\t\t\t? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION\n\t\t\t: SHOWN_BLOCK_PATTERNS;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\n\t\t\t\t<SearchControl\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\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) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ maxBlockPatterns }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"names":["classnames","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","onBrowseAll","maxBlockPatterns","value"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,oBAApC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,EAAiBC,aAAjB,QAAsC,uBAAtC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,qBAAP,MAAkC,kBAAlC;AACA,OAAOC,iBAAP,MAA8B,6BAA9B;AACA,OAAOC,gBAAP,MAA6B,4BAA7B;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAMC,gBAAgB,GAAG,CAAzB;AACA,MAAMC,iBAAiB,GAAG,CAA1B;AACA,MAAMC,oBAAoB,GAAG,CAA7B;AACA,MAAMC,wCAAwC,GAAG,CAAjD;AAEA,eAAe,SAASC,aAAT,OAMX;AAAA,MANmC;AACtCC,IAAAA,QADsC;AAEtCC,IAAAA,YAFsC;AAGtCC,IAAAA,QAHsC;AAItCC,IAAAA,UAJsC;AAKtCC,IAAAA;AALsC,GAMnC;AACH,QAAM,CAAEC,WAAF,EAAeC,cAAf,IAAkCvB,QAAQ,CAAE,EAAF,CAAhD;AACA,QAAM,CAAEwB,uBAAF,EAA2BC,cAA3B,IAA8ClB,iBAAiB,CAAE;AACtEU,IAAAA,QADsE;AAEtEC,IAAAA,YAFsE;AAGtEC,IAAAA,QAHsE;AAItEC,IAAAA;AAJsE,GAAF,CAArE;AAMA,QAAM,CAAEM,UAAF,IAAiBjB,kBAAkB,CACxCe,uBADwC,EAExCC,cAFwC,CAAzC;AAKA,QAAM,CAAEE,QAAF,IAAenB,gBAAgB,CACpCiB,cADoC,EAEpCD,uBAFoC,CAArC;AAKA,QAAM;AAAEI,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAA0CxB,SAAS,CACtDyB,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,WAAF;AAAeC,MAAAA,aAAf;AAA8BC,MAAAA;AAA9B,QACLH,MAAM,CAAEnB,gBAAF,CADP;AAEA,UAAMuB,QAAQ,GAAGH,WAAW,EAA5B;AACA,UAAMI,KAAK,GAAGH,aAAa,CAAEb,QAAF,CAA3B;AACA,UAAMiB,UAAU,GAAGH,aAAa,EAAhC;AAEA,WAAO;AACNL,MAAAA,mBAAmB,EAAEM,QAAQ,CAACG,iCADxB;AAENR,MAAAA,cAAc,EAAEM,KAAK,KAAK,CAAC,CAAX,GAAeC,UAAf,GAA4BD;AAFtC,KAAP;AAIA,GAZuD,EAaxD,CAAEhB,QAAF,CAbwD,CAAzD;AAgBA,QAAMmB,YAAY,GACjBX,QAAQ,CAACY,MAAT,KAAqB,CAAC,CAAEjB,WAAH,IAAkBD,kBAAvC,CADD;AAEA,QAAMmB,UAAU,GACbF,YAAY,IAAIX,QAAQ,CAACY,MAAT,GAAkB3B,gBAApC,IACAc,UAAU,CAACa,MAAX,GAAoB3B,gBAFrB;AAIAX,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK2B,mBAAL,EAA2B;AAC1BA,MAAAA,mBAAmB,CAAE,KAAF,CAAnB;AACA;AACD,GAJQ,EAIN,CAAEA,mBAAF,CAJM,CAAT,CAxCG,CA8CH;AACA;;AACA,QAAMa,WAAW,GAAG,MAAM;AACzBb,IAAAA,mBAAmB,CAAE;AAAEV,MAAAA,YAAF;AAAgBW,MAAAA,cAAhB;AAAgCP,MAAAA;AAAhC,KAAF,CAAnB;AACA,GAFD;;AAIA,MAAIoB,gBAAgB,GAAG,CAAvB;;AACA,MAAKJ,YAAL,EAAoB;AACnBI,IAAAA,gBAAgB,GAAGrB,kBAAkB,GAClCN,wCADkC,GAElCD,oBAFH;AAGA;;AAED,SACC;AACC,IAAA,SAAS,EAAGf,UAAU,CAAE,uCAAF,EAA2C;AAChE,oBAAcyC,UADkD;AAEhE,oBAAcZ;AAFkD,KAA3C;AADvB,KAMGY,UAAU,IACX,cAAC,aAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,SAAS,EAAC,+BAFX;AAGC,IAAA,KAAK,EAAGlB,WAHT;AAIC,IAAA,QAAQ,EAAKqB,KAAF,IAAa;AACvBpB,MAAAA,cAAc,CAAEoB,KAAF,CAAd;AACA,KANF;AAOC,IAAA,KAAK,EAAGzC,EAAE,CAAE,gCAAF,CAPX;AAQC,IAAA,WAAW,EAAGA,EAAE,CAAE,QAAF;AARjB,IAPF,EAmBC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,qBAAD;AACC,IAAA,WAAW,EAAGoB,WADf;AAEC,IAAA,QAAQ,EAAGL,QAFZ;AAGC,IAAA,YAAY,EAAGC,YAHhB;AAIC,IAAA,QAAQ,EAAGC,QAJZ;AAKC,IAAA,UAAU,EAAGC,UALd;AAMC,IAAA,gBAAgB,EAAGsB,gBANpB;AAOC,IAAA,aAAa,EAAG7B,iBAPjB;AAQC,IAAA,WAAW,EAAG,KARf;AASC,IAAA,kBAAkB,EAAGQ;AATtB,IADD,CAnBD,EAiCGO,mBAAmB,IACpB,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,8CADX;AAEC,IAAA,OAAO,EAAGa,WAFX;AAGC,kBAAavC,EAAE,CACd,2EADc;AAHhB,KAOGA,EAAE,CAAE,YAAF,CAPL,CAlCF,CADD;AA+CA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\nconst SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tprioritizePatterns,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst blockCount = getBlockCount();\n\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: settings.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? blockCount : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showPatterns =\n\t\tpatterns.length && ( !! filterValue || prioritizePatterns );\n\tconst showSearch =\n\t\t( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\tblockTypes.length > SEARCH_THRESHOLD;\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected.\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( { rootClientId, insertionIndex, filterValue } );\n\t};\n\n\tlet maxBlockPatterns = 0;\n\tif ( showPatterns ) {\n\t\tmaxBlockPatterns = prioritizePatterns\n\t\t\t? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION\n\t\t\t: SHOWN_BLOCK_PATTERNS;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\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\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\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) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ maxBlockPatterns }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
@@ -6,6 +6,7 @@ import { createElement, Fragment } from "@wordpress/element";
6
6
  import { useMemo } from '@wordpress/element';
7
7
  import { __ } from '@wordpress/i18n';
8
8
  import { addQueryArgs } from '@wordpress/url';
9
+ import { Button } from '@wordpress/components';
9
10
  /**
10
11
  * Internal dependencies
11
12
  */
@@ -69,8 +70,9 @@ export function ReusableBlocksTab(_ref3) {
69
70
  rootClientId: rootClientId
70
71
  }), createElement("div", {
71
72
  className: "block-editor-inserter__manage-reusable-blocks-container"
72
- }, createElement("a", {
73
+ }, createElement(Button, {
73
74
  className: "block-editor-inserter__manage-reusable-blocks",
75
+ variant: "secondary",
74
76
  href: addQueryArgs('edit.php', {
75
77
  post_type: 'wp_block'
76
78
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.js"],"names":["useMemo","__","addQueryArgs","BlockTypesList","InserterPanel","InserterNoResults","useBlockTypesState","ReusableBlocksList","onHover","onInsert","rootClientId","items","onSelectItem","filteredItems","filter","category","length","ReusableBlocksTab","post_type"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,aAAP,MAA0B,SAA1B;AACA,OAAOC,iBAAP,MAA8B,cAA9B;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;;AAEA,SAASC,kBAAT,OAAmE;AAAA,MAAtC;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA;AAArB,GAAsC;AAClE,QAAM,CAAEC,KAAF,IAAaC,YAAb,IAA8BN,kBAAkB,CACrDI,YADqD,EAErDD,QAFqD,CAAtD;AAKA,QAAMI,aAAa,GAAGb,OAAO,CAAE,MAAM;AACpC,WAAOW,KAAK,CAACG,MAAN,CAAc;AAAA,UAAE;AAAEC,QAAAA;AAAF,OAAF;AAAA,aAAoBA,QAAQ,KAAK,UAAjC;AAAA,KAAd,CAAP;AACA,GAF4B,EAE1B,CAAEJ,KAAF,CAF0B,CAA7B;;AAIA,MAAKE,aAAa,CAACG,MAAd,KAAyB,CAA9B,EAAkC;AACjC,WAAO,cAAC,iBAAD,OAAP;AACA;;AAED,SACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAGf,EAAE,CAAE,iBAAF;AAAzB,KACC,cAAC,cAAD;AACC,IAAA,KAAK,EAAGY,aADT;AAEC,IAAA,QAAQ,EAAGD,YAFZ;AAGC,IAAA,OAAO,EAAGJ,OAHX;AAIC,IAAA,KAAK,EAAGP,EAAE,CAAE,iBAAF;AAJX,IADD,CADD;AAUA,C,CAED;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASgB,iBAAT,QAAkE;AAAA,MAAtC;AAAEP,IAAAA,YAAF;AAAgBD,IAAAA,QAAhB;AAA0BD,IAAAA;AAA1B,GAAsC;AACxE,SACC,8BACC,cAAC,kBAAD;AACC,IAAA,OAAO,EAAGA,OADX;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,YAAY,EAAGC;AAHhB,IADD,EAMC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AACC,IAAA,SAAS,EAAC,+CADX;AAEC,IAAA,IAAI,EAAGR,YAAY,CAAE,UAAF,EAAc;AAChCgB,MAAAA,SAAS,EAAE;AADqB,KAAd;AAFpB,KAMGjB,EAAE,CAAE,wBAAF,CANL,CADD,CAND,CADD;AAmBA;AAED,eAAegB,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport InserterPanel from './panel';\nimport InserterNoResults from './no-results';\nimport useBlockTypesState from './hooks/use-block-types-state';\n\nfunction ReusableBlocksList( { onHover, onInsert, rootClientId } ) {\n\tconst [ items, , , onSelectItem ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonInsert\n\t);\n\n\tconst filteredItems = useMemo( () => {\n\t\treturn items.filter( ( { category } ) => category === 'reusable' );\n\t}, [ items ] );\n\n\tif ( filteredItems.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<InserterPanel title={ __( 'Reusable blocks' ) }>\n\t\t\t<BlockTypesList\n\t\t\t\titems={ filteredItems }\n\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ __( 'Reusable blocks' ) }\n\t\t\t/>\n\t\t</InserterPanel>\n\t);\n}\n\n// The unwrapped component is only exported for use by unit tests.\n/**\n * List of reusable blocks shown in the \"Reusable\" tab of the inserter.\n *\n * @param {Object} props Component props.\n * @param {?string} props.rootClientId Client id of block to insert into.\n * @param {Function} props.onInsert Callback to run when item is inserted.\n * @param {Function} props.onHover Callback to run when item is hovered.\n *\n * @return {WPComponent} The component.\n */\nexport function ReusableBlocksTab( { rootClientId, onInsert, onHover } ) {\n\treturn (\n\t\t<>\n\t\t\t<ReusableBlocksList\n\t\t\t\tonHover={ onHover }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t<div className=\"block-editor-inserter__manage-reusable-blocks-container\">\n\t\t\t\t<a\n\t\t\t\t\tclassName=\"block-editor-inserter__manage-reusable-blocks\"\n\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Manage Reusable blocks' ) }\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.js"],"names":["useMemo","__","addQueryArgs","Button","BlockTypesList","InserterPanel","InserterNoResults","useBlockTypesState","ReusableBlocksList","onHover","onInsert","rootClientId","items","onSelectItem","filteredItems","filter","category","length","ReusableBlocksTab","post_type"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,aAAP,MAA0B,SAA1B;AACA,OAAOC,iBAAP,MAA8B,cAA9B;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;;AAEA,SAASC,kBAAT,OAAmE;AAAA,MAAtC;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA;AAArB,GAAsC;AAClE,QAAM,CAAEC,KAAF,IAAaC,YAAb,IAA8BN,kBAAkB,CACrDI,YADqD,EAErDD,QAFqD,CAAtD;AAKA,QAAMI,aAAa,GAAGd,OAAO,CAAE,MAAM;AACpC,WAAOY,KAAK,CAACG,MAAN,CAAc;AAAA,UAAE;AAAEC,QAAAA;AAAF,OAAF;AAAA,aAAoBA,QAAQ,KAAK,UAAjC;AAAA,KAAd,CAAP;AACA,GAF4B,EAE1B,CAAEJ,KAAF,CAF0B,CAA7B;;AAIA,MAAKE,aAAa,CAACG,MAAd,KAAyB,CAA9B,EAAkC;AACjC,WAAO,cAAC,iBAAD,OAAP;AACA;;AAED,SACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAGhB,EAAE,CAAE,iBAAF;AAAzB,KACC,cAAC,cAAD;AACC,IAAA,KAAK,EAAGa,aADT;AAEC,IAAA,QAAQ,EAAGD,YAFZ;AAGC,IAAA,OAAO,EAAGJ,OAHX;AAIC,IAAA,KAAK,EAAGR,EAAE,CAAE,iBAAF;AAJX,IADD,CADD;AAUA,C,CAED;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASiB,iBAAT,QAAkE;AAAA,MAAtC;AAAEP,IAAAA,YAAF;AAAgBD,IAAAA,QAAhB;AAA0BD,IAAAA;AAA1B,GAAsC;AACxE,SACC,8BACC,cAAC,kBAAD;AACC,IAAA,OAAO,EAAGA,OADX;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,YAAY,EAAGC;AAHhB,IADD,EAMC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,+CADX;AAEC,IAAA,OAAO,EAAC,WAFT;AAGC,IAAA,IAAI,EAAGT,YAAY,CAAE,UAAF,EAAc;AAChCiB,MAAAA,SAAS,EAAE;AADqB,KAAd;AAHpB,KAOGlB,EAAE,CAAE,wBAAF,CAPL,CADD,CAND,CADD;AAoBA;AAED,eAAeiB,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport InserterPanel from './panel';\nimport InserterNoResults from './no-results';\nimport useBlockTypesState from './hooks/use-block-types-state';\n\nfunction ReusableBlocksList( { onHover, onInsert, rootClientId } ) {\n\tconst [ items, , , onSelectItem ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonInsert\n\t);\n\n\tconst filteredItems = useMemo( () => {\n\t\treturn items.filter( ( { category } ) => category === 'reusable' );\n\t}, [ items ] );\n\n\tif ( filteredItems.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<InserterPanel title={ __( 'Reusable blocks' ) }>\n\t\t\t<BlockTypesList\n\t\t\t\titems={ filteredItems }\n\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ __( 'Reusable blocks' ) }\n\t\t\t/>\n\t\t</InserterPanel>\n\t);\n}\n\n// The unwrapped component is only exported for use by unit tests.\n/**\n * List of reusable blocks shown in the \"Reusable\" tab of the inserter.\n *\n * @param {Object} props Component props.\n * @param {?string} props.rootClientId Client id of block to insert into.\n * @param {Function} props.onInsert Callback to run when item is inserted.\n * @param {Function} props.onHover Callback to run when item is hovered.\n *\n * @return {WPComponent} The component.\n */\nexport function ReusableBlocksTab( { rootClientId, onInsert, onHover } ) {\n\treturn (\n\t\t<>\n\t\t\t<ReusableBlocksList\n\t\t\t\tonHover={ onHover }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t<div className=\"block-editor-inserter__manage-reusable-blocks-container\">\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__manage-reusable-blocks\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Manage Reusable blocks' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
@@ -3,7 +3,7 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { orderBy, isEmpty } from 'lodash';
6
+ import { isEmpty } from 'lodash';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
@@ -27,6 +27,7 @@ import usePatternsState from './hooks/use-patterns-state';
27
27
  import useBlockTypesState from './hooks/use-block-types-state';
28
28
  import { searchBlockItems, searchItems } from './search-items';
29
29
  import InserterListbox from '../inserter-listbox';
30
+ import { orderBy } from '../../utils/sorting';
30
31
  const INITIAL_INSERTER_RESULTS = 9;
31
32
  /**
32
33
  * Shared reference to an empty array for cases where it is important to avoid
@@ -83,7 +84,7 @@ function InserterSearchResults(_ref) {
83
84
  return [];
84
85
  }
85
86
 
86
- const results = searchBlockItems(orderBy(blockTypes, ['frecency'], ['desc']), blockTypeCategories, blockTypeCollections, filterValue);
87
+ const results = searchBlockItems(orderBy(blockTypes, 'frecency', 'desc'), blockTypeCategories, blockTypeCollections, filterValue);
87
88
  return maxBlockTypesToShow !== undefined ? results.slice(0, maxBlockTypesToShow) : results;
88
89
  }, [filterValue, blockTypes, blockTypeCategories, blockTypeCollections, maxBlockTypes]); // Announce search results on change.
89
90