@wordpress/block-editor 12.17.0 → 12.18.1

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 (421) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +32 -0
  3. package/build/components/block-draggable/index.js +11 -3
  4. package/build/components/block-draggable/index.js.map +1 -1
  5. package/build/components/block-edit/context.js +3 -1
  6. package/build/components/block-edit/context.js.map +1 -1
  7. package/build/components/block-edit/index.js +4 -2
  8. package/build/components/block-edit/index.js.map +1 -1
  9. package/build/components/block-editing-mode/index.js +6 -3
  10. package/build/components/block-editing-mode/index.js.map +1 -1
  11. package/build/components/block-inspector/index.js +5 -2
  12. package/build/components/block-inspector/index.js.map +1 -1
  13. package/build/components/block-list/block.js +4 -3
  14. package/build/components/block-list/block.js.map +1 -1
  15. package/build/components/block-list/block.native.js +9 -5
  16. package/build/components/block-list/block.native.js.map +1 -1
  17. package/build/components/block-list/index.js +30 -4
  18. package/build/components/block-list/index.js.map +1 -1
  19. package/build/components/block-list/private-block-context.js +1 -1
  20. package/build/components/block-list/private-block-context.js.map +1 -1
  21. package/build/components/block-list/use-in-between-inserter.js +1 -1
  22. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  23. package/build/components/block-lock/toolbar.js +8 -2
  24. package/build/components/block-lock/toolbar.js.map +1 -1
  25. package/build/components/block-popover/inbetween.js +15 -3
  26. package/build/components/block-popover/inbetween.js.map +1 -1
  27. package/build/components/block-preview/auto.js +1 -1
  28. package/build/components/block-preview/auto.js.map +1 -1
  29. package/build/components/block-removal-warning-modal/index.js +3 -2
  30. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -4
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-switcher/block-transformations-menu.js +12 -1
  34. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  35. package/build/components/block-switcher/index.js +119 -90
  36. package/build/components/block-switcher/index.js.map +1 -1
  37. package/build/components/block-tools/insertion-point.js +10 -3
  38. package/build/components/block-tools/insertion-point.js.map +1 -1
  39. package/build/components/dimensions-tool/aspect-ratio-tool.js +2 -1
  40. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  41. package/build/components/font-sizes/fluid-utils.js +7 -1
  42. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  43. package/build/components/global-styles/border-panel.js +5 -14
  44. package/build/components/global-styles/border-panel.js.map +1 -1
  45. package/build/components/global-styles/dimensions-panel.js +30 -5
  46. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  47. package/build/components/global-styles/effects-panel.js +7 -1
  48. package/build/components/global-styles/effects-panel.js.map +1 -1
  49. package/build/components/global-styles/hooks.js +11 -8
  50. package/build/components/global-styles/hooks.js.map +1 -1
  51. package/build/components/global-styles/typography-panel.js +31 -14
  52. package/build/components/global-styles/typography-panel.js.map +1 -1
  53. package/build/components/global-styles/use-global-styles-output.js +6 -0
  54. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  55. package/build/components/iframe/get-compatibility-styles.js +99 -0
  56. package/build/components/iframe/get-compatibility-styles.js.map +1 -0
  57. package/build/components/iframe/index.js +2 -3
  58. package/build/components/iframe/index.js.map +1 -1
  59. package/build/components/index.js +16 -2
  60. package/build/components/index.js.map +1 -1
  61. package/build/components/index.native.js +16 -2
  62. package/build/components/index.native.js.map +1 -1
  63. package/build/components/inspector-controls/groups.js +2 -0
  64. package/build/components/inspector-controls/groups.js.map +1 -1
  65. package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
  66. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  67. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -2
  68. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  69. package/build/components/link-control/link-preview.js +30 -26
  70. package/build/components/link-control/link-preview.js.map +1 -1
  71. package/build/components/link-control/search-input.js +1 -9
  72. package/build/components/link-control/search-input.js.map +1 -1
  73. package/build/components/list-view/block-contents.js +3 -1
  74. package/build/components/list-view/block-contents.js.map +1 -1
  75. package/build/components/list-view/block.js +10 -1
  76. package/build/components/list-view/block.js.map +1 -1
  77. package/build/components/list-view/branch.js +29 -8
  78. package/build/components/list-view/branch.js.map +1 -1
  79. package/build/components/list-view/drop-indicator.js +100 -32
  80. package/build/components/list-view/drop-indicator.js.map +1 -1
  81. package/build/components/list-view/index.js +52 -4
  82. package/build/components/list-view/index.js.map +1 -1
  83. package/build/components/list-view/leaf.js +2 -2
  84. package/build/components/list-view/leaf.js.map +1 -1
  85. package/build/components/list-view/use-list-view-block-indexes.js +30 -0
  86. package/build/components/list-view/use-list-view-block-indexes.js.map +1 -0
  87. package/build/components/list-view/use-list-view-drop-zone.js +56 -5
  88. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  89. package/build/components/list-view/utils.js +92 -0
  90. package/build/components/list-view/utils.js.map +1 -1
  91. package/build/components/provider/index.js +1 -1
  92. package/build/components/provider/index.js.map +1 -1
  93. package/build/components/recursion-provider/index.js +21 -0
  94. package/build/components/recursion-provider/index.js.map +1 -1
  95. package/build/components/rich-text/index.js +30 -6
  96. package/build/components/rich-text/index.js.map +1 -1
  97. package/build/components/rich-text/native/index.native.js +9 -9
  98. package/build/components/rich-text/native/index.native.js.map +1 -1
  99. package/build/components/use-block-drop-zone/index.js +30 -7
  100. package/build/components/use-block-drop-zone/index.js.map +1 -1
  101. package/build/components/use-on-block-drop/index.js +50 -8
  102. package/build/components/use-on-block-drop/index.js.map +1 -1
  103. package/build/hooks/block-hooks.js +5 -14
  104. package/build/hooks/block-hooks.js.map +1 -1
  105. package/build/hooks/content-lock-ui.js +17 -42
  106. package/build/hooks/content-lock-ui.js.map +1 -1
  107. package/build/hooks/dimensions.js +71 -1
  108. package/build/hooks/dimensions.js.map +1 -1
  109. package/build/hooks/effects.js +66 -0
  110. package/build/hooks/effects.js.map +1 -0
  111. package/build/hooks/index.js +17 -4
  112. package/build/hooks/index.js.map +1 -1
  113. package/build/hooks/index.native.js +13 -0
  114. package/build/hooks/index.native.js.map +1 -1
  115. package/build/hooks/style.js +9 -2
  116. package/build/hooks/style.js.map +1 -1
  117. package/build/hooks/supports.js +2 -1
  118. package/build/hooks/supports.js.map +1 -1
  119. package/build/hooks/typography.native.js +2 -2
  120. package/build/hooks/typography.native.js.map +1 -1
  121. package/build/hooks/use-bindings-attributes.js +115 -0
  122. package/build/hooks/use-bindings-attributes.js.map +1 -0
  123. package/build/hooks/use-shadow-props.js +46 -0
  124. package/build/hooks/use-shadow-props.js.map +1 -0
  125. package/build/hooks/utils.js +12 -7
  126. package/build/hooks/utils.js.map +1 -1
  127. package/build/index.js +14 -0
  128. package/build/index.js.map +1 -1
  129. package/build/store/actions.js +10 -6
  130. package/build/store/actions.js.map +1 -1
  131. package/build/store/index.js +2 -0
  132. package/build/store/index.js.map +1 -1
  133. package/build/store/private-actions.js +37 -0
  134. package/build/store/private-actions.js.map +1 -1
  135. package/build/store/private-selectors.js +60 -9
  136. package/build/store/private-selectors.js.map +1 -1
  137. package/build/store/reducer.js +44 -3
  138. package/build/store/reducer.js.map +1 -1
  139. package/build/store/resolvers.js +27 -0
  140. package/build/store/resolvers.js.map +1 -0
  141. package/build/store/selectors.js +94 -56
  142. package/build/store/selectors.js.map +1 -1
  143. package/build/store/utils.js +5 -26
  144. package/build/store/utils.js.map +1 -1
  145. package/build/utils/index.js +0 -16
  146. package/build/utils/index.js.map +1 -1
  147. package/build/utils/math.js +13 -0
  148. package/build/utils/math.js.map +1 -1
  149. package/build/utils/object.js +17 -0
  150. package/build/utils/object.js.map +1 -1
  151. package/build/utils/transform-styles/index.js +37 -27
  152. package/build/utils/transform-styles/index.js.map +1 -1
  153. package/build-module/components/block-draggable/index.js +11 -3
  154. package/build-module/components/block-draggable/index.js.map +1 -1
  155. package/build-module/components/block-edit/context.js +1 -0
  156. package/build-module/components/block-edit/context.js.map +1 -1
  157. package/build-module/components/block-edit/index.js +5 -3
  158. package/build-module/components/block-edit/index.js.map +1 -1
  159. package/build-module/components/block-editing-mode/index.js +7 -4
  160. package/build-module/components/block-editing-mode/index.js.map +1 -1
  161. package/build-module/components/block-inspector/index.js +5 -2
  162. package/build-module/components/block-inspector/index.js.map +1 -1
  163. package/build-module/components/block-list/block.js +6 -5
  164. package/build-module/components/block-list/block.js.map +1 -1
  165. package/build-module/components/block-list/block.native.js +11 -7
  166. package/build-module/components/block-list/block.native.js.map +1 -1
  167. package/build-module/components/block-list/index.js +31 -5
  168. package/build-module/components/block-list/index.js.map +1 -1
  169. package/build-module/components/block-list/private-block-context.js +1 -1
  170. package/build-module/components/block-list/private-block-context.js.map +1 -1
  171. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  172. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  173. package/build-module/components/block-lock/toolbar.js +8 -2
  174. package/build-module/components/block-lock/toolbar.js.map +1 -1
  175. package/build-module/components/block-popover/inbetween.js +15 -3
  176. package/build-module/components/block-popover/inbetween.js.map +1 -1
  177. package/build-module/components/block-preview/auto.js +3 -3
  178. package/build-module/components/block-preview/auto.js.map +1 -1
  179. package/build-module/components/block-removal-warning-modal/index.js +3 -2
  180. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  181. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -4
  182. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  183. package/build-module/components/block-switcher/block-transformations-menu.js +12 -1
  184. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  185. package/build-module/components/block-switcher/index.js +116 -86
  186. package/build-module/components/block-switcher/index.js.map +1 -1
  187. package/build-module/components/block-tools/insertion-point.js +10 -3
  188. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  189. package/build-module/components/dimensions-tool/aspect-ratio-tool.js +2 -1
  190. package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  191. package/build-module/components/font-sizes/fluid-utils.js +7 -1
  192. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  193. package/build-module/components/global-styles/border-panel.js +5 -14
  194. package/build-module/components/global-styles/border-panel.js.map +1 -1
  195. package/build-module/components/global-styles/dimensions-panel.js +30 -5
  196. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  197. package/build-module/components/global-styles/effects-panel.js +7 -1
  198. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  199. package/build-module/components/global-styles/hooks.js +11 -8
  200. package/build-module/components/global-styles/hooks.js.map +1 -1
  201. package/build-module/components/global-styles/typography-panel.js +32 -15
  202. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  203. package/build-module/components/global-styles/use-global-styles-output.js +6 -0
  204. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  205. package/build-module/components/iframe/get-compatibility-styles.js +93 -0
  206. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -0
  207. package/build-module/components/iframe/index.js +2 -3
  208. package/build-module/components/iframe/index.js.map +1 -1
  209. package/build-module/components/index.js +1 -1
  210. package/build-module/components/index.js.map +1 -1
  211. package/build-module/components/index.native.js +1 -1
  212. package/build-module/components/index.native.js.map +1 -1
  213. package/build-module/components/inspector-controls/groups.js +2 -0
  214. package/build-module/components/inspector-controls/groups.js.map +1 -1
  215. package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
  216. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  217. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -2
  218. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  219. package/build-module/components/link-control/link-preview.js +32 -28
  220. package/build-module/components/link-control/link-preview.js.map +1 -1
  221. package/build-module/components/link-control/search-input.js +1 -8
  222. package/build-module/components/link-control/search-input.js.map +1 -1
  223. package/build-module/components/list-view/block-contents.js +3 -1
  224. package/build-module/components/list-view/block-contents.js.map +1 -1
  225. package/build-module/components/list-view/block.js +10 -1
  226. package/build-module/components/list-view/block.js.map +1 -1
  227. package/build-module/components/list-view/branch.js +30 -9
  228. package/build-module/components/list-view/branch.js.map +1 -1
  229. package/build-module/components/list-view/drop-indicator.js +99 -32
  230. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  231. package/build-module/components/list-view/index.js +54 -6
  232. package/build-module/components/list-view/index.js.map +1 -1
  233. package/build-module/components/list-view/leaf.js +2 -2
  234. package/build-module/components/list-view/leaf.js.map +1 -1
  235. package/build-module/components/list-view/use-list-view-block-indexes.js +23 -0
  236. package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -0
  237. package/build-module/components/list-view/use-list-view-drop-zone.js +58 -7
  238. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  239. package/build-module/components/list-view/utils.js +91 -0
  240. package/build-module/components/list-view/utils.js.map +1 -1
  241. package/build-module/components/provider/index.js +1 -1
  242. package/build-module/components/provider/index.js.map +1 -1
  243. package/build-module/components/recursion-provider/index.js +17 -0
  244. package/build-module/components/recursion-provider/index.js.map +1 -1
  245. package/build-module/components/rich-text/index.js +30 -6
  246. package/build-module/components/rich-text/index.js.map +1 -1
  247. package/build-module/components/rich-text/native/index.native.js +9 -9
  248. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  249. package/build-module/components/use-block-drop-zone/index.js +31 -8
  250. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  251. package/build-module/components/use-on-block-drop/index.js +51 -9
  252. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  253. package/build-module/hooks/block-hooks.js +5 -14
  254. package/build-module/hooks/block-hooks.js.map +1 -1
  255. package/build-module/hooks/content-lock-ui.js +19 -43
  256. package/build-module/hooks/content-lock-ui.js.map +1 -1
  257. package/build-module/hooks/dimensions.js +70 -2
  258. package/build-module/hooks/dimensions.js.map +1 -1
  259. package/build-module/hooks/effects.js +51 -0
  260. package/build-module/hooks/effects.js.map +1 -0
  261. package/build-module/hooks/index.js +5 -3
  262. package/build-module/hooks/index.js.map +1 -1
  263. package/build-module/hooks/index.native.js +1 -0
  264. package/build-module/hooks/index.native.js.map +1 -1
  265. package/build-module/hooks/style.js +9 -2
  266. package/build-module/hooks/style.js.map +1 -1
  267. package/build-module/hooks/supports.js +2 -1
  268. package/build-module/hooks/supports.js.map +1 -1
  269. package/build-module/hooks/typography.native.js +2 -2
  270. package/build-module/hooks/typography.native.js.map +1 -1
  271. package/build-module/hooks/use-bindings-attributes.js +112 -0
  272. package/build-module/hooks/use-bindings-attributes.js.map +1 -0
  273. package/build-module/hooks/use-shadow-props.js +39 -0
  274. package/build-module/hooks/use-shadow-props.js.map +1 -0
  275. package/build-module/hooks/utils.js +14 -9
  276. package/build-module/hooks/utils.js.map +1 -1
  277. package/build-module/index.js +1 -1
  278. package/build-module/index.js.map +1 -1
  279. package/build-module/store/actions.js +10 -6
  280. package/build-module/store/actions.js.map +1 -1
  281. package/build-module/store/index.js +2 -0
  282. package/build-module/store/index.js.map +1 -1
  283. package/build-module/store/private-actions.js +35 -0
  284. package/build-module/store/private-actions.js.map +1 -1
  285. package/build-module/store/private-selectors.js +53 -8
  286. package/build-module/store/private-selectors.js.map +1 -1
  287. package/build-module/store/reducer.js +43 -3
  288. package/build-module/store/reducer.js.map +1 -1
  289. package/build-module/store/resolvers.js +20 -0
  290. package/build-module/store/resolvers.js.map +1 -0
  291. package/build-module/store/selectors.js +89 -52
  292. package/build-module/store/selectors.js.map +1 -1
  293. package/build-module/store/utils.js +3 -23
  294. package/build-module/store/utils.js.map +1 -1
  295. package/build-module/utils/index.js +0 -1
  296. package/build-module/utils/index.js.map +1 -1
  297. package/build-module/utils/math.js +12 -0
  298. package/build-module/utils/math.js.map +1 -1
  299. package/build-module/utils/object.js +16 -0
  300. package/build-module/utils/object.js.map +1 -1
  301. package/build-module/utils/transform-styles/index.js +36 -27
  302. package/build-module/utils/transform-styles/index.js.map +1 -1
  303. package/build-style/content-rtl.css +33 -16
  304. package/build-style/content.css +33 -16
  305. package/build-style/default-editor-styles-rtl.css +1 -1
  306. package/build-style/default-editor-styles.css +1 -1
  307. package/build-style/style-rtl.css +169 -114
  308. package/build-style/style.css +169 -114
  309. package/package.json +31 -31
  310. package/src/components/block-canvas/style.scss +8 -1
  311. package/src/components/block-draggable/index.js +16 -5
  312. package/src/components/block-edit/context.js +1 -0
  313. package/src/components/block-edit/index.js +4 -0
  314. package/src/components/block-editing-mode/index.js +12 -7
  315. package/src/components/block-inspector/index.js +5 -2
  316. package/src/components/block-list/block.js +5 -4
  317. package/src/components/block-list/block.native.js +13 -3
  318. package/src/components/block-list/content.scss +34 -5
  319. package/src/components/block-list/index.js +52 -16
  320. package/src/components/block-list/private-block-context.js +1 -1
  321. package/src/components/block-list/use-in-between-inserter.js +1 -2
  322. package/src/components/block-lock/toolbar.js +10 -2
  323. package/src/components/block-popover/inbetween.js +22 -2
  324. package/src/components/block-preview/auto.js +3 -3
  325. package/src/components/block-removal-warning-modal/index.js +3 -2
  326. package/src/components/block-settings-menu/block-settings-dropdown.js +2 -7
  327. package/src/components/block-switcher/block-transformations-menu.js +18 -1
  328. package/src/components/block-switcher/index.js +133 -111
  329. package/src/components/block-switcher/style.scss +6 -4
  330. package/src/components/block-switcher/test/index.js +113 -230
  331. package/src/components/block-toolbar/style.scss +22 -18
  332. package/src/components/block-tools/insertion-point.js +15 -2
  333. package/src/components/block-tools/style.scss +8 -7
  334. package/src/components/dimensions-tool/aspect-ratio-tool.js +4 -1
  335. package/src/components/font-sizes/fluid-utils.js +8 -2
  336. package/src/components/font-sizes/test/fluid-utils.js +9 -0
  337. package/src/components/global-styles/border-panel.js +7 -17
  338. package/src/components/global-styles/dimensions-panel.js +50 -1
  339. package/src/components/global-styles/effects-panel.js +16 -1
  340. package/src/components/global-styles/hooks.js +11 -6
  341. package/src/components/global-styles/typography-panel.js +45 -13
  342. package/src/components/global-styles/use-global-styles-output.js +6 -0
  343. package/src/components/iframe/get-compatibility-styles.js +120 -0
  344. package/src/components/iframe/index.js +2 -3
  345. package/src/components/index.js +4 -2
  346. package/src/components/index.native.js +4 -2
  347. package/src/components/inspector-controls/groups.js +2 -0
  348. package/src/components/inspector-controls-tabs/styles-tab.js +1 -0
  349. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -0
  350. package/src/components/link-control/link-preview.js +31 -55
  351. package/src/components/link-control/search-input.js +1 -9
  352. package/src/components/link-control/style.scss +31 -85
  353. package/src/components/link-control/test/index.js +2 -1
  354. package/src/components/list-view/block-contents.js +5 -1
  355. package/src/components/list-view/block.js +9 -0
  356. package/src/components/list-view/branch.js +30 -10
  357. package/src/components/list-view/drop-indicator.js +139 -46
  358. package/src/components/list-view/index.js +74 -3
  359. package/src/components/list-view/leaf.js +2 -2
  360. package/src/components/list-view/style.scss +102 -13
  361. package/src/components/list-view/test/use-list-view-drop-zone.js +4 -0
  362. package/src/components/list-view/test/utils.js +218 -1
  363. package/src/components/list-view/use-list-view-block-indexes.js +29 -0
  364. package/src/components/list-view/use-list-view-drop-zone.js +78 -6
  365. package/src/components/list-view/utils.js +116 -0
  366. package/src/components/provider/index.js +3 -1
  367. package/src/components/recursion-provider/README.md +2 -2
  368. package/src/components/recursion-provider/index.js +17 -0
  369. package/src/components/rich-text/index.js +48 -10
  370. package/src/components/rich-text/native/index.native.js +10 -10
  371. package/src/components/use-block-drop-zone/index.js +60 -19
  372. package/src/components/use-block-drop-zone/test/index.js +32 -61
  373. package/src/components/use-on-block-drop/index.js +92 -11
  374. package/src/hooks/block-hooks.js +5 -17
  375. package/src/hooks/content-lock-ui.js +15 -55
  376. package/src/hooks/dimensions.js +74 -3
  377. package/src/hooks/effects.js +57 -0
  378. package/src/hooks/index.js +4 -2
  379. package/src/hooks/index.native.js +1 -0
  380. package/src/hooks/style.js +12 -0
  381. package/src/hooks/supports.js +2 -0
  382. package/src/hooks/test/effects.js +39 -0
  383. package/src/hooks/typography.native.js +2 -2
  384. package/src/hooks/use-bindings-attributes.js +148 -0
  385. package/src/hooks/use-shadow-props.js +37 -0
  386. package/src/hooks/utils.js +30 -10
  387. package/src/index.js +2 -0
  388. package/src/store/actions.js +9 -4
  389. package/src/store/index.js +2 -0
  390. package/src/store/private-actions.js +32 -0
  391. package/src/store/private-selectors.js +78 -21
  392. package/src/store/reducer.js +49 -2
  393. package/src/store/resolvers.js +17 -0
  394. package/src/store/selectors.js +169 -161
  395. package/src/store/test/registry-selectors.js +431 -0
  396. package/src/store/test/selectors.js +14 -400
  397. package/src/store/utils.js +10 -33
  398. package/src/style.scss +0 -1
  399. package/src/utils/index.js +0 -1
  400. package/src/utils/math.js +12 -0
  401. package/src/utils/object.js +16 -0
  402. package/src/utils/transform-styles/index.js +52 -37
  403. package/tsconfig.tsbuildinfo +1 -1
  404. package/build/components/iframe/use-compatibility-styles.js +0 -100
  405. package/build/components/iframe/use-compatibility-styles.js.map +0 -1
  406. package/build/hooks/custom-fields.js +0 -106
  407. package/build/hooks/custom-fields.js.map +0 -1
  408. package/build/utils/block-variation-transforms.js +0 -42
  409. package/build/utils/block-variation-transforms.js.map +0 -1
  410. package/build-module/components/iframe/use-compatibility-styles.js +0 -94
  411. package/build-module/components/iframe/use-compatibility-styles.js.map +0 -1
  412. package/build-module/hooks/custom-fields.js +0 -99
  413. package/build-module/hooks/custom-fields.js.map +0 -1
  414. package/build-module/utils/block-variation-transforms.js +0 -35
  415. package/build-module/utils/block-variation-transforms.js.map +0 -1
  416. package/src/components/block-switcher/test/__snapshots__/index.js.snap +0 -116
  417. package/src/components/contrast-checker/style.scss +0 -3
  418. package/src/components/iframe/use-compatibility-styles.js +0 -122
  419. package/src/hooks/custom-fields.js +0 -115
  420. package/src/utils/block-variation-transforms.js +0 -38
  421. package/src/utils/test/block-variation-transforms.js +0 -94
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 12.18.0 (2024-01-24)
6
+
7
+ - Deprecated `__experimentalRecursionProvider` and `__experimentalUseHasRecursion` in favor of their new stable counterparts `RecursionProvider` and `useHasRecursion`.
8
+
5
9
  ## 12.17.0 (2024-01-10)
