@wordpress/block-editor 9.7.1-next.d6164808d3.0 → 10.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 (556) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +13 -1
  3. package/build/components/alignment-control/ui.js +6 -5
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-actions/index.js +5 -9
  6. package/build/components/block-actions/index.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.js +5 -5
  8. package/build/components/block-alignment-control/ui.js.map +1 -1
  9. package/build/components/block-content-overlay/index.js +2 -4
  10. package/build/components/block-content-overlay/index.js.map +1 -1
  11. package/build/components/block-draggable/draggable-chip.js +2 -1
  12. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  13. package/build/components/block-edit/edit.js +1 -1
  14. package/build/components/block-edit/edit.js.map +1 -1
  15. package/build/components/block-inspector/index.js +125 -17
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/block-list-compact.native.js +73 -0
  18. package/build/components/block-list/block-list-compact.native.js.map +1 -0
  19. package/build/components/block-list/block.js +40 -9
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/index.js +4 -4
  22. package/build/components/block-list/index.js.map +1 -1
  23. package/build/components/block-list/use-block-props/index.js +14 -11
  24. package/build/components/block-list/use-block-props/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
  26. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -10
  28. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
  30. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  31. package/build/components/block-list/use-in-between-inserter.js +7 -12
  32. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  33. package/build/components/block-list-appender/index.js +20 -21
  34. package/build/components/block-list-appender/index.js.map +1 -1
  35. package/build/components/block-list-appender/index.native.js +1 -7
  36. package/build/components/block-list-appender/index.native.js.map +1 -1
  37. package/build/components/block-lock/use-block-lock.js +3 -1
  38. package/build/components/block-lock/use-block-lock.js.map +1 -1
  39. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
  40. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  41. package/build/components/block-mover/button.js +4 -6
  42. package/build/components/block-mover/button.js.map +1 -1
  43. package/build/components/block-mover/index.js +4 -6
  44. package/build/components/block-mover/index.js.map +1 -1
  45. package/build/components/block-mover/index.native.js +24 -8
  46. package/build/components/block-mover/index.native.js.map +1 -1
  47. package/build/components/block-popover/inbetween.js +58 -16
  48. package/build/components/block-popover/inbetween.js.map +1 -1
  49. package/build/components/block-popover/index.js +14 -9
  50. package/build/components/block-popover/index.js.map +1 -1
  51. package/build/components/block-preview/auto.js +4 -2
  52. package/build/components/block-preview/auto.js.map +1 -1
  53. package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
  54. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  55. package/build/components/block-settings-menu-controls/index.js +3 -1
  56. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  57. package/build/components/block-styles/preview-panel.js +7 -1
  58. package/build/components/block-styles/preview-panel.js.map +1 -1
  59. package/build/components/block-switcher/block-transformations-menu.js +114 -25
  60. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  61. package/build/components/block-toolbar/index.js +9 -8
  62. package/build/components/block-toolbar/index.js.map +1 -1
  63. package/build/components/block-tools/block-contextual-toolbar.js +3 -2
  64. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  65. package/build/components/block-tools/block-selection-button.js +13 -5
  66. package/build/components/block-tools/block-selection-button.js.map +1 -1
  67. package/build/components/block-tools/index.js +33 -15
  68. package/build/components/block-tools/index.js.map +1 -1
  69. package/build/components/block-tools/insertion-point.js +4 -9
  70. package/build/components/block-tools/insertion-point.js.map +1 -1
  71. package/build/components/block-tools/selected-block-popover.js +19 -10
  72. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  73. package/build/components/block-tools/use-block-toolbar-popover-props.js +131 -0
  74. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
  75. package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
  76. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  77. package/build/components/block-vertical-alignment-control/ui.js +5 -2
  78. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  79. package/build/components/colors-gradients/control.js +1 -0
  80. package/build/components/colors-gradients/control.js.map +1 -1
  81. package/build/components/colors-gradients/dropdown.js +1 -1
  82. package/build/components/colors-gradients/dropdown.js.map +1 -1
  83. package/build/components/iframe/index.js +31 -4
  84. package/build/components/iframe/index.js.map +1 -1
  85. package/build/components/inner-blocks/default-block-appender.js +1 -7
  86. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  87. package/build/components/inner-blocks/index.js +2 -2
  88. package/build/components/inner-blocks/index.js.map +1 -1
  89. package/build/components/inner-blocks/index.native.js +6 -2
  90. package/build/components/inner-blocks/index.native.js.map +1 -1
  91. package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -5
  92. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  93. package/build/components/inner-blocks/use-nested-settings-update.js +1 -1
  94. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  95. package/build/components/inserter/index.js +3 -6
  96. package/build/components/inserter/index.js.map +1 -1
  97. package/build/components/inserter/library.js +14 -3
  98. package/build/components/inserter/library.js.map +1 -1
  99. package/build/components/inserter/menu.js +21 -8
  100. package/build/components/inserter/menu.js.map +1 -1
  101. package/build/components/inserter/preview-panel.js +1 -1
  102. package/build/components/inserter/preview-panel.js.map +1 -1
  103. package/build/components/inserter/tabs.js +11 -4
  104. package/build/components/inserter/tabs.js.map +1 -1
  105. package/build/components/link-control/link-preview.js +1 -1
  106. package/build/components/link-control/link-preview.js.map +1 -1
  107. package/build/components/link-control/search-input.js +6 -3
  108. package/build/components/link-control/search-input.js.map +1 -1
  109. package/build/components/link-control/search-item.js +36 -5
  110. package/build/components/link-control/search-item.js.map +1 -1
  111. package/build/components/list-view/block.js +23 -11
  112. package/build/components/list-view/block.js.map +1 -1
  113. package/build/components/list-view/branch.js +19 -2
  114. package/build/components/list-view/branch.js.map +1 -1
  115. package/build/components/list-view/index.js +8 -4
  116. package/build/components/list-view/index.js.map +1 -1
  117. package/build/components/list-view/use-block-selection.js +0 -1
  118. package/build/components/list-view/use-block-selection.js.map +1 -1
  119. package/build/components/provider/use-block-sync.js +1 -7
  120. package/build/components/provider/use-block-sync.js.map +1 -1
  121. package/build/components/publish-date-time-picker/index.js +1 -1
  122. package/build/components/publish-date-time-picker/index.js.map +1 -1
  123. package/build/components/rich-text/index.js +37 -19
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +11 -20
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/spacing-sizes-control/spacing-input-control.js +6 -1
  128. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  129. package/build/components/spacing-sizes-control/utils.js +32 -1
  130. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  131. package/build/components/text-decoration-control/index.js +28 -17
  132. package/build/components/text-decoration-control/index.js.map +1 -1
  133. package/build/components/text-transform-control/index.js +21 -14
  134. package/build/components/text-transform-control/index.js.map +1 -1
  135. package/build/components/tool-selector/index.js +6 -11
  136. package/build/components/tool-selector/index.js.map +1 -1
  137. package/build/components/url-popover/index.js +1 -1
  138. package/build/components/url-popover/index.js.map +1 -1
  139. package/build/components/use-block-drop-zone/index.js +7 -4
  140. package/build/components/use-block-drop-zone/index.js.map +1 -1
  141. package/build/components/use-moving-animation/index.js +9 -28
  142. package/build/components/use-moving-animation/index.js.map +1 -1
  143. package/build/components/writing-flow/index.js +2 -0
  144. package/build/components/writing-flow/index.js.map +1 -1
  145. package/build/components/writing-flow/use-select-all.js +7 -16
  146. package/build/components/writing-flow/use-select-all.js.map +1 -1
  147. package/build/hooks/align.js +17 -3
  148. package/build/hooks/align.js.map +1 -1
  149. package/build/hooks/anchor.js +3 -7
  150. package/build/hooks/anchor.js.map +1 -1
  151. package/build/hooks/color-panel.js +2 -1
  152. package/build/hooks/color-panel.js.map +1 -1
  153. package/build/hooks/content-lock-ui.js +145 -0
  154. package/build/hooks/content-lock-ui.js.map +1 -0
  155. package/build/hooks/dimensions.js +6 -6
  156. package/build/hooks/dimensions.js.map +1 -1
  157. package/build/hooks/duotone.js +8 -1
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/font-appearance.js +2 -1
  160. package/build/hooks/font-appearance.js.map +1 -1
  161. package/build/hooks/font-family.js +3 -1
  162. package/build/hooks/font-family.js.map +1 -1
  163. package/build/hooks/font-size.js +3 -1
  164. package/build/hooks/font-size.js.map +1 -1
  165. package/build/hooks/gap.js +23 -6
  166. package/build/hooks/gap.js.map +1 -1
  167. package/build/hooks/index.js +14 -0
  168. package/build/hooks/index.js.map +1 -1
  169. package/build/hooks/layout.js +14 -10
  170. package/build/hooks/layout.js.map +1 -1
  171. package/build/hooks/letter-spacing.js +2 -1
  172. package/build/hooks/letter-spacing.js.map +1 -1
  173. package/build/hooks/line-height.js +2 -1
  174. package/build/hooks/line-height.js.map +1 -1
  175. package/build/hooks/lock.js +3 -7
  176. package/build/hooks/lock.js.map +1 -1
  177. package/build/hooks/metadata-name.js +55 -0
  178. package/build/hooks/metadata-name.js.map +1 -0
  179. package/build/hooks/metadata.js +65 -0
  180. package/build/hooks/metadata.js.map +1 -0
  181. package/build/hooks/text-decoration.js +2 -1
  182. package/build/hooks/text-decoration.js.map +1 -1
  183. package/build/hooks/text-transform.js +2 -1
  184. package/build/hooks/text-transform.js.map +1 -1
  185. package/build/hooks/use-typography-props.js +51 -0
  186. package/build/hooks/use-typography-props.js.map +1 -0
  187. package/build/hooks/utils.js +3 -1
  188. package/build/hooks/utils.js.map +1 -1
  189. package/build/index.js +7 -0
  190. package/build/index.js.map +1 -1
  191. package/build/layouts/constrained.js +71 -22
  192. package/build/layouts/constrained.js.map +1 -1
  193. package/build/layouts/flow.js +30 -2
  194. package/build/layouts/flow.js.map +1 -1
  195. package/build/store/actions.js +65 -21
  196. package/build/store/actions.js.map +1 -1
  197. package/build/store/reducer.js +39 -18
  198. package/build/store/reducer.js.map +1 -1
  199. package/build/store/selectors.js +95 -9
  200. package/build/store/selectors.js.map +1 -1
  201. package/build/utils/parse-css-unit-to-px.js +1 -1
  202. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  203. package/build-module/components/alignment-control/ui.js +6 -5
  204. package/build-module/components/alignment-control/ui.js.map +1 -1
  205. package/build-module/components/block-actions/index.js +5 -8
  206. package/build-module/components/block-actions/index.js.map +1 -1
  207. package/build-module/components/block-alignment-control/ui.js +5 -5
  208. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  209. package/build-module/components/block-content-overlay/index.js +2 -4
  210. package/build-module/components/block-content-overlay/index.js.map +1 -1
  211. package/build-module/components/block-draggable/draggable-chip.js +2 -1
  212. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  213. package/build-module/components/block-edit/edit.js +1 -1
  214. package/build-module/components/block-edit/edit.js.map +1 -1
  215. package/build-module/components/block-inspector/index.js +127 -19
  216. package/build-module/components/block-inspector/index.js.map +1 -1
  217. package/build-module/components/block-list/block-list-compact.native.js +58 -0
  218. package/build-module/components/block-list/block-list-compact.native.js.map +1 -0
  219. package/build-module/components/block-list/block.js +41 -9
  220. package/build-module/components/block-list/block.js.map +1 -1
  221. package/build-module/components/block-list/index.js +4 -4
  222. package/build-module/components/block-list/index.js.map +1 -1
  223. package/build-module/components/block-list/use-block-props/index.js +13 -11
  224. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  225. package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
  226. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  227. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -9
  228. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  229. package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
  230. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  231. package/build-module/components/block-list/use-in-between-inserter.js +7 -12
  232. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  233. package/build-module/components/block-list-appender/index.js +20 -20
  234. package/build-module/components/block-list-appender/index.js.map +1 -1
  235. package/build-module/components/block-list-appender/index.native.js +1 -6
  236. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  237. package/build-module/components/block-lock/use-block-lock.js +3 -1
  238. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  239. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
  240. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  241. package/build-module/components/block-mover/button.js +4 -5
  242. package/build-module/components/block-mover/button.js.map +1 -1
  243. package/build-module/components/block-mover/index.js +4 -5
  244. package/build-module/components/block-mover/index.js.map +1 -1
  245. package/build-module/components/block-mover/index.native.js +24 -7
  246. package/build-module/components/block-mover/index.native.js.map +1 -1
  247. package/build-module/components/block-popover/inbetween.js +59 -17
  248. package/build-module/components/block-popover/inbetween.js.map +1 -1
  249. package/build-module/components/block-popover/index.js +12 -9
  250. package/build-module/components/block-popover/index.js.map +1 -1
  251. package/build-module/components/block-preview/auto.js +4 -2
  252. package/build-module/components/block-preview/auto.js.map +1 -1
  253. package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
  254. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  255. package/build-module/components/block-settings-menu-controls/index.js +3 -1
  256. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  257. package/build-module/components/block-styles/preview-panel.js +6 -1
  258. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  259. package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
  260. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  261. package/build-module/components/block-toolbar/index.js +9 -8
  262. package/build-module/components/block-toolbar/index.js.map +1 -1
  263. package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
  264. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  265. package/build-module/components/block-tools/block-selection-button.js +12 -5
  266. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  267. package/build-module/components/block-tools/index.js +30 -15
  268. package/build-module/components/block-tools/index.js.map +1 -1
  269. package/build-module/components/block-tools/insertion-point.js +4 -9
  270. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  271. package/build-module/components/block-tools/selected-block-popover.js +17 -10
  272. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  273. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +119 -0
  274. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
  275. package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
  276. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  277. package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
  278. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  279. package/build-module/components/colors-gradients/control.js +1 -0
  280. package/build-module/components/colors-gradients/control.js.map +1 -1
  281. package/build-module/components/colors-gradients/dropdown.js +1 -1
  282. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  283. package/build-module/components/iframe/index.js +32 -5
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/inner-blocks/default-block-appender.js +1 -6
  286. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  287. package/build-module/components/inner-blocks/index.js +2 -2
  288. package/build-module/components/inner-blocks/index.js.map +1 -1
  289. package/build-module/components/inner-blocks/index.native.js +5 -2
  290. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  291. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -5
  292. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  293. package/build-module/components/inner-blocks/use-nested-settings-update.js +1 -1
  294. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  295. package/build-module/components/inserter/index.js +3 -6
  296. package/build-module/components/inserter/index.js.map +1 -1
  297. package/build-module/components/inserter/library.js +14 -3
  298. package/build-module/components/inserter/library.js.map +1 -1
  299. package/build-module/components/inserter/menu.js +20 -8
  300. package/build-module/components/inserter/menu.js.map +1 -1
  301. package/build-module/components/inserter/preview-panel.js +1 -1
  302. package/build-module/components/inserter/preview-panel.js.map +1 -1
  303. package/build-module/components/inserter/tabs.js +11 -4
  304. package/build-module/components/inserter/tabs.js.map +1 -1
  305. package/build-module/components/link-control/link-preview.js +1 -1
  306. package/build-module/components/link-control/link-preview.js.map +1 -1
  307. package/build-module/components/link-control/search-input.js +6 -2
  308. package/build-module/components/link-control/search-input.js.map +1 -1
  309. package/build-module/components/link-control/search-item.js +37 -6
  310. package/build-module/components/link-control/search-item.js.map +1 -1
  311. package/build-module/components/list-view/block.js +23 -11
  312. package/build-module/components/list-view/block.js.map +1 -1
  313. package/build-module/components/list-view/branch.js +19 -3
  314. package/build-module/components/list-view/branch.js.map +1 -1
  315. package/build-module/components/list-view/index.js +8 -4
  316. package/build-module/components/list-view/index.js.map +1 -1
  317. package/build-module/components/list-view/use-block-selection.js +0 -1
  318. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  319. package/build-module/components/provider/use-block-sync.js +1 -6
  320. package/build-module/components/provider/use-block-sync.js.map +1 -1
  321. package/build-module/components/publish-date-time-picker/index.js +1 -1
  322. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  323. package/build-module/components/rich-text/index.js +37 -18
  324. package/build-module/components/rich-text/index.js.map +1 -1
  325. package/build-module/components/rich-text/index.native.js +11 -18
  326. package/build-module/components/rich-text/index.native.js.map +1 -1
  327. package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -2
  328. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  329. package/build-module/components/spacing-sizes-control/utils.js +30 -1
  330. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  331. package/build-module/components/text-decoration-control/index.js +25 -18
  332. package/build-module/components/text-decoration-control/index.js.map +1 -1
  333. package/build-module/components/text-transform-control/index.js +19 -15
  334. package/build-module/components/text-transform-control/index.js.map +1 -1
  335. package/build-module/components/tool-selector/index.js +6 -11
  336. package/build-module/components/tool-selector/index.js.map +1 -1
  337. package/build-module/components/url-popover/index.js +1 -1
  338. package/build-module/components/url-popover/index.js.map +1 -1
  339. package/build-module/components/use-block-drop-zone/index.js +7 -4
  340. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  341. package/build-module/components/use-moving-animation/index.js +9 -28
  342. package/build-module/components/use-moving-animation/index.js.map +1 -1
  343. package/build-module/components/writing-flow/index.js +2 -0
  344. package/build-module/components/writing-flow/index.js.map +1 -1
  345. package/build-module/components/writing-flow/use-select-all.js +7 -15
  346. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  347. package/build-module/hooks/align.js +16 -4
  348. package/build-module/hooks/align.js.map +1 -1
  349. package/build-module/hooks/anchor.js +3 -6
  350. package/build-module/hooks/anchor.js.map +1 -1
  351. package/build-module/hooks/color-panel.js +2 -1
  352. package/build-module/hooks/color-panel.js.map +1 -1
  353. package/build-module/hooks/content-lock-ui.js +128 -0
  354. package/build-module/hooks/content-lock-ui.js.map +1 -0
  355. package/build-module/hooks/dimensions.js +6 -6
  356. package/build-module/hooks/dimensions.js.map +1 -1
  357. package/build-module/hooks/duotone.js +6 -1
  358. package/build-module/hooks/duotone.js.map +1 -1
  359. package/build-module/hooks/font-appearance.js +2 -1
  360. package/build-module/hooks/font-appearance.js.map +1 -1
  361. package/build-module/hooks/font-family.js +3 -1
  362. package/build-module/hooks/font-family.js.map +1 -1
  363. package/build-module/hooks/font-size.js +3 -1
  364. package/build-module/hooks/font-size.js.map +1 -1
  365. package/build-module/hooks/gap.js +22 -6
  366. package/build-module/hooks/gap.js.map +1 -1
  367. package/build-module/hooks/index.js +4 -0
  368. package/build-module/hooks/index.js.map +1 -1
  369. package/build-module/hooks/layout.js +15 -11
  370. package/build-module/hooks/layout.js.map +1 -1
  371. package/build-module/hooks/letter-spacing.js +2 -1
  372. package/build-module/hooks/letter-spacing.js.map +1 -1
  373. package/build-module/hooks/line-height.js +2 -1
  374. package/build-module/hooks/line-height.js.map +1 -1
  375. package/build-module/hooks/lock.js +3 -6
  376. package/build-module/hooks/lock.js.map +1 -1
  377. package/build-module/hooks/metadata-name.js +45 -0
  378. package/build-module/hooks/metadata-name.js.map +1 -0
  379. package/build-module/hooks/metadata.js +50 -0
  380. package/build-module/hooks/metadata.js.map +1 -0
  381. package/build-module/hooks/text-decoration.js +2 -1
  382. package/build-module/hooks/text-decoration.js.map +1 -1
  383. package/build-module/hooks/text-transform.js +2 -1
  384. package/build-module/hooks/text-transform.js.map +1 -1
  385. package/build-module/hooks/use-typography-props.js +38 -0
  386. package/build-module/hooks/use-typography-props.js.map +1 -0
  387. package/build-module/hooks/utils.js +4 -2
  388. package/build-module/hooks/utils.js.map +1 -1
  389. package/build-module/index.js +1 -1
  390. package/build-module/index.js.map +1 -1
  391. package/build-module/layouts/constrained.js +74 -25
  392. package/build-module/layouts/constrained.js.map +1 -1
  393. package/build-module/layouts/flow.js +31 -3
  394. package/build-module/layouts/flow.js.map +1 -1
  395. package/build-module/store/actions.js +58 -20
  396. package/build-module/store/actions.js.map +1 -1
  397. package/build-module/store/reducer.js +37 -18
  398. package/build-module/store/reducer.js.map +1 -1
  399. package/build-module/store/selectors.js +80 -9
  400. package/build-module/store/selectors.js.map +1 -1
  401. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  402. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  403. package/build-style/style-rtl.css +137 -86
  404. package/build-style/style.css +137 -86
  405. package/package.json +28 -28
  406. package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
  407. package/src/components/alignment-control/test/index.js +124 -33
  408. package/src/components/alignment-control/ui.js +8 -3
  409. package/src/components/block-actions/index.js +9 -8
  410. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
  411. package/src/components/block-alignment-control/test/index.js +95 -31
  412. package/src/components/block-alignment-control/ui.js +2 -2
  413. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
  414. package/src/components/block-compare/test/block-view.js +3 -3
  415. package/src/components/block-content-overlay/index.js +2 -6
  416. package/src/components/block-content-overlay/style.scss +24 -3
  417. package/src/components/block-draggable/draggable-chip.js +4 -1
  418. package/src/components/block-edit/edit.js +5 -1
  419. package/src/components/block-edit/test/edit.js +23 -21
  420. package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
  421. package/src/components/block-icon/test/index.js +31 -16
  422. package/src/components/block-inspector/index.js +126 -12
  423. package/src/components/block-inspector/style.scss +7 -1
  424. package/src/components/block-list/block-list-compact.native.js +62 -0
  425. package/src/components/block-list/block.js +53 -13
  426. package/src/components/block-list/index.js +4 -4
  427. package/src/components/block-list/style.scss +68 -18
  428. package/src/components/block-list/test/block-list-context.native.js +11 -13
  429. package/src/components/block-list/use-block-props/index.js +10 -10
  430. package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
  431. package/src/components/block-list/use-block-props/use-focus-first-element.js +4 -9
  432. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
  433. package/src/components/block-list/use-in-between-inserter.js +11 -13
  434. package/src/components/block-list-appender/index.js +27 -18
  435. package/src/components/block-list-appender/index.native.js +3 -6
  436. package/src/components/block-lock/use-block-lock.js +2 -0
  437. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
  438. package/src/components/block-mover/button.js +6 -5
  439. package/src/components/block-mover/index.js +8 -7
  440. package/src/components/block-mover/index.native.js +20 -13
  441. package/src/components/block-popover/inbetween.js +85 -21
  442. package/src/components/block-popover/index.js +25 -17
  443. package/src/components/block-popover/style.scss +3 -4
  444. package/src/components/block-preview/auto.js +4 -2
  445. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  446. package/src/components/block-settings-menu-controls/README.md +9 -0
  447. package/src/components/block-settings-menu-controls/index.js +13 -2
  448. package/src/components/block-styles/preview-panel.js +3 -0
  449. package/src/components/block-switcher/block-transformations-menu.js +127 -33
  450. package/src/components/block-switcher/style.scss +4 -2
  451. package/src/components/block-switcher/test/index.js +1 -2
  452. package/src/components/block-title/test/index.js +28 -25
  453. package/src/components/block-toolbar/index.js +27 -17
  454. package/src/components/block-tools/block-contextual-toolbar.js +10 -3
  455. package/src/components/block-tools/block-selection-button.js +35 -16
  456. package/src/components/block-tools/index.js +40 -24
  457. package/src/components/block-tools/insertion-point.js +3 -7
  458. package/src/components/block-tools/selected-block-popover.js +16 -7
  459. package/src/components/block-tools/style.scss +5 -0
  460. package/src/components/block-tools/use-block-toolbar-popover-props.js +136 -0
  461. package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
  462. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
  463. package/src/components/block-vertical-alignment-control/test/index.js +92 -23
  464. package/src/components/block-vertical-alignment-control/ui.js +3 -2
  465. package/src/components/button-block-appender/style.scss +23 -0
  466. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
  467. package/src/components/colors/test/with-colors.js +37 -12
  468. package/src/components/colors-gradients/control.js +1 -0
  469. package/src/components/colors-gradients/dropdown.js +1 -1
  470. package/src/components/contrast-checker/test/index.js +135 -116
  471. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
  472. package/src/components/default-block-appender/test/index.js +32 -18
  473. package/src/components/font-sizes/README.MD +9 -0
  474. package/src/components/iframe/index.js +64 -5
  475. package/src/components/inner-blocks/README.md +2 -1
  476. package/src/components/inner-blocks/default-block-appender.js +1 -6
  477. package/src/components/inner-blocks/index.js +3 -2
  478. package/src/components/inner-blocks/index.native.js +5 -1
  479. package/src/components/inner-blocks/use-inner-block-template-sync.js +9 -5
  480. package/src/components/inner-blocks/use-nested-settings-update.js +3 -1
  481. package/src/components/inserter/index.js +2 -8
  482. package/src/components/inserter/library.js +11 -5
  483. package/src/components/inserter/menu.js +42 -29
  484. package/src/components/inserter/preview-panel.js +1 -1
  485. package/src/components/inserter/stories/fixtures.js +44 -0
  486. package/src/components/inserter/stories/index.js +90 -0
  487. package/src/components/inserter/style.scss +21 -27
  488. package/src/components/inserter/tabs.js +8 -4
  489. package/src/components/link-control/link-preview.js +5 -3
  490. package/src/components/link-control/search-input.js +2 -2
  491. package/src/components/link-control/search-item.js +39 -7
  492. package/src/components/list-view/block.js +29 -10
  493. package/src/components/list-view/branch.js +27 -4
  494. package/src/components/list-view/index.js +8 -3
  495. package/src/components/list-view/use-block-selection.js +0 -1
  496. package/src/components/media-placeholder/test/index.js +2 -2
  497. package/src/components/media-replace-flow/README.md +1 -1
  498. package/src/components/provider/use-block-sync.js +3 -6
  499. package/src/components/publish-date-time-picker/index.js +1 -1
  500. package/src/components/rich-text/index.js +33 -35
  501. package/src/components/rich-text/index.native.js +8 -21
  502. package/src/components/spacing-sizes-control/spacing-input-control.js +5 -0
  503. package/src/components/spacing-sizes-control/test/utils.js +26 -0
  504. package/src/components/spacing-sizes-control/utils.js +36 -9
  505. package/src/components/text-decoration-control/index.js +41 -30
  506. package/src/components/text-decoration-control/stories/index.js +37 -0
  507. package/src/components/text-transform-control/index.js +27 -27
  508. package/src/components/text-transform-control/stories/index.js +37 -0
  509. package/src/components/tool-selector/index.js +9 -11
  510. package/src/components/url-input/test/button.js +145 -71
  511. package/src/components/url-popover/index.js +1 -1
  512. package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
  513. package/src/components/url-popover/test/index.js +14 -12
  514. package/src/components/use-block-drop-zone/index.js +15 -4
  515. package/src/components/use-moving-animation/index.js +9 -24
  516. package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
  517. package/src/components/warning/test/index.js +32 -29
  518. package/src/components/writing-flow/index.js +2 -0
  519. package/src/components/writing-flow/use-select-all.js +13 -18
  520. package/src/hooks/align.js +24 -15
  521. package/src/hooks/anchor.js +1 -6
  522. package/src/hooks/color-panel.js +2 -1
  523. package/src/hooks/content-lock-ui.js +161 -0
  524. package/src/hooks/dimensions.js +7 -8
  525. package/src/hooks/duotone.js +13 -1
  526. package/src/hooks/font-appearance.js +1 -0
  527. package/src/hooks/font-family.js +2 -0
  528. package/src/hooks/font-size.js +2 -0
  529. package/src/hooks/gap.js +43 -25
  530. package/src/hooks/index.js +4 -0
  531. package/src/hooks/layout.js +27 -21
  532. package/src/hooks/layout.scss +7 -1
  533. package/src/hooks/letter-spacing.js +1 -0
  534. package/src/hooks/line-height.js +1 -0
  535. package/src/hooks/lock.js +1 -6
  536. package/src/hooks/metadata-name.js +48 -0
  537. package/src/hooks/metadata.js +64 -0
  538. package/src/hooks/test/gap.js +16 -22
  539. package/src/hooks/test/use-typography-props.js +28 -0
  540. package/src/hooks/text-decoration.js +1 -0
  541. package/src/hooks/text-transform.js +1 -0
  542. package/src/hooks/typography.scss +0 -6
  543. package/src/hooks/use-typography-props.js +41 -0
  544. package/src/hooks/utils.js +2 -11
  545. package/src/index.js +1 -0
  546. package/src/layouts/constrained.js +85 -33
  547. package/src/layouts/flow.js +21 -10
  548. package/src/store/actions.js +45 -4
  549. package/src/store/reducer.js +33 -21
  550. package/src/store/selectors.js +98 -19
  551. package/src/store/test/reducer.js +8 -5
  552. package/src/style.scss +0 -2
  553. package/src/utils/parse-css-unit-to-px.js +1 -1
  554. package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
  555. package/src/components/text-decoration-control/style.scss +0 -18
  556. package/src/components/text-transform-control/style.scss +0 -18
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/index.js"],"names":["UncontrolledInnerBlocks","props","clientId","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","template","templateLock","wrapperRef","templateInsertUpdatesSelection","__experimentalCaptureToolbars","captureToolbars","__experimentalAppenderTagName","renderAppender","orientation","placeholder","__experimentalLayout","context","select","block","blockEditorStore","getBlock","blockType","name","providesContext","attributes","ControlledInnerBlocks","ForwardedInnerBlocks","ref","innerBlocksProps","useInnerBlocksProps","options","isSmallScreen","hasOverlay","getBlockName","isBlockSelected","hasSelectedInnerBlock","isNavigationMode","blockName","enableClickThrough","blocksStore","hasBlockSupport","rootClientId","InnerBlocks","value","onChange","className","children","save","getInnerBlocksProps","DefaultBlockAppender","ButtonBlockAppender","Content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch, useMergeRefs } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tgetBlockType,\n\tstore as blocksStore,\n\t__unstableGetInnerBlocksProps as getInnerBlocksProps,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport ButtonBlockAppender from './button-block-appender';\nimport DefaultBlockAppender from './default-block-appender';\nimport useNestedSettingsUpdate from './use-nested-settings-update';\nimport useInnerBlockTemplateSync from './use-inner-block-template-sync';\nimport getBlockContext from './get-block-context';\nimport { BlockListItems } from '../block-list';\nimport { BlockContextProvider } from '../block-context';\nimport { useBlockEditContext } from '../block-edit/context';\nimport useBlockSync from '../provider/use-block-sync';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDropZone from '../use-block-drop-zone';\n\n/**\n * InnerBlocks is a component which allows a single block to have multiple blocks\n * as children. The UncontrolledInnerBlocks component is used whenever the inner\n * blocks are not controlled by another entity. In other words, it is normally\n * used for inner blocks in the post editor\n *\n * @param {Object} props The component props.\n */\nfunction UncontrolledInnerBlocks( props ) {\n\tconst {\n\t\tclientId,\n\t\tallowedBlocks,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\twrapperRef,\n\t\ttemplateInsertUpdatesSelection,\n\t\t__experimentalCaptureToolbars: captureToolbars,\n\t\t__experimentalAppenderTagName,\n\t\trenderAppender,\n\t\torientation,\n\t\tplaceholder,\n\t\t__experimentalLayout,\n\t} = props;\n\n\tuseNestedSettingsUpdate(\n\t\tclientId,\n\t\tallowedBlocks,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\ttemplateLock,\n\t\tcaptureToolbars,\n\t\torientation,\n\t\t__experimentalLayout\n\t);\n\n\tuseInnerBlockTemplateSync(\n\t\tclientId,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection\n\t);\n\n\tconst context = useSelect(\n\t\t( select ) => {\n\t\t\tconst block = select( blockEditorStore ).getBlock( clientId );\n\t\t\tconst blockType = getBlockType( block.name );\n\n\t\t\tif ( ! blockType || ! blockType.providesContext ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn getBlockContext( block.attributes, blockType );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<BlockContextProvider value={ context }>\n\t\t\t<BlockListItems\n\t\t\t\trootClientId={ clientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t__experimentalAppenderTagName={ __experimentalAppenderTagName }\n\t\t\t\t__experimentalLayout={ __experimentalLayout }\n\t\t\t\twrapperRef={ wrapperRef }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t/>\n\t\t</BlockContextProvider>\n\t);\n}\n\n/**\n * The controlled inner blocks component wraps the uncontrolled inner blocks\n * component with the blockSync hook. This keeps the innerBlocks of the block in\n * the block-editor store in sync with the blocks of the controlling entity. An\n * example of an inner block controller is a template part block, which provides\n * its own blocks from the template part entity data source.\n *\n * @param {Object} props The component props.\n */\nfunction ControlledInnerBlocks( props ) {\n\tuseBlockSync( props );\n\treturn <UncontrolledInnerBlocks { ...props } />;\n}\n\nconst ForwardedInnerBlocks = forwardRef( ( props, ref ) => {\n\tconst innerBlocksProps = useInnerBlocksProps( { ref }, props );\n\treturn (\n\t\t<div className=\"block-editor-inner-blocks\">\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</div>\n\t);\n} );\n\n/**\n * This hook is used to lightly mark an element as an inner blocks wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * an inner blocks wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Optional. Inner blocks options.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport function useInnerBlocksProps( props = {}, options = {} ) {\n\tconst { clientId } = useBlockEditContext();\n\tconst isSmallScreen = useViewportMatch( 'medium', '<' );\n\tconst { __experimentalCaptureToolbars, hasOverlay } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tisBlockSelected,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tisNavigationMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst enableClickThrough = isNavigationMode() || isSmallScreen;\n\t\t\treturn {\n\t\t\t\t__experimentalCaptureToolbars: select(\n\t\t\t\t\tblocksStore\n\t\t\t\t).hasBlockSupport(\n\t\t\t\t\tblockName,\n\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasOverlay:\n\t\t\t\t\tblockName !== 'core/template' &&\n\t\t\t\t\t! isBlockSelected( clientId ) &&\n\t\t\t\t\t! hasSelectedInnerBlock( clientId, true ) &&\n\t\t\t\t\tenableClickThrough,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSmallScreen ]\n\t);\n\n\tconst ref = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseBlockDropZone( {\n\t\t\trootClientId: clientId,\n\t\t} ),\n\t] );\n\n\tconst innerBlocksProps = {\n\t\t__experimentalCaptureToolbars,\n\t\t...options,\n\t};\n\tconst InnerBlocks =\n\t\tinnerBlocksProps.value && innerBlocksProps.onChange\n\t\t\t? ControlledInnerBlocks\n\t\t\t: UncontrolledInnerBlocks;\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tclassName: classnames(\n\t\t\tprops.className,\n\t\t\t'block-editor-block-list__layout',\n\t\t\t{\n\t\t\t\t'has-overlay': hasOverlay,\n\t\t\t}\n\t\t),\n\t\tchildren: clientId ? (\n\t\t\t<InnerBlocks { ...innerBlocksProps } clientId={ clientId } />\n\t\t) : (\n\t\t\t<BlockListItems { ...options } />\n\t\t),\n\t};\n}\n\nuseInnerBlocksProps.save = getInnerBlocksProps;\n\n// Expose default appender placeholders as components.\nForwardedInnerBlocks.DefaultBlockAppender = DefaultBlockAppender;\nForwardedInnerBlocks.ButtonBlockAppender = ButtonBlockAppender;\n\nForwardedInnerBlocks.Content = () => useInnerBlocksProps.save().children;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport default ForwardedInnerBlocks;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/index.js"],"names":["UncontrolledInnerBlocks","props","clientId","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","template","templateLock","wrapperRef","templateInsertUpdatesSelection","__experimentalCaptureToolbars","captureToolbars","__experimentalAppenderTagName","renderAppender","orientation","placeholder","__experimentalLayout","context","select","block","blockEditorStore","getBlock","blockType","name","providesContext","attributes","ControlledInnerBlocks","ForwardedInnerBlocks","ref","innerBlocksProps","useInnerBlocksProps","options","isSmallScreen","hasOverlay","getBlockName","isBlockSelected","hasSelectedInnerBlock","__unstableGetEditorMode","blockName","enableClickThrough","blocksStore","hasBlockSupport","rootClientId","InnerBlocks","value","onChange","className","children","save","getInnerBlocksProps","DefaultBlockAppender","ButtonBlockAppender","Content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch, useMergeRefs } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tgetBlockType,\n\tstore as blocksStore,\n\t__unstableGetInnerBlocksProps as getInnerBlocksProps,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport ButtonBlockAppender from './button-block-appender';\nimport DefaultBlockAppender from './default-block-appender';\nimport useNestedSettingsUpdate from './use-nested-settings-update';\nimport useInnerBlockTemplateSync from './use-inner-block-template-sync';\nimport getBlockContext from './get-block-context';\nimport { BlockListItems } from '../block-list';\nimport { BlockContextProvider } from '../block-context';\nimport { useBlockEditContext } from '../block-edit/context';\nimport useBlockSync from '../provider/use-block-sync';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDropZone from '../use-block-drop-zone';\n\n/**\n * InnerBlocks is a component which allows a single block to have multiple blocks\n * as children. The UncontrolledInnerBlocks component is used whenever the inner\n * blocks are not controlled by another entity. In other words, it is normally\n * used for inner blocks in the post editor\n *\n * @param {Object} props The component props.\n */\nfunction UncontrolledInnerBlocks( props ) {\n\tconst {\n\t\tclientId,\n\t\tallowedBlocks,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\twrapperRef,\n\t\ttemplateInsertUpdatesSelection,\n\t\t__experimentalCaptureToolbars: captureToolbars,\n\t\t__experimentalAppenderTagName,\n\t\trenderAppender,\n\t\torientation,\n\t\tplaceholder,\n\t\t__experimentalLayout,\n\t} = props;\n\n\tuseNestedSettingsUpdate(\n\t\tclientId,\n\t\tallowedBlocks,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\ttemplateLock,\n\t\tcaptureToolbars,\n\t\torientation,\n\t\t__experimentalLayout\n\t);\n\n\tuseInnerBlockTemplateSync(\n\t\tclientId,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection\n\t);\n\n\tconst context = useSelect(\n\t\t( select ) => {\n\t\t\tconst block = select( blockEditorStore ).getBlock( clientId );\n\t\t\tconst blockType = getBlockType( block.name );\n\n\t\t\tif ( ! blockType || ! blockType.providesContext ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn getBlockContext( block.attributes, blockType );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<BlockContextProvider value={ context }>\n\t\t\t<BlockListItems\n\t\t\t\trootClientId={ clientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t__experimentalAppenderTagName={ __experimentalAppenderTagName }\n\t\t\t\t__experimentalLayout={ __experimentalLayout }\n\t\t\t\twrapperRef={ wrapperRef }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t/>\n\t\t</BlockContextProvider>\n\t);\n}\n\n/**\n * The controlled inner blocks component wraps the uncontrolled inner blocks\n * component with the blockSync hook. This keeps the innerBlocks of the block in\n * the block-editor store in sync with the blocks of the controlling entity. An\n * example of an inner block controller is a template part block, which provides\n * its own blocks from the template part entity data source.\n *\n * @param {Object} props The component props.\n */\nfunction ControlledInnerBlocks( props ) {\n\tuseBlockSync( props );\n\treturn <UncontrolledInnerBlocks { ...props } />;\n}\n\nconst ForwardedInnerBlocks = forwardRef( ( props, ref ) => {\n\tconst innerBlocksProps = useInnerBlocksProps( { ref }, props );\n\treturn (\n\t\t<div className=\"block-editor-inner-blocks\">\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</div>\n\t);\n} );\n\n/**\n * This hook is used to lightly mark an element as an inner blocks wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * an inner blocks wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Optional. Inner blocks options.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport function useInnerBlocksProps( props = {}, options = {} ) {\n\tconst { clientId } = useBlockEditContext();\n\tconst isSmallScreen = useViewportMatch( 'medium', '<' );\n\tconst { __experimentalCaptureToolbars, hasOverlay } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tisBlockSelected,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst enableClickThrough =\n\t\t\t\t__unstableGetEditorMode() === 'navigation' || isSmallScreen;\n\t\t\treturn {\n\t\t\t\t__experimentalCaptureToolbars: select(\n\t\t\t\t\tblocksStore\n\t\t\t\t).hasBlockSupport(\n\t\t\t\t\tblockName,\n\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasOverlay:\n\t\t\t\t\tblockName !== 'core/template' &&\n\t\t\t\t\t! isBlockSelected( clientId ) &&\n\t\t\t\t\t! hasSelectedInnerBlock( clientId, true ) &&\n\t\t\t\t\tenableClickThrough,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSmallScreen ]\n\t);\n\n\tconst ref = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseBlockDropZone( {\n\t\t\trootClientId: clientId,\n\t\t} ),\n\t] );\n\n\tconst innerBlocksProps = {\n\t\t__experimentalCaptureToolbars,\n\t\t...options,\n\t};\n\tconst InnerBlocks =\n\t\tinnerBlocksProps.value && innerBlocksProps.onChange\n\t\t\t? ControlledInnerBlocks\n\t\t\t: UncontrolledInnerBlocks;\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tclassName: classnames(\n\t\t\tprops.className,\n\t\t\t'block-editor-block-list__layout',\n\t\t\t{\n\t\t\t\t'has-overlay': hasOverlay,\n\t\t\t}\n\t\t),\n\t\tchildren: clientId ? (\n\t\t\t<InnerBlocks { ...innerBlocksProps } clientId={ clientId } />\n\t\t) : (\n\t\t\t<BlockListItems { ...options } />\n\t\t),\n\t};\n}\n\nuseInnerBlocksProps.save = getInnerBlocksProps;\n\n// Expose default appender placeholders as components.\nForwardedInnerBlocks.DefaultBlockAppender = DefaultBlockAppender;\nForwardedInnerBlocks.ButtonBlockAppender = ButtonBlockAppender;\n\nForwardedInnerBlocks.Content = () => useInnerBlocksProps.save().children;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport default ForwardedInnerBlocks;\n"]}
@@ -28,6 +28,8 @@ var _getBlockContext = _interopRequireDefault(require("./get-block-context"));
28
28
 
29
29
  var _blockList = _interopRequireDefault(require("../block-list"));
30
30
 
31
+ var _blockListCompact = _interopRequireDefault(require("../block-list/block-list-compact"));
32
+
31
33
  var _context = require("../block-edit/context");
32
34
 
33
35
  var _useBlockSync = _interopRequireDefault(require("../provider/use-block-sync"));
@@ -114,14 +116,16 @@ function UncontrolledInnerBlocks(props) {
114
116
  filterInnerBlocks,
115
117
  blockWidth,
116
118
  __experimentalLayout: layout = _layout.defaultLayout,
117
- gridProperties
119
+ gridProperties,
120
+ useCompactList
118
121
  } = props;
119
122
  const block = (0, _data.useSelect)(select => select(_store.store).getBlock(clientId), [clientId]) || {
120
123
  innerBlocks: []
121
124
  };
122
125
  (0, _useNestedSettingsUpdate.default)(clientId, allowedBlocks, templateLock);
123
126
  (0, _useInnerBlockTemplateSync.default)(clientId, template, templateLock, templateInsertUpdatesSelection);
124
- let blockList = (0, _element.createElement)(_blockList.default, {
127
+ const BlockListComponent = useCompactList ? _blockListCompact.default : _blockList.default;
128
+ let blockList = (0, _element.createElement)(BlockListComponent, {
125
129
  marginVertical: marginVertical,
126
130
  marginHorizontal: marginHorizontal,
127
131
  rootClientId: clientId,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/index.native.js"],"names":["useInnerBlocksProps","props","options","fallbackRef","clientId","ref","InnerBlocks","value","onChange","ControlledInnerBlocks","UncontrolledInnerBlocks","children","allowedBlocks","template","templateLock","templateInsertUpdatesSelection","orientation","renderAppender","renderFooterAppender","parentWidth","horizontal","contentResizeMode","contentStyle","onAddBlock","onDeleteBlock","marginVertical","marginHorizontal","horizontalAlignment","filterInnerBlocks","blockWidth","__experimentalLayout","layout","defaultLayout","gridProperties","block","select","blockEditorStore","getBlock","innerBlocks","blockList","blockType","name","providesContext","context","attributes","allProps","DefaultBlockAppender","ButtonBlockAppender","save","getInnerBlocksProps","Content"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tgetBlockType,\n\t__unstableGetInnerBlocksProps as getInnerBlocksProps,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ButtonBlockAppender from './button-block-appender';\nimport DefaultBlockAppender from './default-block-appender';\nimport useNestedSettingsUpdate from './use-nested-settings-update';\nimport useInnerBlockTemplateSync from './use-inner-block-template-sync';\nimport getBlockContext from './get-block-context';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport { useBlockEditContext } from '../block-edit/context';\nimport useBlockSync from '../provider/use-block-sync';\nimport { BlockContextProvider } from '../block-context';\nimport { defaultLayout, LayoutProvider } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook is used to lightly mark an element as an inner blocks wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * an inner blocks wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Optional. Inner blocks options.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport function useInnerBlocksProps( props = {}, options = {} ) {\n\tconst fallbackRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\n\tconst ref = props.ref || fallbackRef;\n\tconst InnerBlocks =\n\t\toptions.value && options.onChange\n\t\t\t? ControlledInnerBlocks\n\t\t\t: UncontrolledInnerBlocks;\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tchildren: (\n\t\t\t<InnerBlocks\n\t\t\t\t{ ...options }\n\t\t\t\tclientId={ clientId }\n\t\t\t\twrapperRef={ ref }\n\t\t\t/>\n\t\t),\n\t};\n}\n\n/**\n * InnerBlocks is a component which allows a single block to have multiple blocks\n * as children. The UncontrolledInnerBlocks component is used whenever the inner\n * blocks are not controlled by another entity. In other words, it is normally\n * used for inner blocks in the post editor\n *\n * @param {Object} props The component props.\n */\nfunction UncontrolledInnerBlocks( props ) {\n\tconst {\n\t\tclientId,\n\t\tallowedBlocks,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection,\n\t\torientation,\n\t\trenderAppender,\n\t\trenderFooterAppender,\n\t\tparentWidth,\n\t\thorizontal,\n\t\tcontentResizeMode,\n\t\tcontentStyle,\n\t\tonAddBlock,\n\t\tonDeleteBlock,\n\t\tmarginVertical,\n\t\tmarginHorizontal,\n\t\thorizontalAlignment,\n\t\tfilterInnerBlocks,\n\t\tblockWidth,\n\t\t__experimentalLayout: layout = defaultLayout,\n\t\tgridProperties,\n\t} = props;\n\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t) || { innerBlocks: [] };\n\n\tuseNestedSettingsUpdate( clientId, allowedBlocks, templateLock );\n\n\tuseInnerBlockTemplateSync(\n\t\tclientId,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection\n\t);\n\n\tlet blockList = (\n\t\t<BlockList\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\trootClientId={ clientId }\n\t\t\trenderAppender={ renderAppender }\n\t\t\trenderFooterAppender={ renderFooterAppender }\n\t\t\twithFooter={ false }\n\t\t\torientation={ orientation }\n\t\t\tparentWidth={ parentWidth }\n\t\t\thorizontalAlignment={ horizontalAlignment }\n\t\t\thorizontal={ horizontal }\n\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\tcontentStyle={ contentStyle }\n\t\t\tonAddBlock={ onAddBlock }\n\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\tfilterInnerBlocks={ filterInnerBlocks }\n\t\t\tgridProperties={ gridProperties }\n\t\t\tblockWidth={ blockWidth }\n\t\t/>\n\t);\n\n\t// Wrap context provider if (and only if) block has context to provide.\n\tconst blockType = getBlockType( block.name );\n\tif ( blockType && blockType.providesContext ) {\n\t\tconst context = getBlockContext( block.attributes, blockType );\n\n\t\tblockList = (\n\t\t\t<LayoutProvider value={ layout }>\n\t\t\t\t<BlockContextProvider value={ context }>\n\t\t\t\t\t{ blockList }\n\t\t\t\t</BlockContextProvider>\n\t\t\t</LayoutProvider>\n\t\t);\n\t}\n\n\treturn blockList;\n}\n\n/**\n * The controlled inner blocks component wraps the uncontrolled inner blocks\n * component with the blockSync hook. This keeps the innerBlocks of the block in\n * the block-editor store in sync with the blocks of the controlling entity. An\n * example of an inner block controller is a template part block, which provides\n * its own blocks from the template part entity data source.\n *\n * @param {Object} props The component props.\n */\nfunction ControlledInnerBlocks( props ) {\n\tuseBlockSync( props );\n\treturn <UncontrolledInnerBlocks { ...props } />;\n}\n\n/**\n * Wrapped InnerBlocks component which detects whether to use the controlled or\n * uncontrolled variations of the InnerBlocks component. This is the component\n * which should be used throughout the application.\n *\n * @param {Object} props The component props.\n */\nconst InnerBlocks = ( props ) => {\n\tconst { clientId } = useBlockEditContext();\n\n\tconst allProps = {\n\t\tclientId,\n\t\t...props,\n\t};\n\n\t// Detects if the InnerBlocks should be controlled by an incoming value.\n\treturn props.value && props.onChange ? (\n\t\t<ControlledInnerBlocks { ...allProps } />\n\t) : (\n\t\t<UncontrolledInnerBlocks { ...allProps } />\n\t);\n};\n\n// Expose default appender placeholders as components.\nInnerBlocks.DefaultBlockAppender = DefaultBlockAppender;\nInnerBlocks.ButtonBlockAppender = ButtonBlockAppender;\n\nuseInnerBlocksProps.save = getInnerBlocksProps;\n\nInnerBlocks.Content = () => useInnerBlocksProps.save().children;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport default InnerBlocks;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/index.native.js"],"names":["useInnerBlocksProps","props","options","fallbackRef","clientId","ref","InnerBlocks","value","onChange","ControlledInnerBlocks","UncontrolledInnerBlocks","children","allowedBlocks","template","templateLock","templateInsertUpdatesSelection","orientation","renderAppender","renderFooterAppender","parentWidth","horizontal","contentResizeMode","contentStyle","onAddBlock","onDeleteBlock","marginVertical","marginHorizontal","horizontalAlignment","filterInnerBlocks","blockWidth","__experimentalLayout","layout","defaultLayout","gridProperties","useCompactList","block","select","blockEditorStore","getBlock","innerBlocks","BlockListComponent","BlockListCompact","BlockList","blockList","blockType","name","providesContext","context","attributes","allProps","DefaultBlockAppender","ButtonBlockAppender","save","getInnerBlocksProps","Content"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tgetBlockType,\n\t__unstableGetInnerBlocksProps as getInnerBlocksProps,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ButtonBlockAppender from './button-block-appender';\nimport DefaultBlockAppender from './default-block-appender';\nimport useNestedSettingsUpdate from './use-nested-settings-update';\nimport useInnerBlockTemplateSync from './use-inner-block-template-sync';\nimport getBlockContext from './get-block-context';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport BlockListCompact from '../block-list/block-list-compact';\nimport { useBlockEditContext } from '../block-edit/context';\nimport useBlockSync from '../provider/use-block-sync';\nimport { BlockContextProvider } from '../block-context';\nimport { defaultLayout, LayoutProvider } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook is used to lightly mark an element as an inner blocks wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * an inner blocks wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Optional. Inner blocks options.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport function useInnerBlocksProps( props = {}, options = {} ) {\n\tconst fallbackRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\n\tconst ref = props.ref || fallbackRef;\n\tconst InnerBlocks =\n\t\toptions.value && options.onChange\n\t\t\t? ControlledInnerBlocks\n\t\t\t: UncontrolledInnerBlocks;\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tchildren: (\n\t\t\t<InnerBlocks\n\t\t\t\t{ ...options }\n\t\t\t\tclientId={ clientId }\n\t\t\t\twrapperRef={ ref }\n\t\t\t/>\n\t\t),\n\t};\n}\n\n/**\n * InnerBlocks is a component which allows a single block to have multiple blocks\n * as children. The UncontrolledInnerBlocks component is used whenever the inner\n * blocks are not controlled by another entity. In other words, it is normally\n * used for inner blocks in the post editor\n *\n * @param {Object} props The component props.\n */\nfunction UncontrolledInnerBlocks( props ) {\n\tconst {\n\t\tclientId,\n\t\tallowedBlocks,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection,\n\t\torientation,\n\t\trenderAppender,\n\t\trenderFooterAppender,\n\t\tparentWidth,\n\t\thorizontal,\n\t\tcontentResizeMode,\n\t\tcontentStyle,\n\t\tonAddBlock,\n\t\tonDeleteBlock,\n\t\tmarginVertical,\n\t\tmarginHorizontal,\n\t\thorizontalAlignment,\n\t\tfilterInnerBlocks,\n\t\tblockWidth,\n\t\t__experimentalLayout: layout = defaultLayout,\n\t\tgridProperties,\n\t\tuseCompactList,\n\t} = props;\n\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t) || { innerBlocks: [] };\n\n\tuseNestedSettingsUpdate( clientId, allowedBlocks, templateLock );\n\n\tuseInnerBlockTemplateSync(\n\t\tclientId,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection\n\t);\n\n\tconst BlockListComponent = useCompactList ? BlockListCompact : BlockList;\n\n\tlet blockList = (\n\t\t<BlockListComponent\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\trootClientId={ clientId }\n\t\t\trenderAppender={ renderAppender }\n\t\t\trenderFooterAppender={ renderFooterAppender }\n\t\t\twithFooter={ false }\n\t\t\torientation={ orientation }\n\t\t\tparentWidth={ parentWidth }\n\t\t\thorizontalAlignment={ horizontalAlignment }\n\t\t\thorizontal={ horizontal }\n\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\tcontentStyle={ contentStyle }\n\t\t\tonAddBlock={ onAddBlock }\n\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\tfilterInnerBlocks={ filterInnerBlocks }\n\t\t\tgridProperties={ gridProperties }\n\t\t\tblockWidth={ blockWidth }\n\t\t/>\n\t);\n\n\t// Wrap context provider if (and only if) block has context to provide.\n\tconst blockType = getBlockType( block.name );\n\tif ( blockType && blockType.providesContext ) {\n\t\tconst context = getBlockContext( block.attributes, blockType );\n\n\t\tblockList = (\n\t\t\t<LayoutProvider value={ layout }>\n\t\t\t\t<BlockContextProvider value={ context }>\n\t\t\t\t\t{ blockList }\n\t\t\t\t</BlockContextProvider>\n\t\t\t</LayoutProvider>\n\t\t);\n\t}\n\n\treturn blockList;\n}\n\n/**\n * The controlled inner blocks component wraps the uncontrolled inner blocks\n * component with the blockSync hook. This keeps the innerBlocks of the block in\n * the block-editor store in sync with the blocks of the controlling entity. An\n * example of an inner block controller is a template part block, which provides\n * its own blocks from the template part entity data source.\n *\n * @param {Object} props The component props.\n */\nfunction ControlledInnerBlocks( props ) {\n\tuseBlockSync( props );\n\treturn <UncontrolledInnerBlocks { ...props } />;\n}\n\n/**\n * Wrapped InnerBlocks component which detects whether to use the controlled or\n * uncontrolled variations of the InnerBlocks component. This is the component\n * which should be used throughout the application.\n *\n * @param {Object} props The component props.\n */\nconst InnerBlocks = ( props ) => {\n\tconst { clientId } = useBlockEditContext();\n\n\tconst allProps = {\n\t\tclientId,\n\t\t...props,\n\t};\n\n\t// Detects if the InnerBlocks should be controlled by an incoming value.\n\treturn props.value && props.onChange ? (\n\t\t<ControlledInnerBlocks { ...allProps } />\n\t) : (\n\t\t<UncontrolledInnerBlocks { ...allProps } />\n\t);\n};\n\n// Expose default appender placeholders as components.\nInnerBlocks.DefaultBlockAppender = DefaultBlockAppender;\nInnerBlocks.ButtonBlockAppender = ButtonBlockAppender;\n\nuseInnerBlocksProps.save = getInnerBlocksProps;\n\nInnerBlocks.Content = () => useInnerBlocksProps.save().children;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport default InnerBlocks;\n"]}
@@ -31,8 +31,8 @@ var _store = require("../../store");
31
31
  * This hook makes sure that a block's inner blocks stay in sync with the given
32
32
  * block "template". The template is a block hierarchy to which inner blocks must
33
33
  * conform. If the blocks get "out of sync" with the template and the template
34
- * is meant to be locked (e.g. templateLock = "all"), then we replace the inner
35
- * blocks with the correct value after synchronizing it with the template.
34
+ * is meant to be locked (e.g. templateLock = "all" or templateLock = "noContent"),
35
+ * then we replace the inner blocks with the correct value after synchronizing it with the template.
36
36
  *
37
37
  * @param {string} clientId The block client ID.
38
38
  * @param {Object} template The template to match.
@@ -57,9 +57,9 @@ function useInnerBlockTemplateSync(clientId, template, templateLock, templateIns
57
57
 
58
58
  const existingTemplate = (0, _element.useRef)(null);
59
59
  (0, _element.useLayoutEffect)(() => {
60
- // Only synchronize innerBlocks with template if innerBlocks are empty or
61
- // a locking all exists directly on the block.
62
- if (innerBlocks.length === 0 || templateLock === 'all') {
60
+ // Only synchronize innerBlocks with template if innerBlocks are empty
61
+ // or a locking "all" or "noContent" exists directly on the block.
62
+ if (innerBlocks.length === 0 || templateLock === 'all' || templateLock === 'noContent') {
63
63
  const hasTemplateChanged = !(0, _lodash.isEqual)(template, existingTemplate.current);
64
64
 
65
65
  if (hasTemplateChanged) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/use-inner-block-template-sync.js"],"names":["useInnerBlockTemplateSync","clientId","template","templateLock","templateInsertUpdatesSelection","getSelectedBlocksInitialCaretPosition","blockEditorStore","replaceInnerBlocks","innerBlocks","select","getBlocks","existingTemplate","length","hasTemplateChanged","current","nextBlocks"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,yBAAT,CACdC,QADc,EAEdC,QAFc,EAGdC,YAHc,EAIdC,8BAJc,EAKb;AACD,QAAM;AAAEC,IAAAA;AAAF,MACL,qBAAWC,YAAX,CADD;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaD,YAAb,CAA/B;AACA,QAAME,WAAW,GAAG,qBACjBC,MAAF,IAAcA,MAAM,CAAEH,YAAF,CAAN,CAA2BI,SAA3B,CAAsCT,QAAtC,CADK,EAEnB,CAAEA,QAAF,CAFmB,CAApB,CAJC,CASD;;AACA,QAAMU,gBAAgB,GAAG,qBAAQ,IAAR,CAAzB;AACA,gCAAiB,MAAM;AACtB;AACA;AACA,QAAKH,WAAW,CAACI,MAAZ,KAAuB,CAAvB,IAA4BT,YAAY,KAAK,KAAlD,EAA0D;AACzD,YAAMU,kBAAkB,GAAG,CAAE,qBAC5BX,QAD4B,EAE5BS,gBAAgB,CAACG,OAFW,CAA7B;;AAIA,UAAKD,kBAAL,EAA0B;AACzBF,QAAAA,gBAAgB,CAACG,OAAjB,GAA2BZ,QAA3B;AACA,cAAMa,UAAU,GAAG,2CAClBP,WADkB,EAElBN,QAFkB,CAAnB;;AAIA,YAAK,CAAE,qBAASa,UAAT,EAAqBP,WAArB,CAAP,EAA4C;AAC3CD,UAAAA,kBAAkB,CACjBN,QADiB,EAEjBc,UAFiB,EAGjBP,WAAW,CAACI,MAAZ,KAAuB,CAAvB,IACCR,8BADD,IAECW,UAAU,CAACH,MAAX,KAAsB,CALN,EAMjB;AACA;AACA;AACA;AACAP,UAAAA,qCAAqC,EAVpB,CAAlB;AAYA;AACD;AACD;AACD,GA9BD,EA8BG,CAAEG,WAAF,EAAeN,QAAf,EAAyBC,YAAzB,EAAuCF,QAAvC,CA9BH;AA+BA","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useLayoutEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook makes sure that a block's inner blocks stay in sync with the given\n * block \"template\". The template is a block hierarchy to which inner blocks must\n * conform. If the blocks get \"out of sync\" with the template and the template\n * is meant to be locked (e.g. templateLock = \"all\"), then we replace the inner\n * blocks with the correct value after synchronizing it with the template.\n *\n * @param {string} clientId The block client ID.\n * @param {Object} template The template to match.\n * @param {string} templateLock The template lock state for the inner blocks. For\n * example, if the template lock is set to \"all\",\n * then the inner blocks will stay in sync with the\n * template. If not defined or set to false, then\n * the inner blocks will not be synchronized with\n * the given template.\n * @param {boolean} templateInsertUpdatesSelection Whether or not to update the\n * block-editor selection state when inner blocks\n * are replaced after template synchronization.\n */\nexport default function useInnerBlockTemplateSync(\n\tclientId,\n\ttemplate,\n\ttemplateLock,\n\ttemplateInsertUpdatesSelection\n) {\n\tconst { getSelectedBlocksInitialCaretPosition } =\n\t\tuseSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst innerBlocks = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlocks( clientId ),\n\t\t[ clientId ]\n\t);\n\n\t// Maintain a reference to the previous value so we can do a deep equality check.\n\tconst existingTemplate = useRef( null );\n\tuseLayoutEffect( () => {\n\t\t// Only synchronize innerBlocks with template if innerBlocks are empty or\n\t\t// a locking all exists directly on the block.\n\t\tif ( innerBlocks.length === 0 || templateLock === 'all' ) {\n\t\t\tconst hasTemplateChanged = ! isEqual(\n\t\t\t\ttemplate,\n\t\t\t\texistingTemplate.current\n\t\t\t);\n\t\t\tif ( hasTemplateChanged ) {\n\t\t\t\texistingTemplate.current = template;\n\t\t\t\tconst nextBlocks = synchronizeBlocksWithTemplate(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\ttemplate\n\t\t\t\t);\n\t\t\t\tif ( ! isEqual( nextBlocks, innerBlocks ) ) {\n\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tnextBlocks,\n\t\t\t\t\t\tinnerBlocks.length === 0 &&\n\t\t\t\t\t\t\ttemplateInsertUpdatesSelection &&\n\t\t\t\t\t\t\tnextBlocks.length !== 0,\n\t\t\t\t\t\t// This ensures the \"initialPosition\" doesn't change when applying the template\n\t\t\t\t\t\t// If we're supposed to focus the block, we'll focus the first inner block\n\t\t\t\t\t\t// otherwise, we won't apply any auto-focus.\n\t\t\t\t\t\t// This ensures for instance that the focus stays in the inserter when inserting the \"buttons\" block.\n\t\t\t\t\t\tgetSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ innerBlocks, template, templateLock, clientId ] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/use-inner-block-template-sync.js"],"names":["useInnerBlockTemplateSync","clientId","template","templateLock","templateInsertUpdatesSelection","getSelectedBlocksInitialCaretPosition","blockEditorStore","replaceInnerBlocks","innerBlocks","select","getBlocks","existingTemplate","length","hasTemplateChanged","current","nextBlocks"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,yBAAT,CACdC,QADc,EAEdC,QAFc,EAGdC,YAHc,EAIdC,8BAJc,EAKb;AACD,QAAM;AAAEC,IAAAA;AAAF,MACL,qBAAWC,YAAX,CADD;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaD,YAAb,CAA/B;AACA,QAAME,WAAW,GAAG,qBACjBC,MAAF,IAAcA,MAAM,CAAEH,YAAF,CAAN,CAA2BI,SAA3B,CAAsCT,QAAtC,CADK,EAEnB,CAAEA,QAAF,CAFmB,CAApB,CAJC,CASD;;AACA,QAAMU,gBAAgB,GAAG,qBAAQ,IAAR,CAAzB;AACA,gCAAiB,MAAM;AACtB;AACA;AACA,QACCH,WAAW,CAACI,MAAZ,KAAuB,CAAvB,IACAT,YAAY,KAAK,KADjB,IAEAA,YAAY,KAAK,WAHlB,EAIE;AACD,YAAMU,kBAAkB,GAAG,CAAE,qBAC5BX,QAD4B,EAE5BS,gBAAgB,CAACG,OAFW,CAA7B;;AAIA,UAAKD,kBAAL,EAA0B;AACzBF,QAAAA,gBAAgB,CAACG,OAAjB,GAA2BZ,QAA3B;AACA,cAAMa,UAAU,GAAG,2CAClBP,WADkB,EAElBN,QAFkB,CAAnB;;AAIA,YAAK,CAAE,qBAASa,UAAT,EAAqBP,WAArB,CAAP,EAA4C;AAC3CD,UAAAA,kBAAkB,CACjBN,QADiB,EAEjBc,UAFiB,EAGjBP,WAAW,CAACI,MAAZ,KAAuB,CAAvB,IACCR,8BADD,IAECW,UAAU,CAACH,MAAX,KAAsB,CALN,EAMjB;AACA;AACA;AACA;AACAP,UAAAA,qCAAqC,EAVpB,CAAlB;AAYA;AACD;AACD;AACD,GAlCD,EAkCG,CAAEG,WAAF,EAAeN,QAAf,EAAyBC,YAAzB,EAAuCF,QAAvC,CAlCH;AAmCA","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useLayoutEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook makes sure that a block's inner blocks stay in sync with the given\n * block \"template\". The template is a block hierarchy to which inner blocks must\n * conform. If the blocks get \"out of sync\" with the template and the template\n * is meant to be locked (e.g. templateLock = \"all\" or templateLock = \"noContent\"),\n * then we replace the inner blocks with the correct value after synchronizing it with the template.\n *\n * @param {string} clientId The block client ID.\n * @param {Object} template The template to match.\n * @param {string} templateLock The template lock state for the inner blocks. For\n * example, if the template lock is set to \"all\",\n * then the inner blocks will stay in sync with the\n * template. If not defined or set to false, then\n * the inner blocks will not be synchronized with\n * the given template.\n * @param {boolean} templateInsertUpdatesSelection Whether or not to update the\n * block-editor selection state when inner blocks\n * are replaced after template synchronization.\n */\nexport default function useInnerBlockTemplateSync(\n\tclientId,\n\ttemplate,\n\ttemplateLock,\n\ttemplateInsertUpdatesSelection\n) {\n\tconst { getSelectedBlocksInitialCaretPosition } =\n\t\tuseSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst innerBlocks = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlocks( clientId ),\n\t\t[ clientId ]\n\t);\n\n\t// Maintain a reference to the previous value so we can do a deep equality check.\n\tconst existingTemplate = useRef( null );\n\tuseLayoutEffect( () => {\n\t\t// Only synchronize innerBlocks with template if innerBlocks are empty\n\t\t// or a locking \"all\" or \"noContent\" exists directly on the block.\n\t\tif (\n\t\t\tinnerBlocks.length === 0 ||\n\t\t\ttemplateLock === 'all' ||\n\t\t\ttemplateLock === 'noContent'\n\t\t) {\n\t\t\tconst hasTemplateChanged = ! isEqual(\n\t\t\t\ttemplate,\n\t\t\t\texistingTemplate.current\n\t\t\t);\n\t\t\tif ( hasTemplateChanged ) {\n\t\t\t\texistingTemplate.current = template;\n\t\t\t\tconst nextBlocks = synchronizeBlocksWithTemplate(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\ttemplate\n\t\t\t\t);\n\t\t\t\tif ( ! isEqual( nextBlocks, innerBlocks ) ) {\n\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tnextBlocks,\n\t\t\t\t\t\tinnerBlocks.length === 0 &&\n\t\t\t\t\t\t\ttemplateInsertUpdatesSelection &&\n\t\t\t\t\t\t\tnextBlocks.length !== 0,\n\t\t\t\t\t\t// This ensures the \"initialPosition\" doesn't change when applying the template\n\t\t\t\t\t\t// If we're supposed to focus the block, we'll focus the first inner block\n\t\t\t\t\t\t// otherwise, we won't apply any auto-focus.\n\t\t\t\t\t\t// This ensures for instance that the focus stays in the inserter when inserting the \"buttons\" block.\n\t\t\t\t\t\tgetSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ innerBlocks, template, templateLock, clientId ] );\n}\n"]}
@@ -70,7 +70,7 @@ function useNestedSettingsUpdate(clientId, allowedBlocks, __experimentalDefaultB
70
70
  (0, _element.useLayoutEffect)(() => {
71
71
  const newSettings = {
72
72
  allowedBlocks: _allowedBlocks,
73
- templateLock: templateLock === undefined ? parentLock : templateLock
73
+ templateLock: templateLock === undefined || parentLock === 'noContent' ? parentLock : templateLock
74
74
  }; // These values are not defined for RN, so only include them if they
75
75
  // are defined.
76
76
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/use-nested-settings-update.js"],"names":["useNestedSettingsUpdate","clientId","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","templateLock","captureToolbars","orientation","layout","updateBlockListSettings","blockEditorStore","blockListSettings","parentLock","select","rootClientId","getBlockRootClientId","getBlockListSettings","getTemplateLock","_allowedBlocks","newSettings","undefined","__experimentalCaptureToolbars","layoutType","type","getOrientation"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AAXA;AACA;AACA;;AAKA;AACA;AACA;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,uBAAT,CACdC,QADc,EAEdC,aAFc,EAGdC,0BAHc,EAIdC,0BAJc,EAKdC,YALc,EAMdC,eANc,EAOdC,WAPc,EAQdC,MARc,EASb;AACD,QAAM;AAAEC,IAAAA;AAAF,MAA8B,uBAAaC,YAAb,CAApC;AAEA,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAoC,qBACvCC,MAAF,IAAc;AACb,UAAMC,YAAY,GACjBD,MAAM,CAAEH,YAAF,CAAN,CAA2BK,oBAA3B,CAAiDd,QAAjD,CADD;AAEA,WAAO;AACNU,MAAAA,iBAAiB,EAChBE,MAAM,CAAEH,YAAF,CAAN,CAA2BM,oBAA3B,CAAiDf,QAAjD,CAFK;AAGNW,MAAAA,UAAU,EACTC,MAAM,CAAEH,YAAF,CAAN,CAA2BO,eAA3B,CAA4CH,YAA5C;AAJK,KAAP;AAMA,GAVwC,EAWzC,CAAEb,QAAF,CAXyC,CAA1C,CAHC,CAiBD;AACA;;AACA,QAAMiB,cAAc,GAAG,sBAAS,MAAMhB,aAAf,EAA8BA,aAA9B,CAAvB;;AAEA,gCAAiB,MAAM;AACtB,UAAMiB,WAAW,GAAG;AACnBjB,MAAAA,aAAa,EAAEgB,cADI;AAEnBb,MAAAA,YAAY,EACXA,YAAY,KAAKe,SAAjB,GAA6BR,UAA7B,GAA0CP;AAHxB,KAApB,CADsB,CAOtB;AACA;;AACA,QAAKC,eAAe,KAAKc,SAAzB,EAAqC;AACpCD,MAAAA,WAAW,CAACE,6BAAZ,GAA4Cf,eAA5C;AACA,KAXqB,CAatB;AACA;;;AACA,QAAKC,WAAW,KAAKa,SAArB,EAAiC;AAChCD,MAAAA,WAAW,CAACZ,WAAZ,GAA0BA,WAA1B;AACA,KAFD,MAEO;AACN,YAAMe,UAAU,GAAG,4BAAed,MAAf,aAAeA,MAAf,uBAAeA,MAAM,CAAEe,IAAvB,CAAnB;AACAJ,MAAAA,WAAW,CAACZ,WAAZ,GAA0Be,UAAU,CAACE,cAAX,CAA2BhB,MAA3B,CAA1B;AACA;;AAED,QAAKL,0BAA0B,KAAKiB,SAApC,EAAgD;AAC/CD,MAAAA,WAAW,CAAChB,0BAAZ,GAAyCA,0BAAzC;AACA;;AAED,QAAKC,0BAA0B,KAAKgB,SAApC,EAAgD;AAC/CD,MAAAA,WAAW,CAACf,0BAAZ,GAAyCA,0BAAzC;AACA;;AAED,QAAK,CAAE,6BAAgBO,iBAAhB,EAAmCQ,WAAnC,CAAP,EAA0D;AACzDV,MAAAA,uBAAuB,CAAER,QAAF,EAAYkB,WAAZ,CAAvB;AACA;AACD,GAjCD,EAiCG,CACFlB,QADE,EAEFU,iBAFE,EAGFO,cAHE,EAIFf,0BAJE,EAKFC,0BALE,EAMFC,YANE,EAOFO,UAPE,EAQFN,eARE,EASFC,WATE,EAUFE,uBAVE,EAWFD,MAXE,CAjCH;AA8CA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\n/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */\n\n/**\n * This hook is a side effect which updates the block-editor store when changes\n * happen to inner block settings. The given props are transformed into a\n * settings object, and if that is different from the current settings object in\n * the block-editor store, then the store is updated with the new settings which\n * came from props.\n *\n * @param {string} clientId The client ID of the block to update.\n * @param {string[]} allowedBlocks An array of block names which are permitted\n * in inner blocks.\n * @param {?WPDirectInsertBlock} __experimentalDefaultBlock The default block to insert: [ blockName, { blockAttributes } ].\n * @param {?Function|boolean} __experimentalDirectInsert If a default block should be inserted directly by the\n * appender.\n * @param {string} [templateLock] The template lock specified for the inner\n * blocks component. (e.g. \"all\")\n * @param {boolean} captureToolbars Whether or children toolbars should be shown\n * in the inner blocks component rather than on\n * the child block.\n * @param {string} orientation The direction in which the block\n * should face.\n * @param {Object} layout The layout object for the block container.\n */\nexport default function useNestedSettingsUpdate(\n\tclientId,\n\tallowedBlocks,\n\t__experimentalDefaultBlock,\n\t__experimentalDirectInsert,\n\ttemplateLock,\n\tcaptureToolbars,\n\torientation,\n\tlayout\n) {\n\tconst { updateBlockListSettings } = useDispatch( blockEditorStore );\n\n\tconst { blockListSettings, parentLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst rootClientId =\n\t\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tblockListSettings:\n\t\t\t\t\tselect( blockEditorStore ).getBlockListSettings( clientId ),\n\t\t\t\tparentLock:\n\t\t\t\t\tselect( blockEditorStore ).getTemplateLock( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Memoize as inner blocks implementors often pass a new array on every\n\t// render.\n\tconst _allowedBlocks = useMemo( () => allowedBlocks, allowedBlocks );\n\n\tuseLayoutEffect( () => {\n\t\tconst newSettings = {\n\t\t\tallowedBlocks: _allowedBlocks,\n\t\t\ttemplateLock:\n\t\t\t\ttemplateLock === undefined ? parentLock : templateLock,\n\t\t};\n\n\t\t// These values are not defined for RN, so only include them if they\n\t\t// are defined.\n\t\tif ( captureToolbars !== undefined ) {\n\t\t\tnewSettings.__experimentalCaptureToolbars = captureToolbars;\n\t\t}\n\n\t\t// Orientation depends on layout,\n\t\t// ideally the separate orientation prop should be deprecated.\n\t\tif ( orientation !== undefined ) {\n\t\t\tnewSettings.orientation = orientation;\n\t\t} else {\n\t\t\tconst layoutType = getLayoutType( layout?.type );\n\t\t\tnewSettings.orientation = layoutType.getOrientation( layout );\n\t\t}\n\n\t\tif ( __experimentalDefaultBlock !== undefined ) {\n\t\t\tnewSettings.__experimentalDefaultBlock = __experimentalDefaultBlock;\n\t\t}\n\n\t\tif ( __experimentalDirectInsert !== undefined ) {\n\t\t\tnewSettings.__experimentalDirectInsert = __experimentalDirectInsert;\n\t\t}\n\n\t\tif ( ! isShallowEqual( blockListSettings, newSettings ) ) {\n\t\t\tupdateBlockListSettings( clientId, newSettings );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\tblockListSettings,\n\t\t_allowedBlocks,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\ttemplateLock,\n\t\tparentLock,\n\t\tcaptureToolbars,\n\t\torientation,\n\t\tupdateBlockListSettings,\n\t\tlayout,\n\t] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/use-nested-settings-update.js"],"names":["useNestedSettingsUpdate","clientId","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","templateLock","captureToolbars","orientation","layout","updateBlockListSettings","blockEditorStore","blockListSettings","parentLock","select","rootClientId","getBlockRootClientId","getBlockListSettings","getTemplateLock","_allowedBlocks","newSettings","undefined","__experimentalCaptureToolbars","layoutType","type","getOrientation"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AAXA;AACA;AACA;;AAKA;AACA;AACA;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,uBAAT,CACdC,QADc,EAEdC,aAFc,EAGdC,0BAHc,EAIdC,0BAJc,EAKdC,YALc,EAMdC,eANc,EAOdC,WAPc,EAQdC,MARc,EASb;AACD,QAAM;AAAEC,IAAAA;AAAF,MAA8B,uBAAaC,YAAb,CAApC;AAEA,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAoC,qBACvCC,MAAF,IAAc;AACb,UAAMC,YAAY,GACjBD,MAAM,CAAEH,YAAF,CAAN,CAA2BK,oBAA3B,CAAiDd,QAAjD,CADD;AAEA,WAAO;AACNU,MAAAA,iBAAiB,EAChBE,MAAM,CAAEH,YAAF,CAAN,CAA2BM,oBAA3B,CAAiDf,QAAjD,CAFK;AAGNW,MAAAA,UAAU,EACTC,MAAM,CAAEH,YAAF,CAAN,CAA2BO,eAA3B,CAA4CH,YAA5C;AAJK,KAAP;AAMA,GAVwC,EAWzC,CAAEb,QAAF,CAXyC,CAA1C,CAHC,CAiBD;AACA;;AACA,QAAMiB,cAAc,GAAG,sBAAS,MAAMhB,aAAf,EAA8BA,aAA9B,CAAvB;;AAEA,gCAAiB,MAAM;AACtB,UAAMiB,WAAW,GAAG;AACnBjB,MAAAA,aAAa,EAAEgB,cADI;AAEnBb,MAAAA,YAAY,EACXA,YAAY,KAAKe,SAAjB,IAA8BR,UAAU,KAAK,WAA7C,GACGA,UADH,GAEGP;AALe,KAApB,CADsB,CAStB;AACA;;AACA,QAAKC,eAAe,KAAKc,SAAzB,EAAqC;AACpCD,MAAAA,WAAW,CAACE,6BAAZ,GAA4Cf,eAA5C;AACA,KAbqB,CAetB;AACA;;;AACA,QAAKC,WAAW,KAAKa,SAArB,EAAiC;AAChCD,MAAAA,WAAW,CAACZ,WAAZ,GAA0BA,WAA1B;AACA,KAFD,MAEO;AACN,YAAMe,UAAU,GAAG,4BAAed,MAAf,aAAeA,MAAf,uBAAeA,MAAM,CAAEe,IAAvB,CAAnB;AACAJ,MAAAA,WAAW,CAACZ,WAAZ,GAA0Be,UAAU,CAACE,cAAX,CAA2BhB,MAA3B,CAA1B;AACA;;AAED,QAAKL,0BAA0B,KAAKiB,SAApC,EAAgD;AAC/CD,MAAAA,WAAW,CAAChB,0BAAZ,GAAyCA,0BAAzC;AACA;;AAED,QAAKC,0BAA0B,KAAKgB,SAApC,EAAgD;AAC/CD,MAAAA,WAAW,CAACf,0BAAZ,GAAyCA,0BAAzC;AACA;;AAED,QAAK,CAAE,6BAAgBO,iBAAhB,EAAmCQ,WAAnC,CAAP,EAA0D;AACzDV,MAAAA,uBAAuB,CAAER,QAAF,EAAYkB,WAAZ,CAAvB;AACA;AACD,GAnCD,EAmCG,CACFlB,QADE,EAEFU,iBAFE,EAGFO,cAHE,EAIFf,0BAJE,EAKFC,0BALE,EAMFC,YANE,EAOFO,UAPE,EAQFN,eARE,EASFC,WATE,EAUFE,uBAVE,EAWFD,MAXE,CAnCH;AAgDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\n/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */\n\n/**\n * This hook is a side effect which updates the block-editor store when changes\n * happen to inner block settings. The given props are transformed into a\n * settings object, and if that is different from the current settings object in\n * the block-editor store, then the store is updated with the new settings which\n * came from props.\n *\n * @param {string} clientId The client ID of the block to update.\n * @param {string[]} allowedBlocks An array of block names which are permitted\n * in inner blocks.\n * @param {?WPDirectInsertBlock} __experimentalDefaultBlock The default block to insert: [ blockName, { blockAttributes } ].\n * @param {?Function|boolean} __experimentalDirectInsert If a default block should be inserted directly by the\n * appender.\n * @param {string} [templateLock] The template lock specified for the inner\n * blocks component. (e.g. \"all\")\n * @param {boolean} captureToolbars Whether or children toolbars should be shown\n * in the inner blocks component rather than on\n * the child block.\n * @param {string} orientation The direction in which the block\n * should face.\n * @param {Object} layout The layout object for the block container.\n */\nexport default function useNestedSettingsUpdate(\n\tclientId,\n\tallowedBlocks,\n\t__experimentalDefaultBlock,\n\t__experimentalDirectInsert,\n\ttemplateLock,\n\tcaptureToolbars,\n\torientation,\n\tlayout\n) {\n\tconst { updateBlockListSettings } = useDispatch( blockEditorStore );\n\n\tconst { blockListSettings, parentLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst rootClientId =\n\t\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tblockListSettings:\n\t\t\t\t\tselect( blockEditorStore ).getBlockListSettings( clientId ),\n\t\t\t\tparentLock:\n\t\t\t\t\tselect( blockEditorStore ).getTemplateLock( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Memoize as inner blocks implementors often pass a new array on every\n\t// render.\n\tconst _allowedBlocks = useMemo( () => allowedBlocks, allowedBlocks );\n\n\tuseLayoutEffect( () => {\n\t\tconst newSettings = {\n\t\t\tallowedBlocks: _allowedBlocks,\n\t\t\ttemplateLock:\n\t\t\t\ttemplateLock === undefined || parentLock === 'noContent'\n\t\t\t\t\t? parentLock\n\t\t\t\t\t: templateLock,\n\t\t};\n\n\t\t// These values are not defined for RN, so only include them if they\n\t\t// are defined.\n\t\tif ( captureToolbars !== undefined ) {\n\t\t\tnewSettings.__experimentalCaptureToolbars = captureToolbars;\n\t\t}\n\n\t\t// Orientation depends on layout,\n\t\t// ideally the separate orientation prop should be deprecated.\n\t\tif ( orientation !== undefined ) {\n\t\t\tnewSettings.orientation = orientation;\n\t\t} else {\n\t\t\tconst layoutType = getLayoutType( layout?.type );\n\t\t\tnewSettings.orientation = layoutType.getOrientation( layout );\n\t\t}\n\n\t\tif ( __experimentalDefaultBlock !== undefined ) {\n\t\t\tnewSettings.__experimentalDefaultBlock = __experimentalDefaultBlock;\n\t\t}\n\n\t\tif ( __experimentalDirectInsert !== undefined ) {\n\t\t\tnewSettings.__experimentalDirectInsert = __experimentalDirectInsert;\n\t\t}\n\n\t\tif ( ! isShallowEqual( blockListSettings, newSettings ) ) {\n\t\t\tupdateBlockListSettings( clientId, newSettings );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\tblockListSettings,\n\t\t_allowedBlocks,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\ttemplateLock,\n\t\tparentLock,\n\t\tcaptureToolbars,\n\t\torientation,\n\t\tupdateBlockListSettings,\n\t\tlayout,\n\t] );\n}\n"]}
@@ -192,7 +192,8 @@ class Inserter extends _element.Component {
192
192
  rootClientId: rootClientId,
193
193
  clientId: clientId,
194
194
  isAppender: isAppender,
195
- showInserterHelpPanel: showInserterHelpPanel
195
+ showInserterHelpPanel: showInserterHelpPanel,
196
+ prioritizePatterns: prioritizePatterns
196
197
  });
197
198
  }
198
199
 
@@ -241,8 +242,6 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref4) => {
241
242
  hasInserterItems,
242
243
  __experimentalGetAllowedBlocks,
243
244
  __experimentalGetDirectInsertBlock,
244
- getBlockIndex,
245
- getBlockCount,
246
245
  getSettings
247
246
  } = select(_store.store);
248
247
  const {
@@ -254,8 +253,6 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref4) => {
254
253
 
255
254
  const directInsertBlock = __experimentalGetDirectInsertBlock(rootClientId);
256
255
 
257
- const index = getBlockIndex(clientId);
258
- const blockCount = getBlockCount();
259
256
  const settings = getSettings();
260
257
  const hasSingleBlockType = (allowedBlocks === null || allowedBlocks === void 0 ? void 0 : allowedBlocks.length) === 1 && ((_getBlockVariations = getBlockVariations(allowedBlocks[0].name, 'inserter')) === null || _getBlockVariations === void 0 ? void 0 : _getBlockVariations.length) === 0;
261
258
  let allowedBlockType = false;
@@ -271,7 +268,7 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref4) => {
271
268
  allowedBlockType,
272
269
  directInsertBlock,
273
270
  rootClientId,
274
- prioritizePatterns: settings.__experimentalPreferPatternsOnRoot && !rootClientId && index > 0 && (index < blockCount || blockCount === 0)
271
+ prioritizePatterns: settings.__experimentalPreferPatternsOnRoot && !rootClientId
275
272
  };
276
273
  }), (0, _data.withDispatch)((dispatch, ownProps, _ref5) => {
277
274
  let {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","prioritizePatterns","label","onClick","rest","handleClick","event","plus","Inserter","Component","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","render","position","insertOnlyAllowedBlock","onSelectOrClose","select","getBlockRootClientId","hasInserterItems","__experimentalGetAllowedBlocks","__experimentalGetDirectInsertBlock","getBlockIndex","getBlockCount","getSettings","blockEditorStore","getBlockVariations","blocksStore","undefined","allowedBlocks","index","blockCount","settings","length","name","allowedBlockType","title","__experimentalPreferPatternsOnRoot","dispatch","ownProps","getAdjacentBlockAttributes","attributesToCopy","getBlock","getPreviousBlockClientId","result","adjacentAttributes","parentBlock","innerBlocks","lastInnerBlock","attributes","currentBlock","previousBlock","forEach","attribute","hasOwnProperty","getInsertionIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","newAttributes","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n\tprioritizePatterns,\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else if ( prioritizePatterns ) {\n\t\tlabel = __( 'Add pattern' );\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component.\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\tprioritizePatterns,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tposition={ position }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\thasInserterItems,\n\t\t\t__experimentalGetAllowedBlocks,\n\t\t\t__experimentalGetDirectInsertBlock,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\trootClientId =\n\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\tconst allowedBlocks = __experimentalGetAllowedBlocks( rootClientId );\n\n\t\tconst directInsertBlock =\n\t\t\t__experimentalGetDirectInsertBlock( rootClientId );\n\n\t\tconst index = getBlockIndex( clientId );\n\t\tconst blockCount = getBlockCount();\n\t\tconst settings = getSettings();\n\n\t\tconst hasSingleBlockType =\n\t\t\tallowedBlocks?.length === 1 &&\n\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t\t?.length === 0;\n\n\t\tlet allowedBlockType = false;\n\t\tif ( hasSingleBlockType ) {\n\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t}\n\n\t\treturn {\n\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\thasSingleBlockType,\n\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\tallowedBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\trootClientId,\n\t\t\tprioritizePatterns:\n\t\t\t\tsettings.__experimentalPreferPatternsOnRoot &&\n\t\t\t\t! rootClientId &&\n\t\t\t\tindex > 0 &&\n\t\t\t\t( index < blockCount || blockCount === 0 ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjacentBlockAttributes( attributesToCopy ) {\n\t\t\t\t\tconst { getBlock, getPreviousBlockClientId } =\n\t\t\t\t\t\tselect( blockEditorStore );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! attributesToCopy ||\n\t\t\t\t\t\t( ! clientId && ! rootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = {};\n\t\t\t\t\tlet adjacentAttributes = {};\n\n\t\t\t\t\t// If there is no clientId, then attempt to get attributes\n\t\t\t\t\t// from the last block within innerBlocks of the root block.\n\t\t\t\t\tif ( ! clientId ) {\n\t\t\t\t\t\tconst parentBlock = getBlock( rootClientId );\n\n\t\t\t\t\t\tif ( parentBlock?.innerBlocks?.length ) {\n\t\t\t\t\t\t\tconst lastInnerBlock =\n\t\t\t\t\t\t\t\tparentBlock.innerBlocks[\n\t\t\t\t\t\t\t\t\tparentBlock.innerBlocks.length - 1\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdirectInsertBlock &&\n\t\t\t\t\t\t\t\tdirectInsertBlock?.name === lastInnerBlock.name\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tadjacentAttributes = lastInnerBlock.attributes;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Otherwise, attempt to get attributes from the\n\t\t\t\t\t\t// previous block relative to the current clientId.\n\t\t\t\t\t\tconst currentBlock = getBlock( clientId );\n\t\t\t\t\t\tconst previousBlock = getBlock(\n\t\t\t\t\t\t\tgetPreviousBlockClientId( clientId )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( currentBlock?.name === previousBlock?.name ) {\n\t\t\t\t\t\t\tadjacentAttributes =\n\t\t\t\t\t\t\t\tpreviousBlock?.attributes || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy over only those attributes flagged to be copied.\n\t\t\t\t\tattributesToCopy.forEach( ( attribute ) => {\n\t\t\t\t\t\tif ( adjacentAttributes.hasOwnProperty( attribute ) ) {\n\t\t\t\t\t\t\tresult[ attribute ] =\n\t\t\t\t\t\t\t\tadjacentAttributes[ attribute ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tlet blockToInsert;\n\n\t\t\t\t// Attempt to augment the directInsertBlock with attributes from an adjacent block.\n\t\t\t\t// This ensures styling from nearby blocks is preserved in the newly inserted block.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/37904\n\t\t\t\tif ( directInsertBlock ) {\n\t\t\t\t\tconst newAttributes = getAdjacentBlockAttributes(\n\t\t\t\t\t\tdirectInsertBlock.attributesToCopy\n\t\t\t\t\t);\n\n\t\t\t\t\tblockToInsert = createBlock( directInsertBlock.name, {\n\t\t\t\t\t\t...( directInsertBlock.attributes || {} ),\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tblockToInsert = createBlock( allowedBlockType.name );\n\t\t\t\t}\n\n\t\t\t\tinsertBlock( blockToInsert, getInsertionIndex(), rootClientId );\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose();\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","prioritizePatterns","label","onClick","rest","handleClick","event","plus","Inserter","Component","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","render","position","insertOnlyAllowedBlock","onSelectOrClose","select","getBlockRootClientId","hasInserterItems","__experimentalGetAllowedBlocks","__experimentalGetDirectInsertBlock","getSettings","blockEditorStore","getBlockVariations","blocksStore","undefined","allowedBlocks","settings","length","name","allowedBlockType","title","__experimentalPreferPatternsOnRoot","dispatch","ownProps","getAdjacentBlockAttributes","attributesToCopy","getBlock","getPreviousBlockClientId","result","adjacentAttributes","parentBlock","innerBlocks","lastInnerBlock","attributes","currentBlock","previousBlock","forEach","attribute","hasOwnProperty","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","newAttributes","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n\tprioritizePatterns,\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else if ( prioritizePatterns ) {\n\t\tlabel = __( 'Add pattern' );\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component.\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\tprioritizePatterns,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tposition={ position }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\thasInserterItems,\n\t\t\t__experimentalGetAllowedBlocks,\n\t\t\t__experimentalGetDirectInsertBlock,\n\t\t\tgetSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\trootClientId =\n\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\tconst allowedBlocks = __experimentalGetAllowedBlocks( rootClientId );\n\n\t\tconst directInsertBlock =\n\t\t\t__experimentalGetDirectInsertBlock( rootClientId );\n\n\t\tconst settings = getSettings();\n\n\t\tconst hasSingleBlockType =\n\t\t\tallowedBlocks?.length === 1 &&\n\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t\t?.length === 0;\n\n\t\tlet allowedBlockType = false;\n\t\tif ( hasSingleBlockType ) {\n\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t}\n\n\t\treturn {\n\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\thasSingleBlockType,\n\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\tallowedBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\trootClientId,\n\t\t\tprioritizePatterns:\n\t\t\t\tsettings.__experimentalPreferPatternsOnRoot && ! rootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjacentBlockAttributes( attributesToCopy ) {\n\t\t\t\t\tconst { getBlock, getPreviousBlockClientId } =\n\t\t\t\t\t\tselect( blockEditorStore );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! attributesToCopy ||\n\t\t\t\t\t\t( ! clientId && ! rootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = {};\n\t\t\t\t\tlet adjacentAttributes = {};\n\n\t\t\t\t\t// If there is no clientId, then attempt to get attributes\n\t\t\t\t\t// from the last block within innerBlocks of the root block.\n\t\t\t\t\tif ( ! clientId ) {\n\t\t\t\t\t\tconst parentBlock = getBlock( rootClientId );\n\n\t\t\t\t\t\tif ( parentBlock?.innerBlocks?.length ) {\n\t\t\t\t\t\t\tconst lastInnerBlock =\n\t\t\t\t\t\t\t\tparentBlock.innerBlocks[\n\t\t\t\t\t\t\t\t\tparentBlock.innerBlocks.length - 1\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdirectInsertBlock &&\n\t\t\t\t\t\t\t\tdirectInsertBlock?.name === lastInnerBlock.name\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tadjacentAttributes = lastInnerBlock.attributes;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Otherwise, attempt to get attributes from the\n\t\t\t\t\t\t// previous block relative to the current clientId.\n\t\t\t\t\t\tconst currentBlock = getBlock( clientId );\n\t\t\t\t\t\tconst previousBlock = getBlock(\n\t\t\t\t\t\t\tgetPreviousBlockClientId( clientId )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( currentBlock?.name === previousBlock?.name ) {\n\t\t\t\t\t\t\tadjacentAttributes =\n\t\t\t\t\t\t\t\tpreviousBlock?.attributes || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy over only those attributes flagged to be copied.\n\t\t\t\t\tattributesToCopy.forEach( ( attribute ) => {\n\t\t\t\t\t\tif ( adjacentAttributes.hasOwnProperty( attribute ) ) {\n\t\t\t\t\t\t\tresult[ attribute ] =\n\t\t\t\t\t\t\t\tadjacentAttributes[ attribute ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tlet blockToInsert;\n\n\t\t\t\t// Attempt to augment the directInsertBlock with attributes from an adjacent block.\n\t\t\t\t// This ensures styling from nearby blocks is preserved in the newly inserted block.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/37904\n\t\t\t\tif ( directInsertBlock ) {\n\t\t\t\t\tconst newAttributes = getAdjacentBlockAttributes(\n\t\t\t\t\t\tdirectInsertBlock.attributesToCopy\n\t\t\t\t\t);\n\n\t\t\t\t\tblockToInsert = createBlock( directInsertBlock.name, {\n\t\t\t\t\t\t...( directInsertBlock.attributes || {} ),\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tblockToInsert = createBlock( allowedBlockType.name );\n\t\t\t\t}\n\n\t\t\t\tinsertBlock( blockToInsert, getInsertionIndex(), rootClientId );\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose();\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
@@ -36,11 +36,21 @@ function InserterLibrary(_ref, ref) {
36
36
  onSelect = noop,
37
37
  shouldFocusBlock = false
38
38
  } = _ref;
39
- const destinationRootClientId = (0, _data.useSelect)(select => {
39
+ const {
40
+ destinationRootClientId,
41
+ prioritizePatterns
42
+ } = (0, _data.useSelect)(select => {
40
43
  const {
41
- getBlockRootClientId
44
+ getBlockRootClientId,
45
+ getSettings
42
46
  } = select(_store.store);
43
- return rootClientId || getBlockRootClientId(clientId) || undefined;
47
+
48
+ const _rootClientId = rootClientId || getBlockRootClientId(clientId) || undefined;
49
+
50
+ return {
51
+ destinationRootClientId: _rootClientId,
52
+ prioritizePatterns: getSettings().__experimentalPreferPatternsOnRoot
53
+ };
44
54
  }, [clientId, rootClientId]);
45
55
  return (0, _element.createElement)(_menu.default, {
46
56
  onSelect: onSelect,
@@ -52,6 +62,7 @@ function InserterLibrary(_ref, ref) {
52
62
  __experimentalInsertionIndex: __experimentalInsertionIndex,
53
63
  __experimentalFilterValue: __experimentalFilterValue,
54
64
  shouldFocusBlock: shouldFocusBlock,
65
+ prioritizePatterns: prioritizePatterns,
55
66
  ref: ref
56
67
  });
57
68
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/library.js"],"names":["noop","InserterLibrary","ref","rootClientId","clientId","isAppender","showInserterHelpPanel","showMostUsedBlocks","__experimentalInsertionIndex","__experimentalFilterValue","onSelect","shouldFocusBlock","destinationRootClientId","select","getBlockRootClientId","blockEditorStore","undefined"],"mappings":";;;;;;;;;AAIA;;AADA;;AAMA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIA,MAAMA,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,SAASC,eAAT,OAYCC,GAZD,EAaE;AAAA,MAZD;AACCC,IAAAA,YADD;AAECC,IAAAA,QAFD;AAGCC,IAAAA,UAHD;AAICC,IAAAA,qBAJD;AAKCC,IAAAA,kBAAkB,GAAG,KALtB;AAMCC,IAAAA,4BAND;AAOCC,IAAAA,yBAPD;AAQCC,IAAAA,QAAQ,GAAGV,IARZ;AASCW,IAAAA,gBAAgB,GAAG;AATpB,GAYC;AACD,QAAMC,uBAAuB,GAAG,qBAC7BC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA2BD,MAAM,CAAEE,YAAF,CAAvC;AAEA,WACCZ,YAAY,IAAIW,oBAAoB,CAAEV,QAAF,CAApC,IAAoDY,SADrD;AAGA,GAP8B,EAQ/B,CAAEZ,QAAF,EAAYD,YAAZ,CAR+B,CAAhC;AAWA,SACC,4BAAC,aAAD;AACC,IAAA,QAAQ,EAAGO,QADZ;AAEC,IAAA,YAAY,EAAGE,uBAFhB;AAGC,IAAA,QAAQ,EAAGR,QAHZ;AAIC,IAAA,UAAU,EAAGC,UAJd;AAKC,IAAA,qBAAqB,EAAGC,qBALzB;AAMC,IAAA,kBAAkB,EAAGC,kBANtB;AAOC,IAAA,4BAA4B,EAAGC,4BAPhC;AAQC,IAAA,yBAAyB,EAAGC,yBAR7B;AASC,IAAA,gBAAgB,EAAGE,gBATpB;AAUC,IAAA,GAAG,EAAGT;AAVP,IADD;AAcA;;eAEc,yBAAYD,eAAZ,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nfunction InserterLibrary(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks = false,\n\t\t__experimentalInsertionIndex,\n\t\t__experimentalFilterValue,\n\t\tonSelect = noop,\n\t\tshouldFocusBlock = false,\n\t},\n\tref\n) {\n\tconst destinationRootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn (\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined\n\t\t\t);\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\treturn (\n\t\t<InserterMenu\n\t\t\tonSelect={ onSelect }\n\t\t\trootClientId={ destinationRootClientId }\n\t\t\tclientId={ clientId }\n\t\t\tisAppender={ isAppender }\n\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t__experimentalInsertionIndex={ __experimentalInsertionIndex }\n\t\t\t__experimentalFilterValue={ __experimentalFilterValue }\n\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( InserterLibrary );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/library.js"],"names":["noop","InserterLibrary","ref","rootClientId","clientId","isAppender","showInserterHelpPanel","showMostUsedBlocks","__experimentalInsertionIndex","__experimentalFilterValue","onSelect","shouldFocusBlock","destinationRootClientId","prioritizePatterns","select","getBlockRootClientId","getSettings","blockEditorStore","_rootClientId","undefined","__experimentalPreferPatternsOnRoot"],"mappings":";;;;;;;;;AAIA;;AADA;;AAMA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIA,MAAMA,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,SAASC,eAAT,OAYCC,GAZD,EAaE;AAAA,MAZD;AACCC,IAAAA,YADD;AAECC,IAAAA,QAFD;AAGCC,IAAAA,UAHD;AAICC,IAAAA,qBAJD;AAKCC,IAAAA,kBAAkB,GAAG,KALtB;AAMCC,IAAAA,4BAND;AAOCC,IAAAA,yBAPD;AAQCC,IAAAA,QAAQ,GAAGV,IARZ;AASCW,IAAAA,gBAAgB,GAAG;AATpB,GAYC;AACD,QAAM;AAAEC,IAAAA,uBAAF;AAA2BC,IAAAA;AAA3B,MAAkD,qBACrDC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,oBAAF;AAAwBC,MAAAA;AAAxB,QACLF,MAAM,CAAEG,YAAF,CADP;;AAGA,UAAMC,aAAa,GAClBf,YAAY,IAAIY,oBAAoB,CAAEX,QAAF,CAApC,IAAoDe,SADrD;;AAEA,WAAO;AACNP,MAAAA,uBAAuB,EAAEM,aADnB;AAENL,MAAAA,kBAAkB,EACjBG,WAAW,GAAGI;AAHT,KAAP;AAKA,GAZsD,EAavD,CAAEhB,QAAF,EAAYD,YAAZ,CAbuD,CAAxD;AAgBA,SACC,4BAAC,aAAD;AACC,IAAA,QAAQ,EAAGO,QADZ;AAEC,IAAA,YAAY,EAAGE,uBAFhB;AAGC,IAAA,QAAQ,EAAGR,QAHZ;AAIC,IAAA,UAAU,EAAGC,UAJd;AAKC,IAAA,qBAAqB,EAAGC,qBALzB;AAMC,IAAA,kBAAkB,EAAGC,kBANtB;AAOC,IAAA,4BAA4B,EAAGC,4BAPhC;AAQC,IAAA,yBAAyB,EAAGC,yBAR7B;AASC,IAAA,gBAAgB,EAAGE,gBATpB;AAUC,IAAA,kBAAkB,EAAGE,kBAVtB;AAWC,IAAA,GAAG,EAAGX;AAXP,IADD;AAeA;;eAEc,yBAAYD,eAAZ,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nfunction InserterLibrary(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks = false,\n\t\t__experimentalInsertionIndex,\n\t\t__experimentalFilterValue,\n\t\tonSelect = noop,\n\t\tshouldFocusBlock = false,\n\t},\n\tref\n) {\n\tconst { destinationRootClientId, prioritizePatterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst _rootClientId =\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\t\t\treturn {\n\t\t\t\tdestinationRootClientId: _rootClientId,\n\t\t\t\tprioritizePatterns:\n\t\t\t\t\tgetSettings().__experimentalPreferPatternsOnRoot,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\treturn (\n\t\t<InserterMenu\n\t\t\tonSelect={ onSelect }\n\t\t\trootClientId={ destinationRootClientId }\n\t\t\tclientId={ clientId }\n\t\t\tisAppender={ isAppender }\n\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t__experimentalInsertionIndex={ __experimentalInsertionIndex }\n\t\t\t__experimentalFilterValue={ __experimentalFilterValue }\n\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( InserterLibrary );\n"]}
@@ -9,6 +9,8 @@ exports.default = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
12
14
  var _components = require("@wordpress/components");
13
15
 
14
16
  var _i18n = require("@wordpress/i18n");
@@ -33,6 +35,10 @@ var _tabs = _interopRequireDefault(require("./tabs"));
33
35
 
34
36
  var _store = require("../../store");
35
37
 
38
+ /**
39
+ * External dependencies
40
+ */
41
+
36
42
  /**
37
43
  * WordPress dependencies
38
44
  */
@@ -50,7 +56,8 @@ function InserterMenu(_ref, ref) {
50
56
  showInserterHelpPanel,
51
57
  showMostUsedBlocks,
52
58
  __experimentalFilterValue = '',
53
- shouldFocusBlock = true
59
+ shouldFocusBlock = true,
60
+ prioritizePatterns
54
61
  } = _ref;
55
62
  const [filterValue, setFilterValue] = (0, _element.useState)(__experimentalFilterValue);
56
63
  const [hoveredItem, setHoveredItem] = (0, _element.useState)(null);
@@ -132,12 +139,13 @@ function InserterMenu(_ref, ref) {
132
139
  searchRef.current.focus();
133
140
  }
134
141
  }));
142
+ const showAsTabs = !filterValue && (showPatterns || hasReusableBlocks);
135
143
  return (0, _element.createElement)("div", {
136
144
  className: "block-editor-inserter__menu"
137
145
  }, (0, _element.createElement)("div", {
138
- className: "block-editor-inserter__main-area"
139
- }, (0, _element.createElement)("div", {
140
- className: "block-editor-inserter__content"
146
+ className: (0, _classnames.default)('block-editor-inserter__main-area', {
147
+ 'show-as-tabs': showAsTabs
148
+ })
141
149
  }, (0, _element.createElement)(_components.SearchControl, {
142
150
  className: "block-editor-inserter__search",
143
151
  onChange: value => {
@@ -148,7 +156,9 @@ function InserterMenu(_ref, ref) {
148
156
  label: (0, _i18n.__)('Search for blocks and patterns'),
149
157
  placeholder: (0, _i18n.__)('Search'),
150
158
  ref: searchRef
151
- }), !!filterValue && (0, _element.createElement)(_searchResults.default, {
159
+ }), !!filterValue && (0, _element.createElement)("div", {
160
+ className: "block-editor-inserter__no-tab-container"
161
+ }, (0, _element.createElement)(_searchResults.default, {
152
162
  filterValue: filterValue,
153
163
  onSelect: onSelect,
154
164
  onHover: onHover,
@@ -158,10 +168,13 @@ function InserterMenu(_ref, ref) {
158
168
  __experimentalInsertionIndex: __experimentalInsertionIndex,
159
169
  showBlockDirectory: true,
160
170
  shouldFocusBlock: shouldFocusBlock
161
- }), !filterValue && (showPatterns || hasReusableBlocks) && (0, _element.createElement)(_tabs.default, {
171
+ })), showAsTabs && (0, _element.createElement)(_tabs.default, {
162
172
  showPatterns: showPatterns,
163
- showReusableBlocks: hasReusableBlocks
164
- }, getCurrentTab), !filterValue && !showPatterns && !hasReusableBlocks && blocksTab)), showInserterHelpPanel && hoveredItem && (0, _element.createElement)(_previewPanel.default, {
173
+ showReusableBlocks: hasReusableBlocks,
174
+ prioritizePatterns: prioritizePatterns
175
+ }, getCurrentTab), !filterValue && !showAsTabs && (0, _element.createElement)("div", {
176
+ className: "block-editor-inserter__no-tab-container"
177
+ }, blocksTab)), showInserterHelpPanel && hoveredItem && (0, _element.createElement)(_previewPanel.default, {
165
178
  item: hoveredItem
166
179
  }));
167
180
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"names":["InserterMenu","ref","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","filterValue","setFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","hasReusableBlocks","select","__experimentalGetAllowedPatterns","getSettings","blockEditorStore","length","__experimentalReusableBlocks","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","blocksTab","patternsTab","reusableBlocksTab","getCurrentTab","tab","name","searchRef","focusSearch","current","focus","value"],"mappings":"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","sourcesContent":["/**\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 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},\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\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\tonClickCategory={ 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\treturn (\n\t\t<div className=\"block-editor-inserter__menu\">\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t{ /* The following div is necessary to fix the sticky position of the search form. */ }\n\t\t\t\t<div className=\"block-editor-inserter__content\">\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tif ( hoveredItem ) setHoveredItem( null );\n\t\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\t\tref={ searchRef }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! filterValue && (\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) }\n\t\t\t\t\t{ ! filterValue && ( showPatterns || hasReusableBlocks ) && (\n\t\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\t\tshowPatterns={ showPatterns }\n\t\t\t\t\t\t\tshowReusableBlocks={ hasReusableBlocks }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getCurrentTab }\n\t\t\t\t\t\t</InserterTabs>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! filterValue &&\n\t\t\t\t\t\t! showPatterns &&\n\t\t\t\t\t\t! hasReusableBlocks &&\n\t\t\t\t\t\tblocksTab }\n\t\t\t\t</div>\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</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"names":["InserterMenu","ref","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","prioritizePatterns","filterValue","setFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","hasReusableBlocks","select","__experimentalGetAllowedPatterns","getSettings","blockEditorStore","length","__experimentalReusableBlocks","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","blocksTab","patternsTab","reusableBlocksTab","getCurrentTab","tab","name","searchRef","focusSearch","current","focus","showAsTabs","value"],"mappings":";;;;;;;;;AAQA;;AALA;;AAaA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AA/BA;AACA;AACA;;AAGA;AACA;AACA;;AAaA;AACA;AACA;AAWA,SAASA,YAAT,OAaCC,GAbD,EAcE;AAAA,MAbD;AACCC,IAAAA,YADD;AAECC,IAAAA,QAFD;AAGCC,IAAAA,UAHD;AAICC,IAAAA,4BAJD;AAKCC,IAAAA,QALD;AAMCC,IAAAA,qBAND;AAOCC,IAAAA,kBAPD;AAQCC,IAAAA,yBAAyB,GAAG,EAR7B;AASCC,IAAAA,gBAAgB,GAAG,IATpB;AAUCC,IAAAA;AAVD,GAaC;AACD,QAAM,CAAEC,WAAF,EAAeC,cAAf,IAAkC,uBACvCJ,yBADuC,CAAxC;AAGA,QAAM,CAAEK,WAAF,EAAeC,cAAf,IAAkC,uBAAU,IAAV,CAAxC;AACA,QAAM,CAAEC,uBAAF,EAA2BC,0BAA3B,IACL,uBAAU,IAAV,CADD;AAGA,QAAM,CAAEC,uBAAF,EAA2BC,cAA3B,EAA2CC,sBAA3C,IACL,gCAAmB;AAClBlB,IAAAA,YADkB;AAElBC,IAAAA,QAFkB;AAGlBC,IAAAA,UAHkB;AAIlBiB,IAAAA,cAAc,EAAEhB,4BAJE;AAKlBK,IAAAA;AALkB,GAAnB,CADD;AAQA,QAAM;AAAEY,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAsC,qBACzCC,MAAF,IAAc;AAAA;;AACb,UAAM;AAAEC,MAAAA,gCAAF;AAAoCC,MAAAA;AAApC,QACLF,MAAM,CAAEG,YAAF,CADP;AAGA,WAAO;AACNL,MAAAA,YAAY,EAAE,CAAC,CAAEG,gCAAgC,CAChDP,uBADgD,CAAhC,CAEfU,MAHI;AAINL,MAAAA,iBAAiB,EAChB,CAAC,2BAAEG,WAAW,GAAGG,4BAAhB,kDAAE,sBAA4CD,MAA9C;AALI,KAAP;AAOA,GAZ0C,EAa3C,CAAEV,uBAAF,CAb2C,CAA5C;AAgBA,QAAMY,QAAQ,GAAG,0BAChB,CAAEC,MAAF,EAAUC,IAAV,EAAgBC,qBAAhB,KAA2C;AAC1Cd,IAAAA,cAAc,CAAEY,MAAF,EAAUC,IAAV,EAAgBC,qBAAhB,CAAd;AACA3B,IAAAA,QAAQ;AACR,GAJe,EAKhB,CAAEa,cAAF,EAAkBb,QAAlB,CALgB,CAAjB;AAQA,QAAM4B,eAAe,GAAG,0BACvB,CAAEH,MAAF,EAAUI,WAAV,KAA2B;AAC1BhB,IAAAA,cAAc,CAAEY,MAAF,EAAU;AAAEI,MAAAA;AAAF,KAAV,CAAd;AACA7B,IAAAA,QAAQ;AACR,GAJsB,EAKvB,CAAEa,cAAF,EAAkBb,QAAlB,CALuB,CAAxB;AAQA,QAAM8B,OAAO,GAAG,0BACbC,IAAF,IAAY;AACXjB,IAAAA,sBAAsB,CAAE,CAAC,CAAEiB,IAAL,CAAtB;AACAtB,IAAAA,cAAc,CAAEsB,IAAF,CAAd;AACA,GAJc,EAKf,CAAEjB,sBAAF,EAA0BL,cAA1B,CALe,CAAhB;AAQA,QAAMuB,sBAAsB,GAAG,0BAC5BC,eAAF,IAAuB;AACtBtB,IAAAA,0BAA0B,CAAEsB,eAAF,CAA1B;AACA,GAH6B,EAI9B,CAAEtB,0BAAF,CAJ8B,CAA/B;AAOA,QAAMuB,SAAS,GAAG,sBACjB,MACC,qDACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,sBAAD;AACC,IAAA,YAAY,EAAGtB,uBADhB;AAEC,IAAA,QAAQ,EAAGY,QAFZ;AAGC,IAAA,OAAO,EAAGM,OAHX;AAIC,IAAA,kBAAkB,EAAG5B;AAJtB,IADD,CADD,EASGD,qBAAqB,IACtB;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,0BAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KACG,cAAI,kCAAJ,CADH,CADD,EAIC,4BAAC,aAAD,OAJD,CAVF,CAFgB,EAqBjB,CACCW,uBADD,EAECY,QAFD,EAGCM,OAHD,EAICxB,WAJD,EAKCJ,kBALD,EAMCD,qBAND,CArBiB,CAAlB;AA+BA,QAAMkC,WAAW,GAAG,sBACnB,MACC,4BAAC,yBAAD;AACC,IAAA,YAAY,EAAGvB,uBADhB;AAEC,IAAA,QAAQ,EAAGgB,eAFZ;AAGC,IAAA,eAAe,EAAGI,sBAHnB;AAIC,IAAA,gBAAgB,EAAGtB;AAJpB,IAFkB,EASnB,CACCE,uBADD,EAECgB,eAFD,EAGCI,sBAHD,EAICtB,uBAJD,CATmB,CAApB;AAiBA,QAAM0B,iBAAiB,GAAG,sBACzB,MACC,4BAAC,0BAAD;AACC,IAAA,YAAY,EAAGxB,uBADhB;AAEC,IAAA,QAAQ,EAAGY,QAFZ;AAGC,IAAA,OAAO,EAAGM;AAHX,IAFwB,EAQzB,CAAElB,uBAAF,EAA2BY,QAA3B,EAAqCM,OAArC,CARyB,CAA1B;AAWA,QAAMO,aAAa,GAAG,0BACnBC,GAAF,IAAW;AACV,QAAKA,GAAG,CAACC,IAAJ,KAAa,QAAlB,EAA6B;AAC5B,aAAOL,SAAP;AACA,KAFD,MAEO,IAAKI,GAAG,CAACC,IAAJ,KAAa,UAAlB,EAA+B;AACrC,aAAOJ,WAAP;AACA;;AACD,WAAOC,iBAAP;AACA,GARoB,EASrB,CAAEF,SAAF,EAAaC,WAAb,EAA0BC,iBAA1B,CATqB,CAAtB;AAYA,QAAMI,SAAS,GAAG,sBAAlB;AACA,oCAAqB7C,GAArB,EAA0B,OAAQ;AACjC8C,IAAAA,WAAW,EAAE,MAAM;AAClBD,MAAAA,SAAS,CAACE,OAAV,CAAkBC,KAAlB;AACA;AAHgC,GAAR,CAA1B;AAMA,QAAMC,UAAU,GAAG,CAAEtC,WAAF,KAAmBU,YAAY,IAAIC,iBAAnC,CAAnB;AAEA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AACC,IAAA,SAAS,EAAG,yBAAY,kCAAZ,EAAgD;AAC3D,sBAAgB2B;AAD2C,KAAhD;AADb,KAKC,4BAAC,yBAAD;AACC,IAAA,SAAS,EAAC,+BADX;AAEC,IAAA,QAAQ,EAAKC,KAAF,IAAa;AACvB,UAAKrC,WAAL,EAAmBC,cAAc,CAAE,IAAF,CAAd;AACnBF,MAAAA,cAAc,CAAEsC,KAAF,CAAd;AACA,KALF;AAMC,IAAA,KAAK,EAAGvC,WANT;AAOC,IAAA,KAAK,EAAG,cAAI,gCAAJ,CAPT;AAQC,IAAA,WAAW,EAAG,cAAI,QAAJ,CARf;AASC,IAAA,GAAG,EAAGkC;AATP,IALD,EAgBG,CAAC,CAAElC,WAAH,IACD;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,sBAAD;AACC,IAAA,WAAW,EAAGA,WADf;AAEC,IAAA,QAAQ,EAAGN,QAFZ;AAGC,IAAA,OAAO,EAAG8B,OAHX;AAIC,IAAA,YAAY,EAAGlC,YAJhB;AAKC,IAAA,QAAQ,EAAGC,QALZ;AAMC,IAAA,UAAU,EAAGC,UANd;AAOC,IAAA,4BAA4B,EAC3BC,4BARF;AAUC,IAAA,kBAAkB,MAVnB;AAWC,IAAA,gBAAgB,EAAGK;AAXpB,IADD,CAjBF,EAiCGwC,UAAU,IACX,4BAAC,aAAD;AACC,IAAA,YAAY,EAAG5B,YADhB;AAEC,IAAA,kBAAkB,EAAGC,iBAFtB;AAGC,IAAA,kBAAkB,EAAGZ;AAHtB,KAKGgC,aALH,CAlCF,EA0CG,CAAE/B,WAAF,IAAiB,CAAEsC,UAAnB,IACD;AAAK,IAAA,SAAS,EAAC;AAAf,KACGV,SADH,CA3CF,CADD,EAiDGjC,qBAAqB,IAAIO,WAAzB,IACD,4BAAC,qBAAD;AAAsB,IAAA,IAAI,EAAGA;AAA7B,IAlDF,CADD;AAuDA;;eAEc,yBAAYd,YAAZ,C","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 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\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\tonClickCategory={ 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 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>\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</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"]}
@@ -48,7 +48,7 @@ function InserterPreviewPanel(_ref) {
48
48
  }, (0, _element.createElement)(_blockPreview.default, {
49
49
  __experimentalPadding: 16,
50
50
  viewportWidth: (_example$viewportWidt = example === null || example === void 0 ? void 0 : example.viewportWidth) !== null && _example$viewportWidt !== void 0 ? _example$viewportWidt : 500,
51
- blocks: example ? (0, _blocks.getBlockFromExample)(item.name, {
51
+ blocks: example ? (0, _blocks.getBlockFromExample)(name, {
52
52
  attributes: { ...example.attributes,
53
53
  ...initialAttributes
54
54
  },