@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
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","memo","useCallback","RawHTML","useContext","useMemo","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","isReusableBlock","getBlockDefaultClassName","hasBlockSupport","store","blocksStore","privateApis","blocksPrivateApis","withFilters","withDispatch","useDispatch","useSelect","compose","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","blockEditorStore","useLayout","PrivateBlockContext","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","isUnmodifiedBlockContent","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","removeBlock","onRemove","parentLayout","blockEdit","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","isPreviewMode","blockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","display","apiVersion","dataAlign","restWrapperProps","updatedWrapperProps","Provider","value","fallback","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","selectBlock","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","switchToDefaultOrRemove","defaultBlockName","replacement","nextBlockClientId","batch","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","firstBlock","isFirstBlockContentUnmodified","canTransformToDefaultBlock","every","canLiftAndTransformToDefaultBlock","nextRootClientId","rootAttributes","previousRootAttributes","key","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","BlockListBlockProvider","selectedProps","isBlockSelected","getBlockMode","getTemplateLock","isSectionBlock","_isSectionBlock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","getTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","getBlocksByName","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","__unstableHasActiveBlockOverlayActive","getSelectedBlocksInitialCaretPosition","blockWithoutAttributes","_hasBlockSupport","getActiveBlockVariation","blockName","supportsLayout","hasLightBlockWrapper","previewContext","isReusable","defaultClassName","blockTitle","title","_isSelected","canMove","match","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","multiple","blocksWithSameName","isInvalid","isTemporarilyEditingAsBlocks","id","blockApiVersion","isSubtreeDisabled","hasOverlay","isHighlighted","isPartiallySelected","hasChildSelected","isEditingDisabled","hasEditableOutline","originalBlockClientId","privateContext"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\thasBlockSupport,\n\tstore as blocksStore,\n\tprivateApis as blocksPrivateApis,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\nconst { isUnmodifiedBlockContent } = unlock( blocksPrivateApis );\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = clsx( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t\tisPreviewMode={ context.isPreviewMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\tconst updatedWrapperProps = {\n\t\t...restWrapperProps,\n\t\tclassName: clsx(\n\t\t\trestWrapperProps.className,\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\t! ( dataAlign && isSticky ) && className\n\t\t),\n\t};\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: updatedWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tselectBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\tfunction switchToDefaultOrRemove() {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\tif ( getBlockName( clientId ) !== defaultBlockName ) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tblock,\n\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t} else if ( isUnmodifiedDefaultBlock( block ) ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tconst firstBlock = getBlock( firstClientId );\n\t\t\t\t\t\tconst isFirstBlockContentUnmodified =\n\t\t\t\t\t\t\tisUnmodifiedBlockContent( firstBlock );\n\t\t\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\tfirstBlock,\n\t\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst canTransformToDefaultBlock =\n\t\t\t\t\t\t\t!! replacement?.length &&\n\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\tcanInsertBlockType( block.name, _clientId )\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tisFirstBlockContentUnmodified &&\n\t\t\t\t\t\t\tcanTransformToDefaultBlock\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 1: If the block is empty and can be transformed to the default block type.\n\t\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\t\tfirstClientId,\n\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tisFirstBlockContentUnmodified &&\n\t\t\t\t\t\t\tfirstBlock.name === defaultBlockName\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 2: If the block is empty and is already the default block type.\n\t\t\t\t\t\t\tremoveBlock( firstClientId );\n\t\t\t\t\t\t\tconst nextBlockClientId =\n\t\t\t\t\t\t\t\tgetNextBlockClientId( clientId );\n\t\t\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 3: If the block can be moved up.\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst canLiftAndTransformToDefaultBlock =\n\t\t\t\t\t\t\t\t!! replacement?.length &&\n\t\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( canLiftAndTransformToDefaultBlock ) {\n\t\t\t\t\t\t\t\t// Step 4: If the block can be transformed to the default block type and moved up.\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Step 5: Continue the default behavior.\n\t\t\t\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlocksByName,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst { supportsLayout, isPreviewMode } = getSettings();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst previewContext = {\n\t\t\t\tisPreviewMode,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t\tblockTitle: blockType?.title,\n\t\t\t};\n\n\t\t\t// When in preview mode, we can avoid a lot of selection and\n\t\t\t// editing related selectors.\n\t\t\tif ( isPreviewMode ) {\n\t\t\t\treturn previewContext;\n\t\t\t}\n\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId );\n\t\t\tconst canMove = canMoveBlock( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\tconst multiple = hasBlockSupport( blockName, 'multiple', true );\n\n\t\t\t// For block types with `multiple` support, there is no \"original\n\t\t\t// block\" to be found in the content, as the block itself is valid.\n\t\t\tconst blocksWithSameName = multiple\n\t\t\t\t? []\n\t\t\t\t: getBlocksByName( blockName );\n\t\t\tconst isInvalid =\n\t\t\t\tblocksWithSameName.length &&\n\t\t\t\tblocksWithSameName[ 0 ] !== clientId;\n\n\t\t\treturn {\n\t\t\t\t...previewContext,\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\tisSectionBlock: _isSectionBlock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\tgetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition: _isSelected\n\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\toriginalBlockClientId: isInvalid\n\t\t\t\t\t? blocksWithSameName[ 0 ]\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tisPreviewMode,\n\t\t// Fill values that end up as a public API and may not be defined in\n\t\t// preview mode.\n\t\tmode = 'visual',\n\t\tisSelectionEnabled = false,\n\t\tisLocked = false,\n\t\tcanRemove = false,\n\t\tcanMove = false,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected = false,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t\toriginalBlockClientId,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tisPreviewMode,\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\toriginalBlockClientId,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","memo","useCallback","RawHTML","useContext","useMemo","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","switchToBlockType","getDefaultBlockName","isUnmodifiedBlock","isReusableBlock","getBlockDefaultClassName","hasBlockSupport","createBlock","store","blocksStore","withFilters","withDispatch","useDispatch","useSelect","compose","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","blockEditorStore","useLayout","PrivateBlockContext","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","removeBlock","onRemove","parentLayout","blockEdit","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","isPreviewMode","blockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","display","apiVersion","dataAlign","restWrapperProps","updatedWrapperProps","Provider","value","fallback","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","selectBlock","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","switchToDefaultOrRemove","defaultBlockName","defaultBlockType","replacement","nextBlockClientId","batch","merge","moveFirstItemUp","_clientId","changeSelection","wrapperBlockName","wrapperBlockType","isTextualWrapper","category","targetRootClientId","blockOrder","firstClientId","every","nextRootClientId","rootAttributes","previousRootAttributes","key","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","BlockListBlockProvider","selectedProps","isBlockSelected","getBlockMode","getTemplateLock","isSectionBlock","_isSectionBlock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","getTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","getBlocksByName","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","__unstableHasActiveBlockOverlayActive","getSelectedBlocksInitialCaretPosition","blockWithoutAttributes","_hasBlockSupport","getActiveBlockVariation","blockName","supportsLayout","hasLightBlockWrapper","previewContext","isReusable","defaultClassName","blockTitle","title","_isSelected","canMove","match","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","multiple","blocksWithSameName","isInvalid","isTemporarilyEditingAsBlocks","id","blockApiVersion","isSubtreeDisabled","hasOverlay","isHighlighted","isPartiallySelected","hasChildSelected","isEditingDisabled","hasEditableOutline","originalBlockClientId","privateContext"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\thasBlockSupport,\n\tcreateBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = clsx( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t\tisPreviewMode={ context.isPreviewMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\tconst updatedWrapperProps = {\n\t\t...restWrapperProps,\n\t\tclassName: clsx(\n\t\t\trestWrapperProps.className,\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\t! ( dataAlign && isSticky ) && className\n\t\t),\n\t};\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: updatedWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tselectBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\tfunction switchToDefaultOrRemove() {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\tconst defaultBlockType = getBlockType( defaultBlockName );\n\t\t\t\tif ( getBlockName( clientId ) !== defaultBlockName ) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tblock,\n\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t} else if ( isUnmodifiedDefaultBlock( block ) ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} else if ( defaultBlockType.merge ) {\n\t\t\t\t\tconst attributes = defaultBlockType.merge(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tblock.attributes\n\t\t\t\t\t);\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t[ clientId ],\n\t\t\t\t\t\t[ createBlock( defaultBlockName, attributes ) ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst wrapperBlockName = getBlockName( _clientId );\n\t\t\t\tconst wrapperBlockType = getBlockType( wrapperBlockName );\n\t\t\t\tconst isTextualWrapper = wrapperBlockType.category === 'text';\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else if ( isTextualWrapper ) {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\treplacement &&\n\t\t\t\t\t\t\t\treplacement.length &&\n\t\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlocksByName,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst { supportsLayout, isPreviewMode } = getSettings();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst previewContext = {\n\t\t\t\tisPreviewMode,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t\tblockTitle: blockType?.title,\n\t\t\t};\n\n\t\t\t// When in preview mode, we can avoid a lot of selection and\n\t\t\t// editing related selectors.\n\t\t\tif ( isPreviewMode ) {\n\t\t\t\treturn previewContext;\n\t\t\t}\n\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId );\n\t\t\tconst canMove = canMoveBlock( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\tconst multiple = hasBlockSupport( blockName, 'multiple', true );\n\n\t\t\t// For block types with `multiple` support, there is no \"original\n\t\t\t// block\" to be found in the content, as the block itself is valid.\n\t\t\tconst blocksWithSameName = multiple\n\t\t\t\t? []\n\t\t\t\t: getBlocksByName( blockName );\n\t\t\tconst isInvalid =\n\t\t\t\tblocksWithSameName.length &&\n\t\t\t\tblocksWithSameName[ 0 ] !== clientId;\n\n\t\t\treturn {\n\t\t\t\t...previewContext,\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\tisSectionBlock: _isSectionBlock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\tgetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition: _isSelected\n\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\toriginalBlockClientId: isInvalid\n\t\t\t\t\t? blocksWithSameName[ 0 ]\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tisPreviewMode,\n\t\t// Fill values that end up as a public API and may not be defined in\n\t\t// preview mode.\n\t\tmode = 'visual',\n\t\tisSelectionEnabled = false,\n\t\tisLocked = false,\n\t\tcanRemove = false,\n\t\tcanMove = false,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected = false,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t\toriginalBlockClientId,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tisPreviewMode,\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\toriginalBlockClientId,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,7 @@ import { store as blockEditorStore } from '../../store';
17
17
 
18
18
  // Entity based blocks which allow edit locking
19
19
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- const ALLOWS_EDIT_LOCKING = ['core/block', 'core/navigation'];
20
+ const ALLOWS_EDIT_LOCKING = ['core/navigation'];
21
21
  function getTemplateLockValue(lock) {
22
22
  // Prevents all operations.
23
23
  if (lock.remove && lock.move) {
@@ -1 +1 @@
1
- {"version":3,"names":["__","sprintf","useEffect","useState","Button","CheckboxControl","Flex","FlexItem","Icon","Modal","ToggleControl","lock","lockIcon","unlock","unlockIcon","useDispatch","useSelect","getBlockType","useBlockLock","useBlockDisplayInformation","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","ALLOWS_EDIT_LOCKING","getTemplateLockValue","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","allowsEditLocking","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockName","blockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","overlayClassName","onRequestClose","children","onSubmit","event","preventDefault","undefined","className","role","__nextHasNoMarginBottom","label","checked","indeterminate","onChange","newValue","prevLock","icon","disabled","justify","expanded","variant","onClick","__next40pxDefaultSize","type"],"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/block', 'core/navigation' ];\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { allowsEditLocking, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<fieldset className=\"block-editor-block-lock-modal__options\">\n\t\t\t\t\t<legend>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose specific attributes to restrict or lock all available options.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t */\n\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t<ul\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-all\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Lock all' ) }\n\t\t\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\t\t\t\t\t\t\t\t\t\t: {} ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Restrict editing' ) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Disable movement' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tmove,\n\t\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.move ? lockIcon : unlockIcon\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Prevent removal' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tremove,\n\t\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.remove ? lockIcon : unlockIcon\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</fieldset>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","sprintf","useEffect","useState","Button","CheckboxControl","Flex","FlexItem","Icon","Modal","ToggleControl","lock","lockIcon","unlock","unlockIcon","useDispatch","useSelect","getBlockType","useBlockLock","useBlockDisplayInformation","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","ALLOWS_EDIT_LOCKING","getTemplateLockValue","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","allowsEditLocking","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockName","blockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","overlayClassName","onRequestClose","children","onSubmit","event","preventDefault","undefined","className","role","__nextHasNoMarginBottom","label","checked","indeterminate","onChange","newValue","prevLock","icon","disabled","justify","expanded","variant","onClick","__next40pxDefaultSize","type"],"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/navigation' ];\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { allowsEditLocking, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<fieldset className=\"block-editor-block-lock-modal__options\">\n\t\t\t\t\t<legend>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose specific attributes to restrict or lock all available options.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t */\n\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t<ul\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-all\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Lock all' ) }\n\t\t\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\t\t\t\t\t\t\t\t\t\t: {} ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Restrict editing' ) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Disable movement' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tmove,\n\t\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.move ? lockIcon : unlockIcon\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Prevent removal' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tremove,\n\t\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.remove ? lockIcon : unlockIcon\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</fieldset>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useCallback } from '@wordpress/element';
5
+ import { useInstanceId } from '@wordpress/compose';
6
+ import { CheckboxControl } from '@wordpress/components';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import BlockTypesChecklist from './checklist';
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ function BlockManagerCategory({
14
+ title,
15
+ blockTypes,
16
+ selectedBlockTypes,
17
+ onChange
18
+ }) {
19
+ const instanceId = useInstanceId(BlockManagerCategory);
20
+ const toggleVisible = useCallback((blockType, nextIsChecked) => {
21
+ if (nextIsChecked) {
22
+ onChange([...selectedBlockTypes, blockType]);
23
+ } else {
24
+ onChange(selectedBlockTypes.filter(({
25
+ name
26
+ }) => name !== blockType.name));
27
+ }
28
+ }, [selectedBlockTypes, onChange]);
29
+ const toggleAllVisible = useCallback(nextIsChecked => {
30
+ if (nextIsChecked) {
31
+ onChange([...selectedBlockTypes, ...blockTypes.filter(blockType => !selectedBlockTypes.find(({
32
+ name
33
+ }) => name === blockType.name))]);
34
+ } else {
35
+ onChange(selectedBlockTypes.filter(selectedBlockType => !blockTypes.find(({
36
+ name
37
+ }) => name === selectedBlockType.name)));
38
+ }
39
+ }, [blockTypes, selectedBlockTypes, onChange]);
40
+ if (!blockTypes.length) {
41
+ return null;
42
+ }
43
+ const checkedBlockNames = blockTypes.map(({
44
+ name
45
+ }) => name).filter(type => (selectedBlockTypes !== null && selectedBlockTypes !== void 0 ? selectedBlockTypes : []).some(selectedBlockType => selectedBlockType.name === type));
46
+ const titleId = 'block-editor-block-manager__category-title-' + instanceId;
47
+ const isAllChecked = checkedBlockNames.length === blockTypes.length;
48
+ const isIndeterminate = !isAllChecked && checkedBlockNames.length > 0;
49
+ return /*#__PURE__*/_jsxs("div", {
50
+ role: "group",
51
+ "aria-labelledby": titleId,
52
+ className: "block-editor-block-manager__category",
53
+ children: [/*#__PURE__*/_jsx(CheckboxControl, {
54
+ __nextHasNoMarginBottom: true,
55
+ checked: isAllChecked,
56
+ onChange: toggleAllVisible,
57
+ className: "block-editor-block-manager__category-title",
58
+ indeterminate: isIndeterminate,
59
+ label: /*#__PURE__*/_jsx("span", {
60
+ id: titleId,
61
+ children: title
62
+ })
63
+ }), /*#__PURE__*/_jsx(BlockTypesChecklist, {
64
+ blockTypes: blockTypes,
65
+ value: checkedBlockNames,
66
+ onItemChange: toggleVisible
67
+ })]
68
+ });
69
+ }
70
+ export default BlockManagerCategory;
71
+ //# sourceMappingURL=category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useInstanceId","CheckboxControl","BlockTypesChecklist","jsx","_jsx","jsxs","_jsxs","BlockManagerCategory","title","blockTypes","selectedBlockTypes","onChange","instanceId","toggleVisible","blockType","nextIsChecked","filter","name","toggleAllVisible","find","selectedBlockType","length","checkedBlockNames","map","type","some","titleId","isAllChecked","isIndeterminate","role","className","children","__nextHasNoMarginBottom","checked","indeterminate","label","id","value","onItemChange"],"sources":["@wordpress/block-editor/src/components/block-manager/category.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesChecklist from './checklist';\n\nfunction BlockManagerCategory( {\n\ttitle,\n\tblockTypes,\n\tselectedBlockTypes,\n\tonChange,\n} ) {\n\tconst instanceId = useInstanceId( BlockManagerCategory );\n\n\tconst toggleVisible = useCallback(\n\t\t( blockType, nextIsChecked ) => {\n\t\t\tif ( nextIsChecked ) {\n\t\t\t\tonChange( [ ...selectedBlockTypes, blockType ] );\n\t\t\t} else {\n\t\t\t\tonChange(\n\t\t\t\t\tselectedBlockTypes.filter(\n\t\t\t\t\t\t( { name } ) => name !== blockType.name\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ selectedBlockTypes, onChange ]\n\t);\n\n\tconst toggleAllVisible = useCallback(\n\t\t( nextIsChecked ) => {\n\t\t\tif ( nextIsChecked ) {\n\t\t\t\tonChange( [\n\t\t\t\t\t...selectedBlockTypes,\n\t\t\t\t\t...blockTypes.filter(\n\t\t\t\t\t\t( blockType ) =>\n\t\t\t\t\t\t\t! selectedBlockTypes.find(\n\t\t\t\t\t\t\t\t( { name } ) => name === blockType.name\n\t\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t] );\n\t\t\t} else {\n\t\t\t\tonChange(\n\t\t\t\t\tselectedBlockTypes.filter(\n\t\t\t\t\t\t( selectedBlockType ) =>\n\t\t\t\t\t\t\t! blockTypes.find(\n\t\t\t\t\t\t\t\t( { name } ) => name === selectedBlockType.name\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ blockTypes, selectedBlockTypes, onChange ]\n\t);\n\n\tif ( ! blockTypes.length ) {\n\t\treturn null;\n\t}\n\n\tconst checkedBlockNames = blockTypes\n\t\t.map( ( { name } ) => name )\n\t\t.filter( ( type ) =>\n\t\t\t( selectedBlockTypes ?? [] ).some(\n\t\t\t\t( selectedBlockType ) => selectedBlockType.name === type\n\t\t\t)\n\t\t);\n\n\tconst titleId = 'block-editor-block-manager__category-title-' + instanceId;\n\n\tconst isAllChecked = checkedBlockNames.length === blockTypes.length;\n\tconst isIndeterminate = ! isAllChecked && checkedBlockNames.length > 0;\n\n\treturn (\n\t\t<div\n\t\t\trole=\"group\"\n\t\t\taria-labelledby={ titleId }\n\t\t\tclassName=\"block-editor-block-manager__category\"\n\t\t>\n\t\t\t<CheckboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tchecked={ isAllChecked }\n\t\t\t\tonChange={ toggleAllVisible }\n\t\t\t\tclassName=\"block-editor-block-manager__category-title\"\n\t\t\t\tindeterminate={ isIndeterminate }\n\t\t\t\tlabel={ <span id={ titleId }>{ title }</span> }\n\t\t\t/>\n\t\t\t<BlockTypesChecklist\n\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\tvalue={ checkedBlockNames }\n\t\t\t\tonItemChange={ toggleVisible }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default BlockManagerCategory;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { CheckboxControl } from '@wordpress/components';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import BlockIcon from '../block-icon';
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ function BlockTypesChecklist({
12
+ blockTypes,
13
+ value,
14
+ onItemChange
15
+ }) {
16
+ return /*#__PURE__*/_jsx("ul", {
17
+ className: "block-editor-block-manager__checklist",
18
+ children: blockTypes.map(blockType => /*#__PURE__*/_jsxs("li", {
19
+ className: "block-editor-block-manager__checklist-item",
20
+ children: [/*#__PURE__*/_jsx(CheckboxControl, {
21
+ __nextHasNoMarginBottom: true,
22
+ label: blockType.title,
23
+ checked: value.includes(blockType.name),
24
+ onChange: (...args) => onItemChange(blockType, ...args)
25
+ }), /*#__PURE__*/_jsx(BlockIcon, {
26
+ icon: blockType.icon
27
+ })]
28
+ }, blockType.name))
29
+ });
30
+ }
31
+ export default BlockTypesChecklist;
32
+ //# sourceMappingURL=checklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CheckboxControl","BlockIcon","jsx","_jsx","jsxs","_jsxs","BlockTypesChecklist","blockTypes","value","onItemChange","className","children","map","blockType","__nextHasNoMarginBottom","label","title","checked","includes","name","onChange","args","icon"],"sources":["@wordpress/block-editor/src/components/block-manager/checklist.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\n\nfunction BlockTypesChecklist( { blockTypes, value, onItemChange } ) {\n\treturn (\n\t\t<ul className=\"block-editor-block-manager__checklist\">\n\t\t\t{ blockTypes.map( ( blockType ) => (\n\t\t\t\t<li\n\t\t\t\t\tkey={ blockType.name }\n\t\t\t\t\tclassName=\"block-editor-block-manager__checklist-item\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ blockType.title }\n\t\t\t\t\t\tchecked={ value.includes( blockType.name ) }\n\t\t\t\t\t\tonChange={ ( ...args ) =>\n\t\t\t\t\t\t\tonItemChange( blockType, ...args )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n\nexport default BlockTypesChecklist;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,uBAAuB;;AAEvD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEtC,SAASC,mBAAmBA,CAAE;EAAEC,UAAU;EAAEC,KAAK;EAAEC;AAAa,CAAC,EAAG;EACnE,oBACCN,IAAA;IAAIO,SAAS,EAAC,uCAAuC;IAAAC,QAAA,EAClDJ,UAAU,CAACK,GAAG,CAAIC,SAAS,iBAC5BR,KAAA;MAECK,SAAS,EAAC,4CAA4C;MAAAC,QAAA,gBAEtDR,IAAA,CAACH,eAAe;QACfc,uBAAuB;QACvBC,KAAK,EAAGF,SAAS,CAACG,KAAO;QACzBC,OAAO,EAAGT,KAAK,CAACU,QAAQ,CAAEL,SAAS,CAACM,IAAK,CAAG;QAC5CC,QAAQ,EAAGA,CAAE,GAAGC,IAAI,KACnBZ,YAAY,CAAEI,SAAS,EAAE,GAAGQ,IAAK;MACjC,CACD,CAAC,eACFlB,IAAA,CAACF,SAAS;QAACqB,IAAI,EAAGT,SAAS,CAACS;MAAM,CAAE,CAAC;IAAA,GAX/BT,SAAS,CAACM,IAYb,CACH;EAAC,CACA,CAAC;AAEP;AAEA,eAAeb,mBAAmB","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { store as blocksStore } from '@wordpress/blocks';
5
+ import { useSelect } from '@wordpress/data';
6
+ import { SearchControl, Button } from '@wordpress/components';
7
+ import { __, _n, sprintf } from '@wordpress/i18n';
8
+ import { useEffect, useState } from '@wordpress/element';
9
+ import { useDebounce } from '@wordpress/compose';
10
+ import { speak } from '@wordpress/a11y';
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ import BlockManagerCategory from './category';
16
+
17
+ /**
18
+ * Provides a list of blocks with checkboxes.
19
+ *
20
+ * @param {Object} props Props.
21
+ * @param {Array} props.blockTypes An array of blocks.
22
+ * @param {Array} props.selectedBlockTypes An array of selected blocks.
23
+ * @param {Function} props.onChange Function to be called when the selected blocks change.
24
+ */
25
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
+ export default function BlockManager({
27
+ blockTypes,
28
+ selectedBlockTypes,
29
+ onChange
30
+ }) {
31
+ const debouncedSpeak = useDebounce(speak, 500);
32
+ const [search, setSearch] = useState('');
33
+ const {
34
+ categories,
35
+ isMatchingSearchTerm
36
+ } = useSelect(select => {
37
+ return {
38
+ categories: select(blocksStore).getCategories(),
39
+ isMatchingSearchTerm: select(blocksStore).isMatchingSearchTerm
40
+ };
41
+ }, []);
42
+ function enableAllBlockTypes() {
43
+ onChange(blockTypes);
44
+ }
45
+ const filteredBlockTypes = blockTypes.filter(blockType => {
46
+ return !search || isMatchingSearchTerm(blockType, search);
47
+ });
48
+ const numberOfHiddenBlocks = blockTypes.length - selectedBlockTypes.length;
49
+
50
+ // Announce search results on change
51
+ useEffect(() => {
52
+ if (!search) {
53
+ return;
54
+ }
55
+ const count = filteredBlockTypes.length;
56
+ const resultsFoundMessage = sprintf(/* translators: %d: number of results. */
57
+ _n('%d result found.', '%d results found.', count), count);
58
+ debouncedSpeak(resultsFoundMessage);
59
+ }, [filteredBlockTypes?.length, search, debouncedSpeak]);
60
+ return /*#__PURE__*/_jsxs("div", {
61
+ className: "block-editor-block-manager__content",
62
+ children: [!!numberOfHiddenBlocks && /*#__PURE__*/_jsxs("div", {
63
+ className: "block-editor-block-manager__disabled-blocks-count",
64
+ children: [sprintf(/* translators: %d: number of blocks. */
65
+ _n('%d block is hidden.', '%d blocks are hidden.', numberOfHiddenBlocks), numberOfHiddenBlocks), /*#__PURE__*/_jsx(Button, {
66
+ __next40pxDefaultSize: true,
67
+ variant: "link",
68
+ onClick: enableAllBlockTypes,
69
+ children: __('Reset')
70
+ })]
71
+ }), /*#__PURE__*/_jsx(SearchControl, {
72
+ __nextHasNoMarginBottom: true,
73
+ label: __('Search for a block'),
74
+ placeholder: __('Search for a block'),
75
+ value: search,
76
+ onChange: nextSearch => setSearch(nextSearch),
77
+ className: "block-editor-block-manager__search"
78
+ }), /*#__PURE__*/_jsxs("div", {
79
+ tabIndex: "0",
80
+ role: "region",
81
+ "aria-label": __('Available block types'),
82
+ className: "block-editor-block-manager__results",
83
+ children: [filteredBlockTypes.length === 0 && /*#__PURE__*/_jsx("p", {
84
+ className: "block-editor-block-manager__no-results",
85
+ children: __('No blocks found.')
86
+ }), categories.map(category => /*#__PURE__*/_jsx(BlockManagerCategory, {
87
+ title: category.title,
88
+ blockTypes: filteredBlockTypes.filter(blockType => blockType.category === category.slug),
89
+ selectedBlockTypes: selectedBlockTypes,
90
+ onChange: onChange
91
+ }, category.slug)), /*#__PURE__*/_jsx(BlockManagerCategory, {
92
+ title: __('Uncategorized'),
93
+ blockTypes: filteredBlockTypes.filter(({
94
+ category
95
+ }) => !category),
96
+ selectedBlockTypes: selectedBlockTypes,
97
+ onChange: onChange
98
+ })]
99
+ })]
100
+ });
101
+ }
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["store","blocksStore","useSelect","SearchControl","Button","__","_n","sprintf","useEffect","useState","useDebounce","speak","BlockManagerCategory","jsx","_jsx","jsxs","_jsxs","BlockManager","blockTypes","selectedBlockTypes","onChange","debouncedSpeak","search","setSearch","categories","isMatchingSearchTerm","select","getCategories","enableAllBlockTypes","filteredBlockTypes","filter","blockType","numberOfHiddenBlocks","length","count","resultsFoundMessage","className","children","__next40pxDefaultSize","variant","onClick","__nextHasNoMarginBottom","label","placeholder","value","nextSearch","tabIndex","role","map","category","title","slug"],"sources":["@wordpress/block-editor/src/components/block-manager/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { SearchControl, Button } from '@wordpress/components';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport BlockManagerCategory from './category';\n\n/**\n * Provides a list of blocks with checkboxes.\n *\n * @param {Object} props Props.\n * @param {Array} props.blockTypes An array of blocks.\n * @param {Array} props.selectedBlockTypes An array of selected blocks.\n * @param {Function} props.onChange Function to be called when the selected blocks change.\n */\nexport default function BlockManager( {\n\tblockTypes,\n\tselectedBlockTypes,\n\tonChange,\n} ) {\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst { categories, isMatchingSearchTerm } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tcategories: select( blocksStore ).getCategories(),\n\t\t\tisMatchingSearchTerm: select( blocksStore ).isMatchingSearchTerm,\n\t\t};\n\t}, [] );\n\n\tfunction enableAllBlockTypes() {\n\t\tonChange( blockTypes );\n\t}\n\n\tconst filteredBlockTypes = blockTypes.filter( ( blockType ) => {\n\t\treturn ! search || isMatchingSearchTerm( blockType, search );\n\t} );\n\n\tconst numberOfHiddenBlocks = blockTypes.length - selectedBlockTypes.length;\n\n\t// Announce search results on change\n\tuseEffect( () => {\n\t\tif ( ! search ) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = filteredBlockTypes.length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [ filteredBlockTypes?.length, search, debouncedSpeak ] );\n\n\treturn (\n\t\t<div className=\"block-editor-block-manager__content\">\n\t\t\t{ !! numberOfHiddenBlocks && (\n\t\t\t\t<div className=\"block-editor-block-manager__disabled-blocks-count\">\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'%d block is hidden.',\n\t\t\t\t\t\t\t'%d blocks are hidden.',\n\t\t\t\t\t\t\tnumberOfHiddenBlocks\n\t\t\t\t\t\t),\n\t\t\t\t\t\tnumberOfHiddenBlocks\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ enableAllBlockTypes }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Search for a block' ) }\n\t\t\t\tplaceholder={ __( 'Search for a block' ) }\n\t\t\t\tvalue={ search }\n\t\t\t\tonChange={ ( nextSearch ) => setSearch( nextSearch ) }\n\t\t\t\tclassName=\"block-editor-block-manager__search\"\n\t\t\t/>\n\t\t\t<div\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"region\"\n\t\t\t\taria-label={ __( 'Available block types' ) }\n\t\t\t\tclassName=\"block-editor-block-manager__results\"\n\t\t\t>\n\t\t\t\t{ filteredBlockTypes.length === 0 && (\n\t\t\t\t\t<p className=\"block-editor-block-manager__no-results\">\n\t\t\t\t\t\t{ __( 'No blocks found.' ) }\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t<BlockManagerCategory\n\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\ttitle={ category.title }\n\t\t\t\t\t\tblockTypes={ filteredBlockTypes.filter(\n\t\t\t\t\t\t\t( blockType ) =>\n\t\t\t\t\t\t\t\tblockType.category === category.slug\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tselectedBlockTypes={ selectedBlockTypes }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t\t<BlockManagerCategory\n\t\t\t\t\ttitle={ __( 'Uncategorized' ) }\n\t\t\t\t\tblockTypes={ filteredBlockTypes.filter(\n\t\t\t\t\t\t( { category } ) => ! category\n\t\t\t\t\t) }\n\t\t\t\t\tselectedBlockTypes={ selectedBlockTypes }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}