@wordpress/block-editor 14.6.0 → 14.7.1-next.082ed6819.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 (332) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-controls/slot.js +6 -3
  3. package/build/components/block-controls/slot.js.map +1 -1
  4. package/build/components/block-inspector/index.js +1 -2
  5. package/build/components/block-inspector/index.js.map +1 -1
  6. package/build/components/block-list/block.js +14 -28
  7. package/build/components/block-list/block.js.map +1 -1
  8. package/build/components/block-lock/modal.js +1 -1
  9. package/build/components/block-lock/modal.js.map +1 -1
  10. package/build/components/block-manager/category.js +79 -0
  11. package/build/components/block-manager/category.js.map +1 -0
  12. package/build/components/block-manager/checklist.js +40 -0
  13. package/build/components/block-manager/checklist.js.map +1 -0
  14. package/build/components/block-manager/index.js +108 -0
  15. package/build/components/block-manager/index.js.map +1 -0
  16. package/build/components/block-patterns-list/index.js +23 -26
  17. package/build/components/block-patterns-list/index.js.map +1 -1
  18. package/build/components/block-popover/index.js +1 -1
  19. package/build/components/block-popover/index.js.map +1 -1
  20. package/build/components/block-preview/async.js +51 -0
  21. package/build/components/block-preview/async.js.map +1 -0
  22. package/build/components/block-preview/index.js +4 -1
  23. package/build/components/block-preview/index.js.map +1 -1
  24. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  25. package/build/components/block-settings-menu/index.js.map +1 -1
  26. package/build/components/block-toolbar/change-design.js +1 -4
  27. package/build/components/block-toolbar/change-design.js.map +1 -1
  28. package/build/components/block-toolbar/index.js +7 -2
  29. package/build/components/block-toolbar/index.js.map +1 -1
  30. package/build/components/block-toolbar/switch-section-style.js +105 -0
  31. package/build/components/block-toolbar/switch-section-style.js.map +1 -0
  32. package/build/components/block-tools/index.js +12 -9
  33. package/build/components/block-tools/index.js.map +1 -1
  34. package/build/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  35. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  36. package/build/components/block-tools/use-show-block-tools.js +4 -1
  37. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  38. package/build/components/collab/block-comment-icon-slot.js +2 -6
  39. package/build/components/collab/block-comment-icon-slot.js.map +1 -1
  40. package/build/components/collab/block-comment-icon-toolbar-slot.js +2 -6
  41. package/build/components/collab/block-comment-icon-toolbar-slot.js.map +1 -1
  42. package/build/components/color-palette/with-color-context.js +4 -2
  43. package/build/components/color-palette/with-color-context.js.map +1 -1
  44. package/build/components/font-family/index.js +14 -13
  45. package/build/components/font-family/index.js.map +1 -1
  46. package/build/components/global-styles/dimensions-panel.js +26 -14
  47. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  48. package/build/components/global-styles/use-global-styles-output.js +1 -1
  49. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  50. package/build/components/iframe/get-compatibility-styles.js +4 -4
  51. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  52. package/build/components/iframe/index.js +156 -23
  53. package/build/components/iframe/index.js.map +1 -1
  54. package/build/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  55. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  56. package/build/components/inserter/block-patterns-tab/index.js +1 -2
  57. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  58. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -6
  59. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  60. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +3 -0
  61. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  62. package/build/components/inserter/block-patterns-tab/utils.js +5 -1
  63. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  64. package/build/components/inserter/category-tabs/index.js +7 -8
  65. package/build/components/inserter/category-tabs/index.js.map +1 -1
  66. package/build/components/inserter/hooks/use-block-types-state.js +1 -1
  67. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  68. package/build/components/inserter/hooks/use-patterns-paging.js +0 -5
  69. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -1
  70. package/build/components/inserter/search-results.js +0 -2
  71. package/build/components/inserter/search-results.js.map +1 -1
  72. package/build/components/inserter-draggable-blocks/index.js +2 -1
  73. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  74. package/build/components/inspector-controls/slot.js +7 -4
  75. package/build/components/inspector-controls/slot.js.map +1 -1
  76. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  77. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  78. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +4 -4
  79. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  80. package/build/components/media-placeholder/index.js +33 -25
  81. package/build/components/media-placeholder/index.js.map +1 -1
  82. package/build/components/rich-text/index.js +1 -1
  83. package/build/components/rich-text/index.js.map +1 -1
  84. package/build/components/tabbed-sidebar/index.js +1 -1
  85. package/build/components/tabbed-sidebar/index.js.map +1 -1
  86. package/build/components/url-input/index.js +3 -1
  87. package/build/components/url-input/index.js.map +1 -1
  88. package/build/components/use-block-commands/index.js +5 -6
  89. package/build/components/use-block-commands/index.js.map +1 -1
  90. package/build/hooks/border.js +3 -3
  91. package/build/hooks/border.js.map +1 -1
  92. package/build/hooks/color.js +1 -1
  93. package/build/hooks/color.js.map +1 -1
  94. package/build/hooks/dimensions.js +2 -2
  95. package/build/hooks/dimensions.js.map +1 -1
  96. package/build/hooks/font-family.js +1 -1
  97. package/build/hooks/font-family.js.map +1 -1
  98. package/build/hooks/style.js +6 -6
  99. package/build/hooks/style.js.map +1 -1
  100. package/build/hooks/supports.js +7 -7
  101. package/build/hooks/supports.js.map +1 -1
  102. package/build/hooks/typography.js +6 -6
  103. package/build/hooks/typography.js.map +1 -1
  104. package/build/hooks/utils.js +3 -3
  105. package/build/hooks/utils.js.map +1 -1
  106. package/build/layouts/flex.js +11 -9
  107. package/build/layouts/flex.js.map +1 -1
  108. package/build/lock-unlock.js.map +1 -1
  109. package/build/private-apis.js +4 -4
  110. package/build/private-apis.js.map +1 -1
  111. package/build/store/private-selectors.js +3 -3
  112. package/build/store/private-selectors.js.map +1 -1
  113. package/build/store/selectors.js +12 -8
  114. package/build/store/selectors.js.map +1 -1
  115. package/build/store/utils.js +5 -4
  116. package/build/store/utils.js.map +1 -1
  117. package/build/utils/dom.js +27 -22
  118. package/build/utils/dom.js.map +1 -1
  119. package/build-module/components/block-controls/slot.js +6 -3
  120. package/build-module/components/block-controls/slot.js.map +1 -1
  121. package/build-module/components/block-inspector/index.js +1 -2
  122. package/build-module/components/block-inspector/index.js.map +1 -1
  123. package/build-module/components/block-list/block.js +15 -27
  124. package/build-module/components/block-list/block.js.map +1 -1
  125. package/build-module/components/block-lock/modal.js +1 -1
  126. package/build-module/components/block-lock/modal.js.map +1 -1
  127. package/build-module/components/block-manager/category.js +71 -0
  128. package/build-module/components/block-manager/category.js.map +1 -0
  129. package/build-module/components/block-manager/checklist.js +32 -0
  130. package/build-module/components/block-manager/checklist.js.map +1 -0
  131. package/build-module/components/block-manager/index.js +102 -0
  132. package/build-module/components/block-manager/index.js.map +1 -0
  133. package/build-module/components/block-patterns-list/index.js +23 -26
  134. package/build-module/components/block-patterns-list/index.js.map +1 -1
  135. package/build-module/components/block-popover/index.js +2 -2
  136. package/build-module/components/block-popover/index.js.map +1 -1
  137. package/build-module/components/block-preview/async.js +44 -0
  138. package/build-module/components/block-preview/async.js.map +1 -0
  139. package/build-module/components/block-preview/index.js +4 -1
  140. package/build-module/components/block-preview/index.js.map +1 -1
  141. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
  142. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  143. package/build-module/components/block-settings-menu/index.js +2 -2
  144. package/build-module/components/block-settings-menu/index.js.map +1 -1
  145. package/build-module/components/block-toolbar/change-design.js +1 -4
  146. package/build-module/components/block-toolbar/change-design.js.map +1 -1
  147. package/build-module/components/block-toolbar/index.js +7 -2
  148. package/build-module/components/block-toolbar/index.js.map +1 -1
  149. package/build-module/components/block-toolbar/switch-section-style.js +97 -0
  150. package/build-module/components/block-toolbar/switch-section-style.js.map +1 -0
  151. package/build-module/components/block-tools/index.js +13 -10
  152. package/build-module/components/block-tools/index.js.map +1 -1
  153. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -2
  154. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  155. package/build-module/components/block-tools/use-show-block-tools.js +4 -1
  156. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  157. package/build-module/components/collab/block-comment-icon-slot.js +2 -6
  158. package/build-module/components/collab/block-comment-icon-slot.js.map +1 -1
  159. package/build-module/components/collab/block-comment-icon-toolbar-slot.js +2 -6
  160. package/build-module/components/collab/block-comment-icon-toolbar-slot.js.map +1 -1
  161. package/build-module/components/color-palette/with-color-context.js +4 -2
  162. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  163. package/build-module/components/font-family/index.js +15 -14
  164. package/build-module/components/font-family/index.js.map +1 -1
  165. package/build-module/components/global-styles/dimensions-panel.js +26 -14
  166. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  167. package/build-module/components/global-styles/use-global-styles-output.js +1 -1
  168. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  169. package/build-module/components/iframe/get-compatibility-styles.js +4 -4
  170. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  171. package/build-module/components/iframe/index.js +157 -24
  172. package/build-module/components/iframe/index.js.map +1 -1
  173. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  174. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  175. package/build-module/components/inserter/block-patterns-tab/index.js +1 -2
  176. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  177. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +5 -7
  178. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  179. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +4 -1
  180. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  181. package/build-module/components/inserter/block-patterns-tab/utils.js +4 -0
  182. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  183. package/build-module/components/inserter/category-tabs/index.js +8 -9
  184. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  185. package/build-module/components/inserter/hooks/use-block-types-state.js +1 -1
  186. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  187. package/build-module/components/inserter/hooks/use-patterns-paging.js +1 -6
  188. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -1
  189. package/build-module/components/inserter/search-results.js +0 -2
  190. package/build-module/components/inserter/search-results.js.map +1 -1
  191. package/build-module/components/inserter-draggable-blocks/index.js +2 -1
  192. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  193. package/build-module/components/inspector-controls/slot.js +7 -4
  194. package/build-module/components/inspector-controls/slot.js.map +1 -1
  195. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  196. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  197. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +4 -4
  198. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  199. package/build-module/components/media-placeholder/index.js +33 -25
  200. package/build-module/components/media-placeholder/index.js.map +1 -1
  201. package/build-module/components/rich-text/index.js +1 -1
  202. package/build-module/components/rich-text/index.js.map +1 -1
  203. package/build-module/components/tabbed-sidebar/index.js +1 -1
  204. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  205. package/build-module/components/url-input/index.js +3 -1
  206. package/build-module/components/url-input/index.js.map +1 -1
  207. package/build-module/components/use-block-commands/index.js +4 -4
  208. package/build-module/components/use-block-commands/index.js.map +1 -1
  209. package/build-module/hooks/border.js +3 -3
  210. package/build-module/hooks/border.js.map +1 -1
  211. package/build-module/hooks/color.js +1 -1
  212. package/build-module/hooks/color.js.map +1 -1
  213. package/build-module/hooks/dimensions.js +2 -2
  214. package/build-module/hooks/dimensions.js.map +1 -1
  215. package/build-module/hooks/font-family.js +1 -1
  216. package/build-module/hooks/font-family.js.map +1 -1
  217. package/build-module/hooks/style.js +6 -6
  218. package/build-module/hooks/style.js.map +1 -1
  219. package/build-module/hooks/supports.js +7 -7
  220. package/build-module/hooks/supports.js.map +1 -1
  221. package/build-module/hooks/typography.js +6 -6
  222. package/build-module/hooks/typography.js.map +1 -1
  223. package/build-module/hooks/utils.js +3 -3
  224. package/build-module/hooks/utils.js.map +1 -1
  225. package/build-module/layouts/flex.js +11 -9
  226. package/build-module/layouts/flex.js.map +1 -1
  227. package/build-module/lock-unlock.js.map +1 -1
  228. package/build-module/private-apis.js +6 -6
  229. package/build-module/private-apis.js.map +1 -1
  230. package/build-module/store/private-selectors.js +3 -3
  231. package/build-module/store/private-selectors.js.map +1 -1
  232. package/build-module/store/selectors.js +12 -8
  233. package/build-module/store/selectors.js.map +1 -1
  234. package/build-module/store/utils.js +3 -3
  235. package/build-module/store/utils.js.map +1 -1
  236. package/build-module/utils/dom.js +25 -21
  237. package/build-module/utils/dom.js.map +1 -1
  238. package/build-style/content-rtl.css +30 -15
  239. package/build-style/content.css +30 -15
  240. package/build-style/style-rtl.css +92 -3
  241. package/build-style/style.css +92 -3
  242. package/build-types/utils/dom.d.ts +7 -9
  243. package/build-types/utils/dom.d.ts.map +1 -1
  244. package/package.json +32 -31
  245. package/src/components/block-canvas/style.scss +1 -1
  246. package/src/components/block-controls/slot.js +5 -3
  247. package/src/components/block-inspector/index.js +0 -2
  248. package/src/components/block-inspector/style.scss +2 -1
  249. package/src/components/block-list/block.js +28 -48
  250. package/src/components/block-lock/modal.js +1 -1
  251. package/src/components/block-manager/category.js +102 -0
  252. package/src/components/block-manager/checklist.js +34 -0
  253. package/src/components/block-manager/index.js +127 -0
  254. package/src/components/block-manager/style.scss +82 -0
  255. package/src/components/block-mover/README.md +15 -8
  256. package/src/components/block-mover/stories/index.story.js +73 -71
  257. package/src/components/block-mover/style.scss +3 -0
  258. package/src/components/block-patterns-list/README.md +8 -8
  259. package/src/components/block-patterns-list/index.js +35 -51
  260. package/src/components/block-patterns-list/stories/index.story.js +2 -19
  261. package/src/components/block-popover/index.js +4 -4
  262. package/src/components/block-preview/async.js +43 -0
  263. package/src/components/block-preview/index.js +6 -1
  264. package/src/components/block-settings-menu/block-settings-dropdown.js +2 -2
  265. package/src/components/block-settings-menu/index.js +2 -2
  266. package/src/components/block-toolbar/change-design.js +1 -7
  267. package/src/components/block-toolbar/index.js +6 -0
  268. package/src/components/block-toolbar/switch-section-style.js +115 -0
  269. package/src/components/block-tools/index.js +26 -10
  270. package/src/components/block-tools/style.scss +12 -0
  271. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -2
  272. package/src/components/block-tools/use-show-block-tools.js +3 -1
  273. package/src/components/collab/block-comment-icon-slot.js +2 -6
  274. package/src/components/collab/block-comment-icon-toolbar-slot.js +3 -5
  275. package/src/components/color-palette/with-color-context.js +25 -7
  276. package/src/components/default-block-appender/content.scss +13 -19
  277. package/src/components/font-family/index.js +13 -13
  278. package/src/components/global-styles/dimensions-panel.js +22 -16
  279. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  280. package/src/components/global-styles/use-global-styles-output.js +1 -1
  281. package/src/components/iframe/content.scss +16 -3
  282. package/src/components/iframe/get-compatibility-styles.js +4 -9
  283. package/src/components/iframe/index.js +204 -44
  284. package/src/components/inserter/block-patterns-explorer/pattern-list.js +3 -6
  285. package/src/components/inserter/block-patterns-tab/index.js +0 -1
  286. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +15 -17
  287. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +8 -0
  288. package/src/components/inserter/block-patterns-tab/utils.js +5 -0
  289. package/src/components/inserter/category-tabs/index.js +8 -9
  290. package/src/components/inserter/hooks/use-block-types-state.js +6 -1
  291. package/src/components/inserter/hooks/use-patterns-paging.js +1 -6
  292. package/src/components/inserter/search-results.js +0 -6
  293. package/src/components/inserter-draggable-blocks/index.js +10 -1
  294. package/src/components/inspector-controls/README.md +2 -0
  295. package/src/components/inspector-controls/slot.js +6 -4
  296. package/src/components/inspector-controls-tabs/position-controls-panel.js +1 -3
  297. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +10 -10
  298. package/src/components/media-placeholder/index.js +41 -37
  299. package/src/components/provider/test/use-block-sync.js +3 -1
  300. package/src/components/rich-text/content.scss +15 -10
  301. package/src/components/rich-text/index.js +8 -1
  302. package/src/components/tabbed-sidebar/index.js +1 -1
  303. package/src/components/tabbed-sidebar/style.scss +1 -1
  304. package/src/components/url-input/index.js +3 -4
  305. package/src/components/use-block-commands/index.js +245 -234
  306. package/src/hooks/border.js +3 -9
  307. package/src/hooks/color.js +1 -1
  308. package/src/hooks/dimensions.js +2 -2
  309. package/src/hooks/font-family.js +1 -1
  310. package/src/hooks/style.js +6 -12
  311. package/src/hooks/supports.js +7 -7
  312. package/src/hooks/test/style.js +1 -2
  313. package/src/hooks/typography.js +6 -6
  314. package/src/hooks/utils.js +8 -3
  315. package/src/layouts/flex.js +26 -18
  316. package/src/private-apis.js +6 -6
  317. package/src/store/private-selectors.js +6 -7
  318. package/src/store/selectors.js +60 -45
  319. package/src/store/test/private-selectors.js +5 -0
  320. package/src/store/test/selectors.js +87 -58
  321. package/src/store/utils.js +12 -11
  322. package/src/style.scss +1 -0
  323. package/src/utils/dom.js +26 -21
  324. package/src/utils/test/dom.js +224 -0
  325. package/tsconfig.json +1 -0
  326. package/tsconfig.tsbuildinfo +1 -1
  327. package/build/components/block-info-slot-fill/index.js +0 -39
  328. package/build/components/block-info-slot-fill/index.js.map +0 -1
  329. package/build-module/components/block-info-slot-fill/index.js +0 -32
  330. package/build-module/components/block-info-slot-fill/index.js.map +0 -1
  331. package/src/components/block-info-slot-fill/index.js +0 -27
  332. /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getAllPatternsDependants = exports.checkAllowListRecursive = exports.checkAllowList = void 0;
