@wordpress/block-editor 14.3.6 → 14.5.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 (953) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +6 -2
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/autocompleters/link.js +2 -1
  5. package/build/autocompleters/link.js.map +1 -1
  6. package/build/components/background-image-control/index.js +1 -1
  7. package/build/components/background-image-control/index.js.map +1 -1
  8. package/build/components/block-actions/index.js +1 -13
  9. package/build/components/block-actions/index.js.map +1 -1
  10. package/build/components/block-controls/slot.js.map +1 -1
  11. package/build/components/block-controls/slot.native.js.map +1 -1
  12. package/build/components/block-draggable/draggable-chip.js +1 -1
  13. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  14. package/build/components/block-inspector/index.js +56 -75
  15. package/build/components/block-inspector/index.js.map +1 -1
  16. package/build/components/block-list/block-invalid-warning.native.js +1 -1
  17. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  18. package/build/components/block-list/block-list-item.native.js.map +1 -1
  19. package/build/components/block-list/block.js +5 -16
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/index.js +6 -8
  22. package/build/components/block-list/index.js.map +1 -1
  23. package/build/components/block-list/index.native.js.map +1 -1
  24. package/build/components/block-list/use-block-props/index.js +3 -8
  25. package/build/components/block-list/use-block-props/index.js.map +1 -1
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +14 -6
  27. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  28. package/build/components/block-list/use-in-between-inserter.js +5 -3
  29. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  30. package/build/components/block-list/zoom-out-separator.js +24 -13
  31. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  32. package/build/components/block-lock/modal.js +1 -1
  33. package/build/components/block-lock/modal.js.map +1 -1
  34. package/build/components/block-mover/button.js.map +1 -1
  35. package/build/components/block-navigation/dropdown.js +2 -4
  36. package/build/components/block-navigation/dropdown.js.map +1 -1
  37. package/build/components/block-parent-selector/index.js +14 -11
  38. package/build/components/block-parent-selector/index.js.map +1 -1
  39. package/build/components/block-pattern-setup/index.js.map +1 -1
  40. package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
  41. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  42. package/build/components/block-patterns-list/index.js.map +1 -1
  43. package/build/components/block-patterns-paging/index.js +11 -13
  44. package/build/components/block-patterns-paging/index.js.map +1 -1
  45. package/build/components/block-popover/index.js +45 -2
  46. package/build/components/block-popover/index.js.map +1 -1
  47. package/build/components/block-preview/auto.js +1 -4
  48. package/build/components/block-preview/auto.js.map +1 -1
  49. package/build/components/block-preview/index.js.map +1 -1
  50. package/build/components/block-quick-navigation/index.js +2 -4
  51. package/build/components/block-quick-navigation/index.js.map +1 -1
  52. package/build/components/block-rename/modal.js +2 -2
  53. package/build/components/block-rename/modal.js.map +1 -1
  54. package/build/components/block-settings-menu/block-parent-selector-menu-item.js +1 -1
  55. package/build/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
  56. package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
  57. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  58. package/build/components/block-settings-menu-controls/index.js +1 -6
  59. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  60. package/build/components/block-switcher/block-transformations-menu.native.js +1 -1
  61. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  62. package/build/components/block-switcher/index.js +19 -15
  63. package/build/components/block-switcher/index.js.map +1 -1
  64. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  65. package/build/components/block-switcher/use-transformed-patterns.js +1 -0
  66. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  67. package/build/components/block-switcher/utils.js +1 -0
  68. package/build/components/block-switcher/utils.js.map +1 -1
  69. package/build/components/block-toolbar/index.js +16 -19
  70. package/build/components/block-toolbar/index.js.map +1 -1
  71. package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
  72. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  73. package/build/components/block-tools/index.js +8 -18
  74. package/build/components/block-tools/index.js.map +1 -1
  75. package/build/components/block-tools/insertion-point.js +1 -4
  76. package/build/components/block-tools/insertion-point.js.map +1 -1
  77. package/build/components/block-tools/use-show-block-tools.js +8 -7
  78. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  79. package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  80. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  81. package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
  82. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  83. package/build/components/block-tools/zoom-out-popover.js +3 -2
  84. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  85. package/build/components/block-tools/zoom-out-toolbar.js +5 -32
  86. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  87. package/build/components/block-types-list/index.js.map +1 -1
  88. package/build/components/block-types-list/index.native.js.map +1 -1
  89. package/build/components/block-variation-transforms/index.js +3 -2
  90. package/build/components/block-variation-transforms/index.js.map +1 -1
  91. package/build/components/border-radius-control/index.js.map +1 -1
  92. package/build/components/border-radius-control/utils.js.map +1 -1
  93. package/build/components/button-block-appender/index.js.map +1 -1
  94. package/build/components/color-style-selector/index.js.map +1 -1
  95. package/build/components/colors/utils.js.map +1 -1
  96. package/build/components/colors/with-colors.js.map +1 -1
  97. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  98. package/build/components/date-format-picker/index.js +1 -0
  99. package/build/components/date-format-picker/index.js.map +1 -1
  100. package/build/components/duotone/utils.js.map +1 -1
  101. package/build/components/duotone-control/index.js.map +1 -1
  102. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  103. package/build/components/font-sizes/utils.js.map +1 -1
  104. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  105. package/build/components/global-styles/border-panel.js +1 -1
  106. package/build/components/global-styles/border-panel.js.map +1 -1
  107. package/build/components/global-styles/color-panel.js +1 -1
  108. package/build/components/global-styles/color-panel.js.map +1 -1
  109. package/build/components/global-styles/dimensions-panel.js +3 -3
  110. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  111. package/build/components/global-styles/filters-panel.js.map +1 -1
  112. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  113. package/build/components/global-styles/get-global-styles-changes.js +2 -1
  114. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  115. package/build/components/global-styles/hooks.js.map +1 -1
  116. package/build/components/global-styles/typography-panel.js.map +1 -1
  117. package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
  118. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  119. package/build/components/global-styles/utils.js.map +1 -1
  120. package/build/components/gradients/use-gradient.js.map +1 -1
  121. package/build/components/grid/grid-item-movers.js.map +1 -1
  122. package/build/components/grid/grid-visualizer.js.map +1 -1
  123. package/build/components/iframe/index.js +44 -9
  124. package/build/components/iframe/index.js.map +1 -1
  125. package/build/components/image-editor/use-save-image.js +1 -1
  126. package/build/components/image-editor/use-save-image.js.map +1 -1
  127. package/build/components/inner-blocks/index.js +1 -9
  128. package/build/components/inner-blocks/index.js.map +1 -1
  129. package/build/components/inner-blocks/use-nested-settings-update.js +15 -8
  130. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  131. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -1
  132. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  133. package/build/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  134. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  135. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  136. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  137. package/build/components/inserter/block-types-tab.js +1 -1
  138. package/build/components/inserter/block-types-tab.js.map +1 -1
  139. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  140. package/build/components/inserter/category-tabs/index.js +1 -10
  141. package/build/components/inserter/category-tabs/index.js.map +1 -1
  142. package/build/components/inserter/hooks/use-block-types-state.js +24 -5
  143. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  144. package/build/components/inserter/hooks/use-insertion-point.js +22 -12
  145. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  146. package/build/components/inserter/hooks/use-patterns-state.js +24 -11
  147. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  148. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  149. package/build/components/inserter/media-tab/media-preview.js +36 -14
  150. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  151. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  152. package/build/components/inserter/media-tab/utils.js.map +1 -1
  153. package/build/components/inserter/menu.js +4 -4
  154. package/build/components/inserter/menu.js.map +1 -1
  155. package/build/components/inserter/mobile-tab-navigation.js +5 -5
  156. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  157. package/build/components/inserter/preview-panel.js.map +1 -1
  158. package/build/components/inserter/quick-inserter.js +5 -5
  159. package/build/components/inserter/quick-inserter.js.map +1 -1
  160. package/build/components/inserter/search-results.js +1 -1
  161. package/build/components/inserter/search-results.js.map +1 -1
  162. package/build/components/inserter/tabs.native.js.map +1 -1
  163. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  164. package/build/components/inspector-controls/fill.js.map +1 -1
  165. package/build/components/inspector-controls/fill.native.js.map +1 -1
  166. package/build/components/inspector-controls/slot.js.map +1 -1
  167. package/build/components/inspector-controls/slot.native.js.map +1 -1
  168. package/build/components/line-height-control/index.js.map +1 -1
  169. package/build/components/link-control/index.js +1 -2
  170. package/build/components/link-control/index.js.map +1 -1
  171. package/build/components/link-control/is-url-like.js.map +1 -1
  172. package/build/components/link-control/search-create-button.js +1 -1
  173. package/build/components/link-control/search-create-button.js.map +1 -1
  174. package/build/components/link-control/search-input.js +3 -5
  175. package/build/components/link-control/search-input.js.map +1 -1
  176. package/build/components/link-control/search-results.js +5 -15
  177. package/build/components/link-control/search-results.js.map +1 -1
  178. package/build/components/link-control/settings-drawer.js.map +1 -1
  179. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  180. package/build/components/list-view/appender.js +1 -1
  181. package/build/components/list-view/appender.js.map +1 -1
  182. package/build/components/list-view/block-contents.js +1 -25
  183. package/build/components/list-view/block-contents.js.map +1 -1
  184. package/build/components/list-view/block-select-button.js.map +1 -1
  185. package/build/components/list-view/block.js.map +1 -1
  186. package/build/components/list-view/branch.js.map +1 -1
  187. package/build/components/list-view/drop-indicator.js.map +1 -1
  188. package/build/components/list-view/index.js.map +1 -1
  189. package/build/components/list-view/use-block-selection.js +2 -2
  190. package/build/components/list-view/use-block-selection.js.map +1 -1
  191. package/build/components/list-view/utils.js +1 -1
  192. package/build/components/list-view/utils.js.map +1 -1
  193. package/build/components/media-placeholder/index.native.js +1 -1
  194. package/build/components/media-placeholder/index.native.js.map +1 -1
  195. package/build/components/media-replace-flow/index.js.map +1 -1
  196. package/build/components/multi-selection-inspector/index.js +2 -2
  197. package/build/components/multi-selection-inspector/index.js.map +1 -1
  198. package/build/components/observe-typing/index.js +1 -0
  199. package/build/components/observe-typing/index.js.map +1 -1
  200. package/build/components/recursion-provider/index.js +1 -0
  201. package/build/components/recursion-provider/index.js.map +1 -1
  202. package/build/components/responsive-block-control/index.js +3 -3
  203. package/build/components/responsive-block-control/index.js.map +1 -1
  204. package/build/components/responsive-block-control/label.js +1 -1
  205. package/build/components/responsive-block-control/label.js.map +1 -1
  206. package/build/components/rich-text/content.js.map +1 -1
  207. package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
  208. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  209. package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
  210. package/build/components/rich-text/index.js +3 -2
  211. package/build/components/rich-text/index.js.map +1 -1
  212. package/build/components/rich-text/multiline.js.map +1 -1
  213. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  214. package/build/components/rich-text/native/index.native.js.map +1 -1
  215. package/build/components/rich-text/native/use-format-types.js +1 -0
  216. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  217. package/build/components/rich-text/toolbar-button.js.map +1 -1
  218. package/build/components/rich-text/use-format-types.js +1 -0
  219. package/build/components/rich-text/use-format-types.js.map +1 -1
  220. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  221. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  222. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  223. package/build/components/spacing-sizes-control/utils.js +1 -0
  224. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  225. package/build/components/tool-selector/index.js +13 -8
  226. package/build/components/tool-selector/index.js.map +1 -1
  227. package/build/components/typewriter/index.js +1 -0
  228. package/build/components/typewriter/index.js.map +1 -1
  229. package/build/components/unsupported-block-details/index.native.js.map +1 -1
  230. package/build/components/url-input/index.js +1 -1
  231. package/build/components/url-input/index.js.map +1 -1
  232. package/build/components/use-block-commands/index.js +0 -61
  233. package/build/components/use-block-commands/index.js.map +1 -1
  234. package/build/components/use-block-drop-zone/index.js.map +1 -1
  235. package/build/components/use-flash-editable-blocks/index.js.map +1 -1
  236. package/build/components/use-moving-animation/index.js.map +1 -1
  237. package/build/components/writing-flow/use-tab-nav.js +23 -30
  238. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  239. package/build/hooks/align.js.map +1 -1
  240. package/build/hooks/block-hooks.js +1 -1
  241. package/build/hooks/block-hooks.js.map +1 -1
  242. package/build/hooks/block-style-variation.js.map +1 -1
  243. package/build/hooks/duotone.js +4 -1
  244. package/build/hooks/duotone.js.map +1 -1
  245. package/build/hooks/font-family.js.map +1 -1
  246. package/build/hooks/gap.js.map +1 -1
  247. package/build/hooks/generated-class-name.js +1 -0
  248. package/build/hooks/generated-class-name.js.map +1 -1
  249. package/build/hooks/layout-child.js +3 -1
  250. package/build/hooks/layout-child.js.map +1 -1
  251. package/build/hooks/layout.js.map +1 -1
  252. package/build/hooks/position.js +4 -3
  253. package/build/hooks/position.js.map +1 -1
  254. package/build/hooks/spacing-visualizer.js.map +1 -1
  255. package/build/hooks/style.js.map +1 -1
  256. package/build/hooks/text-align.js.map +1 -1
  257. package/build/hooks/use-typography-props.js.map +1 -1
  258. package/build/hooks/use-zoom-out.js +24 -16
  259. package/build/hooks/use-zoom-out.js.map +1 -1
  260. package/build/layouts/constrained.js.map +1 -1
  261. package/build/layouts/flex.js.map +1 -1
  262. package/build/layouts/grid.js.map +1 -1
  263. package/build/layouts/utils.js.map +1 -1
  264. package/build/store/actions.js +18 -20
  265. package/build/store/actions.js.map +1 -1
  266. package/build/store/private-actions.js +15 -0
  267. package/build/store/private-actions.js.map +1 -1
  268. package/build/store/private-selectors.js +104 -7
  269. package/build/store/private-selectors.js.map +1 -1
  270. package/build/store/reducer.js +24 -44
  271. package/build/store/reducer.js.map +1 -1
  272. package/build/store/selectors.js +149 -71
  273. package/build/store/selectors.js.map +1 -1
  274. package/build/store/utils.js +4 -3
  275. package/build/store/utils.js.map +1 -1
  276. package/build/utils/block-bindings.js +2 -0
  277. package/build/utils/block-bindings.js.map +1 -1
  278. package/build/utils/get-font-styles-and-weights.js +1 -1
  279. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  280. package/build/utils/object.js +1 -0
  281. package/build/utils/object.js.map +1 -1
  282. package/build/utils/pasting.js.map +1 -1
  283. package/build-module/autocompleters/block.js +1 -3
  284. package/build-module/autocompleters/block.js.map +1 -1
  285. package/build-module/autocompleters/link.js +3 -4
  286. package/build-module/autocompleters/link.js.map +1 -1
  287. package/build-module/components/audio-player/index.native.js +1 -2
  288. package/build-module/components/audio-player/index.native.js.map +1 -1
  289. package/build-module/components/background-image-control/index.js +2 -3
  290. package/build-module/components/background-image-control/index.js.map +1 -1
  291. package/build-module/components/block-actions/index.js +1 -13
  292. package/build-module/components/block-actions/index.js.map +1 -1
  293. package/build-module/components/block-alignment-control/ui.js +1 -2
  294. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  295. package/build-module/components/block-breadcrumb/index.js +1 -2
  296. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  297. package/build-module/components/block-canvas/index.js +1 -2
  298. package/build-module/components/block-canvas/index.js.map +1 -1
  299. package/build-module/components/block-card/index.js +1 -2
  300. package/build-module/components/block-card/index.js.map +1 -1
  301. package/build-module/components/block-compare/block-view.js +1 -2
  302. package/build-module/components/block-compare/block-view.js.map +1 -1
  303. package/build-module/components/block-compare/index.js +1 -2
  304. package/build-module/components/block-compare/index.js.map +1 -1
  305. package/build-module/components/block-controls/fill.js +1 -3
  306. package/build-module/components/block-controls/fill.js.map +1 -1
  307. package/build-module/components/block-controls/slot.js.map +1 -1
  308. package/build-module/components/block-controls/slot.native.js.map +1 -1
  309. package/build-module/components/block-draggable/draggable-chip.js +2 -3
  310. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  311. package/build-module/components/block-draggable/draggable-chip.native.js +1 -2
  312. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
  313. package/build-module/components/block-draggable/index.native.js +1 -3
  314. package/build-module/components/block-draggable/index.native.js.map +1 -1
  315. package/build-module/components/block-edit/index.js +1 -2
  316. package/build-module/components/block-edit/index.js.map +1 -1
  317. package/build-module/components/block-edit/multiple-usage-warning.js +1 -2
  318. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  319. package/build-module/components/block-inspector/index.js +57 -78
  320. package/build-module/components/block-inspector/index.js.map +1 -1
  321. package/build-module/components/block-list/block-crash-warning.js +1 -1
  322. package/build-module/components/block-list/block-crash-warning.js.map +1 -1
  323. package/build-module/components/block-list/block-crash-warning.native.js +1 -1
  324. package/build-module/components/block-list/block-crash-warning.native.js.map +1 -1
  325. package/build-module/components/block-list/block-invalid-warning.js +1 -3
  326. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  327. package/build-module/components/block-list/block-invalid-warning.native.js +1 -1
  328. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  329. package/build-module/components/block-list/block-list-item.native.js +1 -2
  330. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  331. package/build-module/components/block-list/block-selection-button.native.js +1 -2
  332. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  333. package/build-module/components/block-list/block.js +6 -19
  334. package/build-module/components/block-list/block.js.map +1 -1
  335. package/build-module/components/block-list/block.native.js +1 -2
  336. package/build-module/components/block-list/block.native.js.map +1 -1
  337. package/build-module/components/block-list/index.js +7 -10
  338. package/build-module/components/block-list/index.js.map +1 -1
  339. package/build-module/components/block-list/index.native.js +1 -3
  340. package/build-module/components/block-list/index.native.js.map +1 -1
  341. package/build-module/components/block-list/insertion-point.native.js +1 -2
  342. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  343. package/build-module/components/block-list/use-block-props/index.js +3 -8
  344. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  345. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +14 -6
  346. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  347. package/build-module/components/block-list/use-in-between-inserter.js +5 -3
  348. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  349. package/build-module/components/block-list/zoom-out-separator.js +24 -13
  350. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  351. package/build-module/components/block-lock/menu-item.js +1 -3
  352. package/build-module/components/block-lock/menu-item.js.map +1 -1
  353. package/build-module/components/block-lock/modal.js +2 -3
  354. package/build-module/components/block-lock/modal.js.map +1 -1
  355. package/build-module/components/block-lock/toolbar.js +1 -3
  356. package/build-module/components/block-lock/toolbar.js.map +1 -1
  357. package/build-module/components/block-media-update-progress/index.native.js +1 -2
  358. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  359. package/build-module/components/block-mover/button.js +1 -3
  360. package/build-module/components/block-mover/button.js.map +1 -1
  361. package/build-module/components/block-mover/index.js +1 -2
  362. package/build-module/components/block-mover/index.js.map +1 -1
  363. package/build-module/components/block-mover/index.native.js +1 -2
  364. package/build-module/components/block-mover/index.native.js.map +1 -1
  365. package/build-module/components/block-navigation/dropdown.js +3 -6
  366. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  367. package/build-module/components/block-parent-selector/index.js +14 -11
  368. package/build-module/components/block-parent-selector/index.js.map +1 -1
  369. package/build-module/components/block-pattern-setup/index.js +1 -3
  370. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  371. package/build-module/components/block-pattern-setup/setup-toolbar.js +11 -22
  372. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  373. package/build-module/components/block-patterns-list/index.js +1 -3
  374. package/build-module/components/block-patterns-list/index.js.map +1 -1
  375. package/build-module/components/block-patterns-paging/index.js +12 -15
  376. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  377. package/build-module/components/block-popover/index.js +45 -2
  378. package/build-module/components/block-popover/index.js.map +1 -1
  379. package/build-module/components/block-preview/auto.js +2 -7
  380. package/build-module/components/block-preview/auto.js.map +1 -1
  381. package/build-module/components/block-preview/index.js +1 -2
  382. package/build-module/components/block-preview/index.js.map +1 -1
  383. package/build-module/components/block-quick-navigation/index.js +3 -6
  384. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  385. package/build-module/components/block-removal-warning-modal/index.js +1 -2
  386. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  387. package/build-module/components/block-rename/modal.js +3 -4
  388. package/build-module/components/block-rename/modal.js.map +1 -1
  389. package/build-module/components/block-rename/rename-control.js +1 -3
  390. package/build-module/components/block-rename/rename-control.js.map +1 -1
  391. package/build-module/components/block-settings/container.native.js +1 -3
  392. package/build-module/components/block-settings/container.native.js.map +1 -1
  393. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js +1 -1
  394. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
  395. package/build-module/components/block-settings-menu/block-settings-dropdown.js +80 -79
  396. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  397. package/build-module/components/block-settings-menu-controls/index.js +3 -9
  398. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  399. package/build-module/components/block-styles/index.js +1 -2
  400. package/build-module/components/block-styles/index.js.map +1 -1
  401. package/build-module/components/block-styles/menu-items.js +1 -2
  402. package/build-module/components/block-styles/menu-items.js.map +1 -1
  403. package/build-module/components/block-styles/preview.native.js +1 -2
  404. package/build-module/components/block-styles/preview.native.js.map +1 -1
  405. package/build-module/components/block-switcher/block-transformations-menu.js +1 -3
  406. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  407. package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -1
  408. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  409. package/build-module/components/block-switcher/block-variation-transformations.js +1 -3
  410. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  411. package/build-module/components/block-switcher/index.js +20 -18
  412. package/build-module/components/block-switcher/index.js.map +1 -1
  413. package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -2
  414. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  415. package/build-module/components/block-switcher/preview-block-popover.js +1 -2
  416. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  417. package/build-module/components/block-switcher/use-transformed-patterns.js +1 -0
  418. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  419. package/build-module/components/block-switcher/utils.js +1 -0
  420. package/build-module/components/block-switcher/utils.js.map +1 -1
  421. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -2
  422. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  423. package/build-module/components/block-toolbar/index.js +17 -22
  424. package/build-module/components/block-toolbar/index.js.map +1 -1
  425. package/build-module/components/block-toolbar/index.native.js +1 -3
  426. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  427. package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
  428. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  429. package/build-module/components/block-tools/index.js +9 -20
  430. package/build-module/components/block-tools/index.js.map +1 -1
  431. package/build-module/components/block-tools/insertion-point.js +2 -6
  432. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  433. package/build-module/components/block-tools/use-show-block-tools.js +8 -7
  434. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  435. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  436. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  437. package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
  438. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  439. package/build-module/components/block-tools/zoom-out-popover.js +2 -1
  440. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  441. package/build-module/components/block-tools/zoom-out-toolbar.js +7 -35
  442. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  443. package/build-module/components/block-types-list/index.js +1 -2
  444. package/build-module/components/block-types-list/index.js.map +1 -1
  445. package/build-module/components/block-types-list/index.native.js +1 -2
  446. package/build-module/components/block-types-list/index.native.js.map +1 -1
  447. package/build-module/components/block-variation-picker/index.js +1 -2
  448. package/build-module/components/block-variation-picker/index.js.map +1 -1
  449. package/build-module/components/block-variation-picker/index.native.js +1 -2
  450. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  451. package/build-module/components/block-variation-transforms/index.js +4 -4
  452. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  453. package/build-module/components/border-radius-control/index.js +1 -3
  454. package/build-module/components/border-radius-control/index.js.map +1 -1
  455. package/build-module/components/border-radius-control/utils.js.map +1 -1
  456. package/build-module/components/button-block-appender/index.js.map +1 -1
  457. package/build-module/components/button-block-appender/index.native.js +1 -2
  458. package/build-module/components/button-block-appender/index.native.js.map +1 -1
  459. package/build-module/components/child-layout-control/index.js +1 -3
  460. package/build-module/components/child-layout-control/index.js.map +1 -1
  461. package/build-module/components/color-style-selector/index.js.map +1 -1
  462. package/build-module/components/colors/utils.js.map +1 -1
  463. package/build-module/components/colors/with-colors.js.map +1 -1
  464. package/build-module/components/colors-gradients/control.js +1 -2
  465. package/build-module/components/colors-gradients/control.js.map +1 -1
  466. package/build-module/components/colors-gradients/dropdown.js +1 -3
  467. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  468. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +1 -3
  469. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  470. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +1 -3
  471. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  472. package/build-module/components/contrast-checker/index.native.js +1 -2
  473. package/build-module/components/contrast-checker/index.native.js.map +1 -1
  474. package/build-module/components/convert-to-group-buttons/index.js +1 -3
  475. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  476. package/build-module/components/convert-to-group-buttons/toolbar.js +1 -2
  477. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  478. package/build-module/components/date-format-picker/index.js +2 -2
  479. package/build-module/components/date-format-picker/index.js.map +1 -1
  480. package/build-module/components/default-block-appender/index.js +1 -2
  481. package/build-module/components/default-block-appender/index.js.map +1 -1
  482. package/build-module/components/dimensions-tool/index.js +1 -3
  483. package/build-module/components/dimensions-tool/index.js.map +1 -1
  484. package/build-module/components/dimensions-tool/width-height-tool.js +1 -3
  485. package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -1
  486. package/build-module/components/duotone/utils.js.map +1 -1
  487. package/build-module/components/duotone-control/index.js +1 -2
  488. package/build-module/components/duotone-control/index.js.map +1 -1
  489. package/build-module/components/editor-styles/index.js +1 -3
  490. package/build-module/components/editor-styles/index.js.map +1 -1
  491. package/build-module/components/floating-toolbar/index.native.js +1 -2
  492. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  493. package/build-module/components/floating-toolbar/nav-up-icon.js +1 -2
  494. package/build-module/components/floating-toolbar/nav-up-icon.js.map +1 -1
  495. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  496. package/build-module/components/font-sizes/utils.js.map +1 -1
  497. package/build-module/components/font-sizes/with-font-sizes.js +2 -2
  498. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  499. package/build-module/components/global-styles/advanced-panel.js +1 -2
  500. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  501. package/build-module/components/global-styles/border-panel.js +2 -3
  502. package/build-module/components/global-styles/border-panel.js.map +1 -1
  503. package/build-module/components/global-styles/color-panel.js +2 -3
  504. package/build-module/components/global-styles/color-panel.js.map +1 -1
  505. package/build-module/components/global-styles/dimensions-panel.js +2 -3
  506. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  507. package/build-module/components/global-styles/filters-panel.js +1 -2
  508. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  509. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  510. package/build-module/components/global-styles/get-global-styles-changes.js +2 -1
  511. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  512. package/build-module/components/global-styles/hooks.js.map +1 -1
  513. package/build-module/components/global-styles/image-settings-panel.js +1 -2
  514. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  515. package/build-module/components/global-styles/shadow-panel-components.js +1 -2
  516. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  517. package/build-module/components/global-styles/typography-panel.js +1 -2
  518. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  519. package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
  520. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  521. package/build-module/components/global-styles/utils.js.map +1 -1
  522. package/build-module/components/gradients/use-gradient.js.map +1 -1
  523. package/build-module/components/grid/grid-item-movers.js +1 -3
  524. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  525. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  526. package/build-module/components/height-control/index.js +1 -2
  527. package/build-module/components/height-control/index.js.map +1 -1
  528. package/build-module/components/iframe/index.js +45 -12
  529. package/build-module/components/iframe/index.js.map +1 -1
  530. package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -3
  531. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  532. package/build-module/components/image-editor/cropper.js +1 -3
  533. package/build-module/components/image-editor/cropper.js.map +1 -1
  534. package/build-module/components/image-editor/form-controls.js +1 -3
  535. package/build-module/components/image-editor/form-controls.js.map +1 -1
  536. package/build-module/components/image-editor/index.js +1 -2
  537. package/build-module/components/image-editor/index.js.map +1 -1
  538. package/build-module/components/image-editor/use-save-image.js +1 -1
  539. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  540. package/build-module/components/image-link-destinations/index.native.js +1 -3
  541. package/build-module/components/image-link-destinations/index.native.js.map +1 -1
  542. package/build-module/components/image-size-control/index.js +1 -3
  543. package/build-module/components/image-size-control/index.js.map +1 -1
  544. package/build-module/components/inner-blocks/index.js +1 -9
  545. package/build-module/components/inner-blocks/index.js.map +1 -1
  546. package/build-module/components/inner-blocks/use-nested-settings-update.js +16 -9
  547. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  548. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +1 -2
  549. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  550. package/build-module/components/inserter/block-patterns-explorer/index.js +1 -2
  551. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  552. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -3
  553. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  554. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +3 -5
  555. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  556. package/build-module/components/inserter/block-patterns-tab/index.js +1 -3
  557. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  558. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -3
  559. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  560. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -3
  561. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  562. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  563. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  564. package/build-module/components/inserter/block-types-tab.js +2 -4
  565. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  566. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  567. package/build-module/components/inserter/category-tabs/index.js +3 -13
  568. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  569. package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
  570. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  571. package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
  572. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  573. package/build-module/components/inserter/hooks/use-patterns-state.js +24 -11
  574. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  575. package/build-module/components/inserter/index.native.js +1 -3
  576. package/build-module/components/inserter/index.native.js.map +1 -1
  577. package/build-module/components/inserter/media-tab/media-panel.js +1 -2
  578. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  579. package/build-module/components/inserter/media-tab/media-preview.js +37 -17
  580. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  581. package/build-module/components/inserter/media-tab/media-tab.js +1 -3
  582. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  583. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  584. package/build-module/components/inserter/menu.js +5 -7
  585. package/build-module/components/inserter/menu.js.map +1 -1
  586. package/build-module/components/inserter/menu.native.js +1 -3
  587. package/build-module/components/inserter/menu.native.js.map +1 -1
  588. package/build-module/components/inserter/mobile-tab-navigation.js +7 -8
  589. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  590. package/build-module/components/inserter/no-results.js +1 -2
  591. package/build-module/components/inserter/no-results.js.map +1 -1
  592. package/build-module/components/inserter/no-results.native.js +1 -2
  593. package/build-module/components/inserter/no-results.native.js.map +1 -1
  594. package/build-module/components/inserter/panel.js +1 -3
  595. package/build-module/components/inserter/panel.js.map +1 -1
  596. package/build-module/components/inserter/preview-panel.js +1 -2
  597. package/build-module/components/inserter/preview-panel.js.map +1 -1
  598. package/build-module/components/inserter/quick-inserter.js +6 -7
  599. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  600. package/build-module/components/inserter/search-results.js +2 -3
  601. package/build-module/components/inserter/search-results.js.map +1 -1
  602. package/build-module/components/inserter/tabs.native.js.map +1 -1
  603. package/build-module/components/inserter-button/index.native.js +1 -2
  604. package/build-module/components/inserter-button/index.native.js.map +1 -1
  605. package/build-module/components/inserter-list-item/index.js +1 -2
  606. package/build-module/components/inserter-list-item/index.js.map +1 -1
  607. package/build-module/components/inserter-listbox/index.js +1 -2
  608. package/build-module/components/inserter-listbox/index.js.map +1 -1
  609. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  610. package/build-module/components/inspector-controls/fill.js.map +1 -1
  611. package/build-module/components/inspector-controls/fill.native.js +1 -3
  612. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  613. package/build-module/components/inspector-controls/slot.js.map +1 -1
  614. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  615. package/build-module/components/inspector-controls-tabs/index.js +1 -2
  616. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  617. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -3
  618. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  619. package/build-module/components/inspector-controls-tabs/styles-tab.js +1 -3
  620. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  621. package/build-module/components/inspector-popover-header/index.js +1 -2
  622. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  623. package/build-module/components/line-height-control/index.js.map +1 -1
  624. package/build-module/components/link-control/index.js +2 -5
  625. package/build-module/components/link-control/index.js.map +1 -1
  626. package/build-module/components/link-control/is-url-like.js.map +1 -1
  627. package/build-module/components/link-control/link-preview.js +1 -3
  628. package/build-module/components/link-control/link-preview.js.map +1 -1
  629. package/build-module/components/link-control/search-create-button.js +1 -1
  630. package/build-module/components/link-control/search-create-button.js.map +1 -1
  631. package/build-module/components/link-control/search-input.js +4 -7
  632. package/build-module/components/link-control/search-input.js.map +1 -1
  633. package/build-module/components/link-control/search-results.js +6 -17
  634. package/build-module/components/link-control/search-results.js.map +1 -1
  635. package/build-module/components/link-control/settings-drawer.js +1 -3
  636. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  637. package/build-module/components/link-control/settings.js +1 -2
  638. package/build-module/components/link-control/settings.js.map +1 -1
  639. package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
  640. package/build-module/components/list-view/appender.js +2 -3
  641. package/build-module/components/list-view/appender.js.map +1 -1
  642. package/build-module/components/list-view/block-contents.js +2 -28
  643. package/build-module/components/list-view/block-contents.js.map +1 -1
  644. package/build-module/components/list-view/block-select-button.js +1 -2
  645. package/build-module/components/list-view/block-select-button.js.map +1 -1
  646. package/build-module/components/list-view/block.js +1 -3
  647. package/build-module/components/list-view/block.js.map +1 -1
  648. package/build-module/components/list-view/branch.js +1 -3
  649. package/build-module/components/list-view/branch.js.map +1 -1
  650. package/build-module/components/list-view/drop-indicator.js +1 -2
  651. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  652. package/build-module/components/list-view/index.js +1 -2
  653. package/build-module/components/list-view/index.js.map +1 -1
  654. package/build-module/components/list-view/use-block-selection.js +2 -2
  655. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  656. package/build-module/components/list-view/utils.js +1 -1
  657. package/build-module/components/list-view/utils.js.map +1 -1
  658. package/build-module/components/media-placeholder/index.js +1 -3
  659. package/build-module/components/media-placeholder/index.js.map +1 -1
  660. package/build-module/components/media-placeholder/index.native.js +2 -4
  661. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  662. package/build-module/components/media-replace-flow/index.js +1 -3
  663. package/build-module/components/media-replace-flow/index.js.map +1 -1
  664. package/build-module/components/media-upload/index.native.js +1 -3
  665. package/build-module/components/media-upload/index.native.js.map +1 -1
  666. package/build-module/components/media-upload-progress/index.native.js +1 -2
  667. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  668. package/build-module/components/multi-selection-inspector/index.js +3 -4
  669. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  670. package/build-module/components/observe-typing/index.js +1 -0
  671. package/build-module/components/observe-typing/index.js.map +1 -1
  672. package/build-module/components/provider/index.js +1 -2
  673. package/build-module/components/provider/index.js.map +1 -1
  674. package/build-module/components/publish-date-time-picker/index.js +1 -2
  675. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  676. package/build-module/components/recursion-provider/index.js +1 -0
  677. package/build-module/components/recursion-provider/index.js.map +1 -1
  678. package/build-module/components/responsive-block-control/index.js +4 -5
  679. package/build-module/components/responsive-block-control/index.js.map +1 -1
  680. package/build-module/components/responsive-block-control/label.js +2 -4
  681. package/build-module/components/responsive-block-control/label.js.map +1 -1
  682. package/build-module/components/rich-text/content.js.map +1 -1
  683. package/build-module/components/rich-text/event-listeners/before-input-rules.js +2 -2
  684. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
  685. package/build-module/components/rich-text/event-listeners/delete.js +2 -2
  686. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -1
  687. package/build-module/components/rich-text/event-listeners/enter.js +2 -2
  688. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -1
  689. package/build-module/components/rich-text/event-listeners/firefox-compat.js +2 -2
  690. package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -1
  691. package/build-module/components/rich-text/event-listeners/input-events.js +2 -2
  692. package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -1
  693. package/build-module/components/rich-text/event-listeners/input-rules.js +2 -2
  694. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  695. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +2 -2
  696. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -1
  697. package/build-module/components/rich-text/event-listeners/paste-handler.js +2 -2
  698. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  699. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +2 -2
  700. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -1
  701. package/build-module/components/rich-text/event-listeners/shortcuts.js +2 -2
  702. package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -1
  703. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +2 -2
  704. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -1
  705. package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
  706. package/build-module/components/rich-text/format-toolbar/index.js +1 -3
  707. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  708. package/build-module/components/rich-text/format-toolbar/index.native.js +1 -3
  709. package/build-module/components/rich-text/format-toolbar/index.native.js.map +1 -1
  710. package/build-module/components/rich-text/index.js +4 -5
  711. package/build-module/components/rich-text/index.js.map +1 -1
  712. package/build-module/components/rich-text/index.native.js +1 -3
  713. package/build-module/components/rich-text/index.native.js.map +1 -1
  714. package/build-module/components/rich-text/multiline.js.map +1 -1
  715. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  716. package/build-module/components/rich-text/native/index.js +1 -1
  717. package/build-module/components/rich-text/native/index.js.map +1 -1
  718. package/build-module/components/rich-text/native/index.native.js +1 -3
  719. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  720. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +1 -3
  721. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  722. package/build-module/components/rich-text/native/use-format-types.js +1 -0
  723. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  724. package/build-module/components/rich-text/toolbar-button.js.map +1 -1
  725. package/build-module/components/rich-text/use-format-types.js +1 -0
  726. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  727. package/build-module/components/spacing-sizes-control/index.js +1 -2
  728. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  729. package/build-module/components/spacing-sizes-control/input-controls/axial.js +1 -2
  730. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  731. package/build-module/components/spacing-sizes-control/input-controls/separated.js +1 -2
  732. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  733. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -3
  734. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  735. package/build-module/components/spacing-sizes-control/utils.js +1 -0
  736. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  737. package/build-module/components/tabbed-sidebar/index.js +1 -2
  738. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  739. package/build-module/components/tool-selector/index.js +14 -11
  740. package/build-module/components/tool-selector/index.js.map +1 -1
  741. package/build-module/components/typewriter/index.js +1 -0
  742. package/build-module/components/typewriter/index.js.map +1 -1
  743. package/build-module/components/unsupported-block-details/index.native.js +1 -2
  744. package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
  745. package/build-module/components/url-input/button.js +1 -2
  746. package/build-module/components/url-input/button.js.map +1 -1
  747. package/build-module/components/url-input/index.js +2 -4
  748. package/build-module/components/url-input/index.js.map +1 -1
  749. package/build-module/components/url-popover/image-url-input-ui.js +1 -3
  750. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  751. package/build-module/components/url-popover/index.js +1 -2
  752. package/build-module/components/url-popover/index.js.map +1 -1
  753. package/build-module/components/url-popover/link-editor.js +1 -2
  754. package/build-module/components/url-popover/link-editor.js.map +1 -1
  755. package/build-module/components/url-popover/link-viewer.js +1 -2
  756. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  757. package/build-module/components/use-block-commands/index.js +1 -62
  758. package/build-module/components/use-block-commands/index.js.map +1 -1
  759. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  760. package/build-module/components/use-flash-editable-blocks/index.js.map +1 -1
  761. package/build-module/components/use-moving-animation/index.js.map +1 -1
  762. package/build-module/components/video-player/index.native.js +1 -2
  763. package/build-module/components/video-player/index.native.js.map +1 -1
  764. package/build-module/components/warning/index.js +1 -2
  765. package/build-module/components/warning/index.js.map +1 -1
  766. package/build-module/components/warning/index.native.js +1 -2
  767. package/build-module/components/warning/index.native.js.map +1 -1
  768. package/build-module/components/writing-flow/index.js +1 -3
  769. package/build-module/components/writing-flow/index.js.map +1 -1
  770. package/build-module/components/writing-flow/use-tab-nav.js +24 -31
  771. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  772. package/build-module/hooks/align.js.map +1 -1
  773. package/build-module/hooks/anchor.js +1 -3
  774. package/build-module/hooks/anchor.js.map +1 -1
  775. package/build-module/hooks/block-bindings.js +1 -3
  776. package/build-module/hooks/block-bindings.js.map +1 -1
  777. package/build-module/hooks/block-hooks.js +2 -3
  778. package/build-module/hooks/block-hooks.js.map +1 -1
  779. package/build-module/hooks/block-style-variation.js +1 -2
  780. package/build-module/hooks/block-style-variation.js.map +1 -1
  781. package/build-module/hooks/dimensions.js +1 -3
  782. package/build-module/hooks/dimensions.js.map +1 -1
  783. package/build-module/hooks/duotone.js +5 -4
  784. package/build-module/hooks/duotone.js.map +1 -1
  785. package/build-module/hooks/font-family.js.map +1 -1
  786. package/build-module/hooks/gap.js.map +1 -1
  787. package/build-module/hooks/generated-class-name.js +1 -0
  788. package/build-module/hooks/generated-class-name.js.map +1 -1
  789. package/build-module/hooks/grid-visualizer.js +1 -3
  790. package/build-module/hooks/grid-visualizer.js.map +1 -1
  791. package/build-module/hooks/layout-child.js +5 -4
  792. package/build-module/hooks/layout-child.js.map +1 -1
  793. package/build-module/hooks/layout.js +1 -3
  794. package/build-module/hooks/layout.js.map +1 -1
  795. package/build-module/hooks/position.js +5 -2
  796. package/build-module/hooks/position.js.map +1 -1
  797. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  798. package/build-module/hooks/style.js +1 -3
  799. package/build-module/hooks/style.js.map +1 -1
  800. package/build-module/hooks/text-align.js.map +1 -1
  801. package/build-module/hooks/typography.native.js +1 -2
  802. package/build-module/hooks/typography.native.js.map +1 -1
  803. package/build-module/hooks/use-bindings-attributes.js +1 -2
  804. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  805. package/build-module/hooks/use-typography-props.js.map +1 -1
  806. package/build-module/hooks/use-zoom-out.js +24 -17
  807. package/build-module/hooks/use-zoom-out.js.map +1 -1
  808. package/build-module/layouts/constrained.js +1 -3
  809. package/build-module/layouts/constrained.js.map +1 -1
  810. package/build-module/layouts/flex.js +1 -3
  811. package/build-module/layouts/flex.js.map +1 -1
  812. package/build-module/layouts/grid.js +1 -3
  813. package/build-module/layouts/grid.js.map +1 -1
  814. package/build-module/layouts/utils.js.map +1 -1
  815. package/build-module/store/actions.js +17 -18
  816. package/build-module/store/actions.js.map +1 -1
  817. package/build-module/store/private-actions.js +14 -0
  818. package/build-module/store/private-actions.js.map +1 -1
  819. package/build-module/store/private-selectors.js +98 -7
  820. package/build-module/store/private-selectors.js.map +1 -1
  821. package/build-module/store/reducer.js +22 -41
  822. package/build-module/store/reducer.js.map +1 -1
  823. package/build-module/store/selectors.js +150 -70
  824. package/build-module/store/selectors.js.map +1 -1
  825. package/build-module/store/utils.js +3 -2
  826. package/build-module/store/utils.js.map +1 -1
  827. package/build-module/utils/block-bindings.js +2 -0
  828. package/build-module/utils/block-bindings.js.map +1 -1
  829. package/build-module/utils/get-font-styles-and-weights.js +1 -1
  830. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  831. package/build-module/utils/get-px-from-css-unit.js +1 -1
  832. package/build-module/utils/get-px-from-css-unit.js.map +1 -1
  833. package/build-module/utils/object.js +1 -0
  834. package/build-module/utils/object.js.map +1 -1
  835. package/build-module/utils/pasting.js.map +1 -1
  836. package/build-style/content-rtl.css +22 -73
  837. package/build-style/content.css +22 -73
  838. package/build-style/default-editor-styles-rtl.css +10 -1
  839. package/build-style/default-editor-styles.css +10 -1
  840. package/build-style/style-rtl.css +48 -165
  841. package/build-style/style.css +48 -165
  842. package/package.json +33 -33
  843. package/src/autocompleters/link.js +2 -1
  844. package/src/components/block-actions/index.js +1 -13
  845. package/src/components/block-canvas/style.scss +0 -1
  846. package/src/components/block-draggable/style.scss +2 -2
  847. package/src/components/block-inspector/index.js +79 -95
  848. package/src/components/block-list/block.js +7 -25
  849. package/src/components/block-list/content.scss +4 -63
  850. package/src/components/block-list/index.js +21 -29
  851. package/src/components/block-list/use-block-props/index.js +2 -8
  852. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +25 -4
  853. package/src/components/block-list/use-in-between-inserter.js +5 -2
  854. package/src/components/block-list/zoom-out-separator.js +32 -14
  855. package/src/components/block-navigation/dropdown.js +1 -2
  856. package/src/components/block-parent-selector/index.js +13 -10
  857. package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
  858. package/src/components/block-patterns-paging/index.js +8 -7
  859. package/src/components/block-patterns-paging/style.scss +10 -27
  860. package/src/components/block-popover/index.js +64 -2
  861. package/src/components/block-preview/auto.js +1 -4
  862. package/src/components/block-quick-navigation/index.js +1 -2
  863. package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
  864. package/src/components/block-settings-menu-controls/index.js +0 -15
  865. package/src/components/block-switcher/index.js +37 -30
  866. package/src/components/block-toolbar/index.js +22 -34
  867. package/src/components/block-toolbar/style.scss +10 -1
  868. package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
  869. package/src/components/block-tools/index.js +7 -27
  870. package/src/components/block-tools/insertion-point.js +1 -4
  871. package/src/components/block-tools/style.scss +0 -90
  872. package/src/components/block-tools/use-show-block-tools.js +10 -13
  873. package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
  874. package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
  875. package/src/components/block-tools/zoom-out-popover.js +2 -1
  876. package/src/components/block-tools/zoom-out-toolbar.js +4 -36
  877. package/src/components/font-family/README.md +5 -1
  878. package/src/components/global-styles/border-panel.js +1 -1
  879. package/src/components/global-styles/dimensions-panel.js +1 -1
  880. package/src/components/iframe/content.scss +20 -24
  881. package/src/components/iframe/index.js +56 -12
  882. package/src/components/iframe/style.scss +6 -5
  883. package/src/components/inner-blocks/index.js +1 -16
  884. package/src/components/inner-blocks/use-nested-settings-update.js +16 -10
  885. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -1
  886. package/src/components/inserter/block-types-tab.js +1 -1
  887. package/src/components/inserter/category-tabs/index.js +1 -11
  888. package/src/components/inserter/hooks/use-block-types-state.js +34 -14
  889. package/src/components/inserter/hooks/use-insertion-point.js +35 -13
  890. package/src/components/inserter/hooks/use-patterns-state.js +46 -9
  891. package/src/components/inserter/media-tab/media-preview.js +38 -12
  892. package/src/components/inserter/menu.js +4 -4
  893. package/src/components/inserter/mobile-tab-navigation.js +10 -13
  894. package/src/components/inserter/quick-inserter.js +6 -5
  895. package/src/components/inserter/style.scss +1 -69
  896. package/src/components/inspector-controls-tabs/style.scss +2 -6
  897. package/src/components/link-control/index.js +0 -1
  898. package/src/components/link-control/search-input.js +4 -5
  899. package/src/components/link-control/search-results.js +2 -13
  900. package/src/components/link-control/test/index.js +84 -46
  901. package/src/components/list-view/block-contents.js +1 -28
  902. package/src/components/list-view/style.scss +0 -14
  903. package/src/components/media-replace-flow/test/index.js +1 -1
  904. package/src/components/responsive-block-control/style.scss +0 -1
  905. package/src/components/rich-text/style.scss +5 -0
  906. package/src/components/tool-selector/index.js +15 -7
  907. package/src/components/tool-selector/style.scss +5 -0
  908. package/src/components/use-block-commands/index.js +0 -58
  909. package/src/components/writing-flow/use-tab-nav.js +32 -40
  910. package/src/content.scss +0 -1
  911. package/src/hooks/duotone.js +4 -1
  912. package/src/hooks/layout-child.js +4 -1
  913. package/src/hooks/position.js +4 -1
  914. package/src/hooks/use-zoom-out.js +36 -20
  915. package/src/store/actions.js +17 -15
  916. package/src/store/private-actions.js +14 -0
  917. package/src/store/private-selectors.js +120 -16
  918. package/src/store/reducer.js +22 -45
  919. package/src/store/selectors.js +218 -118
  920. package/src/store/test/private-actions.js +15 -0
  921. package/src/store/test/private-selectors.js +41 -1
  922. package/src/store/test/reducer.js +40 -4
  923. package/src/store/test/selectors.js +195 -21
  924. package/src/store/utils.js +4 -2
  925. package/src/style.scss +1 -0
  926. package/src/utils/block-bindings.js +2 -0
  927. package/build/components/block-controls/use-has-block-controls.js +0 -43
  928. package/build/components/block-controls/use-has-block-controls.js.map +0 -1
  929. package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
  930. package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  931. package/build/components/block-tools/block-selection-button.js +0 -259
  932. package/build/components/block-tools/block-selection-button.js.map +0 -1
  933. package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
  934. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  935. package/build/components/inserter/tabs.js +0 -78
  936. package/build/components/inserter/tabs.js.map +0 -1
  937. package/build-module/components/block-controls/use-has-block-controls.js +0 -34
  938. package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
  939. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
  940. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  941. package/build-module/components/block-tools/block-selection-button.js +0 -254
  942. package/build-module/components/block-tools/block-selection-button.js.map +0 -1
  943. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
  944. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  945. package/build-module/components/inserter/tabs.js +0 -72
  946. package/build-module/components/inserter/tabs.js.map +0 -1
  947. package/src/components/block-controls/use-has-block-controls.js +0 -35
  948. package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
  949. package/src/components/block-tools/block-selection-button.js +0 -302
  950. package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
  951. package/src/components/inner-blocks/content.scss +0 -13
  952. package/src/components/inserter/tabs.js +0 -78
  953. package/src/components/inserter/test/block-types-tab.native.js +0 -67
