@wordpress/block-editor 15.8.1-next.dc3f6d3c1.0 → 15.9.1-next.6deb34194.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +12 -0
  3. package/build/components/block-alignment-matrix-control/index.js +1 -8
  4. package/build/components/block-alignment-matrix-control/index.js.map +2 -2
  5. package/build/components/block-bindings/attribute-control.js +172 -0
  6. package/build/components/block-bindings/attribute-control.js.map +7 -0
  7. package/build/components/block-bindings/index.js +47 -0
  8. package/build/components/block-bindings/index.js.map +7 -0
  9. package/build/components/block-bindings/source-fields-list.js +135 -0
  10. package/build/components/block-bindings/source-fields-list.js.map +7 -0
  11. package/build/components/block-bindings/use-block-bindings-utils.js +66 -0
  12. package/build/components/block-bindings/use-block-bindings-utils.js.map +7 -0
  13. package/build/components/block-edit/edit.js +1 -3
  14. package/build/components/block-edit/edit.js.map +2 -2
  15. package/build/components/block-list/index.js +2 -1
  16. package/build/components/block-list/index.js.map +2 -2
  17. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +27 -5
  18. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +2 -2
  19. package/build/components/block-lock/modal.js +5 -5
  20. package/build/components/block-lock/modal.js.map +2 -2
  21. package/build/components/block-lock/use-block-lock.js +10 -13
  22. package/build/components/block-lock/use-block-lock.js.map +2 -2
  23. package/build/components/block-settings-menu-controls/index.js +1 -1
  24. package/build/components/block-settings-menu-controls/index.js.map +2 -2
  25. package/build/components/block-styles/preview-panel.js +3 -5
  26. package/build/components/block-styles/preview-panel.js.map +2 -2
  27. package/build/components/block-styles/use-styles-for-block.js +2 -2
  28. package/build/components/block-styles/use-styles-for-block.js.map +2 -2
  29. package/build/components/block-toolbar/index.js +1 -8
  30. package/build/components/block-toolbar/index.js.map +3 -3
  31. package/build/components/block-tools/index.js +56 -45
  32. package/build/components/block-tools/index.js.map +3 -3
  33. package/build/components/block-visibility/toolbar.js +1 -1
  34. package/build/components/block-visibility/toolbar.js.map +1 -1
  35. package/build/components/content-only-controls/fields-dropdown-menu.js +66 -0
  36. package/build/components/content-only-controls/fields-dropdown-menu.js.map +7 -0
  37. package/build/components/content-only-controls/index.js +202 -44
  38. package/build/components/content-only-controls/index.js.map +3 -3
  39. package/build/components/content-only-controls/link/index.js +92 -103
  40. package/build/components/content-only-controls/link/index.js.map +3 -3
  41. package/build/components/content-only-controls/media/index.js +134 -134
  42. package/build/components/content-only-controls/media/index.js.map +3 -3
  43. package/build/components/content-only-controls/rich-text/index.js +66 -74
  44. package/build/components/content-only-controls/rich-text/index.js.map +3 -3
  45. package/build/components/dimensions-tool/width-height-tool.js +4 -16
  46. package/build/components/dimensions-tool/width-height-tool.js.map +3 -3
  47. package/build/components/font-family/index.js +1 -15
  48. package/build/components/font-family/index.js.map +2 -2
  49. package/build/components/global-styles/dimensions-panel.js +35 -2
  50. package/build/components/global-styles/dimensions-panel.js.map +2 -2
  51. package/build/components/global-styles/hooks.js +1 -1
  52. package/build/components/global-styles/hooks.js.map +2 -2
  53. package/build/components/global-styles/typography-panel.js +1 -2
  54. package/build/components/global-styles/typography-panel.js.map +2 -2
  55. package/build/components/image-editor/cropper.js +3 -34
  56. package/build/components/image-editor/cropper.js.map +3 -3
  57. package/build/components/image-editor/index.js +9 -3
  58. package/build/components/image-editor/index.js.map +2 -2
  59. package/build/components/image-editor/use-transform-image.js +62 -32
  60. package/build/components/image-editor/use-transform-image.js.map +2 -2
  61. package/build/components/image-editor/zoom-dropdown.js +2 -2
  62. package/build/components/image-editor/zoom-dropdown.js.map +2 -2
  63. package/build/components/index.js +10 -3
  64. package/build/components/index.js.map +2 -2
  65. package/build/components/inserter-draggable-blocks/index.js +8 -4
  66. package/build/components/inserter-draggable-blocks/index.js.map +2 -2
  67. package/build/components/inspector-controls-tabs/content-tab.js +3 -2
  68. package/build/components/inspector-controls-tabs/content-tab.js.map +2 -2
  69. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +1 -1
  70. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +2 -2
  71. package/build/components/link-control/index.js +15 -7
  72. package/build/components/link-control/index.js.map +2 -2
  73. package/build/components/list-view/block-select-button.js +3 -11
  74. package/build/components/list-view/block-select-button.js.map +2 -2
  75. package/build/components/list-view/block.js +9 -7
  76. package/build/components/list-view/block.js.map +2 -2
  77. package/build/components/media-placeholder/index.js +17 -4
  78. package/build/components/media-placeholder/index.js.map +2 -2
  79. package/build/components/media-placeholder/utils.js +60 -0
  80. package/build/components/media-placeholder/utils.js.map +7 -0
  81. package/build/components/media-replace-flow/index.js +20 -3
  82. package/build/components/media-replace-flow/index.js.map +2 -2
  83. package/build/components/tool-selector/index.js +46 -0
  84. package/build/components/tool-selector/index.js.map +7 -0
  85. package/build/components/use-block-commands/index.js +1 -1
  86. package/build/components/use-block-commands/index.js.map +2 -2
  87. package/build/components/use-block-drop-zone/index.js +1 -5
  88. package/build/components/use-block-drop-zone/index.js.map +2 -2
  89. package/build/hooks/block-bindings.js +22 -260
  90. package/build/hooks/block-bindings.js.map +3 -3
  91. package/build/hooks/dimensions.js +3 -3
  92. package/build/hooks/dimensions.js.map +2 -2
  93. package/build/hooks/metadata.js +1 -1
  94. package/build/hooks/metadata.js.map +2 -2
  95. package/build/hooks/utils.js +5 -1
  96. package/build/hooks/utils.js.map +2 -2
  97. package/build/layouts/grid.js +23 -28
  98. package/build/layouts/grid.js.map +2 -2
  99. package/build/store/private-selectors.js +43 -3
  100. package/build/store/private-selectors.js.map +2 -2
  101. package/build/store/reducer.js +2 -1
  102. package/build/store/reducer.js.map +2 -2
  103. package/build/store/selectors.js +6 -4
  104. package/build/store/selectors.js.map +2 -2
  105. package/build/utils/block-bindings.js +2 -44
  106. package/build/utils/block-bindings.js.map +3 -3
  107. package/build/utils/index.js +2 -5
  108. package/build/utils/index.js.map +2 -2
  109. package/build-module/components/block-alignment-matrix-control/index.js +1 -8
  110. package/build-module/components/block-alignment-matrix-control/index.js.map +2 -2
  111. package/build-module/components/block-bindings/attribute-control.js +150 -0
  112. package/build-module/components/block-bindings/attribute-control.js.map +7 -0
  113. package/build-module/components/block-bindings/index.js +10 -0
  114. package/build-module/components/block-bindings/index.js.map +7 -0
  115. package/build-module/components/block-bindings/source-fields-list.js +104 -0
  116. package/build-module/components/block-bindings/source-fields-list.js.map +7 -0
  117. package/build-module/components/block-bindings/use-block-bindings-utils.js +45 -0
  118. package/build-module/components/block-bindings/use-block-bindings-utils.js.map +7 -0
  119. package/build-module/components/block-edit/edit.js +1 -3
  120. package/build-module/components/block-edit/edit.js.map +2 -2
  121. package/build-module/components/block-list/index.js +2 -1
  122. package/build-module/components/block-list/index.js.map +2 -2
  123. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +27 -5
  124. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +2 -2
  125. package/build-module/components/block-lock/modal.js +5 -5
  126. package/build-module/components/block-lock/modal.js.map +2 -2
  127. package/build-module/components/block-lock/use-block-lock.js +10 -13
  128. package/build-module/components/block-lock/use-block-lock.js.map +2 -2
  129. package/build-module/components/block-settings-menu-controls/index.js +1 -1
  130. package/build-module/components/block-settings-menu-controls/index.js.map +2 -2
  131. package/build-module/components/block-styles/preview-panel.js +3 -5
  132. package/build-module/components/block-styles/preview-panel.js.map +2 -2
  133. package/build-module/components/block-styles/use-styles-for-block.js +2 -2
  134. package/build-module/components/block-styles/use-styles-for-block.js.map +2 -2
  135. package/build-module/components/block-toolbar/index.js +1 -8
  136. package/build-module/components/block-toolbar/index.js.map +2 -2
  137. package/build-module/components/block-tools/index.js +56 -45
  138. package/build-module/components/block-tools/index.js.map +2 -2
  139. package/build-module/components/block-visibility/toolbar.js +1 -1
  140. package/build-module/components/block-visibility/toolbar.js.map +1 -1
  141. package/build-module/components/content-only-controls/fields-dropdown-menu.js +45 -0
  142. package/build-module/components/content-only-controls/fields-dropdown-menu.js.map +7 -0
  143. package/build-module/components/content-only-controls/index.js +206 -46
  144. package/build-module/components/content-only-controls/index.js.map +2 -2
  145. package/build-module/components/content-only-controls/link/index.js +92 -104
  146. package/build-module/components/content-only-controls/link/index.js.map +2 -2
  147. package/build-module/components/content-only-controls/media/index.js +134 -135
  148. package/build-module/components/content-only-controls/media/index.js.map +2 -2
  149. package/build-module/components/content-only-controls/rich-text/index.js +68 -81
  150. package/build-module/components/content-only-controls/rich-text/index.js.map +2 -2
  151. package/build-module/components/dimensions-tool/width-height-tool.js +4 -6
  152. package/build-module/components/dimensions-tool/width-height-tool.js.map +2 -2
  153. package/build-module/components/font-family/index.js +1 -15
  154. package/build-module/components/font-family/index.js.map +2 -2
  155. package/build-module/components/global-styles/dimensions-panel.js +35 -2
  156. package/build-module/components/global-styles/dimensions-panel.js.map +2 -2
  157. package/build-module/components/global-styles/hooks.js +1 -1
  158. package/build-module/components/global-styles/hooks.js.map +2 -2
  159. package/build-module/components/global-styles/typography-panel.js +1 -2
  160. package/build-module/components/global-styles/typography-panel.js.map +2 -2
  161. package/build-module/components/image-editor/cropper.js +3 -34
  162. package/build-module/components/image-editor/cropper.js.map +2 -2
  163. package/build-module/components/image-editor/index.js +9 -3
  164. package/build-module/components/image-editor/index.js.map +2 -2
  165. package/build-module/components/image-editor/use-transform-image.js +63 -33
  166. package/build-module/components/image-editor/use-transform-image.js.map +2 -2
  167. package/build-module/components/image-editor/zoom-dropdown.js +2 -2
  168. package/build-module/components/image-editor/zoom-dropdown.js.map +2 -2
  169. package/build-module/components/index.js +74 -66
  170. package/build-module/components/index.js.map +2 -2
  171. package/build-module/components/inserter-draggable-blocks/index.js +8 -4
  172. package/build-module/components/inserter-draggable-blocks/index.js.map +2 -2
  173. package/build-module/components/inspector-controls-tabs/content-tab.js +3 -2
  174. package/build-module/components/inspector-controls-tabs/content-tab.js.map +2 -2
  175. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +1 -1
  176. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +2 -2
  177. package/build-module/components/link-control/index.js +16 -8
  178. package/build-module/components/link-control/index.js.map +2 -2
  179. package/build-module/components/list-view/block-select-button.js +3 -11
  180. package/build-module/components/list-view/block-select-button.js.map +2 -2
  181. package/build-module/components/list-view/block.js +9 -7
  182. package/build-module/components/list-view/block.js.map +2 -2
  183. package/build-module/components/media-placeholder/index.js +18 -5
  184. package/build-module/components/media-placeholder/index.js.map +2 -2
  185. package/build-module/components/media-placeholder/utils.js +35 -0
  186. package/build-module/components/media-placeholder/utils.js.map +7 -0
  187. package/build-module/components/media-replace-flow/index.js +20 -3
  188. package/build-module/components/media-replace-flow/index.js.map +2 -2
  189. package/build-module/components/tool-selector/index.js +15 -0
  190. package/build-module/components/tool-selector/index.js.map +7 -0
  191. package/build-module/components/use-block-commands/index.js +1 -1
  192. package/build-module/components/use-block-commands/index.js.map +2 -2
  193. package/build-module/components/use-block-drop-zone/index.js +1 -5
  194. package/build-module/components/use-block-drop-zone/index.js.map +2 -2
  195. package/build-module/hooks/block-bindings.js +27 -270
  196. package/build-module/hooks/block-bindings.js.map +2 -2
  197. package/build-module/hooks/dimensions.js +3 -3
  198. package/build-module/hooks/dimensions.js.map +2 -2
  199. package/build-module/hooks/metadata.js +1 -1
  200. package/build-module/hooks/metadata.js.map +2 -2
  201. package/build-module/hooks/utils.js +5 -1
  202. package/build-module/hooks/utils.js.map +2 -2
  203. package/build-module/layouts/grid.js +23 -28
  204. package/build-module/layouts/grid.js.map +2 -2
  205. package/build-module/store/private-selectors.js +39 -3
  206. package/build-module/store/private-selectors.js.map +2 -2
  207. package/build-module/store/reducer.js +2 -1
  208. package/build-module/store/reducer.js.map +2 -2
  209. package/build-module/store/selectors.js +6 -4
  210. package/build-module/store/selectors.js.map +2 -2
  211. package/build-module/utils/block-bindings.js +1 -42
  212. package/build-module/utils/block-bindings.js.map +2 -2
  213. package/build-module/utils/index.js +1 -3
  214. package/build-module/utils/index.js.map +2 -2
  215. package/build-style/content-rtl.css +3 -0
  216. package/build-style/content.css +3 -0
  217. package/build-style/style-rtl.css +20 -11
  218. package/build-style/style.css +20 -11
  219. package/package.json +39 -39
  220. package/src/components/block-alignment-matrix-control/index.js +1 -5
  221. package/src/components/block-bindings/attribute-control.js +174 -0
  222. package/src/components/block-bindings/index.js +6 -0
  223. package/src/components/block-bindings/source-fields-list.js +130 -0
  224. package/src/components/block-bindings/use-block-bindings-utils.js +156 -0
  225. package/src/components/block-edit/edit.js +1 -3
  226. package/src/components/block-list/content.scss +5 -0
  227. package/src/components/block-list/index.js +3 -1
  228. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +34 -3
  229. package/src/components/block-lock/modal.js +6 -5
  230. package/src/components/block-lock/use-block-lock.js +10 -14
  231. package/src/components/block-patterns-list/stories/{index.story.js → index.story.jsx} +3 -1
  232. package/src/components/block-settings-menu-controls/index.js +1 -1
  233. package/src/components/block-styles/preview-panel.js +3 -5
  234. package/src/components/block-styles/use-styles-for-block.js +2 -2
  235. package/src/components/block-toolbar/index.js +1 -6
  236. package/src/components/block-toolbar/style.scss +6 -6
  237. package/src/components/block-tools/index.js +15 -2
  238. package/src/components/block-tools/style.scss +4 -0
  239. package/src/components/block-visibility/toolbar.js +1 -1
  240. package/src/components/content-only-controls/fields-dropdown-menu.js +53 -0
  241. package/src/components/content-only-controls/index.js +289 -50
  242. package/src/components/content-only-controls/link/index.js +62 -57
  243. package/src/components/content-only-controls/media/index.js +177 -156
  244. package/src/components/content-only-controls/rich-text/index.js +31 -44
  245. package/src/components/content-only-controls/styles.scss +10 -1
  246. package/src/components/dimensions-tool/width-height-tool.js +6 -13
  247. package/src/components/font-family/README.md +0 -9
  248. package/src/components/font-family/index.js +1 -16
  249. package/src/components/font-family/stories/{index.story.js → index.story.jsx} +0 -1
  250. package/src/components/global-styles/dimensions-panel.js +36 -0
  251. package/src/components/global-styles/hooks.js +1 -1
  252. package/src/components/global-styles/typography-panel.js +0 -1
  253. package/src/components/image-editor/cropper.js +3 -32
  254. package/src/components/image-editor/index.js +34 -29
  255. package/src/components/image-editor/use-transform-image.js +80 -34
  256. package/src/components/image-editor/zoom-dropdown.js +2 -2
  257. package/src/components/index.js +9 -1
  258. package/src/components/inserter/style.scss +1 -1
  259. package/src/components/inserter-draggable-blocks/index.js +19 -8
  260. package/src/components/inspector-controls-tabs/content-tab.js +6 -2
  261. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +1 -5
  262. package/src/components/link-control/index.js +36 -12
  263. package/src/components/list-view/block-select-button.js +22 -30
  264. package/src/components/list-view/block.js +9 -7
  265. package/src/components/media-placeholder/index.js +20 -5
  266. package/src/components/media-placeholder/test/get-computed-accept-attribute.js +164 -0
  267. package/src/components/media-placeholder/utils.js +65 -0
  268. package/src/components/media-replace-flow/index.js +22 -3
  269. package/src/components/tool-selector/index.js +19 -0
  270. package/src/components/use-block-commands/index.js +1 -1
  271. package/src/components/use-block-drop-zone/index.js +1 -5
  272. package/src/hooks/block-bindings.js +27 -347
  273. package/src/hooks/dimensions.js +8 -3
  274. package/src/hooks/metadata.js +1 -1
  275. package/src/hooks/test/metadata.js +1 -1
  276. package/src/hooks/utils.js +4 -0
  277. package/src/layouts/grid.js +40 -72
  278. package/src/layouts/test/grid.js +14 -0
  279. package/src/store/private-selectors.js +123 -6
  280. package/src/store/reducer.js +3 -0
  281. package/src/store/selectors.js +6 -4
  282. package/src/store/test/private-selectors.js +242 -0
  283. package/src/store/test/reducer.js +17 -7
  284. package/src/style.scss +0 -1
  285. package/src/utils/block-bindings.js +0 -157
  286. package/src/utils/index.js +0 -1
  287. package/tsconfig.json +2 -0
  288. package/build/components/block-toolbar/block-name-context.js +0 -30
  289. package/build/components/block-toolbar/block-name-context.js.map +0 -7
  290. package/build/components/content-only-controls/plain-text/index.js +0 -68
  291. package/build/components/content-only-controls/plain-text/index.js.map +0 -7
  292. package/build-module/components/block-toolbar/block-name-context.js +0 -9
  293. package/build-module/components/block-toolbar/block-name-context.js.map +0 -7
  294. package/build-module/components/content-only-controls/plain-text/index.js +0 -50
  295. package/build-module/components/content-only-controls/plain-text/index.js.map +0 -7
  296. package/src/components/block-toolbar/block-name-context.js +0 -9
  297. package/src/components/content-only-controls/plain-text/index.js +0 -49
  298. package/src/components/font-family/style.scss +0 -7
  299. /package/src/components/alignment-control/stories/{aliginment-toolbar.story.js → aliginment-toolbar.story.jsx} +0 -0
  300. /package/src/components/alignment-control/stories/{index.story.js → index.story.jsx} +0 -0
  301. /package/src/components/block-alignment-matrix-control/stories/{index.story.js → index.story.jsx} +0 -0
  302. /package/src/{utils → components/block-bindings}/test/use-block-bindings-utils.js +0 -0
  303. /package/src/components/block-draggable/stories/{index.story.js → index.story.jsx} +0 -0
  304. /package/src/components/block-heading-level-dropdown/stories/{index.story.js → index.story.jsx} +0 -0
  305. /package/src/components/block-mover/stories/{index.story.js → index.story.jsx} +0 -0
  306. /package/src/components/block-title/stories/{index.story.js → index.story.jsx} +0 -0
  307. /package/src/components/border-radius-control/stories/{index.story.js → index.story.jsx} +0 -0
  308. /package/src/components/date-format-picker/stories/{index.story.js → index.story.jsx} +0 -0
  309. /package/src/components/dimensions-tool/stories/{aspect-ratio-tool.story.js → aspect-ratio-tool.story.jsx} +0 -0
  310. /package/src/components/dimensions-tool/stories/{index.story.js → index.story.jsx} +0 -0
  311. /package/src/components/dimensions-tool/stories/{scale-tool.story.js → scale-tool.story.jsx} +0 -0
  312. /package/src/components/dimensions-tool/stories/{width-height-tool.story.js → width-height-tool.story.jsx} +0 -0
  313. /package/src/components/height-control/stories/{index.story.js → index.story.jsx} +0 -0
  314. /package/src/components/inserter/stories/{index.story.js → index.story.jsx} +0 -0
  315. /package/src/components/line-height-control/stories/{index.story.js → index.story.jsx} +0 -0
  316. /package/src/components/plain-text/stories/{index.story.js → index.story.jsx} +0 -0
  317. /package/src/components/resolution-tool/stories/{index.story.js → index.story.jsx} +0 -0
  318. /package/src/components/tabbed-sidebar/stories/{index.story.js → index.story.jsx} +0 -0
  319. /package/src/components/text-alignment-control/stories/{index.story.js → index.story.jsx} +0 -0
  320. /package/src/components/text-decoration-control/stories/{index.story.js → index.story.jsx} +0 -0
  321. /package/src/components/text-transform-control/stories/{index.story.js → index.story.jsx} +0 -0
  322. /package/src/components/unit-control/stories/{index.story.js → index.story.jsx} +0 -0
  323. /package/src/components/url-popover/stories/{index.story.js → index.story.jsx} +0 -0
  324. /package/src/components/warning/stories/{index.story.js → index.story.jsx} +0 -0
  325. /package/src/components/writing-mode-control/stories/{index.story.js → index.story.jsx} +0 -0