7
7
  exports.getGrammar = getGrammar;
8
- exports.getInsertBlockTypeDependants = getInsertBlockTypeDependants;
8
+ exports.getInsertBlockTypeDependants = void 0;
9
9
  exports.getParsedPattern = getParsedPattern;
10
10
  exports.isFiltered = void 0;
11
11
  var _blocks = require("@wordpress/blocks");
@@ -101,7 +101,8 @@ const getAllPatternsDependants = select => state => {
101
101
  return [state.settings.__experimentalBlockPatterns, state.settings.__experimentalUserPatternCategories, state.settings.__experimentalReusableBlocks, state.settings[_privateKeys.selectBlockPatternsKey]?.(select), state.blockPatterns, (0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks()];
102
102
  };
103
103
  exports.getAllPatternsDependants = getAllPatternsDependants;
104
- function getInsertBlockTypeDependants(state, rootClientId) {
105
- return [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockEditingModes, state.editorMode, (0, _privateSelectors.getSectionRootClientId)(state)];
106
- }
104
+ const getInsertBlockTypeDependants = select => (state, rootClientId) => {
105
+ return [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockEditingModes, select(_constants.STORE_NAME).__unstableGetEditorMode(state), (0, _privateSelectors.getSectionRootClientId)(state)];
106
+ };
107
+ exports.getInsertBlockTypeDependants = getInsertBlockTypeDependants;
107
108
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_blockSerializationDefaultParser","_privateKeys","_lockUnlock","_constants","_privateSelectors","isFiltered","exports","Symbol","parsedPatternCache","WeakMap","grammarMapCache","parsePattern","pattern","blocks","parse","content","__unstableSkipMigrationLogs","length","attributes","metadata","categories","patternName","name","title","getParsedPattern","parsedPattern","get","set","getGrammar","grammarMap","grammarParse","filter","block","blockName","checkAllowList","list","item","defaultResult","Array","isArray","includes","checkAllowListRecursive","allowedBlockTypes","blocksQueue","shift","isAllowed","innerBlocks","forEach","innerBlock","push","getAllPatternsDependants","select","state","settings","__experimentalBlockPatterns","__experimentalUserPatternCategories","__experimentalReusableBlocks","selectBlockPatternsKey","blockPatterns","unlock","STORE_NAME","getReusableBlocks","getInsertBlockTypeDependants","rootClientId","blockListSettings","byClientId","templateLock","blockEditingModes","editorMode","getSectionRootClientId"],"sources":["@wordpress/block-editor/src/store/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { parse as grammarParse } from '@wordpress/block-serialization-default-parser';\n\n/**\n * Internal dependencies\n */\nimport { selectBlockPatternsKey } from './private-keys';\nimport { unlock } from '../lock-unlock';\nimport { STORE_NAME } from './constants';\nimport { getSectionRootClientId } from './private-selectors';\n\nexport const isFiltered = Symbol( 'isFiltered' );\nconst parsedPatternCache = new WeakMap();\nconst grammarMapCache = new WeakMap();\n\nfunction parsePattern( pattern ) {\n\tconst blocks = parse( pattern.content, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} );\n\tif ( blocks.length === 1 ) {\n\t\tblocks[ 0 ].attributes = {\n\t\t\t...blocks[ 0 ].attributes,\n\t\t\tmetadata: {\n\t\t\t\t...( blocks[ 0 ].attributes.metadata || {} ),\n\t\t\t\tcategories: pattern.categories,\n\t\t\t\tpatternName: pattern.name,\n\t\t\t\tname: blocks[ 0 ].attributes.metadata?.name || pattern.title,\n\t\t\t},\n\t\t};\n\t}\n\treturn {\n\t\t...pattern,\n\t\tblocks,\n\t};\n}\n\nexport function getParsedPattern( pattern ) {\n\tlet parsedPattern = parsedPatternCache.get( pattern );\n\tif ( ! parsedPattern ) {\n\t\tparsedPattern = parsePattern( pattern );\n\t\tparsedPatternCache.set( pattern, parsedPattern );\n\t}\n\treturn parsedPattern;\n}\n\nexport function getGrammar( pattern ) {\n\tlet grammarMap = grammarMapCache.get( pattern );\n\tif ( ! grammarMap ) {\n\t\tgrammarMap = grammarParse( pattern.content );\n\t\t// Block names are null only at the top level for whitespace.\n\t\tgrammarMap = grammarMap.filter( ( block ) => block.blockName !== null );\n\t\tgrammarMapCache.set( pattern, grammarMap );\n\t}\n\treturn grammarMap;\n}\n\nexport const checkAllowList = ( list, item, defaultResult = null ) => {\n\tif ( typeof list === 'boolean' ) {\n\t\treturn list;\n\t}\n\tif ( Array.isArray( list ) ) {\n\t\t// TODO: when there is a canonical way to detect that we are editing a post\n\t\t// the following check should be changed to something like:\n\t\t// if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null )\n\t\tif ( list.includes( 'core/post-content' ) && item === null ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn list.includes( item );\n\t}\n\treturn defaultResult;\n};\n\nexport const checkAllowListRecursive = ( blocks, allowedBlockTypes ) => {\n\tif ( typeof allowedBlockTypes === 'boolean' ) {\n\t\treturn allowedBlockTypes;\n\t}\n\n\tconst blocksQueue = [ ...blocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\n\t\tconst isAllowed = checkAllowList(\n\t\t\tallowedBlockTypes,\n\t\t\tblock.name || block.blockName,\n\t\t\ttrue\n\t\t);\n\t\tif ( ! isAllowed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\n\treturn true;\n};\n\nexport const getAllPatternsDependants = ( select ) => ( state ) => {\n\treturn [\n\t\tstate.settings.__experimentalBlockPatterns,\n\t\tstate.settings.__experimentalUserPatternCategories,\n\t\tstate.settings.__experimentalReusableBlocks,\n\t\tstate.settings[ selectBlockPatternsKey ]?.( select ),\n\t\tstate.blockPatterns,\n\t\tunlock( select( STORE_NAME ) ).getReusableBlocks(),\n\t];\n};\n\nexport function getInsertBlockTypeDependants( state, rootClientId ) {\n\treturn [\n\t\tstate.blockListSettings[ rootClientId ],\n\t\tstate.blocks.byClientId.get( rootClientId ),\n\t\tstate.settings.allowedBlockTypes,\n\t\tstate.settings.templateLock,\n\t\tstate.blockEditingModes,\n\t\tstate.editorMode,\n\t\tgetSectionRootClientId( state ),\n\t];\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_blockSerializationDefaultParser","_privateKeys","_lockUnlock","_constants","_privateSelectors","isFiltered","exports","Symbol","parsedPatternCache","WeakMap","grammarMapCache","parsePattern","pattern","blocks","parse","content","__unstableSkipMigrationLogs","length","attributes","metadata","categories","patternName","name","title","getParsedPattern","parsedPattern","get","set","getGrammar","grammarMap","grammarParse","filter","block","blockName","checkAllowList","list","item","defaultResult","Array","isArray","includes","checkAllowListRecursive","allowedBlockTypes","blocksQueue","shift","isAllowed","innerBlocks","forEach","innerBlock","push","getAllPatternsDependants","select","state","settings","__experimentalBlockPatterns","__experimentalUserPatternCategories","__experimentalReusableBlocks","selectBlockPatternsKey","blockPatterns","unlock","STORE_NAME","getReusableBlocks","getInsertBlockTypeDependants","rootClientId","blockListSettings","byClientId","templateLock","blockEditingModes","__unstableGetEditorMode","getSectionRootClientId"],"sources":["@wordpress/block-editor/src/store/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { parse as grammarParse } from '@wordpress/block-serialization-default-parser';\n\n/**\n * Internal dependencies\n */\nimport { selectBlockPatternsKey } from './private-keys';\nimport { unlock } from '../lock-unlock';\nimport { STORE_NAME } from './constants';\nimport { getSectionRootClientId } from './private-selectors';\n\nexport const isFiltered = Symbol( 'isFiltered' );\nconst parsedPatternCache = new WeakMap();\nconst grammarMapCache = new WeakMap();\n\nfunction parsePattern( pattern ) {\n\tconst blocks = parse( pattern.content, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} );\n\tif ( blocks.length === 1 ) {\n\t\tblocks[ 0 ].attributes = {\n\t\t\t...blocks[ 0 ].attributes,\n\t\t\tmetadata: {\n\t\t\t\t...( blocks[ 0 ].attributes.metadata || {} ),\n\t\t\t\tcategories: pattern.categories,\n\t\t\t\tpatternName: pattern.name,\n\t\t\t\tname: blocks[ 0 ].attributes.metadata?.name || pattern.title,\n\t\t\t},\n\t\t};\n\t}\n\treturn {\n\t\t...pattern,\n\t\tblocks,\n\t};\n}\n\nexport function getParsedPattern( pattern ) {\n\tlet parsedPattern = parsedPatternCache.get( pattern );\n\tif ( ! parsedPattern ) {\n\t\tparsedPattern = parsePattern( pattern );\n\t\tparsedPatternCache.set( pattern, parsedPattern );\n\t}\n\treturn parsedPattern;\n}\n\nexport function getGrammar( pattern ) {\n\tlet grammarMap = grammarMapCache.get( pattern );\n\tif ( ! grammarMap ) {\n\t\tgrammarMap = grammarParse( pattern.content );\n\t\t// Block names are null only at the top level for whitespace.\n\t\tgrammarMap = grammarMap.filter( ( block ) => block.blockName !== null );\n\t\tgrammarMapCache.set( pattern, grammarMap );\n\t}\n\treturn grammarMap;\n}\n\nexport const checkAllowList = ( list, item, defaultResult = null ) => {\n\tif ( typeof list === 'boolean' ) {\n\t\treturn list;\n\t}\n\tif ( Array.isArray( list ) ) {\n\t\t// TODO: when there is a canonical way to detect that we are editing a post\n\t\t// the following check should be changed to something like:\n\t\t// if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null )\n\t\tif ( list.includes( 'core/post-content' ) && item === null ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn list.includes( item );\n\t}\n\treturn defaultResult;\n};\n\nexport const checkAllowListRecursive = ( blocks, allowedBlockTypes ) => {\n\tif ( typeof allowedBlockTypes === 'boolean' ) {\n\t\treturn allowedBlockTypes;\n\t}\n\n\tconst blocksQueue = [ ...blocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\n\t\tconst isAllowed = checkAllowList(\n\t\t\tallowedBlockTypes,\n\t\t\tblock.name || block.blockName,\n\t\t\ttrue\n\t\t);\n\t\tif ( ! isAllowed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\n\treturn true;\n};\n\nexport const getAllPatternsDependants = ( select ) => ( state ) => {\n\treturn [\n\t\tstate.settings.__experimentalBlockPatterns,\n\t\tstate.settings.__experimentalUserPatternCategories,\n\t\tstate.settings.__experimentalReusableBlocks,\n\t\tstate.settings[ selectBlockPatternsKey ]?.( select ),\n\t\tstate.blockPatterns,\n\t\tunlock( select( STORE_NAME ) ).getReusableBlocks(),\n\t];\n};\n\nexport const getInsertBlockTypeDependants =\n\t( select ) => ( state, rootClientId ) => {\n\t\treturn [\n\t\t\tstate.blockListSettings[ rootClientId ],\n\t\t\tstate.blocks.byClientId.get( rootClientId ),\n\t\t\tstate.settings.allowedBlockTypes,\n\t\t\tstate.settings.templateLock,\n\t\t\tstate.blockEditingModes,\n\t\t\tselect( STORE_NAME ).__unstableGetEditorMode( state ),\n\t\t\tgetSectionRootClientId( state ),\n\t\t];\n\t};\n"],"mappings":"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","ignoreList":[]}
@@ -3,8 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.WITH_OVERFLOW_ELEMENT_BLOCKS = void 0;
6
7
  exports.getBlockClientId = getBlockClientId;
7
- exports.getVisibleElementBounds = getVisibleElementBounds;
8
+ exports.getElementBounds = getElementBounds;
8
9
  exports.isInSameBlock = isInSameBlock;
9
10
  exports.isInsideRootBlock = isInsideRootBlock;
10
11
  exports.rectUnion = rectUnion;
@@ -123,41 +124,45 @@ function isScrollable(element) {
123
124
  const style = window.getComputedStyle(element);
124
125
  return style.overflowX === 'auto' || style.overflowX === 'scroll' || style.overflowY === 'auto' || style.overflowY === 'scroll';
125
126
  }
126
-
127
+ const WITH_OVERFLOW_ELEMENT_BLOCKS = exports.WITH_OVERFLOW_ELEMENT_BLOCKS = ['core/navigation'];
127
128
  /**
128
- * Returns the rect of the element including all visible nested elements.
129
- *
130
- * Visible nested elements, including elements that overflow the parent, are
131
- * taken into account.
132
- *
133
- * This function is useful for calculating the visible area of a block that
134
- * contains nested elements that overflow the block, e.g. the Navigation block,
135
- * which can contain overflowing Submenu blocks.
129
+ * Returns the bounding rectangle of an element, with special handling for blocks
130
+ * that have visible overflowing children (defined in WITH_OVERFLOW_ELEMENT_BLOCKS).
136
131
  *
132
+ * For blocks like Navigation that can have overflowing elements (e.g. submenus),
133
+ * this function calculates the combined bounds of both the parent and its visible
134
+ * children. The returned rect may extend beyond the viewport.
137
135
  * The returned rect represents the full extent of the element and its visible
138
136
  * children, which may extend beyond the viewport.
139
137
  *
140
138
  * @param {Element} element Element.
141
139
  * @return {DOMRect} Bounding client rect of the element and its visible children.
142
140
  */
143
- function getVisibleElementBounds(element) {
141
+ function getElementBounds(element) {
144
142
  const viewport = element.ownerDocument.defaultView;
145
143
  if (!viewport) {
146
144
  return new window.DOMRectReadOnly();
147
145
  }
148
146
  let bounds = element.getBoundingClientRect();
149
- const stack = [element];
150
- let currentElement;
151
- while (currentElement = stack.pop()) {
152
- for (const child of currentElement.children) {
153
- if (isElementVisible(child)) {
154
- let childBounds = child.getBoundingClientRect();
155
- // If the parent is scrollable, use parent's scrollable bounds.
156
- if (isScrollable(currentElement)) {
157
- childBounds = currentElement.getBoundingClientRect();
147
+ const dataType = element.getAttribute('data-type');
148
+
149
+ /*
150
+ * For blocks with overflowing elements (like Navigation), include the bounds
151
+ * of visible children that extend beyond the parent container.
152
+ */
153
+ if (dataType && WITH_OVERFLOW_ELEMENT_BLOCKS.includes(dataType)) {
154
+ const stack = [element];
155
+ let currentElement;
156
+ while (currentElement = stack.pop()) {
157
+ // Children won’t affect bounds unless the element is not scrollable.
158
+ if (!isScrollable(currentElement)) {
159
+ for (const child of currentElement.children) {
160
+ if (isElementVisible(child)) {
161
+ const childBounds = child.getBoundingClientRect();
162
+ bounds = rectUnion(bounds, childBounds);
163
+ stack.push(child);
164
+ }
158
165
  }
159
- bounds = rectUnion(bounds, childBounds);
160
- stack.push(child);
161
166
  }
162
167
  }
163
168
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BLOCK_SELECTOR","APPENDER_SELECTOR","BLOCK_APPENDER_CLASS","isInSameBlock","a","b","closest","isInsideRootBlock","blockElement","element","parentBlock","join","getBlockClientId","node","nodeType","ELEMENT_NODE","parentNode","elementNode","blockNode","id","slice","length","rectUnion","rect1","rect2","left","Math","min","right","max","bottom","top","window","DOMRectReadOnly","isElementVisible","viewport","ownerDocument","defaultView","classList","contains","bounds","getBoundingClientRect","width","height","checkVisibility","opacityProperty","contentVisibilityAuto","visibilityProperty","style","getComputedStyle","display","visibility","opacity","isScrollable","overflowX","overflowY","getVisibleElementBounds","stack","currentElement","pop","child","children","childBounds","push","innerWidth"],"sources":["@wordpress/block-editor/src/utils/dom.js"],"sourcesContent":["const BLOCK_SELECTOR = '.block-editor-block-list__block';\nconst APPENDER_SELECTOR = '.block-list-appender';\nconst BLOCK_APPENDER_CLASS = '.block-editor-button-block-appender';\n\n/**\n * Returns true if two elements are contained within the same block.\n *\n * @param {Element} a First element.\n * @param {Element} b Second element.\n *\n * @return {boolean} Whether elements are in the same block.\n */\nexport function isInSameBlock( a, b ) {\n\treturn a.closest( BLOCK_SELECTOR ) === b.closest( BLOCK_SELECTOR );\n}\n\n/**\n * Returns true if an element is considered part of the block and not its inner\n * blocks or appender.\n *\n * @param {Element} blockElement Block container element.\n * @param {Element} element Element.\n *\n * @return {boolean} Whether an element is considered part of the block and not\n * its inner blocks or appender.\n */\nexport function isInsideRootBlock( blockElement, element ) {\n\tconst parentBlock = element.closest(\n\t\t[ BLOCK_SELECTOR, APPENDER_SELECTOR, BLOCK_APPENDER_CLASS ].join( ',' )\n\t);\n\treturn parentBlock === blockElement;\n}\n\n/**\n * Finds the block client ID given any DOM node inside the block.\n *\n * @param {Node?} node DOM node.\n *\n * @return {string|undefined} Client ID or undefined if the node is not part of\n * a block.\n */\nexport function getBlockClientId( node ) {\n\twhile ( node && node.nodeType !== node.ELEMENT_NODE ) {\n\t\tnode = node.parentNode;\n\t}\n\n\tif ( ! node ) {\n\t\treturn;\n\t}\n\n\tconst elementNode = /** @type {Element} */ ( node );\n\tconst blockNode = elementNode.closest( BLOCK_SELECTOR );\n\n\tif ( ! blockNode ) {\n\t\treturn;\n\t}\n\n\treturn blockNode.id.slice( 'block-'.length );\n}\n\n/**\n * Calculates the union of two rectangles.\n *\n * @param {DOMRect} rect1 First rectangle.\n * @param {DOMRect} rect2 Second rectangle.\n * @return {DOMRect} Union of the two rectangles.\n */\nexport function rectUnion( rect1, rect2 ) {\n\tconst left = Math.min( rect1.left, rect2.left );\n\tconst right = Math.max( rect1.right, rect2.right );\n\tconst bottom = Math.max( rect1.bottom, rect2.bottom );\n\tconst top = Math.min( rect1.top, rect2.top );\n\n\treturn new window.DOMRectReadOnly( left, top, right - left, bottom - top );\n}\n\n/**\n * Returns whether an element is visible.\n *\n * @param {Element} element Element.\n * @return {boolean} Whether the element is visible.\n */\nfunction isElementVisible( element ) {\n\tconst viewport = element.ownerDocument.defaultView;\n\tif ( ! viewport ) {\n\t\treturn false;\n\t}\n\n\t// Check for <VisuallyHidden> component.\n\tif ( element.classList.contains( 'components-visually-hidden' ) ) {\n\t\treturn false;\n\t}\n\n\tconst bounds = element.getBoundingClientRect();\n\tif ( bounds.width === 0 || bounds.height === 0 ) {\n\t\treturn false;\n\t}\n\n\t// Older browsers, e.g. Safari < 17.4 may not support the `checkVisibility` method.\n\tif ( element.checkVisibility ) {\n\t\treturn element.checkVisibility?.( {\n\t\t\topacityProperty: true,\n\t\t\tcontentVisibilityAuto: true,\n\t\t\tvisibilityProperty: true,\n\t\t} );\n\t}\n\n\tconst style = viewport.getComputedStyle( element );\n\n\tif (\n\t\tstyle.display === 'none' ||\n\t\tstyle.visibility === 'hidden' ||\n\t\tstyle.opacity === '0'\n\t) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Checks if the element is scrollable.\n *\n * @param {Element} element Element.\n * @return {boolean} True if the element is scrollable.\n */\nfunction isScrollable( element ) {\n\tconst style = window.getComputedStyle( element );\n\treturn (\n\t\tstyle.overflowX === 'auto' ||\n\t\tstyle.overflowX === 'scroll' ||\n\t\tstyle.overflowY === 'auto' ||\n\t\tstyle.overflowY === 'scroll'\n\t);\n}\n\n/**\n * Returns the rect of the element including all visible nested elements.\n *\n * Visible nested elements, including elements that overflow the parent, are\n * taken into account.\n *\n * This function is useful for calculating the visible area of a block that\n * contains nested elements that overflow the block, e.g. the Navigation block,\n * which can contain overflowing Submenu blocks.\n *\n * The returned rect represents the full extent of the element and its visible\n * children, which may extend beyond the viewport.\n *\n * @param {Element} element Element.\n * @return {DOMRect} Bounding client rect of the element and its visible children.\n */\nexport function getVisibleElementBounds( element ) {\n\tconst viewport = element.ownerDocument.defaultView;\n\n\tif ( ! viewport ) {\n\t\treturn new window.DOMRectReadOnly();\n\t}\n\n\tlet bounds = element.getBoundingClientRect();\n\tconst stack = [ element ];\n\tlet currentElement;\n\n\twhile ( ( currentElement = stack.pop() ) ) {\n\t\tfor ( const child of currentElement.children ) {\n\t\t\tif ( isElementVisible( child ) ) {\n\t\t\t\tlet childBounds = child.getBoundingClientRect();\n\t\t\t\t// If the parent is scrollable, use parent's scrollable bounds.\n\t\t\t\tif ( isScrollable( currentElement ) ) {\n\t\t\t\t\tchildBounds = currentElement.getBoundingClientRect();\n\t\t\t\t}\n\t\t\t\tbounds = rectUnion( bounds, childBounds );\n\t\t\t\tstack.push( child );\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Take into account the outer horizontal limits of the container in which\n\t * an element is supposed to be \"visible\". For example, if an element is\n\t * positioned -10px to the left of the window x value (0), this function\n\t * discounts the negative overhang because it's not visible and therefore\n\t * not to be counted in the visibility calculations. Top and bottom values\n\t * are not accounted for to accommodate vertical scroll.\n\t */\n\tconst left = Math.max( bounds.left, 0 );\n\tconst right = Math.min( bounds.right, viewport.innerWidth );\n\tbounds = new window.DOMRectReadOnly(\n\t\tleft,\n\t\tbounds.top,\n\t\tright - left,\n\t\tbounds.height\n\t);\n\n\treturn bounds;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BLOCK_SELECTOR","APPENDER_SELECTOR","BLOCK_APPENDER_CLASS","isInSameBlock","a","b","closest","isInsideRootBlock","blockElement","element","parentBlock","join","getBlockClientId","node","nodeType","ELEMENT_NODE","parentNode","elementNode","blockNode","id","slice","length","rectUnion","rect1","rect2","left","Math","min","right","max","bottom","top","window","DOMRectReadOnly","isElementVisible","viewport","ownerDocument","defaultView","classList","contains","bounds","getBoundingClientRect","width","height","checkVisibility","opacityProperty","contentVisibilityAuto","visibilityProperty","style","getComputedStyle","display","visibility","opacity","isScrollable","overflowX","overflowY","WITH_OVERFLOW_ELEMENT_BLOCKS","exports","getElementBounds","dataType","getAttribute","includes","stack","currentElement","pop","child","children","childBounds","push","innerWidth"],"sources":["@wordpress/block-editor/src/utils/dom.js"],"sourcesContent":["const BLOCK_SELECTOR = '.block-editor-block-list__block';\nconst APPENDER_SELECTOR = '.block-list-appender';\nconst BLOCK_APPENDER_CLASS = '.block-editor-button-block-appender';\n\n/**\n * Returns true if two elements are contained within the same block.\n *\n * @param {Element} a First element.\n * @param {Element} b Second element.\n *\n * @return {boolean} Whether elements are in the same block.\n */\nexport function isInSameBlock( a, b ) {\n\treturn a.closest( BLOCK_SELECTOR ) === b.closest( BLOCK_SELECTOR );\n}\n\n/**\n * Returns true if an element is considered part of the block and not its inner\n * blocks or appender.\n *\n * @param {Element} blockElement Block container element.\n * @param {Element} element Element.\n *\n * @return {boolean} Whether an element is considered part of the block and not\n * its inner blocks or appender.\n */\nexport function isInsideRootBlock( blockElement, element ) {\n\tconst parentBlock = element.closest(\n\t\t[ BLOCK_SELECTOR, APPENDER_SELECTOR, BLOCK_APPENDER_CLASS ].join( ',' )\n\t);\n\treturn parentBlock === blockElement;\n}\n\n/**\n * Finds the block client ID given any DOM node inside the block.\n *\n * @param {Node?} node DOM node.\n *\n * @return {string|undefined} Client ID or undefined if the node is not part of\n * a block.\n */\nexport function getBlockClientId( node ) {\n\twhile ( node && node.nodeType !== node.ELEMENT_NODE ) {\n\t\tnode = node.parentNode;\n\t}\n\n\tif ( ! node ) {\n\t\treturn;\n\t}\n\n\tconst elementNode = /** @type {Element} */ ( node );\n\tconst blockNode = elementNode.closest( BLOCK_SELECTOR );\n\n\tif ( ! blockNode ) {\n\t\treturn;\n\t}\n\n\treturn blockNode.id.slice( 'block-'.length );\n}\n\n/**\n * Calculates the union of two rectangles.\n *\n * @param {DOMRect} rect1 First rectangle.\n * @param {DOMRect} rect2 Second rectangle.\n * @return {DOMRect} Union of the two rectangles.\n */\nexport function rectUnion( rect1, rect2 ) {\n\tconst left = Math.min( rect1.left, rect2.left );\n\tconst right = Math.max( rect1.right, rect2.right );\n\tconst bottom = Math.max( rect1.bottom, rect2.bottom );\n\tconst top = Math.min( rect1.top, rect2.top );\n\n\treturn new window.DOMRectReadOnly( left, top, right - left, bottom - top );\n}\n\n/**\n * Returns whether an element is visible.\n *\n * @param {Element} element Element.\n * @return {boolean} Whether the element is visible.\n */\nfunction isElementVisible( element ) {\n\tconst viewport = element.ownerDocument.defaultView;\n\tif ( ! viewport ) {\n\t\treturn false;\n\t}\n\n\t// Check for <VisuallyHidden> component.\n\tif ( element.classList.contains( 'components-visually-hidden' ) ) {\n\t\treturn false;\n\t}\n\n\tconst bounds = element.getBoundingClientRect();\n\tif ( bounds.width === 0 || bounds.height === 0 ) {\n\t\treturn false;\n\t}\n\n\t// Older browsers, e.g. Safari < 17.4 may not support the `checkVisibility` method.\n\tif ( element.checkVisibility ) {\n\t\treturn element.checkVisibility?.( {\n\t\t\topacityProperty: true,\n\t\t\tcontentVisibilityAuto: true,\n\t\t\tvisibilityProperty: true,\n\t\t} );\n\t}\n\n\tconst style = viewport.getComputedStyle( element );\n\n\tif (\n\t\tstyle.display === 'none' ||\n\t\tstyle.visibility === 'hidden' ||\n\t\tstyle.opacity === '0'\n\t) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Checks if the element is scrollable.\n *\n * @param {Element} element Element.\n * @return {boolean} True if the element is scrollable.\n */\nfunction isScrollable( element ) {\n\tconst style = window.getComputedStyle( element );\n\treturn (\n\t\tstyle.overflowX === 'auto' ||\n\t\tstyle.overflowX === 'scroll' ||\n\t\tstyle.overflowY === 'auto' ||\n\t\tstyle.overflowY === 'scroll'\n\t);\n}\n\nexport const WITH_OVERFLOW_ELEMENT_BLOCKS = [ 'core/navigation' ];\n/**\n * Returns the bounding rectangle of an element, with special handling for blocks\n * that have visible overflowing children (defined in WITH_OVERFLOW_ELEMENT_BLOCKS).\n *\n * For blocks like Navigation that can have overflowing elements (e.g. submenus),\n * this function calculates the combined bounds of both the parent and its visible\n * children. The returned rect may extend beyond the viewport.\n * The returned rect represents the full extent of the element and its visible\n * children, which may extend beyond the viewport.\n *\n * @param {Element} element Element.\n * @return {DOMRect} Bounding client rect of the element and its visible children.\n */\nexport function getElementBounds( element ) {\n\tconst viewport = element.ownerDocument.defaultView;\n\n\tif ( ! viewport ) {\n\t\treturn new window.DOMRectReadOnly();\n\t}\n\n\tlet bounds = element.getBoundingClientRect();\n\tconst dataType = element.getAttribute( 'data-type' );\n\n\t/*\n\t * For blocks with overflowing elements (like Navigation), include the bounds\n\t * of visible children that extend beyond the parent container.\n\t */\n\tif ( dataType && WITH_OVERFLOW_ELEMENT_BLOCKS.includes( dataType ) ) {\n\t\tconst stack = [ element ];\n\t\tlet currentElement;\n\n\t\twhile ( ( currentElement = stack.pop() ) ) {\n\t\t\t// Children won’t affect bounds unless the element is not scrollable.\n\t\t\tif ( ! isScrollable( currentElement ) ) {\n\t\t\t\tfor ( const child of currentElement.children ) {\n\t\t\t\t\tif ( isElementVisible( child ) ) {\n\t\t\t\t\t\tconst childBounds = child.getBoundingClientRect();\n\t\t\t\t\t\tbounds = rectUnion( bounds, childBounds );\n\t\t\t\t\t\tstack.push( child );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Take into account the outer horizontal limits of the container in which\n\t * an element is supposed to be \"visible\". For example, if an element is\n\t * positioned -10px to the left of the window x value (0), this function\n\t * discounts the negative overhang because it's not visible and therefore\n\t * not to be counted in the visibility calculations. Top and bottom values\n\t * are not accounted for to accommodate vertical scroll.\n\t */\n\tconst left = Math.max( bounds.left, 0 );\n\tconst right = Math.min( bounds.right, viewport.innerWidth );\n\tbounds = new window.DOMRectReadOnly(\n\t\tleft,\n\t\tbounds.top,\n\t\tright - left,\n\t\tbounds.height\n\t);\n\n\treturn bounds;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -27,15 +27,18 @@ export default function BlockControlsSlot({
27
27
  value: contextState
28
28
  }]]
29
29
  }), [toolbarState, contextState]);
30
- const Slot = groups[group]?.Slot;
31
- const fills = useSlotFills(Slot?.__unstableName);
32
- if (!Slot) {
30
+ const slotFill = groups[group];
31
+ const fills = useSlotFills(slotFill.name);
32
+ if (!slotFill) {
33
33
  globalThis.SCRIPT_DEBUG === true ? warning(`Unknown BlockControls group "${group}" provided.`) : void 0;
34
34
  return null;
35
35
  }
36
36
  if (!fills?.length) {
37
37
  return null;
38
38
  }
39
+ const {
40
+ Slot
41
+ } = slotFill;
39
42
  const slot = /*#__PURE__*/_jsx(Slot, {
40
43
  ...props,
41
44
  bubblesVirtually: true,
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","useMemo","privateApis","__experimentalToolbarContext","ToolbarContext","ToolbarGroup","__experimentalUseSlotFills","useSlotFills","warning","groups","unlock","jsx","_jsx","ComponentsContext","BlockControlsSlot","group","props","toolbarState","contextState","fillProps","forwardedContext","Provider","value","Slot","fills","__unstableName","globalThis","SCRIPT_DEBUG","length","slot","bubblesVirtually","children"],"sources":["@wordpress/block-editor/src/components/block-controls/slot.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useMemo } from '@wordpress/element';\nimport {\n\tprivateApis,\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\nimport { unlock } from '../../lock-unlock';\n\nconst { ComponentsContext } = unlock( privateApis );\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst toolbarState = useContext( ToolbarContext );\n\tconst contextState = useContext( ComponentsContext );\n\tconst fillProps = useMemo(\n\t\t() => ( {\n\t\t\tforwardedContext: [\n\t\t\t\t[ ToolbarContext.Provider, { value: toolbarState } ],\n\t\t\t\t[ ComponentsContext.Provider, { value: contextState } ],\n\t\t\t],\n\t\t} ),\n\t\t[ toolbarState, contextState ]\n\t);\n\n\tconst Slot = groups[ group ]?.Slot;\n\tconst fills = useSlotFills( Slot?.__unstableName );\n\tif ( ! Slot ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tif ( ! fills?.length ) {\n\t\treturn null;\n\t}\n\n\tconst slot = <Slot { ...props } bubblesVirtually fillProps={ fillProps } />;\n\n\tif ( group === 'default' ) {\n\t\treturn slot;\n\t}\n\n\treturn <ToolbarGroup>{ slot }</ToolbarGroup>;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,EAAEC,OAAO,QAAQ,oBAAoB;AACxD,SACCC,WAAW,EACXC,4BAA4B,IAAIC,cAAc,EAC9CC,YAAY,EACZC,0BAA0B,IAAIC,YAAY,QACpC,uBAAuB;AAC9B,OAAOC,OAAO,MAAM,oBAAoB;;AAExC;AACA;AACA;AACA,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,MAAM;EAAEC;AAAkB,CAAC,GAAGH,MAAM,CAAER,WAAY,CAAC;AAEnD,eAAe,SAASY,iBAAiBA,CAAE;EAAEC,KAAK,GAAG,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC5E,MAAMC,YAAY,GAAGjB,UAAU,CAAEI,cAAe,CAAC;EACjD,MAAMc,YAAY,GAAGlB,UAAU,CAAEa,iBAAkB,CAAC;EACpD,MAAMM,SAAS,GAAGlB,OAAO,CACxB,OAAQ;IACPmB,gBAAgB,EAAE,CACjB,CAAEhB,cAAc,CAACiB,QAAQ,EAAE;MAAEC,KAAK,EAAEL;IAAa,CAAC,CAAE,EACpD,CAAEJ,iBAAiB,CAACQ,QAAQ,EAAE;MAAEC,KAAK,EAAEJ;IAAa,CAAC,CAAE;EAEzD,CAAC,CAAE,EACH,CAAED,YAAY,EAAEC,YAAY,CAC7B,CAAC;EAED,MAAMK,IAAI,GAAGd,MAAM,CAAEM,KAAK,CAAE,EAAEQ,IAAI;EAClC,MAAMC,KAAK,GAAGjB,YAAY,CAAEgB,IAAI,EAAEE,cAAe,CAAC;EAClD,IAAK,CAAEF,IAAI,EAAG;IACbG,UAAA,CAAAC,YAAA,YAAAnB,OAAO,CAAE,gCAAiCO,KAAK,aAAe,CAAC;IAC/D,OAAO,IAAI;EACZ;EAEA,IAAK,CAAES,KAAK,EAAEI,MAAM,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,MAAMC,IAAI,gBAAGjB,IAAA,CAACW,IAAI;IAAA,GAAMP,KAAK;IAAGc,gBAAgB;IAACX,SAAS,EAAGA;EAAW,CAAE,CAAC;EAE3E,IAAKJ,KAAK,KAAK,SAAS,EAAG;IAC1B,OAAOc,IAAI;EACZ;EAEA,oBAAOjB,IAAA,CAACP,YAAY;IAAA0B,QAAA,EAAGF;EAAI,CAAgB,CAAC;AAC7C","ignoreList":[]}
1
+ {"version":3,"names":["useContext","useMemo","privateApis","__experimentalToolbarContext","ToolbarContext","ToolbarGroup","__experimentalUseSlotFills","useSlotFills","warning","groups","unlock","jsx","_jsx","ComponentsContext","BlockControlsSlot","group","props","toolbarState","contextState","fillProps","forwardedContext","Provider","value","slotFill","fills","name","globalThis","SCRIPT_DEBUG","length","Slot","slot","bubblesVirtually","children"],"sources":["@wordpress/block-editor/src/components/block-controls/slot.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useMemo } from '@wordpress/element';\nimport {\n\tprivateApis,\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\nimport { unlock } from '../../lock-unlock';\n\nconst { ComponentsContext } = unlock( privateApis );\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst toolbarState = useContext( ToolbarContext );\n\tconst contextState = useContext( ComponentsContext );\n\tconst fillProps = useMemo(\n\t\t() => ( {\n\t\t\tforwardedContext: [\n\t\t\t\t[ ToolbarContext.Provider, { value: toolbarState } ],\n\t\t\t\t[ ComponentsContext.Provider, { value: contextState } ],\n\t\t\t],\n\t\t} ),\n\t\t[ toolbarState, contextState ]\n\t);\n\n\tconst slotFill = groups[ group ];\n\tconst fills = useSlotFills( slotFill.name );\n\n\tif ( ! slotFill ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tif ( ! fills?.length ) {\n\t\treturn null;\n\t}\n\n\tconst { Slot } = slotFill;\n\tconst slot = <Slot { ...props } bubblesVirtually fillProps={ fillProps } />;\n\n\tif ( group === 'default' ) {\n\t\treturn slot;\n\t}\n\n\treturn <ToolbarGroup>{ slot }</ToolbarGroup>;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,EAAEC,OAAO,QAAQ,oBAAoB;AACxD,SACCC,WAAW,EACXC,4BAA4B,IAAIC,cAAc,EAC9CC,YAAY,EACZC,0BAA0B,IAAIC,YAAY,QACpC,uBAAuB;AAC9B,OAAOC,OAAO,MAAM,oBAAoB;;AAExC;AACA;AACA;AACA,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,MAAM;EAAEC;AAAkB,CAAC,GAAGH,MAAM,CAAER,WAAY,CAAC;AAEnD,eAAe,SAASY,iBAAiBA,CAAE;EAAEC,KAAK,GAAG,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC5E,MAAMC,YAAY,GAAGjB,UAAU,CAAEI,cAAe,CAAC;EACjD,MAAMc,YAAY,GAAGlB,UAAU,CAAEa,iBAAkB,CAAC;EACpD,MAAMM,SAAS,GAAGlB,OAAO,CACxB,OAAQ;IACPmB,gBAAgB,EAAE,CACjB,CAAEhB,cAAc,CAACiB,QAAQ,EAAE;MAAEC,KAAK,EAAEL;IAAa,CAAC,CAAE,EACpD,CAAEJ,iBAAiB,CAACQ,QAAQ,EAAE;MAAEC,KAAK,EAAEJ;IAAa,CAAC,CAAE;EAEzD,CAAC,CAAE,EACH,CAAED,YAAY,EAAEC,YAAY,CAC7B,CAAC;EAED,MAAMK,QAAQ,GAAGd,MAAM,CAAEM,KAAK,CAAE;EAChC,MAAMS,KAAK,GAAGjB,YAAY,CAAEgB,QAAQ,CAACE,IAAK,CAAC;EAE3C,IAAK,CAAEF,QAAQ,EAAG;IACjBG,UAAA,CAAAC,YAAA,YAAAnB,OAAO,CAAE,gCAAiCO,KAAK,aAAe,CAAC;IAC/D,OAAO,IAAI;EACZ;EAEA,IAAK,CAAES,KAAK,EAAEI,MAAM,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,MAAM;IAAEC;EAAK,CAAC,GAAGN,QAAQ;EACzB,MAAMO,IAAI,gBAAGlB,IAAA,CAACiB,IAAI;IAAA,GAAMb,KAAK;IAAGe,gBAAgB;IAACZ,SAAS,EAAGA;EAAW,CAAE,CAAC;EAE3E,IAAKJ,KAAK,KAAK,SAAS,EAAG;IAC1B,OAAOe,IAAI;EACZ;EAEA,oBAAOlB,IAAA,CAACP,YAAY;IAAA2B,QAAA,EAAGF;EAAI,CAAgB,CAAC;AAC7C","ignoreList":[]}
@@ -22,7 +22,6 @@ import useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-c
22
22
  import AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';
23
23
  import PositionControls from '../inspector-controls-tabs/position-controls-panel';
24
24
  import useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';
25
- import BlockInfo from '../block-info-slot-fill';
26
25
  import BlockQuickNavigation from '../block-quick-navigation';
27
26
  import { useBorderPanelLabel } from '../../hooks/border';
28
27
  import { unlock } from '../../lock-unlock';
@@ -202,7 +201,7 @@ const BlockInspectorSingleBlock = ({
202
201
  className: blockInformation.isSynced && 'is-synced'
203
202
  }), /*#__PURE__*/_jsx(BlockVariationTransforms, {
204
203
  blockClientId: clientId
205
- }), /*#__PURE__*/_jsx(BlockInfo.Slot, {}), showTabs && /*#__PURE__*/_jsx(InspectorControlsTabs, {
204
+ }), showTabs && /*#__PURE__*/_jsx(InspectorControlsTabs, {
206
205
  hasBlockStyles: hasBlockStyles,
207
206
  clientId: clientId,
208
207
  blockName: blockName,
@@ -1 +1 @@
1
- {"version":3,"names":["__","getBlockType","getUnregisteredTypeHandlerName","store","blocksStore","PanelBody","__unstableMotion","motion","useSelect","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockStyles","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","BlockInfo","BlockQuickNavigation","useBorderPanelLabel","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BlockStylesPanel","clientId","title","children","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","isSectionBlock","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getParentSectionBlock","_isSectionBlock","_selectedBlockClientId","renderedBlockClientId","_selectedBlockName","_blockType","availableTabs","name","showTabs","length","blockInspectorAnimationSettings","borderPanelLabel","blockName","className","tabs","Slot","group","label","isSelectedBlockUnregistered","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","div","x","opacity","transition","ease","duration","initial","hasBlockStyles","getBlockStyles","blockStyles","blockInformation","contentClientIds","getClientIdsOfDescendants","getBlockEditingMode","filter","current","isSynced","blockClientId","clientIds"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockStylesPanel( { clientId } ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t<BlockStyles clientId={ clientId } />\n\t\t</PanelBody>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst renderedBlockClientId =\n\t\t\tgetParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\tgetSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\trenderedBlockClientId && getBlockName( renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: renderedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlock: _isSectionBlock( renderedBlockClientId ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst borderPanelLabel = useBorderPanelLabel( {\n\t\tblockName: selectedBlockName,\n\t} );\n\n\tif ( count > 1 && ! isSectionBlock ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\tisSectionBlock,\n} ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = ! isSectionBlock && availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\t// Avoid unnecessary subscription.\n\t\t\tif ( ! isSectionBlock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).filter(\n\t\t\t\t( current ) =>\n\t\t\t\t\tgetBlockName( current ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ isSectionBlock, clientId ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStylesPanel clientId={ clientId } />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ contentClientIds && contentClientIds?.length > 0 && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t\t\t<BlockQuickNavigation\n\t\t\t\t\t\t\t\tclientIds={ contentClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t\t\t<PositionControls />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","getBlockType","getUnregisteredTypeHandlerName","store","blocksStore","PanelBody","__unstableMotion","motion","useSelect","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockStyles","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","BlockQuickNavigation","useBorderPanelLabel","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BlockStylesPanel","clientId","title","children","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","isSectionBlock","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getParentSectionBlock","_isSectionBlock","_selectedBlockClientId","renderedBlockClientId","_selectedBlockName","_blockType","availableTabs","name","showTabs","length","blockInspectorAnimationSettings","borderPanelLabel","blockName","className","tabs","Slot","group","label","isSelectedBlockUnregistered","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","div","x","opacity","transition","ease","duration","initial","hasBlockStyles","getBlockStyles","blockStyles","blockInformation","contentClientIds","getClientIdsOfDescendants","getBlockEditingMode","filter","current","isSynced","blockClientId","clientIds"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockStylesPanel( { clientId } ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t<BlockStyles clientId={ clientId } />\n\t\t</PanelBody>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst renderedBlockClientId =\n\t\t\tgetParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\tgetSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\trenderedBlockClientId && getBlockName( renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: renderedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlock: _isSectionBlock( renderedBlockClientId ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst borderPanelLabel = useBorderPanelLabel( {\n\t\tblockName: selectedBlockName,\n\t} );\n\n\tif ( count > 1 && ! isSectionBlock ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\tisSectionBlock,\n} ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = ! isSectionBlock && availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\t// Avoid unnecessary subscription.\n\t\t\tif ( ! isSectionBlock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).filter(\n\t\t\t\t( current ) =>\n\t\t\t\t\tgetBlockName( current ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ isSectionBlock, clientId ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStylesPanel clientId={ clientId } />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ contentClientIds && contentClientIds?.length > 0 && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t\t\t<BlockQuickNavigation\n\t\t\t\t\t\t\t\tclientIds={ contentClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t\t\t<PositionControls />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import clsx from 'clsx';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { memo, useCallback, RawHTML, useContext, useMemo } from '@wordpress/element';
10
- import { getBlockType, getSaveContent, isUnmodifiedDefaultBlock, serializeRawBlock, switchToBlockType, getDefaultBlockName, isUnmodifiedBlock, isReusableBlock, getBlockDefaultClassName, hasBlockSupport, store as blocksStore, privateApis as blocksPrivateApis } from '@wordpress/blocks';
10
+ import { getBlockType, getSaveContent, isUnmodifiedDefaultBlock, serializeRawBlock, switchToBlockType, getDefaultBlockName, isUnmodifiedBlock, isReusableBlock, getBlockDefaultClassName, hasBlockSupport, createBlock, store as blocksStore } from '@wordpress/blocks';
11
11
  import { withFilters } from '@wordpress/components';
12
12
  import { withDispatch, useDispatch, useSelect } from '@wordpress/data';
13
13
  import { compose } from '@wordpress/compose';
@@ -26,10 +26,6 @@ import { store as blockEditorStore } from '../../store';
26
26
  import { useLayout } from './layout';
27
27
  import { PrivateBlockContext } from './private-block-context';
28
28
  import { unlock } from '../../lock-unlock';
29
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
30
- const {
31
- isUnmodifiedBlockContent
32
- } = unlock(blocksPrivateApis);
33
29
 
34
30
  /**
35
31
  * Merges wrapper props with special handling for classNames and styles.
@@ -39,6 +35,7 @@ const {
39
35
  *
40
36
  * @return {Object} Merged props.
41
37
  */
38
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
42
39
  function mergeWrapperProps(propsA, propsB) {
43
40
  const newProps = {
44
41
  ...propsA,
@@ -283,6 +280,7 @@ const applyWithDispatch = withDispatch((dispatch, ownProps, registry) => {
283
280
  function switchToDefaultOrRemove() {
284
281
  const block = getBlock(clientId);
285
282
  const defaultBlockName = getDefaultBlockName();
283
+ const defaultBlockType = getBlockType(defaultBlockName);
286
284
  if (getBlockName(clientId) !== defaultBlockName) {
287
285
  const replacement = switchToBlockType(block, defaultBlockName);
288
286
  if (replacement && replacement.length) {
@@ -296,6 +294,9 @@ const applyWithDispatch = withDispatch((dispatch, ownProps, registry) => {
296
294
  selectBlock(nextBlockClientId);
297
295
  });
298
296
  }
297
+ } else if (defaultBlockType.merge) {
298
+ const attributes = defaultBlockType.merge({}, block.attributes);
299
+ replaceBlocks([clientId], [createBlock(defaultBlockName, attributes)]);
299
300
  }
300
301
  }
301
302
 
@@ -309,39 +310,24 @@ const applyWithDispatch = withDispatch((dispatch, ownProps, registry) => {
309
310
  * to the moved block.
310
311
  */
311
312
  function moveFirstItemUp(_clientId, changeSelection = true) {
313
+ const wrapperBlockName = getBlockName(_clientId);
314
+ const wrapperBlockType = getBlockType(wrapperBlockName);
315
+ const isTextualWrapper = wrapperBlockType.category === 'text';
312
316
  const targetRootClientId = getBlockRootClientId(_clientId);
313
317
  const blockOrder = getBlockOrder(_clientId);
314
318
  const [firstClientId] = blockOrder;
315
319
  if (blockOrder.length === 1 && isUnmodifiedBlock(getBlock(firstClientId))) {
316
320
  removeBlock(_clientId);
317
- } else {
321
+ } else if (isTextualWrapper) {
318
322
  registry.batch(() => {
319
- const firstBlock = getBlock(firstClientId);
320
- const isFirstBlockContentUnmodified = isUnmodifiedBlockContent(firstBlock);
321
- const defaultBlockName = getDefaultBlockName();
322
- const replacement = switchToBlockType(firstBlock, defaultBlockName);
323
- const canTransformToDefaultBlock = !!replacement?.length && replacement.every(block => canInsertBlockType(block.name, _clientId));
324
- if (isFirstBlockContentUnmodified && canTransformToDefaultBlock) {
325
- // Step 1: If the block is empty and can be transformed to the default block type.
326
- replaceBlocks(firstClientId, replacement, changeSelection);
327
- } else if (isFirstBlockContentUnmodified && firstBlock.name === defaultBlockName) {
328
- // Step 2: If the block is empty and is already the default block type.
329
- removeBlock(firstClientId);
330
- const nextBlockClientId = getNextBlockClientId(clientId);
331
- if (nextBlockClientId) {
332
- selectBlock(nextBlockClientId);
333
- }
334
- } else if (canInsertBlockType(firstBlock.name, targetRootClientId)) {
335
- // Step 3: If the block can be moved up.
323
+ if (canInsertBlockType(getBlockName(firstClientId), targetRootClientId)) {
336
324
  moveBlocksToPosition([firstClientId], _clientId, targetRootClientId, getBlockIndex(_clientId));
337
325
  } else {
338
- const canLiftAndTransformToDefaultBlock = !!replacement?.length && replacement.every(block => canInsertBlockType(block.name, targetRootClientId));
339
- if (canLiftAndTransformToDefaultBlock) {
340
- // Step 4: If the block can be transformed to the default block type and moved up.
326
+ const replacement = switchToBlockType(getBlock(firstClientId), getDefaultBlockName());
327
+ if (replacement && replacement.length && replacement.every(block => canInsertBlockType(block.name, targetRootClientId))) {
341
328
  insertBlocks(replacement, getBlockIndex(_clientId), targetRootClientId, changeSelection);
342
329
  removeBlock(firstClientId, false);
343
330
  } else {
344
- // Step 5: Continue the default behavior.
345
331
  switchToDefaultOrRemove();
346
332
  }
347
333
  }
@@ -349,6 +335,8 @@ const applyWithDispatch = withDispatch((dispatch, ownProps, registry) => {
349
335
  removeBlock(_clientId, false);
350
336
  }
351
337
  });
338
+ } else {
339
+ switchToDefaultOrRemove();
352
340
  }
353
341
  }
354
342