6
10
 
7
11
  ## 12.16.0 (2023-12-13)
package/README.md CHANGED
@@ -707,6 +707,23 @@ _Related_
707
707
 
708
708
  Private @wordpress/block-editor APIs.
709
709
 
710
+ ### RecursionProvider
711
+
712
+ A React context provider for use with the `useHasRecursion` hook to prevent recursive renders.
713
+
714
+ Wrap block content with this provider and provide the same `uniqueId` prop as used with `useHasRecursion`.
715
+
716
+ _Parameters_
717
+
718
+ - _props_ `Object`:
719
+ - _props.uniqueId_ `*`: Any value that acts as a unique identifier for a block instance.
720
+ - _props.blockName_ `string`: Optional block name.
721
+ - _props.children_ `JSX.Element`: React children.
722
+
723
+ _Returns_
724
+
725
+ - `JSX.Element`: A React element.
726
+
710
727
  ### ReusableBlocksRenameHint
711
728
 
712
729
  Undocumented declaration.
@@ -941,6 +958,21 @@ _Returns_
941
958
 
942
959
  - `any`: value
943
960
 
961
+ ### useHasRecursion
962
+
963
+ A React hook for keeping track of blocks previously rendered up in the block tree. Blocks susceptible to recursion can use this hook in their `Edit` function to prevent said recursion.
964
+
965
+ Use this with the `RecursionProvider` component, using the same `uniqueId` value for both the hook and the provider.
966
+
967
+ _Parameters_
968
+
969
+ - _uniqueId_ `*`: Any value that acts as a unique identifier for a block instance.
970
+ - _blockName_ `string`: Optional block name.
971
+
972
+ _Returns_
973
+
974
+ - `boolean`: A boolean describing whether the provided id has already been rendered.
975
+
944
976
  ### useInnerBlocksProps