@@ -1,32 +1,52 @@
1
1
  // packages/block-editor/src/components/image-editor/use-transform-image.js
2
- import { useCallback, useMemo, useState } from "@wordpress/element";
2
+ import { useCallback, useEffect, useMemo, useState } from "@wordpress/element";
3
3
  import { applyFilters } from "@wordpress/hooks";
4
+ import { useImageCropper } from "@wordpress/image-cropper";
4
5
  function useTransformImage({
5
6
  url,
6
7
  naturalWidth,
7
8
  naturalHeight
8
9
  }) {
9
10
  const [editedUrl, setEditedUrl] = useState();
10
- const [crop, setCrop] = useState();
11
- const [position, setPosition] = useState({ x: 0, y: 0 });
12
- const [zoom, setZoom] = useState(100);
13
- const [rotation, setRotation] = useState(0);
11
+ const { cropperState, setCropperState } = useImageCropper();
12
+ const { zoom, aspectRatio, crop, croppedArea } = cropperState;
13
+ const setZoom = useCallback(
14
+ (newZoom) => {
15
+ setCropperState({ zoom: newZoom });
16
+ },
17
+ [setCropperState]
18
+ );
19
+ const setAspectRatio = useCallback(
20
+ (newAspect) => {
21
+ setCropperState({ aspectRatio: newAspect });
22
+ },
23
+ [setCropperState]
24
+ );
14
25
  const defaultAspect = naturalWidth / naturalHeight;
15
- const [aspect, setAspect] = useState(defaultAspect);
26
+ const rotatedAspect = naturalHeight / naturalWidth;
27
+ useEffect(() => {
28
+ setAspectRatio(defaultAspect);
29
+ }, []);
30
+ const [internalRotation, setInternalRotation] = useState(0);
16
31
  const rotateClockwise = useCallback(() => {
17
- const angle = (rotation + 90) % 360;
32
+ const angle = (internalRotation + 90) % 360;
18
33
  let naturalAspectRatio = defaultAspect;
19
- if (rotation % 180 === 90) {
34
+ const isDefaultAspect = defaultAspect === aspectRatio || rotatedAspect === aspectRatio;
35
+ const shouldResetAspect = zoom !== 1 || !isDefaultAspect;
36
+ if (internalRotation % 180 === 90) {
20
37
  naturalAspectRatio = 1 / defaultAspect;
21
38
  }
22
39
  if (angle === 0) {
23
40
  setEditedUrl();
24
- setRotation(angle);
25
- setAspect(defaultAspect);
26
- setPosition((prevPosition) => ({
27
- x: -(prevPosition.y * naturalAspectRatio),
28
- y: prevPosition.x * naturalAspectRatio
29
- }));
41
+ setInternalRotation(angle);
42
+ const newAspectRatio = shouldResetAspect ? aspectRatio : defaultAspect;
43
+ setCropperState({
44
+ aspectRatio: newAspectRatio,
45
+ crop: {
46
+ x: -(crop.y * naturalAspectRatio),
47
+ y: crop.x * naturalAspectRatio
48
+ }
49
+ });
30
50
  return;
31
51
  }
32
52
  function editImage(event) {
@@ -52,12 +72,15 @@ function useTransformImage({
52
72
  context.drawImage(event.target, 0, 0);
53
73
  canvas.toBlob((blob) => {
54
74
  setEditedUrl(URL.createObjectURL(blob));
55
- setRotation(angle);
56
- setAspect(canvas.width / canvas.height);
57
- setPosition((prevPosition) => ({
58
- x: -(prevPosition.y * naturalAspectRatio),
59
- y: prevPosition.x * naturalAspectRatio
60
- }));
75
+ setInternalRotation(angle);
76
+ const newAspectRatio = shouldResetAspect ? aspectRatio : canvas.width / canvas.height;
77
+ setCropperState({
78
+ aspectRatio: newAspectRatio,
79
+ crop: {
80
+ x: -(crop.y * naturalAspectRatio),
81
+ y: crop.x * naturalAspectRatio
82
+ }
83
+ });
61
84
  });
62
85
  }
63
86
  const el = new window.Image();
@@ -71,32 +94,39 @@ function useTransformImage({
71
94
  if (typeof imgCrossOrigin === "string") {
72
95
  el.crossOrigin = imgCrossOrigin;
73
96
  }
74
- }, [rotation, defaultAspect, url]);
97
+ }, [
98
+ internalRotation,
99
+ defaultAspect,
100
+ url,
101
+ setCropperState,
102
+ crop,
103
+ zoom,
104
+ aspectRatio,
105
+ rotatedAspect,
106
+ setInternalRotation
107
+ ]);
75
108
  return useMemo(
76
109
  () => ({
77
110
  editedUrl,
78
111
  setEditedUrl,
79
- crop,
80
- setCrop,
81
- position,
82
- setPosition,
112
+ crop: croppedArea,
83
113
  zoom,
84
114
  setZoom,
85
- rotation,
86
- setRotation,
115
+ rotation: internalRotation,
87
116
  rotateClockwise,
88
- aspect,
89
- setAspect,
117
+ aspect: aspectRatio,
118
+ setAspect: setAspectRatio,
90
119
  defaultAspect
91
120
  }),
92
121
  [
93
122
  editedUrl,
94
- crop,
95
- position,
123
+ croppedArea,
96
124
  zoom,
97
- rotation,
125
+ setZoom,
126
+ internalRotation,
98
127
  rotateClockwise,
99
- aspect,
128
+ aspectRatio,
129
+ setAspectRatio,
100
130
  defaultAspect
101
131
  ]
102
132
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/image-editor/use-transform-image.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\n\nexport default function useTransformImage( {\n\turl,\n\tnaturalWidth,\n\tnaturalHeight,\n} ) {\n\tconst [ editedUrl, setEditedUrl ] = useState();\n\tconst [ crop, setCrop ] = useState();\n\tconst [ position, setPosition ] = useState( { x: 0, y: 0 } );\n\tconst [ zoom, setZoom ] = useState( 100 );\n\tconst [ rotation, setRotation ] = useState( 0 );\n\tconst defaultAspect = naturalWidth / naturalHeight;\n\tconst [ aspect, setAspect ] = useState( defaultAspect );\n\n\tconst rotateClockwise = useCallback( () => {\n\t\tconst angle = ( rotation + 90 ) % 360;\n\n\t\tlet naturalAspectRatio = defaultAspect;\n\n\t\tif ( rotation % 180 === 90 ) {\n\t\t\tnaturalAspectRatio = 1 / defaultAspect;\n\t\t}\n\n\t\tif ( angle === 0 ) {\n\t\t\tsetEditedUrl();\n\t\t\tsetRotation( angle );\n\t\t\tsetAspect( defaultAspect );\n\t\t\tsetPosition( ( prevPosition ) => ( {\n\t\t\t\tx: -( prevPosition.y * naturalAspectRatio ),\n\t\t\t\ty: prevPosition.x * naturalAspectRatio,\n\t\t\t} ) );\n\t\t\treturn;\n\t\t}\n\n\t\tfunction editImage( event ) {\n\t\t\tconst canvas = document.createElement( 'canvas' );\n\n\t\t\tlet translateX = 0;\n\t\t\tlet translateY = 0;\n\n\t\t\tif ( angle % 180 ) {\n\t\t\t\tcanvas.width = event.target.height;\n\t\t\t\tcanvas.height = event.target.width;\n\t\t\t} else {\n\t\t\t\tcanvas.width = event.target.width;\n\t\t\t\tcanvas.height = event.target.height;\n\t\t\t}\n\n\t\t\tif ( angle === 90 || angle === 180 ) {\n\t\t\t\ttranslateX = canvas.width;\n\t\t\t}\n\n\t\t\tif ( angle === 270 || angle === 180 ) {\n\t\t\t\ttranslateY = canvas.height;\n\t\t\t}\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\n\t\t\tcontext.translate( translateX, translateY );\n\t\t\tcontext.rotate( ( angle * Math.PI ) / 180 );\n\t\t\tcontext.drawImage( event.target, 0, 0 );\n\n\t\t\tcanvas.toBlob( ( blob ) => {\n\t\t\t\tsetEditedUrl( URL.createObjectURL( blob ) );\n\t\t\t\tsetRotation( angle );\n\t\t\t\tsetAspect( canvas.width / canvas.height );\n\t\t\t\tsetPosition( ( prevPosition ) => ( {\n\t\t\t\t\tx: -( prevPosition.y * naturalAspectRatio ),\n\t\t\t\t\ty: prevPosition.x * naturalAspectRatio,\n\t\t\t\t} ) );\n\t\t\t} );\n\t\t}\n\n\t\tconst el = new window.Image();\n\t\tel.src = url;\n\t\tel.onload = editImage;\n\n\t\tconst imgCrossOrigin = applyFilters(\n\t\t\t'media.crossOrigin',\n\t\t\tundefined,\n\t\t\turl\n\t\t);\n\t\tif ( typeof imgCrossOrigin === 'string' ) {\n\t\t\tel.crossOrigin = imgCrossOrigin;\n\t\t}\n\t}, [ rotation, defaultAspect, url ] );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\teditedUrl,\n\t\t\tsetEditedUrl,\n\t\t\tcrop,\n\t\t\tsetCrop,\n\t\t\tposition,\n\t\t\tsetPosition,\n\t\t\tzoom,\n\t\t\tsetZoom,\n\t\t\trotation,\n\t\t\tsetRotation,\n\t\t\trotateClockwise,\n\t\t\taspect,\n\t\t\tsetAspect,\n\t\t\tdefaultAspect,\n\t\t} ),\n\t\t[\n\t\t\teditedUrl,\n\t\t\tcrop,\n\t\t\tposition,\n\t\t\tzoom,\n\t\t\trotation,\n\t\t\trotateClockwise,\n\t\t\taspect,\n\t\t\tdefaultAspect,\n\t\t]\n\t);\n}\n"],
5
- "mappings": ";AAGA,SAAS,aAAa,SAAS,gBAAgB;AAC/C,SAAS,oBAAoB;AAEd,SAAR,kBAAoC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,CAAE,WAAW,YAAa,IAAI,SAAS;AAC7C,QAAM,CAAE,MAAM,OAAQ,IAAI,SAAS;AACnC,QAAM,CAAE,UAAU,WAAY,IAAI,SAAU,EAAE,GAAG,GAAG,GAAG,EAAE,CAAE;AAC3D,QAAM,CAAE,MAAM,OAAQ,IAAI,SAAU,GAAI;AACxC,QAAM,CAAE,UAAU,WAAY,IAAI,SAAU,CAAE;AAC9C,QAAM,gBAAgB,eAAe;AACrC,QAAM,CAAE,QAAQ,SAAU,IAAI,SAAU,aAAc;AAEtD,QAAM,kBAAkB,YAAa,MAAM;AAC1C,UAAM,SAAU,WAAW,MAAO;AAElC,QAAI,qBAAqB;AAEzB,QAAK,WAAW,QAAQ,IAAK;AAC5B,2BAAqB,IAAI;AAAA,IAC1B;AAEA,QAAK,UAAU,GAAI;AAClB,mBAAa;AACb,kBAAa,KAAM;AACnB,gBAAW,aAAc;AACzB,kBAAa,CAAE,kBAAoB;AAAA,QAClC,GAAG,EAAG,aAAa,IAAI;AAAA,QACvB,GAAG,aAAa,IAAI;AAAA,MACrB,EAAI;AACJ;AAAA,IACD;AAEA,aAAS,UAAW,OAAQ;AAC3B,YAAM,SAAS,SAAS,cAAe,QAAS;AAEhD,UAAI,aAAa;AACjB,UAAI,aAAa;AAEjB,UAAK,QAAQ,KAAM;AAClB,eAAO,QAAQ,MAAM,OAAO;AAC5B,eAAO,SAAS,MAAM,OAAO;AAAA,MAC9B,OAAO;AACN,eAAO,QAAQ,MAAM,OAAO;AAC5B,eAAO,SAAS,MAAM,OAAO;AAAA,MAC9B;AAEA,UAAK,UAAU,MAAM,UAAU,KAAM;AACpC,qBAAa,OAAO;AAAA,MACrB;AAEA,UAAK,UAAU,OAAO,UAAU,KAAM;AACrC,qBAAa,OAAO;AAAA,MACrB;AAEA,YAAM,UAAU,OAAO,WAAY,IAAK;AAExC,cAAQ,UAAW,YAAY,UAAW;AAC1C,cAAQ,OAAU,QAAQ,KAAK,KAAO,GAAI;AAC1C,cAAQ,UAAW,MAAM,QAAQ,GAAG,CAAE;AAEtC,aAAO,OAAQ,CAAE,SAAU;AAC1B,qBAAc,IAAI,gBAAiB,IAAK,CAAE;AAC1C,oBAAa,KAAM;AACnB,kBAAW,OAAO,QAAQ,OAAO,MAAO;AACxC,oBAAa,CAAE,kBAAoB;AAAA,UAClC,GAAG,EAAG,aAAa,IAAI;AAAA,UACvB,GAAG,aAAa,IAAI;AAAA,QACrB,EAAI;AAAA,MACL,CAAE;AAAA,IACH;AAEA,UAAM,KAAK,IAAI,OAAO,MAAM;AAC5B,OAAG,MAAM;AACT,OAAG,SAAS;AAEZ,UAAM,iBAAiB;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,IACD;AACA,QAAK,OAAO,mBAAmB,UAAW;AACzC,SAAG,cAAc;AAAA,IAClB;AAAA,EACD,GAAG,CAAE,UAAU,eAAe,GAAI,CAAE;AAEpC,SAAO;AAAA,IACN,OAAQ;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useMemo, useState } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\nimport { useImageCropper } from '@wordpress/image-cropper';\n\nexport default function useTransformImage( {\n\turl,\n\tnaturalWidth,\n\tnaturalHeight,\n} ) {\n\tconst [ editedUrl, setEditedUrl ] = useState();\n\tconst { cropperState, setCropperState } = useImageCropper();\n\tconst { zoom, aspectRatio, crop, croppedArea } = cropperState;\n\n\tconst setZoom = useCallback(\n\t\t( newZoom ) => {\n\t\t\tsetCropperState( { zoom: newZoom } );\n\t\t},\n\t\t[ setCropperState ]\n\t);\n\n\tconst setAspectRatio = useCallback(\n\t\t( newAspect ) => {\n\t\t\tsetCropperState( { aspectRatio: newAspect } );\n\t\t},\n\t\t[ setCropperState ]\n\t);\n\n\tconst defaultAspect = naturalWidth / naturalHeight;\n\tconst rotatedAspect = naturalHeight / naturalWidth;\n\n\t// Initialize aspect ratio on mount or when defaultAspect changes\n\tuseEffect( () => {\n\t\tsetAspectRatio( defaultAspect );\n\t}, [] ); // eslint-disable-line react-hooks/exhaustive-deps\n\n\t/**\n\t * rotateClockwise rotates the image by 90\u00B0 clockwise by drawing the original image onto a canvas with rotation applied,\n\t * then saves it as a new blob URL (editedUrl).\n\t * This creates a new rotated image file, bypassing the image-cropper\u2019s CSS transform rotation.\n\t * It's a bespoke solution to ensure that the rotated image fills the content width.\n\t */\n\tconst [ internalRotation, setInternalRotation ] = useState( 0 );\n\tconst rotateClockwise = useCallback( () => {\n\t\tconst angle = ( internalRotation + 90 ) % 360;\n\n\t\tlet naturalAspectRatio = defaultAspect;\n\t\tconst isDefaultAspect =\n\t\t\tdefaultAspect === aspectRatio || rotatedAspect === aspectRatio;\n\t\tconst shouldResetAspect = zoom !== 1 || ! isDefaultAspect;\n\n\t\tif ( internalRotation % 180 === 90 ) {\n\t\t\tnaturalAspectRatio = 1 / defaultAspect;\n\t\t}\n\n\t\tif ( angle === 0 ) {\n\t\t\tsetEditedUrl();\n\t\t\tsetInternalRotation( angle );\n\t\t\tconst newAspectRatio = shouldResetAspect\n\t\t\t\t? aspectRatio\n\t\t\t\t: defaultAspect;\n\t\t\tsetCropperState( {\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\tcrop: {\n\t\t\t\t\tx: -( crop.y * naturalAspectRatio ),\n\t\t\t\t\ty: crop.x * naturalAspectRatio,\n\t\t\t\t},\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tfunction editImage( event ) {\n\t\t\tconst canvas = document.createElement( 'canvas' );\n\n\t\t\tlet translateX = 0;\n\t\t\tlet translateY = 0;\n\n\t\t\tif ( angle % 180 ) {\n\t\t\t\tcanvas.width = event.target.height;\n\t\t\t\tcanvas.height = event.target.width;\n\t\t\t} else {\n\t\t\t\tcanvas.width = event.target.width;\n\t\t\t\tcanvas.height = event.target.height;\n\t\t\t}\n\n\t\t\tif ( angle === 90 || angle === 180 ) {\n\t\t\t\ttranslateX = canvas.width;\n\t\t\t}\n\n\t\t\tif ( angle === 270 || angle === 180 ) {\n\t\t\t\ttranslateY = canvas.height;\n\t\t\t}\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\n\t\t\tcontext.translate( translateX, translateY );\n\t\t\tcontext.rotate( ( angle * Math.PI ) / 180 );\n\t\t\tcontext.drawImage( event.target, 0, 0 );\n\n\t\t\tcanvas.toBlob( ( blob ) => {\n\t\t\t\tsetEditedUrl( URL.createObjectURL( blob ) );\n\t\t\t\tsetInternalRotation( angle );\n\t\t\t\tconst newAspectRatio = shouldResetAspect\n\t\t\t\t\t? aspectRatio\n\t\t\t\t\t: canvas.width / canvas.height;\n\t\t\t\tsetCropperState( {\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\tcrop: {\n\t\t\t\t\t\tx: -( crop.y * naturalAspectRatio ),\n\t\t\t\t\t\ty: crop.x * naturalAspectRatio,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\n\t\tconst el = new window.Image();\n\t\tel.src = url;\n\t\tel.onload = editImage;\n\n\t\tconst imgCrossOrigin = applyFilters(\n\t\t\t'media.crossOrigin',\n\t\t\tundefined,\n\t\t\turl\n\t\t);\n\t\tif ( typeof imgCrossOrigin === 'string' ) {\n\t\t\tel.crossOrigin = imgCrossOrigin;\n\t\t}\n\t}, [\n\t\tinternalRotation,\n\t\tdefaultAspect,\n\t\turl,\n\t\tsetCropperState,\n\t\tcrop,\n\t\tzoom,\n\t\taspectRatio,\n\t\trotatedAspect,\n\t\tsetInternalRotation,\n\t] );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\teditedUrl,\n\t\t\tsetEditedUrl,\n\t\t\tcrop: croppedArea,\n\t\t\tzoom,\n\t\t\tsetZoom,\n\t\t\trotation: internalRotation,\n\t\t\trotateClockwise,\n\t\t\taspect: aspectRatio,\n\t\t\tsetAspect: setAspectRatio,\n\t\t\tdefaultAspect,\n\t\t} ),\n\t\t[\n\t\t\teditedUrl,\n\t\t\tcroppedArea,\n\t\t\tzoom,\n\t\t\tsetZoom,\n\t\t\tinternalRotation,\n\t\t\trotateClockwise,\n\t\t\taspectRatio,\n\t\t\tsetAspectRatio,\n\t\t\tdefaultAspect,\n\t\t]\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -35,8 +35,8 @@ function ZoomDropdown() {
35
35
  label: __("Zoom"),
36
36
  min: MIN_ZOOM,
37
37
  max: MAX_ZOOM,
38
- value: Math.round(zoom),
39
- onChange: setZoom
38
+ value: Math.round(zoom * 100),
39
+ onChange: (newZoom) => setZoom(newZoom / 100)
40
40
  }
41
41
  ) })