@@ -1 +1 @@
1
- {"version":3,"names":["findNodeHandle","Platform","__","sprintf","switchToBlockType","Picker","useDispatch","store","noticesStore","blockEditorStore","jsx","_jsx","BlockTransformationsMenu","anchorNodeRef","blockTitle","pickerRef","possibleTransformations","selectedBlock","selectedBlockClientId","replaceBlocks","createSuccessNotice","pickerOptions","_selectedBlock$name","selectedBlockName","name","blocksThatSplitWhenTransformed","map","item","label","length","includes","id","title","value","getAnchor","undefined","onPickerSelect","selectedItem","find","successNotice","testID","ref","options","onChange","hideCancelButton","OS","leftAlign"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { findNodeHandle, Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { switchToBlockType } from '@wordpress/blocks';\nimport { Picker } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockTransformationsMenu = ( {\n\tanchorNodeRef,\n\tblockTitle,\n\tpickerRef,\n\tpossibleTransformations,\n\tselectedBlock,\n\tselectedBlockClientId,\n} ) => {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst pickerOptions = () => {\n\t\tconst selectedBlockName = selectedBlock?.name ?? '';\n\t\tconst blocksThatSplitWhenTransformed = {\n\t\t\t'core/list': [ 'core/paragraph', 'core/heading' ],\n\t\t\t'core/quote': [ 'core/paragraph' ],\n\t\t\t'core/pullquote': [ 'core/paragraph' ],\n\t\t};\n\n\t\treturn possibleTransformations.map( ( item ) => {\n\t\t\tconst label =\n\t\t\t\tselectedBlockName.length &&\n\t\t\t\tblocksThatSplitWhenTransformed[ selectedBlockName ] &&\n\t\t\t\tblocksThatSplitWhenTransformed[ selectedBlockName ].includes(\n\t\t\t\t\titem.id\n\t\t\t\t)\n\t\t\t\t\t? `${ item.title } blocks`\n\t\t\t\t\t: item.title;\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tvalue: item.id,\n\t\t\t};\n\t\t} );\n\t};\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\tfunction onPickerSelect( value ) {\n\t\treplaceBlocks(\n\t\t\tselectedBlockClientId,\n\t\t\tswitchToBlockType( selectedBlock, value )\n\t\t);\n\n\t\tconst selectedItem = pickerOptions().find(\n\t\t\t( item ) => item.value === value\n\t\t);\n\t\tconst successNotice = sprintf(\n\t\t\t/* translators: 1: From block title, e.g. Paragraph. 2: To block title, e.g. Header. */\n\t\t\t__( '%1$s transformed to %2$s' ),\n\t\t\tblockTitle,\n\t\t\tselectedItem.label\n\t\t);\n\t\tcreateSuccessNotice( successNotice );\n\t}\n\n\treturn (\n\t\t<Picker\n\t\t\ttestID=\"block-transformations-menu\"\n\t\t\tref={ pickerRef }\n\t\t\toptions={ pickerOptions() }\n\t\t\tonChange={ onPickerSelect }\n\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\tleftAlign\n\t\t\tgetAnchor={ getAnchor }\n\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\ttitle={ sprintf( __( 'Transform %s to' ), blockTitle ) }\n\t\t/>\n\t);\n};\n\nexport default BlockTransformationsMenu;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,cAAc,EAAEC,QAAQ,QAAQ,cAAc;;AAEvD;AACA;AACA;AACA,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASD,KAAK,IAAIE,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,wBAAwB,GAAGA,CAAE;EAClCC,aAAa;EACbC,UAAU;EACVC,SAAS;EACTC,uBAAuB;EACvBC,aAAa;EACbC;AACD,CAAC,KAAM;EACN,MAAM;IAAEC;EAAc,CAAC,GAAGb,WAAW,CAAEG,gBAAiB,CAAC;EACzD,MAAM;IAAEW;EAAoB,CAAC,GAAGd,WAAW,CAAEE,YAAa,CAAC;EAE3D,MAAMa,aAAa,GAAGA,CAAA,KAAM;IAAA,IAAAC,mBAAA;IAC3B,MAAMC,iBAAiB,IAAAD,mBAAA,GAAGL,aAAa,EAAEO,IAAI,cAAAF,mBAAA,cAAAA,mBAAA,GAAI,EAAE;IACnD,MAAMG,8BAA8B,GAAG;MACtC,WAAW,EAAE,CAAE,gBAAgB,EAAE,cAAc,CAAE;MACjD,YAAY,EAAE,CAAE,gBAAgB,CAAE;MAClC,gBAAgB,EAAE,CAAE,gBAAgB;IACrC,CAAC;IAED,OAAOT,uBAAuB,CAACU,GAAG,CAAIC,IAAI,IAAM;MAC/C,MAAMC,KAAK,GACVL,iBAAiB,CAACM,MAAM,IACxBJ,8BAA8B,CAAEF,iBAAiB,CAAE,IACnDE,8BAA8B,CAAEF,iBAAiB,CAAE,CAACO,QAAQ,CAC3DH,IAAI,CAACI,EACN,CAAC,GACG,GAAGJ,IAAI,CAACK,KAAO,SAAQ,GACxBL,IAAI,CAACK,KAAK;MACd,OAAO;QACNJ,KAAK;QACLK,KAAK,EAAEN,IAAI,CAACI;MACb,CAAC;IACF,CAAE,CAAC;EACJ,CAAC;EAED,MAAMG,SAAS,GAAGA,CAAA,KACjBrB,aAAa,GAAGb,cAAc,CAAEa,aAAc,CAAC,GAAGsB,SAAS;EAE5D,SAASC,cAAcA,CAAEH,KAAK,EAAG;IAChCd,aAAa,CACZD,qBAAqB,EACrBd,iBAAiB,CAAEa,aAAa,EAAEgB,KAAM,CACzC,CAAC;IAED,MAAMI,YAAY,GAAGhB,aAAa,CAAC,CAAC,CAACiB,IAAI,CACtCX,IAAI,IAAMA,IAAI,CAACM,KAAK,KAAKA,KAC5B,CAAC;IACD,MAAMM,aAAa,GAAGpC,OAAO,EAC5B;IACAD,EAAE,CAAE,0BAA2B,CAAC,EAChCY,UAAU,EACVuB,YAAY,CAACT,KACd,CAAC;IACDR,mBAAmB,CAAEmB,aAAc,CAAC;EACrC;EAEA,oBACC5B,IAAA,CAACN,MAAM;IACNmC,MAAM,EAAC,4BAA4B;IACnCC,GAAG,EAAG1B,SAAW;IACjB2B,OAAO,EAAGrB,aAAa,CAAC,CAAG;IAC3BsB,QAAQ,EAAGP,cAAgB;IAC3BQ,gBAAgB,EAAG3C,QAAQ,CAAC4C,EAAE,KAAK,KAAO;IAC1CC,SAAS;IACTZ,SAAS,EAAGA;IACZ;IAAA;IACAF,KAAK,EAAG7B,OAAO,CAAED,EAAE,CAAE,iBAAkB,CAAC,EAAEY,UAAW;EAAG,CACxD,CAAC;AAEJ,CAAC;AAED,eAAeF,wBAAwB","ignoreList":[]}
1
+ {"version":3,"names":["findNodeHandle","Platform","__","sprintf","switchToBlockType","Picker","useDispatch","store","noticesStore","blockEditorStore","jsx","_jsx","BlockTransformationsMenu","anchorNodeRef","blockTitle","pickerRef","possibleTransformations","selectedBlock","selectedBlockClientId","replaceBlocks","createSuccessNotice","pickerOptions","_selectedBlock$name","selectedBlockName","name","blocksThatSplitWhenTransformed","map","item","label","length","includes","id","title","value","getAnchor","undefined","onPickerSelect","selectedItem","find","successNotice","testID","ref","options","onChange","hideCancelButton","OS","leftAlign"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { findNodeHandle, Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { switchToBlockType } from '@wordpress/blocks';\nimport { Picker } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockTransformationsMenu = ( {\n\tanchorNodeRef,\n\tblockTitle,\n\tpickerRef,\n\tpossibleTransformations,\n\tselectedBlock,\n\tselectedBlockClientId,\n} ) => {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst pickerOptions = () => {\n\t\tconst selectedBlockName = selectedBlock?.name ?? '';\n\t\tconst blocksThatSplitWhenTransformed = {\n\t\t\t'core/list': [ 'core/paragraph', 'core/heading' ],\n\t\t\t'core/quote': [ 'core/paragraph' ],\n\t\t\t'core/pullquote': [ 'core/paragraph' ],\n\t\t};\n\n\t\treturn possibleTransformations.map( ( item ) => {\n\t\t\tconst label =\n\t\t\t\tselectedBlockName.length &&\n\t\t\t\tblocksThatSplitWhenTransformed[ selectedBlockName ] &&\n\t\t\t\tblocksThatSplitWhenTransformed[ selectedBlockName ].includes(\n\t\t\t\t\titem.id\n\t\t\t\t)\n\t\t\t\t\t? `${ item.title } blocks`\n\t\t\t\t\t: item.title;\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tvalue: item.id,\n\t\t\t};\n\t\t} );\n\t};\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\tfunction onPickerSelect( value ) {\n\t\treplaceBlocks(\n\t\t\tselectedBlockClientId,\n\t\t\tswitchToBlockType( selectedBlock, value )\n\t\t);\n\n\t\tconst selectedItem = pickerOptions().find(\n\t\t\t( item ) => item.value === value\n\t\t);\n\t\tconst successNotice = sprintf(\n\t\t\t/* translators: 1: From block title, e.g. Paragraph. 2: To block title, e.g. Header. */\n\t\t\t__( '%1$s transformed to %2$s' ),\n\t\t\tblockTitle,\n\t\t\tselectedItem.label\n\t\t);\n\t\tcreateSuccessNotice( successNotice );\n\t}\n\n\treturn (\n\t\t<Picker\n\t\t\ttestID=\"block-transformations-menu\"\n\t\t\tref={ pickerRef }\n\t\t\toptions={ pickerOptions() }\n\t\t\tonChange={ onPickerSelect }\n\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\tleftAlign\n\t\t\tgetAnchor={ getAnchor }\n\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\ttitle={ sprintf( __( 'Transform %s to' ), blockTitle ) }\n\t\t/>\n\t);\n};\n\nexport default BlockTransformationsMenu;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,cAAc,EAAEC,QAAQ,QAAQ,cAAc;;AAEvD;AACA;AACA;AACA,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASD,KAAK,IAAIE,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,wBAAwB,GAAGA,CAAE;EAClCC,aAAa;EACbC,UAAU;EACVC,SAAS;EACTC,uBAAuB;EACvBC,aAAa;EACbC;AACD,CAAC,KAAM;EACN,MAAM;IAAEC;EAAc,CAAC,GAAGb,WAAW,CAAEG,gBAAiB,CAAC;EACzD,MAAM;IAAEW;EAAoB,CAAC,GAAGd,WAAW,CAAEE,YAAa,CAAC;EAE3D,MAAMa,aAAa,GAAGA,CAAA,KAAM;IAAA,IAAAC,mBAAA;IAC3B,MAAMC,iBAAiB,IAAAD,mBAAA,GAAGL,aAAa,EAAEO,IAAI,cAAAF,mBAAA,cAAAA,mBAAA,GAAI,EAAE;IACnD,MAAMG,8BAA8B,GAAG;MACtC,WAAW,EAAE,CAAE,gBAAgB,EAAE,cAAc,CAAE;MACjD,YAAY,EAAE,CAAE,gBAAgB,CAAE;MAClC,gBAAgB,EAAE,CAAE,gBAAgB;IACrC,CAAC;IAED,OAAOT,uBAAuB,CAACU,GAAG,CAAIC,IAAI,IAAM;MAC/C,MAAMC,KAAK,GACVL,iBAAiB,CAACM,MAAM,IACxBJ,8BAA8B,CAAEF,iBAAiB,CAAE,IACnDE,8BAA8B,CAAEF,iBAAiB,CAAE,CAACO,QAAQ,CAC3DH,IAAI,CAACI,EACN,CAAC,GACE,GAAIJ,IAAI,CAACK,KAAK,SAAU,GACxBL,IAAI,CAACK,KAAK;MACd,OAAO;QACNJ,KAAK;QACLK,KAAK,EAAEN,IAAI,CAACI;MACb,CAAC;IACF,CAAE,CAAC;EACJ,CAAC;EAED,MAAMG,SAAS,GAAGA,CAAA,KACjBrB,aAAa,GAAGb,cAAc,CAAEa,aAAc,CAAC,GAAGsB,SAAS;EAE5D,SAASC,cAAcA,CAAEH,KAAK,EAAG;IAChCd,aAAa,CACZD,qBAAqB,EACrBd,iBAAiB,CAAEa,aAAa,EAAEgB,KAAM,CACzC,CAAC;IAED,MAAMI,YAAY,GAAGhB,aAAa,CAAC,CAAC,CAACiB,IAAI,CACtCX,IAAI,IAAMA,IAAI,CAACM,KAAK,KAAKA,KAC5B,CAAC;IACD,MAAMM,aAAa,GAAGpC,OAAO,CAC5B;IACAD,EAAE,CAAE,0BAA2B,CAAC,EAChCY,UAAU,EACVuB,YAAY,CAACT,KACd,CAAC;IACDR,mBAAmB,CAAEmB,aAAc,CAAC;EACrC;EAEA,oBACC5B,IAAA,CAACN,MAAM;IACNmC,MAAM,EAAC,4BAA4B;IACnCC,GAAG,EAAG1B,SAAW;IACjB2B,OAAO,EAAGrB,aAAa,CAAC,CAAG;IAC3BsB,QAAQ,EAAGP,cAAgB;IAC3BQ,gBAAgB,EAAG3C,QAAQ,CAAC4C,EAAE,KAAK,KAAO;IAC1CC,SAAS;IACTZ,SAAS,EAAGA;IACZ;IAAA;IACAF,KAAK,EAAG7B,OAAO,CAAED,EAAE,CAAE,iBAAkB,CAAC,EAAEY,UAAW;EAAG,CACxD,CAAC;AAEJ,CAAC;AAED,eAAeF,wBAAwB","ignoreList":[]}
@@ -12,9 +12,7 @@ import { useState, useMemo } from '@wordpress/element';
12
12
  import { store as blockEditorStore } from '../../store';
13
13
  import BlockIcon from '../block-icon';
14
14
  import PreviewBlockPopover from './preview-block-popover';
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- import { Fragment as _Fragment } from "react/jsx-runtime";
17
- import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
18
16
  const EMPTY_OBJECT = {};
19
17
  export function useBlockVariationTransforms({
20
18
  clientIds,
@@ -1 +1 @@
1
- {"version":3,"names":["MenuItem","getBlockMenuDefaultClassName","cloneBlock","store","blocksStore","useSelect","useState","useMemo","blockEditorStore","BlockIcon","PreviewBlockPopover","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","EMPTY_OBJECT","useBlockVariationTransforms","clientIds","blocks","activeBlockVariation","blockVariationTransformations","select","getBlockAttributes","canRemoveBlocks","getActiveBlockVariation","getBlockVariations","canRemove","length","firstBlock","name","clientId","transformations","filter","BlockVariationTransformations","onSelect","hoveredTransformItemName","setHoveredTransformItemName","children","find","attributes","map","item","BlockVariationTranformationItem","icon","title","className","onClick","event","preventDefault","onMouseLeave","onMouseEnter","showColors"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-variation-transformations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tcloneBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\nconst EMPTY_OBJECT = {};\n\nexport function useBlockVariationTransforms( { clientIds, blocks } ) {\n\tconst { activeBlockVariation, blockVariationTransformations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, canRemoveBlocks } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\tconst canRemove = canRemoveBlocks( clientIds );\n\t\t\t// Only handle single selected blocks for now.\n\t\t\tif ( blocks.length !== 1 || ! canRemove ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\t\t\tconst [ firstBlock ] = blocks;\n\t\t\treturn {\n\t\t\t\tblockVariationTransformations: getBlockVariations(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\t'transform'\n\t\t\t\t),\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\tgetBlockAttributes( firstBlock.clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\tconst transformations = useMemo( () => {\n\t\treturn blockVariationTransformations?.filter(\n\t\t\t( { name } ) => name !== activeBlockVariation?.name\n\t\t);\n\t}, [ blockVariationTransformations, activeBlockVariation ] );\n\treturn transformations;\n}\n\nconst BlockVariationTransformations = ( {\n\ttransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\treturn (\n\t\t<>\n\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\tblocks={ cloneBlock(\n\t\t\t\t\t\tblocks[ 0 ],\n\t\t\t\t\t\ttransformations.find(\n\t\t\t\t\t\t\t( { name } ) => name === hoveredTransformItemName\n\t\t\t\t\t\t).attributes\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ transformations?.map( ( item ) => (\n\t\t\t\t<BlockVariationTranformationItem\n\t\t\t\t\tkey={ item.name }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</>\n\t);\n};\n\nfunction BlockVariationTranformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockVariationTransformations;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MenuItem","getBlockMenuDefaultClassName","cloneBlock","store","blocksStore","useSelect","useState","useMemo","blockEditorStore","BlockIcon","PreviewBlockPopover","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","EMPTY_OBJECT","useBlockVariationTransforms","clientIds","blocks","activeBlockVariation","blockVariationTransformations","select","getBlockAttributes","canRemoveBlocks","getActiveBlockVariation","getBlockVariations","canRemove","length","firstBlock","name","clientId","transformations","filter","BlockVariationTransformations","onSelect","hoveredTransformItemName","setHoveredTransformItemName","children","find","attributes","map","item","BlockVariationTranformationItem","icon","title","className","onClick","event","preventDefault","onMouseLeave","onMouseEnter","showColors"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-variation-transformations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tcloneBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\nconst EMPTY_OBJECT = {};\n\nexport function useBlockVariationTransforms( { clientIds, blocks } ) {\n\tconst { activeBlockVariation, blockVariationTransformations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, canRemoveBlocks } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\tconst canRemove = canRemoveBlocks( clientIds );\n\t\t\t// Only handle single selected blocks for now.\n\t\t\tif ( blocks.length !== 1 || ! canRemove ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\t\t\tconst [ firstBlock ] = blocks;\n\t\t\treturn {\n\t\t\t\tblockVariationTransformations: getBlockVariations(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\t'transform'\n\t\t\t\t),\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\tgetBlockAttributes( firstBlock.clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\tconst transformations = useMemo( () => {\n\t\treturn blockVariationTransformations?.filter(\n\t\t\t( { name } ) => name !== activeBlockVariation?.name\n\t\t);\n\t}, [ blockVariationTransformations, activeBlockVariation ] );\n\treturn transformations;\n}\n\nconst BlockVariationTransformations = ( {\n\ttransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\treturn (\n\t\t<>\n\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\tblocks={ cloneBlock(\n\t\t\t\t\t\tblocks[ 0 ],\n\t\t\t\t\t\ttransformations.find(\n\t\t\t\t\t\t\t( { name } ) => name === hoveredTransformItemName\n\t\t\t\t\t\t).attributes\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ transformations?.map( ( item ) => (\n\t\t\t\t<BlockVariationTranformationItem\n\t\t\t\t\tkey={ item.name }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</>\n\t);\n};\n\nfunction BlockVariationTranformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockVariationTransformations;\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -17,15 +18,12 @@ import { useBlockVariationTransforms } from './block-variation-transformations';
17
18
  import BlockStylesMenu from './block-styles-menu';
18
19
  import PatternTransformationsMenu from './pattern-transformations-menu';
19
20
  import useBlockDisplayTitle from '../block-title/use-block-display-title';
20
- import { jsx as _jsx } from "react/jsx-runtime";
21
- import { jsxs as _jsxs } from "react/jsx-runtime";
22
- import { Fragment as _Fragment } from "react/jsx-runtime";
21
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
23
22
  function BlockSwitcherDropdownMenuContents({
24
23
  onClose,
25
24
  clientIds,
26
25
  hasBlockStyles,
27
- canRemove,
28
- isUsingBindings
26
+ canRemove
29
27
  }) {
30
28
  const {
31
29
  replaceBlocks,
@@ -35,20 +33,23 @@ function BlockSwitcherDropdownMenuContents({
35
33
  const {
36
34
  possibleBlockTransformations,
37
35
  patterns,
38
- blocks
36
+ blocks,
37
+ isUsingBindings
39
38
  } = useSelect(select => {
40
39
  const {
40
+ getBlockAttributes,
41
41
  getBlocksByClientId,
42
42
  getBlockRootClientId,
43
43
  getBlockTransformItems,
44
44
  __experimentalGetPatternTransformItems
45
45
  } = select(blockEditorStore);
46
- const rootClientId = getBlockRootClientId(Array.isArray(clientIds) ? clientIds[0] : clientIds);
46
+ const rootClientId = getBlockRootClientId(clientIds[0]);
47
47
  const _blocks = getBlocksByClientId(clientIds);
48
48
  return {
49
49
  blocks: _blocks,
50
50
  possibleBlockTransformations: getBlockTransformItems(_blocks, rootClientId),
51
- patterns: __experimentalGetPatternTransformItems(_blocks, rootClientId)
51
+ patterns: __experimentalGetPatternTransformItems(_blocks, rootClientId),
52
+ isUsingBindings: clientIds.every(clientId => !!getBlockAttributes(clientId)?.metadata?.bindings)
52
53
  };
53
54
  }, [clientIds]);
54
55
  const blockVariationTransformations = useBlockVariationTransforms({
@@ -145,9 +146,7 @@ const BlockIndicator = ({
145
146
  })]
146
147
  });
147
148
  export const BlockSwitcher = ({
148
- clientIds,
149
- disabled,
150
- isUsingBindings
149
+ clientIds
151
150
  }) => {
152
151
  const {
153
152
  hasContentOnlyLocking,
@@ -156,13 +155,15 @@ export const BlockSwitcher = ({
156
155
  icon,
157
156
  invalidBlocks,
158
157
  isReusable,
159
- isTemplate
158
+ isTemplate,
159
+ isDisabled
160
160
  } = useSelect(select => {
161
161
  const {
162
162
  getTemplateLock,
163
163
  getBlocksByClientId,
164
164
  getBlockAttributes,
165
- canRemoveBlocks
165
+ canRemoveBlocks,
166
+ getBlockEditingMode
166
167
  } = select(blockEditorStore);
167
168
  const {
168
169
  getBlockStyles,
@@ -180,6 +181,7 @@ export const BlockSwitcher = ({
180
181
  }] = _blocks;
181
182
  const _isSingleBlockSelected = _blocks.length === 1;
182
183
  const blockType = getBlockType(firstBlockName);
184
+ const editingMode = getBlockEditingMode(clientIds[0]);
183
185
  let _icon;
184
186
  let _hasTemplateLock;
185
187
  if (_isSingleBlockSelected) {
@@ -202,7 +204,8 @@ export const BlockSwitcher = ({
202
204
  icon: _icon,
203
205
  isReusable: _isSingleBlockSelected && isReusableBlock(_blocks[0]),
204
206
  isTemplate: _isSingleBlockSelected && isTemplatePart(_blocks[0]),
205
- hasContentOnlyLocking: _hasTemplateLock
207
+ hasContentOnlyLocking: _hasTemplateLock,
208
+ isDisabled: editingMode !== 'default'
206
209
  };
207
210
  }, [clientIds]);
208
211
  const blockTitle = useBlockDisplayTitle({
@@ -214,7 +217,7 @@ export const BlockSwitcher = ({
214
217
  }
215
218
  const isSingleBlock = clientIds.length === 1;
216
219
  const blockSwitcherLabel = isSingleBlock ? blockTitle : __('Multiple blocks selected');
217
- const hideDropdown = disabled || !hasBlockStyles && !canRemove || hasContentOnlyLocking;
220
+ const hideDropdown = isDisabled || !hasBlockStyles && !canRemove || hasContentOnlyLocking;
218
221
  if (hideDropdown) {
219
222
  return /*#__PURE__*/_jsx(ToolbarGroup, {
220
223
  children: /*#__PURE__*/_jsx(ToolbarButton, {
@@ -229,7 +232,7 @@ export const BlockSwitcher = ({
229
232
  })
230
233
  });
231
234
  }
232
- const blockSwitcherDescription = isSingleBlock ? __('Change block type or style') : sprintf( /* translators: %d: number of blocks. */
235
+ const blockSwitcherDescription = isSingleBlock ? __('Change block type or style') : sprintf(/* translators: %d: number of blocks. */
233
236
  _n('Change type of %d block', 'Change type of %d blocks', clientIds.length), clientIds.length);
234
237
  return /*#__PURE__*/_jsx(ToolbarGroup, {
235
238
  children: /*#__PURE__*/_jsx(ToolbarItem, {
@@ -258,8 +261,7 @@ export const BlockSwitcher = ({
258
261
  onClose: onClose,
259
262
  clientIds: clientIds,
260
263
  hasBlockStyles: hasBlockStyles,
261
- canRemove: canRemove,
262
- isUsingBindings: isUsingBindings
264
+ canRemove: canRemove
263
265
  })
264
266
  })
265
267
  })
@@ -1 +1 @@
1
- {"version":3,"names":["__","_n","sprintf","_x","DropdownMenu","ToolbarButton","ToolbarGroup","ToolbarItem","__experimentalText","Text","MenuGroup","switchToBlockType","store","blocksStore","isReusableBlock","isTemplatePart","useSelect","useDispatch","copy","blockEditorStore","BlockIcon","BlockTransformationsMenu","useBlockVariationTransforms","BlockStylesMenu","PatternTransformationsMenu","useBlockDisplayTitle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","isUsingBindings","replaceBlocks","multiSelect","updateBlockAttributes","possibleBlockTransformations","patterns","blocks","select","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","Array","isArray","_blocks","blockVariationTransformations","selectForMultipleBlocks","insertedBlocks","length","clientId","onBlockTransform","name","newBlocks","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","className","children","connectedBlockDescription","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","BlockIndicator","icon","showTitle","blockTitle","showColors","BlockSwitcher","disabled","hasContentOnlyLocking","invalidBlocks","isReusable","getTemplateLock","getBlockAttributes","canRemoveBlocks","getBlockStyles","getBlockType","getActiveBlockVariation","some","block","firstBlockName","_isSingleBlockSelected","blockType","_icon","_hasTemplateLock","match","isSelectionOfSameType","Set","map","size","id","maximumLength","blockSwitcherLabel","hideDropdown","title","blockSwitcherDescription","toggleProps","label","popoverProps","placement","description","menuProps","orientation"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n\tisUsingBindings,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\treturn {\n\t\t\t\tblocks: _blocks,\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t_blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nconst BlockIndicator = ( { icon, showTitle, blockTitle } ) => (\n\t<>\n\t\t<BlockIcon\n\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\ticon={ icon }\n\t\t\tshowColors\n\t\t/>\n\t\t{ showTitle && blockTitle && (\n\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t{ blockTitle }\n\t\t\t</span>\n\t\t) }\n\t</>\n);\n\nexport const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {\n\tconst {\n\t\thasContentOnlyLocking,\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\n\t\t\tlet _icon;\n\t\t\tlet _hasTemplateLock;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t\t_hasTemplateLock =\n\t\t\t\t\tgetTemplateLock( clientIds[ 0 ] ) === 'contentOnly';\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t_hasTemplateLock = clientIds.some(\n\t\t\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst hideDropdown =\n\t\tdisabled ||\n\t\t( ! hasBlockStyles && ! canRemove ) ||\n\t\thasContentOnlyLocking;\n\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BlockIndicator\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tshowTitle={ isReusable || isTemplate }\n\t\t\t\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIndicator\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tshowTitle={ isReusable || isTemplate }\n\t\t\t\t\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t\tisUsingBindings={ isUsingBindings }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","_n","sprintf","_x","DropdownMenu","ToolbarButton","ToolbarGroup","ToolbarItem","__experimentalText","Text","MenuGroup","switchToBlockType","store","blocksStore","isReusableBlock","isTemplatePart","useSelect","useDispatch","copy","blockEditorStore","BlockIcon","BlockTransformationsMenu","useBlockVariationTransforms","BlockStylesMenu","PatternTransformationsMenu","useBlockDisplayTitle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","replaceBlocks","multiSelect","updateBlockAttributes","possibleBlockTransformations","patterns","blocks","isUsingBindings","select","getBlockAttributes","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","_blocks","every","clientId","metadata","bindings","blockVariationTransformations","selectForMultipleBlocks","insertedBlocks","length","onBlockTransform","name","newBlocks","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","className","children","connectedBlockDescription","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","BlockIndicator","icon","showTitle","blockTitle","showColors","BlockSwitcher","hasContentOnlyLocking","invalidBlocks","isReusable","isDisabled","getTemplateLock","canRemoveBlocks","getBlockEditingMode","getBlockStyles","getBlockType","getActiveBlockVariation","some","block","firstBlockName","_isSingleBlockSelected","blockType","editingMode","_icon","_hasTemplateLock","match","isSelectionOfSameType","Set","map","size","id","maximumLength","blockSwitcherLabel","hideDropdown","disabled","title","blockSwitcherDescription","toggleProps","label","popoverProps","placement","description","menuProps","orientation"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks, isUsingBindings } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlocksByClientId,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockTransformItems,\n\t\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\t\treturn {\n\t\t\t\t\tblocks: _blocks,\n\t\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tisUsingBindings: clientIds.every(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\t!! getBlockAttributes( clientId )?.metadata\n\t\t\t\t\t\t\t\t?.bindings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds ]\n\t\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nconst BlockIndicator = ( { icon, showTitle, blockTitle } ) => (\n\t<>\n\t\t<BlockIcon\n\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\ticon={ icon }\n\t\t\tshowColors\n\t\t/>\n\t\t{ showTitle && blockTitle && (\n\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t{ blockTitle }\n\t\t\t</span>\n\t\t) }\n\t</>\n);\n\nexport const BlockSwitcher = ( { clientIds } ) => {\n\tconst {\n\t\thasContentOnlyLocking,\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t\tisDisabled,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\t\t\tconst editingMode = getBlockEditingMode( clientIds[ 0 ] );\n\n\t\t\tlet _icon;\n\t\t\tlet _hasTemplateLock;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t\t_hasTemplateLock =\n\t\t\t\t\tgetTemplateLock( clientIds[ 0 ] ) === 'contentOnly';\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t_hasTemplateLock = clientIds.some(\n\t\t\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\t\tisDisabled: editingMode !== 'default',\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst hideDropdown =\n\t\tisDisabled ||\n\t\t( ! hasBlockStyles && ! canRemove ) ||\n\t\thasContentOnlyLocking;\n\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BlockIndicator\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tshowTitle={ isReusable || isTemplate }\n\t\t\t\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIndicator\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tshowTitle={ isReusable || isTemplate }\n\t\t\t\t\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
@@ -12,8 +12,7 @@ import { Composite, MenuGroup, MenuItem, Popover, VisuallyHidden } from '@wordpr
12
12
  */
13
13
  import BlockPreview from '../block-preview';
14
14
  import useTransformedPatterns from './use-transformed-patterns';
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
16
  function PatternTransformationsMenu({
18
17
  blocks,
19
18
  patterns: statePatterns,
@@ -1 +1 @@
1
- {"version":3,"names":["__","useState","useInstanceId","useViewportMatch","chevronRight","Composite","MenuGroup","MenuItem","Popover","VisuallyHidden","BlockPreview","useTransformedPatterns","jsx","_jsx","jsxs","_jsxs","PatternTransformationsMenu","blocks","patterns","statePatterns","onSelect","showTransforms","setShowTransforms","length","className","children","PreviewPatternsPopover","onClick","event","preventDefault","icon","isMobile","placement","offset","BlockPatternsList","role","map","pattern","BlockPattern","name","baseClassName","descriptionId","Item","render","title","description","undefined","transformedBlocks","viewportWidth","id"],"sources":["@wordpress/block-editor/src/components/block-switcher/pattern-transformations-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId, useViewportMatch } from '@wordpress/compose';\nimport { chevronRight } from '@wordpress/icons';\n\nimport {\n\tComposite,\n\tMenuGroup,\n\tMenuItem,\n\tPopover,\n\tVisuallyHidden,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport useTransformedPatterns from './use-transformed-patterns';\n\nfunction PatternTransformationsMenu( {\n\tblocks,\n\tpatterns: statePatterns,\n\tonSelect,\n} ) {\n\tconst [ showTransforms, setShowTransforms ] = useState( false );\n\tconst patterns = useTransformedPatterns( statePatterns, blocks );\n\n\tif ( ! patterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuGroup className=\"block-editor-block-switcher__pattern__transforms__menugroup\">\n\t\t\t{ showTransforms && (\n\t\t\t\t<PreviewPatternsPopover\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<MenuItem\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetShowTransforms( ! showTransforms );\n\t\t\t\t} }\n\t\t\t\ticon={ chevronRight }\n\t\t\t>\n\t\t\t\t{ __( 'Patterns' ) }\n\t\t\t</MenuItem>\n\t\t</MenuGroup>\n\t);\n}\n\nfunction PreviewPatternsPopover( { patterns, onSelect } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement={ isMobile ? 'bottom' : 'right-start' }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview is-pattern-list-preview\">\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsList( { patterns, onSelect } ) {\n\treturn (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-switcher__preview-patterns-container\"\n\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t>\n\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t<BlockPattern\n\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nfunction BlockPattern( { pattern, onSelect } ) {\n\t// TODO check pattern/preview width...\n\tconst baseClassName =\n\t\t'block-editor-block-switcher__preview-patterns-container';\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }-list__item-description`\n\t);\n\treturn (\n\t\t<div className={ `${ baseClassName }-list__list-item` }>\n\t\t\t<Composite.Item\n\t\t\t\trender={\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclassName={ `${ baseClassName }-list__item` }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tonClick={ () => onSelect( pattern.transformedBlocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ pattern.transformedBlocks }\n\t\t\t\t\tviewportWidth={ pattern.viewportWidth || 500 }\n\t\t\t\t/>\n\t\t\t\t<div className={ `${ baseClassName }-list__item-title` }>\n\t\t\t\t\t{ pattern.title }\n\t\t\t\t</div>\n\t\t\t</Composite.Item>\n\t\t\t{ !! pattern.description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ pattern.description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default PatternTransformationsMenu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","useState","useInstanceId","useViewportMatch","chevronRight","Composite","MenuGroup","MenuItem","Popover","VisuallyHidden","BlockPreview","useTransformedPatterns","jsx","_jsx","jsxs","_jsxs","PatternTransformationsMenu","blocks","patterns","statePatterns","onSelect","showTransforms","setShowTransforms","length","className","children","PreviewPatternsPopover","onClick","event","preventDefault","icon","isMobile","placement","offset","BlockPatternsList","role","map","pattern","BlockPattern","name","baseClassName","descriptionId","Item","render","title","description","undefined","transformedBlocks","viewportWidth","id"],"sources":["@wordpress/block-editor/src/components/block-switcher/pattern-transformations-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId, useViewportMatch } from '@wordpress/compose';\nimport { chevronRight } from '@wordpress/icons';\n\nimport {\n\tComposite,\n\tMenuGroup,\n\tMenuItem,\n\tPopover,\n\tVisuallyHidden,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport useTransformedPatterns from './use-transformed-patterns';\n\nfunction PatternTransformationsMenu( {\n\tblocks,\n\tpatterns: statePatterns,\n\tonSelect,\n} ) {\n\tconst [ showTransforms, setShowTransforms ] = useState( false );\n\tconst patterns = useTransformedPatterns( statePatterns, blocks );\n\n\tif ( ! patterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuGroup className=\"block-editor-block-switcher__pattern__transforms__menugroup\">\n\t\t\t{ showTransforms && (\n\t\t\t\t<PreviewPatternsPopover\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<MenuItem\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetShowTransforms( ! showTransforms );\n\t\t\t\t} }\n\t\t\t\ticon={ chevronRight }\n\t\t\t>\n\t\t\t\t{ __( 'Patterns' ) }\n\t\t\t</MenuItem>\n\t\t</MenuGroup>\n\t);\n}\n\nfunction PreviewPatternsPopover( { patterns, onSelect } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement={ isMobile ? 'bottom' : 'right-start' }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview is-pattern-list-preview\">\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsList( { patterns, onSelect } ) {\n\treturn (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-switcher__preview-patterns-container\"\n\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t>\n\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t<BlockPattern\n\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nfunction BlockPattern( { pattern, onSelect } ) {\n\t// TODO check pattern/preview width...\n\tconst baseClassName =\n\t\t'block-editor-block-switcher__preview-patterns-container';\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }-list__item-description`\n\t);\n\treturn (\n\t\t<div className={ `${ baseClassName }-list__list-item` }>\n\t\t\t<Composite.Item\n\t\t\t\trender={\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclassName={ `${ baseClassName }-list__item` }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tonClick={ () => onSelect( pattern.transformedBlocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ pattern.transformedBlocks }\n\t\t\t\t\tviewportWidth={ pattern.viewportWidth || 500 }\n\t\t\t\t/>\n\t\t\t\t<div className={ `${ baseClassName }-list__item-title` }>\n\t\t\t\t\t{ pattern.title }\n\t\t\t\t</div>\n\t\t\t</Composite.Item>\n\t\t\t{ !! pattern.description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ pattern.description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default PatternTransformationsMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -9,8 +9,7 @@ import { useViewportMatch } from '@wordpress/compose';
9
9
  * Internal dependencies
10
10
  */
11
11
  import BlockPreview from '../block-preview';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
13
  export default function PreviewBlockPopover({
15
14
  blocks
16
15
  }) {
@@ -1 +1 @@
1
- {"version":3,"names":["__","Popover","useViewportMatch","BlockPreview","jsx","_jsx","jsxs","_jsxs","PreviewBlockPopover","blocks","isMobile","className","children","placement","focusOnMount","offset","viewportWidth"],"sources":["@wordpress/block-editor/src/components/block-switcher/preview-block-popover.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Popover } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\n\nexport default function PreviewBlockPopover( { blocks } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement=\"right-start\"\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview\">\n\t\t\t\t\t<div className=\"block-editor-block-switcher__preview-title\">\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<BlockPreview viewportWidth={ 500 } blocks={ blocks } />\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA;AACA;AACA,OAAOC,YAAY,MAAM,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE5C,eAAe,SAASC,mBAAmBA,CAAE;EAAEC;AAAO,CAAC,EAAG;EACzD,MAAMC,QAAQ,GAAGR,gBAAgB,CAAE,QAAQ,EAAE,GAAI,CAAC;EAElD,IAAKQ,QAAQ,EAAG;IACf,OAAO,IAAI;EACZ;EAEA,oBACCL,IAAA;IAAKM,SAAS,EAAC,wDAAwD;IAAAC,QAAA,eACtEP,IAAA,CAACJ,OAAO;MACPU,SAAS,EAAC,8CAA8C;MACxDE,SAAS,EAAC,aAAa;MACvBC,YAAY,EAAG,KAAO;MACtBC,MAAM,EAAG,EAAI;MAAAH,QAAA,eAEbL,KAAA;QAAKI,SAAS,EAAC,sCAAsC;QAAAC,QAAA,gBACpDP,IAAA;UAAKM,SAAS,EAAC,4CAA4C;UAAAC,QAAA,EACxDZ,EAAE,CAAE,SAAU;QAAC,CACb,CAAC,eACNK,IAAA,CAACF,YAAY;UAACa,aAAa,EAAG,GAAK;UAACP,MAAM,EAAGA;QAAQ,CAAE,CAAC;MAAA,CACpD;IAAC,CACE;EAAC,CACN,CAAC;AAER","ignoreList":[]}
1
+ {"version":3,"names":["__","Popover","useViewportMatch","BlockPreview","jsx","_jsx","jsxs","_jsxs","PreviewBlockPopover","blocks","isMobile","className","children","placement","focusOnMount","offset","viewportWidth"],"sources":["@wordpress/block-editor/src/components/block-switcher/preview-block-popover.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Popover } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\n\nexport default function PreviewBlockPopover( { blocks } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement=\"right-start\"\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview\">\n\t\t\t\t\t<div className=\"block-editor-block-switcher__preview-title\">\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<BlockPreview viewportWidth={ 500 } blocks={ blocks } />\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA;AACA;AACA,OAAOC,YAAY,MAAM,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE5C,eAAe,SAASC,mBAAmBA,CAAE;EAAEC;AAAO,CAAC,EAAG;EACzD,MAAMC,QAAQ,GAAGR,gBAAgB,CAAE,QAAQ,EAAE,GAAI,CAAC;EAElD,IAAKQ,QAAQ,EAAG;IACf,OAAO,IAAI;EACZ;EAEA,oBACCL,IAAA;IAAKM,SAAS,EAAC,wDAAwD;IAAAC,QAAA,eACtEP,IAAA,CAACJ,OAAO;MACPU,SAAS,EAAC,8CAA8C;MACxDE,SAAS,EAAC,aAAa;MACvBC,YAAY,EAAG,KAAO;MACtBC,MAAM,EAAG,EAAI;MAAAH,QAAA,eAEbL,KAAA;QAAKI,SAAS,EAAC,sCAAsC;QAAAC,QAAA,gBACpDP,IAAA;UAAKM,SAAS,EAAC,4CAA4C;UAAAC,QAAA,EACxDZ,EAAE,CAAE,SAAU;QAAC,CACb,CAAC,eACNK,IAAA,CAACF,YAAY;UAACa,aAAa,EAAG,GAAK;UAACP,MAAM,EAAGA;QAAQ,CAAE,CAAC;MAAA,CACpD;IAAC,CACE;EAAC,CACN,CAAC;AAER","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","cloneBlock","getMatchingBlockByName","getRetainedBlockAttributes","transformMatchingBlock","match","selectedBlock","retainedBlockAttributes","name","attributes","getPatternTransformedBlocks","selectedBlocks","patternBlocks","_patternBlocks","map","block","consumedBlocks","Set","isMatch","patternBlock","add","clientId","useTransformedPatterns","patterns","reduce","accumulator","_pattern","transformedBlocks","blocks","push"],"sources":["@wordpress/block-editor/src/components/block-switcher/use-transformed-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getMatchingBlockByName, getRetainedBlockAttributes } from './utils';\n\n/**\n * Mutate the matched block's attributes by getting\n * which block type's attributes to retain and prioritize\n * them in the merging of the attributes.\n *\n * @param {WPBlock} match The matched block.\n * @param {WPBlock} selectedBlock The selected block.\n * @return {void}\n */\nexport const transformMatchingBlock = ( match, selectedBlock ) => {\n\t// Get the block attributes to retain through the transformation.\n\tconst retainedBlockAttributes = getRetainedBlockAttributes(\n\t\tselectedBlock.name,\n\t\tselectedBlock.attributes\n\t);\n\tmatch.attributes = {\n\t\t...match.attributes,\n\t\t...retainedBlockAttributes,\n\t};\n};\n\n/**\n * By providing the selected blocks and pattern's blocks\n * find the matching blocks, transform them and return them.\n * If not all selected blocks are matched, return nothing.\n *\n * @param {WPBlock[]} selectedBlocks The selected blocks.\n * @param {WPBlock[]} patternBlocks The pattern's blocks.\n * @return {WPBlock[]|void} The transformed pattern's blocks or undefined if not all selected blocks have been matched.\n */\nexport const getPatternTransformedBlocks = (\n\tselectedBlocks,\n\tpatternBlocks\n) => {\n\t// Clone Pattern's blocks to produce new clientIds and be able to mutate the matches.\n\tconst _patternBlocks = patternBlocks.map( ( block ) =>\n\t\tcloneBlock( block )\n\t);\n\t/**\n\t * Keep track of the consumed pattern blocks.\n\t * This is needed because we loop the selected blocks\n\t * and for example we may have selected two paragraphs and\n\t * the pattern's blocks could have more `paragraphs`.\n\t */\n\tconst consumedBlocks = new Set();\n\tfor ( const selectedBlock of selectedBlocks ) {\n\t\tlet isMatch = false;\n\t\tfor ( const patternBlock of _patternBlocks ) {\n\t\t\tconst match = getMatchingBlockByName(\n\t\t\t\tpatternBlock,\n\t\t\t\tselectedBlock.name,\n\t\t\t\tconsumedBlocks\n\t\t\t);\n\t\t\tif ( ! match ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tisMatch = true;\n\t\t\tconsumedBlocks.add( match.clientId );\n\t\t\t// We update (mutate) the matching pattern block.\n\t\t\ttransformMatchingBlock( match, selectedBlock );\n\t\t\t// No need to loop through other pattern's blocks.\n\t\t\tbreak;\n\t\t}\n\t\t// Bail eary if a selected block has not been matched.\n\t\tif ( ! isMatch ) {\n\t\t\treturn;\n\t\t}\n\t}\n\treturn _patternBlocks;\n};\n\n/**\n * @typedef {WPBlockPattern & {transformedBlocks: WPBlock[]}} TransformedBlockPattern\n */\n\n/**\n * Custom hook that accepts patterns from state and the selected\n * blocks and tries to match these with the pattern's blocks.\n * If all selected blocks are matched with a Pattern's block,\n * we transform them by retaining block's attributes with `role:content`.\n * The transformed pattern's blocks are set to a new pattern\n * property `transformedBlocks`.\n *\n * @param {WPBlockPattern[]} patterns Patterns from state.\n * @param {WPBlock[]} selectedBlocks The currently selected blocks.\n * @return {TransformedBlockPattern[]} Returns the eligible matched patterns with all the selected blocks.\n */\nconst useTransformedPatterns = ( patterns, selectedBlocks ) => {\n\treturn useMemo(\n\t\t() =>\n\t\t\tpatterns.reduce( ( accumulator, _pattern ) => {\n\t\t\t\tconst transformedBlocks = getPatternTransformedBlocks(\n\t\t\t\t\tselectedBlocks,\n\t\t\t\t\t_pattern.blocks\n\t\t\t\t);\n\t\t\t\tif ( transformedBlocks ) {\n\t\t\t\t\taccumulator.push( {\n\t\t\t\t\t\t..._pattern,\n\t\t\t\t\t\ttransformedBlocks,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, [] ),\n\t\t[ patterns, selectedBlocks ]\n\t);\n};\n\nexport default useTransformedPatterns;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,UAAU,QAAQ,mBAAmB;;AAE9C;AACA;AACA;AACA,SAASC,sBAAsB,EAAEC,0BAA0B,QAAQ,SAAS;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAEC,KAAK,EAAEC,aAAa,KAAM;EACjE;EACA,MAAMC,uBAAuB,GAAGJ,0BAA0B,CACzDG,aAAa,CAACE,IAAI,EAClBF,aAAa,CAACG,UACf,CAAC;EACDJ,KAAK,CAACI,UAAU,GAAG;IAClB,GAAGJ,KAAK,CAACI,UAAU;IACnB,GAAGF;EACJ,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,2BAA2B,GAAGA,CAC1CC,cAAc,EACdC,aAAa,KACT;EACJ;EACA,MAAMC,cAAc,GAAGD,aAAa,CAACE,GAAG,CAAIC,KAAK,IAChDd,UAAU,CAAEc,KAAM,CACnB,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;EACC,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC;EAChC,KAAM,MAAMX,aAAa,IAAIK,cAAc,EAAG;IAC7C,IAAIO,OAAO,GAAG,KAAK;IACnB,KAAM,MAAMC,YAAY,IAAIN,cAAc,EAAG;MAC5C,MAAMR,KAAK,GAAGH,sBAAsB,CACnCiB,YAAY,EACZb,aAAa,CAACE,IAAI,EAClBQ,cACD,CAAC;MACD,IAAK,CAAEX,KAAK,EAAG;QACd;MACD;MACAa,OAAO,GAAG,IAAI;MACdF,cAAc,CAACI,GAAG,CAAEf,KAAK,CAACgB,QAAS,CAAC;MACpC;MACAjB,sBAAsB,CAAEC,KAAK,EAAEC,aAAc,CAAC;MAC9C;MACA;IACD;IACA;IACA,IAAK,CAAEY,OAAO,EAAG;MAChB;IACD;EACD;EACA,OAAOL,cAAc;AACtB,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMS,sBAAsB,GAAGA,CAAEC,QAAQ,EAAEZ,cAAc,KAAM;EAC9D,OAAOX,OAAO,CACb,MACCuB,QAAQ,CAACC,MAAM,CAAE,CAAEC,WAAW,EAAEC,QAAQ,KAAM;IAC7C,MAAMC,iBAAiB,GAAGjB,2BAA2B,CACpDC,cAAc,EACde,QAAQ,CAACE,MACV,CAAC;IACD,IAAKD,iBAAiB,EAAG;MACxBF,WAAW,CAACI,IAAI,CAAE;QACjB,GAAGH,QAAQ;QACXC;MACD,CAAE,CAAC;IACJ;IACA,OAAOF,WAAW;EACnB,CAAC,EAAE,EAAG,CAAC,EACR,CAAEF,QAAQ,EAAEZ,cAAc,CAC3B,CAAC;AACF,CAAC;AAED,eAAeW,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","cloneBlock","getMatchingBlockByName","getRetainedBlockAttributes","transformMatchingBlock","match","selectedBlock","retainedBlockAttributes","name","attributes","getPatternTransformedBlocks","selectedBlocks","patternBlocks","_patternBlocks","map","block","consumedBlocks","Set","isMatch","patternBlock","add","clientId","useTransformedPatterns","patterns","reduce","accumulator","_pattern","transformedBlocks","blocks","push"],"sources":["@wordpress/block-editor/src/components/block-switcher/use-transformed-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getMatchingBlockByName, getRetainedBlockAttributes } from './utils';\n\n/**\n * Mutate the matched block's attributes by getting\n * which block type's attributes to retain and prioritize\n * them in the merging of the attributes.\n *\n * @param {WPBlock} match The matched block.\n * @param {WPBlock} selectedBlock The selected block.\n * @return {void}\n */\nexport const transformMatchingBlock = ( match, selectedBlock ) => {\n\t// Get the block attributes to retain through the transformation.\n\tconst retainedBlockAttributes = getRetainedBlockAttributes(\n\t\tselectedBlock.name,\n\t\tselectedBlock.attributes\n\t);\n\tmatch.attributes = {\n\t\t...match.attributes,\n\t\t...retainedBlockAttributes,\n\t};\n};\n\n/**\n * By providing the selected blocks and pattern's blocks\n * find the matching blocks, transform them and return them.\n * If not all selected blocks are matched, return nothing.\n *\n * @param {WPBlock[]} selectedBlocks The selected blocks.\n * @param {WPBlock[]} patternBlocks The pattern's blocks.\n * @return {WPBlock[]|void} The transformed pattern's blocks or undefined if not all selected blocks have been matched.\n */\nexport const getPatternTransformedBlocks = (\n\tselectedBlocks,\n\tpatternBlocks\n) => {\n\t// Clone Pattern's blocks to produce new clientIds and be able to mutate the matches.\n\tconst _patternBlocks = patternBlocks.map( ( block ) =>\n\t\tcloneBlock( block )\n\t);\n\t/**\n\t * Keep track of the consumed pattern blocks.\n\t * This is needed because we loop the selected blocks\n\t * and for example we may have selected two paragraphs and\n\t * the pattern's blocks could have more `paragraphs`.\n\t */\n\tconst consumedBlocks = new Set();\n\tfor ( const selectedBlock of selectedBlocks ) {\n\t\tlet isMatch = false;\n\t\tfor ( const patternBlock of _patternBlocks ) {\n\t\t\tconst match = getMatchingBlockByName(\n\t\t\t\tpatternBlock,\n\t\t\t\tselectedBlock.name,\n\t\t\t\tconsumedBlocks\n\t\t\t);\n\t\t\tif ( ! match ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tisMatch = true;\n\t\t\tconsumedBlocks.add( match.clientId );\n\t\t\t// We update (mutate) the matching pattern block.\n\t\t\ttransformMatchingBlock( match, selectedBlock );\n\t\t\t// No need to loop through other pattern's blocks.\n\t\t\tbreak;\n\t\t}\n\t\t// Bail eary if a selected block has not been matched.\n\t\tif ( ! isMatch ) {\n\t\t\treturn;\n\t\t}\n\t}\n\treturn _patternBlocks;\n};\n\n/**\n * @typedef {WPBlockPattern & {transformedBlocks: WPBlock[]}} TransformedBlockPattern\n */\n\n/**\n * Custom hook that accepts patterns from state and the selected\n * blocks and tries to match these with the pattern's blocks.\n * If all selected blocks are matched with a Pattern's block,\n * we transform them by retaining block's attributes with `role:content`.\n * The transformed pattern's blocks are set to a new pattern\n * property `transformedBlocks`.\n *\n * @param {WPBlockPattern[]} patterns Patterns from state.\n * @param {WPBlock[]} selectedBlocks The currently selected blocks.\n * @return {TransformedBlockPattern[]} Returns the eligible matched patterns with all the selected blocks.\n */\nconst useTransformedPatterns = ( patterns, selectedBlocks ) => {\n\treturn useMemo(\n\t\t() =>\n\t\t\tpatterns.reduce( ( accumulator, _pattern ) => {\n\t\t\t\tconst transformedBlocks = getPatternTransformedBlocks(\n\t\t\t\t\tselectedBlocks,\n\t\t\t\t\t_pattern.blocks\n\t\t\t\t);\n\t\t\t\tif ( transformedBlocks ) {\n\t\t\t\t\taccumulator.push( {\n\t\t\t\t\t\t..._pattern,\n\t\t\t\t\t\ttransformedBlocks,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, [] ),\n\t\t[ patterns, selectedBlocks ]\n\t);\n};\n\nexport default useTransformedPatterns;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,UAAU,QAAQ,mBAAmB;;AAE9C;AACA;AACA;AACA,SAASC,sBAAsB,EAAEC,0BAA0B,QAAQ,SAAS;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAEC,KAAK,EAAEC,aAAa,KAAM;EACjE;EACA,MAAMC,uBAAuB,GAAGJ,0BAA0B,CACzDG,aAAa,CAACE,IAAI,EAClBF,aAAa,CAACG,UACf,CAAC;EACDJ,KAAK,CAACI,UAAU,GAAG;IAClB,GAAGJ,KAAK,CAACI,UAAU;IACnB,GAAGF;EACJ,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,2BAA2B,GAAGA,CAC1CC,cAAc,EACdC,aAAa,KACT;EACJ;EACA,MAAMC,cAAc,GAAGD,aAAa,CAACE,GAAG,CAAIC,KAAK,IAChDd,UAAU,CAAEc,KAAM,CACnB,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;EACC,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC;EAChC,KAAM,MAAMX,aAAa,IAAIK,cAAc,EAAG;IAC7C,IAAIO,OAAO,GAAG,KAAK;IACnB,KAAM,MAAMC,YAAY,IAAIN,cAAc,EAAG;MAC5C,MAAMR,KAAK,GAAGH,sBAAsB,CACnCiB,YAAY,EACZb,aAAa,CAACE,IAAI,EAClBQ,cACD,CAAC;MACD,IAAK,CAAEX,KAAK,EAAG;QACd;MACD;MACAa,OAAO,GAAG,IAAI;MACdF,cAAc,CAACI,GAAG,CAAEf,KAAK,CAACgB,QAAS,CAAC;MACpC;MACAjB,sBAAsB,CAAEC,KAAK,EAAEC,aAAc,CAAC;MAC9C;MACA;IACD;IACA;IACA,IAAK,CAAEY,OAAO,EAAG;MAChB;IACD;EACD;EACA,OAAOL,cAAc;AACtB,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMS,sBAAsB,GAAGA,CAAEC,QAAQ,EAAEZ,cAAc,KAAM;EAC9D,OAAOX,OAAO,CACb,MACCuB,QAAQ,CAACC,MAAM,CAAE,CAAEC,WAAW,EAAEC,QAAQ,KAAM;IAC7C,MAAMC,iBAAiB,GAAGjB,2BAA2B,CACpDC,cAAc,EACde,QAAQ,CAACE,MACV,CAAC;IACD,IAAKD,iBAAiB,EAAG;MACxBF,WAAW,CAACI,IAAI,CAAE;QACjB,GAAGH,QAAQ;QACXC;MACD,CAAE,CAAC;IACJ;IACA,OAAOF,WAAW;EACnB,CAAC,EAAE,EAAG,CAAC,EACR,CAAEF,QAAQ,EAAEZ,cAAc,CAC3B,CAAC;AACF,CAAC;AAED,eAAeW,sBAAsB","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["getBlockAttributesNamesByRole","getMatchingBlockByName","block","selectedBlockName","consumedBlocks","Set","clientId","name","innerBlocks","has","innerBlock","match","getRetainedBlockAttributes","attributes","contentAttributes","length","reduce","_accumulator","attribute"],"sources":["@wordpress/block-editor/src/components/block-switcher/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockAttributesNamesByRole } from '@wordpress/blocks';\n\n/**\n * Try to find a matching block by a block's name in a provided\n * block. We recurse through InnerBlocks and return the reference\n * of the matched block (it could be an InnerBlock).\n * If no match is found return nothing.\n *\n * @param {WPBlock} block The block to try to find a match.\n * @param {string} selectedBlockName The block's name to use for matching condition.\n * @param {Set} consumedBlocks A set holding the previously matched/consumed blocks.\n *\n * @return {WPBlock | undefined} The matched block if found or nothing(`undefined`).\n */\nexport const getMatchingBlockByName = (\n\tblock,\n\tselectedBlockName,\n\tconsumedBlocks = new Set()\n) => {\n\tconst { clientId, name, innerBlocks = [] } = block;\n\t// Check if block has been consumed already.\n\tif ( consumedBlocks.has( clientId ) ) {\n\t\treturn;\n\t}\n\tif ( name === selectedBlockName ) {\n\t\treturn block;\n\t}\n\t// Try to find a matching block from InnerBlocks recursively.\n\tfor ( const innerBlock of innerBlocks ) {\n\t\tconst match = getMatchingBlockByName(\n\t\t\tinnerBlock,\n\t\t\tselectedBlockName,\n\t\t\tconsumedBlocks\n\t\t);\n\t\tif ( match ) {\n\t\t\treturn match;\n\t\t}\n\t}\n};\n\n/**\n * Find and return the block attributes to retain through\n * the transformation, based on Block Type's `role:content`\n * attributes. If no `role:content` attributes exist,\n * return selected block's attributes.\n *\n * @param {string} name Block type's namespaced name.\n * @param {Object} attributes Selected block's attributes.\n * @return {Object} The block's attributes to retain.\n */\nexport const getRetainedBlockAttributes = ( name, attributes ) => {\n\tconst contentAttributes = getBlockAttributesNamesByRole( name, 'content' );\n\tif ( ! contentAttributes?.length ) {\n\t\treturn attributes;\n\t}\n\n\treturn contentAttributes.reduce( ( _accumulator, attribute ) => {\n\t\tif ( attributes[ attribute ] ) {\n\t\t\t_accumulator[ attribute ] = attributes[ attribute ];\n\t\t}\n\t\treturn _accumulator;\n\t}, {} );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,6BAA6B,QAAQ,mBAAmB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CACrCC,KAAK,EACLC,iBAAiB,EACjBC,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC,KACtB;EACJ,MAAM;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,WAAW,GAAG;EAAG,CAAC,GAAGN,KAAK;EAClD;EACA,IAAKE,cAAc,CAACK,GAAG,CAAEH,QAAS,CAAC,EAAG;IACrC;EACD;EACA,IAAKC,IAAI,KAAKJ,iBAAiB,EAAG;IACjC,OAAOD,KAAK;EACb;EACA;EACA,KAAM,MAAMQ,UAAU,IAAIF,WAAW,EAAG;IACvC,MAAMG,KAAK,GAAGV,sBAAsB,CACnCS,UAAU,EACVP,iBAAiB,EACjBC,cACD,CAAC;IACD,IAAKO,KAAK,EAAG;MACZ,OAAOA,KAAK;IACb;EACD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGA,CAAEL,IAAI,EAAEM,UAAU,KAAM;EACjE,MAAMC,iBAAiB,GAAGd,6BAA6B,CAAEO,IAAI,EAAE,SAAU,CAAC;EAC1E,IAAK,CAAEO,iBAAiB,EAAEC,MAAM,EAAG;IAClC,OAAOF,UAAU;EAClB;EAEA,OAAOC,iBAAiB,CAACE,MAAM,CAAE,CAAEC,YAAY,EAAEC,SAAS,KAAM;IAC/D,IAAKL,UAAU,CAAEK,SAAS,CAAE,EAAG;MAC9BD,YAAY,CAAEC,SAAS,CAAE,GAAGL,UAAU,CAAEK,SAAS,CAAE;IACpD;IACA,OAAOD,YAAY;EACpB,CAAC,EAAE,CAAC,CAAE,CAAC;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getBlockAttributesNamesByRole","getMatchingBlockByName","block","selectedBlockName","consumedBlocks","Set","clientId","name","innerBlocks","has","innerBlock","match","getRetainedBlockAttributes","attributes","contentAttributes","length","reduce","_accumulator","attribute"],"sources":["@wordpress/block-editor/src/components/block-switcher/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockAttributesNamesByRole } from '@wordpress/blocks';\n\n/**\n * Try to find a matching block by a block's name in a provided\n * block. We recurse through InnerBlocks and return the reference\n * of the matched block (it could be an InnerBlock).\n * If no match is found return nothing.\n *\n * @param {WPBlock} block The block to try to find a match.\n * @param {string} selectedBlockName The block's name to use for matching condition.\n * @param {Set} consumedBlocks A set holding the previously matched/consumed blocks.\n *\n * @return {WPBlock | undefined} The matched block if found or nothing(`undefined`).\n */\nexport const getMatchingBlockByName = (\n\tblock,\n\tselectedBlockName,\n\tconsumedBlocks = new Set()\n) => {\n\tconst { clientId, name, innerBlocks = [] } = block;\n\t// Check if block has been consumed already.\n\tif ( consumedBlocks.has( clientId ) ) {\n\t\treturn;\n\t}\n\tif ( name === selectedBlockName ) {\n\t\treturn block;\n\t}\n\t// Try to find a matching block from InnerBlocks recursively.\n\tfor ( const innerBlock of innerBlocks ) {\n\t\tconst match = getMatchingBlockByName(\n\t\t\tinnerBlock,\n\t\t\tselectedBlockName,\n\t\t\tconsumedBlocks\n\t\t);\n\t\tif ( match ) {\n\t\t\treturn match;\n\t\t}\n\t}\n};\n\n/**\n * Find and return the block attributes to retain through\n * the transformation, based on Block Type's `role:content`\n * attributes. If no `role:content` attributes exist,\n * return selected block's attributes.\n *\n * @param {string} name Block type's namespaced name.\n * @param {Object} attributes Selected block's attributes.\n * @return {Object} The block's attributes to retain.\n */\nexport const getRetainedBlockAttributes = ( name, attributes ) => {\n\tconst contentAttributes = getBlockAttributesNamesByRole( name, 'content' );\n\tif ( ! contentAttributes?.length ) {\n\t\treturn attributes;\n\t}\n\n\treturn contentAttributes.reduce( ( _accumulator, attribute ) => {\n\t\tif ( attributes[ attribute ] ) {\n\t\t\t_accumulator[ attribute ] = attributes[ attribute ];\n\t\t}\n\t\treturn _accumulator;\n\t}, {} );\n};\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,6BAA6B,QAAQ,mBAAmB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CACrCC,KAAK,EACLC,iBAAiB,EACjBC,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC,KACtB;EACJ,MAAM;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,WAAW,GAAG;EAAG,CAAC,GAAGN,KAAK;EAClD;EACA,IAAKE,cAAc,CAACK,GAAG,CAAEH,QAAS,CAAC,EAAG;IACrC;EACD;EACA,IAAKC,IAAI,KAAKJ,iBAAiB,EAAG;IACjC,OAAOD,KAAK;EACb;EACA;EACA,KAAM,MAAMQ,UAAU,IAAIF,WAAW,EAAG;IACvC,MAAMG,KAAK,GAAGV,sBAAsB,CACnCS,UAAU,EACVP,iBAAiB,EACjBC,cACD,CAAC;IACD,IAAKO,KAAK,EAAG;MACZ,OAAOA,KAAK;IACb;EACD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGA,CAAEL,IAAI,EAAEM,UAAU,KAAM;EACjE,MAAMC,iBAAiB,GAAGd,6BAA6B,CAAEO,IAAI,EAAE,SAAU,CAAC;EAC1E,IAAK,CAAEO,iBAAiB,EAAEC,MAAM,EAAG;IAClC,OAAOF,UAAU;EAClB;EAEA,OAAOC,iBAAiB,CAACE,MAAM,CAAE,CAAEC,YAAY,EAAEC,SAAS,KAAM;IAC/D,IAAKL,UAAU,CAAEK,SAAS,CAAE,EAAG;MAC9BD,YAAY,CAAEC,SAAS,CAAE,GAAGL,UAAU,CAAEK,SAAS,CAAE;IACpD;IACA,OAAOD,YAAY;EACpB,CAAC,EAAE,CAAC,CAAE,CAAC;AACR,CAAC","ignoreList":[]}
@@ -26,8 +26,7 @@ import { getMoversSetup } from '../block-mover/mover-description';
26
26
  import { store as blockEditorStore } from '../../store';
27
27
  import BlockTransformationsMenu from '../block-switcher/block-transformations-menu';
28
28
  import { useConvertToGroupButtons, useConvertToGroupButtonProps } from '../convert-to-group-buttons';
29
- import { jsx as _jsx } from "react/jsx-runtime";
30
- import { jsxs as _jsxs } from "react/jsx-runtime";
29
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
31
30
  const BlockActionsMenu = ({
32
31
  // Select.
33
32
  blockTitle,