945
977
 
946
978
  This hook is used to lightly mark an element as an inner blocks wrapper element. Call this hook and pass the returned props to the element to mark as an inner blocks wrapper, automatically rendering inner blocks as children. If you define a ref for the element, it is important to pass the ref to this hook, which the hook in turn will pass to the component through the props it returns. Optionally, you can also pass any other props through this hook, and they will be merged and returned.
@@ -25,12 +25,15 @@ var _useBlockDropZone = require("../use-block-drop-zone");
25
25
  */
26
26
 
27
27
  const BlockDraggable = ({
28
+ appendToOwnerDocument,
28
29
  children,
29
30
  clientIds,
30
31
  cloneClassname,
32
+ elementId,
31
33
  onDragStart,
32
34
  onDragEnd,
33
- fadeWhenDisabled = false
35
+ fadeWhenDisabled = false,
36
+ dragComponent
34
37
  }) => {
35
38
  const {
36
39
  srcRootClientId,
@@ -147,6 +150,7 @@ const BlockDraggable = ({
147
150
  srcRootClientId
148
151
  };
149
152
  return (0, _react.createElement)(_components.Draggable, {
153
+ appendToOwnerDocument: appendToOwnerDocument,
150
154
  cloneClassname: cloneClassname,
151
155
  __experimentalTransferDataType: "wp-blocks",
152
156
  transferData: transferData,
@@ -171,11 +175,15 @@ const BlockDraggable = ({
171
175
  onDragEnd();
172
176
  }
173
177
  },
174
- __experimentalDragComponent: (0, _react.createElement)(_draggableChip.default, {
178
+ __experimentalDragComponent:
179
+ // Check against `undefined` so that `null` can be used to disable
180
+ // the default drag component.
181
+ dragComponent !== undefined ? dragComponent : (0, _react.createElement)(_draggableChip.default, {
175
182
  count: clientIds.length,
176
183
  icon: icon,
177
184
  fadeWhenDisabled: true
178
- })
185
+ }),
186
+ elementId: elementId
179
187
  }, ({
180
188
  onDraggableStart,
181
189
  onDraggableEnd
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_components","_data","_element","_compose","_draggableChip","_interopRequireDefault","_useScrollWhenDragging","_store","_useBlockRefs","_useBlockDropZone","BlockDraggable","children","clientIds","cloneClassname","onDragStart","onDragEnd","fadeWhenDisabled","srcRootClientId","isDraggable","icon","visibleInserter","getBlockType","useSelect","select","canMoveBlocks","getBlockRootClientId","getBlockName","getBlockAttributes","isBlockInsertionPointVisible","blockEditorStore","_getBlockType","getActiveBlockVariation","blocksStore","rootClientId","blockName","variation","isDragging","useRef","startScrolling","scrollOnDragOver","stopScrolling","useScrollWhenDragging","getAllowedBlocks","getBlockNamesByClientId","startDraggingBlocks","stopDraggingBlocks","useDispatch","useEffect","current","blockRef","useBlockRef","editorRoot","closest","onDragOver","event","target","draggedBlockNames","targetClientId","getAttribute","allowedBlocks","targetBlockName","dropTargetValid","length","targetRootClientId","targetRootBlockName","rootAllowedBlocks","isDropTargetValid","window","document","body","classList","add","remove","throttledOnDragOver","throttle","addEventListener","removeEventListener","draggable","transferData","type","srcClientIds","_react","createElement","Draggable","__experimentalTransferDataType","requestAnimationFrame","__experimentalDragComponent","default","count","onDraggableStart","onDraggableEnd","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';\nimport { isDropTargetValid } from '../use-block-drop-zone';\n\nconst BlockDraggable = ( {\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\tonDragStart,\n\tonDragEnd,\n\tfadeWhenDisabled = false,\n} ) => {\n\tconst {\n\t\tsrcRootClientId,\n\t\tisDraggable,\n\t\ticon,\n\t\tvisibleInserter,\n\t\tgetBlockType,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockType: _getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\t\t\tconst variation = getActiveBlockVariation(\n\t\t\t\tblockName,\n\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\ticon: variation?.icon || _getBlockType( blockName )?.icon,\n\t\t\t\tvisibleInserter: isBlockInsertionPointVisible(),\n\t\t\t\tgetBlockType: _getBlockType,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst isDragging = useRef( false );\n\tconst [ startScrolling, scrollOnDragOver, stopScrolling ] =\n\t\tuseScrollWhenDragging();\n\n\tconst { getAllowedBlocks, getBlockNamesByClientId, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { startDraggingBlocks, stopDraggingBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Stop dragging blocks if the block draggable is unmounted.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( isDragging.current ) {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\t// Find the root of the editor iframe.\n\tconst blockRef = useBlockRef( clientIds[ 0 ] );\n\tconst editorRoot = blockRef.current?.closest( 'body' );\n\n\t/*\n\t * Add a dragover event listener to the editor root to track the blocks being dragged over.\n\t * The listener has to be inside the editor iframe otherwise the target isn't accessible.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! editorRoot || ! fadeWhenDisabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst onDragOver = ( event ) => {\n\t\t\tif ( ! event.target.closest( '[data-block]' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst draggedBlockNames = getBlockNamesByClientId( clientIds );\n\t\t\tconst targetClientId = event.target\n\t\t\t\t.closest( '[data-block]' )\n\t\t\t\t.getAttribute( 'data-block' );\n\n\t\t\tconst allowedBlocks = getAllowedBlocks( targetClientId );\n\t\t\tconst targetBlockName = getBlockNamesByClientId( [\n\t\t\t\ttargetClientId,\n\t\t\t] )[ 0 ];\n\n\t\t\t/*\n\t\t\t * Check if the target is valid to drop in.\n\t\t\t * If the target's allowedBlocks is an empty array,\n\t\t\t * it isn't a container block, in which case we check\n\t\t\t * its parent's validity instead.\n\t\t\t */\n\t\t\tlet dropTargetValid;\n\t\t\tif ( allowedBlocks?.length === 0 ) {\n\t\t\t\tconst targetRootClientId =\n\t\t\t\t\tgetBlockRootClientId( targetClientId );\n\t\t\t\tconst targetRootBlockName = getBlockNamesByClientId( [\n\t\t\t\t\ttargetRootClientId,\n\t\t\t\t] )[ 0 ];\n\t\t\t\tconst rootAllowedBlocks =\n\t\t\t\t\tgetAllowedBlocks( targetRootClientId );\n\t\t\t\tdropTargetValid = isDropTargetValid(\n\t\t\t\t\tgetBlockType,\n\t\t\t\t\trootAllowedBlocks,\n\t\t\t\t\tdraggedBlockNames,\n\t\t\t\t\ttargetRootBlockName\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdropTargetValid = isDropTargetValid(\n\t\t\t\t\tgetBlockType,\n\t\t\t\t\tallowedBlocks,\n\t\t\t\t\tdraggedBlockNames,\n\t\t\t\t\ttargetBlockName\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Update the body class to reflect if drop target is valid.\n\t\t\t * This has to be done on the document body because the draggable\n\t\t\t * chip is rendered outside of the editor iframe.\n\t\t\t */\n\t\t\tif ( ! dropTargetValid && ! visibleInserter ) {\n\t\t\t\twindow?.document?.body?.classList?.add(\n\t\t\t\t\t'block-draggable-invalid-drag-token'\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\twindow?.document?.body?.classList?.remove(\n\t\t\t\t\t'block-draggable-invalid-drag-token'\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tconst throttledOnDragOver = throttle( onDragOver, 200 );\n\n\t\teditorRoot.addEventListener( 'dragover', throttledOnDragOver );\n\n\t\treturn () => {\n\t\t\teditorRoot.removeEventListener( 'dragover', throttledOnDragOver );\n\t\t};\n\t}, [\n\t\tclientIds,\n\t\teditorRoot,\n\t\tfadeWhenDisabled,\n\t\tgetAllowedBlocks,\n\t\tgetBlockNamesByClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockType,\n\t\tvisibleInserter,\n\t] );\n\n\tif ( ! isDraggable ) {\n\t\treturn children( { draggable: false } );\n\t}\n\n\tconst transferData = {\n\t\ttype: 'block',\n\t\tsrcClientIds: clientIds,\n\t\tsrcRootClientId,\n\t};\n\n\treturn (\n\t\t<Draggable\n\t\t\tcloneClassname={ cloneClassname }\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ transferData }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t// Defer hiding the dragged source element to the next\n\t\t\t\t// frame to enable dragging.\n\t\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\t\tstartDraggingBlocks( clientIds );\n\t\t\t\t\tisDragging.current = true;\n\n\t\t\t\t\tstartScrolling( event );\n\n\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\tonDragStart();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonDragOver={ scrollOnDragOver }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t\tisDragging.current = false;\n\n\t\t\t\tstopScrolling();\n\n\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\tonDragEnd();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip\n\t\t\t\t\tcount={ clientIds.length }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tfadeWhenDisabled\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default BlockDraggable;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_blocks","require","_components","_data","_element","_compose","_draggableChip","_interopRequireDefault","_useScrollWhenDragging","_store","_useBlockRefs","_useBlockDropZone","BlockDraggable","appendToOwnerDocument","children","clientIds","cloneClassname","elementId","onDragStart","onDragEnd","fadeWhenDisabled","dragComponent","srcRootClientId","isDraggable","icon","visibleInserter","getBlockType","useSelect","select","canMoveBlocks","getBlockRootClientId","getBlockName","getBlockAttributes","isBlockInsertionPointVisible","blockEditorStore","_getBlockType","getActiveBlockVariation","blocksStore","rootClientId","blockName","variation","isDragging","useRef","startScrolling","scrollOnDragOver","stopScrolling","useScrollWhenDragging","getAllowedBlocks","getBlockNamesByClientId","startDraggingBlocks","stopDraggingBlocks","useDispatch","useEffect","current","blockRef","useBlockRef","editorRoot","closest","onDragOver","event","target","draggedBlockNames","targetClientId","getAttribute","allowedBlocks","targetBlockName","dropTargetValid","length","targetRootClientId","targetRootBlockName","rootAllowedBlocks","isDropTargetValid","window","document","body","classList","add","remove","throttledOnDragOver","throttle","addEventListener","removeEventListener","draggable","transferData","type","srcClientIds","_react","createElement","Draggable","__experimentalTransferDataType","requestAnimationFrame","__experimentalDragComponent","undefined","default","count","onDraggableStart","onDraggableEnd","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';\nimport { isDropTargetValid } from '../use-block-drop-zone';\n\nconst BlockDraggable = ( {\n\tappendToOwnerDocument,\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\telementId,\n\tonDragStart,\n\tonDragEnd,\n\tfadeWhenDisabled = false,\n\tdragComponent,\n} ) => {\n\tconst {\n\t\tsrcRootClientId,\n\t\tisDraggable,\n\t\ticon,\n\t\tvisibleInserter,\n\t\tgetBlockType,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockType: _getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\t\t\tconst variation = getActiveBlockVariation(\n\t\t\t\tblockName,\n\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\ticon: variation?.icon || _getBlockType( blockName )?.icon,\n\t\t\t\tvisibleInserter: isBlockInsertionPointVisible(),\n\t\t\t\tgetBlockType: _getBlockType,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst isDragging = useRef( false );\n\tconst [ startScrolling, scrollOnDragOver, stopScrolling ] =\n\t\tuseScrollWhenDragging();\n\n\tconst { getAllowedBlocks, getBlockNamesByClientId, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { startDraggingBlocks, stopDraggingBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Stop dragging blocks if the block draggable is unmounted.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( isDragging.current ) {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\t// Find the root of the editor iframe.\n\tconst blockRef = useBlockRef( clientIds[ 0 ] );\n\tconst editorRoot = blockRef.current?.closest( 'body' );\n\n\t/*\n\t * Add a dragover event listener to the editor root to track the blocks being dragged over.\n\t * The listener has to be inside the editor iframe otherwise the target isn't accessible.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! editorRoot || ! fadeWhenDisabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst onDragOver = ( event ) => {\n\t\t\tif ( ! event.target.closest( '[data-block]' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst draggedBlockNames = getBlockNamesByClientId( clientIds );\n\t\t\tconst targetClientId = event.target\n\t\t\t\t.closest( '[data-block]' )\n\t\t\t\t.getAttribute( 'data-block' );\n\n\t\t\tconst allowedBlocks = getAllowedBlocks( targetClientId );\n\t\t\tconst targetBlockName = getBlockNamesByClientId( [\n\t\t\t\ttargetClientId,\n\t\t\t] )[ 0 ];\n\n\t\t\t/*\n\t\t\t * Check if the target is valid to drop in.\n\t\t\t * If the target's allowedBlocks is an empty array,\n\t\t\t * it isn't a container block, in which case we check\n\t\t\t * its parent's validity instead.\n\t\t\t */\n\t\t\tlet dropTargetValid;\n\t\t\tif ( allowedBlocks?.length === 0 ) {\n\t\t\t\tconst targetRootClientId =\n\t\t\t\t\tgetBlockRootClientId( targetClientId );\n\t\t\t\tconst targetRootBlockName = getBlockNamesByClientId( [\n\t\t\t\t\ttargetRootClientId,\n\t\t\t\t] )[ 0 ];\n\t\t\t\tconst rootAllowedBlocks =\n\t\t\t\t\tgetAllowedBlocks( targetRootClientId );\n\t\t\t\tdropTargetValid = isDropTargetValid(\n\t\t\t\t\tgetBlockType,\n\t\t\t\t\trootAllowedBlocks,\n\t\t\t\t\tdraggedBlockNames,\n\t\t\t\t\ttargetRootBlockName\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdropTargetValid = isDropTargetValid(\n\t\t\t\t\tgetBlockType,\n\t\t\t\t\tallowedBlocks,\n\t\t\t\t\tdraggedBlockNames,\n\t\t\t\t\ttargetBlockName\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Update the body class to reflect if drop target is valid.\n\t\t\t * This has to be done on the document body because the draggable\n\t\t\t * chip is rendered outside of the editor iframe.\n\t\t\t */\n\t\t\tif ( ! dropTargetValid && ! visibleInserter ) {\n\t\t\t\twindow?.document?.body?.classList?.add(\n\t\t\t\t\t'block-draggable-invalid-drag-token'\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\twindow?.document?.body?.classList?.remove(\n\t\t\t\t\t'block-draggable-invalid-drag-token'\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tconst throttledOnDragOver = throttle( onDragOver, 200 );\n\n\t\teditorRoot.addEventListener( 'dragover', throttledOnDragOver );\n\n\t\treturn () => {\n\t\t\teditorRoot.removeEventListener( 'dragover', throttledOnDragOver );\n\t\t};\n\t}, [\n\t\tclientIds,\n\t\teditorRoot,\n\t\tfadeWhenDisabled,\n\t\tgetAllowedBlocks,\n\t\tgetBlockNamesByClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockType,\n\t\tvisibleInserter,\n\t] );\n\n\tif ( ! isDraggable ) {\n\t\treturn children( { draggable: false } );\n\t}\n\n\tconst transferData = {\n\t\ttype: 'block',\n\t\tsrcClientIds: clientIds,\n\t\tsrcRootClientId,\n\t};\n\n\treturn (\n\t\t<Draggable\n\t\t\tappendToOwnerDocument={ appendToOwnerDocument }\n\t\t\tcloneClassname={ cloneClassname }\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ transferData }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t// Defer hiding the dragged source element to the next\n\t\t\t\t// frame to enable dragging.\n\t\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\t\tstartDraggingBlocks( clientIds );\n\t\t\t\t\tisDragging.current = true;\n\n\t\t\t\t\tstartScrolling( event );\n\n\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\tonDragStart();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonDragOver={ scrollOnDragOver }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t\tisDragging.current = false;\n\n\t\t\t\tstopScrolling();\n\n\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\tonDragEnd();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t// Check against `undefined` so that `null` can be used to disable\n\t\t\t\t// the default drag component.\n\t\t\t\tdragComponent !== undefined ? (\n\t\t\t\t\tdragComponent\n\t\t\t\t) : (\n\t\t\t\t\t<BlockDraggableChip\n\t\t\t\t\t\tcount={ clientIds.length }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tfadeWhenDisabled\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\telementId={ elementId }\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default BlockDraggable;\n"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.mayDisplayParentControlsKey = exports.mayDisplayControlsKey = exports.DEFAULT_BLOCK_EDIT_CONTEXT = exports.BlockEditContextProvider = void 0;
6
+ exports.mayDisplayParentControlsKey = exports.mayDisplayControlsKey = exports.blockEditingModeKey = exports.DEFAULT_BLOCK_EDIT_CONTEXT = exports.BlockEditContextProvider = void 0;
7
7
  exports.useBlockEditContext = useBlockEditContext;
8
8
  var _element = require("@wordpress/element");
9
9
  /**
@@ -14,6 +14,8 @@ const mayDisplayControlsKey = Symbol('mayDisplayControls');
14
14
  exports.mayDisplayControlsKey = mayDisplayControlsKey;
15
15
  const mayDisplayParentControlsKey = Symbol('mayDisplayParentControls');
16
16
  exports.mayDisplayParentControlsKey = mayDisplayParentControlsKey;
17
+ const blockEditingModeKey = Symbol('blockEditingMode');
18
+ exports.blockEditingModeKey = blockEditingModeKey;
17
19
  const DEFAULT_BLOCK_EDIT_CONTEXT = {
18
20
  name: '',
19
21
  isSelected: false
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","mayDisplayControlsKey","Symbol","exports","mayDisplayParentControlsKey","DEFAULT_BLOCK_EDIT_CONTEXT","name","isSelected","Context","createContext","Provider","BlockEditContextProvider","useBlockEditContext","useContext"],"sources":["@wordpress/block-editor/src/components/block-edit/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\nexport const mayDisplayControlsKey = Symbol( 'mayDisplayControls' );\nexport const mayDisplayParentControlsKey = Symbol( 'mayDisplayParentControls' );\n\nexport const DEFAULT_BLOCK_EDIT_CONTEXT = {\n\tname: '',\n\tisSelected: false,\n};\n\nconst Context = createContext( DEFAULT_BLOCK_EDIT_CONTEXT );\nconst { Provider } = Context;\n\nexport { Provider as BlockEditContextProvider };\n\n/**\n * A hook that returns the block edit context.\n *\n * @return {Object} Block edit context\n */\nexport function useBlockEditContext() {\n\treturn useContext( Context );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAMC,qBAAqB,GAAGC,MAAM,CAAE,oBAAqB,CAAC;AAACC,OAAA,CAAAF,qBAAA,GAAAA,qBAAA;AAC7D,MAAMG,2BAA2B,GAAGF,MAAM,CAAE,0BAA2B,CAAC;AAACC,OAAA,CAAAC,2BAAA,GAAAA,2BAAA;AAEzE,MAAMC,0BAA0B,GAAG;EACzCC,IAAI,EAAE,EAAE;EACRC,UAAU,EAAE;AACb,CAAC;AAACJ,OAAA,CAAAE,0BAAA,GAAAA,0BAAA;AAEF,MAAMG,OAAO,GAAG,IAAAC,sBAAa,EAAEJ,0BAA2B,CAAC;AAC3D,MAAM;EAAEK;AAAS,CAAC,GAAGF,OAAO;AAACL,OAAA,CAAAQ,wBAAA,GAAAD,QAAA;AAI7B;AACA;AACA;AACA;AACA;AACO,SAASE,mBAAmBA,CAAA,EAAG;EACrC,OAAO,IAAAC,mBAAU,EAAEL,OAAQ,CAAC;AAC7B"}
1
+ {"version":3,"names":["_element","require","mayDisplayControlsKey","Symbol","exports","mayDisplayParentControlsKey","blockEditingModeKey","DEFAULT_BLOCK_EDIT_CONTEXT","name","isSelected","Context","createContext","Provider","BlockEditContextProvider","useBlockEditContext","useContext"],"sources":["@wordpress/block-editor/src/components/block-edit/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\nexport const mayDisplayControlsKey = Symbol( 'mayDisplayControls' );\nexport const mayDisplayParentControlsKey = Symbol( 'mayDisplayParentControls' );\nexport const blockEditingModeKey = Symbol( 'blockEditingMode' );\n\nexport const DEFAULT_BLOCK_EDIT_CONTEXT = {\n\tname: '',\n\tisSelected: false,\n};\n\nconst Context = createContext( DEFAULT_BLOCK_EDIT_CONTEXT );\nconst { Provider } = Context;\n\nexport { Provider as BlockEditContextProvider };\n\n/**\n * A hook that returns the block edit context.\n *\n * @return {Object} Block edit context\n */\nexport function useBlockEditContext() {\n\treturn useContext( Context );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAMC,qBAAqB,GAAGC,MAAM,CAAE,oBAAqB,CAAC;AAACC,OAAA,CAAAF,qBAAA,GAAAA,qBAAA;AAC7D,MAAMG,2BAA2B,GAAGF,MAAM,CAAE,0BAA2B,CAAC;AAACC,OAAA,CAAAC,2BAAA,GAAAA,2BAAA;AACzE,MAAMC,mBAAmB,GAAGH,MAAM,CAAE,kBAAmB,CAAC;AAACC,OAAA,CAAAE,mBAAA,GAAAA,mBAAA;AAEzD,MAAMC,0BAA0B,GAAG;EACzCC,IAAI,EAAE,EAAE;EACRC,UAAU,EAAE;AACb,CAAC;AAACL,OAAA,CAAAG,0BAAA,GAAAA,0BAAA;AAEF,MAAMG,OAAO,GAAG,IAAAC,sBAAa,EAAEJ,0BAA2B,CAAC;AAC3D,MAAM;EAAEK;AAAS,CAAC,GAAGF,OAAO;AAACN,OAAA,CAAAS,wBAAA,GAAAD,QAAA;AAI7B;AACA;AACA;AACA;AACA;AACO,SAASE,mBAAmBA,CAAA,EAAG;EACrC,OAAO,IAAAC,mBAAU,EAAEL,OAAQ,CAAC;AAC7B"}
@@ -36,6 +36,7 @@ var _context = require("./context");
36
36
  function BlockEdit({
37
37
  mayDisplayControls,
38
38
  mayDisplayParentControls,
39
+ blockEditingMode,
39
40
  // The remaining props are passed through the BlockEdit filters and are thus
40
41
  // public API!
41
42
  ...props
@@ -65,8 +66,9 @@ function BlockEdit({
65
66
  // We use symbols in favour of an __unstable prefix to avoid
66
67
  // usage outside of the package (this context is exposed).
67
68
  [_context.mayDisplayControlsKey]: mayDisplayControls,
68
- [_context.mayDisplayParentControlsKey]: mayDisplayParentControls
69
- }), [name, isSelected, clientId, layoutSupport, layout, __unstableLayoutClassNames, mayDisplayControls, mayDisplayParentControls])
69
+ [_context.mayDisplayParentControlsKey]: mayDisplayParentControls,
70
+ [_context.blockEditingModeKey]: blockEditingMode
71
+ }), [name, isSelected, clientId, layoutSupport, layout, __unstableLayoutClassNames, mayDisplayControls, mayDisplayParentControls, blockEditingMode])
70
72
  }, (0, _react.createElement)(_edit.default, {
71
73
  ...props
72
74
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_blocks","_edit","_interopRequireDefault","_context","BlockEdit","mayDisplayControls","mayDisplayParentControls","props","name","isSelected","clientId","attributes","__unstableLayoutClassNames","layout","layoutSupport","hasBlockSupport","_react","createElement","BlockEditContextProvider","value","useMemo","mayDisplayControlsKey","mayDisplayParentControlsKey","default"],"sources":["@wordpress/block-editor/src/components/block-edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\nimport { hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport Edit from './edit';\nimport {\n\tBlockEditContextProvider,\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayParentControlsKey,\n} from './context';\n\n/**\n * The `useBlockEditContext` hook provides information about the block this hook is being used in.\n * It returns an object with the `name`, `isSelected` state, and the `clientId` of the block.\n * It is useful if you want to create custom hooks that need access to the current blocks clientId\n * but don't want to rely on the data getting passed in as a parameter.\n *\n * @return {Object} Block edit context\n */\nexport { useBlockEditContext };\n\nexport default function BlockEdit( {\n\tmayDisplayControls,\n\tmayDisplayParentControls,\n\t// The remaining props are passed through the BlockEdit filters and are thus\n\t// public API!\n\t...props\n} ) {\n\tconst {\n\t\tname,\n\t\tisSelected,\n\t\tclientId,\n\t\tattributes = {},\n\t\t__unstableLayoutClassNames,\n\t} = props;\n\tconst { layout = null } = attributes;\n\tconst layoutSupport =\n\t\thasBlockSupport( name, 'layout', false ) ||\n\t\thasBlockSupport( name, '__experimentalLayout', false );\n\treturn (\n\t\t<BlockEditContextProvider\n\t\t\t// It is important to return the same object if props haven't\n\t\t\t// changed to avoid unnecessary rerenders.\n\t\t\t// See https://reactjs.org/docs/context.html#caveats.\n\t\t\tvalue={ useMemo(\n\t\t\t\t() => ( {\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayout: layoutSupport ? layout : null,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\t// We use symbols in favour of an __unstable prefix to avoid\n\t\t\t\t\t// usage outside of the package (this context is exposed).\n\t\t\t\t\t[ mayDisplayControlsKey ]: mayDisplayControls,\n\t\t\t\t\t[ mayDisplayParentControlsKey ]: mayDisplayParentControls,\n\t\t\t\t} ),\n\t\t\t\t[\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayoutSupport,\n\t\t\t\t\tlayout,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\tmayDisplayControls,\n\t\t\t\t\tmayDisplayParentControls,\n\t\t\t\t]\n\t\t\t) }\n\t\t>\n\t\t\t<Edit { ...props } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAIA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGe,SAASK,SAASA,CAAE;EAClCC,kBAAkB;EAClBC,wBAAwB;EACxB;EACA;EACA,GAAGC;AACJ,CAAC,EAAG;EACH,MAAM;IACLC,IAAI;IACJC,UAAU;IACVC,QAAQ;IACRC,UAAU,GAAG,CAAC,CAAC;IACfC;EACD,CAAC,GAAGL,KAAK;EACT,MAAM;IAAEM,MAAM,GAAG;EAAK,CAAC,GAAGF,UAAU;EACpC,MAAMG,aAAa,GAClB,IAAAC,uBAAe,EAAEP,IAAI,EAAE,QAAQ,EAAE,KAAM,CAAC,IACxC,IAAAO,uBAAe,EAAEP,IAAI,EAAE,sBAAsB,EAAE,KAAM,CAAC;EACvD,OACC,IAAAQ,MAAA,CAAAC,aAAA,EAACd,QAAA,CAAAe;EACA;EACA;EACA;EAAA;IACAC,KAAK,EAAG,IAAAC,gBAAO,EACd,OAAQ;MACPZ,IAAI;MACJC,UAAU;MACVC,QAAQ;MACRG,MAAM,EAAEC,aAAa,GAAGD,MAAM,GAAG,IAAI;MACrCD,0BAA0B;MAC1B;MACA;MACA,CAAES,8BAAqB,GAAIhB,kBAAkB;MAC7C,CAAEiB,oCAA2B,GAAIhB;IAClC,CAAC,CAAE,EACH,CACCE,IAAI,EACJC,UAAU,EACVC,QAAQ,EACRI,aAAa,EACbD,MAAM,EACND,0BAA0B,EAC1BP,kBAAkB,EAClBC,wBAAwB,CAE1B;EAAG,GAEH,IAAAU,MAAA,CAAAC,aAAA,EAAChB,KAAA,CAAAsB,OAAI;IAAA,GAAMhB;EAAK,CAAI,CACK,CAAC;AAE7B"}
1
+ {"version":3,"names":["_element","require","_blocks","_edit","_interopRequireDefault","_context","BlockEdit","mayDisplayControls","mayDisplayParentControls","blockEditingMode","props","name","isSelected","clientId","attributes","__unstableLayoutClassNames","layout","layoutSupport","hasBlockSupport","_react","createElement","BlockEditContextProvider","value","useMemo","mayDisplayControlsKey","mayDisplayParentControlsKey","blockEditingModeKey","default"],"sources":["@wordpress/block-editor/src/components/block-edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\nimport { hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport Edit from './edit';\nimport {\n\tBlockEditContextProvider,\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayParentControlsKey,\n\tblockEditingModeKey,\n} from './context';\n\n/**\n * The `useBlockEditContext` hook provides information about the block this hook is being used in.\n * It returns an object with the `name`, `isSelected` state, and the `clientId` of the block.\n * It is useful if you want to create custom hooks that need access to the current blocks clientId\n * but don't want to rely on the data getting passed in as a parameter.\n *\n * @return {Object} Block edit context\n */\nexport { useBlockEditContext };\n\nexport default function BlockEdit( {\n\tmayDisplayControls,\n\tmayDisplayParentControls,\n\tblockEditingMode,\n\t// The remaining props are passed through the BlockEdit filters and are thus\n\t// public API!\n\t...props\n} ) {\n\tconst {\n\t\tname,\n\t\tisSelected,\n\t\tclientId,\n\t\tattributes = {},\n\t\t__unstableLayoutClassNames,\n\t} = props;\n\tconst { layout = null } = attributes;\n\tconst layoutSupport =\n\t\thasBlockSupport( name, 'layout', false ) ||\n\t\thasBlockSupport( name, '__experimentalLayout', false );\n\treturn (\n\t\t<BlockEditContextProvider\n\t\t\t// It is important to return the same object if props haven't\n\t\t\t// changed to avoid unnecessary rerenders.\n\t\t\t// See https://reactjs.org/docs/context.html#caveats.\n\t\t\tvalue={ useMemo(\n\t\t\t\t() => ( {\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayout: layoutSupport ? layout : null,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\t// We use symbols in favour of an __unstable prefix to avoid\n\t\t\t\t\t// usage outside of the package (this context is exposed).\n\t\t\t\t\t[ mayDisplayControlsKey ]: mayDisplayControls,\n\t\t\t\t\t[ mayDisplayParentControlsKey ]: mayDisplayParentControls,\n\t\t\t\t\t[ blockEditingModeKey ]: blockEditingMode,\n\t\t\t\t} ),\n\t\t\t\t[\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayoutSupport,\n\t\t\t\t\tlayout,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\tmayDisplayControls,\n\t\t\t\t\tmayDisplayParentControls,\n\t\t\t\t\tblockEditingMode,\n\t\t\t\t]\n\t\t\t) }\n\t\t>\n\t\t\t<Edit { ...props } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAIA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGe,SAASK,SAASA,CAAE;EAClCC,kBAAkB;EAClBC,wBAAwB;EACxBC,gBAAgB;EAChB;EACA;EACA,GAAGC;AACJ,CAAC,EAAG;EACH,MAAM;IACLC,IAAI;IACJC,UAAU;IACVC,QAAQ;IACRC,UAAU,GAAG,CAAC,CAAC;IACfC;EACD,CAAC,GAAGL,KAAK;EACT,MAAM;IAAEM,MAAM,GAAG;EAAK,CAAC,GAAGF,UAAU;EACpC,MAAMG,aAAa,GAClB,IAAAC,uBAAe,EAAEP,IAAI,EAAE,QAAQ,EAAE,KAAM,CAAC,IACxC,IAAAO,uBAAe,EAAEP,IAAI,EAAE,sBAAsB,EAAE,KAAM,CAAC;EACvD,OACC,IAAAQ,MAAA,CAAAC,aAAA,EAACf,QAAA,CAAAgB;EACA;EACA;EACA;EAAA;IACAC,KAAK,EAAG,IAAAC,gBAAO,EACd,OAAQ;MACPZ,IAAI;MACJC,UAAU;MACVC,QAAQ;MACRG,MAAM,EAAEC,aAAa,GAAGD,MAAM,GAAG,IAAI;MACrCD,0BAA0B;MAC1B;MACA;MACA,CAAES,8BAAqB,GAAIjB,kBAAkB;MAC7C,CAAEkB,oCAA2B,GAAIjB,wBAAwB;MACzD,CAAEkB,4BAAmB,GAAIjB;IAC1B,CAAC,CAAE,EACH,CACCE,IAAI,EACJC,UAAU,EACVC,QAAQ,EACRI,aAAa,EACbD,MAAM,EACND,0BAA0B,EAC1BR,kBAAkB,EAClBC,wBAAwB,EACxBC,gBAAgB,CAElB;EAAG,GAEH,IAAAU,MAAA,CAAAC,aAAA,EAACjB,KAAA,CAAAwB,OAAI;IAAA,GAAMjB;EAAK,CAAI,CACK,CAAC;AAE7B"}
@@ -51,14 +51,17 @@ var _context = require("../block-edit/context");
51
51
  * @return {BlockEditingMode} The current editing mode.
52
52
  */
53
53
  function useBlockEditingMode(mode) {
54
+ const context = (0, _context.useBlockEditContext)();
54
55
  const {
55
56
  clientId = ''
56
- } = (0, _context.useBlockEditContext)();
57
- const blockEditingMode = (0, _data.useSelect)(select => select(_store.store).getBlockEditingMode(clientId), [clientId]);
57
+ } = context;
58
58
  const {
59
59
  setBlockEditingMode,
60
60
  unsetBlockEditingMode
61
61
  } = (0, _data.useDispatch)(_store.store);
62
+ const globalBlockEditingMode = (0, _data.useSelect)(select =>
63
+ // Avoid adding the subscription if not needed!
64
+ clientId ? null : select(_store.store).getBlockEditingMode(), [clientId]);
62
65
  (0, _element.useEffect)(() => {
63
66
  if (mode) {
64
67
  setBlockEditingMode(clientId, mode);
@@ -69,6 +72,6 @@ function useBlockEditingMode(mode) {
69
72
  }
70
73
  };
71
74
  }, [clientId, mode, setBlockEditingMode, unsetBlockEditingMode]);
72
- return blockEditingMode;
75
+ return clientId ? context[_context.blockEditingModeKey] : globalBlockEditingMode;
73
76
  }
74
77
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_element","_store","_context","useBlockEditingMode","mode","clientId","useBlockEditContext","blockEditingMode","useSelect","select","blockEditorStore","getBlockEditingMode","setBlockEditingMode","unsetBlockEditingMode","useDispatch","useEffect"],"sources":["@wordpress/block-editor/src/components/block-editing-mode/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockEditContext } from '../block-edit/context';\n\n/**\n * @typedef {'disabled'|'contentOnly'|'default'} BlockEditingMode\n */\n\n/**\n * Allows a block to restrict the user interface that is displayed for editing\n * that block and its inner blocks.\n *\n * @example\n * ```js\n * function MyBlock( { attributes, setAttributes } ) {\n * useBlockEditingMode( 'disabled' );\n * return <div { ...useBlockProps() }></div>;\n * }\n * ```\n *\n * `mode` can be one of three options:\n *\n * - `'disabled'`: Prevents editing the block entirely, i.e. it cannot be\n * selected.\n * - `'contentOnly'`: Hides all non-content UI, e.g. auxiliary controls in the\n * toolbar, the block movers, block settings.\n * - `'default'`: Allows editing the block as normal.\n *\n * The mode is inherited by all of the block's inner blocks, unless they have\n * their own mode.\n *\n * If called outside of a block context, the mode is applied to all blocks.\n *\n * @param {?BlockEditingMode} mode The editing mode to apply. If undefined, the\n * current editing mode is not changed.\n *\n * @return {BlockEditingMode} The current editing mode.\n */\nexport function useBlockEditingMode( mode ) {\n\tconst { clientId = '' } = useBlockEditContext();\n\tconst blockEditingMode = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockEditingMode( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\tuseDispatch( blockEditorStore );\n\tuseEffect( () => {\n\t\tif ( mode ) {\n\t\t\tsetBlockEditingMode( clientId, mode );\n\t\t}\n\t\treturn () => {\n\t\t\tif ( mode ) {\n\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t}\n\t\t};\n\t}, [ clientId, mode, setBlockEditingMode, unsetBlockEditingMode ] );\n\treturn blockEditingMode;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,mBAAmBA,CAAEC,IAAI,EAAG;EAC3C,MAAM;IAAEC,QAAQ,GAAG;EAAG,CAAC,GAAG,IAAAC,4BAAmB,EAAC,CAAC;EAC/C,MAAMC,gBAAgB,GAAG,IAAAC,eAAS,EAC/BC,MAAM,IACPA,MAAM,CAAEC,YAAiB,CAAC,CAACC,mBAAmB,CAAEN,QAAS,CAAC,EAC3D,CAAEA,QAAQ,CACX,CAAC;EACD,MAAM;IAAEO,mBAAmB;IAAEC;EAAsB,CAAC,GACnD,IAAAC,iBAAW,EAAEJ,YAAiB,CAAC;EAChC,IAAAK,kBAAS,EAAE,MAAM;IAChB,IAAKX,IAAI,EAAG;MACXQ,mBAAmB,CAAEP,QAAQ,EAAED,IAAK,CAAC;IACtC;IACA,OAAO,MAAM;MACZ,IAAKA,IAAI,EAAG;QACXS,qBAAqB,CAAER,QAAS,CAAC;MAClC;IACD,CAAC;EACF,CAAC,EAAE,CAAEA,QAAQ,EAAED,IAAI,EAAEQ,mBAAmB,EAAEC,qBAAqB,CAAG,CAAC;EACnE,OAAON,gBAAgB;AACxB"}
1
+ {"version":3,"names":["_data","require","_element","_store","_context","useBlockEditingMode","mode","context","useBlockEditContext","clientId","setBlockEditingMode","unsetBlockEditingMode","useDispatch","blockEditorStore","globalBlockEditingMode","useSelect","select","getBlockEditingMode","useEffect","blockEditingModeKey"],"sources":["@wordpress/block-editor/src/components/block-editing-mode/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tuseBlockEditContext,\n\tblockEditingModeKey,\n} from '../block-edit/context';\n\n/**\n * @typedef {'disabled'|'contentOnly'|'default'} BlockEditingMode\n */\n\n/**\n * Allows a block to restrict the user interface that is displayed for editing\n * that block and its inner blocks.\n *\n * @example\n * ```js\n * function MyBlock( { attributes, setAttributes } ) {\n * useBlockEditingMode( 'disabled' );\n * return <div { ...useBlockProps() }></div>;\n * }\n * ```\n *\n * `mode` can be one of three options:\n *\n * - `'disabled'`: Prevents editing the block entirely, i.e. it cannot be\n * selected.\n * - `'contentOnly'`: Hides all non-content UI, e.g. auxiliary controls in the\n * toolbar, the block movers, block settings.\n * - `'default'`: Allows editing the block as normal.\n *\n * The mode is inherited by all of the block's inner blocks, unless they have\n * their own mode.\n *\n * If called outside of a block context, the mode is applied to all blocks.\n *\n * @param {?BlockEditingMode} mode The editing mode to apply. If undefined, the\n * current editing mode is not changed.\n *\n * @return {BlockEditingMode} The current editing mode.\n */\nexport function useBlockEditingMode( mode ) {\n\tconst context = useBlockEditContext();\n\tconst { clientId = '' } = context;\n\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\tuseDispatch( blockEditorStore );\n\tconst globalBlockEditingMode = useSelect(\n\t\t( select ) =>\n\t\t\t// Avoid adding the subscription if not needed!\n\t\t\tclientId ? null : select( blockEditorStore ).getBlockEditingMode(),\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( mode ) {\n\t\t\tsetBlockEditingMode( clientId, mode );\n\t\t}\n\t\treturn () => {\n\t\t\tif ( mode ) {\n\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t}\n\t\t};\n\t}, [ clientId, mode, setBlockEditingMode, unsetBlockEditingMode ] );\n\treturn clientId ? context[ blockEditingModeKey ] : globalBlockEditingMode;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAOA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,mBAAmBA,CAAEC,IAAI,EAAG;EAC3C,MAAMC,OAAO,GAAG,IAAAC,4BAAmB,EAAC,CAAC;EACrC,MAAM;IAAEC,QAAQ,GAAG;EAAG,CAAC,GAAGF,OAAO;EACjC,MAAM;IAAEG,mBAAmB;IAAEC;EAAsB,CAAC,GACnD,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EAChC,MAAMC,sBAAsB,GAAG,IAAAC,eAAS,EACrCC,MAAM;EACP;EACAP,QAAQ,GAAG,IAAI,GAAGO,MAAM,CAAEH,YAAiB,CAAC,CAACI,mBAAmB,CAAC,CAAC,EACnE,CAAER,QAAQ,CACX,CAAC;EACD,IAAAS,kBAAS,EAAE,MAAM;IAChB,IAAKZ,IAAI,EAAG;MACXI,mBAAmB,CAAED,QAAQ,EAAEH,IAAK,CAAC;IACtC;IACA,OAAO,MAAM;MACZ,IAAKA,IAAI,EAAG;QACXK,qBAAqB,CAAEF,QAAS,CAAC;MAClC;IACD,CAAC;EACF,CAAC,EAAE,CAAEA,QAAQ,EAAEH,IAAI,EAAEI,mBAAmB,EAAEC,qBAAqB,CAAG,CAAC;EACnE,OAAOF,QAAQ,GAAGF,OAAO,CAAEY,4BAAmB,CAAE,GAAGL,sBAAsB;AAC1E"}
@@ -84,7 +84,7 @@ const BlockInspector = ({
84
84
  selectedBlockClientId: _selectedBlockClientId,
85
85
  selectedBlockName: _selectedBlockName,
86
86
  blockType: _blockType,
87
- topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId) || (getTemplateLock(_selectedBlockClientId) === 'contentOnly' || _selectedBlockName === 'core/block' && window.__experimentalPatternPartialSyncing ? _selectedBlockClientId : undefined)
87
+ topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId) || (getTemplateLock(_selectedBlockClientId) === 'contentOnly' || _selectedBlockName === 'core/block' ? _selectedBlockClientId : undefined)
88
88
  };
89
89
  }, []);
90
90
  const availableTabs = (0, _useInspectorControlsTabs.default)(blockType?.name);
@@ -230,7 +230,10 @@ const BlockInspectorSingleBlock = ({
230
230
  }), (0, _react.createElement)(_inspectorControls.default.Slot, {
231
231
  group: "background",
232
232
  label: (0, _i18n.__)('Background')
233
- }), (0, _react.createElement)(_positionControlsPanel.default, null), (0, _react.createElement)("div", null, (0, _react.createElement)(_advancedControlsPanel.default, null))), (0, _react.createElement)(_skipToSelectedBlock.default, {
233
+ }), (0, _react.createElement)(_positionControlsPanel.default, null), (0, _react.createElement)(_inspectorControls.default.Slot, {
234
+ group: "effects",
235
+ label: (0, _i18n.__)('Effects')
236
+ }), (0, _react.createElement)("div", null, (0, _react.createElement)(_advancedControlsPanel.default, null))), (0, _react.createElement)(_skipToSelectedBlock.default, {
234
237
  key: "back"
235
238
  }));
236
239
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blocks","_components","_data","_skipToSelectedBlock","_interopRequireDefault","_blockCard","_multiSelectionInspector","_blockVariationTransforms","_useBlockDisplayInformation","_store","_blockStyles","_defaultStylePicker","_inspectorControls","_inspectorControlsTabs","_useInspectorControlsTabs","_advancedControlsPanel","_positionControlsPanel","_useBlockInspectorAnimationSettings","_blockInfoSlotFill","_blockQuickNavigation","BlockInspectorLockedBlocks","topLevelLockedBlock","contentClientIds","useSelect","select","getClientIdsOfDescendants","getBlockName","getBlockEditingMode","blockEditorStore","filter","clientId","blockInformation","useBlockDisplayInformation","_react","createElement","className","default","isSynced","blockClientId","Slot","PanelBody","title","__","clientIds","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","getSelectedBlockClientId","getSelectedBlockCount","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","getBlockType","window","__experimentalPatternPartialSyncing","undefined","availableTabs","useInspectorControlsTabs","name","showTabs","length","blockInspectorAnimationSettings","useBlockInspectorAnimationSettings","tabs","Fragment","group","label","isSelectedBlockUnregistered","getUnregisteredTypeHandlerName","BlockInspectorSingleBlockWrapper","animate","wrapper","children","AnimatedContainer","BlockInspectorSingleBlock","blockName","animationOrigin","enterDirection","__unstableMotion","div","x","opacity","transition","ease","duration","initial","key","hasBlockStyles","getBlockStyles","blocksStore","blockStyles","hasBlockSupport","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( topLevelLockedBlock ).filter(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockName( clientId ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t</PanelBody>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly' ||\n\t\t\t\t( _selectedBlockName === 'core/block' &&\n\t\t\t\t\twindow.__experimentalPatternPartialSyncing )\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\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</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_blocks","_components","_data","_skipToSelectedBlock","_interopRequireDefault","_blockCard","_multiSelectionInspector","_blockVariationTransforms","_useBlockDisplayInformation","_store","_blockStyles","_defaultStylePicker","_inspectorControls","_inspectorControlsTabs","_useInspectorControlsTabs","_advancedControlsPanel","_positionControlsPanel","_useBlockInspectorAnimationSettings","_blockInfoSlotFill","_blockQuickNavigation","BlockInspectorLockedBlocks","topLevelLockedBlock","contentClientIds","useSelect","select","getClientIdsOfDescendants","getBlockName","getBlockEditingMode","blockEditorStore","filter","clientId","blockInformation","useBlockDisplayInformation","_react","createElement","className","default","isSynced","blockClientId","Slot","PanelBody","title","__","clientIds","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","getSelectedBlockClientId","getSelectedBlockCount","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","getBlockType","undefined","availableTabs","useInspectorControlsTabs","name","showTabs","length","blockInspectorAnimationSettings","useBlockInspectorAnimationSettings","tabs","Fragment","group","label","isSelectedBlockUnregistered","getUnregisteredTypeHandlerName","BlockInspectorSingleBlockWrapper","animate","wrapper","children","AnimatedContainer","BlockInspectorSingleBlock","blockName","animationOrigin","enterDirection","__unstableMotion","div","x","opacity","transition","ease","duration","initial","key","hasBlockStyles","getBlockStyles","blocksStore","blockStyles","hasBlockSupport","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( topLevelLockedBlock ).filter(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockName( clientId ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t</PanelBody>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly' ||\n\t\t\t\t_selectedBlockName === 'core/block'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\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</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"effects\"\n\t\t\t\t\t\tlabel={ __( 'Effects' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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"}
@@ -126,7 +126,8 @@ function BlockListBlock({
126
126
  __unstableLayoutClassNames: layoutClassNames,
127
127
  __unstableParentLayout: Object.keys(parentLayout).length ? parentLayout : undefined,
128
128
  mayDisplayControls: mayDisplayControls,
129
- mayDisplayParentControls: mayDisplayParentControls
129
+ mayDisplayParentControls: mayDisplayParentControls,
130
+ blockEditingMode: context.blockEditingMode
130
131
  });
131
132
  const blockType = (0, _blocks.getBlockType)(name);
132
133
 
@@ -372,7 +373,7 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, registry)
372
373
  BlockListBlock = (0, _compose.compose)(applyWithDispatch, (0, _components.withFilters)('editor.BlockListBlock'))(BlockListBlock);
373
374
 
374
375
  // This component provides all the information we need through a single store
375
- // subscription (useSelect mapping). Only the necesssary props are passed down
376
+ // subscription (useSelect mapping). Only the necessary props are passed down
376
377
  // to the BlockListBlock component, which is a filtered component, so these
377
378
  // props are public API. To avoid adding to the public API, we use a private
378
379
  // context to pass the rest of the information to the filtered BlockListBlock
@@ -591,6 +592,6 @@ function BlockListBlockProvider(props) {
591
592
  isSelected
592
593
  }));
593
594
  }
594
- var _default = (0, _compose.pure)(BlockListBlockProvider);
595
+ var _default = (0, _element.memo)(BlockListBlockProvider);
595
596
  exports.default = _default;
596
597
  //# sourceMappingURL=block.js.map