42
42
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/image-editor/zoom-dropdown.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tRangeControl,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { search } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { MIN_ZOOM, MAX_ZOOM, POPOVER_PROPS } from './constants';\nimport { useImageEditingContext } from './context';\n\nexport default function ZoomDropdown() {\n\tconst { isInProgress, zoom, setZoom } = useImageEditingContext();\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"wp-block-image__zoom\"\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ search }\n\t\t\t\t\tlabel={ __( 'Zoom' ) }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\tdisabled={ isInProgress }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Zoom' ) }\n\t\t\t\t\t\tmin={ MIN_ZOOM }\n\t\t\t\t\t\tmax={ MAX_ZOOM }\n\t\t\t\t\t\tvalue={ Math.round( zoom ) }\n\t\t\t\t\t\tonChange={ setZoom }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n"],
5
- "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA,wCAAwC;AAAA,OAClC;AACP,SAAS,UAAU;AACnB,SAAS,cAAc;AAKvB,SAAS,UAAU,UAAU,qBAAqB;AAClD,SAAS,8BAA8B;AASnC;AAPW,SAAR,eAAgC;AACtC,QAAM,EAAE,cAAc,MAAM,QAAQ,IAAI,uBAAuB;AAC/D,SACC;AAAA,IAAC;AAAA;AAAA,MACA,kBAAiB;AAAA,MACjB,cAAe;AAAA,MACf,cAAe,CAAE,EAAE,QAAQ,SAAS,MACnC;AAAA,QAAC;AAAA;AAAA,UACA,MAAO;AAAA,UACP,OAAQ,GAAI,MAAO;AAAA,UACnB,SAAU;AAAA,UACV,iBAAgB;AAAA,UAChB,UAAW;AAAA;AAAA,MACZ;AAAA,MAED,eAAgB,MACf,oBAAC,0BAAuB,aAAY,UACnC;AAAA,QAAC;AAAA;AAAA,UACA,uBAAqB;AAAA,UACrB,yBAAuB;AAAA,UACvB,OAAQ,GAAI,MAAO;AAAA,UACnB,KAAM;AAAA,UACN,KAAM;AAAA,UACN,OAAQ,KAAK,MAAO,IAAK;AAAA,UACzB,UAAW;AAAA;AAAA,MACZ,GACD;AAAA;AAAA,EAEF;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tRangeControl,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { search } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { MIN_ZOOM, MAX_ZOOM, POPOVER_PROPS } from './constants';\nimport { useImageEditingContext } from './context';\n\nexport default function ZoomDropdown() {\n\tconst { isInProgress, zoom, setZoom } = useImageEditingContext();\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"wp-block-image__zoom\"\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ search }\n\t\t\t\t\tlabel={ __( 'Zoom' ) }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\tdisabled={ isInProgress }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Zoom' ) }\n\t\t\t\t\t\tmin={ MIN_ZOOM }\n\t\t\t\t\t\tmax={ MAX_ZOOM }\n\t\t\t\t\t\tvalue={ Math.round( zoom * 100 ) }\n\t\t\t\t\t\tonChange={ ( newZoom ) => setZoom( newZoom / 100 ) }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA,wCAAwC;AAAA,OAClC;AACP,SAAS,UAAU;AACnB,SAAS,cAAc;AAKvB,SAAS,UAAU,UAAU,qBAAqB;AAClD,SAAS,8BAA8B;AASnC;AAPW,SAAR,eAAgC;AACtC,QAAM,EAAE,cAAc,MAAM,QAAQ,IAAI,uBAAuB;AAC/D,SACC;AAAA,IAAC;AAAA;AAAA,MACA,kBAAiB;AAAA,MACjB,cAAe;AAAA,MACf,cAAe,CAAE,EAAE,QAAQ,SAAS,MACnC;AAAA,QAAC;AAAA;AAAA,UACA,MAAO;AAAA,UACP,OAAQ,GAAI,MAAO;AAAA,UACnB,SAAU;AAAA,UACV,iBAAgB;AAAA,UAChB,UAAW;AAAA;AAAA,MACZ;AAAA,MAED,eAAgB,MACf,oBAAC,0BAAuB,aAAY,UACnC;AAAA,QAAC;AAAA;AAAA,UACA,uBAAqB;AAAA,UACrB,yBAAuB;AAAA,UACvB,OAAQ,GAAI,MAAO;AAAA,UACnB,KAAM;AAAA,UACN,KAAM;AAAA,UACN,OAAQ,KAAK,MAAO,OAAO,GAAI;AAAA,UAC/B,UAAW,CAAE,YAAa,QAAS,UAAU,GAAI;AAAA;AAAA,MAClD,GACD;AAAA;AAAA,EAEF;AAEF;",
6
6
  "names": []
7
7
  }
@@ -8,6 +8,11 @@ import {
8
8
  BlockAlignmentControl,
9
9
  BlockAlignmentToolbar
10
10
  } from "./block-alignment-control";
11
+ import {
12
+ BlockBindingsAttributeControl,
13
+ BlockBindingsSourceFieldsList,
14
+ useBlockBindingsUtils
15
+ } from "./block-bindings";
11
16
  import { default as default3 } from "./block-full-height-alignment-control";
12
17
  import { default as default4 } from "./block-alignment-matrix-control";
13
18
  import { default as default5 } from "./block-breadcrumb";
@@ -99,95 +104,97 @@ import {
99
104
  } from "./spacing-sizes-control/utils";
100
105
  import { default as default57 } from "./block-settings-menu/block-settings-menu-first-item";
101
106
  import { default as default58 } from "./block-toolbar/block-toolbar-last-item";
102
- import { default as default59 } from "./block-toolbar/block-name-context";
103
- import { default as default60 } from "./inserter-menu-extension";
104
- import { default as default61 } from "./preview-options";
105
- import { default as default62 } from "./use-resize-canvas";
106
- import { default as default63 } from "./block-inspector";
107
- import { default as default64 } from "./block-list";
107
+ import { default as default59 } from "./inserter-menu-extension";
108
+ import { default as default60 } from "./preview-options";
109
+ import { default as default61 } from "./use-resize-canvas";
110
+ import { default as default62 } from "./block-inspector";
111
+ import { default as default63 } from "./block-list";
108
112
  import { useBlockProps } from "./block-list/use-block-props";
109
- import { default as default65 } from "./block-mover";
113
+ import { default as default64 } from "./block-mover";
110
114
  import {
111
- default as default66,
115
+ default as default65,
112
116
  useBlockPreview
113
117
  } from "./block-preview";
114
118
  import {
115
- default as default67,
119
+ default as default66,
116
120
  useBlockSelectionClearer
117
121
  } from "./block-selection-clearer";
118
- import { default as default68 } from "./block-settings-menu";
119
- import { default as default69 } from "./block-settings-menu-controls";
120
- import { default as default70 } from "./block-title";
121
- import { default as default71 } from "./block-toolbar";
122
- import { default as default72 } from "./block-tools";
122
+ import { default as default67 } from "./block-settings-menu";
123
+ import { default as default68 } from "./block-settings-menu-controls";
124
+ import { default as default69 } from "./block-title";
125
+ import { default as default70 } from "./block-toolbar";
126
+ import { default as default71 } from "./block-tools";
123
127
  import {
124
- default as default73,
128
+ default as default72,
125
129
  __unstableUseClipboardHandler
126
130
  } from "./copy-handler";
127
- import { default as default74 } from "./default-block-appender";
128
- import { default as default75 } from "./editor-styles";
129
- import { default as default76 } from "./inserter";
130
- import { default as default77 } from "./inserter/library";
131
- import { default as default78 } from "./keyboard-shortcuts";
131
+ import { default as default73 } from "./default-block-appender";
132
+ import { default as default74 } from "./editor-styles";
133
+ import { default as default75 } from "./inserter";
134
+ import { default as default76 } from "./inserter/library";
135
+ import { default as default77 } from "./keyboard-shortcuts";
132
136
  import { MultiSelectScrollIntoView } from "./selection-scroll-into-view";
133
- import { default as default79 } from "./navigable-toolbar";
137
+ import { default as default78 } from "./navigable-toolbar";
134
138
  import {
135
- default as default80,
139
+ default as default79,
136
140
  useTypingObserver,
137
141
  useMouseMoveTypingReset
138
142
  } from "./observe-typing";
139
- import { default as default81 } from "./skip-to-selected-block";
143
+ import { default as default80 } from "./skip-to-selected-block";
140
144
  import {
141
- default as default82,
145
+ default as default81,
142
146
  useTypewriter
143
147
  } from "./typewriter";
144
- import { default as default83 } from "./warning";
145
- import { default as default84 } from "./writing-flow";
146
- import { default as default85 } from "./use-block-display-information";
147
- import { default as default86 } from "./iframe";
148
+ import { default as default82 } from "./warning";
149
+ import { default as default83 } from "./writing-flow";
150
+ import { default as default84 } from "./use-block-display-information";
151
+ import { default as default85 } from "./iframe";
148
152
  import {
149
153
  RecursionProvider,
150
154
  DeprecatedExperimentalRecursionProvider,
151
155
  useHasRecursion,
152
156
  DeprecatedExperimentalUseHasRecursion
153
157
  } from "./recursion-provider";
154
- import { default as default87 } from "./block-patterns-list";
155
- import { default as default88 } from "./publish-date-time-picker";
156
- import { default as default89 } from "./inspector-popover-header";
157
- import { default as default90 } from "./block-popover";
158
+ import { default as default86 } from "./block-patterns-list";
159
+ import { default as default87 } from "./publish-date-time-picker";
160
+ import { default as default88 } from "./inspector-popover-header";
161
+ import { default as default89 } from "./block-popover";
158
162
  import { useBlockEditingMode } from "./block-editing-mode";
159
- import { default as default91 } from "./provider";
163
+ import { default as default90 } from "./provider";
160
164
  import { useSettings, useSetting } from "./use-settings";
161
165
  import { useBlockCommands } from "./use-block-commands";
166
+ import { default as default91 } from "./tool-selector";
162
167
  export {
163
168
  AlignmentControl,
164
169
  AlignmentToolbar,
165
170
  default2 as Autocomplete,
166
171
  BlockAlignmentControl,
167
172
  BlockAlignmentToolbar,
173
+ BlockBindingsAttributeControl,
174
+ BlockBindingsSourceFieldsList,
168
175
  default5 as BlockBreadcrumb,
169
176
  default7 as BlockCanvas,
170
177
  default9 as BlockColorsStyleSelector,
171
178
  BlockContextProvider,
172
179
  default8 as BlockControls,
173
180
  default10 as BlockEdit,
174
- default78 as BlockEditorKeyboardShortcuts,
175
- default91 as BlockEditorProvider,
181
+ default77 as BlockEditorKeyboardShortcuts,
182
+ default90 as BlockEditorProvider,
176
183
  BlockFormatControls,
177
184
  default11 as BlockIcon,
178
- default63 as BlockInspector,
179
- default64 as BlockList,
180
- default65 as BlockMover,
185
+ default62 as BlockInspector,
186
+ default63 as BlockList,
187
+ default64 as BlockMover,
181
188
  default12 as BlockNavigationDropdown,
182
- default90 as BlockPopover,
183
- default66 as BlockPreview,
184
- default67 as BlockSelectionClearer,
185
- default68 as BlockSettingsMenu,
186
- default69 as BlockSettingsMenuControls,
189
+ default89 as BlockPopover,
190
+ default65 as BlockPreview,
191
+ default66 as BlockSelectionClearer,
192
+ default67 as BlockSettingsMenu,
193
+ default68 as BlockSettingsMenuControls,
187
194
  default13 as BlockStyles,
188
- default70 as BlockTitle,
189
- default71 as BlockToolbar,
190
- default72 as BlockTools,
195
+ default69 as BlockTitle,
196
+ default70 as BlockToolbar,
197
+ default71 as BlockTools,
191
198
  BlockVerticalAlignmentControl,
192
199
  BlockVerticalAlignmentToolbar,
193
200
  default19 as ButtonBlockAppender,
@@ -195,12 +202,12 @@ export {
195
202
  default20 as ColorPalette,
196
203
  default21 as ColorPaletteControl,
197
204
  default22 as ContrastChecker,
198
- default73 as CopyHandler,
199
- default74 as DefaultBlockAppender,
205
+ default72 as CopyHandler,
206
+ default73 as DefaultBlockAppender,
200
207
  default14 as HeadingLevelDropdown,
201
208
  default35 as HeightControl,
202
209
  default38 as InnerBlocks,
203
- default76 as Inserter,
210
+ default75 as Inserter,
204
211
  InspectorAdvancedControls,
205
212
  default39 as InspectorControls,
206
213
  JustifyContentControl,
@@ -212,25 +219,26 @@ export {
212
219
  default45 as MediaUpload,
213
220
  default46 as MediaUploadCheck,
214
221
  MultiSelectScrollIntoView,
215
- default79 as NavigableToolbar,
216
- default80 as ObserveTyping,
222
+ default78 as NavigableToolbar,
223
+ default79 as ObserveTyping,
217
224
  default47 as PanelColorSettings,
218
225
  default48 as PlainText,
219
226
  RecursionProvider,
220
227
  default50 as RichText,
221
228
  RichTextShortcut,
222
229
  RichTextToolbarButton,
223
- default81 as SkipToSelectedBlock,
224
- default82 as Typewriter,
230
+ default80 as SkipToSelectedBlock,
231
+ default91 as ToolSelector,
232
+ default81 as Typewriter,
225
233
  default52 as URLInput,
226
234
  default53 as URLInputButton,
227
235
  default54 as URLPopover,
228
- default83 as Warning,
229
- default84 as WritingFlow,
236
+ default82 as Warning,
237
+ default83 as WritingFlow,
230
238
  default4 as __experimentalBlockAlignmentMatrixControl,
231
239
  default3 as __experimentalBlockFullHeightAligmentControl,
232
240
  default16 as __experimentalBlockPatternSetup,
233
- default87 as __experimentalBlockPatternsList,
241
+ default86 as __experimentalBlockPatternsList,
234
242
  default15 as __experimentalBlockVariationPicker,
235
243
  default17 as __experimentalBlockVariationTransforms,
236
244
  default18 as __experimentalBorderRadiusControl,
@@ -243,17 +251,17 @@ export {
243
251
  default36 as __experimentalImageEditor,
244
252
  default37 as __experimentalImageSizeControl,
245
253
  __experimentalImageURLInputUI,
246
- default89 as __experimentalInspectorPopoverHeader,
254
+ default88 as __experimentalInspectorPopoverHeader,
247
255
  default27 as __experimentalLetterSpacingControl,
248
- default77 as __experimentalLibrary,
256
+ default76 as __experimentalLibrary,
249
257
  DeprecatedExperimentalLinkControl as __experimentalLinkControl,
250
258
  __experimentalLinkControlSearchInput,
251
259
  __experimentalLinkControlSearchItem,
252
260
  __experimentalLinkControlSearchResults,
253
261
  default42 as __experimentalListView,
254
262
  default33 as __experimentalPanelColorGradientSettings,
255
- default61 as __experimentalPreviewOptions,
256
- default88 as __experimentalPublishDateTimePicker,
263
+ default60 as __experimentalPreviewOptions,
264
+ default87 as __experimentalPublishDateTimePicker,
257
265
  DeprecatedExperimentalRecursionProvider as __experimentalRecursionProvider,
258
266
  default49 as __experimentalResponsiveBlockControl,
259
267
  default56 as __experimentalSpacingSizesControl,
@@ -264,14 +272,13 @@ export {
264
272
  useBlockPreview as __experimentalUseBlockPreview,
265
273
  DeprecatedExperimentalUseHasRecursion as __experimentalUseHasRecursion,
266
274
  default34 as __experimentalUseMultipleOriginColorsAndGradients,
267
- default62 as __experimentalUseResizeCanvas,
275
+ default61 as __experimentalUseResizeCanvas,
268
276
  default30 as __experimentalWritingModeControl,
269
- default59 as __unstableBlockNameContext,
270
277
  default57 as __unstableBlockSettingsMenuFirstItem,
271
278
  default58 as __unstableBlockToolbarLastItem,
272
- default75 as __unstableEditorStyles,
273
- default86 as __unstableIframe,
274
- default60 as __unstableInserterMenuExtension,
279
+ default74 as __unstableEditorStyles,
280
+ default85 as __unstableIframe,
281
+ default59 as __unstableInserterMenuExtension,
275
282
  __unstableRichTextInputEvent,
276
283
  useBlockSelectionClearer as __unstableUseBlockSelectionClearer,
277
284
  __unstableUseClipboardHandler,
@@ -281,8 +288,9 @@ export {
281
288
  getCustomValueFromPreset,
282
289
  getSpacingPresetCssVar,
283
290
  isValueSpacingPreset,
291
+ useBlockBindingsUtils,
284
292
  useBlockCommands,
285
- default85 as useBlockDisplayInformation,
293
+ default84 as useBlockDisplayInformation,
286
294
  useBlockEditContext,
287
295
  useBlockEditingMode,
288
296
  useBlockProps,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/components/index.js"],
4
- "sourcesContent": ["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalUseBlockOverlayActive } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport { default as BlockCanvas } from './block-canvas';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as BlockStyles } from './block-styles';\nexport { default as HeadingLevelDropdown } from './block-heading-level-dropdown';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDateFormatPicker } from './date-format-picker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalWritingModeControl } from './writing-mode-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as __experimentalUseMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\nexport { default as HeightControl } from './height-control';\nexport { default as __experimentalImageEditor } from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport {\n\tdefault as LinkControl,\n\tDeprecatedExperimentalLinkControl as __experimentalLinkControl,\n} from './link-control';\nexport { __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\nexport { default as __experimentalSpacingSizesControl } from './spacing-sizes-control';\nexport {\n\tgetSpacingPresetCssVar,\n\tisValueSpacingPreset,\n\tgetCustomValueFromPreset,\n} from './spacing-sizes-control/utils';\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableBlockToolbarLastItem } from './block-toolbar/block-toolbar-last-item';\nexport { default as __unstableBlockNameContext } from './block-toolbar/block-name-context';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { default as BlockMover } from './block-mover';\nexport {\n\tdefault as BlockPreview,\n\tuseBlockPreview as __experimentalUseBlockPreview,\n} from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\t__unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport {\n\tRecursionProvider,\n\tDeprecatedExperimentalRecursionProvider as __experimentalRecursionProvider,\n\tuseHasRecursion,\n\tDeprecatedExperimentalUseHasRecursion as __experimentalUseHasRecursion,\n} from './recursion-provider';\nexport { default as __experimentalBlockPatternsList } from './block-patterns-list';\nexport { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';\nexport { default as __experimentalInspectorPopoverHeader } from './inspector-popover-header';\nexport { default as BlockPopover } from './block-popover';\nexport { useBlockEditingMode } from './block-editing-mode';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { useSettings, useSetting } from './use-settings';\nexport { useBlockCommands } from './use-block-commands';\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport {\n\tBlockBindingsAttributeControl,\n\tBlockBindingsSourceFieldsList,\n\tuseBlockBindingsUtils,\n} from './block-bindings';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalUseBlockOverlayActive } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport { default as BlockCanvas } from './block-canvas';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as BlockStyles } from './block-styles';\nexport { default as HeadingLevelDropdown } from './block-heading-level-dropdown';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDateFormatPicker } from './date-format-picker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalWritingModeControl } from './writing-mode-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as __experimentalUseMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\nexport { default as HeightControl } from './height-control';\nexport { default as __experimentalImageEditor } from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport {\n\tdefault as LinkControl,\n\tDeprecatedExperimentalLinkControl as __experimentalLinkControl,\n} from './link-control';\nexport { __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\nexport { default as __experimentalSpacingSizesControl } from './spacing-sizes-control';\nexport {\n\tgetSpacingPresetCssVar,\n\tisValueSpacingPreset,\n\tgetCustomValueFromPreset,\n} from './spacing-sizes-control/utils';\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableBlockToolbarLastItem } from './block-toolbar/block-toolbar-last-item';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { default as BlockMover } from './block-mover';\nexport {\n\tdefault as BlockPreview,\n\tuseBlockPreview as __experimentalUseBlockPreview,\n} from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\t__unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport {\n\tRecursionProvider,\n\tDeprecatedExperimentalRecursionProvider as __experimentalRecursionProvider,\n\tuseHasRecursion,\n\tDeprecatedExperimentalUseHasRecursion as __experimentalUseHasRecursion,\n} from './recursion-provider';\nexport { default as __experimentalBlockPatternsList } from './block-patterns-list';\nexport { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';\nexport { default as __experimentalInspectorPopoverHeader } from './inspector-popover-header';\nexport { default as BlockPopover } from './block-popover';\nexport { useBlockEditingMode } from './block-editing-mode';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { useSettings, useSetting } from './use-settings';\nexport { useBlockCommands } from './use-block-commands';\n\n// This component is no longer used in Gutenberg,\n// but kept for backwards compatibility.\nexport { default as ToolSelector } from './tool-selector';\n"],
5
+ "mappings": "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",
6
6
  "names": ["default"]
7
7
  }
@@ -15,12 +15,12 @@ var InserterDraggableBlocks = ({
15
15
  children,
16
16
  pattern
17
17
  }) => {
18
+ const blockName = blocks.length === 1 ? blocks[0].name : void 0;
18
19
  const blockTypeIcon = useSelect(
19
20
  (select) => {
20
- const { getBlockType } = select(blocksStore);
21
- return blocks.length === 1 && getBlockType(blocks[0].name)?.icon;
21
+ return blockName && select(blocksStore).getBlockType(blockName)?.icon;
22
22
  },
23
- [blocks]
23
+ [blockName]
24
24
  );
25
25
  const { startDragging, stopDragging } = unlock(
26
26
  useDispatch(blockEditorStore)
@@ -43,9 +43,13 @@ var InserterDraggableBlocks = ({
43
43
  transferData: { type: "inserter", blocks: draggableBlocks },
44
44
  onDragStart: (event) => {
45
45
  startDragging();
46
+ const addedTypes = /* @__PURE__ */ new Set();
46
47
  for (const block of draggableBlocks) {
47
48
  const type = `wp-block:${block.name}`;
48
- event.dataTransfer.items.add("", type);
49
+ if (!addedTypes.has(type)) {
50
+ event.dataTransfer.items.add("", type);
51
+ addedTypes.add(type);
52
+ }
49
53
  }
50
54
  },
51
55
  onDragEnd: () => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/inserter-draggable-blocks/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Draggable } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from '../block-draggable/draggable-chip';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst InserterDraggableBlocks = ( {\n\tisEnabled,\n\tblocks,\n\ticon,\n\tchildren,\n\tpattern,\n} ) => {\n\tconst blockTypeIcon = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\treturn (\n\t\t\t\tblocks.length === 1 && getBlockType( blocks[ 0 ].name )?.icon\n\t\t\t);\n\t\t},\n\t\t[ blocks ]\n\t);\n\n\tconst { startDragging, stopDragging } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst patternBlock = useMemo( () => {\n\t\treturn pattern?.type === INSERTER_PATTERN_TYPES.user &&\n\t\t\tpattern?.syncStatus !== 'unsynced'\n\t\t\t? [ createBlock( 'core/block', { ref: pattern.id } ) ]\n\t\t\t: undefined;\n\t}, [ pattern?.type, pattern?.syncStatus, pattern?.id ] );\n\n\tif ( ! isEnabled ) {\n\t\treturn children( {\n\t\t\tdraggable: false,\n\t\t\tonDragStart: undefined,\n\t\t\tonDragEnd: undefined,\n\t\t} );\n\t}\n\n\tconst draggableBlocks = patternBlock ?? blocks;\n\treturn (\n\t\t<Draggable\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ { type: 'inserter', blocks: draggableBlocks } }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\tstartDragging();\n\t\t\t\tfor ( const block of draggableBlocks ) {\n\t\t\t\t\tconst type = `wp-block:${ block.name }`;\n\t\t\t\t\t// This will fill in the dataTransfer.types array so that\n\t\t\t\t\t// the drop zone can check if the draggable is eligible.\n\t\t\t\t\t// Unfortuantely, on drag start, we don't have access to the\n\t\t\t\t\t// actual data, only the data keys/types.\n\t\t\t\t\tevent.dataTransfer.items.add( '', type );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDragging();\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip\n\t\t\t\t\tcount={ blocks.length }\n\t\t\t\t\ticon={ icon || ( ! pattern && blockTypeIcon ) }\n\t\t\t\t\tisPattern={ !! pattern }\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 InserterDraggableBlocks;\n"],
5
- "mappings": ";AAGA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,SAAS,mBAAmB;AAClD,SAAS,aAAa,iBAAiB;AACvC,SAAS,eAAe;AAKxB,OAAO,wBAAwB;AAC/B,SAAS,8BAA8B;AACvC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,cAAc;AA0DnB;AAxDJ,IAAM,0BAA0B,CAAE;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM,gBAAgB;AAAA,IACrB,CAAE,WAAY;AACb,YAAM,EAAE,aAAa,IAAI,OAAQ,WAAY;AAC7C,aACC,OAAO,WAAW,KAAK,aAAc,OAAQ,CAAE,EAAE,IAAK,GAAG;AAAA,IAE3D;AAAA,IACA,CAAE,MAAO;AAAA,EACV;AAEA,QAAM,EAAE,eAAe,aAAa,IAAI;AAAA,IACvC,YAAa,gBAAiB;AAAA,EAC/B;AAEA,QAAM,eAAe,QAAS,MAAM;AACnC,WAAO,SAAS,SAAS,uBAAuB,QAC/C,SAAS,eAAe,aACtB,CAAE,YAAa,cAAc,EAAE,KAAK,QAAQ,GAAG,CAAE,CAAE,IACnD;AAAA,EACJ,GAAG,CAAE,SAAS,MAAM,SAAS,YAAY,SAAS,EAAG,CAAE;AAEvD,MAAK,CAAE,WAAY;AAClB,WAAO,SAAU;AAAA,MAChB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,WAAW;AAAA,IACZ,CAAE;AAAA,EACH;AAEA,QAAM,kBAAkB,gBAAgB;AACxC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gCAA+B;AAAA,MAC/B,cAAe,EAAE,MAAM,YAAY,QAAQ,gBAAgB;AAAA,MAC3D,aAAc,CAAE,UAAW;AAC1B,sBAAc;AACd,mBAAY,SAAS,iBAAkB;AACtC,gBAAM,OAAO,YAAa,MAAM,IAAK;AAKrC,gBAAM,aAAa,MAAM,IAAK,IAAI,IAAK;AAAA,QACxC;AAAA,MACD;AAAA,MACA,WAAY,MAAM;AACjB,qBAAa;AAAA,MACd;AAAA,MACA,6BACC;AAAA,QAAC;AAAA;AAAA,UACA,OAAQ,OAAO;AAAA,UACf,MAAO,QAAU,CAAE,WAAW;AAAA,UAC9B,WAAY,CAAC,CAAE;AAAA;AAAA,MAChB;AAAA,MAGC,WAAE,EAAE,kBAAkB,eAAe,MAAO;AAC7C,eAAO,SAAU;AAAA,UAChB,WAAW;AAAA,UACX,aAAa;AAAA,UACb,WAAW;AAAA,QACZ,CAAE;AAAA,MACH;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,oCAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Draggable } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from '../block-draggable/draggable-chip';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst InserterDraggableBlocks = ( {\n\tisEnabled,\n\tblocks,\n\ticon,\n\tchildren,\n\tpattern,\n} ) => {\n\tconst blockName = blocks.length === 1 ? blocks[ 0 ].name : undefined;\n\tconst blockTypeIcon = useSelect(\n\t\t( select ) => {\n\t\t\treturn (\n\t\t\t\tblockName &&\n\t\t\t\tselect( blocksStore ).getBlockType( blockName )?.icon\n\t\t\t);\n\t\t},\n\t\t[ blockName ]\n\t);\n\n\tconst { startDragging, stopDragging } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst patternBlock = useMemo( () => {\n\t\treturn pattern?.type === INSERTER_PATTERN_TYPES.user &&\n\t\t\tpattern?.syncStatus !== 'unsynced'\n\t\t\t? [ createBlock( 'core/block', { ref: pattern.id } ) ]\n\t\t\t: undefined;\n\t}, [ pattern?.type, pattern?.syncStatus, pattern?.id ] );\n\n\tif ( ! isEnabled ) {\n\t\treturn children( {\n\t\t\tdraggable: false,\n\t\t\tonDragStart: undefined,\n\t\t\tonDragEnd: undefined,\n\t\t} );\n\t}\n\n\tconst draggableBlocks = patternBlock ?? blocks;\n\treturn (\n\t\t<Draggable\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ { type: 'inserter', blocks: draggableBlocks } }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\tstartDragging();\n\t\t\t\tconst addedTypes = new Set();\n\t\t\t\tfor ( const block of draggableBlocks ) {\n\t\t\t\t\tconst type = `wp-block:${ block.name }`;\n\t\t\t\t\t/*\n\t\t\t\t\t * Only add each block type once to avoid DataTransferItemList::add `NotSupportedError`\n\t\t\t\t\t * when patterns contain multiple blocks of the same type.\n\t\t\t\t\t */\n\t\t\t\t\tif ( ! addedTypes.has( type ) ) {\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * This will fill in the dataTransfer.types array so that\n\t\t\t\t\t\t * the drop zone can check if the draggable is eligible.\n\t\t\t\t\t\t * Unfortuantely, on drag start, we don't have access to the\n\t\t\t\t\t\t * actual data, only the data keys/types.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tevent.dataTransfer.items.add( '', type );\n\t\t\t\t\t\taddedTypes.add( type );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDragging();\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip\n\t\t\t\t\tcount={ blocks.length }\n\t\t\t\t\ticon={ icon || ( ! pattern && blockTypeIcon ) }\n\t\t\t\t\tisPattern={ !! pattern }\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 InserterDraggableBlocks;\n"],
5
+ "mappings": ";AAGA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,SAAS,mBAAmB;AAClD,SAAS,aAAa,iBAAiB;AACvC,SAAS,eAAe;AAKxB,OAAO,wBAAwB;AAC/B,SAAS,8BAA8B;AACvC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,cAAc;AAqEnB;AAnEJ,IAAM,0BAA0B,CAAE;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM,YAAY,OAAO,WAAW,IAAI,OAAQ,CAAE,EAAE,OAAO;AAC3D,QAAM,gBAAgB;AAAA,IACrB,CAAE,WAAY;AACb,aACC,aACA,OAAQ,WAAY,EAAE,aAAc,SAAU,GAAG;AAAA,IAEnD;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,EAAE,eAAe,aAAa,IAAI;AAAA,IACvC,YAAa,gBAAiB;AAAA,EAC/B;AAEA,QAAM,eAAe,QAAS,MAAM;AACnC,WAAO,SAAS,SAAS,uBAAuB,QAC/C,SAAS,eAAe,aACtB,CAAE,YAAa,cAAc,EAAE,KAAK,QAAQ,GAAG,CAAE,CAAE,IACnD;AAAA,EACJ,GAAG,CAAE,SAAS,MAAM,SAAS,YAAY,SAAS,EAAG,CAAE;AAEvD,MAAK,CAAE,WAAY;AAClB,WAAO,SAAU;AAAA,MAChB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,WAAW;AAAA,IACZ,CAAE;AAAA,EACH;AAEA,QAAM,kBAAkB,gBAAgB;AACxC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gCAA+B;AAAA,MAC/B,cAAe,EAAE,MAAM,YAAY,QAAQ,gBAAgB;AAAA,MAC3D,aAAc,CAAE,UAAW;AAC1B,sBAAc;AACd,cAAM,aAAa,oBAAI,IAAI;AAC3B,mBAAY,SAAS,iBAAkB;AACtC,gBAAM,OAAO,YAAa,MAAM,IAAK;AAKrC,cAAK,CAAE,WAAW,IAAK,IAAK,GAAI;AAO/B,kBAAM,aAAa,MAAM,IAAK,IAAI,IAAK;AACvC,uBAAW,IAAK,IAAK;AAAA,UACtB;AAAA,QACD;AAAA,MACD;AAAA,MACA,WAAY,MAAM;AACjB,qBAAa;AAAA,MACd;AAAA,MACA,6BACC;AAAA,QAAC;AAAA;AAAA,UACA,OAAQ,OAAO;AAAA,UACf,MAAO,QAAU,CAAE,WAAW;AAAA,UAC9B,WAAY,CAAC,CAAE;AAAA;AAAA,MAChB;AAAA,MAGC,WAAE,EAAE,kBAAkB,eAAe,MAAO;AAC7C,eAAO,SAAU;AAAA,UAChB,WAAW;AAAA,UACX,aAAa;AAAA,UACb,WAAW;AAAA,QACZ,CAAE;AAAA,MACH;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,oCAAQ;",
6
6
  "names": []
7
7
  }
@@ -8,9 +8,10 @@ var ContentTab = ({ rootClientId, contentClientIds }) => {
8
8
  if (!contentClientIds || contentClientIds.length === 0) {
9
9
  return null;
10
10
  }
11
+ const shouldShowContentOnlyControls = window?.__experimentalContentOnlyPatternInsertion && window?.__experimentalContentOnlyInspectorFields;
11
12
  return /* @__PURE__ */ jsxs(Fragment, { children: [
12
- !window?.__experimentalContentOnlyPatternInsertion && /* @__PURE__ */ jsx(PanelBody, { title: __("Content"), children: /* @__PURE__ */ jsx(BlockQuickNavigation, { clientIds: contentClientIds }) }),
13
- window?.__experimentalContentOnlyPatternInsertion && /* @__PURE__ */ jsx(ContentOnlyControls, { rootClientId })
13
+ !shouldShowContentOnlyControls && /* @__PURE__ */ jsx(PanelBody, { title: __("Content"), children: /* @__PURE__ */ jsx(BlockQuickNavigation, { clientIds: contentClientIds }) }),
14
+ shouldShowContentOnlyControls && /* @__PURE__ */ jsx(ContentOnlyControls, { rootClientId })
14
15
  ] });
15
16
  };
16
17
  var content_tab_default = ContentTab;